Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__auto_super_init.sep.1.c
1 #include "nitc__auto_super_init.sep.0.h"
2 /* method auto_super_init$ToolContext$auto_super_init_phase for (self: ToolContext): Phase */
3 val* nitc__auto_super_init___ToolContext___auto_super_init_phase(val* self) {
4 val* var /* : Phase */;
5 val* var1 /* : Phase */;
6 var1 = self->attrs[COLOR_nitc__auto_super_init__ToolContext___auto_super_init_phase].val; /* _auto_super_init_phase on <self:ToolContext> */
7 if (unlikely(var1 == NULL)) {
8 if(catchStack.cursor >= 0){
9 longjmp(catchStack.envs[catchStack.cursor], 1);
10 }
11 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _auto_super_init_phase");
12 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__auto_super_init, 25);
13 fatal_exit(1);
14 }
15 var = var1;
16 RET_LABEL:;
17 return var;
18 }
19 /* method auto_super_init$AutoSuperInitPhase$process_npropdef for (self: AutoSuperInitPhase, APropdef) */
20 void nitc__auto_super_init___nitc__auto_super_init__AutoSuperInitPhase___nitc__phase__Phase__process_npropdef(val* self, val* p0) {
21 val* var_npropdef /* var npropdef: APropdef */;
22 short int var /* : Bool */;
23 int cltype;
24 int idtype;
25 val* var1 /* : ToolContext */;
26 val* var3 /* : ToolContext */;
27 val* var4 /* : ModelBuilder */;
28 var_npropdef = p0;
29 /* <var_npropdef:APropdef> isa AMethPropdef */
30 cltype = type_nitc__AMethPropdef.color;
31 idtype = type_nitc__AMethPropdef.id;
32 if(cltype >= var_npropdef->type->table_size) {
33 var = 0;
34 } else {
35 var = var_npropdef->type->type_table[cltype] == idtype;
36 }
37 if (var){
38 {
39 { /* Inline phase$Phase$toolcontext (self) on <self:AutoSuperInitPhase> */
40 var3 = self->attrs[COLOR_nitc__phase__Phase___toolcontext].val; /* _toolcontext on <self:AutoSuperInitPhase> */
41 if (unlikely(var3 == NULL)) {
42 if(catchStack.cursor >= 0){
43 longjmp(catchStack.envs[catchStack.cursor], 1);
44 }
45 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
46 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__phase, 210);
47 fatal_exit(1);
48 }
49 var1 = var3;
50 RET_LABEL2:(void)0;
51 }
52 }
53 {
54 var4 = nitc__modelbuilder_base___ToolContext___modelbuilder(var1);
55 }
56 {
57 nitc__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)>*/
58 }
59 } else {
60 }
61 RET_LABEL:;
62 }
63 /* method auto_super_init$AutoSuperInitVisitor$visit for (self: AutoSuperInitVisitor, ANode) */
64 void nitc__auto_super_init___nitc__auto_super_init__AutoSuperInitVisitor___nitc__parser_nodes__Visitor__visit(val* self, val* p0) {
65 val* var_n /* var n: ANode */;
66 var_n = p0;
67 {
68 ((void(*)(val* self, val* p0))(var_n->class->vft[COLOR_nitc__auto_super_init__ANode__accept_auto_super_init]))(var_n, self); /* accept_auto_super_init on <var_n:ANode>*/
69 }
70 {
71 ((void(*)(val* self, val* p0))(var_n->class->vft[COLOR_nitc__parser_nodes__ANode__visit_all]))(var_n, self); /* visit_all on <var_n:ANode>*/
72 }
73 RET_LABEL:;
74 }
75 /* method auto_super_init$AutoSuperInitVisitor$has_explicit_super_init for (self: AutoSuperInitVisitor): nullable ANode */
76 val* nitc__auto_super_init___nitc__auto_super_init__AutoSuperInitVisitor___has_explicit_super_init(val* self) {
77 val* var /* : nullable ANode */;
78 val* var1 /* : nullable ANode */;
79 var1 = self->attrs[COLOR_nitc__auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val; /* _has_explicit_super_init on <self:AutoSuperInitVisitor> */
80 var = var1;
81 RET_LABEL:;
82 return var;
83 }
84 /* method auto_super_init$AutoSuperInitVisitor$has_explicit_super_init= for (self: AutoSuperInitVisitor, nullable ANode) */
85 void nitc__auto_super_init___nitc__auto_super_init__AutoSuperInitVisitor___has_explicit_super_init_61d(val* self, val* p0) {
86 self->attrs[COLOR_nitc__auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val = p0; /* _has_explicit_super_init on <self:AutoSuperInitVisitor> */
87 RET_LABEL:;
88 }
89 /* method auto_super_init$AutoSuperInitVisitor$is_broken for (self: AutoSuperInitVisitor): Bool */
90 short int nitc__auto_super_init___nitc__auto_super_init__AutoSuperInitVisitor___is_broken(val* self) {
91 short int var /* : Bool */;
92 short int var1 /* : Bool */;
93 var1 = self->attrs[COLOR_nitc__auto_super_init__AutoSuperInitVisitor___is_broken].s; /* _is_broken on <self:AutoSuperInitVisitor> */
94 var = var1;
95 RET_LABEL:;
96 return var;
97 }
98 /* method auto_super_init$AutoSuperInitVisitor$is_broken= for (self: AutoSuperInitVisitor, Bool) */
99 void nitc__auto_super_init___nitc__auto_super_init__AutoSuperInitVisitor___is_broken_61d(val* self, short int p0) {
100 self->attrs[COLOR_nitc__auto_super_init__AutoSuperInitVisitor___is_broken].s = p0; /* _is_broken on <self:AutoSuperInitVisitor> */
101 RET_LABEL:;
102 }
103 /* method auto_super_init$AMethPropdef$auto_super_inits for (self: AMethPropdef): nullable Array[CallSite] */
104 val* nitc__auto_super_init___AMethPropdef___auto_super_inits(val* self) {
105 val* var /* : nullable Array[CallSite] */;
106 val* var1 /* : nullable Array[CallSite] */;
107 var1 = self->attrs[COLOR_nitc__auto_super_init__AMethPropdef___auto_super_inits].val; /* _auto_super_inits on <self:AMethPropdef> */
108 var = var1;
109 RET_LABEL:;
110 return var;
111 }
112 /* method auto_super_init$AMethPropdef$auto_super_inits= for (self: AMethPropdef, nullable Array[CallSite]) */
113 void nitc__auto_super_init___AMethPropdef___auto_super_inits_61d(val* self, val* p0) {
114 self->attrs[COLOR_nitc__auto_super_init__AMethPropdef___auto_super_inits].val = p0; /* _auto_super_inits on <self:AMethPropdef> */
115 RET_LABEL:;
116 }
117 /* method auto_super_init$AMethPropdef$auto_super_call for (self: AMethPropdef): Bool */
118 short int nitc__auto_super_init___AMethPropdef___auto_super_call(val* self) {
119 short int var /* : Bool */;
120 short int var1 /* : Bool */;
121 var1 = self->attrs[COLOR_nitc__auto_super_init__AMethPropdef___auto_super_call].s; /* _auto_super_call on <self:AMethPropdef> */
122 var = var1;
123 RET_LABEL:;
124 return var;
125 }
126 /* method auto_super_init$AMethPropdef$auto_super_call= for (self: AMethPropdef, Bool) */
127 void nitc__auto_super_init___AMethPropdef___auto_super_call_61d(val* self, short int p0) {
128 self->attrs[COLOR_nitc__auto_super_init__AMethPropdef___auto_super_call].s = p0; /* _auto_super_call on <self:AMethPropdef> */
129 RET_LABEL:;
130 }
131 /* method auto_super_init$AMethPropdef$do_auto_super_init for (self: AMethPropdef, ModelBuilder) */
132 void nitc__auto_super_init___AMethPropdef___do_auto_super_init(val* self, val* p0) {
133 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
134 val* var /* : nullable ANode */;
135 val* var2 /* : nullable ANode */;
136 short int var3 /* : Bool */;
137 int cltype;
138 int idtype;
139 const char* var_class_name;
140 val* var4 /* : nullable MClassDef */;
141 val* var6 /* : nullable MClassDef */;
142 val* var_mclassdef /* var mclassdef: nullable MClassDef */;
143 short int var7 /* : Bool */;
144 short int var8 /* : Bool */;
145 short int var9 /* : Bool */;
146 val* var_other /* var other: nullable Object */;
147 short int var11 /* : Bool */;
148 short int var13 /* : Bool */;
149 short int var_ /* var : Bool */;
150 short int var14 /* : Bool */;
151 short int var16 /* : Bool */;
152 val* var17 /* : nullable MPropDef */;
153 val* var19 /* : nullable MPropDef */;
154 val* var_mpropdef /* var mpropdef: nullable MMethodDef */;
155 short int var20 /* : Bool */;
156 short int var21 /* : Bool */;
157 short int var22 /* : Bool */;
158 short int var24 /* : Bool */;
159 short int var26 /* : Bool */;
160 short int var_27 /* var : Bool */;
161 short int var28 /* : Bool */;
162 short int var30 /* : Bool */;
163 val* var31 /* : MClassDef */;
164 val* var33 /* : MClassDef */;
165 val* var34 /* : MModule */;
166 val* var36 /* : MModule */;
167 val* var_mmodule /* var mmodule: MModule */;
168 val* var37 /* : MClassType */;
169 val* var39 /* : MClassType */;
170 val* var_anchor /* var anchor: MClassType */;
171 val* var40 /* : MClass */;
172 val* var42 /* : MClass */;
173 val* var43 /* : MClassType */;
174 val* var45 /* : MClassType */;
175 val* var_recvtype /* var recvtype: MClassType */;
176 static val* varonce;
177 val* var46 /* : String */;
178 char* var47 /* : CString */;
179 val* var48 /* : String */;
180 val* var49 /* : nullable Int */;
181 val* var50 /* : nullable Int */;
182 val* var51 /* : nullable Bool */;
183 val* var52 /* : nullable Bool */;
184 val* var53 /* : nullable AAnnotation */;
185 val* var_nosuper /* var nosuper: nullable AAnnotation */;
186 short int var54 /* : Bool */;
187 val* var55 /* : MProperty */;
188 val* var57 /* : MProperty */;
189 short int var58 /* : Bool */;
190 short int var60 /* : Bool */;
191 short int var61 /* : Bool */;
192 short int var_62 /* var : Bool */;
193 val* var63 /* : MProperty */;
194 val* var65 /* : MProperty */;
195 short int var66 /* : Bool */;
196 short int var68 /* : Bool */;
197 short int var69 /* : Bool */;
198 short int var70 /* : Bool */;
199 val* var_other72 /* var other: nullable Object */;
200 short int var73 /* : Bool */;
201 short int var74 /* : Bool */;
202 static val* varonce75;
203 val* var76 /* : String */;
204 char* var77 /* : CString */;
205 val* var78 /* : String */;
206 val* var79 /* : nullable Int */;
207 val* var80 /* : nullable Int */;
208 val* var81 /* : nullable Bool */;
209 val* var82 /* : nullable Bool */;
210 val* var83 /* : nullable AExpr */;
211 val* var85 /* : nullable AExpr */;
212 val* var_nblock /* var nblock: nullable AExpr */;
213 short int var86 /* : Bool */;
214 short int var87 /* : Bool */;
215 short int var89 /* : Bool */;
216 short int var90 /* : Bool */;
217 val* var91 /* : AutoSuperInitVisitor */;
218 val* var_v /* var v: AutoSuperInitVisitor */;
219 val* var93 /* : nullable ANode */;
220 val* var95 /* : nullable ANode */;
221 val* var_anode /* var anode: nullable ANode */;
222 short int var96 /* : Bool */;
223 short int var97 /* : Bool */;
224 short int var99 /* : Bool */;
225 short int var100 /* : Bool */;
226 short int var101 /* : Bool */;
227 short int var102 /* : Bool */;
228 short int var104 /* : Bool */;
229 short int var105 /* : Bool */;
230 static val* varonce106;
231 val* var107 /* : String */;
232 char* var108 /* : CString */;
233 val* var109 /* : String */;
234 val* var110 /* : nullable Int */;
235 val* var111 /* : nullable Int */;
236 val* var112 /* : nullable Bool */;
237 val* var113 /* : nullable Bool */;
238 short int var114 /* : Bool */;
239 short int var116 /* : Bool */;
240 short int var117 /* : Bool */;
241 short int var118 /* : Bool */;
242 short int var120 /* : Bool */;
243 short int var121 /* : Bool */;
244 short int var122 /* : Bool */;
245 short int var123 /* : Bool */;
246 val* var126 /* : ToolContext */;
247 val* var128 /* : ToolContext */;
248 val* var130 /* : NativeArray[String] */;
249 static val* varonce129;
250 static val* varonce131;
251 val* var132 /* : String */;
252 char* var133 /* : CString */;
253 val* var134 /* : String */;
254 val* var135 /* : nullable Int */;
255 val* var136 /* : nullable Int */;
256 val* var137 /* : nullable Bool */;
257 val* var138 /* : nullable Bool */;
258 val* var139 /* : String */;
259 val* var140 /* : String */;
260 val* var141 /* : Array[CallSite] */;
261 val* var_auto_super_inits /* var auto_super_inits: Array[CallSite] */;
262 val* var142 /* : nullable MMethod */;
263 val* var144 /* : nullable MMethod */;
264 val* var_the_root_init_mmethod /* var the_root_init_mmethod: nullable MMethod */;
265 short int var145 /* : Bool */;
266 short int var146 /* : Bool */;
267 short int var147 /* : Bool */;
268 short int var149 /* : Bool */;
269 short int var150 /* : Bool */;
270 short int var_151 /* var : Bool */;
271 short int var152 /* : Bool */;
272 val* var153 /* : Array[MPropDef] */;
273 val* var_candidatedefs /* var candidatedefs: Array[MMethodDef] */;
274 short int var154 /* : Bool */;
275 val* var156 /* : nullable Object */;
276 val* var_candidatedef /* var candidatedef: MMethodDef */;
277 long var157 /* : Int */;
278 long var159 /* : Int */;
279 short int var160 /* : Bool */;
280 short int var162 /* : Bool */;
281 int cltype163;
282 int idtype164;
283 const char* var_class_name165;
284 short int var166 /* : Bool */;
285 val* var167 /* : nullable Object */;
286 val* var_cd2 /* var cd2: MMethodDef */;
287 val* var169 /* : NativeArray[String] */;
288 static val* varonce168;
289 static val* varonce170;
290 val* var171 /* : String */;
291 char* var172 /* : CString */;
292 val* var173 /* : String */;
293 val* var174 /* : nullable Int */;
294 val* var175 /* : nullable Int */;
295 val* var176 /* : nullable Bool */;
296 val* var177 /* : nullable Bool */;
297 static val* varonce178;
298 val* var179 /* : String */;
299 char* var180 /* : CString */;
300 val* var181 /* : String */;
301 val* var182 /* : nullable Int */;
302 val* var183 /* : nullable Int */;
303 val* var184 /* : nullable Bool */;
304 val* var185 /* : nullable Bool */;
305 static val* varonce186;
306 val* var187 /* : String */;
307 char* var188 /* : CString */;
308 val* var189 /* : String */;
309 val* var190 /* : nullable Int */;
310 val* var191 /* : nullable Int */;
311 val* var192 /* : nullable Bool */;
312 val* var193 /* : nullable Bool */;
313 static val* varonce194;
314 val* var195 /* : String */;
315 char* var196 /* : CString */;
316 val* var197 /* : String */;
317 val* var198 /* : nullable Int */;
318 val* var199 /* : nullable Int */;
319 val* var200 /* : nullable Bool */;
320 val* var201 /* : nullable Bool */;
321 static val* varonce202;
322 val* var203 /* : String */;
323 char* var204 /* : CString */;
324 val* var205 /* : String */;
325 val* var206 /* : nullable Int */;
326 val* var207 /* : nullable Int */;
327 val* var208 /* : nullable Bool */;
328 val* var209 /* : nullable Bool */;
329 val* var210 /* : String */;
330 val* var211 /* : Array[MProperty] */;
331 val* var213 /* : Array[MProperty] */;
332 static val* varonce214;
333 val* var215 /* : String */;
334 char* var216 /* : CString */;
335 val* var217 /* : String */;
336 val* var218 /* : nullable Int */;
337 val* var219 /* : nullable Int */;
338 val* var220 /* : nullable Bool */;
339 val* var221 /* : nullable Bool */;
340 val* var222 /* : String */;
341 val* var223 /* : String */;
342 val* var224 /* : Array[MProperty] */;
343 val* var226 /* : Array[MProperty] */;
344 static val* varonce227;
345 val* var228 /* : String */;
346 char* var229 /* : CString */;
347 val* var230 /* : String */;
348 val* var231 /* : nullable Int */;
349 val* var232 /* : nullable Int */;
350 val* var233 /* : nullable Bool */;
351 val* var234 /* : nullable Bool */;
352 val* var235 /* : String */;
353 val* var236 /* : String */;
354 val* var238 /* : nullable MSignature */;
355 val* var239 /* : nullable MSignature */;
356 val* var241 /* : nullable MSignature */;
357 val* var242 /* : nullable MSignature */;
358 val* var244 /* : nullable MSignature */;
359 val* var_msignature /* var msignature: nullable MSignature */;
360 val* var245 /* : MSignature */;
361 long var246 /* : Int */;
362 short int var247 /* : Bool */;
363 short int var249 /* : Bool */;
364 int cltype250;
365 int idtype251;
366 const char* var_class_name252;
367 short int var253 /* : Bool */;
368 val* var255 /* : NativeArray[String] */;
369 static val* varonce254;
370 static val* varonce256;
371 val* var257 /* : String */;
372 char* var258 /* : CString */;
373 val* var259 /* : String */;
374 val* var260 /* : nullable Int */;
375 val* var261 /* : nullable Int */;
376 val* var262 /* : nullable Bool */;
377 val* var263 /* : nullable Bool */;
378 static val* varonce264;
379 val* var265 /* : String */;
380 char* var266 /* : CString */;
381 val* var267 /* : String */;
382 val* var268 /* : nullable Int */;
383 val* var269 /* : nullable Int */;
384 val* var270 /* : nullable Bool */;
385 val* var271 /* : nullable Bool */;
386 static val* varonce272;
387 val* var273 /* : String */;
388 char* var274 /* : CString */;
389 val* var275 /* : String */;
390 val* var276 /* : nullable Int */;
391 val* var277 /* : nullable Int */;
392 val* var278 /* : nullable Bool */;
393 val* var279 /* : nullable Bool */;
394 val* var280 /* : String */;
395 val* var281 /* : String */;
396 long var282 /* : Int */;
397 val* var283 /* : String */;
398 val* var284 /* : String */;
399 val* var286 /* : CallSite */;
400 val* var287 /* : Location */;
401 val* var_callsite /* var callsite: CallSite */;
402 val* var288 /* : ToolContext */;
403 val* var290 /* : ToolContext */;
404 val* var292 /* : NativeArray[String] */;
405 static val* varonce291;
406 static val* varonce293;
407 val* var294 /* : String */;
408 char* var295 /* : CString */;
409 val* var296 /* : String */;
410 val* var297 /* : nullable Int */;
411 val* var298 /* : nullable Int */;
412 val* var299 /* : nullable Bool */;
413 val* var300 /* : nullable Bool */;
414 static val* varonce301;
415 val* var302 /* : String */;
416 char* var303 /* : CString */;
417 val* var304 /* : String */;
418 val* var305 /* : nullable Int */;
419 val* var306 /* : nullable Int */;
420 val* var307 /* : nullable Bool */;
421 val* var308 /* : nullable Bool */;
422 val* var309 /* : String */;
423 val* var310 /* : String */;
424 val* var311 /* : String */;
425 short int var312 /* : Bool */;
426 val* var314 /* : NativeArray[String] */;
427 static val* varonce313;
428 static val* varonce315;
429 val* var316 /* : String */;
430 char* var317 /* : CString */;
431 val* var318 /* : String */;
432 val* var319 /* : nullable Int */;
433 val* var320 /* : nullable Int */;
434 val* var321 /* : nullable Bool */;
435 val* var322 /* : nullable Bool */;
436 static val* varonce323;
437 val* var324 /* : String */;
438 char* var325 /* : CString */;
439 val* var326 /* : String */;
440 val* var327 /* : nullable Int */;
441 val* var328 /* : nullable Int */;
442 val* var329 /* : nullable Bool */;
443 val* var330 /* : nullable Bool */;
444 val* var331 /* : String */;
445 val* var332 /* : String */;
446 var_modelbuilder = p0;
447 {
448 { /* Inline parser_nodes$ANode$parent (self) on <self:AMethPropdef> */
449 var2 = self->attrs[COLOR_nitc__parser_nodes__ANode___parent].val; /* _parent on <self:AMethPropdef> */
450 var = var2;
451 RET_LABEL1:(void)0;
452 }
453 }
454 /* <var:nullable ANode> isa AClassdef */
455 cltype = type_nitc__AClassdef.color;
456 idtype = type_nitc__AClassdef.id;
457 if(var == NULL) {
458 var3 = 0;
459 } else {
460 if(cltype >= var->type->table_size) {
461 var3 = 0;
462 } else {
463 var3 = var->type->type_table[cltype] == idtype;
464 }
465 }
466 if (unlikely(!var3)) {
467 var_class_name = var == NULL ? "null" : var->type->name;
468 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AClassdef", var_class_name);
469 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__auto_super_init, 59);
470 fatal_exit(1);
471 }
472 {
473 { /* Inline modelize_class$AClassdef$mclassdef (var) on <var:nullable ANode(AClassdef)> */
474 var6 = var->attrs[COLOR_nitc__modelize_class__AClassdef___mclassdef].val; /* _mclassdef on <var:nullable ANode(AClassdef)> */
475 var4 = var6;
476 RET_LABEL5:(void)0;
477 }
478 }
479 var_mclassdef = var4;
480 if (var_mclassdef == NULL) {
481 var8 = 1; /* is null */
482 } else {
483 var8 = 0; /* arg is null but recv is not */
484 }
485 if (0) {
486 { /* Inline kernel$Object$== (var_mclassdef,((val*)NULL)) on <var_mclassdef:nullable MClassDef> */
487 var_other = ((val*)NULL);
488 {
489 { /* Inline kernel$Object$is_same_instance (var_mclassdef,var_other) on <var_mclassdef:nullable MClassDef(MClassDef)> */
490 var13 = var_mclassdef == var_other;
491 var11 = var13;
492 goto RET_LABEL12;
493 RET_LABEL12:(void)0;
494 }
495 }
496 var9 = var11;
497 goto RET_LABEL10;
498 RET_LABEL10:(void)0;
499 }
500 var8 = var9;
501 }
502 var_ = var8;
503 if (var8){
504 var7 = var_;
505 } else {
506 {
507 { /* Inline model_base$MEntity$is_broken (var_mclassdef) on <var_mclassdef:nullable MClassDef(MClassDef)> */
508 var16 = var_mclassdef->attrs[COLOR_nitc__model_base__MEntity___is_broken].s; /* _is_broken on <var_mclassdef:nullable MClassDef(MClassDef)> */
509 var14 = var16;
510 RET_LABEL15:(void)0;
511 }
512 }
513 var7 = var14;
514 }
515 if (var7){
516 goto RET_LABEL;
517 } else {
518 }
519 {
520 { /* Inline modelize_property$APropdef$mpropdef (self) on <self:AMethPropdef> */
521 var19 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AMethPropdef> */
522 var17 = var19;
523 RET_LABEL18:(void)0;
524 }
525 }
526 var_mpropdef = var17;
527 if (var_mpropdef == NULL) {
528 var21 = 1; /* is null */
529 } else {
530 var21 = 0; /* arg is null but recv is not */
531 }
532 if (0) {
533 { /* Inline kernel$Object$== (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MMethodDef> */
534 var_other = ((val*)NULL);
535 {
536 { /* Inline kernel$Object$is_same_instance (var_mpropdef,var_other) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
537 var26 = var_mpropdef == var_other;
538 var24 = var26;
539 goto RET_LABEL25;
540 RET_LABEL25:(void)0;
541 }
542 }
543 var22 = var24;
544 goto RET_LABEL23;
545 RET_LABEL23:(void)0;
546 }
547 var21 = var22;
548 }
549 var_27 = var21;
550 if (var21){
551 var20 = var_27;
552 } else {
553 {
554 { /* Inline model_base$MEntity$is_broken (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
555 var30 = var_mpropdef->attrs[COLOR_nitc__model_base__MEntity___is_broken].s; /* _is_broken on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
556 var28 = var30;
557 RET_LABEL29:(void)0;
558 }
559 }
560 var20 = var28;
561 }
562 if (var20){
563 goto RET_LABEL;
564 } else {
565 }
566 {
567 { /* Inline model$MPropDef$mclassdef (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
568 var33 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
569 if (unlikely(var33 == NULL)) {
570 if(catchStack.cursor >= 0){
571 longjmp(catchStack.envs[catchStack.cursor], 1);
572 }
573 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
574 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
575 fatal_exit(1);
576 }
577 var31 = var33;
578 RET_LABEL32:(void)0;
579 }
580 }
581 {
582 { /* Inline model$MClassDef$mmodule (var31) on <var31:MClassDef> */
583 var36 = var31->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var31:MClassDef> */
584 if (unlikely(var36 == NULL)) {
585 if(catchStack.cursor >= 0){
586 longjmp(catchStack.envs[catchStack.cursor], 1);
587 }
588 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
589 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
590 fatal_exit(1);
591 }
592 var34 = var36;
593 RET_LABEL35:(void)0;
594 }
595 }
596 var_mmodule = var34;
597 {
598 { /* Inline model$MClassDef$bound_mtype (var_mclassdef) on <var_mclassdef:nullable MClassDef(MClassDef)> */
599 var39 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:nullable MClassDef(MClassDef)> */
600 if (unlikely(var39 == NULL)) {
601 if(catchStack.cursor >= 0){
602 longjmp(catchStack.envs[catchStack.cursor], 1);
603 }
604 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
605 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
606 fatal_exit(1);
607 }
608 var37 = var39;
609 RET_LABEL38:(void)0;
610 }
611 }
612 var_anchor = var37;
613 {
614 { /* Inline model$MClassDef$mclass (var_mclassdef) on <var_mclassdef:nullable MClassDef(MClassDef)> */
615 var42 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:nullable MClassDef(MClassDef)> */
616 if (unlikely(var42 == NULL)) {
617 if(catchStack.cursor >= 0){
618 longjmp(catchStack.envs[catchStack.cursor], 1);
619 }
620 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
621 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 591);
622 fatal_exit(1);
623 }
624 var40 = var42;
625 RET_LABEL41:(void)0;
626 }
627 }
628 {
629 { /* Inline model$MClass$mclass_type (var40) on <var40:MClass> */
630 var45 = var40->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var40:MClass> */
631 if (unlikely(var45 == NULL)) {
632 if(catchStack.cursor >= 0){
633 longjmp(catchStack.envs[catchStack.cursor], 1);
634 }
635 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
636 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
637 fatal_exit(1);
638 }
639 var43 = var45;
640 RET_LABEL44:(void)0;
641 }
642 }
643 var_recvtype = var43;
644 if (likely(varonce!=NULL)) {
645 var46 = varonce;
646 } else {
647 var47 = "nosuper";
648 var49 = (val*)(7l<<2|1);
649 var50 = (val*)(7l<<2|1);
650 var51 = (val*)((long)(0)<<2|3);
651 var52 = (val*)((long)(0)<<2|3);
652 var48 = core__flat___CString___to_s_unsafe(var47, var49, var50, var51, var52);
653 var46 = var48;
654 varonce = var46;
655 }
656 {
657 var53 = nitc__annotation___Prod___get_single_annotation(self, var46, var_modelbuilder);
658 }
659 var_nosuper = var53;
660 {
661 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
662 var57 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
663 if (unlikely(var57 == NULL)) {
664 if(catchStack.cursor >= 0){
665 longjmp(catchStack.envs[catchStack.cursor], 1);
666 }
667 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
668 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
669 fatal_exit(1);
670 }
671 var55 = var57;
672 RET_LABEL56:(void)0;
673 }
674 }
675 {
676 { /* Inline model$MMethod$is_init (var55) on <var55:MProperty(MMethod)> */
677 var60 = var55->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <var55:MProperty(MMethod)> */
678 var58 = var60;
679 RET_LABEL59:(void)0;
680 }
681 }
682 var61 = !var58;
683 var_62 = var61;
684 if (var61){
685 var54 = var_62;
686 } else {
687 {
688 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
689 var65 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
690 if (unlikely(var65 == NULL)) {
691 if(catchStack.cursor >= 0){
692 longjmp(catchStack.envs[catchStack.cursor], 1);
693 }
694 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
695 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
696 fatal_exit(1);
697 }
698 var63 = var65;
699 RET_LABEL64:(void)0;
700 }
701 }
702 {
703 { /* Inline model$MMethod$is_new (var63) on <var63:MProperty(MMethod)> */
704 var68 = var63->attrs[COLOR_nitc__model__MMethod___is_new].s; /* _is_new on <var63:MProperty(MMethod)> */
705 var66 = var68;
706 RET_LABEL67:(void)0;
707 }
708 }
709 var54 = var66;
710 }
711 if (var54){
712 if (var_nosuper == NULL) {
713 var69 = 0; /* is null */
714 } else {
715 var69 = 1; /* arg is null and recv is not */
716 }
717 if (0) {
718 { /* Inline kernel$Object$!= (var_nosuper,((val*)NULL)) on <var_nosuper:nullable AAnnotation> */
719 var_other72 = ((val*)NULL);
720 {
721 var73 = ((short int(*)(val* self, val* p0))(var_nosuper->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nosuper, var_other72); /* == on <var_nosuper:nullable AAnnotation(AAnnotation)>*/
722 }
723 var74 = !var73;
724 var70 = var74;
725 goto RET_LABEL71;
726 RET_LABEL71:(void)0;
727 }
728 var69 = var70;
729 }
730 if (var69){
731 if (likely(varonce75!=NULL)) {
732 var76 = varonce75;
733 } else {
734 var77 = "Error: `nosuper` only allowed in `init`.";
735 var79 = (val*)(40l<<2|1);
736 var80 = (val*)(40l<<2|1);
737 var81 = (val*)((long)(0)<<2|3);
738 var82 = (val*)((long)(0)<<2|3);
739 var78 = core__flat___CString___to_s_unsafe(var77, var79, var80, var81, var82);
740 var76 = var78;
741 varonce75 = var76;
742 }
743 {
744 nitc___nitc__ModelBuilder___error(var_modelbuilder, var_nosuper, var76); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
745 }
746 } else {
747 }
748 goto RET_LABEL;
749 } else {
750 }
751 {
752 { /* Inline parser_nodes$AMethPropdef$n_block (self) on <self:AMethPropdef> */
753 var85 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AMethPropdef> */
754 var83 = var85;
755 RET_LABEL84:(void)0;
756 }
757 }
758 var_nblock = var83;
759 if (var_nblock == NULL) {
760 var86 = 0; /* is null */
761 } else {
762 var86 = 1; /* arg is null and recv is not */
763 }
764 if (0) {
765 { /* Inline kernel$Object$!= (var_nblock,((val*)NULL)) on <var_nblock:nullable AExpr> */
766 var_other72 = ((val*)NULL);
767 {
768 var89 = ((short int(*)(val* self, val* p0))(var_nblock->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nblock, var_other72); /* == on <var_nblock:nullable AExpr(AExpr)>*/
769 }
770 var90 = !var89;
771 var87 = var90;
772 goto RET_LABEL88;
773 RET_LABEL88:(void)0;
774 }
775 var86 = var87;
776 }
777 if (var86){
778 var91 = NEW_nitc__auto_super_init__AutoSuperInitVisitor(&type_nitc__auto_super_init__AutoSuperInitVisitor);
779 {
780 { /* Inline kernel$Object$init (var91) on <var91:AutoSuperInitVisitor> */
781 RET_LABEL92:(void)0;
782 }
783 }
784 var_v = var91;
785 {
786 nitc___nitc__Visitor___enter_visit(var_v, var_nblock); /* Direct call parser_nodes$Visitor$enter_visit on <var_v:AutoSuperInitVisitor>*/
787 }
788 {
789 { /* Inline auto_super_init$AutoSuperInitVisitor$has_explicit_super_init (var_v) on <var_v:AutoSuperInitVisitor> */
790 var95 = var_v->attrs[COLOR_nitc__auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val; /* _has_explicit_super_init on <var_v:AutoSuperInitVisitor> */
791 var93 = var95;
792 RET_LABEL94:(void)0;
793 }
794 }
795 var_anode = var93;
796 if (var_anode == NULL) {
797 var96 = 0; /* is null */
798 } else {
799 var96 = 1; /* arg is null and recv is not */
800 }
801 if (0) {
802 { /* Inline kernel$Object$!= (var_anode,((val*)NULL)) on <var_anode:nullable ANode> */
803 var_other72 = ((val*)NULL);
804 {
805 var99 = ((short int(*)(val* self, val* p0))(var_anode->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_anode, var_other72); /* == on <var_anode:nullable ANode(ANode)>*/
806 }
807 var100 = !var99;
808 var97 = var100;
809 goto RET_LABEL98;
810 RET_LABEL98:(void)0;
811 }
812 var96 = var97;
813 }
814 if (var96){
815 if (var_nosuper == NULL) {
816 var101 = 0; /* is null */
817 } else {
818 var101 = 1; /* arg is null and recv is not */
819 }
820 if (0) {
821 { /* Inline kernel$Object$!= (var_nosuper,((val*)NULL)) on <var_nosuper:nullable AAnnotation> */
822 var_other72 = ((val*)NULL);
823 {
824 var104 = ((short int(*)(val* self, val* p0))(var_nosuper->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nosuper, var_other72); /* == on <var_nosuper:nullable AAnnotation(AAnnotation)>*/
825 }
826 var105 = !var104;
827 var102 = var105;
828 goto RET_LABEL103;
829 RET_LABEL103:(void)0;
830 }
831 var101 = var102;
832 }
833 if (var101){
834 if (likely(varonce106!=NULL)) {
835 var107 = varonce106;
836 } else {
837 var108 = "Error: method is annotated `nosuper` but a super-constructor call is present.";
838 var110 = (val*)(77l<<2|1);
839 var111 = (val*)(77l<<2|1);
840 var112 = (val*)((long)(0)<<2|3);
841 var113 = (val*)((long)(0)<<2|3);
842 var109 = core__flat___CString___to_s_unsafe(var108, var110, var111, var112, var113);
843 var107 = var109;
844 varonce106 = var107;
845 }
846 {
847 nitc___nitc__ModelBuilder___error(var_modelbuilder, var_anode, var107); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
848 }
849 } else {
850 }
851 goto RET_LABEL;
852 } else {
853 }
854 {
855 { /* Inline auto_super_init$AutoSuperInitVisitor$is_broken (var_v) on <var_v:AutoSuperInitVisitor> */
856 var116 = var_v->attrs[COLOR_nitc__auto_super_init__AutoSuperInitVisitor___is_broken].s; /* _is_broken on <var_v:AutoSuperInitVisitor> */
857 var114 = var116;
858 RET_LABEL115:(void)0;
859 }
860 }
861 if (var114){
862 goto RET_LABEL;
863 } else {
864 }
865 } else {
866 }
867 if (var_nosuper == NULL) {
868 var117 = 0; /* is null */
869 } else {
870 var117 = 1; /* arg is null and recv is not */
871 }
872 if (0) {
873 { /* Inline kernel$Object$!= (var_nosuper,((val*)NULL)) on <var_nosuper:nullable AAnnotation> */
874 var_other72 = ((val*)NULL);
875 {
876 var120 = ((short int(*)(val* self, val* p0))(var_nosuper->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nosuper, var_other72); /* == on <var_nosuper:nullable AAnnotation(AAnnotation)>*/
877 }
878 var121 = !var120;
879 var118 = var121;
880 goto RET_LABEL119;
881 RET_LABEL119:(void)0;
882 }
883 var117 = var118;
884 }
885 if (var117){
886 goto RET_LABEL;
887 } else {
888 }
889 {
890 var122 = nitc___nitc__MPropDef___is_intro(var_mpropdef);
891 }
892 var123 = !var122;
893 if (var123){
894 {
895 { /* Inline auto_super_init$AMethPropdef$auto_super_call= (self,1) on <self:AMethPropdef> */
896 self->attrs[COLOR_nitc__auto_super_init__AMethPropdef___auto_super_call].s = 1; /* _auto_super_call on <self:AMethPropdef> */
897 RET_LABEL124:(void)0;
898 }
899 }
900 {
901 { /* Inline modelize_property$MPropDef$has_supercall= (var_mpropdef,1) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
902 var_mpropdef->attrs[COLOR_nitc__modelize_property__MPropDef___has_supercall].s = 1; /* _has_supercall on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
903 RET_LABEL125:(void)0;
904 }
905 }
906 {
907 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
908 var128 = var_modelbuilder->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var_modelbuilder:ModelBuilder> */
909 if (unlikely(var128 == NULL)) {
910 if(catchStack.cursor >= 0){
911 longjmp(catchStack.envs[catchStack.cursor], 1);
912 }
913 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
914 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
915 fatal_exit(1);
916 }
917 var126 = var128;
918 RET_LABEL127:(void)0;
919 }
920 }
921 if (unlikely(varonce129==NULL)) {
922 var130 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
923 if (likely(varonce131!=NULL)) {
924 var132 = varonce131;
925 } else {
926 var133 = "Auto-super call for ";
927 var135 = (val*)(20l<<2|1);
928 var136 = (val*)(20l<<2|1);
929 var137 = (val*)((long)(0)<<2|3);
930 var138 = (val*)((long)(0)<<2|3);
931 var134 = core__flat___CString___to_s_unsafe(var133, var135, var136, var137, var138);
932 var132 = var134;
933 varonce131 = var132;
934 }
935 ((struct instance_core__NativeArray*)var130)->values[0]=var132;
936 } else {
937 var130 = varonce129;
938 varonce129 = NULL;
939 }
940 {
941 var139 = ((val*(*)(val* self))(var_mpropdef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mpropdef); /* to_s on <var_mpropdef:nullable MMethodDef(MMethodDef)>*/
942 }
943 ((struct instance_core__NativeArray*)var130)->values[1]=var139;
944 {
945 var140 = ((val*(*)(val* self))(var130->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var130); /* native_to_s on <var130:NativeArray[String]>*/
946 }
947 varonce129 = var130;
948 {
949 nitc___nitc__ToolContext___info(var126, var140, 4l); /* Direct call toolcontext$ToolContext$info on <var126:ToolContext>*/
950 }
951 goto RET_LABEL;
952 } else {
953 }
954 var141 = NEW_core__Array(&type_core__Array__nitc__CallSite);
955 {
956 core___core__Array___core__kernel__Object__init(var141); /* Direct call array$Array$init on <var141:Array[CallSite]>*/
957 }
958 var_auto_super_inits = var141;
959 {
960 { /* Inline modelize_property$ModelBuilder$the_root_init_mmethod (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
961 var144 = var_modelbuilder->attrs[COLOR_nitc__modelize_property__ModelBuilder___the_root_init_mmethod].val; /* _the_root_init_mmethod on <var_modelbuilder:ModelBuilder> */
962 var142 = var144;
963 RET_LABEL143:(void)0;
964 }
965 }
966 var_the_root_init_mmethod = var142;
967 if (var_the_root_init_mmethod == NULL) {
968 var146 = 0; /* is null */
969 } else {
970 var146 = 1; /* arg is null and recv is not */
971 }
972 if (0) {
973 { /* Inline kernel$Object$!= (var_the_root_init_mmethod,((val*)NULL)) on <var_the_root_init_mmethod:nullable MMethod> */
974 var_other72 = ((val*)NULL);
975 {
976 var149 = ((short int(*)(val* self, val* p0))(var_the_root_init_mmethod->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_the_root_init_mmethod, var_other72); /* == on <var_the_root_init_mmethod:nullable MMethod(MMethod)>*/
977 }
978 var150 = !var149;
979 var147 = var150;
980 goto RET_LABEL148;
981 RET_LABEL148:(void)0;
982 }
983 var146 = var147;
984 }
985 var_151 = var146;
986 if (var146){
987 {
988 var152 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_auto_super_inits);
989 }
990 var145 = var152;
991 } else {
992 var145 = var_151;
993 }
994 if (var145){
995 {
996 var153 = nitc___nitc__MProperty___lookup_definitions(var_the_root_init_mmethod, var_mmodule, var_anchor);
997 }
998 var_candidatedefs = var153;
999 {
1000 var154 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_candidatedefs);
1001 }
1002 if (var154){
1003 {
1004 { /* Inline modelbuilder_base$ANode$is_broken= (self,1) on <self:AMethPropdef> */
1005 self->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s = 1; /* _is_broken on <self:AMethPropdef> */
1006 RET_LABEL155:(void)0;
1007 }
1008 }
1009 goto RET_LABEL;
1010 } else {
1011 }
1012 {
1013 var156 = core___core__SequenceRead___Collection__first(var_candidatedefs);
1014 }
1015 var_candidatedef = var156;
1016 {
1017 { /* Inline array$AbstractArrayRead$length (var_candidatedefs) on <var_candidatedefs:Array[MMethodDef]> */
1018 var159 = var_candidatedefs->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_candidatedefs:Array[MMethodDef]> */
1019 var157 = var159;
1020 RET_LABEL158:(void)0;
1021 }
1022 }
1023 {
1024 { /* Inline kernel$Int$> (var157,1l) on <var157:Int> */
1025 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1026 /* <1l:Int> isa OTHER */
1027 var162 = 1; /* easy <1l:Int> isa OTHER*/
1028 if (unlikely(!var162)) {
1029 var_class_name165 = type_core__Int.name;
1030 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name165);
1031 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
1032 fatal_exit(1);
1033 }
1034 var166 = var157 > 1l;
1035 var160 = var166;
1036 goto RET_LABEL161;
1037 RET_LABEL161:(void)0;
1038 }
1039 }
1040 if (var160){
1041 {
1042 var167 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_candidatedefs, 1l);
1043 }
1044 var_cd2 = var167;
1045 if (unlikely(varonce168==NULL)) {
1046 var169 = NEW_core__NativeArray((int)9l, &type_core__NativeArray__core__String);
1047 if (likely(varonce170!=NULL)) {
1048 var171 = varonce170;
1049 } else {
1050 var172 = "Error: cannot do an implicit constructor call to conflicting inherited inits `";
1051 var174 = (val*)(78l<<2|1);
1052 var175 = (val*)(78l<<2|1);
1053 var176 = (val*)((long)(0)<<2|3);
1054 var177 = (val*)((long)(0)<<2|3);
1055 var173 = core__flat___CString___to_s_unsafe(var172, var174, var175, var176, var177);
1056 var171 = var173;
1057 varonce170 = var171;
1058 }
1059 ((struct instance_core__NativeArray*)var169)->values[0]=var171;
1060 if (likely(varonce178!=NULL)) {
1061 var179 = varonce178;
1062 } else {
1063 var180 = "(";
1064 var182 = (val*)(1l<<2|1);
1065 var183 = (val*)(1l<<2|1);
1066 var184 = (val*)((long)(0)<<2|3);
1067 var185 = (val*)((long)(0)<<2|3);
1068 var181 = core__flat___CString___to_s_unsafe(var180, var182, var183, var184, var185);
1069 var179 = var181;
1070 varonce178 = var179;
1071 }
1072 ((struct instance_core__NativeArray*)var169)->values[2]=var179;
1073 if (likely(varonce186!=NULL)) {
1074 var187 = varonce186;
1075 } else {
1076 var188 = "`) and `";
1077 var190 = (val*)(8l<<2|1);
1078 var191 = (val*)(8l<<2|1);
1079 var192 = (val*)((long)(0)<<2|3);
1080 var193 = (val*)((long)(0)<<2|3);
1081 var189 = core__flat___CString___to_s_unsafe(var188, var190, var191, var192, var193);
1082 var187 = var189;
1083 varonce186 = var187;
1084 }
1085 ((struct instance_core__NativeArray*)var169)->values[4]=var187;
1086 if (likely(varonce194!=NULL)) {
1087 var195 = varonce194;
1088 } else {
1089 var196 = "(";
1090 var198 = (val*)(1l<<2|1);
1091 var199 = (val*)(1l<<2|1);
1092 var200 = (val*)((long)(0)<<2|3);
1093 var201 = (val*)((long)(0)<<2|3);
1094 var197 = core__flat___CString___to_s_unsafe(var196, var198, var199, var200, var201);
1095 var195 = var197;
1096 varonce194 = var195;
1097 }
1098 ((struct instance_core__NativeArray*)var169)->values[6]=var195;
1099 if (likely(varonce202!=NULL)) {
1100 var203 = varonce202;
1101 } else {
1102 var204 = "`). NOTE: Do not mix old-style and new-style init!";
1103 var206 = (val*)(50l<<2|1);
1104 var207 = (val*)(50l<<2|1);
1105 var208 = (val*)((long)(0)<<2|3);
1106 var209 = (val*)((long)(0)<<2|3);
1107 var205 = core__flat___CString___to_s_unsafe(var204, var206, var207, var208, var209);
1108 var203 = var205;
1109 varonce202 = var203;
1110 }
1111 ((struct instance_core__NativeArray*)var169)->values[8]=var203;
1112 } else {
1113 var169 = varonce168;
1114 varonce168 = NULL;
1115 }
1116 {
1117 var210 = ((val*(*)(val* self))(var_cd2->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_cd2); /* to_s on <var_cd2:MMethodDef>*/
1118 }
1119 ((struct instance_core__NativeArray*)var169)->values[1]=var210;
1120 {
1121 { /* Inline model$MMethodDef$initializers (var_cd2) on <var_cd2:MMethodDef> */
1122 var213 = var_cd2->attrs[COLOR_nitc__model__MMethodDef___initializers].val; /* _initializers on <var_cd2:MMethodDef> */
1123 if (unlikely(var213 == NULL)) {
1124 if(catchStack.cursor >= 0){
1125 longjmp(catchStack.envs[catchStack.cursor], 1);
1126 }
1127 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
1128 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2492);
1129 fatal_exit(1);
1130 }
1131 var211 = var213;
1132 RET_LABEL212:(void)0;
1133 }
1134 }
1135 if (likely(varonce214!=NULL)) {
1136 var215 = varonce214;
1137 } else {
1138 var216 = ", ";
1139 var218 = (val*)(2l<<2|1);
1140 var219 = (val*)(2l<<2|1);
1141 var220 = (val*)((long)(0)<<2|3);
1142 var221 = (val*)((long)(0)<<2|3);
1143 var217 = core__flat___CString___to_s_unsafe(var216, var218, var219, var220, var221);
1144 var215 = var217;
1145 varonce214 = var215;
1146 }
1147 {
1148 var222 = core__abstract_text___Collection___join(var211, var215, ((val*)NULL));
1149 }
1150 ((struct instance_core__NativeArray*)var169)->values[3]=var222;
1151 {
1152 var223 = ((val*(*)(val* self))(var_candidatedef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_candidatedef); /* to_s on <var_candidatedef:MMethodDef>*/
1153 }
1154 ((struct instance_core__NativeArray*)var169)->values[5]=var223;
1155 {
1156 { /* Inline model$MMethodDef$initializers (var_candidatedef) on <var_candidatedef:MMethodDef> */
1157 var226 = var_candidatedef->attrs[COLOR_nitc__model__MMethodDef___initializers].val; /* _initializers on <var_candidatedef:MMethodDef> */
1158 if (unlikely(var226 == NULL)) {
1159 if(catchStack.cursor >= 0){
1160 longjmp(catchStack.envs[catchStack.cursor], 1);
1161 }
1162 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
1163 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2492);
1164 fatal_exit(1);
1165 }
1166 var224 = var226;
1167 RET_LABEL225:(void)0;
1168 }
1169 }
1170 if (likely(varonce227!=NULL)) {
1171 var228 = varonce227;
1172 } else {
1173 var229 = ", ";
1174 var231 = (val*)(2l<<2|1);
1175 var232 = (val*)(2l<<2|1);
1176 var233 = (val*)((long)(0)<<2|3);
1177 var234 = (val*)((long)(0)<<2|3);
1178 var230 = core__flat___CString___to_s_unsafe(var229, var231, var232, var233, var234);
1179 var228 = var230;
1180 varonce227 = var228;
1181 }
1182 {
1183 var235 = core__abstract_text___Collection___join(var224, var228, ((val*)NULL));
1184 }
1185 ((struct instance_core__NativeArray*)var169)->values[7]=var235;
1186 {
1187 var236 = ((val*(*)(val* self))(var169->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var169); /* native_to_s on <var169:NativeArray[String]>*/
1188 }
1189 varonce168 = var169;
1190 {
1191 nitc___nitc__ModelBuilder___error(var_modelbuilder, self, var236); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
1192 }
1193 {
1194 { /* Inline modelbuilder_base$ANode$is_broken= (self,1) on <self:AMethPropdef> */
1195 self->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s = 1; /* _is_broken on <self:AMethPropdef> */
1196 RET_LABEL237:(void)0;
1197 }
1198 }
1199 goto RET_LABEL;
1200 } else {
1201 }
1202 {
1203 { /* Inline model$MMethodDef$new_msignature (var_candidatedef) on <var_candidatedef:MMethodDef> */
1204 var241 = var_candidatedef->attrs[COLOR_nitc__model__MMethodDef___new_msignature].val; /* _new_msignature on <var_candidatedef:MMethodDef> */
1205 var239 = var241;
1206 RET_LABEL240:(void)0;
1207 }
1208 }
1209 if (var239!=NULL) {
1210 var238 = var239;
1211 } else {
1212 {
1213 { /* Inline model$MMethodDef$msignature (var_candidatedef) on <var_candidatedef:MMethodDef> */
1214 var244 = var_candidatedef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_candidatedef:MMethodDef> */
1215 var242 = var244;
1216 RET_LABEL243:(void)0;
1217 }
1218 }
1219 var238 = var242;
1220 }
1221 var_msignature = var238;
1222 if (var_msignature == NULL) {
1223 if(catchStack.cursor >= 0){
1224 longjmp(catchStack.envs[catchStack.cursor], 1);
1225 }
1226 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1227 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__auto_super_init, 125);
1228 fatal_exit(1);
1229 } else {
1230 var245 = nitc___nitc__MSignature___MType__resolve_for(var_msignature, var_recvtype, var_anchor, var_mmodule, 1);
1231 }
1232 var_msignature = var245;
1233 {
1234 var246 = nitc___nitc__MSignature___arity(var_msignature);
1235 }
1236 {
1237 { /* Inline kernel$Int$> (var246,0l) on <var246:Int> */
1238 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1239 /* <0l:Int> isa OTHER */
1240 var249 = 1; /* easy <0l:Int> isa OTHER*/
1241 if (unlikely(!var249)) {
1242 var_class_name252 = type_core__Int.name;
1243 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name252);
1244 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
1245 fatal_exit(1);
1246 }
1247 var253 = var246 > 0l;
1248 var247 = var253;
1249 goto RET_LABEL248;
1250 RET_LABEL248:(void)0;
1251 }
1252 }
1253 if (var247){
1254 if (unlikely(varonce254==NULL)) {
1255 var255 = NEW_core__NativeArray((int)6l, &type_core__NativeArray__core__String);
1256 if (likely(varonce256!=NULL)) {
1257 var257 = varonce256;
1258 } else {
1259 var258 = "Error: cannot do an implicit constructor call to `";
1260 var260 = (val*)(50l<<2|1);
1261 var261 = (val*)(50l<<2|1);
1262 var262 = (val*)((long)(0)<<2|3);
1263 var263 = (val*)((long)(0)<<2|3);
1264 var259 = core__flat___CString___to_s_unsafe(var258, var260, var261, var262, var263);
1265 var257 = var259;
1266 varonce256 = var257;
1267 }
1268 ((struct instance_core__NativeArray*)var255)->values[0]=var257;
1269 if (likely(varonce264!=NULL)) {
1270 var265 = varonce264;
1271 } else {
1272 var266 = "`. Expected at least `";
1273 var268 = (val*)(22l<<2|1);
1274 var269 = (val*)(22l<<2|1);
1275 var270 = (val*)((long)(0)<<2|3);
1276 var271 = (val*)((long)(0)<<2|3);
1277 var267 = core__flat___CString___to_s_unsafe(var266, var268, var269, var270, var271);
1278 var265 = var267;
1279 varonce264 = var265;
1280 }
1281 ((struct instance_core__NativeArray*)var255)->values[3]=var265;
1282 if (likely(varonce272!=NULL)) {
1283 var273 = varonce272;
1284 } else {
1285 var274 = "` arguments.";
1286 var276 = (val*)(12l<<2|1);
1287 var277 = (val*)(12l<<2|1);
1288 var278 = (val*)((long)(0)<<2|3);
1289 var279 = (val*)((long)(0)<<2|3);
1290 var275 = core__flat___CString___to_s_unsafe(var274, var276, var277, var278, var279);
1291 var273 = var275;
1292 varonce272 = var273;
1293 }
1294 ((struct instance_core__NativeArray*)var255)->values[5]=var273;
1295 } else {
1296 var255 = varonce254;
1297 varonce254 = NULL;
1298 }
1299 {
1300 var280 = ((val*(*)(val* self))(var_candidatedef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_candidatedef); /* to_s on <var_candidatedef:MMethodDef>*/
1301 }
1302 ((struct instance_core__NativeArray*)var255)->values[1]=var280;
1303 {
1304 var281 = ((val*(*)(val* self))(var_msignature->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_msignature); /* to_s on <var_msignature:nullable MSignature(MSignature)>*/
1305 }
1306 ((struct instance_core__NativeArray*)var255)->values[2]=var281;
1307 {
1308 var282 = nitc___nitc__MSignature___arity(var_msignature);
1309 }
1310 var283 = core__flat___Int___core__abstract_text__Object__to_s(var282);
1311 ((struct instance_core__NativeArray*)var255)->values[4]=var283;
1312 {
1313 var284 = ((val*(*)(val* self))(var255->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var255); /* native_to_s on <var255:NativeArray[String]>*/
1314 }
1315 varonce254 = var255;
1316 {
1317 nitc___nitc__ModelBuilder___error(var_modelbuilder, self, var284); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
1318 }
1319 {
1320 { /* Inline modelbuilder_base$ANode$is_broken= (self,1) on <self:AMethPropdef> */
1321 self->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s = 1; /* _is_broken on <self:AMethPropdef> */
1322 RET_LABEL285:(void)0;
1323 }
1324 }
1325 goto RET_LABEL;
1326 } else {
1327 }
1328 var286 = NEW_nitc__CallSite(&type_nitc__CallSite);
1329 {
1330 var287 = nitc___nitc__AMethPropdef___ANode__hot_location(self);
1331 }
1332 {
1333 ((void(*)(val* self, val* p0))(var286->class->vft[COLOR_nitc__typing__CallSite__location_61d]))(var286, var287); /* location= on <var286:CallSite>*/
1334 }
1335 {
1336 ((void(*)(val* self, val* p0))(var286->class->vft[COLOR_nitc__typing__CallSite__recv_61d]))(var286, var_recvtype); /* recv= on <var286:CallSite>*/
1337 }
1338 {
1339 ((void(*)(val* self, val* p0))(var286->class->vft[COLOR_nitc__typing__CallSite__mmodule_61d]))(var286, var_mmodule); /* mmodule= on <var286:CallSite>*/
1340 }
1341 {
1342 ((void(*)(val* self, val* p0))(var286->class->vft[COLOR_nitc__typing__CallSite__anchor_61d]))(var286, var_anchor); /* anchor= on <var286:CallSite>*/
1343 }
1344 {
1345 ((void(*)(val* self, short int p0))(var286->class->vft[COLOR_nitc__typing__CallSite__recv_is_self_61d]))(var286, 1); /* recv_is_self= on <var286:CallSite>*/
1346 }
1347 {
1348 ((void(*)(val* self, val* p0))(var286->class->vft[COLOR_nitc__typing__CallSite__mproperty_61d]))(var286, var_the_root_init_mmethod); /* mproperty= on <var286:CallSite>*/
1349 }
1350 {
1351 ((void(*)(val* self, val* p0))(var286->class->vft[COLOR_nitc__typing__CallSite__mpropdef_61d]))(var286, var_candidatedef); /* mpropdef= on <var286:CallSite>*/
1352 }
1353 {
1354 ((void(*)(val* self, val* p0))(var286->class->vft[COLOR_nitc__typing__CallSite__msignature_61d]))(var286, var_msignature); /* msignature= on <var286:CallSite>*/
1355 }
1356 {
1357 ((void(*)(val* self, short int p0))(var286->class->vft[COLOR_nitc__typing__CallSite__erasure_cast_61d]))(var286, 0); /* erasure_cast= on <var286:CallSite>*/
1358 }
1359 {
1360 ((void(*)(val* self))(var286->class->vft[COLOR_core__kernel__Object__init]))(var286); /* init on <var286:CallSite>*/
1361 }
1362 var_callsite = var286;
1363 {
1364 core___core__Array___core__abstract_collection__SimpleCollection__add(var_auto_super_inits, var_callsite); /* Direct call array$Array$add on <var_auto_super_inits:Array[CallSite]>*/
1365 }
1366 {
1367 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
1368 var290 = var_modelbuilder->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var_modelbuilder:ModelBuilder> */
1369 if (unlikely(var290 == NULL)) {
1370 if(catchStack.cursor >= 0){
1371 longjmp(catchStack.envs[catchStack.cursor], 1);
1372 }
1373 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1374 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
1375 fatal_exit(1);
1376 }
1377 var288 = var290;
1378 RET_LABEL289:(void)0;
1379 }
1380 }
1381 if (unlikely(varonce291==NULL)) {
1382 var292 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
1383 if (likely(varonce293!=NULL)) {
1384 var294 = varonce293;
1385 } else {
1386 var295 = "Auto-super init for ";
1387 var297 = (val*)(20l<<2|1);
1388 var298 = (val*)(20l<<2|1);
1389 var299 = (val*)((long)(0)<<2|3);
1390 var300 = (val*)((long)(0)<<2|3);
1391 var296 = core__flat___CString___to_s_unsafe(var295, var297, var298, var299, var300);
1392 var294 = var296;
1393 varonce293 = var294;
1394 }
1395 ((struct instance_core__NativeArray*)var292)->values[0]=var294;
1396 if (likely(varonce301!=NULL)) {
1397 var302 = varonce301;
1398 } else {
1399 var303 = " to ";
1400 var305 = (val*)(4l<<2|1);
1401 var306 = (val*)(4l<<2|1);
1402 var307 = (val*)((long)(0)<<2|3);
1403 var308 = (val*)((long)(0)<<2|3);
1404 var304 = core__flat___CString___to_s_unsafe(var303, var305, var306, var307, var308);
1405 var302 = var304;
1406 varonce301 = var302;
1407 }
1408 ((struct instance_core__NativeArray*)var292)->values[2]=var302;
1409 } else {
1410 var292 = varonce291;
1411 varonce291 = NULL;
1412 }
1413 {
1414 var309 = ((val*(*)(val* self))(var_mpropdef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mpropdef); /* to_s on <var_mpropdef:nullable MMethodDef(MMethodDef)>*/
1415 }
1416 ((struct instance_core__NativeArray*)var292)->values[1]=var309;
1417 {
1418 var310 = nitc___nitc__MProperty___nitc__model_base__MEntity__full_name(var_the_root_init_mmethod);
1419 }
1420 ((struct instance_core__NativeArray*)var292)->values[3]=var310;
1421 {
1422 var311 = ((val*(*)(val* self))(var292->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var292); /* native_to_s on <var292:NativeArray[String]>*/
1423 }
1424 varonce291 = var292;
1425 {
1426 nitc___nitc__ToolContext___info(var288, var311, 4l); /* Direct call toolcontext$ToolContext$info on <var288:ToolContext>*/
1427 }
1428 } else {
1429 }
1430 {
1431 var312 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_auto_super_inits);
1432 }
1433 if (var312){
1434 if (unlikely(varonce313==NULL)) {
1435 var314 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1436 if (likely(varonce315!=NULL)) {
1437 var316 = varonce315;
1438 } else {
1439 var317 = "Error: no constructors to call implicitly in `";
1440 var319 = (val*)(46l<<2|1);
1441 var320 = (val*)(46l<<2|1);
1442 var321 = (val*)((long)(0)<<2|3);
1443 var322 = (val*)((long)(0)<<2|3);
1444 var318 = core__flat___CString___to_s_unsafe(var317, var319, var320, var321, var322);
1445 var316 = var318;
1446 varonce315 = var316;
1447 }
1448 ((struct instance_core__NativeArray*)var314)->values[0]=var316;
1449 if (likely(varonce323!=NULL)) {
1450 var324 = varonce323;
1451 } else {
1452 var325 = "`. Call one explicitly.";
1453 var327 = (val*)(23l<<2|1);
1454 var328 = (val*)(23l<<2|1);
1455 var329 = (val*)((long)(0)<<2|3);
1456 var330 = (val*)((long)(0)<<2|3);
1457 var326 = core__flat___CString___to_s_unsafe(var325, var327, var328, var329, var330);
1458 var324 = var326;
1459 varonce323 = var324;
1460 }
1461 ((struct instance_core__NativeArray*)var314)->values[2]=var324;
1462 } else {
1463 var314 = varonce313;
1464 varonce313 = NULL;
1465 }
1466 {
1467 var331 = ((val*(*)(val* self))(var_mpropdef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mpropdef); /* to_s on <var_mpropdef:nullable MMethodDef(MMethodDef)>*/
1468 }
1469 ((struct instance_core__NativeArray*)var314)->values[1]=var331;
1470 {
1471 var332 = ((val*(*)(val* self))(var314->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var314); /* native_to_s on <var314:NativeArray[String]>*/
1472 }
1473 varonce313 = var314;
1474 {
1475 nitc___nitc__ModelBuilder___error(var_modelbuilder, self, var332); /* Direct call modelbuilder_base$ModelBuilder$error on <var_modelbuilder:ModelBuilder>*/
1476 }
1477 goto RET_LABEL;
1478 } else {
1479 }
1480 {
1481 { /* Inline auto_super_init$AMethPropdef$auto_super_inits= (self,var_auto_super_inits) on <self:AMethPropdef> */
1482 self->attrs[COLOR_nitc__auto_super_init__AMethPropdef___auto_super_inits].val = var_auto_super_inits; /* _auto_super_inits on <self:AMethPropdef> */
1483 RET_LABEL333:(void)0;
1484 }
1485 }
1486 RET_LABEL:;
1487 }
1488 /* method auto_super_init$ANode$accept_auto_super_init for (self: ANode, AutoSuperInitVisitor) */
1489 void nitc__auto_super_init___ANode___accept_auto_super_init(val* self, val* p0) {
1490 val* var_v /* var v: AutoSuperInitVisitor */;
1491 var_v = p0;
1492 RET_LABEL:;
1493 }
1494 /* method auto_super_init$ASendExpr$accept_auto_super_init for (self: ASendExpr, AutoSuperInitVisitor) */
1495 void nitc__auto_super_init___ASendExpr___ANode__accept_auto_super_init(val* self, val* p0) {
1496 val* var_v /* var v: AutoSuperInitVisitor */;
1497 val* var /* : nullable CallSite */;
1498 val* var2 /* : nullable CallSite */;
1499 val* var_callsite /* var callsite: nullable CallSite */;
1500 short int var3 /* : Bool */;
1501 short int var4 /* : Bool */;
1502 val* var_other /* var other: nullable Object */;
1503 short int var6 /* : Bool */;
1504 short int var8 /* : Bool */;
1505 val* var10 /* : MMethod */;
1506 val* var12 /* : MMethod */;
1507 short int var13 /* : Bool */;
1508 short int var15 /* : Bool */;
1509 var_v = p0;
1510 {
1511 { /* Inline typing$ASendExpr$callsite (self) on <self:ASendExpr> */
1512 var2 = self->attrs[COLOR_nitc__typing__ASendExpr___callsite].val; /* _callsite on <self:ASendExpr> */
1513 var = var2;
1514 RET_LABEL1:(void)0;
1515 }
1516 }
1517 var_callsite = var;
1518 if (var_callsite == NULL) {
1519 var3 = 1; /* is null */
1520 } else {
1521 var3 = 0; /* arg is null but recv is not */
1522 }
1523 if (0) {
1524 { /* Inline kernel$Object$== (var_callsite,((val*)NULL)) on <var_callsite:nullable CallSite> */
1525 var_other = ((val*)NULL);
1526 {
1527 { /* Inline kernel$Object$is_same_instance (var_callsite,var_other) on <var_callsite:nullable CallSite(CallSite)> */
1528 var8 = var_callsite == var_other;
1529 var6 = var8;
1530 goto RET_LABEL7;
1531 RET_LABEL7:(void)0;
1532 }
1533 }
1534 var4 = var6;
1535 goto RET_LABEL5;
1536 RET_LABEL5:(void)0;
1537 }
1538 var3 = var4;
1539 }
1540 if (var3){
1541 {
1542 { /* Inline auto_super_init$AutoSuperInitVisitor$is_broken= (var_v,1) on <var_v:AutoSuperInitVisitor> */
1543 var_v->attrs[COLOR_nitc__auto_super_init__AutoSuperInitVisitor___is_broken].s = 1; /* _is_broken on <var_v:AutoSuperInitVisitor> */
1544 RET_LABEL9:(void)0;
1545 }
1546 }
1547 goto RET_LABEL;
1548 } else {
1549 }
1550 {
1551 { /* Inline typing$CallSite$mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
1552 var12 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mproperty].val; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
1553 if (unlikely(var12 == NULL)) {
1554 if(catchStack.cursor >= 0){
1555 longjmp(catchStack.envs[catchStack.cursor], 1);
1556 }
1557 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1558 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 656);
1559 fatal_exit(1);
1560 }
1561 var10 = var12;
1562 RET_LABEL11:(void)0;
1563 }
1564 }
1565 {
1566 { /* Inline model$MMethod$is_init (var10) on <var10:MMethod> */
1567 var15 = var10->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <var10:MMethod> */
1568 var13 = var15;
1569 RET_LABEL14:(void)0;
1570 }
1571 }
1572 if (var13){
1573 {
1574 { /* Inline auto_super_init$AutoSuperInitVisitor$has_explicit_super_init= (var_v,self) on <var_v:AutoSuperInitVisitor> */
1575 var_v->attrs[COLOR_nitc__auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val = self; /* _has_explicit_super_init on <var_v:AutoSuperInitVisitor> */
1576 RET_LABEL16:(void)0;
1577 }
1578 }
1579 } else {
1580 }
1581 RET_LABEL:;
1582 }
1583 /* method auto_super_init$ASuperExpr$accept_auto_super_init for (self: ASuperExpr, AutoSuperInitVisitor) */
1584 void nitc__auto_super_init___ASuperExpr___ANode__accept_auto_super_init(val* self, val* p0) {
1585 val* var_v /* var v: AutoSuperInitVisitor */;
1586 var_v = p0;
1587 {
1588 { /* Inline auto_super_init$AutoSuperInitVisitor$has_explicit_super_init= (var_v,self) on <var_v:AutoSuperInitVisitor> */
1589 var_v->attrs[COLOR_nitc__auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val = self; /* _has_explicit_super_init on <var_v:AutoSuperInitVisitor> */
1590 RET_LABEL1:(void)0;
1591 }
1592 }
1593 RET_LABEL:;
1594 }