Makefile: Document deeply-nested libraries.
[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", "src/auto_super_init.nit", 26);
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", "src/auto_super_init.nit", 26);
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", "src/phase.nit", 145);
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#init for (self: AutoSuperInitVisitor) */
82 void auto_super_init__AutoSuperInitVisitor__init(val* self) {
83 {
84 { /* Inline parser_nodes#Visitor#init (self) on <self:AutoSuperInitVisitor> */
85 RET_LABEL1:(void)0;
86 }
87 }
88 RET_LABEL:;
89 }
90 /* method auto_super_init#AutoSuperInitVisitor#init for (self: Object) */
91 void VIRTUAL_auto_super_init__AutoSuperInitVisitor__init(val* self) {
92 auto_super_init__AutoSuperInitVisitor__init(self); /* Direct call auto_super_init#AutoSuperInitVisitor#init on <self:Object(AutoSuperInitVisitor)>*/
93 RET_LABEL:;
94 }
95 /* method auto_super_init#AutoSuperInitVisitor#visit for (self: AutoSuperInitVisitor, ANode) */
96 void auto_super_init__AutoSuperInitVisitor__visit(val* self, val* p0) {
97 val* var_n /* var n: ANode */;
98 var_n = p0;
99 {
100 ((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>*/;
101 }
102 {
103 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__visit_all]))(var_n, self) /* visit_all on <var_n:ANode>*/;
104 }
105 RET_LABEL:;
106 }
107 /* method auto_super_init#AutoSuperInitVisitor#visit for (self: Object, ANode) */
108 void VIRTUAL_auto_super_init__AutoSuperInitVisitor__visit(val* self, val* p0) {
109 auto_super_init__AutoSuperInitVisitor__visit(self, p0); /* Direct call auto_super_init#AutoSuperInitVisitor#visit on <self:Object(AutoSuperInitVisitor)>*/
110 RET_LABEL:;
111 }
112 /* method auto_super_init#AutoSuperInitVisitor#has_explicit_super_init for (self: AutoSuperInitVisitor): Bool */
113 short int auto_super_init__AutoSuperInitVisitor__has_explicit_super_init(val* self) {
114 short int var /* : Bool */;
115 short int var1 /* : Bool */;
116 var1 = self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].s; /* _has_explicit_super_init on <self:AutoSuperInitVisitor> */
117 var = var1;
118 RET_LABEL:;
119 return var;
120 }
121 /* method auto_super_init#AutoSuperInitVisitor#has_explicit_super_init for (self: Object): Bool */
122 short int VIRTUAL_auto_super_init__AutoSuperInitVisitor__has_explicit_super_init(val* self) {
123 short int var /* : Bool */;
124 short int var1 /* : Bool */;
125 short int var3 /* : Bool */;
126 { /* Inline auto_super_init#AutoSuperInitVisitor#has_explicit_super_init (self) on <self:Object(AutoSuperInitVisitor)> */
127 var3 = self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].s; /* _has_explicit_super_init on <self:Object(AutoSuperInitVisitor)> */
128 var1 = var3;
129 RET_LABEL2:(void)0;
130 }
131 var = var1;
132 RET_LABEL:;
133 return var;
134 }
135 /* method auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= for (self: AutoSuperInitVisitor, Bool) */
136 void auto_super_init__AutoSuperInitVisitor__has_explicit_super_init_61d(val* self, short int p0) {
137 self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].s = p0; /* _has_explicit_super_init on <self:AutoSuperInitVisitor> */
138 RET_LABEL:;
139 }
140 /* method auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= for (self: Object, Bool) */
141 void VIRTUAL_auto_super_init__AutoSuperInitVisitor__has_explicit_super_init_61d(val* self, short int p0) {
142 { /* Inline auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= (self,p0) on <self:Object(AutoSuperInitVisitor)> */
143 self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].s = p0; /* _has_explicit_super_init on <self:Object(AutoSuperInitVisitor)> */
144 RET_LABEL1:(void)0;
145 }
146 RET_LABEL:;
147 }
148 /* method auto_super_init#AMethPropdef#auto_super_inits for (self: AMethPropdef): nullable Array[CallSite] */
149 val* auto_super_init__AMethPropdef__auto_super_inits(val* self) {
150 val* var /* : nullable Array[CallSite] */;
151 val* var1 /* : nullable Array[CallSite] */;
152 var1 = self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_inits].val; /* _auto_super_inits on <self:AMethPropdef> */
153 var = var1;
154 RET_LABEL:;
155 return var;
156 }
157 /* method auto_super_init#AMethPropdef#auto_super_inits for (self: Object): nullable Array[CallSite] */
158 val* VIRTUAL_auto_super_init__AMethPropdef__auto_super_inits(val* self) {
159 val* var /* : nullable Array[CallSite] */;
160 val* var1 /* : nullable Array[CallSite] */;
161 val* var3 /* : nullable Array[CallSite] */;
162 { /* Inline auto_super_init#AMethPropdef#auto_super_inits (self) on <self:Object(AMethPropdef)> */
163 var3 = self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_inits].val; /* _auto_super_inits on <self:Object(AMethPropdef)> */
164 var1 = var3;
165 RET_LABEL2:(void)0;
166 }
167 var = var1;
168 RET_LABEL:;
169 return var;
170 }
171 /* method auto_super_init#AMethPropdef#auto_super_inits= for (self: AMethPropdef, nullable Array[CallSite]) */
172 void auto_super_init__AMethPropdef__auto_super_inits_61d(val* self, val* p0) {
173 self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_inits].val = p0; /* _auto_super_inits on <self:AMethPropdef> */
174 RET_LABEL:;
175 }
176 /* method auto_super_init#AMethPropdef#auto_super_inits= for (self: Object, nullable Array[CallSite]) */
177 void VIRTUAL_auto_super_init__AMethPropdef__auto_super_inits_61d(val* self, val* p0) {
178 { /* Inline auto_super_init#AMethPropdef#auto_super_inits= (self,p0) on <self:Object(AMethPropdef)> */
179 self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_inits].val = p0; /* _auto_super_inits on <self:Object(AMethPropdef)> */
180 RET_LABEL1:(void)0;
181 }
182 RET_LABEL:;
183 }
184 /* method auto_super_init#AMethPropdef#do_auto_super_init for (self: AMethPropdef, ModelBuilder) */
185 void auto_super_init__AMethPropdef__do_auto_super_init(val* self, val* p0) {
186 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
187 val* var /* : nullable ANode */;
188 val* var2 /* : nullable ANode */;
189 short int var3 /* : Bool */;
190 int cltype;
191 int idtype;
192 const char* var_class_name;
193 val* var4 /* : nullable MClassDef */;
194 val* var6 /* : nullable MClassDef */;
195 val* var_mclassdef /* var mclassdef: MClassDef */;
196 val* var7 /* : nullable MPropDef */;
197 val* var9 /* : nullable MPropDef */;
198 val* var_mpropdef /* var mpropdef: MMethodDef */;
199 val* var10 /* : MClassDef */;
200 val* var12 /* : MClassDef */;
201 val* var13 /* : MModule */;
202 val* var15 /* : MModule */;
203 val* var_mmodule /* var mmodule: MModule */;
204 val* var16 /* : MClassType */;
205 val* var18 /* : MClassType */;
206 val* var_anchor /* var anchor: MClassType */;
207 val* var19 /* : MClass */;
208 val* var21 /* : MClass */;
209 val* var22 /* : MClassType */;
210 val* var24 /* : MClassType */;
211 val* var_recvtype /* var recvtype: MClassType */;
212 val* var25 /* : MProperty */;
213 val* var27 /* : MProperty */;
214 short int var28 /* : Bool */;
215 short int var30 /* : Bool */;
216 short int var31 /* : Bool */;
217 val* var32 /* : MClassDef */;
218 val* var34 /* : MClassDef */;
219 short int var35 /* : Bool */;
220 short int var36 /* : Bool */;
221 short int var37 /* : Bool */;
222 short int var_skip /* var skip: Bool */;
223 val* var38 /* : nullable POSetElement[MClassDef] */;
224 val* var40 /* : nullable POSetElement[MClassDef] */;
225 val* var41 /* : Collection[Object] */;
226 val* var42 /* : Iterator[nullable Object] */;
227 short int var43 /* : Bool */;
228 val* var44 /* : nullable Object */;
229 val* var_cd /* var cd: MClassDef */;
230 val* var45 /* : MClass */;
231 val* var47 /* : MClass */;
232 val* var48 /* : MClassKind */;
233 val* var50 /* : MClassKind */;
234 short int var51 /* : Bool */;
235 short int var53 /* : Bool */;
236 short int var54 /* : Bool */;
237 val* var55 /* : nullable AExpr */;
238 val* var_nblock /* var nblock: nullable AExpr */;
239 val* var56 /* : null */;
240 short int var57 /* : Bool */;
241 short int var58 /* : Bool */;
242 val* var_other /* var other: nullable Object */;
243 short int var60 /* : Bool */;
244 short int var61 /* : Bool */;
245 short int var62 /* : Bool */;
246 val* var63 /* : AutoSuperInitVisitor */;
247 val* var_v /* var v: AutoSuperInitVisitor */;
248 short int var64 /* : Bool */;
249 short int var66 /* : Bool */;
250 val* var67 /* : Array[CallSite] */;
251 val* var_auto_super_inits /* var auto_super_inits: Array[CallSite] */;
252 val* var68 /* : Array[MClassType] */;
253 val* var70 /* : Array[MClassType] */;
254 val* var71 /* : ArrayIterator[nullable Object] */;
255 short int var72 /* : Bool */;
256 val* var73 /* : nullable Object */;
257 val* var_msupertype /* var msupertype: MClassType */;
258 val* var74 /* : MClass */;
259 val* var76 /* : MClass */;
260 val* var77 /* : MClassKind */;
261 val* var79 /* : MClassKind */;
262 short int var80 /* : Bool */;
263 short int var82 /* : Bool */;
264 short int var83 /* : Bool */;
265 val* var85 /* : MClassType */;
266 val* var87 /* : MClassType */;
267 val* var88 /* : MClassType */;
268 val* var89 /* : MProperty */;
269 val* var91 /* : MProperty */;
270 val* var92 /* : String */;
271 val* var94 /* : String */;
272 val* var95 /* : nullable MProperty */;
273 val* var_candidate /* var candidate: nullable MProperty */;
274 val* var96 /* : null */;
275 short int var97 /* : Bool */;
276 short int var98 /* : Bool */;
277 val* var_other100 /* var other: nullable Object */;
278 short int var101 /* : Bool */;
279 short int var103 /* : Bool */;
280 static val* varonce;
281 val* var104 /* : String */;
282 char* var105 /* : NativeString */;
283 long var106 /* : Int */;
284 val* var107 /* : FlatString */;
285 val* var108 /* : nullable MProperty */;
286 val* var109 /* : null */;
287 short int var110 /* : Bool */;
288 short int var111 /* : Bool */;
289 short int var113 /* : Bool */;
290 short int var115 /* : Bool */;
291 static val* varonce116;
292 val* var117 /* : String */;
293 char* var118 /* : NativeString */;
294 long var119 /* : Int */;
295 val* var120 /* : FlatString */;
296 static val* varonce121;
297 val* var122 /* : String */;
298 char* var123 /* : NativeString */;
299 long var124 /* : Int */;
300 val* var125 /* : FlatString */;
301 val* var126 /* : MProperty */;
302 val* var128 /* : MProperty */;
303 val* var129 /* : String */;
304 val* var131 /* : String */;
305 static val* varonce132;
306 val* var133 /* : String */;
307 char* var134 /* : NativeString */;
308 long var135 /* : Int */;
309 val* var136 /* : FlatString */;
310 static val* varonce137;
311 val* var138 /* : String */;
312 char* var139 /* : NativeString */;
313 long var140 /* : Int */;
314 val* var141 /* : FlatString */;
315 val* var142 /* : Array[Object] */;
316 long var143 /* : Int */;
317 val* var144 /* : NativeArray[Object] */;
318 val* var145 /* : String */;
319 short int var146 /* : Bool */;
320 int cltype147;
321 int idtype148;
322 val* var149 /* : Array[MPropDef] */;
323 val* var_candidatedefs /* var candidatedefs: Array[MMethodDef] */;
324 val* var150 /* : nullable Object */;
325 val* var_candidatedef /* var candidatedef: MMethodDef */;
326 val* var151 /* : nullable MSignature */;
327 val* var153 /* : nullable MSignature */;
328 val* var_msignature /* var msignature: nullable MSignature */;
329 short int var154 /* : Bool */;
330 val* var155 /* : MSignature */;
331 val* var156 /* : CallSite */;
332 short int var157 /* : Bool */;
333 short int var158 /* : Bool */;
334 val* var_callsite /* var callsite: CallSite */;
335 short int var160 /* : Bool */;
336 static val* varonce161;
337 val* var162 /* : String */;
338 char* var163 /* : NativeString */;
339 long var164 /* : Int */;
340 val* var165 /* : FlatString */;
341 static val* varonce166;
342 val* var167 /* : String */;
343 char* var168 /* : NativeString */;
344 long var169 /* : Int */;
345 val* var170 /* : FlatString */;
346 val* var171 /* : Array[Object] */;
347 long var172 /* : Int */;
348 val* var173 /* : NativeArray[Object] */;
349 val* var174 /* : String */;
350 val* var175 /* : ArrayIterator[nullable Object] */;
351 short int var176 /* : Bool */;
352 val* var177 /* : nullable Object */;
353 val* var_auto_super_init /* var auto_super_init: CallSite */;
354 val* var178 /* : MMethodDef */;
355 val* var180 /* : MMethodDef */;
356 val* var_auto_super_init_def /* var auto_super_init_def: MMethodDef */;
357 val* var181 /* : nullable MSignature */;
358 val* var183 /* : nullable MSignature */;
359 val* var_msig /* var msig: MSignature */;
360 val* var184 /* : MSignature */;
361 val* var186 /* : MSignature */;
362 val* var_supermsig /* var supermsig: MSignature */;
363 long var187 /* : Int */;
364 long var188 /* : Int */;
365 short int var189 /* : Bool */;
366 short int var191 /* : Bool */;
367 int cltype192;
368 int idtype193;
369 const char* var_class_name194;
370 short int var195 /* : Bool */;
371 static val* varonce196;
372 val* var197 /* : String */;
373 char* var198 /* : NativeString */;
374 long var199 /* : Int */;
375 val* var200 /* : FlatString */;
376 static val* varonce201;
377 val* var202 /* : String */;
378 char* var203 /* : NativeString */;
379 long var204 /* : Int */;
380 val* var205 /* : FlatString */;
381 long var206 /* : Int */;
382 static val* varonce207;
383 val* var208 /* : String */;
384 char* var209 /* : NativeString */;
385 long var210 /* : Int */;
386 val* var211 /* : FlatString */;
387 long var212 /* : Int */;
388 static val* varonce213;
389 val* var214 /* : String */;
390 char* var215 /* : NativeString */;
391 long var216 /* : Int */;
392 val* var217 /* : FlatString */;
393 val* var218 /* : Array[Object] */;
394 long var219 /* : Int */;
395 val* var220 /* : NativeArray[Object] */;
396 val* var221 /* : Object */;
397 val* var222 /* : Object */;
398 val* var223 /* : String */;
399 long var225 /* : Int */;
400 long var_i /* var i: Int */;
401 val* var226 /* : Array[MParameter] */;
402 val* var228 /* : Array[MParameter] */;
403 val* var229 /* : ArrayIterator[nullable Object] */;
404 short int var230 /* : Bool */;
405 val* var231 /* : nullable Object */;
406 val* var_sp /* var sp: MParameter */;
407 val* var232 /* : Array[MParameter] */;
408 val* var234 /* : Array[MParameter] */;
409 val* var235 /* : nullable Object */;
410 val* var_p /* var p: MParameter */;
411 val* var236 /* : MType */;
412 val* var238 /* : MType */;
413 val* var_sub /* var sub: MType */;
414 val* var239 /* : MType */;
415 val* var241 /* : MType */;
416 val* var_sup /* var sup: MType */;
417 short int var242 /* : Bool */;
418 short int var243 /* : Bool */;
419 static val* varonce244;
420 val* var245 /* : String */;
421 char* var246 /* : NativeString */;
422 long var247 /* : Int */;
423 val* var248 /* : FlatString */;
424 static val* varonce249;
425 val* var250 /* : String */;
426 char* var251 /* : NativeString */;
427 long var252 /* : Int */;
428 val* var253 /* : FlatString */;
429 static val* varonce254;
430 val* var255 /* : String */;
431 char* var256 /* : NativeString */;
432 long var257 /* : Int */;
433 val* var258 /* : FlatString */;
434 val* var259 /* : MType */;
435 val* var261 /* : MType */;
436 static val* varonce262;
437 val* var263 /* : String */;
438 char* var264 /* : NativeString */;
439 long var265 /* : Int */;
440 val* var266 /* : FlatString */;
441 val* var267 /* : String */;
442 val* var269 /* : String */;
443 static val* varonce270;
444 val* var271 /* : String */;
445 char* var272 /* : NativeString */;
446 long var273 /* : Int */;
447 val* var274 /* : FlatString */;
448 val* var275 /* : MType */;
449 val* var277 /* : MType */;
450 static val* varonce278;
451 val* var279 /* : String */;
452 char* var280 /* : NativeString */;
453 long var281 /* : Int */;
454 val* var282 /* : FlatString */;
455 val* var283 /* : Array[Object] */;
456 long var284 /* : Int */;
457 val* var285 /* : NativeArray[Object] */;
458 val* var286 /* : Object */;
459 val* var287 /* : String */;
460 long var289 /* : Int */;
461 long var290 /* : Int */;
462 short int var292 /* : Bool */;
463 int cltype293;
464 int idtype294;
465 const char* var_class_name295;
466 long var296 /* : Int */;
467 var_modelbuilder = p0;
468 {
469 { /* Inline parser_nodes#ANode#parent (self) on <self:AMethPropdef> */
470 var2 = self->attrs[COLOR_parser_nodes__ANode___parent].val; /* _parent on <self:AMethPropdef> */
471 var = var2;
472 RET_LABEL1:(void)0;
473 }
474 }
475 /* <var:nullable ANode> isa AClassdef */
476 cltype = type_parser_nodes__AClassdef.color;
477 idtype = type_parser_nodes__AClassdef.id;
478 if(var == NULL) {
479 var3 = 0;
480 } else {
481 if(cltype >= var->type->table_size) {
482 var3 = 0;
483 } else {
484 var3 = var->type->type_table[cltype] == idtype;
485 }
486 }
487 if (unlikely(!var3)) {
488 var_class_name = var == NULL ? "null" : var->type->name;
489 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AClassdef", var_class_name);
490 PRINT_ERROR(" (%s:%d)\n", "src/auto_super_init.nit", 56);
491 show_backtrace(1);
492 }
493 {
494 { /* Inline modelize_class#AClassdef#mclassdef (var) on <var:nullable ANode(AClassdef)> */
495 var6 = var->attrs[COLOR_modelize_class__AClassdef___mclassdef].val; /* _mclassdef on <var:nullable ANode(AClassdef)> */
496 var4 = var6;
497 RET_LABEL5:(void)0;
498 }
499 }
500 if (unlikely(var4 == NULL)) {
501 PRINT_ERROR("Runtime error: %s", "Cast failed");
502 PRINT_ERROR(" (%s:%d)\n", "src/auto_super_init.nit", 56);
503 show_backtrace(1);
504 }
505 var_mclassdef = var4;
506 {
507 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AMethPropdef> */
508 var9 = self->attrs[COLOR_modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AMethPropdef> */
509 var7 = var9;
510 RET_LABEL8:(void)0;
511 }
512 }
513 if (unlikely(var7 == NULL)) {
514 PRINT_ERROR("Runtime error: %s", "Cast failed");
515 PRINT_ERROR(" (%s:%d)\n", "src/auto_super_init.nit", 57);
516 show_backtrace(1);
517 }
518 var_mpropdef = var7;
519 {
520 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
521 var12 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MMethodDef> */
522 if (unlikely(var12 == NULL)) {
523 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
524 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
525 show_backtrace(1);
526 }
527 var10 = var12;
528 RET_LABEL11:(void)0;
529 }
530 }
531 {
532 { /* Inline model#MClassDef#mmodule (var10) on <var10:MClassDef> */
533 var15 = var10->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var10:MClassDef> */
534 if (unlikely(var15 == NULL)) {
535 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
536 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
537 show_backtrace(1);
538 }
539 var13 = var15;
540 RET_LABEL14:(void)0;
541 }
542 }
543 var_mmodule = var13;
544 {
545 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
546 var18 = var_mclassdef->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
547 if (unlikely(var18 == NULL)) {
548 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
549 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
550 show_backtrace(1);
551 }
552 var16 = var18;
553 RET_LABEL17:(void)0;
554 }
555 }
556 var_anchor = var16;
557 {
558 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
559 var21 = var_mclassdef->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
560 if (unlikely(var21 == NULL)) {
561 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
562 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
563 show_backtrace(1);
564 }
565 var19 = var21;
566 RET_LABEL20:(void)0;
567 }
568 }
569 {
570 { /* Inline model#MClass#mclass_type (var19) on <var19:MClass> */
571 var24 = var19->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var19:MClass> */
572 if (unlikely(var24 == NULL)) {
573 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
574 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
575 show_backtrace(1);
576 }
577 var22 = var24;
578 RET_LABEL23:(void)0;
579 }
580 }
581 var_recvtype = var22;
582 {
583 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
584 var27 = var_mpropdef->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
585 if (unlikely(var27 == NULL)) {
586 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
587 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
588 show_backtrace(1);
589 }
590 var25 = var27;
591 RET_LABEL26:(void)0;
592 }
593 }
594 {
595 { /* Inline model#MMethod#is_init (var25) on <var25:MProperty(MMethod)> */
596 var30 = var25->attrs[COLOR_model__MMethod___is_init].s; /* _is_init on <var25:MProperty(MMethod)> */
597 var28 = var30;
598 RET_LABEL29:(void)0;
599 }
600 }
601 var31 = !var28;
602 if (var31){
603 goto RET_LABEL;
604 } else {
605 }
606 {
607 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
608 var34 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MMethodDef> */
609 if (unlikely(var34 == NULL)) {
610 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
611 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
612 show_backtrace(1);
613 }
614 var32 = var34;
615 RET_LABEL33:(void)0;
616 }
617 }
618 {
619 var35 = model__MClassDef__is_intro(var32);
620 }
621 var36 = !var35;
622 if (var36){
623 goto RET_LABEL;
624 } else {
625 }
626 var37 = 1;
627 var_skip = var37;
628 {
629 { /* Inline model#MClassDef#in_hierarchy (var_mclassdef) on <var_mclassdef:MClassDef> */
630 var40 = var_mclassdef->attrs[COLOR_model__MClassDef___in_hierarchy].val; /* _in_hierarchy on <var_mclassdef:MClassDef> */
631 var38 = var40;
632 RET_LABEL39:(void)0;
633 }
634 }
635 if (var38 == NULL) {
636 PRINT_ERROR("Runtime error: %s", "Receiver is null");
637 PRINT_ERROR(" (%s:%d)\n", "src/auto_super_init.nit", 70);
638 show_backtrace(1);
639 } else {
640 var41 = poset__POSetElement__direct_greaters(var38);
641 }
642 {
643 var42 = ((val* (*)(val*))(var41->class->vft[COLOR_abstract_collection__Collection__iterator]))(var41) /* iterator on <var41:Collection[Object](Collection[MClassDef])>*/;
644 }
645 for(;;) {
646 {
647 var43 = ((short int (*)(val*))(var42->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var42) /* is_ok on <var42:Iterator[nullable Object]>*/;
648 }
649 if(!var43) break;
650 {
651 var44 = ((val* (*)(val*))(var42->class->vft[COLOR_abstract_collection__Iterator__item]))(var42) /* item on <var42:Iterator[nullable Object]>*/;
652 }
653 var_cd = var44;
654 {
655 { /* Inline model#MClassDef#mclass (var_cd) on <var_cd:MClassDef> */
656 var47 = var_cd->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_cd:MClassDef> */
657 if (unlikely(var47 == NULL)) {
658 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
659 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
660 show_backtrace(1);
661 }
662 var45 = var47;
663 RET_LABEL46:(void)0;
664 }
665 }
666 {
667 { /* Inline model#MClass#kind (var45) on <var45:MClass> */
668 var50 = var45->attrs[COLOR_model__MClass___kind].val; /* _kind on <var45:MClass> */
669 if (unlikely(var50 == NULL)) {
670 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
671 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
672 show_backtrace(1);
673 }
674 var48 = var50;
675 RET_LABEL49:(void)0;
676 }
677 }
678 {
679 { /* Inline model#MClassKind#need_init (var48) on <var48:MClassKind> */
680 var53 = var48->attrs[COLOR_model__MClassKind___need_init].s; /* _need_init on <var48:MClassKind> */
681 var51 = var53;
682 RET_LABEL52:(void)0;
683 }
684 }
685 if (var51){
686 var54 = 0;
687 var_skip = var54;
688 } else {
689 }
690 CONTINUE_label: (void)0;
691 {
692 ((void (*)(val*))(var42->class->vft[COLOR_abstract_collection__Iterator__next]))(var42) /* next on <var42:Iterator[nullable Object]>*/;
693 }
694 }
695 BREAK_label: (void)0;
696 if (var_skip){
697 goto RET_LABEL;
698 } else {
699 }
700 {
701 var55 = parser_nodes__AMethPropdef__n_block(self);
702 }
703 var_nblock = var55;
704 var56 = NULL;
705 if (var_nblock == NULL) {
706 var57 = 0; /* is null */
707 } else {
708 var57 = 1; /* arg is null and recv is not */
709 }
710 if (0) {
711 { /* Inline kernel#Object#!= (var_nblock,var56) on <var_nblock:nullable AExpr> */
712 var_other = var56;
713 {
714 var61 = ((short int (*)(val*, val*))(var_nblock->class->vft[COLOR_kernel__Object___61d_61d]))(var_nblock, var_other) /* == on <var_nblock:nullable AExpr(AExpr)>*/;
715 var60 = var61;
716 }
717 var62 = !var60;
718 var58 = var62;
719 goto RET_LABEL59;
720 RET_LABEL59:(void)0;
721 }
722 var57 = var58;
723 }
724 if (var57){
725 var63 = NEW_auto_super_init__AutoSuperInitVisitor(&type_auto_super_init__AutoSuperInitVisitor);
726 {
727 auto_super_init__AutoSuperInitVisitor__init(var63); /* Direct call auto_super_init#AutoSuperInitVisitor#init on <var63:AutoSuperInitVisitor>*/
728 }
729 var_v = var63;
730 {
731 parser_nodes__Visitor__enter_visit(var_v, var_nblock); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:AutoSuperInitVisitor>*/
732 }
733 {
734 { /* Inline auto_super_init#AutoSuperInitVisitor#has_explicit_super_init (var_v) on <var_v:AutoSuperInitVisitor> */
735 var66 = var_v->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].s; /* _has_explicit_super_init on <var_v:AutoSuperInitVisitor> */
736 var64 = var66;
737 RET_LABEL65:(void)0;
738 }
739 }
740 if (var64){
741 goto RET_LABEL;
742 } else {
743 }
744 } else {
745 }
746 var67 = NEW_array__Array(&type_array__Arraytyping__CallSite);
747 {
748 array__Array__init(var67); /* Direct call array#Array#init on <var67:Array[CallSite]>*/
749 }
750 var_auto_super_inits = var67;
751 {
752 { /* Inline model#MClassDef#supertypes (var_mclassdef) on <var_mclassdef:MClassDef> */
753 var70 = var_mclassdef->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on <var_mclassdef:MClassDef> */
754 if (unlikely(var70 == NULL)) {
755 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
756 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 517);
757 show_backtrace(1);
758 }
759 var68 = var70;
760 RET_LABEL69:(void)0;
761 }
762 }
763 {
764 var71 = array__AbstractArrayRead__iterator(var68);
765 }
766 for(;;) {
767 {
768 var72 = array__ArrayIterator__is_ok(var71);
769 }
770 if(!var72) break;
771 {
772 var73 = array__ArrayIterator__item(var71);
773 }
774 var_msupertype = var73;
775 {
776 { /* Inline model#MClassType#mclass (var_msupertype) on <var_msupertype:MClassType> */
777 var76 = var_msupertype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_msupertype:MClassType> */
778 if (unlikely(var76 == NULL)) {
779 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
780 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
781 show_backtrace(1);
782 }
783 var74 = var76;
784 RET_LABEL75:(void)0;
785 }
786 }
787 {
788 { /* Inline model#MClass#kind (var74) on <var74:MClass> */
789 var79 = var74->attrs[COLOR_model__MClass___kind].val; /* _kind on <var74:MClass> */
790 if (unlikely(var79 == NULL)) {
791 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
792 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
793 show_backtrace(1);
794 }
795 var77 = var79;
796 RET_LABEL78:(void)0;
797 }
798 }
799 {
800 { /* Inline model#MClassKind#need_init (var77) on <var77:MClassKind> */
801 var82 = var77->attrs[COLOR_model__MClassKind___need_init].s; /* _need_init on <var77:MClassKind> */
802 var80 = var82;
803 RET_LABEL81:(void)0;
804 }
805 }
806 var83 = !var80;
807 if (var83){
808 goto CONTINUE_label84;
809 } else {
810 }
811 {
812 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
813 var87 = var_mclassdef->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
814 if (unlikely(var87 == NULL)) {
815 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
816 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
817 show_backtrace(1);
818 }
819 var85 = var87;
820 RET_LABEL86:(void)0;
821 }
822 }
823 {
824 var88 = model__MClassType__anchor_to(var_msupertype, var_mmodule, var85);
825 }
826 var_msupertype = var88;
827 {
828 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
829 var91 = var_mpropdef->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
830 if (unlikely(var91 == NULL)) {
831 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
832 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
833 show_backtrace(1);
834 }
835 var89 = var91;
836 RET_LABEL90:(void)0;
837 }
838 }
839 {
840 { /* Inline model#MProperty#name (var89) on <var89:MProperty(MMethod)> */
841 var94 = var89->attrs[COLOR_model__MProperty___name].val; /* _name on <var89:MProperty(MMethod)> */
842 if (unlikely(var94 == NULL)) {
843 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
844 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
845 show_backtrace(1);
846 }
847 var92 = var94;
848 RET_LABEL93:(void)0;
849 }
850 }
851 {
852 var95 = modelbuilder__ModelBuilder__try_get_mproperty_by_name2(var_modelbuilder, self, var_mmodule, var_msupertype, var92);
853 }
854 var_candidate = var95;
855 var96 = NULL;
856 if (var_candidate == NULL) {
857 var97 = 1; /* is null */
858 } else {
859 var97 = 0; /* arg is null but recv is not */
860 }
861 if (0) {
862 { /* Inline kernel#Object#== (var_candidate,var96) on <var_candidate:nullable MProperty> */
863 var_other100 = var96;
864 {
865 { /* Inline kernel#Object#is_same_instance (var_candidate,var_other100) on <var_candidate:nullable MProperty(MProperty)> */
866 var103 = var_candidate == var_other100;
867 var101 = var103;
868 goto RET_LABEL102;
869 RET_LABEL102:(void)0;
870 }
871 }
872 var98 = var101;
873 goto RET_LABEL99;
874 RET_LABEL99:(void)0;
875 }
876 var97 = var98;
877 }
878 if (var97){
879 if (varonce) {
880 var104 = varonce;
881 } else {
882 var105 = "init";
883 var106 = 4;
884 var107 = string__NativeString__to_s_with_length(var105, var106);
885 var104 = var107;
886 varonce = var104;
887 }
888 {
889 var108 = modelbuilder__ModelBuilder__try_get_mproperty_by_name2(var_modelbuilder, self, var_mmodule, var_msupertype, var104);
890 }
891 var_candidate = var108;
892 } else {
893 }
894 var109 = NULL;
895 if (var_candidate == NULL) {
896 var110 = 1; /* is null */
897 } else {
898 var110 = 0; /* arg is null but recv is not */
899 }
900 if (0) {
901 { /* Inline kernel#Object#== (var_candidate,var109) on <var_candidate:nullable MProperty> */
902 var_other100 = var109;
903 {
904 { /* Inline kernel#Object#is_same_instance (var_candidate,var_other100) on <var_candidate:nullable MProperty(MProperty)> */
905 var115 = var_candidate == var_other100;
906 var113 = var115;
907 goto RET_LABEL114;
908 RET_LABEL114:(void)0;
909 }
910 }
911 var111 = var113;
912 goto RET_LABEL112;
913 RET_LABEL112:(void)0;
914 }
915 var110 = var111;
916 }
917 if (var110){
918 if (varonce116) {
919 var117 = varonce116;
920 } else {
921 var118 = "Error: Cannot do an implicit constructor call in ";
922 var119 = 49;
923 var120 = string__NativeString__to_s_with_length(var118, var119);
924 var117 = var120;
925 varonce116 = var117;
926 }
927 if (varonce121) {
928 var122 = varonce121;
929 } else {
930 var123 = "; there is no constructor named ";
931 var124 = 32;
932 var125 = string__NativeString__to_s_with_length(var123, var124);
933 var122 = var125;
934 varonce121 = var122;
935 }
936 {
937 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
938 var128 = var_mpropdef->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
939 if (unlikely(var128 == NULL)) {
940 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
941 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
942 show_backtrace(1);
943 }
944 var126 = var128;
945 RET_LABEL127:(void)0;
946 }
947 }
948 {
949 { /* Inline model#MProperty#name (var126) on <var126:MProperty(MMethod)> */
950 var131 = var126->attrs[COLOR_model__MProperty___name].val; /* _name on <var126:MProperty(MMethod)> */
951 if (unlikely(var131 == NULL)) {
952 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
953 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
954 show_backtrace(1);
955 }
956 var129 = var131;
957 RET_LABEL130:(void)0;
958 }
959 }
960 if (varonce132) {
961 var133 = varonce132;
962 } else {
963 var134 = " in ";
964 var135 = 4;
965 var136 = string__NativeString__to_s_with_length(var134, var135);
966 var133 = var136;
967 varonce132 = var133;
968 }
969 if (varonce137) {
970 var138 = varonce137;
971 } else {
972 var139 = ".";
973 var140 = 1;
974 var141 = string__NativeString__to_s_with_length(var139, var140);
975 var138 = var141;
976 varonce137 = var138;
977 }
978 var142 = NEW_array__Array(&type_array__Arraykernel__Object);
979 { /* var142 = array_instance Array[Object] */
980 var143 = 7;
981 var144 = NEW_array__NativeArray(var143, &type_array__NativeArraykernel__Object);
982 ((struct instance_array__NativeArray*)var144)->values[0] = (val*) var117;
983 ((struct instance_array__NativeArray*)var144)->values[1] = (val*) var_mpropdef;
984 ((struct instance_array__NativeArray*)var144)->values[2] = (val*) var122;
985 ((struct instance_array__NativeArray*)var144)->values[3] = (val*) var129;
986 ((struct instance_array__NativeArray*)var144)->values[4] = (val*) var133;
987 ((struct instance_array__NativeArray*)var144)->values[5] = (val*) var_msupertype;
988 ((struct instance_array__NativeArray*)var144)->values[6] = (val*) var138;
989 {
990 ((void (*)(val*, val*, long))(var142->class->vft[COLOR_array__Array__with_native]))(var142, var144, var143) /* with_native on <var142:Array[Object]>*/;
991 }
992 }
993 {
994 var145 = ((val* (*)(val*))(var142->class->vft[COLOR_string__Object__to_s]))(var142) /* to_s on <var142:Array[Object]>*/;
995 }
996 {
997 modelbuilder__ModelBuilder__error(var_modelbuilder, self, var145); /* Direct call modelbuilder#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
998 }
999 goto RET_LABEL;
1000 } else {
1001 }
1002 /* <var_candidate:nullable MProperty(MProperty)> isa MMethod */
1003 cltype147 = type_model__MMethod.color;
1004 idtype148 = type_model__MMethod.id;
1005 if(cltype147 >= var_candidate->type->table_size) {
1006 var146 = 0;
1007 } else {
1008 var146 = var_candidate->type->type_table[cltype147] == idtype148;
1009 }
1010 if (unlikely(!var146)) {
1011 PRINT_ERROR("Runtime error: %s", "Assert failed");
1012 PRINT_ERROR(" (%s:%d)\n", "src/auto_super_init.nit", 100);
1013 show_backtrace(1);
1014 }
1015 {
1016 var149 = model__MProperty__lookup_definitions(var_candidate, var_mmodule, var_anchor);
1017 }
1018 var_candidatedefs = var149;
1019 {
1020 var150 = abstract_collection__SequenceRead__first(var_candidatedefs);
1021 }
1022 var_candidatedef = var150;
1023 {
1024 { /* Inline model#MMethodDef#msignature (var_candidatedef) on <var_candidatedef:MMethodDef> */
1025 var153 = var_candidatedef->attrs[COLOR_model__MMethodDef___msignature].val; /* _msignature on <var_candidatedef:MMethodDef> */
1026 var151 = var153;
1027 RET_LABEL152:(void)0;
1028 }
1029 }
1030 var_msignature = var151;
1031 var154 = 1;
1032 if (var_msignature == NULL) {
1033 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1034 PRINT_ERROR(" (%s:%d)\n", "src/auto_super_init.nit", 107);
1035 show_backtrace(1);
1036 } else {
1037 var155 = model__MSignature__resolve_for(var_msignature, var_recvtype, var_anchor, var_mmodule, var154);
1038 }
1039 var_msignature = var155;
1040 var156 = NEW_typing__CallSite(&type_typing__CallSite);
1041 var157 = 1;
1042 var158 = 0;
1043 {
1044 { /* Inline typing#CallSite#init (var156,self,var_recvtype,var_mmodule,var_anchor,var157,var_candidate,var_candidatedef,var_msignature,var158) on <var156:CallSite> */
1045 var156->attrs[COLOR_typing__CallSite___node].val = self; /* _node on <var156:CallSite> */
1046 var156->attrs[COLOR_typing__CallSite___recv].val = var_recvtype; /* _recv on <var156:CallSite> */
1047 var156->attrs[COLOR_typing__CallSite___mmodule].val = var_mmodule; /* _mmodule on <var156:CallSite> */
1048 var156->attrs[COLOR_typing__CallSite___anchor].val = var_anchor; /* _anchor on <var156:CallSite> */
1049 var156->attrs[COLOR_typing__CallSite___recv_is_self].s = var157; /* _recv_is_self on <var156:CallSite> */
1050 var156->attrs[COLOR_typing__CallSite___mproperty].val = var_candidate; /* _mproperty on <var156:CallSite> */
1051 var156->attrs[COLOR_typing__CallSite___mpropdef].val = var_candidatedef; /* _mpropdef on <var156:CallSite> */
1052 var156->attrs[COLOR_typing__CallSite___msignature].val = var_msignature; /* _msignature on <var156:CallSite> */
1053 var156->attrs[COLOR_typing__CallSite___erasure_cast].s = var158; /* _erasure_cast on <var156:CallSite> */
1054 RET_LABEL159:(void)0;
1055 }
1056 }
1057 var_callsite = var156;
1058 {
1059 array__Array__add(var_auto_super_inits, var_callsite); /* Direct call array#Array#add on <var_auto_super_inits:Array[CallSite]>*/
1060 }
1061 CONTINUE_label84: (void)0;
1062 {
1063 array__ArrayIterator__next(var71); /* Direct call array#ArrayIterator#next on <var71:ArrayIterator[nullable Object]>*/
1064 }
1065 }
1066 BREAK_label84: (void)0;
1067 {
1068 var160 = array__AbstractArrayRead__is_empty(var_auto_super_inits);
1069 }
1070 if (var160){
1071 if (varonce161) {
1072 var162 = varonce161;
1073 } else {
1074 var163 = "Error: No constructors to call implicitely in ";
1075 var164 = 46;
1076 var165 = string__NativeString__to_s_with_length(var163, var164);
1077 var162 = var165;
1078 varonce161 = var162;
1079 }
1080 if (varonce166) {
1081 var167 = varonce166;
1082 } else {
1083 var168 = ". Call one explicitely.";
1084 var169 = 23;
1085 var170 = string__NativeString__to_s_with_length(var168, var169);
1086 var167 = var170;
1087 varonce166 = var167;
1088 }
1089 var171 = NEW_array__Array(&type_array__Arraykernel__Object);
1090 { /* var171 = array_instance Array[Object] */
1091 var172 = 3;
1092 var173 = NEW_array__NativeArray(var172, &type_array__NativeArraykernel__Object);
1093 ((struct instance_array__NativeArray*)var173)->values[0] = (val*) var162;
1094 ((struct instance_array__NativeArray*)var173)->values[1] = (val*) var_mpropdef;
1095 ((struct instance_array__NativeArray*)var173)->values[2] = (val*) var167;
1096 {
1097 ((void (*)(val*, val*, long))(var171->class->vft[COLOR_array__Array__with_native]))(var171, var173, var172) /* with_native on <var171:Array[Object]>*/;
1098 }
1099 }
1100 {
1101 var174 = ((val* (*)(val*))(var171->class->vft[COLOR_string__Object__to_s]))(var171) /* to_s on <var171:Array[Object]>*/;
1102 }
1103 {
1104 modelbuilder__ModelBuilder__error(var_modelbuilder, self, var174); /* Direct call modelbuilder#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
1105 }
1106 goto RET_LABEL;
1107 } else {
1108 }
1109 {
1110 var175 = array__AbstractArrayRead__iterator(var_auto_super_inits);
1111 }
1112 for(;;) {
1113 {
1114 var176 = array__ArrayIterator__is_ok(var175);
1115 }
1116 if(!var176) break;
1117 {
1118 var177 = array__ArrayIterator__item(var175);
1119 }
1120 var_auto_super_init = var177;
1121 {
1122 { /* Inline typing#CallSite#mpropdef (var_auto_super_init) on <var_auto_super_init:CallSite> */
1123 var180 = var_auto_super_init->attrs[COLOR_typing__CallSite___mpropdef].val; /* _mpropdef on <var_auto_super_init:CallSite> */
1124 if (unlikely(var180 == NULL)) {
1125 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
1126 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 425);
1127 show_backtrace(1);
1128 }
1129 var178 = var180;
1130 RET_LABEL179:(void)0;
1131 }
1132 }
1133 var_auto_super_init_def = var178;
1134 {
1135 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:MMethodDef> */
1136 var183 = var_mpropdef->attrs[COLOR_model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:MMethodDef> */
1137 var181 = var183;
1138 RET_LABEL182:(void)0;
1139 }
1140 }
1141 if (unlikely(var181 == NULL)) {
1142 PRINT_ERROR("Runtime error: %s", "Cast failed");
1143 PRINT_ERROR(" (%s:%d)\n", "src/auto_super_init.nit", 118);
1144 show_backtrace(1);
1145 }
1146 var_msig = var181;
1147 {
1148 { /* Inline typing#CallSite#msignature (var_auto_super_init) on <var_auto_super_init:CallSite> */
1149 var186 = var_auto_super_init->attrs[COLOR_typing__CallSite___msignature].val; /* _msignature on <var_auto_super_init:CallSite> */
1150 if (unlikely(var186 == NULL)) {
1151 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
1152 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 429);
1153 show_backtrace(1);
1154 }
1155 var184 = var186;
1156 RET_LABEL185:(void)0;
1157 }
1158 }
1159 var_supermsig = var184;
1160 {
1161 var187 = model__MSignature__arity(var_supermsig);
1162 }
1163 {
1164 var188 = model__MSignature__arity(var_msig);
1165 }
1166 {
1167 { /* Inline kernel#Int#> (var187,var188) on <var187:Int> */
1168 /* Covariant cast for argument 0 (i) <var188:Int> isa OTHER */
1169 /* <var188:Int> isa OTHER */
1170 var191 = 1; /* easy <var188:Int> isa OTHER*/
1171 if (unlikely(!var191)) {
1172 var_class_name194 = type_kernel__Int.name;
1173 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name194);
1174 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
1175 show_backtrace(1);
1176 }
1177 var195 = var187 > var188;
1178 var189 = var195;
1179 goto RET_LABEL190;
1180 RET_LABEL190:(void)0;
1181 }
1182 }
1183 if (var189){
1184 if (varonce196) {
1185 var197 = varonce196;
1186 } else {
1187 var198 = "Error: Cannot do an implicit constructor call to ";
1188 var199 = 49;
1189 var200 = string__NativeString__to_s_with_length(var198, var199);
1190 var197 = var200;
1191 varonce196 = var197;
1192 }
1193 if (varonce201) {
1194 var202 = varonce201;
1195 } else {
1196 var203 = ". Expected at least ";
1197 var204 = 20;
1198 var205 = string__NativeString__to_s_with_length(var203, var204);
1199 var202 = var205;
1200 varonce201 = var202;
1201 }
1202 {
1203 var206 = model__MSignature__arity(var_supermsig);
1204 }
1205 if (varonce207) {
1206 var208 = varonce207;
1207 } else {
1208 var209 = " arguments, got ";
1209 var210 = 16;
1210 var211 = string__NativeString__to_s_with_length(var209, var210);
1211 var208 = var211;
1212 varonce207 = var208;
1213 }
1214 {
1215 var212 = model__MSignature__arity(var_msig);
1216 }
1217 if (varonce213) {
1218 var214 = varonce213;
1219 } else {
1220 var215 = ".";
1221 var216 = 1;
1222 var217 = string__NativeString__to_s_with_length(var215, var216);
1223 var214 = var217;
1224 varonce213 = var214;
1225 }
1226 var218 = NEW_array__Array(&type_array__Arraykernel__Object);
1227 { /* var218 = array_instance Array[Object] */
1228 var219 = 8;
1229 var220 = NEW_array__NativeArray(var219, &type_array__NativeArraykernel__Object);
1230 ((struct instance_array__NativeArray*)var220)->values[0] = (val*) var197;
1231 ((struct instance_array__NativeArray*)var220)->values[1] = (val*) var_auto_super_init_def;
1232 ((struct instance_array__NativeArray*)var220)->values[2] = (val*) var_supermsig;
1233 ((struct instance_array__NativeArray*)var220)->values[3] = (val*) var202;
1234 var221 = BOX_kernel__Int(var206); /* autobox from Int to Object */
1235 ((struct instance_array__NativeArray*)var220)->values[4] = (val*) var221;
1236 ((struct instance_array__NativeArray*)var220)->values[5] = (val*) var208;
1237 var222 = BOX_kernel__Int(var212); /* autobox from Int to Object */
1238 ((struct instance_array__NativeArray*)var220)->values[6] = (val*) var222;
1239 ((struct instance_array__NativeArray*)var220)->values[7] = (val*) var214;
1240 {
1241 ((void (*)(val*, val*, long))(var218->class->vft[COLOR_array__Array__with_native]))(var218, var220, var219) /* with_native on <var218:Array[Object]>*/;
1242 }
1243 }
1244 {
1245 var223 = ((val* (*)(val*))(var218->class->vft[COLOR_string__Object__to_s]))(var218) /* to_s on <var218:Array[Object]>*/;
1246 }
1247 {
1248 modelbuilder__ModelBuilder__error(var_modelbuilder, self, var223); /* Direct call modelbuilder#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
1249 }
1250 goto CONTINUE_label224;
1251 } else {
1252 }
1253 var225 = 0;
1254 var_i = var225;
1255 {
1256 { /* Inline model#MSignature#mparameters (var_supermsig) on <var_supermsig:MSignature> */
1257 var228 = var_supermsig->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <var_supermsig:MSignature> */
1258 if (unlikely(var228 == NULL)) {
1259 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
1260 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
1261 show_backtrace(1);
1262 }
1263 var226 = var228;
1264 RET_LABEL227:(void)0;
1265 }
1266 }
1267 {
1268 var229 = array__AbstractArrayRead__iterator(var226);
1269 }
1270 for(;;) {
1271 {
1272 var230 = array__ArrayIterator__is_ok(var229);
1273 }
1274 if(!var230) break;
1275 {
1276 var231 = array__ArrayIterator__item(var229);
1277 }
1278 var_sp = var231;
1279 {
1280 { /* Inline model#MSignature#mparameters (var_msig) on <var_msig:MSignature> */
1281 var234 = var_msig->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <var_msig:MSignature> */
1282 if (unlikely(var234 == NULL)) {
1283 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
1284 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
1285 show_backtrace(1);
1286 }
1287 var232 = var234;
1288 RET_LABEL233:(void)0;
1289 }
1290 }
1291 {
1292 var235 = array__Array___91d_93d(var232, var_i);
1293 }
1294 var_p = var235;
1295 {
1296 { /* Inline model#MParameter#mtype (var_p) on <var_p:MParameter> */
1297 var238 = var_p->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <var_p:MParameter> */
1298 if (unlikely(var238 == NULL)) {
1299 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1300 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
1301 show_backtrace(1);
1302 }
1303 var236 = var238;
1304 RET_LABEL237:(void)0;
1305 }
1306 }
1307 var_sub = var236;
1308 {
1309 { /* Inline model#MParameter#mtype (var_sp) on <var_sp:MParameter> */
1310 var241 = var_sp->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <var_sp:MParameter> */
1311 if (unlikely(var241 == NULL)) {
1312 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1313 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
1314 show_backtrace(1);
1315 }
1316 var239 = var241;
1317 RET_LABEL240:(void)0;
1318 }
1319 }
1320 var_sup = var239;
1321 {
1322 var242 = model__MType__is_subtype(var_sub, var_mmodule, var_anchor, var_sup);
1323 }
1324 var243 = !var242;
1325 if (var243){
1326 if (varonce244) {
1327 var245 = varonce244;
1328 } else {
1329 var246 = "Error: Cannot do an implicit constructor call to ";
1330 var247 = 49;
1331 var248 = string__NativeString__to_s_with_length(var246, var247);
1332 var245 = var248;
1333 varonce244 = var245;
1334 }
1335 if (varonce249) {
1336 var250 = varonce249;
1337 } else {
1338 var251 = ". Expected argument #";
1339 var252 = 21;
1340 var253 = string__NativeString__to_s_with_length(var251, var252);
1341 var250 = var253;
1342 varonce249 = var250;
1343 }
1344 if (varonce254) {
1345 var255 = varonce254;
1346 } else {
1347 var256 = " of type ";
1348 var257 = 9;
1349 var258 = string__NativeString__to_s_with_length(var256, var257);
1350 var255 = var258;
1351 varonce254 = var255;
1352 }
1353 {
1354 { /* Inline model#MParameter#mtype (var_sp) on <var_sp:MParameter> */
1355 var261 = var_sp->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <var_sp:MParameter> */
1356 if (unlikely(var261 == NULL)) {
1357 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1358 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
1359 show_backtrace(1);
1360 }
1361 var259 = var261;
1362 RET_LABEL260:(void)0;
1363 }
1364 }
1365 if (varonce262) {
1366 var263 = varonce262;
1367 } else {
1368 var264 = ", got implicit argument ";
1369 var265 = 24;
1370 var266 = string__NativeString__to_s_with_length(var264, var265);
1371 var263 = var266;
1372 varonce262 = var263;
1373 }
1374 {
1375 { /* Inline model#MParameter#name (var_p) on <var_p:MParameter> */
1376 var269 = var_p->attrs[COLOR_model__MParameter___name].val; /* _name on <var_p:MParameter> */
1377 if (unlikely(var269 == NULL)) {
1378 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1379 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1549);
1380 show_backtrace(1);
1381 }
1382 var267 = var269;
1383 RET_LABEL268:(void)0;
1384 }
1385 }
1386 if (varonce270) {
1387 var271 = varonce270;
1388 } else {
1389 var272 = " of type ";
1390 var273 = 9;
1391 var274 = string__NativeString__to_s_with_length(var272, var273);
1392 var271 = var274;
1393 varonce270 = var271;
1394 }
1395 {
1396 { /* Inline model#MParameter#mtype (var_p) on <var_p:MParameter> */
1397 var277 = var_p->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <var_p:MParameter> */
1398 if (unlikely(var277 == NULL)) {
1399 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1400 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
1401 show_backtrace(1);
1402 }
1403 var275 = var277;
1404 RET_LABEL276:(void)0;
1405 }
1406 }
1407 if (varonce278) {
1408 var279 = varonce278;
1409 } else {
1410 var280 = ".";
1411 var281 = 1;
1412 var282 = string__NativeString__to_s_with_length(var280, var281);
1413 var279 = var282;
1414 varonce278 = var279;
1415 }
1416 var283 = NEW_array__Array(&type_array__Arraykernel__Object);
1417 { /* var283 = array_instance Array[Object] */
1418 var284 = 12;
1419 var285 = NEW_array__NativeArray(var284, &type_array__NativeArraykernel__Object);
1420 ((struct instance_array__NativeArray*)var285)->values[0] = (val*) var245;
1421 ((struct instance_array__NativeArray*)var285)->values[1] = (val*) var_auto_super_init_def;
1422 ((struct instance_array__NativeArray*)var285)->values[2] = (val*) var_supermsig;
1423 ((struct instance_array__NativeArray*)var285)->values[3] = (val*) var250;
1424 var286 = BOX_kernel__Int(var_i); /* autobox from Int to Object */
1425 ((struct instance_array__NativeArray*)var285)->values[4] = (val*) var286;
1426 ((struct instance_array__NativeArray*)var285)->values[5] = (val*) var255;
1427 ((struct instance_array__NativeArray*)var285)->values[6] = (val*) var259;
1428 ((struct instance_array__NativeArray*)var285)->values[7] = (val*) var263;
1429 ((struct instance_array__NativeArray*)var285)->values[8] = (val*) var267;
1430 ((struct instance_array__NativeArray*)var285)->values[9] = (val*) var271;
1431 ((struct instance_array__NativeArray*)var285)->values[10] = (val*) var275;
1432 ((struct instance_array__NativeArray*)var285)->values[11] = (val*) var279;
1433 {
1434 ((void (*)(val*, val*, long))(var283->class->vft[COLOR_array__Array__with_native]))(var283, var285, var284) /* with_native on <var283:Array[Object]>*/;
1435 }
1436 }
1437 {
1438 var287 = ((val* (*)(val*))(var283->class->vft[COLOR_string__Object__to_s]))(var283) /* to_s on <var283:Array[Object]>*/;
1439 }
1440 {
1441 modelbuilder__ModelBuilder__error(var_modelbuilder, self, var287); /* Direct call modelbuilder#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
1442 }
1443 goto BREAK_label288;
1444 } else {
1445 }
1446 var289 = 1;
1447 {
1448 { /* Inline kernel#Int#+ (var_i,var289) on <var_i:Int> */
1449 /* Covariant cast for argument 0 (i) <var289:Int> isa OTHER */
1450 /* <var289:Int> isa OTHER */
1451 var292 = 1; /* easy <var289:Int> isa OTHER*/
1452 if (unlikely(!var292)) {
1453 var_class_name295 = type_kernel__Int.name;
1454 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name295);
1455 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1456 show_backtrace(1);
1457 }
1458 var296 = var_i + var289;
1459 var290 = var296;
1460 goto RET_LABEL291;
1461 RET_LABEL291:(void)0;
1462 }
1463 }
1464 var_i = var290;
1465 CONTINUE_label288: (void)0;
1466 {
1467 array__ArrayIterator__next(var229); /* Direct call array#ArrayIterator#next on <var229:ArrayIterator[nullable Object]>*/
1468 }
1469 }
1470 BREAK_label288: (void)0;
1471 CONTINUE_label224: (void)0;
1472 {
1473 array__ArrayIterator__next(var175); /* Direct call array#ArrayIterator#next on <var175:ArrayIterator[nullable Object]>*/
1474 }
1475 }
1476 BREAK_label224: (void)0;
1477 {
1478 { /* Inline auto_super_init#AMethPropdef#auto_super_inits= (self,var_auto_super_inits) on <self:AMethPropdef> */
1479 self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_inits].val = var_auto_super_inits; /* _auto_super_inits on <self:AMethPropdef> */
1480 RET_LABEL297:(void)0;
1481 }
1482 }
1483 RET_LABEL:;
1484 }
1485 /* method auto_super_init#AMethPropdef#do_auto_super_init for (self: Object, ModelBuilder) */
1486 void VIRTUAL_auto_super_init__AMethPropdef__do_auto_super_init(val* self, val* p0) {
1487 auto_super_init__AMethPropdef__do_auto_super_init(self, p0); /* Direct call auto_super_init#AMethPropdef#do_auto_super_init on <self:Object(AMethPropdef)>*/
1488 RET_LABEL:;
1489 }
1490 /* method auto_super_init#ANode#accept_auto_super_init for (self: ANode, AutoSuperInitVisitor) */
1491 void auto_super_init__ANode__accept_auto_super_init(val* self, val* p0) {
1492 val* var_v /* var v: AutoSuperInitVisitor */;
1493 var_v = p0;
1494 RET_LABEL:;
1495 }
1496 /* method auto_super_init#ANode#accept_auto_super_init for (self: Object, AutoSuperInitVisitor) */
1497 void VIRTUAL_auto_super_init__ANode__accept_auto_super_init(val* self, val* p0) {
1498 val* var_v /* var v: AutoSuperInitVisitor */;
1499 { /* Inline auto_super_init#ANode#accept_auto_super_init (self,p0) on <self:Object(ANode)> */
1500 var_v = p0;
1501 RET_LABEL1:(void)0;
1502 }
1503 RET_LABEL:;
1504 }
1505 /* method auto_super_init#ASendExpr#accept_auto_super_init for (self: ASendExpr, AutoSuperInitVisitor) */
1506 void auto_super_init__ASendExpr__accept_auto_super_init(val* self, val* p0) {
1507 val* var_v /* var v: AutoSuperInitVisitor */;
1508 val* var /* : nullable CallSite */;
1509 val* var2 /* : nullable CallSite */;
1510 val* var3 /* : MMethod */;
1511 val* var5 /* : MMethod */;
1512 val* var_mproperty /* var mproperty: MMethod */;
1513 val* var6 /* : null */;
1514 short int var7 /* : Bool */;
1515 short int var8 /* : Bool */;
1516 val* var_other /* var other: nullable Object */;
1517 short int var10 /* : Bool */;
1518 short int var12 /* : Bool */;
1519 short int var13 /* : Bool */;
1520 short int var15 /* : Bool */;
1521 short int var16 /* : Bool */;
1522 var_v = p0;
1523 {
1524 { /* Inline typing#ASendExpr#callsite (self) on <self:ASendExpr> */
1525 var2 = self->attrs[COLOR_typing__ASendExpr___callsite].val; /* _callsite on <self:ASendExpr> */
1526 var = var2;
1527 RET_LABEL1:(void)0;
1528 }
1529 }
1530 if (var == NULL) {
1531 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1532 PRINT_ERROR(" (%s:%d)\n", "src/auto_super_init.nit", 149);
1533 show_backtrace(1);
1534 } else {
1535 { /* Inline typing#CallSite#mproperty (var) on <var:nullable CallSite> */
1536 if (unlikely(var == NULL)) {
1537 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1538 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 422);
1539 show_backtrace(1);
1540 }
1541 var5 = var->attrs[COLOR_typing__CallSite___mproperty].val; /* _mproperty on <var:nullable CallSite> */
1542 if (unlikely(var5 == NULL)) {
1543 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1544 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 422);
1545 show_backtrace(1);
1546 }
1547 var3 = var5;
1548 RET_LABEL4:(void)0;
1549 }
1550 }
1551 var_mproperty = var3;
1552 var6 = NULL;
1553 {
1554 var7 = 0; /* arg is null but recv is not */
1555 }
1556 if (0) {
1557 { /* Inline kernel#Object#== (var_mproperty,var6) on <var_mproperty:MMethod> */
1558 var_other = var6;
1559 {
1560 { /* Inline kernel#Object#is_same_instance (var_mproperty,var_other) on <var_mproperty:MMethod> */
1561 var12 = var_mproperty == var_other;
1562 var10 = var12;
1563 goto RET_LABEL11;
1564 RET_LABEL11:(void)0;
1565 }
1566 }
1567 var8 = var10;
1568 goto RET_LABEL9;
1569 RET_LABEL9:(void)0;
1570 }
1571 var7 = var8;
1572 }
1573 if (var7){
1574 goto RET_LABEL;
1575 } else {
1576 }
1577 {
1578 { /* Inline model#MMethod#is_init (var_mproperty) on <var_mproperty:MMethod> */
1579 var15 = var_mproperty->attrs[COLOR_model__MMethod___is_init].s; /* _is_init on <var_mproperty:MMethod> */
1580 var13 = var15;
1581 RET_LABEL14:(void)0;
1582 }
1583 }
1584 if (var13){
1585 var16 = 1;
1586 {
1587 { /* Inline auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= (var_v,var16) on <var_v:AutoSuperInitVisitor> */
1588 var_v->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].s = var16; /* _has_explicit_super_init on <var_v:AutoSuperInitVisitor> */
1589 RET_LABEL17:(void)0;
1590 }
1591 }
1592 } else {
1593 }
1594 RET_LABEL:;
1595 }
1596 /* method auto_super_init#ASendExpr#accept_auto_super_init for (self: Object, AutoSuperInitVisitor) */
1597 void VIRTUAL_auto_super_init__ASendExpr__accept_auto_super_init(val* self, val* p0) {
1598 auto_super_init__ASendExpr__accept_auto_super_init(self, p0); /* Direct call auto_super_init#ASendExpr#accept_auto_super_init on <self:Object(ASendExpr)>*/
1599 RET_LABEL:;
1600 }
1601 /* method auto_super_init#ASuperExpr#accept_auto_super_init for (self: ASuperExpr, AutoSuperInitVisitor) */
1602 void auto_super_init__ASuperExpr__accept_auto_super_init(val* self, val* p0) {
1603 val* var_v /* var v: AutoSuperInitVisitor */;
1604 short int var /* : Bool */;
1605 var_v = p0;
1606 var = 1;
1607 {
1608 { /* Inline auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= (var_v,var) on <var_v:AutoSuperInitVisitor> */
1609 var_v->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].s = var; /* _has_explicit_super_init on <var_v:AutoSuperInitVisitor> */
1610 RET_LABEL1:(void)0;
1611 }
1612 }
1613 RET_LABEL:;
1614 }
1615 /* method auto_super_init#ASuperExpr#accept_auto_super_init for (self: Object, AutoSuperInitVisitor) */
1616 void VIRTUAL_auto_super_init__ASuperExpr__accept_auto_super_init(val* self, val* p0) {
1617 auto_super_init__ASuperExpr__accept_auto_super_init(self, p0); /* Direct call auto_super_init#ASuperExpr#accept_auto_super_init on <self:Object(ASuperExpr)>*/
1618 RET_LABEL:;
1619 }