misc/vim: inform the user when no results are found
[nit.git] / c_src / nit__modelize_property.sep.1.c
1 #include "nit__modelize_property.sep.0.h"
2 /* method modelize_property#ToolContext#modelize_property_phase for (self: ToolContext): Phase */
3 val* nit__modelize_property___ToolContext___modelize_property_phase(val* self) {
4 val* var /* : Phase */;
5 val* var1 /* : Phase */;
6 var1 = self->attrs[COLOR_nit__modelize_property__ToolContext___modelize_property_phase].val; /* _modelize_property_phase on <self:ToolContext> */
7 if (unlikely(var1 == NULL)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelize_property_phase");
9 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 24);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method modelize_property#ModelizePropertyPhase#process_nmodule for (self: ModelizePropertyPhase, AModule) */
17 void nit__modelize_property___nit__modelize_property__ModelizePropertyPhase___nit__phase__Phase__process_nmodule(val* self, val* p0) {
18 val* var_nmodule /* var nmodule: AModule */;
19 val* var /* : ANodes[AClassdef] */;
20 val* var2 /* : ANodes[AClassdef] */;
21 val* var_ /* var : ANodes[AClassdef] */;
22 val* var3 /* : Iterator[ANode] */;
23 val* var_4 /* var : Iterator[AClassdef] */;
24 short int var5 /* : Bool */;
25 val* var6 /* : nullable Object */;
26 val* var_nclassdef /* var nclassdef: AClassdef */;
27 val* var7 /* : nullable Array[AClassdef] */;
28 val* var9 /* : nullable Array[AClassdef] */;
29 val* var10 /* : null */;
30 short int var11 /* : Bool */;
31 short int var12 /* : Bool */;
32 val* var13 /* : ToolContext */;
33 val* var15 /* : ToolContext */;
34 val* var16 /* : ModelBuilder */;
35 var_nmodule = p0;
36 {
37 { /* Inline parser_nodes#AModule#n_classdefs (var_nmodule) on <var_nmodule:AModule> */
38 var2 = var_nmodule->attrs[COLOR_nit__parser_nodes__AModule___n_classdefs].val; /* _n_classdefs on <var_nmodule:AModule> */
39 if (unlikely(var2 == NULL)) {
40 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_classdefs");
41 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 919);
42 show_backtrace(1);
43 }
44 var = var2;
45 RET_LABEL1:(void)0;
46 }
47 }
48 var_ = var;
49 {
50 var3 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_);
51 }
52 var_4 = var3;
53 for(;;) {
54 {
55 var5 = ((short int (*)(val* self))(var_4->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_4) /* is_ok on <var_4:Iterator[AClassdef]>*/;
56 }
57 if (var5){
58 {
59 var6 = ((val* (*)(val* self))(var_4->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_4) /* item on <var_4:Iterator[AClassdef]>*/;
60 }
61 var_nclassdef = var6;
62 {
63 { /* Inline modelize_class#AClassdef#all_defs (var_nclassdef) on <var_nclassdef:AClassdef> */
64 var9 = var_nclassdef->attrs[COLOR_nit__modelize_class__AClassdef___all_defs].val; /* _all_defs on <var_nclassdef:AClassdef> */
65 var7 = var9;
66 RET_LABEL8:(void)0;
67 }
68 }
69 var10 = NULL;
70 if (var7 == NULL) {
71 var11 = 1; /* is null */
72 } else {
73 var11 = 0; /* arg is null but recv is not */
74 }
75 if (0) {
76 var12 = standard___standard__Array___standard__kernel__Object___61d_61d(var7, var10);
77 var11 = var12;
78 }
79 if (var11){
80 goto BREAK_label;
81 } else {
82 }
83 {
84 { /* Inline phase#Phase#toolcontext (self) on <self:ModelizePropertyPhase> */
85 var15 = self->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on <self:ModelizePropertyPhase> */
86 if (unlikely(var15 == NULL)) {
87 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
88 PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 201);
89 show_backtrace(1);
90 }
91 var13 = var15;
92 RET_LABEL14:(void)0;
93 }
94 }
95 {
96 var16 = nit__modelbuilder_base___ToolContext___modelbuilder(var13);
97 }
98 {
99 nit__modelize_property___ModelBuilder___build_properties(var16, var_nclassdef); /* Direct call modelize_property#ModelBuilder#build_properties on <var16:ModelBuilder>*/
100 }
101 BREAK_label: (void)0;
102 {
103 ((void (*)(val* self))(var_4->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_4) /* next on <var_4:Iterator[AClassdef]>*/;
104 }
105 } else {
106 goto BREAK_label17;
107 }
108 }
109 BREAK_label17: (void)0;
110 {
111 { /* Inline abstract_collection#Iterator#finish (var_4) on <var_4:Iterator[AClassdef]> */
112 RET_LABEL18:(void)0;
113 }
114 }
115 RET_LABEL:;
116 }
117 /* method modelize_property#ModelBuilder#mpropdef2npropdef for (self: ModelBuilder): HashMap[MPropDef, APropdef] */
118 val* nit__modelize_property___ModelBuilder___mpropdef2npropdef(val* self) {
119 val* var /* : HashMap[MPropDef, APropdef] */;
120 val* var1 /* : HashMap[MPropDef, APropdef] */;
121 var1 = self->attrs[COLOR_nit__modelize_property__ModelBuilder___mpropdef2npropdef].val; /* _mpropdef2npropdef on <self:ModelBuilder> */
122 if (unlikely(var1 == NULL)) {
123 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
124 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 40);
125 show_backtrace(1);
126 }
127 var = var1;
128 RET_LABEL:;
129 return var;
130 }
131 /* method modelize_property#ModelBuilder#mpropdef2node for (self: ModelBuilder, MPropDef): nullable ANode */
132 val* nit__modelize_property___ModelBuilder___mpropdef2node(val* self, val* p0) {
133 val* var /* : nullable ANode */;
134 val* var_mpropdef /* var mpropdef: MPropDef */;
135 val* var1 /* : HashMap[MPropDef, APropdef] */;
136 val* var3 /* : HashMap[MPropDef, APropdef] */;
137 val* var4 /* : nullable Object */;
138 val* var_res /* var res: nullable Object */;
139 val* var5 /* : null */;
140 short int var6 /* : Bool */;
141 short int var7 /* : Bool */;
142 val* var_other /* var other: nullable Object */;
143 short int var9 /* : Bool */;
144 short int var10 /* : Bool */;
145 val* var11 /* : ToolContext */;
146 val* var13 /* : ToolContext */;
147 short int var14 /* : Bool */;
148 short int var15 /* : Bool */;
149 int cltype;
150 int idtype;
151 short int var_ /* var : Bool */;
152 val* var16 /* : MProperty */;
153 val* var18 /* : MProperty */;
154 short int var19 /* : Bool */;
155 short int var21 /* : Bool */;
156 val* var22 /* : HashMap[MClassDef, AClassdef] */;
157 val* var24 /* : HashMap[MClassDef, AClassdef] */;
158 val* var25 /* : MClassDef */;
159 val* var27 /* : MClassDef */;
160 val* var28 /* : nullable Object */;
161 val* var29 /* : null */;
162 short int var30 /* : Bool */;
163 short int var31 /* : Bool */;
164 short int var33 /* : Bool */;
165 short int var34 /* : Bool */;
166 val* var35 /* : null */;
167 var_mpropdef = p0;
168 {
169 { /* Inline modelize_property#ModelBuilder#mpropdef2npropdef (self) on <self:ModelBuilder> */
170 var3 = self->attrs[COLOR_nit__modelize_property__ModelBuilder___mpropdef2npropdef].val; /* _mpropdef2npropdef on <self:ModelBuilder> */
171 if (unlikely(var3 == NULL)) {
172 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
173 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 40);
174 show_backtrace(1);
175 }
176 var1 = var3;
177 RET_LABEL2:(void)0;
178 }
179 }
180 {
181 var4 = standard___standard__HashMap___standard__abstract_collection__MapRead__get_or_null(var1, var_mpropdef);
182 }
183 var_res = var4;
184 var5 = NULL;
185 if (var_res == NULL) {
186 var6 = 0; /* is null */
187 } else {
188 var6 = 1; /* arg is null and recv is not */
189 }
190 if (0) {
191 { /* Inline kernel#Object#!= (var_res,var5) on <var_res:nullable Object(nullable APropdef)> */
192 var_other = var5;
193 {
194 var9 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other) /* == on <var_res:nullable APropdef(APropdef)>*/;
195 }
196 var10 = !var9;
197 var7 = var10;
198 goto RET_LABEL8;
199 RET_LABEL8:(void)0;
200 }
201 var6 = var7;
202 }
203 if (var6){
204 {
205 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
206 var13 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
207 if (unlikely(var13 == NULL)) {
208 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
209 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
210 show_backtrace(1);
211 }
212 var11 = var13;
213 RET_LABEL12:(void)0;
214 }
215 }
216 {
217 nit__phase___ToolContext___run_phases_on_npropdef(var11, var_res); /* Direct call phase#ToolContext#run_phases_on_npropdef on <var11:ToolContext>*/
218 }
219 var = var_res;
220 goto RET_LABEL;
221 } else {
222 }
223 /* <var_mpropdef:MPropDef> isa MMethodDef */
224 cltype = type_nit__MMethodDef.color;
225 idtype = type_nit__MMethodDef.id;
226 if(cltype >= var_mpropdef->type->table_size) {
227 var15 = 0;
228 } else {
229 var15 = var_mpropdef->type->type_table[cltype] == idtype;
230 }
231 var_ = var15;
232 if (var15){
233 {
234 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MPropDef(MMethodDef)> */
235 var18 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MPropDef(MMethodDef)> */
236 if (unlikely(var18 == NULL)) {
237 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
238 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
239 show_backtrace(1);
240 }
241 var16 = var18;
242 RET_LABEL17:(void)0;
243 }
244 }
245 {
246 { /* Inline model#MMethod#is_root_init (var16) on <var16:MProperty(MMethod)> */
247 var21 = var16->attrs[COLOR_nit__model__MMethod___is_root_init].s; /* _is_root_init on <var16:MProperty(MMethod)> */
248 var19 = var21;
249 RET_LABEL20:(void)0;
250 }
251 }
252 var14 = var19;
253 } else {
254 var14 = var_;
255 }
256 if (var14){
257 {
258 { /* Inline modelize_class#ModelBuilder#mclassdef2nclassdef (self) on <self:ModelBuilder> */
259 var24 = self->attrs[COLOR_nit__modelize_class__ModelBuilder___mclassdef2nclassdef].val; /* _mclassdef2nclassdef on <self:ModelBuilder> */
260 if (unlikely(var24 == NULL)) {
261 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef2nclassdef");
262 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_class, 426);
263 show_backtrace(1);
264 }
265 var22 = var24;
266 RET_LABEL23:(void)0;
267 }
268 }
269 {
270 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef(MMethodDef)> */
271 var27 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef(MMethodDef)> */
272 if (unlikely(var27 == NULL)) {
273 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
274 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010);
275 show_backtrace(1);
276 }
277 var25 = var27;
278 RET_LABEL26:(void)0;
279 }
280 }
281 {
282 var28 = standard___standard__HashMap___standard__abstract_collection__MapRead__get_or_null(var22, var25);
283 }
284 var_res = var28;
285 var29 = NULL;
286 if (var_res == NULL) {
287 var30 = 0; /* is null */
288 } else {
289 var30 = 1; /* arg is null and recv is not */
290 }
291 if (0) {
292 { /* Inline kernel#Object#!= (var_res,var29) on <var_res:nullable Object(nullable AClassdef)> */
293 var_other = var29;
294 {
295 var33 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other) /* == on <var_res:nullable AClassdef(AClassdef)>*/;
296 }
297 var34 = !var33;
298 var31 = var34;
299 goto RET_LABEL32;
300 RET_LABEL32:(void)0;
301 }
302 var30 = var31;
303 }
304 if (var30){
305 var = var_res;
306 goto RET_LABEL;
307 } else {
308 }
309 } else {
310 }
311 var35 = NULL;
312 var = var35;
313 goto RET_LABEL;
314 RET_LABEL:;
315 return var;
316 }
317 /* method modelize_property#ModelBuilder#collect_attr_propdef for (self: ModelBuilder, MClassDef): Array[AAttrPropdef] */
318 val* nit__modelize_property___ModelBuilder___collect_attr_propdef(val* self, val* p0) {
319 val* var /* : Array[AAttrPropdef] */;
320 val* var_mclassdef /* var mclassdef: MClassDef */;
321 val* var1 /* : Array[AAttrPropdef] */;
322 val* var_res /* var res: Array[AAttrPropdef] */;
323 val* var2 /* : HashMap[MClassDef, AClassdef] */;
324 val* var4 /* : HashMap[MClassDef, AClassdef] */;
325 val* var5 /* : nullable Object */;
326 val* var_n /* var n: nullable AClassdef */;
327 val* var6 /* : null */;
328 short int var7 /* : Bool */;
329 short int var8 /* : Bool */;
330 val* var_other /* var other: nullable Object */;
331 short int var10 /* : Bool */;
332 short int var12 /* : Bool */;
333 val* var13 /* : ANodes[APropdef] */;
334 val* var15 /* : ANodes[APropdef] */;
335 val* var_ /* var : ANodes[APropdef] */;
336 val* var16 /* : Iterator[ANode] */;
337 val* var_17 /* var : Iterator[APropdef] */;
338 short int var18 /* : Bool */;
339 val* var19 /* : nullable Object */;
340 val* var_npropdef /* var npropdef: APropdef */;
341 short int var20 /* : Bool */;
342 int cltype;
343 int idtype;
344 val* var21 /* : ToolContext */;
345 val* var23 /* : ToolContext */;
346 var_mclassdef = p0;
347 var1 = NEW_standard__Array(&type_standard__Array__nit__AAttrPropdef);
348 {
349 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[AAttrPropdef]>*/
350 }
351 var_res = var1;
352 {
353 { /* Inline modelize_class#ModelBuilder#mclassdef2nclassdef (self) on <self:ModelBuilder> */
354 var4 = self->attrs[COLOR_nit__modelize_class__ModelBuilder___mclassdef2nclassdef].val; /* _mclassdef2nclassdef on <self:ModelBuilder> */
355 if (unlikely(var4 == NULL)) {
356 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef2nclassdef");
357 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_class, 426);
358 show_backtrace(1);
359 }
360 var2 = var4;
361 RET_LABEL3:(void)0;
362 }
363 }
364 {
365 var5 = standard___standard__HashMap___standard__abstract_collection__MapRead__get_or_null(var2, var_mclassdef);
366 }
367 var_n = var5;
368 var6 = NULL;
369 if (var_n == NULL) {
370 var7 = 1; /* is null */
371 } else {
372 var7 = 0; /* arg is null but recv is not */
373 }
374 if (0) {
375 { /* Inline kernel#Object#== (var_n,var6) on <var_n:nullable AClassdef> */
376 var_other = var6;
377 {
378 { /* Inline kernel#Object#is_same_instance (var_n,var_other) on <var_n:nullable AClassdef(AClassdef)> */
379 var12 = var_n == var_other;
380 var10 = var12;
381 goto RET_LABEL11;
382 RET_LABEL11:(void)0;
383 }
384 }
385 var8 = var10;
386 goto RET_LABEL9;
387 RET_LABEL9:(void)0;
388 }
389 var7 = var8;
390 }
391 if (var7){
392 var = var_res;
393 goto RET_LABEL;
394 } else {
395 }
396 {
397 { /* Inline parser_nodes#AClassdef#n_propdefs (var_n) on <var_n:nullable AClassdef(AClassdef)> */
398 var15 = var_n->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <var_n:nullable AClassdef(AClassdef)> */
399 if (unlikely(var15 == NULL)) {
400 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
401 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1012);
402 show_backtrace(1);
403 }
404 var13 = var15;
405 RET_LABEL14:(void)0;
406 }
407 }
408 var_ = var13;
409 {
410 var16 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_);
411 }
412 var_17 = var16;
413 for(;;) {
414 {
415 var18 = ((short int (*)(val* self))(var_17->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_17) /* is_ok on <var_17:Iterator[APropdef]>*/;
416 }
417 if (var18){
418 {
419 var19 = ((val* (*)(val* self))(var_17->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_17) /* item on <var_17:Iterator[APropdef]>*/;
420 }
421 var_npropdef = var19;
422 /* <var_npropdef:APropdef> isa AAttrPropdef */
423 cltype = type_nit__AAttrPropdef.color;
424 idtype = type_nit__AAttrPropdef.id;
425 if(cltype >= var_npropdef->type->table_size) {
426 var20 = 0;
427 } else {
428 var20 = var_npropdef->type->type_table[cltype] == idtype;
429 }
430 if (var20){
431 {
432 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
433 var23 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
434 if (unlikely(var23 == NULL)) {
435 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
436 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
437 show_backtrace(1);
438 }
439 var21 = var23;
440 RET_LABEL22:(void)0;
441 }
442 }
443 {
444 nit__phase___ToolContext___run_phases_on_npropdef(var21, var_npropdef); /* Direct call phase#ToolContext#run_phases_on_npropdef on <var21:ToolContext>*/
445 }
446 {
447 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res, var_npropdef); /* Direct call array#Array#add on <var_res:Array[AAttrPropdef]>*/
448 }
449 } else {
450 }
451 {
452 ((void (*)(val* self))(var_17->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_17) /* next on <var_17:Iterator[APropdef]>*/;
453 }
454 } else {
455 goto BREAK_label;
456 }
457 }
458 BREAK_label: (void)0;
459 {
460 { /* Inline abstract_collection#Iterator#finish (var_17) on <var_17:Iterator[APropdef]> */
461 RET_LABEL24:(void)0;
462 }
463 }
464 var = var_res;
465 goto RET_LABEL;
466 RET_LABEL:;
467 return var;
468 }
469 /* method modelize_property#ModelBuilder#build_properties for (self: ModelBuilder, AClassdef) */
470 void nit__modelize_property___ModelBuilder___build_properties(val* self, val* p0) {
471 val* var_nclassdef /* var nclassdef: AClassdef */;
472 short int var /* : Bool */;
473 short int var2 /* : Bool */;
474 short int var3 /* : Bool */;
475 val* var5 /* : nullable MClassDef */;
476 val* var7 /* : nullable MClassDef */;
477 val* var_mclassdef /* var mclassdef: MClassDef */;
478 val* var8 /* : nullable POSetElement[MClassDef] */;
479 val* var10 /* : nullable POSetElement[MClassDef] */;
480 val* var11 /* : null */;
481 short int var12 /* : Bool */;
482 short int var13 /* : Bool */;
483 val* var_other /* var other: nullable Object */;
484 short int var15 /* : Bool */;
485 short int var17 /* : Bool */;
486 val* var18 /* : nullable POSetElement[MClassDef] */;
487 val* var20 /* : nullable POSetElement[MClassDef] */;
488 val* var21 /* : Collection[nullable Object] */;
489 val* var_ /* var : Collection[MClassDef] */;
490 val* var22 /* : Iterator[nullable Object] */;
491 val* var_23 /* var : Iterator[MClassDef] */;
492 short int var24 /* : Bool */;
493 val* var25 /* : nullable Object */;
494 val* var_superclassdef /* var superclassdef: MClassDef */;
495 val* var26 /* : HashMap[MClassDef, AClassdef] */;
496 val* var28 /* : HashMap[MClassDef, AClassdef] */;
497 short int var29 /* : Bool */;
498 short int var30 /* : Bool */;
499 val* var31 /* : HashMap[MClassDef, AClassdef] */;
500 val* var33 /* : HashMap[MClassDef, AClassdef] */;
501 val* var34 /* : nullable Object */;
502 val* var37 /* : nullable Array[AClassdef] */;
503 val* var39 /* : nullable Array[AClassdef] */;
504 val* var_40 /* var : nullable Array[AClassdef] */;
505 val* var41 /* : ArrayIterator[nullable Object] */;
506 val* var_42 /* var : ArrayIterator[AClassdef] */;
507 short int var43 /* : Bool */;
508 val* var44 /* : nullable Object */;
509 val* var_nclassdef2 /* var nclassdef2: AClassdef */;
510 val* var45 /* : ANodes[APropdef] */;
511 val* var47 /* : ANodes[APropdef] */;
512 val* var_48 /* var : ANodes[APropdef] */;
513 val* var49 /* : Iterator[ANode] */;
514 val* var_50 /* var : Iterator[APropdef] */;
515 short int var51 /* : Bool */;
516 val* var52 /* : nullable Object */;
517 val* var_npropdef /* var npropdef: APropdef */;
518 val* var55 /* : ANodes[APropdef] */;
519 val* var57 /* : ANodes[APropdef] */;
520 val* var_58 /* var : ANodes[APropdef] */;
521 val* var59 /* : Iterator[ANode] */;
522 val* var_60 /* var : Iterator[APropdef] */;
523 short int var61 /* : Bool */;
524 val* var62 /* : nullable Object */;
525 val* var_npropdef63 /* var npropdef: APropdef */;
526 val* var66 /* : ANodes[APropdef] */;
527 val* var68 /* : ANodes[APropdef] */;
528 val* var_69 /* var : ANodes[APropdef] */;
529 val* var70 /* : Iterator[ANode] */;
530 val* var_71 /* var : Iterator[APropdef] */;
531 short int var72 /* : Bool */;
532 val* var73 /* : nullable Object */;
533 val* var_npropdef74 /* var npropdef: APropdef */;
534 var_nclassdef = p0;
535 {
536 { /* Inline modelize_property#AClassdef#build_properties_is_done (var_nclassdef) on <var_nclassdef:AClassdef> */
537 var2 = var_nclassdef->attrs[COLOR_nit__modelize_property__AClassdef___build_properties_is_done].s; /* _build_properties_is_done on <var_nclassdef:AClassdef> */
538 var = var2;
539 RET_LABEL1:(void)0;
540 }
541 }
542 if (var){
543 goto RET_LABEL;
544 } else {
545 }
546 var3 = 1;
547 {
548 { /* Inline modelize_property#AClassdef#build_properties_is_done= (var_nclassdef,var3) on <var_nclassdef:AClassdef> */
549 var_nclassdef->attrs[COLOR_nit__modelize_property__AClassdef___build_properties_is_done].s = var3; /* _build_properties_is_done on <var_nclassdef:AClassdef> */
550 RET_LABEL4:(void)0;
551 }
552 }
553 {
554 { /* Inline modelize_class#AClassdef#mclassdef (var_nclassdef) on <var_nclassdef:AClassdef> */
555 var7 = var_nclassdef->attrs[COLOR_nit__modelize_class__AClassdef___mclassdef].val; /* _mclassdef on <var_nclassdef:AClassdef> */
556 var5 = var7;
557 RET_LABEL6:(void)0;
558 }
559 }
560 if (unlikely(var5 == NULL)) {
561 PRINT_ERROR("Runtime error: %s", "Cast failed");
562 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 89);
563 show_backtrace(1);
564 }
565 var_mclassdef = var5;
566 {
567 { /* Inline model#MClassDef#in_hierarchy (var_mclassdef) on <var_mclassdef:MClassDef> */
568 var10 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___in_hierarchy].val; /* _in_hierarchy on <var_mclassdef:MClassDef> */
569 var8 = var10;
570 RET_LABEL9:(void)0;
571 }
572 }
573 var11 = NULL;
574 if (var8 == NULL) {
575 var12 = 1; /* is null */
576 } else {
577 var12 = 0; /* arg is null but recv is not */
578 }
579 if (0) {
580 { /* Inline kernel#Object#== (var8,var11) on <var8:nullable POSetElement[MClassDef]> */
581 var_other = var11;
582 {
583 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable POSetElement[MClassDef](POSetElement[MClassDef])> */
584 var17 = var8 == var_other;
585 var15 = var17;
586 goto RET_LABEL16;
587 RET_LABEL16:(void)0;
588 }
589 }
590 var13 = var15;
591 goto RET_LABEL14;
592 RET_LABEL14:(void)0;
593 }
594 var12 = var13;
595 }
596 if (var12){
597 goto RET_LABEL;
598 } else {
599 }
600 {
601 { /* Inline model#MClassDef#in_hierarchy (var_mclassdef) on <var_mclassdef:MClassDef> */
602 var20 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___in_hierarchy].val; /* _in_hierarchy on <var_mclassdef:MClassDef> */
603 var18 = var20;
604 RET_LABEL19:(void)0;
605 }
606 }
607 if (var18 == NULL) {
608 PRINT_ERROR("Runtime error: %s", "Receiver is null");
609 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 91);
610 show_backtrace(1);
611 } else {
612 var21 = poset___poset__POSetElement___direct_greaters(var18);
613 }
614 var_ = var21;
615 {
616 var22 = ((val* (*)(val* self))(var_->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_) /* iterator on <var_:Collection[MClassDef]>*/;
617 }
618 var_23 = var22;
619 for(;;) {
620 {
621 var24 = ((short int (*)(val* self))(var_23->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_23) /* is_ok on <var_23:Iterator[MClassDef]>*/;
622 }
623 if (var24){
624 {
625 var25 = ((val* (*)(val* self))(var_23->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_23) /* item on <var_23:Iterator[MClassDef]>*/;
626 }
627 var_superclassdef = var25;
628 {
629 { /* Inline modelize_class#ModelBuilder#mclassdef2nclassdef (self) on <self:ModelBuilder> */
630 var28 = self->attrs[COLOR_nit__modelize_class__ModelBuilder___mclassdef2nclassdef].val; /* _mclassdef2nclassdef on <self:ModelBuilder> */
631 if (unlikely(var28 == NULL)) {
632 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef2nclassdef");
633 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_class, 426);
634 show_backtrace(1);
635 }
636 var26 = var28;
637 RET_LABEL27:(void)0;
638 }
639 }
640 {
641 var29 = standard___standard__MapRead___has_key(var26, var_superclassdef);
642 }
643 var30 = !var29;
644 if (var30){
645 goto BREAK_label;
646 } else {
647 }
648 {
649 { /* Inline modelize_class#ModelBuilder#mclassdef2nclassdef (self) on <self:ModelBuilder> */
650 var33 = self->attrs[COLOR_nit__modelize_class__ModelBuilder___mclassdef2nclassdef].val; /* _mclassdef2nclassdef on <self:ModelBuilder> */
651 if (unlikely(var33 == NULL)) {
652 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef2nclassdef");
653 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_class, 426);
654 show_backtrace(1);
655 }
656 var31 = var33;
657 RET_LABEL32:(void)0;
658 }
659 }
660 {
661 var34 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var31, var_superclassdef);
662 }
663 {
664 nit__modelize_property___ModelBuilder___build_properties(self, var34); /* Direct call modelize_property#ModelBuilder#build_properties on <self:ModelBuilder>*/
665 }
666 BREAK_label: (void)0;
667 {
668 ((void (*)(val* self))(var_23->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_23) /* next on <var_23:Iterator[MClassDef]>*/;
669 }
670 } else {
671 goto BREAK_label35;
672 }
673 }
674 BREAK_label35: (void)0;
675 {
676 { /* Inline abstract_collection#Iterator#finish (var_23) on <var_23:Iterator[MClassDef]> */
677 RET_LABEL36:(void)0;
678 }
679 }
680 {
681 nit__modelize_property___MClassDef___build_self_type(var_mclassdef, self, var_nclassdef); /* Direct call modelize_property#MClassDef#build_self_type on <var_mclassdef:MClassDef>*/
682 }
683 {
684 { /* Inline modelize_class#AClassdef#all_defs (var_nclassdef) on <var_nclassdef:AClassdef> */
685 var39 = var_nclassdef->attrs[COLOR_nit__modelize_class__AClassdef___all_defs].val; /* _all_defs on <var_nclassdef:AClassdef> */
686 var37 = var39;
687 RET_LABEL38:(void)0;
688 }
689 }
690 var_40 = var37;
691 if (var_40 == NULL) {
692 PRINT_ERROR("Runtime error: %s", "Receiver is null");
693 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 97);
694 show_backtrace(1);
695 } else {
696 var41 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_40);
697 }
698 var_42 = var41;
699 for(;;) {
700 {
701 var43 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_42);
702 }
703 if (var43){
704 {
705 var44 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_42);
706 }
707 var_nclassdef2 = var44;
708 {
709 { /* Inline parser_nodes#AClassdef#n_propdefs (var_nclassdef2) on <var_nclassdef2:AClassdef> */
710 var47 = var_nclassdef2->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <var_nclassdef2:AClassdef> */
711 if (unlikely(var47 == NULL)) {
712 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
713 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1012);
714 show_backtrace(1);
715 }
716 var45 = var47;
717 RET_LABEL46:(void)0;
718 }
719 }
720 var_48 = var45;
721 {
722 var49 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_48);
723 }
724 var_50 = var49;
725 for(;;) {
726 {
727 var51 = ((short int (*)(val* self))(var_50->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_50) /* is_ok on <var_50:Iterator[APropdef]>*/;
728 }
729 if (var51){
730 {
731 var52 = ((val* (*)(val* self))(var_50->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_50) /* item on <var_50:Iterator[APropdef]>*/;
732 }
733 var_npropdef = var52;
734 {
735 ((void (*)(val* self, val* p0, val* p1))(var_npropdef->class->vft[COLOR_nit__modelize_property__APropdef__build_property]))(var_npropdef, self, var_mclassdef) /* build_property on <var_npropdef:APropdef>*/;
736 }
737 {
738 ((void (*)(val* self))(var_50->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_50) /* next on <var_50:Iterator[APropdef]>*/;
739 }
740 } else {
741 goto BREAK_label53;
742 }
743 }
744 BREAK_label53: (void)0;
745 {
746 { /* Inline abstract_collection#Iterator#finish (var_50) on <var_50:Iterator[APropdef]> */
747 RET_LABEL54:(void)0;
748 }
749 }
750 {
751 { /* Inline parser_nodes#AClassdef#n_propdefs (var_nclassdef2) on <var_nclassdef2:AClassdef> */
752 var57 = var_nclassdef2->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <var_nclassdef2:AClassdef> */
753 if (unlikely(var57 == NULL)) {
754 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
755 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1012);
756 show_backtrace(1);
757 }
758 var55 = var57;
759 RET_LABEL56:(void)0;
760 }
761 }
762 var_58 = var55;
763 {
764 var59 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_58);
765 }
766 var_60 = var59;
767 for(;;) {
768 {
769 var61 = ((short int (*)(val* self))(var_60->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_60) /* is_ok on <var_60:Iterator[APropdef]>*/;
770 }
771 if (var61){
772 {
773 var62 = ((val* (*)(val* self))(var_60->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_60) /* item on <var_60:Iterator[APropdef]>*/;
774 }
775 var_npropdef63 = var62;
776 {
777 ((void (*)(val* self, val* p0))(var_npropdef63->class->vft[COLOR_nit__modelize_property__APropdef__build_signature]))(var_npropdef63, self) /* build_signature on <var_npropdef63:APropdef>*/;
778 }
779 {
780 ((void (*)(val* self))(var_60->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_60) /* next on <var_60:Iterator[APropdef]>*/;
781 }
782 } else {
783 goto BREAK_label64;
784 }
785 }
786 BREAK_label64: (void)0;
787 {
788 { /* Inline abstract_collection#Iterator#finish (var_60) on <var_60:Iterator[APropdef]> */
789 RET_LABEL65:(void)0;
790 }
791 }
792 {
793 { /* Inline parser_nodes#AClassdef#n_propdefs (var_nclassdef2) on <var_nclassdef2:AClassdef> */
794 var68 = var_nclassdef2->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <var_nclassdef2:AClassdef> */
795 if (unlikely(var68 == NULL)) {
796 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
797 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1012);
798 show_backtrace(1);
799 }
800 var66 = var68;
801 RET_LABEL67:(void)0;
802 }
803 }
804 var_69 = var66;
805 {
806 var70 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_69);
807 }
808 var_71 = var70;
809 for(;;) {
810 {
811 var72 = ((short int (*)(val* self))(var_71->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_71) /* is_ok on <var_71:Iterator[APropdef]>*/;
812 }
813 if (var72){
814 {
815 var73 = ((val* (*)(val* self))(var_71->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_71) /* item on <var_71:Iterator[APropdef]>*/;
816 }
817 var_npropdef74 = var73;
818 {
819 ((void (*)(val* self, val* p0))(var_npropdef74->class->vft[COLOR_nit__modelize_property__APropdef__check_signature]))(var_npropdef74, self) /* check_signature on <var_npropdef74:APropdef>*/;
820 }
821 {
822 ((void (*)(val* self))(var_71->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_71) /* next on <var_71:Iterator[APropdef]>*/;
823 }
824 } else {
825 goto BREAK_label75;
826 }
827 }
828 BREAK_label75: (void)0;
829 {
830 { /* Inline abstract_collection#Iterator#finish (var_71) on <var_71:Iterator[APropdef]> */
831 RET_LABEL76:(void)0;
832 }
833 }
834 {
835 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_42); /* Direct call array#ArrayIterator#next on <var_42:ArrayIterator[AClassdef]>*/
836 }
837 } else {
838 goto BREAK_label77;
839 }
840 }
841 BREAK_label77: (void)0;
842 {
843 { /* Inline abstract_collection#Iterator#finish (var_42) on <var_42:ArrayIterator[AClassdef]> */
844 RET_LABEL78:(void)0;
845 }
846 }
847 {
848 nit__modelize_property___ModelBuilder___process_default_constructors(self, var_nclassdef); /* Direct call modelize_property#ModelBuilder#process_default_constructors on <self:ModelBuilder>*/
849 }
850 RET_LABEL:;
851 }
852 /* method modelize_property#ModelBuilder#the_root_init_mmethod for (self: ModelBuilder): nullable MMethod */
853 val* nit__modelize_property___ModelBuilder___the_root_init_mmethod(val* self) {
854 val* var /* : nullable MMethod */;
855 val* var1 /* : nullable MMethod */;
856 var1 = self->attrs[COLOR_nit__modelize_property__ModelBuilder___the_root_init_mmethod].val; /* _the_root_init_mmethod on <self:ModelBuilder> */
857 var = var1;
858 RET_LABEL:;
859 return var;
860 }
861 /* method modelize_property#ModelBuilder#the_root_init_mmethod= for (self: ModelBuilder, nullable MMethod) */
862 void nit__modelize_property___ModelBuilder___the_root_init_mmethod_61d(val* self, val* p0) {
863 self->attrs[COLOR_nit__modelize_property__ModelBuilder___the_root_init_mmethod].val = p0; /* _the_root_init_mmethod on <self:ModelBuilder> */
864 RET_LABEL:;
865 }
866 /* method modelize_property#ModelBuilder#process_default_constructors for (self: ModelBuilder, AClassdef) */
867 void nit__modelize_property___ModelBuilder___process_default_constructors(val* self, val* p0) {
868 val* var_nclassdef /* var nclassdef: AClassdef */;
869 val* var /* : nullable MClassDef */;
870 val* var2 /* : nullable MClassDef */;
871 val* var_mclassdef /* var mclassdef: MClassDef */;
872 short int var3 /* : Bool */;
873 short int var4 /* : Bool */;
874 short int var5 /* : Bool */;
875 val* var6 /* : MClass */;
876 val* var8 /* : MClass */;
877 val* var9 /* : String */;
878 val* var11 /* : String */;
879 static val* varonce;
880 val* var12 /* : String */;
881 char* var13 /* : NativeString */;
882 long var14 /* : Int */;
883 val* var15 /* : FlatString */;
884 short int var16 /* : Bool */;
885 short int var_ /* var : Bool */;
886 val* var17 /* : nullable MMethod */;
887 val* var19 /* : nullable MMethod */;
888 val* var20 /* : null */;
889 short int var21 /* : Bool */;
890 short int var22 /* : Bool */;
891 val* var_other /* var other: nullable Object */;
892 short int var24 /* : Bool */;
893 short int var26 /* : Bool */;
894 val* var27 /* : MMethod */;
895 static val* varonce28;
896 val* var29 /* : String */;
897 char* var30 /* : NativeString */;
898 long var31 /* : Int */;
899 val* var32 /* : FlatString */;
900 val* var33 /* : MClass */;
901 val* var35 /* : MClass */;
902 val* var36 /* : MVisibility */;
903 val* var38 /* : MVisibility */;
904 val* var_mprop /* var mprop: MMethod */;
905 short int var39 /* : Bool */;
906 val* var41 /* : MMethodDef */;
907 val* var42 /* : Location */;
908 val* var44 /* : Location */;
909 val* var_mpropdef /* var mpropdef: MMethodDef */;
910 val* var45 /* : Array[MParameter] */;
911 val* var_mparameters /* var mparameters: Array[MParameter] */;
912 val* var46 /* : MSignature */;
913 val* var47 /* : null */;
914 val* var_msignature /* var msignature: MSignature */;
915 short int var50 /* : Bool */;
916 val* var53 /* : ToolContext */;
917 val* var55 /* : ToolContext */;
918 static val* varonce56;
919 val* var57 /* : String */;
920 char* var58 /* : NativeString */;
921 long var59 /* : Int */;
922 val* var60 /* : FlatString */;
923 val* var61 /* : Array[Object] */;
924 long var62 /* : Int */;
925 val* var63 /* : NativeArray[Object] */;
926 val* var64 /* : String */;
927 long var65 /* : Int */;
928 val* var67 /* : MClass */;
929 val* var69 /* : MClass */;
930 val* var70 /* : MClassKind */;
931 val* var72 /* : MClassKind */;
932 short int var73 /* : Bool */;
933 short int var75 /* : Bool */;
934 short int var76 /* : Bool */;
935 val* var77 /* : null */;
936 val* var_defined_init /* var defined_init: nullable MMethodDef */;
937 val* var78 /* : Array[MPropDef] */;
938 val* var80 /* : Array[MPropDef] */;
939 val* var_81 /* var : Array[MPropDef] */;
940 val* var82 /* : ArrayIterator[nullable Object] */;
941 val* var_83 /* var : ArrayIterator[MPropDef] */;
942 short int var84 /* : Bool */;
943 val* var85 /* : nullable Object */;
944 val* var_mpropdef86 /* var mpropdef: MPropDef */;
945 short int var87 /* : Bool */;
946 int cltype;
947 int idtype;
948 short int var88 /* : Bool */;
949 val* var89 /* : MProperty */;
950 val* var91 /* : MProperty */;
951 short int var92 /* : Bool */;
952 short int var94 /* : Bool */;
953 short int var95 /* : Bool */;
954 val* var96 /* : MProperty */;
955 val* var98 /* : MProperty */;
956 short int var99 /* : Bool */;
957 short int var101 /* : Bool */;
958 val* var102 /* : null */;
959 short int var103 /* : Bool */;
960 short int var104 /* : Bool */;
961 short int var106 /* : Bool */;
962 short int var108 /* : Bool */;
963 val* var109 /* : MProperty */;
964 val* var111 /* : MProperty */;
965 val* var112 /* : String */;
966 val* var114 /* : String */;
967 static val* varonce115;
968 val* var116 /* : String */;
969 char* var117 /* : NativeString */;
970 long var118 /* : Int */;
971 val* var119 /* : FlatString */;
972 short int var120 /* : Bool */;
973 short int var123 /* : Bool */;
974 int cltype124;
975 int idtype125;
976 short int var126 /* : Bool */;
977 val* var127 /* : Array[MParameter] */;
978 val* var_mparameters128 /* var mparameters: Array[MParameter] */;
979 val* var129 /* : Array[MProperty] */;
980 val* var_initializers /* var initializers: Array[MProperty] */;
981 val* var130 /* : ANodes[APropdef] */;
982 val* var132 /* : ANodes[APropdef] */;
983 val* var_133 /* var : ANodes[APropdef] */;
984 val* var134 /* : Iterator[ANode] */;
985 val* var_135 /* var : Iterator[APropdef] */;
986 short int var136 /* : Bool */;
987 val* var137 /* : nullable Object */;
988 val* var_npropdef /* var npropdef: APropdef */;
989 short int var138 /* : Bool */;
990 int cltype139;
991 int idtype140;
992 val* var141 /* : nullable MPropDef */;
993 val* var143 /* : nullable MPropDef */;
994 val* var144 /* : null */;
995 short int var145 /* : Bool */;
996 short int var146 /* : Bool */;
997 short int var148 /* : Bool */;
998 short int var150 /* : Bool */;
999 static val* varonce151;
1000 val* var152 /* : String */;
1001 char* var153 /* : NativeString */;
1002 long var154 /* : Int */;
1003 val* var155 /* : FlatString */;
1004 val* var156 /* : nullable AAnnotation */;
1005 val* var_at /* var at: nullable AAnnotation */;
1006 val* var157 /* : null */;
1007 short int var158 /* : Bool */;
1008 short int var159 /* : Bool */;
1009 short int var161 /* : Bool */;
1010 short int var163 /* : Bool */;
1011 val* var165 /* : nullable MPropDef */;
1012 val* var167 /* : nullable MPropDef */;
1013 val* var168 /* : nullable MSignature */;
1014 val* var170 /* : nullable MSignature */;
1015 val* var_sig /* var sig: nullable MSignature */;
1016 val* var171 /* : null */;
1017 short int var172 /* : Bool */;
1018 short int var173 /* : Bool */;
1019 short int var175 /* : Bool */;
1020 short int var177 /* : Bool */;
1021 val* var178 /* : nullable MPropDef */;
1022 val* var180 /* : nullable MPropDef */;
1023 short int var181 /* : Bool */;
1024 short int var182 /* : Bool */;
1025 static val* varonce183;
1026 val* var184 /* : String */;
1027 char* var185 /* : NativeString */;
1028 long var186 /* : Int */;
1029 val* var187 /* : FlatString */;
1030 val* var188 /* : Array[MParameter] */;
1031 val* var190 /* : Array[MParameter] */;
1032 val* var_191 /* var : Array[MParameter] */;
1033 val* var192 /* : ArrayIterator[nullable Object] */;
1034 val* var_193 /* var : ArrayIterator[MParameter] */;
1035 short int var194 /* : Bool */;
1036 val* var195 /* : nullable Object */;
1037 val* var_param /* var param: MParameter */;
1038 val* var196 /* : MType */;
1039 val* var198 /* : MType */;
1040 val* var_ret_type /* var ret_type: MType */;
1041 val* var199 /* : MParameter */;
1042 val* var200 /* : String */;
1043 val* var202 /* : String */;
1044 short int var203 /* : Bool */;
1045 val* var_mparameter /* var mparameter: MParameter */;
1046 val* var206 /* : nullable MPropDef */;
1047 val* var208 /* : nullable MPropDef */;
1048 val* var209 /* : MProperty */;
1049 val* var211 /* : MProperty */;
1050 short int var212 /* : Bool */;
1051 int cltype213;
1052 int idtype214;
1053 val* var215 /* : nullable MPropDef */;
1054 val* var217 /* : nullable MPropDef */;
1055 val* var218 /* : null */;
1056 short int var219 /* : Bool */;
1057 short int var220 /* : Bool */;
1058 short int var222 /* : Bool */;
1059 short int var224 /* : Bool */;
1060 short int var225 /* : Bool */;
1061 short int var227 /* : Bool */;
1062 static val* varonce228;
1063 val* var229 /* : String */;
1064 char* var230 /* : NativeString */;
1065 long var231 /* : Int */;
1066 val* var232 /* : FlatString */;
1067 val* var233 /* : nullable AAnnotation */;
1068 val* var_atautoinit /* var atautoinit: nullable AAnnotation */;
1069 val* var234 /* : null */;
1070 short int var235 /* : Bool */;
1071 short int var236 /* : Bool */;
1072 val* var_other238 /* var other: nullable Object */;
1073 short int var239 /* : Bool */;
1074 short int var240 /* : Bool */;
1075 val* var241 /* : nullable MMethodDef */;
1076 val* var243 /* : nullable MMethodDef */;
1077 val* var244 /* : MProperty */;
1078 val* var246 /* : MProperty */;
1079 short int var247 /* : Bool */;
1080 short int var249 /* : Bool */;
1081 val* var250 /* : nullable MPropDef */;
1082 val* var252 /* : nullable MPropDef */;
1083 val* var253 /* : MProperty */;
1084 val* var255 /* : MProperty */;
1085 val* var256 /* : String */;
1086 val* var258 /* : String */;
1087 long var259 /* : Int */;
1088 val* var260 /* : Text */;
1089 val* var_paramname /* var paramname: String */;
1090 val* var261 /* : nullable MPropDef */;
1091 val* var263 /* : nullable MPropDef */;
1092 val* var264 /* : nullable MType */;
1093 val* var266 /* : nullable MType */;
1094 val* var_ret_type267 /* var ret_type: nullable MType */;
1095 val* var268 /* : null */;
1096 short int var269 /* : Bool */;
1097 short int var270 /* : Bool */;
1098 short int var272 /* : Bool */;
1099 short int var274 /* : Bool */;
1100 val* var275 /* : MParameter */;
1101 short int var276 /* : Bool */;
1102 val* var_mparameter277 /* var mparameter: MParameter */;
1103 val* var278 /* : nullable MMethodDef */;
1104 val* var280 /* : nullable MMethodDef */;
1105 val* var_msetter /* var msetter: nullable MMethodDef */;
1106 val* var281 /* : null */;
1107 short int var282 /* : Bool */;
1108 short int var283 /* : Bool */;
1109 short int var285 /* : Bool */;
1110 short int var287 /* : Bool */;
1111 val* var288 /* : nullable MPropDef */;
1112 val* var290 /* : nullable MPropDef */;
1113 val* var291 /* : MProperty */;
1114 val* var293 /* : MProperty */;
1115 val* var294 /* : MProperty */;
1116 val* var296 /* : MProperty */;
1117 val* var299 /* : nullable MMethod */;
1118 val* var301 /* : nullable MMethod */;
1119 val* var302 /* : null */;
1120 short int var303 /* : Bool */;
1121 short int var304 /* : Bool */;
1122 short int var306 /* : Bool */;
1123 short int var308 /* : Bool */;
1124 val* var309 /* : nullable MMethod */;
1125 val* var311 /* : nullable MMethod */;
1126 val* var312 /* : MModule */;
1127 val* var314 /* : MModule */;
1128 val* var315 /* : MClassType */;
1129 val* var317 /* : MClassType */;
1130 val* var318 /* : Array[MPropDef] */;
1131 val* var_spropdefs /* var spropdefs: Array[MMethodDef] */;
1132 short int var319 /* : Bool */;
1133 val* var320 /* : ToolContext */;
1134 val* var322 /* : ToolContext */;
1135 val* var323 /* : Location */;
1136 val* var325 /* : Location */;
1137 static val* varonce326;
1138 val* var327 /* : String */;
1139 char* var328 /* : NativeString */;
1140 long var329 /* : Int */;
1141 val* var330 /* : FlatString */;
1142 static val* varonce331;
1143 val* var332 /* : String */;
1144 char* var333 /* : NativeString */;
1145 long var334 /* : Int */;
1146 val* var335 /* : FlatString */;
1147 val* var336 /* : nullable MMethod */;
1148 val* var338 /* : nullable MMethod */;
1149 val* var339 /* : MClassDef */;
1150 val* var341 /* : MClassDef */;
1151 static val* varonce342;
1152 val* var343 /* : String */;
1153 char* var344 /* : NativeString */;
1154 long var345 /* : Int */;
1155 val* var346 /* : FlatString */;
1156 val* var347 /* : Array[Object] */;
1157 long var348 /* : Int */;
1158 val* var349 /* : NativeArray[Object] */;
1159 val* var350 /* : String */;
1160 val* var351 /* : nullable Object */;
1161 val* var_longest /* var longest: MMethodDef */;
1162 long var352 /* : Int */;
1163 long var354 /* : Int */;
1164 long var355 /* : Int */;
1165 short int var356 /* : Bool */;
1166 short int var358 /* : Bool */;
1167 int cltype359;
1168 int idtype360;
1169 const char* var_class_name;
1170 short int var361 /* : Bool */;
1171 val* var_362 /* var : Array[MMethodDef] */;
1172 val* var363 /* : ArrayIterator[nullable Object] */;
1173 val* var_364 /* var : ArrayIterator[MMethodDef] */;
1174 short int var365 /* : Bool */;
1175 val* var366 /* : nullable Object */;
1176 val* var_spd /* var spd: MMethodDef */;
1177 val* var367 /* : Array[MProperty] */;
1178 val* var369 /* : Array[MProperty] */;
1179 long var370 /* : Int */;
1180 long var372 /* : Int */;
1181 val* var373 /* : Array[MProperty] */;
1182 val* var375 /* : Array[MProperty] */;
1183 long var376 /* : Int */;
1184 long var378 /* : Int */;
1185 short int var379 /* : Bool */;
1186 short int var381 /* : Bool */;
1187 int cltype382;
1188 int idtype383;
1189 const char* var_class_name384;
1190 short int var385 /* : Bool */;
1191 val* var_388 /* var : Array[MMethodDef] */;
1192 val* var389 /* : ArrayIterator[nullable Object] */;
1193 val* var_390 /* var : ArrayIterator[MMethodDef] */;
1194 short int var391 /* : Bool */;
1195 val* var392 /* : nullable Object */;
1196 val* var_spd393 /* var spd: MMethodDef */;
1197 long var394 /* : Int */;
1198 long var_i /* var i: Int */;
1199 val* var395 /* : Array[MProperty] */;
1200 val* var397 /* : Array[MProperty] */;
1201 val* var_398 /* var : Array[MProperty] */;
1202 val* var399 /* : ArrayIterator[nullable Object] */;
1203 val* var_400 /* var : ArrayIterator[MProperty] */;
1204 short int var401 /* : Bool */;
1205 val* var402 /* : nullable Object */;
1206 val* var_p /* var p: MProperty */;
1207 val* var403 /* : Array[MProperty] */;
1208 val* var405 /* : Array[MProperty] */;
1209 val* var406 /* : nullable Object */;
1210 short int var407 /* : Bool */;
1211 short int var409 /* : Bool */;
1212 short int var410 /* : Bool */;
1213 static val* varonce411;
1214 val* var412 /* : String */;
1215 char* var413 /* : NativeString */;
1216 long var414 /* : Int */;
1217 val* var415 /* : FlatString */;
1218 static val* varonce416;
1219 val* var417 /* : String */;
1220 char* var418 /* : NativeString */;
1221 long var419 /* : Int */;
1222 val* var420 /* : FlatString */;
1223 val* var421 /* : Array[MProperty] */;
1224 val* var423 /* : Array[MProperty] */;
1225 static val* varonce424;
1226 val* var425 /* : String */;
1227 char* var426 /* : NativeString */;
1228 long var427 /* : Int */;
1229 val* var428 /* : FlatString */;
1230 val* var429 /* : String */;
1231 static val* varonce430;
1232 val* var431 /* : String */;
1233 char* var432 /* : NativeString */;
1234 long var433 /* : Int */;
1235 val* var434 /* : FlatString */;
1236 static val* varonce435;
1237 val* var436 /* : String */;
1238 char* var437 /* : NativeString */;
1239 long var438 /* : Int */;
1240 val* var439 /* : FlatString */;
1241 val* var440 /* : Array[MProperty] */;
1242 val* var442 /* : Array[MProperty] */;
1243 static val* varonce443;
1244 val* var444 /* : String */;
1245 char* var445 /* : NativeString */;
1246 long var446 /* : Int */;
1247 val* var447 /* : FlatString */;
1248 val* var448 /* : String */;
1249 static val* varonce449;
1250 val* var450 /* : String */;
1251 char* var451 /* : NativeString */;
1252 long var452 /* : Int */;
1253 val* var453 /* : FlatString */;
1254 val* var454 /* : Array[Object] */;
1255 long var455 /* : Int */;
1256 val* var456 /* : NativeArray[Object] */;
1257 val* var457 /* : String */;
1258 long var458 /* : Int */;
1259 long var459 /* : Int */;
1260 short int var461 /* : Bool */;
1261 int cltype462;
1262 int idtype463;
1263 const char* var_class_name464;
1264 long var465 /* : Int */;
1265 short int var470 /* : Bool */;
1266 short int var471 /* : Bool */;
1267 long var472 /* : Int */;
1268 long var474 /* : Int */;
1269 long var475 /* : Int */;
1270 short int var476 /* : Bool */;
1271 short int var478 /* : Bool */;
1272 short int var_479 /* var : Bool */;
1273 short int var480 /* : Bool */;
1274 short int var_481 /* var : Bool */;
1275 val* var482 /* : null */;
1276 short int var483 /* : Bool */;
1277 short int var484 /* : Bool */;
1278 short int var486 /* : Bool */;
1279 short int var488 /* : Bool */;
1280 val* var489 /* : ToolContext */;
1281 val* var491 /* : ToolContext */;
1282 static val* varonce492;
1283 val* var493 /* : String */;
1284 char* var494 /* : NativeString */;
1285 long var495 /* : Int */;
1286 val* var496 /* : FlatString */;
1287 val* var497 /* : Array[Object] */;
1288 long var498 /* : Int */;
1289 val* var499 /* : NativeArray[Object] */;
1290 val* var500 /* : String */;
1291 long var501 /* : Int */;
1292 val* var502 /* : MClass */;
1293 val* var504 /* : MClass */;
1294 val* var506 /* : Array[MProperty] */;
1295 val* var508 /* : Array[MProperty] */;
1296 long var509 /* : Int */;
1297 long var511 /* : Int */;
1298 long var512 /* : Int */;
1299 short int var513 /* : Bool */;
1300 short int var515 /* : Bool */;
1301 int cltype516;
1302 int idtype517;
1303 const char* var_class_name518;
1304 short int var519 /* : Bool */;
1305 val* var520 /* : nullable MSignature */;
1306 val* var522 /* : nullable MSignature */;
1307 val* var523 /* : Array[MParameter] */;
1308 val* var525 /* : Array[MParameter] */;
1309 val* var526 /* : Array[MProperty] */;
1310 val* var528 /* : Array[MProperty] */;
1311 val* var529 /* : null */;
1312 short int var530 /* : Bool */;
1313 short int var531 /* : Bool */;
1314 short int var533 /* : Bool */;
1315 short int var534 /* : Bool */;
1316 val* var535 /* : Array[MProperty] */;
1317 val* var537 /* : Array[MProperty] */;
1318 val* var538 /* : MSignature */;
1319 val* var539 /* : null */;
1320 val* var_msignature540 /* var msignature: MSignature */;
1321 val* var542 /* : ToolContext */;
1322 val* var544 /* : ToolContext */;
1323 static val* varonce545;
1324 val* var546 /* : String */;
1325 char* var547 /* : NativeString */;
1326 long var548 /* : Int */;
1327 val* var549 /* : FlatString */;
1328 val* var550 /* : Array[Object] */;
1329 long var551 /* : Int */;
1330 val* var552 /* : NativeArray[Object] */;
1331 val* var553 /* : String */;
1332 long var554 /* : Int */;
1333 val* var555 /* : MClass */;
1334 val* var557 /* : MClass */;
1335 val* var559 /* : nullable MMethod */;
1336 val* var561 /* : nullable MMethod */;
1337 val* var_mprop562 /* var mprop: MMethod */;
1338 val* var563 /* : MMethodDef */;
1339 val* var564 /* : Location */;
1340 val* var566 /* : Location */;
1341 val* var_mpropdef567 /* var mpropdef: MMethodDef */;
1342 short int var568 /* : Bool */;
1343 val* var570 /* : Array[MProperty] */;
1344 val* var572 /* : Array[MProperty] */;
1345 val* var573 /* : MSignature */;
1346 val* var574 /* : null */;
1347 val* var_msignature575 /* var msignature: MSignature */;
1348 val* var577 /* : MSignature */;
1349 val* var578 /* : Array[MParameter] */;
1350 val* var579 /* : null */;
1351 val* var582 /* : ToolContext */;
1352 val* var584 /* : ToolContext */;
1353 static val* varonce585;
1354 val* var586 /* : String */;
1355 char* var587 /* : NativeString */;
1356 long var588 /* : Int */;
1357 val* var589 /* : FlatString */;
1358 val* var590 /* : Array[Object] */;
1359 long var591 /* : Int */;
1360 val* var592 /* : NativeArray[Object] */;
1361 val* var593 /* : String */;
1362 long var594 /* : Int */;
1363 val* var595 /* : MClass */;
1364 val* var597 /* : MClass */;
1365 var_nclassdef = p0;
1366 {
1367 { /* Inline modelize_class#AClassdef#mclassdef (var_nclassdef) on <var_nclassdef:AClassdef> */
1368 var2 = var_nclassdef->attrs[COLOR_nit__modelize_class__AClassdef___mclassdef].val; /* _mclassdef on <var_nclassdef:AClassdef> */
1369 var = var2;
1370 RET_LABEL1:(void)0;
1371 }
1372 }
1373 if (unlikely(var == NULL)) {
1374 PRINT_ERROR("Runtime error: %s", "Cast failed");
1375 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 120);
1376 show_backtrace(1);
1377 }
1378 var_mclassdef = var;
1379 {
1380 var3 = nit___nit__MClassDef___is_intro(var_mclassdef);
1381 }
1382 var4 = !var3;
1383 if (var4){
1384 goto RET_LABEL;
1385 } else {
1386 }
1387 {
1388 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
1389 var8 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
1390 if (unlikely(var8 == NULL)) {
1391 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1392 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
1393 show_backtrace(1);
1394 }
1395 var6 = var8;
1396 RET_LABEL7:(void)0;
1397 }
1398 }
1399 {
1400 { /* Inline model#MClass#name (var6) on <var6:MClass> */
1401 var11 = var6->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var6:MClass> */
1402 if (unlikely(var11 == NULL)) {
1403 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1404 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
1405 show_backtrace(1);
1406 }
1407 var9 = var11;
1408 RET_LABEL10:(void)0;
1409 }
1410 }
1411 if (varonce) {
1412 var12 = varonce;
1413 } else {
1414 var13 = "Object";
1415 var14 = 6;
1416 var15 = standard___standard__NativeString___to_s_with_length(var13, var14);
1417 var12 = var15;
1418 varonce = var12;
1419 }
1420 {
1421 var16 = ((short int (*)(val* self, val* p0))(var9->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var9, var12) /* == on <var9:String>*/;
1422 }
1423 var_ = var16;
1424 if (var16){
1425 {
1426 { /* Inline modelize_property#ModelBuilder#the_root_init_mmethod (self) on <self:ModelBuilder> */
1427 var19 = self->attrs[COLOR_nit__modelize_property__ModelBuilder___the_root_init_mmethod].val; /* _the_root_init_mmethod on <self:ModelBuilder> */
1428 var17 = var19;
1429 RET_LABEL18:(void)0;
1430 }
1431 }
1432 var20 = NULL;
1433 if (var17 == NULL) {
1434 var21 = 1; /* is null */
1435 } else {
1436 var21 = 0; /* arg is null but recv is not */
1437 }
1438 if (0) {
1439 { /* Inline kernel#Object#== (var17,var20) on <var17:nullable MMethod> */
1440 var_other = var20;
1441 {
1442 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:nullable MMethod(MMethod)> */
1443 var26 = var17 == var_other;
1444 var24 = var26;
1445 goto RET_LABEL25;
1446 RET_LABEL25:(void)0;
1447 }
1448 }
1449 var22 = var24;
1450 goto RET_LABEL23;
1451 RET_LABEL23:(void)0;
1452 }
1453 var21 = var22;
1454 }
1455 var5 = var21;
1456 } else {
1457 var5 = var_;
1458 }
1459 if (var5){
1460 var27 = NEW_nit__MMethod(&type_nit__MMethod);
1461 if (varonce28) {
1462 var29 = varonce28;
1463 } else {
1464 var30 = "init";
1465 var31 = 4;
1466 var32 = standard___standard__NativeString___to_s_with_length(var30, var31);
1467 var29 = var32;
1468 varonce28 = var29;
1469 }
1470 {
1471 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
1472 var35 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
1473 if (unlikely(var35 == NULL)) {
1474 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1475 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
1476 show_backtrace(1);
1477 }
1478 var33 = var35;
1479 RET_LABEL34:(void)0;
1480 }
1481 }
1482 {
1483 { /* Inline model#MClass#visibility (var33) on <var33:MClass> */
1484 var38 = var33->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on <var33:MClass> */
1485 if (unlikely(var38 == NULL)) {
1486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
1487 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 403);
1488 show_backtrace(1);
1489 }
1490 var36 = var38;
1491 RET_LABEL37:(void)0;
1492 }
1493 }
1494 {
1495 ((void (*)(val* self, val* p0))(var27->class->vft[COLOR_nit__model__MProperty__intro_mclassdef_61d]))(var27, var_mclassdef) /* intro_mclassdef= on <var27:MMethod>*/;
1496 }
1497 {
1498 ((void (*)(val* self, val* p0))(var27->class->vft[COLOR_nit__model__MProperty__name_61d]))(var27, var29) /* name= on <var27:MMethod>*/;
1499 }
1500 {
1501 ((void (*)(val* self, val* p0))(var27->class->vft[COLOR_nit__model__MProperty__visibility_61d]))(var27, var36) /* visibility= on <var27:MMethod>*/;
1502 }
1503 {
1504 ((void (*)(val* self))(var27->class->vft[COLOR_standard__kernel__Object__init]))(var27) /* init on <var27:MMethod>*/;
1505 }
1506 var_mprop = var27;
1507 var39 = 1;
1508 {
1509 { /* Inline model#MMethod#is_root_init= (var_mprop,var39) on <var_mprop:MMethod> */
1510 var_mprop->attrs[COLOR_nit__model__MMethod___is_root_init].s = var39; /* _is_root_init on <var_mprop:MMethod> */
1511 RET_LABEL40:(void)0;
1512 }
1513 }
1514 var41 = NEW_nit__MMethodDef(&type_nit__MMethodDef);
1515 {
1516 { /* Inline parser_nodes#ANode#location (var_nclassdef) on <var_nclassdef:AClassdef> */
1517 var44 = var_nclassdef->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <var_nclassdef:AClassdef> */
1518 if (unlikely(var44 == NULL)) {
1519 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1520 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
1521 show_backtrace(1);
1522 }
1523 var42 = var44;
1524 RET_LABEL43:(void)0;
1525 }
1526 }
1527 {
1528 ((void (*)(val* self, val* p0))(var41->class->vft[COLOR_nit__model__MPropDef__mclassdef_61d]))(var41, var_mclassdef) /* mclassdef= on <var41:MMethodDef>*/;
1529 }
1530 {
1531 ((void (*)(val* self, val* p0))(var41->class->vft[COLOR_nit__model__MPropDef__mproperty_61d]))(var41, var_mprop) /* mproperty= on <var41:MMethodDef>*/;
1532 }
1533 {
1534 ((void (*)(val* self, val* p0))(var41->class->vft[COLOR_nit__model__MPropDef__location_61d]))(var41, var42) /* location= on <var41:MMethodDef>*/;
1535 }
1536 {
1537 ((void (*)(val* self))(var41->class->vft[COLOR_standard__kernel__Object__init]))(var41) /* init on <var41:MMethodDef>*/;
1538 }
1539 var_mpropdef = var41;
1540 var45 = NEW_standard__Array(&type_standard__Array__nit__MParameter);
1541 {
1542 standard___standard__Array___standard__kernel__Object__init(var45); /* Direct call array#Array#init on <var45:Array[MParameter]>*/
1543 }
1544 var_mparameters = var45;
1545 var46 = NEW_nit__MSignature(&type_nit__MSignature);
1546 var47 = NULL;
1547 {
1548 ((void (*)(val* self, val* p0))(var46->class->vft[COLOR_nit__model__MSignature__mparameters_61d]))(var46, var_mparameters) /* mparameters= on <var46:MSignature>*/;
1549 }
1550 {
1551 ((void (*)(val* self, val* p0))(var46->class->vft[COLOR_nit__model__MSignature__return_mtype_61d]))(var46, var47) /* return_mtype= on <var46:MSignature>*/;
1552 }
1553 {
1554 ((void (*)(val* self))(var46->class->vft[COLOR_standard__kernel__Object__init]))(var46) /* init on <var46:MSignature>*/;
1555 }
1556 var_msignature = var46;
1557 {
1558 { /* Inline model#MMethodDef#msignature= (var_mpropdef,var_msignature) on <var_mpropdef:MMethodDef> */
1559 var_mpropdef->attrs[COLOR_nit__model__MMethodDef___msignature].val = var_msignature; /* _msignature on <var_mpropdef:MMethodDef> */
1560 RET_LABEL48:(void)0;
1561 }
1562 }
1563 {
1564 { /* Inline model#MMethodDef#new_msignature= (var_mpropdef,var_msignature) on <var_mpropdef:MMethodDef> */
1565 var_mpropdef->attrs[COLOR_nit__model__MMethodDef___new_msignature].val = var_msignature; /* _new_msignature on <var_mpropdef:MMethodDef> */
1566 RET_LABEL49:(void)0;
1567 }
1568 }
1569 var50 = 1;
1570 {
1571 { /* Inline model#MMethod#is_init= (var_mprop,var50) on <var_mprop:MMethod> */
1572 var_mprop->attrs[COLOR_nit__model__MMethod___is_init].s = var50; /* _is_init on <var_mprop:MMethod> */
1573 RET_LABEL51:(void)0;
1574 }
1575 }
1576 {
1577 { /* Inline modelize_property#AClassdef#mfree_init= (var_nclassdef,var_mpropdef) on <var_nclassdef:AClassdef> */
1578 var_nclassdef->attrs[COLOR_nit__modelize_property__AClassdef___mfree_init].val = var_mpropdef; /* _mfree_init on <var_nclassdef:AClassdef> */
1579 RET_LABEL52:(void)0;
1580 }
1581 }
1582 {
1583 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
1584 var55 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
1585 if (unlikely(var55 == NULL)) {
1586 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1587 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
1588 show_backtrace(1);
1589 }
1590 var53 = var55;
1591 RET_LABEL54:(void)0;
1592 }
1593 }
1594 if (varonce56) {
1595 var57 = varonce56;
1596 } else {
1597 var58 = " gets a free empty constructor ";
1598 var59 = 31;
1599 var60 = standard___standard__NativeString___to_s_with_length(var58, var59);
1600 var57 = var60;
1601 varonce56 = var57;
1602 }
1603 var61 = NEW_standard__Array(&type_standard__Array__standard__Object);
1604 { /* var61 = array_instance Array[Object] */
1605 var62 = 4;
1606 var63 = NEW_standard__NativeArray(var62, &type_standard__NativeArray__standard__Object);
1607 ((struct instance_standard__NativeArray*)var63)->values[0] = (val*) var_mclassdef;
1608 ((struct instance_standard__NativeArray*)var63)->values[1] = (val*) var57;
1609 ((struct instance_standard__NativeArray*)var63)->values[2] = (val*) var_mpropdef;
1610 ((struct instance_standard__NativeArray*)var63)->values[3] = (val*) var_msignature;
1611 {
1612 ((void (*)(val* self, val* p0, long p1))(var61->class->vft[COLOR_standard__array__Array__with_native]))(var61, var63, var62) /* with_native on <var61:Array[Object]>*/;
1613 }
1614 }
1615 {
1616 var64 = ((val* (*)(val* self))(var61->class->vft[COLOR_standard__string__Object__to_s]))(var61) /* to_s on <var61:Array[Object]>*/;
1617 }
1618 var65 = 3;
1619 {
1620 nit___nit__ToolContext___info(var53, var64, var65); /* Direct call toolcontext#ToolContext#info on <var53:ToolContext>*/
1621 }
1622 {
1623 { /* Inline modelize_property#ModelBuilder#the_root_init_mmethod= (self,var_mprop) on <self:ModelBuilder> */
1624 self->attrs[COLOR_nit__modelize_property__ModelBuilder___the_root_init_mmethod].val = var_mprop; /* _the_root_init_mmethod on <self:ModelBuilder> */
1625 RET_LABEL66:(void)0;
1626 }
1627 }
1628 goto RET_LABEL;
1629 } else {
1630 }
1631 {
1632 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
1633 var69 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
1634 if (unlikely(var69 == NULL)) {
1635 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1636 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
1637 show_backtrace(1);
1638 }
1639 var67 = var69;
1640 RET_LABEL68:(void)0;
1641 }
1642 }
1643 {
1644 { /* Inline model#MClass#kind (var67) on <var67:MClass> */
1645 var72 = var67->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on <var67:MClass> */
1646 if (unlikely(var72 == NULL)) {
1647 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
1648 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 399);
1649 show_backtrace(1);
1650 }
1651 var70 = var72;
1652 RET_LABEL71:(void)0;
1653 }
1654 }
1655 {
1656 { /* Inline model#MClassKind#need_init (var70) on <var70:MClassKind> */
1657 var75 = var70->attrs[COLOR_nit__model__MClassKind___need_init].s; /* _need_init on <var70:MClassKind> */
1658 var73 = var75;
1659 RET_LABEL74:(void)0;
1660 }
1661 }
1662 var76 = !var73;
1663 if (var76){
1664 goto RET_LABEL;
1665 } else {
1666 }
1667 var77 = NULL;
1668 var_defined_init = var77;
1669 {
1670 { /* Inline model#MClassDef#mpropdefs (var_mclassdef) on <var_mclassdef:MClassDef> */
1671 var80 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mpropdefs].val; /* _mpropdefs on <var_mclassdef:MClassDef> */
1672 if (unlikely(var80 == NULL)) {
1673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
1674 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 623);
1675 show_backtrace(1);
1676 }
1677 var78 = var80;
1678 RET_LABEL79:(void)0;
1679 }
1680 }
1681 var_81 = var78;
1682 {
1683 var82 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_81);
1684 }
1685 var_83 = var82;
1686 for(;;) {
1687 {
1688 var84 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_83);
1689 }
1690 if (var84){
1691 {
1692 var85 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_83);
1693 }
1694 var_mpropdef86 = var85;
1695 /* <var_mpropdef86:MPropDef> isa MMethodDef */
1696 cltype = type_nit__MMethodDef.color;
1697 idtype = type_nit__MMethodDef.id;
1698 if(cltype >= var_mpropdef86->type->table_size) {
1699 var87 = 0;
1700 } else {
1701 var87 = var_mpropdef86->type->type_table[cltype] == idtype;
1702 }
1703 var88 = !var87;
1704 if (var88){
1705 goto BREAK_label;
1706 } else {
1707 }
1708 {
1709 { /* Inline model#MPropDef#mproperty (var_mpropdef86) on <var_mpropdef86:MPropDef(MMethodDef)> */
1710 var91 = var_mpropdef86->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef86:MPropDef(MMethodDef)> */
1711 if (unlikely(var91 == NULL)) {
1712 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1713 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
1714 show_backtrace(1);
1715 }
1716 var89 = var91;
1717 RET_LABEL90:(void)0;
1718 }
1719 }
1720 {
1721 { /* Inline model#MMethod#is_init (var89) on <var89:MProperty(MMethod)> */
1722 var94 = var89->attrs[COLOR_nit__model__MMethod___is_init].s; /* _is_init on <var89:MProperty(MMethod)> */
1723 var92 = var94;
1724 RET_LABEL93:(void)0;
1725 }
1726 }
1727 var95 = !var92;
1728 if (var95){
1729 goto BREAK_label;
1730 } else {
1731 }
1732 {
1733 { /* Inline model#MPropDef#mproperty (var_mpropdef86) on <var_mpropdef86:MPropDef(MMethodDef)> */
1734 var98 = var_mpropdef86->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef86:MPropDef(MMethodDef)> */
1735 if (unlikely(var98 == NULL)) {
1736 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1737 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
1738 show_backtrace(1);
1739 }
1740 var96 = var98;
1741 RET_LABEL97:(void)0;
1742 }
1743 }
1744 {
1745 { /* Inline model#MMethod#is_root_init (var96) on <var96:MProperty(MMethod)> */
1746 var101 = var96->attrs[COLOR_nit__model__MMethod___is_root_init].s; /* _is_root_init on <var96:MProperty(MMethod)> */
1747 var99 = var101;
1748 RET_LABEL100:(void)0;
1749 }
1750 }
1751 if (var99){
1752 var102 = NULL;
1753 if (var_defined_init == NULL) {
1754 var103 = 1; /* is null */
1755 } else {
1756 var103 = 0; /* arg is null but recv is not */
1757 }
1758 if (0) {
1759 { /* Inline kernel#Object#== (var_defined_init,var102) on <var_defined_init:nullable MMethodDef> */
1760 var_other = var102;
1761 {
1762 { /* Inline kernel#Object#is_same_instance (var_defined_init,var_other) on <var_defined_init:nullable MMethodDef(MMethodDef)> */
1763 var108 = var_defined_init == var_other;
1764 var106 = var108;
1765 goto RET_LABEL107;
1766 RET_LABEL107:(void)0;
1767 }
1768 }
1769 var104 = var106;
1770 goto RET_LABEL105;
1771 RET_LABEL105:(void)0;
1772 }
1773 var103 = var104;
1774 }
1775 if (unlikely(!var103)) {
1776 PRINT_ERROR("Runtime error: %s", "Assert failed");
1777 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 151);
1778 show_backtrace(1);
1779 }
1780 var_defined_init = var_mpropdef86;
1781 } else {
1782 {
1783 { /* Inline model#MPropDef#mproperty (var_mpropdef86) on <var_mpropdef86:MPropDef(MMethodDef)> */
1784 var111 = var_mpropdef86->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef86:MPropDef(MMethodDef)> */
1785 if (unlikely(var111 == NULL)) {
1786 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1787 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
1788 show_backtrace(1);
1789 }
1790 var109 = var111;
1791 RET_LABEL110:(void)0;
1792 }
1793 }
1794 {
1795 { /* Inline model#MProperty#name (var109) on <var109:MProperty(MMethod)> */
1796 var114 = var109->attrs[COLOR_nit__model__MProperty___name].val; /* _name on <var109:MProperty(MMethod)> */
1797 if (unlikely(var114 == NULL)) {
1798 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1799 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1741);
1800 show_backtrace(1);
1801 }
1802 var112 = var114;
1803 RET_LABEL113:(void)0;
1804 }
1805 }
1806 if (varonce115) {
1807 var116 = varonce115;
1808 } else {
1809 var117 = "init";
1810 var118 = 4;
1811 var119 = standard___standard__NativeString___to_s_with_length(var117, var118);
1812 var116 = var119;
1813 varonce115 = var116;
1814 }
1815 {
1816 var120 = ((short int (*)(val* self, val* p0))(var112->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var112, var116) /* == on <var112:String>*/;
1817 }
1818 if (var120){
1819 goto RET_LABEL;
1820 } else {
1821 }
1822 }
1823 BREAK_label: (void)0;
1824 {
1825 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_83); /* Direct call array#ArrayIterator#next on <var_83:ArrayIterator[MPropDef]>*/
1826 }
1827 } else {
1828 goto BREAK_label121;
1829 }
1830 }
1831 BREAK_label121: (void)0;
1832 {
1833 { /* Inline abstract_collection#Iterator#finish (var_83) on <var_83:ArrayIterator[MPropDef]> */
1834 RET_LABEL122:(void)0;
1835 }
1836 }
1837 /* <var_nclassdef:AClassdef> isa AStdClassdef */
1838 cltype124 = type_nit__AStdClassdef.color;
1839 idtype125 = type_nit__AStdClassdef.id;
1840 if(cltype124 >= var_nclassdef->type->table_size) {
1841 var123 = 0;
1842 } else {
1843 var123 = var_nclassdef->type->type_table[cltype124] == idtype125;
1844 }
1845 var126 = !var123;
1846 if (var126){
1847 goto RET_LABEL;
1848 } else {
1849 }
1850 var127 = NEW_standard__Array(&type_standard__Array__nit__MParameter);
1851 {
1852 standard___standard__Array___standard__kernel__Object__init(var127); /* Direct call array#Array#init on <var127:Array[MParameter]>*/
1853 }
1854 var_mparameters128 = var127;
1855 var129 = NEW_standard__Array(&type_standard__Array__nit__MProperty);
1856 {
1857 standard___standard__Array___standard__kernel__Object__init(var129); /* Direct call array#Array#init on <var129:Array[MProperty]>*/
1858 }
1859 var_initializers = var129;
1860 {
1861 { /* Inline parser_nodes#AClassdef#n_propdefs (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
1862 var132 = var_nclassdef->attrs[COLOR_nit__parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <var_nclassdef:AClassdef(AStdClassdef)> */
1863 if (unlikely(var132 == NULL)) {
1864 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
1865 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1012);
1866 show_backtrace(1);
1867 }
1868 var130 = var132;
1869 RET_LABEL131:(void)0;
1870 }
1871 }
1872 var_133 = var130;
1873 {
1874 var134 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_133);
1875 }
1876 var_135 = var134;
1877 for(;;) {
1878 {
1879 var136 = ((short int (*)(val* self))(var_135->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_135) /* is_ok on <var_135:Iterator[APropdef]>*/;
1880 }
1881 if (var136){
1882 {
1883 var137 = ((val* (*)(val* self))(var_135->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_135) /* item on <var_135:Iterator[APropdef]>*/;
1884 }
1885 var_npropdef = var137;
1886 /* <var_npropdef:APropdef> isa AMethPropdef */
1887 cltype139 = type_nit__AMethPropdef.color;
1888 idtype140 = type_nit__AMethPropdef.id;
1889 if(cltype139 >= var_npropdef->type->table_size) {
1890 var138 = 0;
1891 } else {
1892 var138 = var_npropdef->type->type_table[cltype139] == idtype140;
1893 }
1894 if (var138){
1895 {
1896 { /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef(AMethPropdef)> */
1897 var143 = var_npropdef->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_npropdef:APropdef(AMethPropdef)> */
1898 var141 = var143;
1899 RET_LABEL142:(void)0;
1900 }
1901 }
1902 var144 = NULL;
1903 if (var141 == NULL) {
1904 var145 = 1; /* is null */
1905 } else {
1906 var145 = 0; /* arg is null but recv is not */
1907 }
1908 if (0) {
1909 { /* Inline kernel#Object#== (var141,var144) on <var141:nullable MPropDef(nullable MMethodDef)> */
1910 var_other = var144;
1911 {
1912 { /* Inline kernel#Object#is_same_instance (var141,var_other) on <var141:nullable MMethodDef(MMethodDef)> */
1913 var150 = var141 == var_other;
1914 var148 = var150;
1915 goto RET_LABEL149;
1916 RET_LABEL149:(void)0;
1917 }
1918 }
1919 var146 = var148;
1920 goto RET_LABEL147;
1921 RET_LABEL147:(void)0;
1922 }
1923 var145 = var146;
1924 }
1925 if (var145){
1926 goto RET_LABEL;
1927 } else {
1928 }
1929 if (varonce151) {
1930 var152 = varonce151;
1931 } else {
1932 var153 = "autoinit";
1933 var154 = 8;
1934 var155 = standard___standard__NativeString___to_s_with_length(var153, var154);
1935 var152 = var155;
1936 varonce151 = var152;
1937 }
1938 {
1939 var156 = nit__annotation___Prod___get_single_annotation(var_npropdef, var152, self);
1940 }
1941 var_at = var156;
1942 var157 = NULL;
1943 if (var_at == NULL) {
1944 var158 = 1; /* is null */
1945 } else {
1946 var158 = 0; /* arg is null but recv is not */
1947 }
1948 if (0) {
1949 { /* Inline kernel#Object#== (var_at,var157) on <var_at:nullable AAnnotation> */
1950 var_other = var157;
1951 {
1952 { /* Inline kernel#Object#is_same_instance (var_at,var_other) on <var_at:nullable AAnnotation(AAnnotation)> */
1953 var163 = var_at == var_other;
1954 var161 = var163;
1955 goto RET_LABEL162;
1956 RET_LABEL162:(void)0;
1957 }
1958 }
1959 var159 = var161;
1960 goto RET_LABEL160;
1961 RET_LABEL160:(void)0;
1962 }
1963 var158 = var159;
1964 }
1965 if (var158){
1966 goto BREAK_label164;
1967 } else {
1968 }
1969 {
1970 { /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef(AMethPropdef)> */
1971 var167 = var_npropdef->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_npropdef:APropdef(AMethPropdef)> */
1972 var165 = var167;
1973 RET_LABEL166:(void)0;
1974 }
1975 }
1976 if (var165 == NULL) {
1977 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1978 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 170);
1979 show_backtrace(1);
1980 } else {
1981 { /* Inline model#MMethodDef#msignature (var165) on <var165:nullable MPropDef(nullable MMethodDef)> */
1982 if (unlikely(var165 == NULL)) {
1983 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1984 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2137);
1985 show_backtrace(1);
1986 }
1987 var170 = var165->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on <var165:nullable MPropDef(nullable MMethodDef)> */
1988 var168 = var170;
1989 RET_LABEL169:(void)0;
1990 }
1991 }
1992 var_sig = var168;
1993 var171 = NULL;
1994 if (var_sig == NULL) {
1995 var172 = 1; /* is null */
1996 } else {
1997 var172 = 0; /* arg is null but recv is not */
1998 }
1999 if (0) {
2000 { /* Inline kernel#Object#== (var_sig,var171) on <var_sig:nullable MSignature> */
2001 var_other = var171;
2002 {
2003 { /* Inline kernel#Object#is_same_instance (var_sig,var_other) on <var_sig:nullable MSignature(MSignature)> */
2004 var177 = var_sig == var_other;
2005 var175 = var177;
2006 goto RET_LABEL176;
2007 RET_LABEL176:(void)0;
2008 }
2009 }
2010 var173 = var175;
2011 goto RET_LABEL174;
2012 RET_LABEL174:(void)0;
2013 }
2014 var172 = var173;
2015 }
2016 if (var172){
2017 goto BREAK_label164;
2018 } else {
2019 }
2020 {
2021 { /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef(AMethPropdef)> */
2022 var180 = var_npropdef->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_npropdef:APropdef(AMethPropdef)> */
2023 var178 = var180;
2024 RET_LABEL179:(void)0;
2025 }
2026 }
2027 if (var178 == NULL) {
2028 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2029 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 173);
2030 show_backtrace(1);
2031 } else {
2032 var181 = nit___nit__MPropDef___is_intro(var178);
2033 }
2034 var182 = !var181;
2035 if (var182){
2036 if (varonce183) {
2037 var184 = varonce183;
2038 } else {
2039 var185 = "Error: `autoinit` cannot be set on redefinitions";
2040 var186 = 48;
2041 var187 = standard___standard__NativeString___to_s_with_length(var185, var186);
2042 var184 = var187;
2043 varonce183 = var184;
2044 }
2045 {
2046 nit___nit__ModelBuilder___error(self, var_at, var184); /* Direct call modelbuilder_base#ModelBuilder#error on <self:ModelBuilder>*/
2047 }
2048 goto BREAK_label164;
2049 } else {
2050 }
2051 {
2052 { /* Inline model#MSignature#mparameters (var_sig) on <var_sig:nullable MSignature(MSignature)> */
2053 var190 = var_sig->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on <var_sig:nullable MSignature(MSignature)> */
2054 if (unlikely(var190 == NULL)) {
2055 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2056 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592);
2057 show_backtrace(1);
2058 }
2059 var188 = var190;
2060 RET_LABEL189:(void)0;
2061 }
2062 }
2063 var_191 = var188;
2064 {
2065 var192 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_191);
2066 }
2067 var_193 = var192;
2068 for(;;) {
2069 {
2070 var194 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_193);
2071 }
2072 if (var194){
2073 {
2074 var195 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_193);
2075 }
2076 var_param = var195;
2077 {
2078 { /* Inline model#MParameter#mtype (var_param) on <var_param:MParameter> */
2079 var198 = var_param->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on <var_param:MParameter> */
2080 if (unlikely(var198 == NULL)) {
2081 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2082 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1690);
2083 show_backtrace(1);
2084 }
2085 var196 = var198;
2086 RET_LABEL197:(void)0;
2087 }
2088 }
2089 var_ret_type = var196;
2090 var199 = NEW_nit__MParameter(&type_nit__MParameter);
2091 {
2092 { /* Inline model#MParameter#name (var_param) on <var_param:MParameter> */
2093 var202 = var_param->attrs[COLOR_nit__model__MParameter___name].val; /* _name on <var_param:MParameter> */
2094 if (unlikely(var202 == NULL)) {
2095 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2096 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1687);
2097 show_backtrace(1);
2098 }
2099 var200 = var202;
2100 RET_LABEL201:(void)0;
2101 }
2102 }
2103 var203 = 0;
2104 {
2105 ((void (*)(val* self, val* p0))(var199->class->vft[COLOR_nit__model__MParameter__name_61d]))(var199, var200) /* name= on <var199:MParameter>*/;
2106 }
2107 {
2108 ((void (*)(val* self, val* p0))(var199->class->vft[COLOR_nit__model__MParameter__mtype_61d]))(var199, var_ret_type) /* mtype= on <var199:MParameter>*/;
2109 }
2110 {
2111 ((void (*)(val* self, short int p0))(var199->class->vft[COLOR_nit__model__MParameter__is_vararg_61d]))(var199, var203) /* is_vararg= on <var199:MParameter>*/;
2112 }
2113 {
2114 ((void (*)(val* self))(var199->class->vft[COLOR_standard__kernel__Object__init]))(var199) /* init on <var199:MParameter>*/;
2115 }
2116 var_mparameter = var199;
2117 {
2118 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_mparameters128, var_mparameter); /* Direct call array#Array#add on <var_mparameters128:Array[MParameter]>*/
2119 }
2120 {
2121 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_193); /* Direct call array#ArrayIterator#next on <var_193:ArrayIterator[MParameter]>*/
2122 }
2123 } else {
2124 goto BREAK_label204;
2125 }
2126 }
2127 BREAK_label204: (void)0;
2128 {
2129 { /* Inline abstract_collection#Iterator#finish (var_193) on <var_193:ArrayIterator[MParameter]> */
2130 RET_LABEL205:(void)0;
2131 }
2132 }
2133 {
2134 { /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef(AMethPropdef)> */
2135 var208 = var_npropdef->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_npropdef:APropdef(AMethPropdef)> */
2136 var206 = var208;
2137 RET_LABEL207:(void)0;
2138 }
2139 }
2140 if (var206 == NULL) {
2141 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2142 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 183);
2143 show_backtrace(1);
2144 } else {
2145 { /* Inline model#MPropDef#mproperty (var206) on <var206:nullable MPropDef(nullable MMethodDef)> */
2146 if (unlikely(var206 == NULL)) {
2147 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2148 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
2149 show_backtrace(1);
2150 }
2151 var211 = var206->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var206:nullable MPropDef(nullable MMethodDef)> */
2152 if (unlikely(var211 == NULL)) {
2153 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2154 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
2155 show_backtrace(1);
2156 }
2157 var209 = var211;
2158 RET_LABEL210:(void)0;
2159 }
2160 }
2161 {
2162 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_initializers, var209); /* Direct call array#Array#add on <var_initializers:Array[MProperty]>*/
2163 }
2164 } else {
2165 }
2166 /* <var_npropdef:APropdef> isa AAttrPropdef */
2167 cltype213 = type_nit__AAttrPropdef.color;
2168 idtype214 = type_nit__AAttrPropdef.id;
2169 if(cltype213 >= var_npropdef->type->table_size) {
2170 var212 = 0;
2171 } else {
2172 var212 = var_npropdef->type->type_table[cltype213] == idtype214;
2173 }
2174 if (var212){
2175 {
2176 { /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
2177 var217 = var_npropdef->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_npropdef:APropdef(AAttrPropdef)> */
2178 var215 = var217;
2179 RET_LABEL216:(void)0;
2180 }
2181 }
2182 var218 = NULL;
2183 if (var215 == NULL) {
2184 var219 = 1; /* is null */
2185 } else {
2186 var219 = 0; /* arg is null but recv is not */
2187 }
2188 if (0) {
2189 { /* Inline kernel#Object#== (var215,var218) on <var215:nullable MPropDef(nullable MAttributeDef)> */
2190 var_other = var218;
2191 {
2192 { /* Inline kernel#Object#is_same_instance (var215,var_other) on <var215:nullable MAttributeDef(MAttributeDef)> */
2193 var224 = var215 == var_other;
2194 var222 = var224;
2195 goto RET_LABEL223;
2196 RET_LABEL223:(void)0;
2197 }
2198 }
2199 var220 = var222;
2200 goto RET_LABEL221;
2201 RET_LABEL221:(void)0;
2202 }
2203 var219 = var220;
2204 }
2205 if (var219){
2206 goto RET_LABEL;
2207 } else {
2208 }
2209 {
2210 { /* Inline modelize_property#AAttrPropdef#noinit (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
2211 var227 = var_npropdef->attrs[COLOR_nit__modelize_property__AAttrPropdef___noinit].s; /* _noinit on <var_npropdef:APropdef(AAttrPropdef)> */
2212 var225 = var227;
2213 RET_LABEL226:(void)0;
2214 }
2215 }
2216 if (var225){
2217 goto BREAK_label164;
2218 } else {
2219 }
2220 if (varonce228) {
2221 var229 = varonce228;
2222 } else {
2223 var230 = "autoinit";
2224 var231 = 8;
2225 var232 = standard___standard__NativeString___to_s_with_length(var230, var231);
2226 var229 = var232;
2227 varonce228 = var229;
2228 }
2229 {
2230 var233 = nit__annotation___Prod___get_single_annotation(var_npropdef, var229, self);
2231 }
2232 var_atautoinit = var233;
2233 var234 = NULL;
2234 if (var_atautoinit == NULL) {
2235 var235 = 0; /* is null */
2236 } else {
2237 var235 = 1; /* arg is null and recv is not */
2238 }
2239 if (0) {
2240 { /* Inline kernel#Object#!= (var_atautoinit,var234) on <var_atautoinit:nullable AAnnotation> */
2241 var_other238 = var234;
2242 {
2243 var239 = ((short int (*)(val* self, val* p0))(var_atautoinit->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_atautoinit, var_other238) /* == on <var_atautoinit:nullable AAnnotation(AAnnotation)>*/;
2244 }
2245 var240 = !var239;
2246 var236 = var240;
2247 goto RET_LABEL237;
2248 RET_LABEL237:(void)0;
2249 }
2250 var235 = var236;
2251 }
2252 if (var235){
2253 {
2254 { /* Inline modelize_property#AAttrPropdef#mreadpropdef (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
2255 var243 = var_npropdef->attrs[COLOR_nit__modelize_property__AAttrPropdef___mreadpropdef].val; /* _mreadpropdef on <var_npropdef:APropdef(AAttrPropdef)> */
2256 var241 = var243;
2257 RET_LABEL242:(void)0;
2258 }
2259 }
2260 if (var241 == NULL) {
2261 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2262 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 192);
2263 show_backtrace(1);
2264 } else {
2265 { /* Inline model#MPropDef#mproperty (var241) on <var241:nullable MMethodDef> */
2266 if (unlikely(var241 == NULL)) {
2267 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2268 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
2269 show_backtrace(1);
2270 }
2271 var246 = var241->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var241:nullable MMethodDef> */
2272 if (unlikely(var246 == NULL)) {
2273 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2274 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
2275 show_backtrace(1);
2276 }
2277 var244 = var246;
2278 RET_LABEL245:(void)0;
2279 }
2280 }
2281 {
2282 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_initializers, var244); /* Direct call array#Array#add on <var_initializers:Array[MProperty]>*/
2283 }
2284 goto BREAK_label164;
2285 } else {
2286 }
2287 {
2288 { /* Inline modelize_property#AAttrPropdef#has_value (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
2289 var249 = var_npropdef->attrs[COLOR_nit__modelize_property__AAttrPropdef___has_value].s; /* _has_value on <var_npropdef:APropdef(AAttrPropdef)> */
2290 var247 = var249;
2291 RET_LABEL248:(void)0;
2292 }
2293 }
2294 if (var247){
2295 goto BREAK_label164;
2296 } else {
2297 }
2298 {
2299 { /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
2300 var252 = var_npropdef->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_npropdef:APropdef(AAttrPropdef)> */
2301 var250 = var252;
2302 RET_LABEL251:(void)0;
2303 }
2304 }
2305 if (var250 == NULL) {
2306 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2307 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 196);
2308 show_backtrace(1);
2309 } else {
2310 { /* Inline model#MPropDef#mproperty (var250) on <var250:nullable MPropDef(nullable MAttributeDef)> */
2311 if (unlikely(var250 == NULL)) {
2312 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2313 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
2314 show_backtrace(1);
2315 }
2316 var255 = var250->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var250:nullable MPropDef(nullable MAttributeDef)> */
2317 if (unlikely(var255 == NULL)) {
2318 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2319 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
2320 show_backtrace(1);
2321 }
2322 var253 = var255;
2323 RET_LABEL254:(void)0;
2324 }
2325 }
2326 {
2327 { /* Inline model#MProperty#name (var253) on <var253:MProperty(MAttribute)> */
2328 var258 = var253->attrs[COLOR_nit__model__MProperty___name].val; /* _name on <var253:MProperty(MAttribute)> */
2329 if (unlikely(var258 == NULL)) {
2330 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2331 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1741);
2332 show_backtrace(1);
2333 }
2334 var256 = var258;
2335 RET_LABEL257:(void)0;
2336 }
2337 }
2338 var259 = 1;
2339 {
2340 var260 = standard___standard__Text___substring_from(var256, var259);
2341 }
2342 var_paramname = var260;
2343 {
2344 { /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
2345 var263 = var_npropdef->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_npropdef:APropdef(AAttrPropdef)> */
2346 var261 = var263;
2347 RET_LABEL262:(void)0;
2348 }
2349 }
2350 if (var261 == NULL) {
2351 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2352 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 197);
2353 show_backtrace(1);
2354 } else {
2355 { /* Inline model#MAttributeDef#static_mtype (var261) on <var261:nullable MPropDef(nullable MAttributeDef)> */
2356 if (unlikely(var261 == NULL)) {
2357 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2358 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2180);
2359 show_backtrace(1);
2360 }
2361 var266 = var261->attrs[COLOR_nit__model__MAttributeDef___static_mtype].val; /* _static_mtype on <var261:nullable MPropDef(nullable MAttributeDef)> */
2362 var264 = var266;
2363 RET_LABEL265:(void)0;
2364 }
2365 }
2366 var_ret_type267 = var264;
2367 var268 = NULL;
2368 if (var_ret_type267 == NULL) {
2369 var269 = 1; /* is null */
2370 } else {
2371 var269 = 0; /* arg is null but recv is not */
2372 }
2373 if (0) {
2374 { /* Inline kernel#Object#== (var_ret_type267,var268) on <var_ret_type267:nullable MType> */
2375 var_other = var268;
2376 {
2377 { /* Inline kernel#Object#is_same_instance (var_ret_type267,var_other) on <var_ret_type267:nullable MType(MType)> */
2378 var274 = var_ret_type267 == var_other;
2379 var272 = var274;
2380 goto RET_LABEL273;
2381 RET_LABEL273:(void)0;
2382 }
2383 }
2384 var270 = var272;
2385 goto RET_LABEL271;
2386 RET_LABEL271:(void)0;
2387 }
2388 var269 = var270;
2389 }
2390 if (var269){
2391 goto RET_LABEL;
2392 } else {
2393 }
2394 var275 = NEW_nit__MParameter(&type_nit__MParameter);
2395 var276 = 0;
2396 {
2397 ((void (*)(val* self, val* p0))(var275->class->vft[COLOR_nit__model__MParameter__name_61d]))(var275, var_paramname) /* name= on <var275:MParameter>*/;
2398 }
2399 {
2400 ((void (*)(val* self, val* p0))(var275->class->vft[COLOR_nit__model__MParameter__mtype_61d]))(var275, var_ret_type267) /* mtype= on <var275:MParameter>*/;
2401 }
2402 {
2403 ((void (*)(val* self, short int p0))(var275->class->vft[COLOR_nit__model__MParameter__is_vararg_61d]))(var275, var276) /* is_vararg= on <var275:MParameter>*/;
2404 }
2405 {
2406 ((void (*)(val* self))(var275->class->vft[COLOR_standard__kernel__Object__init]))(var275) /* init on <var275:MParameter>*/;
2407 }
2408 var_mparameter277 = var275;
2409 {
2410 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_mparameters128, var_mparameter277); /* Direct call array#Array#add on <var_mparameters128:Array[MParameter]>*/
2411 }
2412 {
2413 { /* Inline modelize_property#AAttrPropdef#mwritepropdef (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
2414 var280 = var_npropdef->attrs[COLOR_nit__modelize_property__AAttrPropdef___mwritepropdef].val; /* _mwritepropdef on <var_npropdef:APropdef(AAttrPropdef)> */
2415 var278 = var280;
2416 RET_LABEL279:(void)0;
2417 }
2418 }
2419 var_msetter = var278;
2420 var281 = NULL;
2421 if (var_msetter == NULL) {
2422 var282 = 1; /* is null */
2423 } else {
2424 var282 = 0; /* arg is null but recv is not */
2425 }
2426 if (0) {
2427 { /* Inline kernel#Object#== (var_msetter,var281) on <var_msetter:nullable MMethodDef> */
2428 var_other = var281;
2429 {
2430 { /* Inline kernel#Object#is_same_instance (var_msetter,var_other) on <var_msetter:nullable MMethodDef(MMethodDef)> */
2431 var287 = var_msetter == var_other;
2432 var285 = var287;
2433 goto RET_LABEL286;
2434 RET_LABEL286:(void)0;
2435 }
2436 }
2437 var283 = var285;
2438 goto RET_LABEL284;
2439 RET_LABEL284:(void)0;
2440 }
2441 var282 = var283;
2442 }
2443 if (var282){
2444 {
2445 { /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
2446 var290 = var_npropdef->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_npropdef:APropdef(AAttrPropdef)> */
2447 var288 = var290;
2448 RET_LABEL289:(void)0;
2449 }
2450 }
2451 if (var288 == NULL) {
2452 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2453 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 204);
2454 show_backtrace(1);
2455 } else {
2456 { /* Inline model#MPropDef#mproperty (var288) on <var288:nullable MPropDef(nullable MAttributeDef)> */
2457 if (unlikely(var288 == NULL)) {
2458 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2459 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
2460 show_backtrace(1);
2461 }
2462 var293 = var288->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var288:nullable MPropDef(nullable MAttributeDef)> */
2463 if (unlikely(var293 == NULL)) {
2464 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2465 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
2466 show_backtrace(1);
2467 }
2468 var291 = var293;
2469 RET_LABEL292:(void)0;
2470 }
2471 }
2472 {
2473 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_initializers, var291); /* Direct call array#Array#add on <var_initializers:Array[MProperty]>*/
2474 }
2475 } else {
2476 {
2477 { /* Inline model#MPropDef#mproperty (var_msetter) on <var_msetter:nullable MMethodDef(MMethodDef)> */
2478 var296 = var_msetter->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_msetter:nullable MMethodDef(MMethodDef)> */
2479 if (unlikely(var296 == NULL)) {
2480 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2481 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
2482 show_backtrace(1);
2483 }
2484 var294 = var296;
2485 RET_LABEL295:(void)0;
2486 }
2487 }
2488 {
2489 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_initializers, var294); /* Direct call array#Array#add on <var_initializers:Array[MProperty]>*/
2490 }
2491 }
2492 } else {
2493 }
2494 BREAK_label164: (void)0;
2495 {
2496 ((void (*)(val* self))(var_135->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_135) /* next on <var_135:Iterator[APropdef]>*/;
2497 }
2498 } else {
2499 goto BREAK_label297;
2500 }
2501 }
2502 BREAK_label297: (void)0;
2503 {
2504 { /* Inline abstract_collection#Iterator#finish (var_135) on <var_135:Iterator[APropdef]> */
2505 RET_LABEL298:(void)0;
2506 }
2507 }
2508 {
2509 { /* Inline modelize_property#ModelBuilder#the_root_init_mmethod (self) on <self:ModelBuilder> */
2510 var301 = self->attrs[COLOR_nit__modelize_property__ModelBuilder___the_root_init_mmethod].val; /* _the_root_init_mmethod on <self:ModelBuilder> */
2511 var299 = var301;
2512 RET_LABEL300:(void)0;
2513 }
2514 }
2515 var302 = NULL;
2516 if (var299 == NULL) {
2517 var303 = 1; /* is null */
2518 } else {
2519 var303 = 0; /* arg is null but recv is not */
2520 }
2521 if (0) {
2522 { /* Inline kernel#Object#== (var299,var302) on <var299:nullable MMethod> */
2523 var_other = var302;
2524 {
2525 { /* Inline kernel#Object#is_same_instance (var299,var_other) on <var299:nullable MMethod(MMethod)> */
2526 var308 = var299 == var_other;
2527 var306 = var308;
2528 goto RET_LABEL307;
2529 RET_LABEL307:(void)0;
2530 }
2531 }
2532 var304 = var306;
2533 goto RET_LABEL305;
2534 RET_LABEL305:(void)0;
2535 }
2536 var303 = var304;
2537 }
2538 if (var303){
2539 goto RET_LABEL;
2540 } else {
2541 }
2542 {
2543 { /* Inline modelize_property#ModelBuilder#the_root_init_mmethod (self) on <self:ModelBuilder> */
2544 var311 = self->attrs[COLOR_nit__modelize_property__ModelBuilder___the_root_init_mmethod].val; /* _the_root_init_mmethod on <self:ModelBuilder> */
2545 var309 = var311;
2546 RET_LABEL310:(void)0;
2547 }
2548 }
2549 {
2550 { /* Inline model#MClassDef#mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
2551 var314 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
2552 if (unlikely(var314 == NULL)) {
2553 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2554 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489);
2555 show_backtrace(1);
2556 }
2557 var312 = var314;
2558 RET_LABEL313:(void)0;
2559 }
2560 }
2561 {
2562 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
2563 var317 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
2564 if (unlikely(var317 == NULL)) {
2565 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
2566 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495);
2567 show_backtrace(1);
2568 }
2569 var315 = var317;
2570 RET_LABEL316:(void)0;
2571 }
2572 }
2573 if (var309 == NULL) {
2574 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2575 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 215);
2576 show_backtrace(1);
2577 } else {
2578 var318 = nit___nit__MProperty___lookup_super_definitions(var309, var312, var315);
2579 }
2580 var_spropdefs = var318;
2581 {
2582 var319 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_spropdefs);
2583 }
2584 if (var319){
2585 {
2586 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
2587 var322 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
2588 if (unlikely(var322 == NULL)) {
2589 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2590 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
2591 show_backtrace(1);
2592 }
2593 var320 = var322;
2594 RET_LABEL321:(void)0;
2595 }
2596 }
2597 {
2598 { /* Inline parser_nodes#ANode#location (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
2599 var325 = var_nclassdef->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <var_nclassdef:AClassdef(AStdClassdef)> */
2600 if (unlikely(var325 == NULL)) {
2601 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
2602 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
2603 show_backtrace(1);
2604 }
2605 var323 = var325;
2606 RET_LABEL324:(void)0;
2607 }
2608 }
2609 if (varonce326) {
2610 var327 = varonce326;
2611 } else {
2612 var328 = "Error: ";
2613 var329 = 7;
2614 var330 = standard___standard__NativeString___to_s_with_length(var328, var329);
2615 var327 = var330;
2616 varonce326 = var327;
2617 }
2618 if (varonce331) {
2619 var332 = varonce331;
2620 } else {
2621 var333 = " does not specialize ";
2622 var334 = 21;
2623 var335 = standard___standard__NativeString___to_s_with_length(var333, var334);
2624 var332 = var335;
2625 varonce331 = var332;
2626 }
2627 {
2628 { /* Inline modelize_property#ModelBuilder#the_root_init_mmethod (self) on <self:ModelBuilder> */
2629 var338 = self->attrs[COLOR_nit__modelize_property__ModelBuilder___the_root_init_mmethod].val; /* _the_root_init_mmethod on <self:ModelBuilder> */
2630 var336 = var338;
2631 RET_LABEL337:(void)0;
2632 }
2633 }
2634 if (var336 == NULL) {
2635 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2636 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 217);
2637 show_backtrace(1);
2638 } else {
2639 { /* Inline model#MProperty#intro_mclassdef (var336) on <var336:nullable MMethod> */
2640 if (unlikely(var336 == NULL)) {
2641 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2642 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1736);
2643 show_backtrace(1);
2644 }
2645 var341 = var336->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var336:nullable MMethod> */
2646 if (unlikely(var341 == NULL)) {
2647 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
2648 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1736);
2649 show_backtrace(1);
2650 }
2651 var339 = var341;
2652 RET_LABEL340:(void)0;
2653 }
2654 }
2655 if (varonce342) {
2656 var343 = varonce342;
2657 } else {
2658 var344 = ". Possible duplication of the root class `Object`?";
2659 var345 = 50;
2660 var346 = standard___standard__NativeString___to_s_with_length(var344, var345);
2661 var343 = var346;
2662 varonce342 = var343;
2663 }
2664 var347 = NEW_standard__Array(&type_standard__Array__standard__Object);
2665 { /* var347 = array_instance Array[Object] */
2666 var348 = 5;
2667 var349 = NEW_standard__NativeArray(var348, &type_standard__NativeArray__standard__Object);
2668 ((struct instance_standard__NativeArray*)var349)->values[0] = (val*) var327;
2669 ((struct instance_standard__NativeArray*)var349)->values[1] = (val*) var_mclassdef;
2670 ((struct instance_standard__NativeArray*)var349)->values[2] = (val*) var332;
2671 ((struct instance_standard__NativeArray*)var349)->values[3] = (val*) var339;
2672 ((struct instance_standard__NativeArray*)var349)->values[4] = (val*) var343;
2673 {
2674 ((void (*)(val* self, val* p0, long p1))(var347->class->vft[COLOR_standard__array__Array__with_native]))(var347, var349, var348) /* with_native on <var347:Array[Object]>*/;
2675 }
2676 }
2677 {
2678 var350 = ((val* (*)(val* self))(var347->class->vft[COLOR_standard__string__Object__to_s]))(var347) /* to_s on <var347:Array[Object]>*/;
2679 }
2680 {
2681 nit___nit__ToolContext___error(var320, var323, var350); /* Direct call toolcontext#ToolContext#error on <var320:ToolContext>*/
2682 }
2683 goto RET_LABEL;
2684 } else {
2685 }
2686 {
2687 var351 = standard___standard__SequenceRead___Collection__first(var_spropdefs);
2688 }
2689 var_longest = var351;
2690 {
2691 { /* Inline array#AbstractArrayRead#length (var_spropdefs) on <var_spropdefs:Array[MMethodDef]> */
2692 var354 = var_spropdefs->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_spropdefs:Array[MMethodDef]> */
2693 var352 = var354;
2694 RET_LABEL353:(void)0;
2695 }
2696 }
2697 var355 = 1;
2698 {
2699 { /* Inline kernel#Int#> (var352,var355) on <var352:Int> */
2700 /* Covariant cast for argument 0 (i) <var355:Int> isa OTHER */
2701 /* <var355:Int> isa OTHER */
2702 var358 = 1; /* easy <var355:Int> isa OTHER*/
2703 if (unlikely(!var358)) {
2704 var_class_name = type_standard__Int.name;
2705 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2706 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
2707 show_backtrace(1);
2708 }
2709 var361 = var352 > var355;
2710 var356 = var361;
2711 goto RET_LABEL357;
2712 RET_LABEL357:(void)0;
2713 }
2714 }
2715 if (var356){
2716 var_362 = var_spropdefs;
2717 {
2718 var363 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_362);
2719 }
2720 var_364 = var363;
2721 for(;;) {
2722 {
2723 var365 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_364);
2724 }
2725 if (var365){
2726 {
2727 var366 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_364);
2728 }
2729 var_spd = var366;
2730 {
2731 { /* Inline model#MMethodDef#initializers (var_spd) on <var_spd:MMethodDef> */
2732 var369 = var_spd->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on <var_spd:MMethodDef> */
2733 if (unlikely(var369 == NULL)) {
2734 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
2735 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2146);
2736 show_backtrace(1);
2737 }
2738 var367 = var369;
2739 RET_LABEL368:(void)0;
2740 }
2741 }
2742 {
2743 { /* Inline array#AbstractArrayRead#length (var367) on <var367:Array[MProperty]> */
2744 var372 = var367->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var367:Array[MProperty]> */
2745 var370 = var372;
2746 RET_LABEL371:(void)0;
2747 }
2748 }
2749 {
2750 { /* Inline model#MMethodDef#initializers (var_longest) on <var_longest:MMethodDef> */
2751 var375 = var_longest->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on <var_longest:MMethodDef> */
2752 if (unlikely(var375 == NULL)) {
2753 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
2754 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2146);
2755 show_backtrace(1);
2756 }
2757 var373 = var375;
2758 RET_LABEL374:(void)0;
2759 }
2760 }
2761 {
2762 { /* Inline array#AbstractArrayRead#length (var373) on <var373:Array[MProperty]> */
2763 var378 = var373->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var373:Array[MProperty]> */
2764 var376 = var378;
2765 RET_LABEL377:(void)0;
2766 }
2767 }
2768 {
2769 { /* Inline kernel#Int#> (var370,var376) on <var370:Int> */
2770 /* Covariant cast for argument 0 (i) <var376:Int> isa OTHER */
2771 /* <var376:Int> isa OTHER */
2772 var381 = 1; /* easy <var376:Int> isa OTHER*/
2773 if (unlikely(!var381)) {
2774 var_class_name384 = type_standard__Int.name;
2775 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name384);
2776 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
2777 show_backtrace(1);
2778 }
2779 var385 = var370 > var376;
2780 var379 = var385;
2781 goto RET_LABEL380;
2782 RET_LABEL380:(void)0;
2783 }
2784 }
2785 if (var379){
2786 var_longest = var_spd;
2787 } else {
2788 }
2789 {
2790 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_364); /* Direct call array#ArrayIterator#next on <var_364:ArrayIterator[MMethodDef]>*/
2791 }
2792 } else {
2793 goto BREAK_label386;
2794 }
2795 }
2796 BREAK_label386: (void)0;
2797 {
2798 { /* Inline abstract_collection#Iterator#finish (var_364) on <var_364:ArrayIterator[MMethodDef]> */
2799 RET_LABEL387:(void)0;
2800 }
2801 }
2802 var_388 = var_spropdefs;
2803 {
2804 var389 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_388);
2805 }
2806 var_390 = var389;
2807 for(;;) {
2808 {
2809 var391 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_390);
2810 }
2811 if (var391){
2812 {
2813 var392 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_390);
2814 }
2815 var_spd393 = var392;
2816 var394 = 0;
2817 var_i = var394;
2818 {
2819 { /* Inline model#MMethodDef#initializers (var_spd393) on <var_spd393:MMethodDef> */
2820 var397 = var_spd393->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on <var_spd393:MMethodDef> */
2821 if (unlikely(var397 == NULL)) {
2822 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
2823 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2146);
2824 show_backtrace(1);
2825 }
2826 var395 = var397;
2827 RET_LABEL396:(void)0;
2828 }
2829 }
2830 var_398 = var395;
2831 {
2832 var399 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_398);
2833 }
2834 var_400 = var399;
2835 for(;;) {
2836 {
2837 var401 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_400);
2838 }
2839 if (var401){
2840 {
2841 var402 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_400);
2842 }
2843 var_p = var402;
2844 {
2845 { /* Inline model#MMethodDef#initializers (var_longest) on <var_longest:MMethodDef> */
2846 var405 = var_longest->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on <var_longest:MMethodDef> */
2847 if (unlikely(var405 == NULL)) {
2848 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
2849 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2146);
2850 show_backtrace(1);
2851 }
2852 var403 = var405;
2853 RET_LABEL404:(void)0;
2854 }
2855 }
2856 {
2857 var406 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var403, var_i);
2858 }
2859 {
2860 { /* Inline kernel#Object#!= (var_p,var406) on <var_p:MProperty> */
2861 var_other238 = var406;
2862 {
2863 var409 = ((short int (*)(val* self, val* p0))(var_p->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_p, var_other238) /* == on <var_p:MProperty>*/;
2864 }
2865 var410 = !var409;
2866 var407 = var410;
2867 goto RET_LABEL408;
2868 RET_LABEL408:(void)0;
2869 }
2870 }
2871 if (var407){
2872 if (varonce411) {
2873 var412 = varonce411;
2874 } else {
2875 var413 = "Error: conflict for inherited inits ";
2876 var414 = 36;
2877 var415 = standard___standard__NativeString___to_s_with_length(var413, var414);
2878 var412 = var415;
2879 varonce411 = var412;
2880 }
2881 if (varonce416) {
2882 var417 = varonce416;
2883 } else {
2884 var418 = "(";
2885 var419 = 1;
2886 var420 = standard___standard__NativeString___to_s_with_length(var418, var419);
2887 var417 = var420;
2888 varonce416 = var417;
2889 }
2890 {
2891 { /* Inline model#MMethodDef#initializers (var_spd393) on <var_spd393:MMethodDef> */
2892 var423 = var_spd393->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on <var_spd393:MMethodDef> */
2893 if (unlikely(var423 == NULL)) {
2894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
2895 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2146);
2896 show_backtrace(1);
2897 }
2898 var421 = var423;
2899 RET_LABEL422:(void)0;
2900 }
2901 }
2902 if (varonce424) {
2903 var425 = varonce424;
2904 } else {
2905 var426 = ", ";
2906 var427 = 2;
2907 var428 = standard___standard__NativeString___to_s_with_length(var426, var427);
2908 var425 = var428;
2909 varonce424 = var425;
2910 }
2911 {
2912 var429 = standard__string___Collection___join(var421, var425);
2913 }
2914 if (varonce430) {
2915 var431 = varonce430;
2916 } else {
2917 var432 = ") and ";
2918 var433 = 6;
2919 var434 = standard___standard__NativeString___to_s_with_length(var432, var433);
2920 var431 = var434;
2921 varonce430 = var431;
2922 }
2923 if (varonce435) {
2924 var436 = varonce435;
2925 } else {
2926 var437 = "(";
2927 var438 = 1;
2928 var439 = standard___standard__NativeString___to_s_with_length(var437, var438);
2929 var436 = var439;
2930 varonce435 = var436;
2931 }
2932 {
2933 { /* Inline model#MMethodDef#initializers (var_longest) on <var_longest:MMethodDef> */
2934 var442 = var_longest->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on <var_longest:MMethodDef> */
2935 if (unlikely(var442 == NULL)) {
2936 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
2937 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2146);
2938 show_backtrace(1);
2939 }
2940 var440 = var442;
2941 RET_LABEL441:(void)0;
2942 }
2943 }
2944 if (varonce443) {
2945 var444 = varonce443;
2946 } else {
2947 var445 = ", ";
2948 var446 = 2;
2949 var447 = standard___standard__NativeString___to_s_with_length(var445, var446);
2950 var444 = var447;
2951 varonce443 = var444;
2952 }
2953 {
2954 var448 = standard__string___Collection___join(var440, var444);
2955 }
2956 if (varonce449) {
2957 var450 = varonce449;
2958 } else {
2959 var451 = ")";
2960 var452 = 1;
2961 var453 = standard___standard__NativeString___to_s_with_length(var451, var452);
2962 var450 = var453;
2963 varonce449 = var450;
2964 }
2965 var454 = NEW_standard__Array(&type_standard__Array__standard__Object);
2966 { /* var454 = array_instance Array[Object] */
2967 var455 = 9;
2968 var456 = NEW_standard__NativeArray(var455, &type_standard__NativeArray__standard__Object);
2969 ((struct instance_standard__NativeArray*)var456)->values[0] = (val*) var412;
2970 ((struct instance_standard__NativeArray*)var456)->values[1] = (val*) var_spd393;
2971 ((struct instance_standard__NativeArray*)var456)->values[2] = (val*) var417;
2972 ((struct instance_standard__NativeArray*)var456)->values[3] = (val*) var429;
2973 ((struct instance_standard__NativeArray*)var456)->values[4] = (val*) var431;
2974 ((struct instance_standard__NativeArray*)var456)->values[5] = (val*) var_longest;
2975 ((struct instance_standard__NativeArray*)var456)->values[6] = (val*) var436;
2976 ((struct instance_standard__NativeArray*)var456)->values[7] = (val*) var448;
2977 ((struct instance_standard__NativeArray*)var456)->values[8] = (val*) var450;
2978 {
2979 ((void (*)(val* self, val* p0, long p1))(var454->class->vft[COLOR_standard__array__Array__with_native]))(var454, var456, var455) /* with_native on <var454:Array[Object]>*/;
2980 }
2981 }
2982 {
2983 var457 = ((val* (*)(val* self))(var454->class->vft[COLOR_standard__string__Object__to_s]))(var454) /* to_s on <var454:Array[Object]>*/;
2984 }
2985 {
2986 nit___nit__ModelBuilder___error(self, var_nclassdef, var457); /* Direct call modelbuilder_base#ModelBuilder#error on <self:ModelBuilder>*/
2987 }
2988 goto RET_LABEL;
2989 } else {
2990 }
2991 var458 = 1;
2992 {
2993 { /* Inline kernel#Int#+ (var_i,var458) on <var_i:Int> */
2994 /* Covariant cast for argument 0 (i) <var458:Int> isa OTHER */
2995 /* <var458:Int> isa OTHER */
2996 var461 = 1; /* easy <var458:Int> isa OTHER*/
2997 if (unlikely(!var461)) {
2998 var_class_name464 = type_standard__Int.name;
2999 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name464);
3000 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
3001 show_backtrace(1);
3002 }
3003 var465 = var_i + var458;
3004 var459 = var465;
3005 goto RET_LABEL460;
3006 RET_LABEL460:(void)0;
3007 }
3008 }
3009 var_i = var459;
3010 {
3011 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_400); /* Direct call array#ArrayIterator#next on <var_400:ArrayIterator[MProperty]>*/
3012 }
3013 } else {
3014 goto BREAK_label466;
3015 }
3016 }
3017 BREAK_label466: (void)0;
3018 {
3019 { /* Inline abstract_collection#Iterator#finish (var_400) on <var_400:ArrayIterator[MProperty]> */
3020 RET_LABEL467:(void)0;
3021 }
3022 }
3023 {
3024 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_390); /* Direct call array#ArrayIterator#next on <var_390:ArrayIterator[MMethodDef]>*/
3025 }
3026 } else {
3027 goto BREAK_label468;
3028 }
3029 }
3030 BREAK_label468: (void)0;
3031 {
3032 { /* Inline abstract_collection#Iterator#finish (var_390) on <var_390:ArrayIterator[MMethodDef]> */
3033 RET_LABEL469:(void)0;
3034 }
3035 }
3036 } else {
3037 }
3038 {
3039 { /* Inline array#AbstractArrayRead#length (var_spropdefs) on <var_spropdefs:Array[MMethodDef]> */
3040 var474 = var_spropdefs->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_spropdefs:Array[MMethodDef]> */
3041 var472 = var474;
3042 RET_LABEL473:(void)0;
3043 }
3044 }
3045 var475 = 1;
3046 {
3047 { /* Inline kernel#Int#== (var472,var475) on <var472:Int> */
3048 var478 = var472 == var475;
3049 var476 = var478;
3050 goto RET_LABEL477;
3051 RET_LABEL477:(void)0;
3052 }
3053 }
3054 var_479 = var476;
3055 if (var476){
3056 {
3057 var480 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_mparameters128);
3058 }
3059 var471 = var480;
3060 } else {
3061 var471 = var_479;
3062 }
3063 var_481 = var471;
3064 if (var471){
3065 var482 = NULL;
3066 if (var_defined_init == NULL) {
3067 var483 = 1; /* is null */
3068 } else {
3069 var483 = 0; /* arg is null but recv is not */
3070 }
3071 if (0) {
3072 { /* Inline kernel#Object#== (var_defined_init,var482) on <var_defined_init:nullable MMethodDef> */
3073 var_other = var482;
3074 {
3075 { /* Inline kernel#Object#is_same_instance (var_defined_init,var_other) on <var_defined_init:nullable MMethodDef(MMethodDef)> */
3076 var488 = var_defined_init == var_other;
3077 var486 = var488;
3078 goto RET_LABEL487;
3079 RET_LABEL487:(void)0;
3080 }
3081 }
3082 var484 = var486;
3083 goto RET_LABEL485;
3084 RET_LABEL485:(void)0;
3085 }
3086 var483 = var484;
3087 }
3088 var470 = var483;
3089 } else {
3090 var470 = var_481;
3091 }
3092 if (var470){
3093 {
3094 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
3095 var491 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
3096 if (unlikely(var491 == NULL)) {
3097 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3098 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
3099 show_backtrace(1);
3100 }
3101 var489 = var491;
3102 RET_LABEL490:(void)0;
3103 }
3104 }
3105 if (varonce492) {
3106 var493 = varonce492;
3107 } else {
3108 var494 = " inherits the basic constructor ";
3109 var495 = 32;
3110 var496 = standard___standard__NativeString___to_s_with_length(var494, var495);
3111 var493 = var496;
3112 varonce492 = var493;
3113 }
3114 var497 = NEW_standard__Array(&type_standard__Array__standard__Object);
3115 { /* var497 = array_instance Array[Object] */
3116 var498 = 3;
3117 var499 = NEW_standard__NativeArray(var498, &type_standard__NativeArray__standard__Object);
3118 ((struct instance_standard__NativeArray*)var499)->values[0] = (val*) var_mclassdef;
3119 ((struct instance_standard__NativeArray*)var499)->values[1] = (val*) var493;
3120 ((struct instance_standard__NativeArray*)var499)->values[2] = (val*) var_longest;
3121 {
3122 ((void (*)(val* self, val* p0, long p1))(var497->class->vft[COLOR_standard__array__Array__with_native]))(var497, var499, var498) /* with_native on <var497:Array[Object]>*/;
3123 }
3124 }
3125 {
3126 var500 = ((val* (*)(val* self))(var497->class->vft[COLOR_standard__string__Object__to_s]))(var497) /* to_s on <var497:Array[Object]>*/;
3127 }
3128 var501 = 3;
3129 {
3130 nit___nit__ToolContext___info(var489, var500, var501); /* Direct call toolcontext#ToolContext#info on <var489:ToolContext>*/
3131 }
3132 {
3133 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
3134 var504 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
3135 if (unlikely(var504 == NULL)) {
3136 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3137 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
3138 show_backtrace(1);
3139 }
3140 var502 = var504;
3141 RET_LABEL503:(void)0;
3142 }
3143 }
3144 {
3145 { /* Inline modelize_property#MClass#root_init= (var502,var_longest) on <var502:MClass> */
3146 var502->attrs[COLOR_nit__modelize_property__MClass___root_init].val = var_longest; /* _root_init on <var502:MClass> */
3147 RET_LABEL505:(void)0;
3148 }
3149 }
3150 goto RET_LABEL;
3151 } else {
3152 }
3153 {
3154 { /* Inline model#MMethodDef#initializers (var_longest) on <var_longest:MMethodDef> */
3155 var508 = var_longest->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on <var_longest:MMethodDef> */
3156 if (unlikely(var508 == NULL)) {
3157 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
3158 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2146);
3159 show_backtrace(1);
3160 }
3161 var506 = var508;
3162 RET_LABEL507:(void)0;
3163 }
3164 }
3165 {
3166 { /* Inline array#AbstractArrayRead#length (var506) on <var506:Array[MProperty]> */
3167 var511 = var506->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var506:Array[MProperty]> */
3168 var509 = var511;
3169 RET_LABEL510:(void)0;
3170 }
3171 }
3172 var512 = 0;
3173 {
3174 { /* Inline kernel#Int#> (var509,var512) on <var509:Int> */
3175 /* Covariant cast for argument 0 (i) <var512:Int> isa OTHER */
3176 /* <var512:Int> isa OTHER */
3177 var515 = 1; /* easy <var512:Int> isa OTHER*/
3178 if (unlikely(!var515)) {
3179 var_class_name518 = type_standard__Int.name;
3180 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name518);
3181 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
3182 show_backtrace(1);
3183 }
3184 var519 = var509 > var512;
3185 var513 = var519;
3186 goto RET_LABEL514;
3187 RET_LABEL514:(void)0;
3188 }
3189 }
3190 if (var513){
3191 {
3192 { /* Inline model#MMethodDef#new_msignature (var_longest) on <var_longest:MMethodDef> */
3193 var522 = var_longest->attrs[COLOR_nit__model__MMethodDef___new_msignature].val; /* _new_msignature on <var_longest:MMethodDef> */
3194 var520 = var522;
3195 RET_LABEL521:(void)0;
3196 }
3197 }
3198 if (var520 == NULL) {
3199 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3200 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 252);
3201 show_backtrace(1);
3202 } else {
3203 { /* Inline model#MSignature#mparameters (var520) on <var520:nullable MSignature> */
3204 if (unlikely(var520 == NULL)) {
3205 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3206 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592);
3207 show_backtrace(1);
3208 }
3209 var525 = var520->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on <var520:nullable MSignature> */
3210 if (unlikely(var525 == NULL)) {
3211 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
3212 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592);
3213 show_backtrace(1);
3214 }
3215 var523 = var525;
3216 RET_LABEL524:(void)0;
3217 }
3218 }
3219 {
3220 standard___standard__Sequence___prepend(var_mparameters128, var523); /* Direct call abstract_collection#Sequence#prepend on <var_mparameters128:Array[MParameter]>*/
3221 }
3222 {
3223 { /* Inline model#MMethodDef#initializers (var_longest) on <var_longest:MMethodDef> */
3224 var528 = var_longest->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on <var_longest:MMethodDef> */
3225 if (unlikely(var528 == NULL)) {
3226 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
3227 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2146);
3228 show_backtrace(1);
3229 }
3230 var526 = var528;
3231 RET_LABEL527:(void)0;
3232 }
3233 }
3234 {
3235 standard___standard__Sequence___prepend(var_initializers, var526); /* Direct call abstract_collection#Sequence#prepend on <var_initializers:Array[MProperty]>*/
3236 }
3237 } else {
3238 }
3239 var529 = NULL;
3240 if (var_defined_init == NULL) {
3241 var530 = 0; /* is null */
3242 } else {
3243 var530 = 1; /* arg is null and recv is not */
3244 }
3245 if (0) {
3246 { /* Inline kernel#Object#!= (var_defined_init,var529) on <var_defined_init:nullable MMethodDef> */
3247 var_other238 = var529;
3248 {
3249 var533 = ((short int (*)(val* self, val* p0))(var_defined_init->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_defined_init, var_other238) /* == on <var_defined_init:nullable MMethodDef(MMethodDef)>*/;
3250 }
3251 var534 = !var533;
3252 var531 = var534;
3253 goto RET_LABEL532;
3254 RET_LABEL532:(void)0;
3255 }
3256 var530 = var531;
3257 }
3258 if (var530){
3259 {
3260 { /* Inline model#MMethodDef#initializers (var_defined_init) on <var_defined_init:nullable MMethodDef(MMethodDef)> */
3261 var537 = var_defined_init->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on <var_defined_init:nullable MMethodDef(MMethodDef)> */
3262 if (unlikely(var537 == NULL)) {
3263 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
3264 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2146);
3265 show_backtrace(1);
3266 }
3267 var535 = var537;
3268 RET_LABEL536:(void)0;
3269 }
3270 }
3271 {
3272 standard___standard__Array___standard__abstract_collection__SimpleCollection__add_all(var535, var_initializers); /* Direct call array#Array#add_all on <var535:Array[MProperty]>*/
3273 }
3274 var538 = NEW_nit__MSignature(&type_nit__MSignature);
3275 var539 = NULL;
3276 {
3277 ((void (*)(val* self, val* p0))(var538->class->vft[COLOR_nit__model__MSignature__mparameters_61d]))(var538, var_mparameters128) /* mparameters= on <var538:MSignature>*/;
3278 }
3279 {
3280 ((void (*)(val* self, val* p0))(var538->class->vft[COLOR_nit__model__MSignature__return_mtype_61d]))(var538, var539) /* return_mtype= on <var538:MSignature>*/;
3281 }
3282 {
3283 ((void (*)(val* self))(var538->class->vft[COLOR_standard__kernel__Object__init]))(var538) /* init on <var538:MSignature>*/;
3284 }
3285 var_msignature540 = var538;
3286 {
3287 { /* Inline model#MMethodDef#new_msignature= (var_defined_init,var_msignature540) on <var_defined_init:nullable MMethodDef(MMethodDef)> */
3288 var_defined_init->attrs[COLOR_nit__model__MMethodDef___new_msignature].val = var_msignature540; /* _new_msignature on <var_defined_init:nullable MMethodDef(MMethodDef)> */
3289 RET_LABEL541:(void)0;
3290 }
3291 }
3292 {
3293 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
3294 var544 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
3295 if (unlikely(var544 == NULL)) {
3296 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3297 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
3298 show_backtrace(1);
3299 }
3300 var542 = var544;
3301 RET_LABEL543:(void)0;
3302 }
3303 }
3304 if (varonce545) {
3305 var546 = varonce545;
3306 } else {
3307 var547 = " extends its basic constructor signature to ";
3308 var548 = 44;
3309 var549 = standard___standard__NativeString___to_s_with_length(var547, var548);
3310 var546 = var549;
3311 varonce545 = var546;
3312 }
3313 var550 = NEW_standard__Array(&type_standard__Array__standard__Object);
3314 { /* var550 = array_instance Array[Object] */
3315 var551 = 4;
3316 var552 = NEW_standard__NativeArray(var551, &type_standard__NativeArray__standard__Object);
3317 ((struct instance_standard__NativeArray*)var552)->values[0] = (val*) var_mclassdef;
3318 ((struct instance_standard__NativeArray*)var552)->values[1] = (val*) var546;
3319 ((struct instance_standard__NativeArray*)var552)->values[2] = (val*) var_defined_init;
3320 ((struct instance_standard__NativeArray*)var552)->values[3] = (val*) var_msignature540;
3321 {
3322 ((void (*)(val* self, val* p0, long p1))(var550->class->vft[COLOR_standard__array__Array__with_native]))(var550, var552, var551) /* with_native on <var550:Array[Object]>*/;
3323 }
3324 }
3325 {
3326 var553 = ((val* (*)(val* self))(var550->class->vft[COLOR_standard__string__Object__to_s]))(var550) /* to_s on <var550:Array[Object]>*/;
3327 }
3328 var554 = 3;
3329 {
3330 nit___nit__ToolContext___info(var542, var553, var554); /* Direct call toolcontext#ToolContext#info on <var542:ToolContext>*/
3331 }
3332 {
3333 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
3334 var557 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
3335 if (unlikely(var557 == NULL)) {
3336 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3337 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
3338 show_backtrace(1);
3339 }
3340 var555 = var557;
3341 RET_LABEL556:(void)0;
3342 }
3343 }
3344 {
3345 { /* Inline modelize_property#MClass#root_init= (var555,var_defined_init) on <var555:MClass> */
3346 var555->attrs[COLOR_nit__modelize_property__MClass___root_init].val = var_defined_init; /* _root_init on <var555:MClass> */
3347 RET_LABEL558:(void)0;
3348 }
3349 }
3350 goto RET_LABEL;
3351 } else {
3352 }
3353 {
3354 { /* Inline modelize_property#ModelBuilder#the_root_init_mmethod (self) on <self:ModelBuilder> */
3355 var561 = self->attrs[COLOR_nit__modelize_property__ModelBuilder___the_root_init_mmethod].val; /* _the_root_init_mmethod on <self:ModelBuilder> */
3356 var559 = var561;
3357 RET_LABEL560:(void)0;
3358 }
3359 }
3360 if (unlikely(var559 == NULL)) {
3361 PRINT_ERROR("Runtime error: %s", "Cast failed");
3362 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 267);
3363 show_backtrace(1);
3364 }
3365 var_mprop562 = var559;
3366 var563 = NEW_nit__MMethodDef(&type_nit__MMethodDef);
3367 {
3368 { /* Inline parser_nodes#ANode#location (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
3369 var566 = var_nclassdef->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <var_nclassdef:AClassdef(AStdClassdef)> */
3370 if (unlikely(var566 == NULL)) {
3371 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
3372 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
3373 show_backtrace(1);
3374 }
3375 var564 = var566;
3376 RET_LABEL565:(void)0;
3377 }
3378 }
3379 {
3380 ((void (*)(val* self, val* p0))(var563->class->vft[COLOR_nit__model__MPropDef__mclassdef_61d]))(var563, var_mclassdef) /* mclassdef= on <var563:MMethodDef>*/;
3381 }
3382 {
3383 ((void (*)(val* self, val* p0))(var563->class->vft[COLOR_nit__model__MPropDef__mproperty_61d]))(var563, var_mprop562) /* mproperty= on <var563:MMethodDef>*/;
3384 }
3385 {
3386 ((void (*)(val* self, val* p0))(var563->class->vft[COLOR_nit__model__MPropDef__location_61d]))(var563, var564) /* location= on <var563:MMethodDef>*/;
3387 }
3388 {
3389 ((void (*)(val* self))(var563->class->vft[COLOR_standard__kernel__Object__init]))(var563) /* init on <var563:MMethodDef>*/;
3390 }
3391 var_mpropdef567 = var563;
3392 var568 = 1;
3393 {
3394 { /* Inline modelize_property#MPropDef#has_supercall= (var_mpropdef567,var568) on <var_mpropdef567:MMethodDef> */
3395 var_mpropdef567->attrs[COLOR_nit__modelize_property__MPropDef___has_supercall].s = var568; /* _has_supercall on <var_mpropdef567:MMethodDef> */
3396 RET_LABEL569:(void)0;
3397 }
3398 }
3399 {
3400 { /* Inline model#MMethodDef#initializers (var_mpropdef567) on <var_mpropdef567:MMethodDef> */
3401 var572 = var_mpropdef567->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on <var_mpropdef567:MMethodDef> */
3402 if (unlikely(var572 == NULL)) {
3403 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
3404 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2146);
3405 show_backtrace(1);
3406 }
3407 var570 = var572;
3408 RET_LABEL571:(void)0;
3409 }
3410 }
3411 {
3412 standard___standard__Array___standard__abstract_collection__SimpleCollection__add_all(var570, var_initializers); /* Direct call array#Array#add_all on <var570:Array[MProperty]>*/
3413 }
3414 var573 = NEW_nit__MSignature(&type_nit__MSignature);
3415 var574 = NULL;
3416 {
3417 ((void (*)(val* self, val* p0))(var573->class->vft[COLOR_nit__model__MSignature__mparameters_61d]))(var573, var_mparameters128) /* mparameters= on <var573:MSignature>*/;
3418 }
3419 {
3420 ((void (*)(val* self, val* p0))(var573->class->vft[COLOR_nit__model__MSignature__return_mtype_61d]))(var573, var574) /* return_mtype= on <var573:MSignature>*/;
3421 }
3422 {
3423 ((void (*)(val* self))(var573->class->vft[COLOR_standard__kernel__Object__init]))(var573) /* init on <var573:MSignature>*/;
3424 }
3425 var_msignature575 = var573;
3426 {
3427 { /* Inline model#MMethodDef#new_msignature= (var_mpropdef567,var_msignature575) on <var_mpropdef567:MMethodDef> */
3428 var_mpropdef567->attrs[COLOR_nit__model__MMethodDef___new_msignature].val = var_msignature575; /* _new_msignature on <var_mpropdef567:MMethodDef> */
3429 RET_LABEL576:(void)0;
3430 }
3431 }
3432 var577 = NEW_nit__MSignature(&type_nit__MSignature);
3433 var578 = NEW_standard__Array(&type_standard__Array__nit__MParameter);
3434 {
3435 standard___standard__Array___standard__kernel__Object__init(var578); /* Direct call array#Array#init on <var578:Array[MParameter]>*/
3436 }
3437 var579 = NULL;
3438 {
3439 ((void (*)(val* self, val* p0))(var577->class->vft[COLOR_nit__model__MSignature__mparameters_61d]))(var577, var578) /* mparameters= on <var577:MSignature>*/;
3440 }
3441 {
3442 ((void (*)(val* self, val* p0))(var577->class->vft[COLOR_nit__model__MSignature__return_mtype_61d]))(var577, var579) /* return_mtype= on <var577:MSignature>*/;
3443 }
3444 {
3445 ((void (*)(val* self))(var577->class->vft[COLOR_standard__kernel__Object__init]))(var577) /* init on <var577:MSignature>*/;
3446 }
3447 {
3448 { /* Inline model#MMethodDef#msignature= (var_mpropdef567,var577) on <var_mpropdef567:MMethodDef> */
3449 var_mpropdef567->attrs[COLOR_nit__model__MMethodDef___msignature].val = var577; /* _msignature on <var_mpropdef567:MMethodDef> */
3450 RET_LABEL580:(void)0;
3451 }
3452 }
3453 {
3454 { /* Inline modelize_property#AClassdef#mfree_init= (var_nclassdef,var_mpropdef567) on <var_nclassdef:AClassdef(AStdClassdef)> */
3455 var_nclassdef->attrs[COLOR_nit__modelize_property__AClassdef___mfree_init].val = var_mpropdef567; /* _mfree_init on <var_nclassdef:AClassdef(AStdClassdef)> */
3456 RET_LABEL581:(void)0;
3457 }
3458 }
3459 {
3460 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
3461 var584 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
3462 if (unlikely(var584 == NULL)) {
3463 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3464 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
3465 show_backtrace(1);
3466 }
3467 var582 = var584;
3468 RET_LABEL583:(void)0;
3469 }
3470 }
3471 if (varonce585) {
3472 var586 = varonce585;
3473 } else {
3474 var587 = " gets a free constructor for attributes ";
3475 var588 = 40;
3476 var589 = standard___standard__NativeString___to_s_with_length(var587, var588);
3477 var586 = var589;
3478 varonce585 = var586;
3479 }
3480 var590 = NEW_standard__Array(&type_standard__Array__standard__Object);
3481 { /* var590 = array_instance Array[Object] */
3482 var591 = 4;
3483 var592 = NEW_standard__NativeArray(var591, &type_standard__NativeArray__standard__Object);
3484 ((struct instance_standard__NativeArray*)var592)->values[0] = (val*) var_mclassdef;
3485 ((struct instance_standard__NativeArray*)var592)->values[1] = (val*) var586;
3486 ((struct instance_standard__NativeArray*)var592)->values[2] = (val*) var_mpropdef567;
3487 ((struct instance_standard__NativeArray*)var592)->values[3] = (val*) var_msignature575;
3488 {
3489 ((void (*)(val* self, val* p0, long p1))(var590->class->vft[COLOR_standard__array__Array__with_native]))(var590, var592, var591) /* with_native on <var590:Array[Object]>*/;
3490 }
3491 }
3492 {
3493 var593 = ((val* (*)(val* self))(var590->class->vft[COLOR_standard__string__Object__to_s]))(var590) /* to_s on <var590:Array[Object]>*/;
3494 }
3495 var594 = 3;
3496 {
3497 nit___nit__ToolContext___info(var582, var593, var594); /* Direct call toolcontext#ToolContext#info on <var582:ToolContext>*/
3498 }
3499 {
3500 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
3501 var597 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
3502 if (unlikely(var597 == NULL)) {
3503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3504 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
3505 show_backtrace(1);
3506 }
3507 var595 = var597;
3508 RET_LABEL596:(void)0;
3509 }
3510 }
3511 {
3512 { /* Inline modelize_property#MClass#root_init= (var595,var_mpropdef567) on <var595:MClass> */
3513 var595->attrs[COLOR_nit__modelize_property__MClass___root_init].val = var_mpropdef567; /* _root_init on <var595:MClass> */
3514 RET_LABEL598:(void)0;
3515 }
3516 }
3517 RET_LABEL:;
3518 }
3519 /* method modelize_property#ModelBuilder#check_visibility for (self: ModelBuilder, ANode, MType, MPropDef) */
3520 void nit__modelize_property___ModelBuilder___check_visibility(val* self, val* p0, val* p1, val* p2) {
3521 val* var_node /* var node: ANode */;
3522 val* var_mtype /* var mtype: MType */;
3523 val* var_mpropdef /* var mpropdef: MPropDef */;
3524 val* var /* : MClassDef */;
3525 val* var2 /* : MClassDef */;
3526 val* var3 /* : MModule */;
3527 val* var5 /* : MModule */;
3528 val* var_mmodule /* var mmodule: MModule */;
3529 val* var6 /* : MProperty */;
3530 val* var8 /* : MProperty */;
3531 val* var_mproperty /* var mproperty: MProperty */;
3532 val* var9 /* : null */;
3533 val* var_vis_type /* var vis_type: nullable MVisibility */;
3534 val* var10 /* : null */;
3535 val* var_mmodule_type /* var mmodule_type: nullable MModule */;
3536 val* var11 /* : MType */;
3537 short int var12 /* : Bool */;
3538 int cltype;
3539 int idtype;
3540 val* var13 /* : MClass */;
3541 val* var15 /* : MClass */;
3542 val* var16 /* : MVisibility */;
3543 val* var18 /* : MVisibility */;
3544 val* var19 /* : MClass */;
3545 val* var21 /* : MClass */;
3546 val* var22 /* : MClassDef */;
3547 val* var24 /* : MClassDef */;
3548 val* var25 /* : MModule */;
3549 val* var27 /* : MModule */;
3550 short int var28 /* : Bool */;
3551 int cltype29;
3552 int idtype30;
3553 val* var31 /* : MVirtualTypeProp */;
3554 val* var33 /* : MVirtualTypeProp */;
3555 val* var34 /* : MVisibility */;
3556 val* var36 /* : MVisibility */;
3557 val* var37 /* : MVirtualTypeProp */;
3558 val* var39 /* : MVirtualTypeProp */;
3559 val* var40 /* : MClassDef */;
3560 val* var42 /* : MClassDef */;
3561 val* var43 /* : MModule */;
3562 val* var45 /* : MModule */;
3563 short int var46 /* : Bool */;
3564 int cltype47;
3565 int idtype48;
3566 static val* varonce;
3567 val* var49 /* : String */;
3568 char* var50 /* : NativeString */;
3569 long var51 /* : Int */;
3570 val* var52 /* : FlatString */;
3571 val* var53 /* : Array[Object] */;
3572 long var54 /* : Int */;
3573 val* var55 /* : NativeArray[Object] */;
3574 val* var56 /* : String */;
3575 val* var57 /* : null */;
3576 short int var58 /* : Bool */;
3577 short int var59 /* : Bool */;
3578 val* var_other /* var other: nullable Object */;
3579 short int var61 /* : Bool */;
3580 short int var62 /* : Bool */;
3581 val* var63 /* : null */;
3582 short int var64 /* : Bool */;
3583 short int var65 /* : Bool */;
3584 short int var67 /* : Bool */;
3585 short int var68 /* : Bool */;
3586 val* var69 /* : MVisibility */;
3587 val* var_vis_module_type /* var vis_module_type: MVisibility */;
3588 val* var70 /* : MVisibility */;
3589 val* var72 /* : MVisibility */;
3590 short int var73 /* : Bool */;
3591 static val* varonce74;
3592 val* var75 /* : String */;
3593 char* var76 /* : NativeString */;
3594 long var77 /* : Int */;
3595 val* var78 /* : FlatString */;
3596 val* var79 /* : MVisibility */;
3597 val* var81 /* : MVisibility */;
3598 static val* varonce82;
3599 val* var83 /* : String */;
3600 char* var84 /* : NativeString */;
3601 long var85 /* : Int */;
3602 val* var86 /* : FlatString */;
3603 static val* varonce87;
3604 val* var88 /* : String */;
3605 char* var89 /* : NativeString */;
3606 long var90 /* : Int */;
3607 val* var91 /* : FlatString */;
3608 static val* varonce92;
3609 val* var93 /* : String */;
3610 char* var94 /* : NativeString */;
3611 long var95 /* : Int */;
3612 val* var96 /* : FlatString */;
3613 static val* varonce97;
3614 val* var98 /* : String */;
3615 char* var99 /* : NativeString */;
3616 long var100 /* : Int */;
3617 val* var101 /* : FlatString */;
3618 val* var102 /* : Array[Object] */;
3619 long var103 /* : Int */;
3620 val* var104 /* : NativeArray[Object] */;
3621 val* var105 /* : String */;
3622 val* var106 /* : MVisibility */;
3623 val* var108 /* : MVisibility */;
3624 short int var109 /* : Bool */;
3625 static val* varonce110;
3626 val* var111 /* : String */;
3627 char* var112 /* : NativeString */;
3628 long var113 /* : Int */;
3629 val* var114 /* : FlatString */;
3630 val* var115 /* : MVisibility */;
3631 val* var117 /* : MVisibility */;
3632 static val* varonce118;
3633 val* var119 /* : String */;
3634 char* var120 /* : NativeString */;
3635 long var121 /* : Int */;
3636 val* var122 /* : FlatString */;
3637 static val* varonce123;
3638 val* var124 /* : String */;
3639 char* var125 /* : NativeString */;
3640 long var126 /* : Int */;
3641 val* var127 /* : FlatString */;
3642 static val* varonce128;
3643 val* var129 /* : String */;
3644 char* var130 /* : NativeString */;
3645 long var131 /* : Int */;
3646 val* var132 /* : FlatString */;
3647 static val* varonce133;
3648 val* var134 /* : String */;
3649 char* var135 /* : NativeString */;
3650 long var136 /* : Int */;
3651 val* var137 /* : FlatString */;
3652 static val* varonce138;
3653 val* var139 /* : String */;
3654 char* var140 /* : NativeString */;
3655 long var141 /* : Int */;
3656 val* var142 /* : FlatString */;
3657 val* var143 /* : Array[Object] */;
3658 long var144 /* : Int */;
3659 val* var145 /* : NativeArray[Object] */;
3660 val* var146 /* : String */;
3661 short int var147 /* : Bool */;
3662 int cltype148;
3663 int idtype149;
3664 val* var150 /* : ANodes[AType] */;
3665 val* var152 /* : ANodes[AType] */;
3666 val* var_ /* var : ANodes[AType] */;
3667 val* var153 /* : Iterator[ANode] */;
3668 val* var_154 /* var : Iterator[AType] */;
3669 short int var155 /* : Bool */;
3670 val* var156 /* : nullable Object */;
3671 val* var_a /* var a: AType */;
3672 val* var157 /* : nullable MType */;
3673 val* var159 /* : nullable MType */;
3674 val* var_t /* var t: nullable MType */;
3675 val* var160 /* : null */;
3676 short int var161 /* : Bool */;
3677 short int var162 /* : Bool */;
3678 val* var_other164 /* var other: nullable Object */;
3679 short int var165 /* : Bool */;
3680 short int var167 /* : Bool */;
3681 short int var170 /* : Bool */;
3682 int cltype171;
3683 int idtype172;
3684 val* var173 /* : Array[MType] */;
3685 val* var175 /* : Array[MType] */;
3686 val* var_176 /* var : Array[MType] */;
3687 val* var177 /* : ArrayIterator[nullable Object] */;
3688 val* var_178 /* var : ArrayIterator[MType] */;
3689 short int var179 /* : Bool */;
3690 val* var180 /* : nullable Object */;
3691 val* var_t181 /* var t: MType */;
3692 var_node = p0;
3693 var_mtype = p1;
3694 var_mpropdef = p2;
3695 {
3696 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
3697 var2 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
3698 if (unlikely(var2 == NULL)) {
3699 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
3700 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010);
3701 show_backtrace(1);
3702 }
3703 var = var2;
3704 RET_LABEL1:(void)0;
3705 }
3706 }
3707 {
3708 { /* Inline model#MClassDef#mmodule (var) on <var:MClassDef> */
3709 var5 = var->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var:MClassDef> */
3710 if (unlikely(var5 == NULL)) {
3711 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3712 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489);
3713 show_backtrace(1);
3714 }
3715 var3 = var5;
3716 RET_LABEL4:(void)0;
3717 }
3718 }
3719 var_mmodule = var3;
3720 {
3721 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MPropDef> */
3722 var8 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MPropDef> */
3723 if (unlikely(var8 == NULL)) {
3724 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3725 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
3726 show_backtrace(1);
3727 }
3728 var6 = var8;
3729 RET_LABEL7:(void)0;
3730 }
3731 }
3732 var_mproperty = var6;
3733 var9 = NULL;
3734 var_vis_type = var9;
3735 var10 = NULL;
3736 var_mmodule_type = var10;
3737 {
3738 var11 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__as_notnullable]))(var_mtype) /* as_notnullable on <var_mtype:MType>*/;
3739 }
3740 var_mtype = var11;
3741 /* <var_mtype:MType> isa MClassType */
3742 cltype = type_nit__MClassType.color;
3743 idtype = type_nit__MClassType.id;
3744 if(cltype >= var_mtype->type->table_size) {
3745 var12 = 0;
3746 } else {
3747 var12 = var_mtype->type->type_table[cltype] == idtype;
3748 }
3749 if (var12){
3750 {
3751 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
3752 var15 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var_mtype:MType(MClassType)> */
3753 if (unlikely(var15 == NULL)) {
3754 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3755 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
3756 show_backtrace(1);
3757 }
3758 var13 = var15;
3759 RET_LABEL14:(void)0;
3760 }
3761 }
3762 {
3763 { /* Inline model#MClass#visibility (var13) on <var13:MClass> */
3764 var18 = var13->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on <var13:MClass> */
3765 if (unlikely(var18 == NULL)) {
3766 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
3767 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 403);
3768 show_backtrace(1);
3769 }
3770 var16 = var18;
3771 RET_LABEL17:(void)0;
3772 }
3773 }
3774 var_vis_type = var16;
3775 {
3776 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
3777 var21 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var_mtype:MType(MClassType)> */
3778 if (unlikely(var21 == NULL)) {
3779 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3780 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
3781 show_backtrace(1);
3782 }
3783 var19 = var21;
3784 RET_LABEL20:(void)0;
3785 }
3786 }
3787 {
3788 { /* Inline model#MClass#intro (var19) on <var19:MClass> */
3789 var24 = var19->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on <var19:MClass> */
3790 if (unlikely(var24 == NULL)) {
3791 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
3792 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 423);
3793 show_backtrace(1);
3794 }
3795 var22 = var24;
3796 RET_LABEL23:(void)0;
3797 }
3798 }
3799 {
3800 { /* Inline model#MClassDef#mmodule (var22) on <var22:MClassDef> */
3801 var27 = var22->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var22:MClassDef> */
3802 if (unlikely(var27 == NULL)) {
3803 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3804 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489);
3805 show_backtrace(1);
3806 }
3807 var25 = var27;
3808 RET_LABEL26:(void)0;
3809 }
3810 }
3811 var_mmodule_type = var25;
3812 } else {
3813 /* <var_mtype:MType> isa MVirtualType */
3814 cltype29 = type_nit__MVirtualType.color;
3815 idtype30 = type_nit__MVirtualType.id;
3816 if(cltype29 >= var_mtype->type->table_size) {
3817 var28 = 0;
3818 } else {
3819 var28 = var_mtype->type->type_table[cltype29] == idtype30;
3820 }
3821 if (var28){
3822 {
3823 { /* Inline model#MVirtualType#mproperty (var_mtype) on <var_mtype:MType(MVirtualType)> */
3824 var33 = var_mtype->attrs[COLOR_nit__model__MVirtualType___mproperty].val; /* _mproperty on <var_mtype:MType(MVirtualType)> */
3825 if (unlikely(var33 == NULL)) {
3826 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3827 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1254);
3828 show_backtrace(1);
3829 }
3830 var31 = var33;
3831 RET_LABEL32:(void)0;
3832 }
3833 }
3834 {
3835 { /* Inline model#MProperty#visibility (var31) on <var31:MVirtualTypeProp> */
3836 var36 = var31->attrs[COLOR_nit__model__MProperty___visibility].val; /* _visibility on <var31:MVirtualTypeProp> */
3837 if (unlikely(var36 == NULL)) {
3838 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
3839 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1757);
3840 show_backtrace(1);
3841 }
3842 var34 = var36;
3843 RET_LABEL35:(void)0;
3844 }
3845 }
3846 var_vis_type = var34;
3847 {
3848 { /* Inline model#MVirtualType#mproperty (var_mtype) on <var_mtype:MType(MVirtualType)> */
3849 var39 = var_mtype->attrs[COLOR_nit__model__MVirtualType___mproperty].val; /* _mproperty on <var_mtype:MType(MVirtualType)> */
3850 if (unlikely(var39 == NULL)) {
3851 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3852 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1254);
3853 show_backtrace(1);
3854 }
3855 var37 = var39;
3856 RET_LABEL38:(void)0;
3857 }
3858 }
3859 {
3860 { /* Inline model#MProperty#intro_mclassdef (var37) on <var37:MVirtualTypeProp> */
3861 var42 = var37->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var37:MVirtualTypeProp> */
3862 if (unlikely(var42 == NULL)) {
3863 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
3864 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1736);
3865 show_backtrace(1);
3866 }
3867 var40 = var42;
3868 RET_LABEL41:(void)0;
3869 }
3870 }
3871 {
3872 { /* Inline model#MClassDef#mmodule (var40) on <var40:MClassDef> */
3873 var45 = var40->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var40:MClassDef> */
3874 if (unlikely(var45 == NULL)) {
3875 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3876 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489);
3877 show_backtrace(1);
3878 }
3879 var43 = var45;
3880 RET_LABEL44:(void)0;
3881 }
3882 }
3883 var_mmodule_type = var43;
3884 } else {
3885 /* <var_mtype:MType> isa MParameterType */
3886 cltype47 = type_nit__MParameterType.color;
3887 idtype48 = type_nit__MParameterType.id;
3888 if(cltype47 >= var_mtype->type->table_size) {
3889 var46 = 0;
3890 } else {
3891 var46 = var_mtype->type->type_table[cltype47] == idtype48;
3892 }
3893 if (var46){
3894 } else {
3895 if (varonce) {
3896 var49 = varonce;
3897 } else {
3898 var50 = "Unexpected type ";
3899 var51 = 16;
3900 var52 = standard___standard__NativeString___to_s_with_length(var50, var51);
3901 var49 = var52;
3902 varonce = var49;
3903 }
3904 var53 = NEW_standard__Array(&type_standard__Array__standard__Object);
3905 { /* var53 = array_instance Array[Object] */
3906 var54 = 2;
3907 var55 = NEW_standard__NativeArray(var54, &type_standard__NativeArray__standard__Object);
3908 ((struct instance_standard__NativeArray*)var55)->values[0] = (val*) var49;
3909 ((struct instance_standard__NativeArray*)var55)->values[1] = (val*) var_mtype;
3910 {
3911 ((void (*)(val* self, val* p0, long p1))(var53->class->vft[COLOR_standard__array__Array__with_native]))(var53, var55, var54) /* with_native on <var53:Array[Object]>*/;
3912 }
3913 }
3914 {
3915 var56 = ((val* (*)(val* self))(var53->class->vft[COLOR_standard__string__Object__to_s]))(var53) /* to_s on <var53:Array[Object]>*/;
3916 }
3917 {
3918 nit___nit__ANode___debug(var_node, var56); /* Direct call parser_nodes#ANode#debug on <var_node:ANode>*/
3919 }
3920 PRINT_ERROR("Runtime error: %s", "Aborted");
3921 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 300);
3922 show_backtrace(1);
3923 }
3924 }
3925 }
3926 var57 = NULL;
3927 if (var_vis_type == NULL) {
3928 var58 = 0; /* is null */
3929 } else {
3930 var58 = 1; /* arg is null and recv is not */
3931 }
3932 if (0) {
3933 { /* Inline kernel#Object#!= (var_vis_type,var57) on <var_vis_type:nullable MVisibility> */
3934 var_other = var57;
3935 {
3936 var61 = ((short int (*)(val* self, val* p0))(var_vis_type->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_vis_type, var_other) /* == on <var_vis_type:nullable MVisibility(MVisibility)>*/;
3937 }
3938 var62 = !var61;
3939 var59 = var62;
3940 goto RET_LABEL60;
3941 RET_LABEL60:(void)0;
3942 }
3943 var58 = var59;
3944 }
3945 if (var58){
3946 var63 = NULL;
3947 if (var_mmodule_type == NULL) {
3948 var64 = 0; /* is null */
3949 } else {
3950 var64 = 1; /* arg is null and recv is not */
3951 }
3952 if (0) {
3953 { /* Inline kernel#Object#!= (var_mmodule_type,var63) on <var_mmodule_type:nullable MModule> */
3954 var_other = var63;
3955 {
3956 var67 = ((short int (*)(val* self, val* p0))(var_mmodule_type->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mmodule_type, var_other) /* == on <var_mmodule_type:nullable MModule(MModule)>*/;
3957 }
3958 var68 = !var67;
3959 var65 = var68;
3960 goto RET_LABEL66;
3961 RET_LABEL66:(void)0;
3962 }
3963 var64 = var65;
3964 }
3965 if (unlikely(!var64)) {
3966 PRINT_ERROR("Runtime error: %s", "Assert failed");
3967 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 304);
3968 show_backtrace(1);
3969 }
3970 {
3971 var69 = nit___nit__MModule___visibility_for(var_mmodule, var_mmodule_type);
3972 }
3973 var_vis_module_type = var69;
3974 {
3975 { /* Inline model#MProperty#visibility (var_mproperty) on <var_mproperty:MProperty> */
3976 var72 = var_mproperty->attrs[COLOR_nit__model__MProperty___visibility].val; /* _visibility on <var_mproperty:MProperty> */
3977 if (unlikely(var72 == NULL)) {
3978 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
3979 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1757);
3980 show_backtrace(1);
3981 }
3982 var70 = var72;
3983 RET_LABEL71:(void)0;
3984 }
3985 }
3986 {
3987 var73 = standard___standard__Comparable____62d(var70, var_vis_type);
3988 }
3989 if (var73){
3990 if (varonce74) {
3991 var75 = varonce74;
3992 } else {
3993 var76 = "Error: The ";
3994 var77 = 11;
3995 var78 = standard___standard__NativeString___to_s_with_length(var76, var77);
3996 var75 = var78;
3997 varonce74 = var75;
3998 }
3999 {
4000 { /* Inline model#MProperty#visibility (var_mproperty) on <var_mproperty:MProperty> */
4001 var81 = var_mproperty->attrs[COLOR_nit__model__MProperty___visibility].val; /* _visibility on <var_mproperty:MProperty> */
4002 if (unlikely(var81 == NULL)) {
4003 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
4004 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1757);
4005 show_backtrace(1);
4006 }
4007 var79 = var81;
4008 RET_LABEL80:(void)0;
4009 }
4010 }
4011 if (varonce82) {
4012 var83 = varonce82;
4013 } else {
4014 var84 = " property `";
4015 var85 = 11;
4016 var86 = standard___standard__NativeString___to_s_with_length(var84, var85);
4017 var83 = var86;
4018 varonce82 = var83;
4019 }
4020 if (varonce87) {
4021 var88 = varonce87;
4022 } else {
4023 var89 = "` cannot contain the ";
4024 var90 = 21;
4025 var91 = standard___standard__NativeString___to_s_with_length(var89, var90);
4026 var88 = var91;
4027 varonce87 = var88;
4028 }
4029 if (varonce92) {
4030 var93 = varonce92;
4031 } else {
4032 var94 = " type `";
4033 var95 = 7;
4034 var96 = standard___standard__NativeString___to_s_with_length(var94, var95);
4035 var93 = var96;
4036 varonce92 = var93;
4037 }
4038 if (varonce97) {
4039 var98 = varonce97;
4040 } else {
4041 var99 = "`";
4042 var100 = 1;
4043 var101 = standard___standard__NativeString___to_s_with_length(var99, var100);
4044 var98 = var101;
4045 varonce97 = var98;
4046 }
4047 var102 = NEW_standard__Array(&type_standard__Array__standard__Object);
4048 { /* var102 = array_instance Array[Object] */
4049 var103 = 9;
4050 var104 = NEW_standard__NativeArray(var103, &type_standard__NativeArray__standard__Object);
4051 ((struct instance_standard__NativeArray*)var104)->values[0] = (val*) var75;
4052 ((struct instance_standard__NativeArray*)var104)->values[1] = (val*) var79;
4053 ((struct instance_standard__NativeArray*)var104)->values[2] = (val*) var83;
4054 ((struct instance_standard__NativeArray*)var104)->values[3] = (val*) var_mproperty;
4055 ((struct instance_standard__NativeArray*)var104)->values[4] = (val*) var88;
4056 ((struct instance_standard__NativeArray*)var104)->values[5] = (val*) var_vis_type;
4057 ((struct instance_standard__NativeArray*)var104)->values[6] = (val*) var93;
4058 ((struct instance_standard__NativeArray*)var104)->values[7] = (val*) var_mtype;
4059 ((struct instance_standard__NativeArray*)var104)->values[8] = (val*) var98;
4060 {
4061 ((void (*)(val* self, val* p0, long p1))(var102->class->vft[COLOR_standard__array__Array__with_native]))(var102, var104, var103) /* with_native on <var102:Array[Object]>*/;
4062 }
4063 }
4064 {
4065 var105 = ((val* (*)(val* self))(var102->class->vft[COLOR_standard__string__Object__to_s]))(var102) /* to_s on <var102:Array[Object]>*/;
4066 }
4067 {
4068 nit___nit__ModelBuilder___error(self, var_node, var105); /* Direct call modelbuilder_base#ModelBuilder#error on <self:ModelBuilder>*/
4069 }
4070 goto RET_LABEL;
4071 } else {
4072 {
4073 { /* Inline model#MProperty#visibility (var_mproperty) on <var_mproperty:MProperty> */
4074 var108 = var_mproperty->attrs[COLOR_nit__model__MProperty___visibility].val; /* _visibility on <var_mproperty:MProperty> */
4075 if (unlikely(var108 == NULL)) {
4076 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
4077 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1757);
4078 show_backtrace(1);
4079 }
4080 var106 = var108;
4081 RET_LABEL107:(void)0;
4082 }
4083 }
4084 {
4085 var109 = standard___standard__Comparable____62d(var106, var_vis_module_type);
4086 }
4087 if (var109){
4088 if (varonce110) {
4089 var111 = varonce110;
4090 } else {
4091 var112 = "Error: The ";
4092 var113 = 11;
4093 var114 = standard___standard__NativeString___to_s_with_length(var112, var113);
4094 var111 = var114;
4095 varonce110 = var111;
4096 }
4097 {
4098 { /* Inline model#MProperty#visibility (var_mproperty) on <var_mproperty:MProperty> */
4099 var117 = var_mproperty->attrs[COLOR_nit__model__MProperty___visibility].val; /* _visibility on <var_mproperty:MProperty> */
4100 if (unlikely(var117 == NULL)) {
4101 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
4102 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1757);
4103 show_backtrace(1);
4104 }
4105 var115 = var117;
4106 RET_LABEL116:(void)0;
4107 }
4108 }
4109 if (varonce118) {
4110 var119 = varonce118;
4111 } else {
4112 var120 = " property `";
4113 var121 = 11;
4114 var122 = standard___standard__NativeString___to_s_with_length(var120, var121);
4115 var119 = var122;
4116 varonce118 = var119;
4117 }
4118 if (varonce123) {
4119 var124 = varonce123;
4120 } else {
4121 var125 = "` cannot contain the type `";
4122 var126 = 27;
4123 var127 = standard___standard__NativeString___to_s_with_length(var125, var126);
4124 var124 = var127;
4125 varonce123 = var124;
4126 }
4127 if (varonce128) {
4128 var129 = varonce128;
4129 } else {
4130 var130 = "` from the ";
4131 var131 = 11;
4132 var132 = standard___standard__NativeString___to_s_with_length(var130, var131);
4133 var129 = var132;
4134 varonce128 = var129;
4135 }
4136 if (varonce133) {
4137 var134 = varonce133;
4138 } else {
4139 var135 = " module `";
4140 var136 = 9;
4141 var137 = standard___standard__NativeString___to_s_with_length(var135, var136);
4142 var134 = var137;
4143 varonce133 = var134;
4144 }
4145 if (varonce138) {
4146 var139 = varonce138;
4147 } else {
4148 var140 = "`";
4149 var141 = 1;
4150 var142 = standard___standard__NativeString___to_s_with_length(var140, var141);
4151 var139 = var142;
4152 varonce138 = var139;
4153 }
4154 var143 = NEW_standard__Array(&type_standard__Array__standard__Object);
4155 { /* var143 = array_instance Array[Object] */
4156 var144 = 11;
4157 var145 = NEW_standard__NativeArray(var144, &type_standard__NativeArray__standard__Object);
4158 ((struct instance_standard__NativeArray*)var145)->values[0] = (val*) var111;
4159 ((struct instance_standard__NativeArray*)var145)->values[1] = (val*) var115;
4160 ((struct instance_standard__NativeArray*)var145)->values[2] = (val*) var119;
4161 ((struct instance_standard__NativeArray*)var145)->values[3] = (val*) var_mproperty;
4162 ((struct instance_standard__NativeArray*)var145)->values[4] = (val*) var124;
4163 ((struct instance_standard__NativeArray*)var145)->values[5] = (val*) var_mtype;
4164 ((struct instance_standard__NativeArray*)var145)->values[6] = (val*) var129;
4165 ((struct instance_standard__NativeArray*)var145)->values[7] = (val*) var_vis_module_type;
4166 ((struct instance_standard__NativeArray*)var145)->values[8] = (val*) var134;
4167 ((struct instance_standard__NativeArray*)var145)->values[9] = (val*) var_mmodule_type;
4168 ((struct instance_standard__NativeArray*)var145)->values[10] = (val*) var139;
4169 {
4170 ((void (*)(val* self, val* p0, long p1))(var143->class->vft[COLOR_standard__array__Array__with_native]))(var143, var145, var144) /* with_native on <var143:Array[Object]>*/;
4171 }
4172 }
4173 {
4174 var146 = ((val* (*)(val* self))(var143->class->vft[COLOR_standard__string__Object__to_s]))(var143) /* to_s on <var143:Array[Object]>*/;
4175 }
4176 {
4177 nit___nit__ModelBuilder___error(self, var_node, var146); /* Direct call modelbuilder_base#ModelBuilder#error on <self:ModelBuilder>*/
4178 }
4179 goto RET_LABEL;
4180 } else {
4181 }
4182 }
4183 } else {
4184 }
4185 /* <var_node:ANode> isa AType */
4186 cltype148 = type_nit__AType.color;
4187 idtype149 = type_nit__AType.id;
4188 if(cltype148 >= var_node->type->table_size) {
4189 var147 = 0;
4190 } else {
4191 var147 = var_node->type->type_table[cltype148] == idtype149;
4192 }
4193 if (var147){
4194 {
4195 { /* Inline parser_nodes#AType#n_types (var_node) on <var_node:ANode(AType)> */
4196 var152 = var_node->attrs[COLOR_nit__parser_nodes__AType___n_types].val; /* _n_types on <var_node:ANode(AType)> */
4197 if (unlikely(var152 == NULL)) {
4198 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
4199 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1539);
4200 show_backtrace(1);
4201 }
4202 var150 = var152;
4203 RET_LABEL151:(void)0;
4204 }
4205 }
4206 var_ = var150;
4207 {
4208 var153 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_);
4209 }
4210 var_154 = var153;
4211 for(;;) {
4212 {
4213 var155 = ((short int (*)(val* self))(var_154->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_154) /* is_ok on <var_154:Iterator[AType]>*/;
4214 }
4215 if (var155){
4216 {
4217 var156 = ((val* (*)(val* self))(var_154->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_154) /* item on <var_154:Iterator[AType]>*/;
4218 }
4219 var_a = var156;
4220 {
4221 { /* Inline modelize_class#AType#mtype (var_a) on <var_a:AType> */
4222 var159 = var_a->attrs[COLOR_nit__modelize_class__AType___mtype].val; /* _mtype on <var_a:AType> */
4223 var157 = var159;
4224 RET_LABEL158:(void)0;
4225 }
4226 }
4227 var_t = var157;
4228 var160 = NULL;
4229 if (var_t == NULL) {
4230 var161 = 1; /* is null */
4231 } else {
4232 var161 = 0; /* arg is null but recv is not */
4233 }
4234 if (0) {
4235 { /* Inline kernel#Object#== (var_t,var160) on <var_t:nullable MType> */
4236 var_other164 = var160;
4237 {
4238 { /* Inline kernel#Object#is_same_instance (var_t,var_other164) on <var_t:nullable MType(MType)> */
4239 var167 = var_t == var_other164;
4240 var165 = var167;
4241 goto RET_LABEL166;
4242 RET_LABEL166:(void)0;
4243 }
4244 }
4245 var162 = var165;
4246 goto RET_LABEL163;
4247 RET_LABEL163:(void)0;
4248 }
4249 var161 = var162;
4250 }
4251 if (var161){
4252 goto BREAK_label;
4253 } else {
4254 }
4255 {
4256 nit__modelize_property___ModelBuilder___check_visibility(self, var_a, var_t, var_mpropdef); /* Direct call modelize_property#ModelBuilder#check_visibility on <self:ModelBuilder>*/
4257 }
4258 BREAK_label: (void)0;
4259 {
4260 ((void (*)(val* self))(var_154->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_154) /* next on <var_154:Iterator[AType]>*/;
4261 }
4262 } else {
4263 goto BREAK_label168;
4264 }
4265 }
4266 BREAK_label168: (void)0;
4267 {
4268 { /* Inline abstract_collection#Iterator#finish (var_154) on <var_154:Iterator[AType]> */
4269 RET_LABEL169:(void)0;
4270 }
4271 }
4272 } else {
4273 /* <var_mtype:MType> isa MGenericType */
4274 cltype171 = type_nit__MGenericType.color;
4275 idtype172 = type_nit__MGenericType.id;
4276 if(cltype171 >= var_mtype->type->table_size) {
4277 var170 = 0;
4278 } else {
4279 var170 = var_mtype->type->type_table[cltype171] == idtype172;
4280 }
4281 if (var170){
4282 {
4283 { /* Inline model#MGenericType#arguments (var_mtype) on <var_mtype:MType(MGenericType)> */
4284 var175 = var_mtype->attrs[COLOR_nit__model__MGenericType___arguments].val; /* _arguments on <var_mtype:MType(MGenericType)> */
4285 if (unlikely(var175 == NULL)) {
4286 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
4287 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1164);
4288 show_backtrace(1);
4289 }
4290 var173 = var175;
4291 RET_LABEL174:(void)0;
4292 }
4293 }
4294 var_176 = var173;
4295 {
4296 var177 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_176);
4297 }
4298 var_178 = var177;
4299 for(;;) {
4300 {
4301 var179 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_178);
4302 }
4303 if (var179){
4304 {
4305 var180 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_178);
4306 }
4307 var_t181 = var180;
4308 {
4309 nit__modelize_property___ModelBuilder___check_visibility(self, var_node, var_t181, var_mpropdef); /* Direct call modelize_property#ModelBuilder#check_visibility on <self:ModelBuilder>*/
4310 }
4311 {
4312 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_178); /* Direct call array#ArrayIterator#next on <var_178:ArrayIterator[MType]>*/
4313 }
4314 } else {
4315 goto BREAK_label182;
4316 }
4317 }
4318 BREAK_label182: (void)0;
4319 {
4320 { /* Inline abstract_collection#Iterator#finish (var_178) on <var_178:ArrayIterator[MType]> */
4321 RET_LABEL183:(void)0;
4322 }
4323 }
4324 } else {
4325 }
4326 }
4327 RET_LABEL:;
4328 }
4329 /* method modelize_property#MPropDef#has_supercall for (self: MPropDef): Bool */
4330 short int nit__modelize_property___MPropDef___has_supercall(val* self) {
4331 short int var /* : Bool */;
4332 short int var1 /* : Bool */;
4333 var1 = self->attrs[COLOR_nit__modelize_property__MPropDef___has_supercall].s; /* _has_supercall on <self:MPropDef> */
4334 var = var1;
4335 RET_LABEL:;
4336 return var;
4337 }
4338 /* method modelize_property#MPropDef#has_supercall= for (self: MPropDef, Bool) */
4339 void nit__modelize_property___MPropDef___has_supercall_61d(val* self, short int p0) {
4340 self->attrs[COLOR_nit__modelize_property__MPropDef___has_supercall].s = p0; /* _has_supercall on <self:MPropDef> */
4341 RET_LABEL:;
4342 }
4343 /* method modelize_property#AClassdef#build_properties_is_done for (self: AClassdef): Bool */
4344 short int nit__modelize_property___AClassdef___build_properties_is_done(val* self) {
4345 short int var /* : Bool */;
4346 short int var1 /* : Bool */;
4347 var1 = self->attrs[COLOR_nit__modelize_property__AClassdef___build_properties_is_done].s; /* _build_properties_is_done on <self:AClassdef> */
4348 var = var1;
4349 RET_LABEL:;
4350 return var;
4351 }
4352 /* method modelize_property#AClassdef#build_properties_is_done= for (self: AClassdef, Bool) */
4353 void nit__modelize_property___AClassdef___build_properties_is_done_61d(val* self, short int p0) {
4354 self->attrs[COLOR_nit__modelize_property__AClassdef___build_properties_is_done].s = p0; /* _build_properties_is_done on <self:AClassdef> */
4355 RET_LABEL:;
4356 }
4357 /* method modelize_property#AClassdef#mfree_init for (self: AClassdef): nullable MMethodDef */
4358 val* nit__modelize_property___AClassdef___mfree_init(val* self) {
4359 val* var /* : nullable MMethodDef */;
4360 val* var1 /* : nullable MMethodDef */;
4361 var1 = self->attrs[COLOR_nit__modelize_property__AClassdef___mfree_init].val; /* _mfree_init on <self:AClassdef> */
4362 var = var1;
4363 RET_LABEL:;
4364 return var;
4365 }
4366 /* method modelize_property#AClassdef#mfree_init= for (self: AClassdef, nullable MMethodDef) */
4367 void nit__modelize_property___AClassdef___mfree_init_61d(val* self, val* p0) {
4368 self->attrs[COLOR_nit__modelize_property__AClassdef___mfree_init].val = p0; /* _mfree_init on <self:AClassdef> */
4369 RET_LABEL:;
4370 }
4371 /* method modelize_property#MClass#root_init for (self: MClass): nullable MMethodDef */
4372 val* nit__modelize_property___MClass___root_init(val* self) {
4373 val* var /* : nullable MMethodDef */;
4374 val* var1 /* : nullable MMethodDef */;
4375 var1 = self->attrs[COLOR_nit__modelize_property__MClass___root_init].val; /* _root_init on <self:MClass> */
4376 var = var1;
4377 RET_LABEL:;
4378 return var;
4379 }
4380 /* method modelize_property#MClass#root_init= for (self: MClass, nullable MMethodDef) */
4381 void nit__modelize_property___MClass___root_init_61d(val* self, val* p0) {
4382 self->attrs[COLOR_nit__modelize_property__MClass___root_init].val = p0; /* _root_init on <self:MClass> */
4383 RET_LABEL:;
4384 }
4385 /* method modelize_property#MClassDef#mprop2npropdef for (self: MClassDef): Map[MProperty, APropdef] */
4386 val* nit__modelize_property___MClassDef___mprop2npropdef(val* self) {
4387 val* var /* : Map[MProperty, APropdef] */;
4388 val* var1 /* : Map[MProperty, APropdef] */;
4389 var1 = self->attrs[COLOR_nit__modelize_property__MClassDef___mprop2npropdef].val; /* _mprop2npropdef on <self:MClassDef> */
4390 if (unlikely(var1 == NULL)) {
4391 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mprop2npropdef");
4392 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 352);
4393 show_backtrace(1);
4394 }
4395 var = var1;
4396 RET_LABEL:;
4397 return var;
4398 }
4399 /* method modelize_property#MClassDef#build_self_type for (self: MClassDef, ModelBuilder, AClassdef) */
4400 void nit__modelize_property___MClassDef___build_self_type(val* self, val* p0, val* p1) {
4401 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
4402 val* var_nclassdef /* var nclassdef: AClassdef */;
4403 short int var /* : Bool */;
4404 short int var1 /* : Bool */;
4405 static val* varonce;
4406 val* var2 /* : String */;
4407 char* var3 /* : NativeString */;
4408 long var4 /* : Int */;
4409 val* var5 /* : FlatString */;
4410 val* var_name /* var name: String */;
4411 val* var6 /* : nullable MProperty */;
4412 val* var_mprop /* var mprop: nullable MProperty */;
4413 val* var7 /* : null */;
4414 short int var8 /* : Bool */;
4415 short int var9 /* : Bool */;
4416 val* var_other /* var other: nullable Object */;
4417 short int var11 /* : Bool */;
4418 short int var13 /* : Bool */;
4419 short int var14 /* : Bool */;
4420 int cltype;
4421 int idtype;
4422 short int var15 /* : Bool */;
4423 val* var16 /* : MPropDef */;
4424 val* var18 /* : MPropDef */;
4425 val* var_intro /* var intro: MVirtualTypeDef */;
4426 val* var19 /* : MClassDef */;
4427 val* var21 /* : MClassDef */;
4428 val* var_intro_mclassdef /* var intro_mclassdef: MClassDef */;
4429 short int var22 /* : Bool */;
4430 short int var24 /* : Bool */;
4431 short int var26 /* : Bool */;
4432 val* var27 /* : HashMap[MPropDef, APropdef] */;
4433 val* var29 /* : HashMap[MPropDef, APropdef] */;
4434 val* var30 /* : nullable Object */;
4435 val* var_nintro /* var nintro: APropdef */;
4436 val* var31 /* : MClass */;
4437 val* var33 /* : MClass */;
4438 val* var34 /* : String */;
4439 val* var36 /* : String */;
4440 static val* varonce37;
4441 val* var38 /* : String */;
4442 char* var39 /* : NativeString */;
4443 long var40 /* : Int */;
4444 val* var41 /* : FlatString */;
4445 short int var42 /* : Bool */;
4446 val* var_other44 /* var other: nullable Object */;
4447 short int var45 /* : Bool */;
4448 short int var46 /* : Bool */;
4449 static val* varonce47;
4450 val* var48 /* : String */;
4451 char* var49 /* : NativeString */;
4452 long var50 /* : Int */;
4453 val* var51 /* : FlatString */;
4454 val* var52 /* : MVisibility */;
4455 val* var54 /* : MVisibility */;
4456 val* var55 /* : MVisibility */;
4457 short int var56 /* : Bool */;
4458 short int var58 /* : Bool */;
4459 short int var59 /* : Bool */;
4460 static val* varonce60;
4461 val* var61 /* : String */;
4462 char* var62 /* : NativeString */;
4463 long var63 /* : Int */;
4464 val* var64 /* : FlatString */;
4465 short int var65 /* : Bool */;
4466 short int var67 /* : Bool */;
4467 static val* varonce68;
4468 val* var69 /* : String */;
4469 char* var70 /* : NativeString */;
4470 long var71 /* : Int */;
4471 val* var72 /* : FlatString */;
4472 val* var73 /* : MVirtualTypeDef */;
4473 val* var74 /* : Location */;
4474 val* var76 /* : Location */;
4475 val* var_mpropdef /* var mpropdef: MVirtualTypeDef */;
4476 val* var77 /* : MClass */;
4477 val* var79 /* : MClass */;
4478 val* var80 /* : MClassType */;
4479 val* var82 /* : MClassType */;
4480 var_modelbuilder = p0;
4481 var_nclassdef = p1;
4482 {
4483 var = nit___nit__MClassDef___is_intro(self);
4484 }
4485 var1 = !var;
4486 if (var1){
4487 goto RET_LABEL;
4488 } else {
4489 }
4490 if (varonce) {
4491 var2 = varonce;
4492 } else {
4493 var3 = "SELF";
4494 var4 = 4;
4495 var5 = standard___standard__NativeString___to_s_with_length(var3, var4);
4496 var2 = var5;
4497 varonce = var2;
4498 }
4499 var_name = var2;
4500 {
4501 var6 = nit___nit__ModelBuilder___try_get_mproperty_by_name(var_modelbuilder, var_nclassdef, self, var_name);
4502 }
4503 var_mprop = var6;
4504 var7 = NULL;
4505 if (var_mprop == NULL) {
4506 var8 = 1; /* is null */
4507 } else {
4508 var8 = 0; /* arg is null but recv is not */
4509 }
4510 if (0) {
4511 { /* Inline kernel#Object#== (var_mprop,var7) on <var_mprop:nullable MProperty> */
4512 var_other = var7;
4513 {
4514 { /* Inline kernel#Object#is_same_instance (var_mprop,var_other) on <var_mprop:nullable MProperty(MProperty)> */
4515 var13 = var_mprop == var_other;
4516 var11 = var13;
4517 goto RET_LABEL12;
4518 RET_LABEL12:(void)0;
4519 }
4520 }
4521 var9 = var11;
4522 goto RET_LABEL10;
4523 RET_LABEL10:(void)0;
4524 }
4525 var8 = var9;
4526 }
4527 if (var8){
4528 goto RET_LABEL;
4529 } else {
4530 }
4531 /* <var_mprop:nullable MProperty(MProperty)> isa MVirtualTypeProp */
4532 cltype = type_nit__MVirtualTypeProp.color;
4533 idtype = type_nit__MVirtualTypeProp.id;
4534 if(cltype >= var_mprop->type->table_size) {
4535 var14 = 0;
4536 } else {
4537 var14 = var_mprop->type->type_table[cltype] == idtype;
4538 }
4539 var15 = !var14;
4540 if (var15){
4541 goto RET_LABEL;
4542 } else {
4543 }
4544 {
4545 { /* Inline model#MProperty#intro (var_mprop) on <var_mprop:nullable MProperty(MVirtualTypeProp)> */
4546 var18 = var_mprop->attrs[COLOR_nit__model__MProperty___intro].val; /* _intro on <var_mprop:nullable MProperty(MVirtualTypeProp)> */
4547 if (unlikely(var18 == NULL)) {
4548 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4549 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1773);
4550 show_backtrace(1);
4551 }
4552 var16 = var18;
4553 RET_LABEL17:(void)0;
4554 }
4555 }
4556 var_intro = var16;
4557 {
4558 { /* Inline model#MPropDef#mclassdef (var_intro) on <var_intro:MVirtualTypeDef> */
4559 var21 = var_intro->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var_intro:MVirtualTypeDef> */
4560 if (unlikely(var21 == NULL)) {
4561 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
4562 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010);
4563 show_backtrace(1);
4564 }
4565 var19 = var21;
4566 RET_LABEL20:(void)0;
4567 }
4568 }
4569 var_intro_mclassdef = var19;
4570 {
4571 { /* Inline kernel#Object#== (var_intro_mclassdef,self) on <var_intro_mclassdef:MClassDef> */
4572 var_other = self;
4573 {
4574 { /* Inline kernel#Object#is_same_instance (var_intro_mclassdef,var_other) on <var_intro_mclassdef:MClassDef> */
4575 var26 = var_intro_mclassdef == var_other;
4576 var24 = var26;
4577 goto RET_LABEL25;
4578 RET_LABEL25:(void)0;
4579 }
4580 }
4581 var22 = var24;
4582 goto RET_LABEL23;
4583 RET_LABEL23:(void)0;
4584 }
4585 }
4586 if (var22){
4587 {
4588 { /* Inline modelize_property#ModelBuilder#mpropdef2npropdef (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
4589 var29 = var_modelbuilder->attrs[COLOR_nit__modelize_property__ModelBuilder___mpropdef2npropdef].val; /* _mpropdef2npropdef on <var_modelbuilder:ModelBuilder> */
4590 if (unlikely(var29 == NULL)) {
4591 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
4592 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 40);
4593 show_backtrace(1);
4594 }
4595 var27 = var29;
4596 RET_LABEL28:(void)0;
4597 }
4598 }
4599 {
4600 var30 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var27, var_intro);
4601 }
4602 var_nintro = var30;
4603 {
4604 { /* Inline model#MClassDef#mclass (var_intro_mclassdef) on <var_intro_mclassdef:MClassDef> */
4605 var33 = var_intro_mclassdef->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var_intro_mclassdef:MClassDef> */
4606 if (unlikely(var33 == NULL)) {
4607 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4608 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
4609 show_backtrace(1);
4610 }
4611 var31 = var33;
4612 RET_LABEL32:(void)0;
4613 }
4614 }
4615 {
4616 { /* Inline model#MClass#name (var31) on <var31:MClass> */
4617 var36 = var31->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var31:MClass> */
4618 if (unlikely(var36 == NULL)) {
4619 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4620 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
4621 show_backtrace(1);
4622 }
4623 var34 = var36;
4624 RET_LABEL35:(void)0;
4625 }
4626 }
4627 if (varonce37) {
4628 var38 = varonce37;
4629 } else {
4630 var39 = "Object";
4631 var40 = 6;
4632 var41 = standard___standard__NativeString___to_s_with_length(var39, var40);
4633 var38 = var41;
4634 varonce37 = var38;
4635 }
4636 {
4637 { /* Inline kernel#Object#!= (var34,var38) on <var34:String> */
4638 var_other44 = var38;
4639 {
4640 var45 = ((short int (*)(val* self, val* p0))(var34->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var34, var_other44) /* == on <var34:String>*/;
4641 }
4642 var46 = !var45;
4643 var42 = var46;
4644 goto RET_LABEL43;
4645 RET_LABEL43:(void)0;
4646 }
4647 }
4648 if (var42){
4649 if (varonce47) {
4650 var48 = varonce47;
4651 } else {
4652 var49 = "Error: the virtual type SELF must be declared in Object.";
4653 var50 = 56;
4654 var51 = standard___standard__NativeString___to_s_with_length(var49, var50);
4655 var48 = var51;
4656 varonce47 = var48;
4657 }
4658 {
4659 nit___nit__ModelBuilder___error(var_modelbuilder, var_nintro, var48); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
4660 }
4661 } else {
4662 }
4663 {
4664 { /* Inline model#MProperty#visibility (var_mprop) on <var_mprop:nullable MProperty(MVirtualTypeProp)> */
4665 var54 = var_mprop->attrs[COLOR_nit__model__MProperty___visibility].val; /* _visibility on <var_mprop:nullable MProperty(MVirtualTypeProp)> */
4666 if (unlikely(var54 == NULL)) {
4667 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
4668 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1757);
4669 show_backtrace(1);
4670 }
4671 var52 = var54;
4672 RET_LABEL53:(void)0;
4673 }
4674 }
4675 {
4676 var55 = nit__model_base___standard__Object___public_visibility(self);
4677 }
4678 {
4679 { /* Inline kernel#Object#!= (var52,var55) on <var52:MVisibility> */
4680 var_other44 = var55;
4681 {
4682 var58 = ((short int (*)(val* self, val* p0))(var52->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var52, var_other44) /* == on <var52:MVisibility>*/;
4683 }
4684 var59 = !var58;
4685 var56 = var59;
4686 goto RET_LABEL57;
4687 RET_LABEL57:(void)0;
4688 }
4689 }
4690 if (var56){
4691 if (varonce60) {
4692 var61 = varonce60;
4693 } else {
4694 var62 = "Error: the virtual type SELF must be public.";
4695 var63 = 44;
4696 var64 = standard___standard__NativeString___to_s_with_length(var62, var63);
4697 var61 = var64;
4698 varonce60 = var61;
4699 }
4700 {
4701 nit___nit__ModelBuilder___error(var_modelbuilder, var_nintro, var61); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
4702 }
4703 } else {
4704 }
4705 {
4706 { /* Inline model#MVirtualTypeDef#is_fixed (var_intro) on <var_intro:MVirtualTypeDef> */
4707 var67 = var_intro->attrs[COLOR_nit__model__MVirtualTypeDef___is_fixed].s; /* _is_fixed on <var_intro:MVirtualTypeDef> */
4708 var65 = var67;
4709 RET_LABEL66:(void)0;
4710 }
4711 }
4712 if (var65){
4713 if (varonce68) {
4714 var69 = varonce68;
4715 } else {
4716 var70 = "Error: the virtual type SELF cannot be fixed.";
4717 var71 = 45;
4718 var72 = standard___standard__NativeString___to_s_with_length(var70, var71);
4719 var69 = var72;
4720 varonce68 = var69;
4721 }
4722 {
4723 nit___nit__ModelBuilder___error(var_modelbuilder, var_nintro, var69); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
4724 }
4725 } else {
4726 }
4727 goto RET_LABEL;
4728 } else {
4729 }
4730 var73 = NEW_nit__MVirtualTypeDef(&type_nit__MVirtualTypeDef);
4731 {
4732 { /* Inline model#MClassDef#location (self) on <self:MClassDef> */
4733 var76 = self->attrs[COLOR_nit__model__MClassDef___location].val; /* _location on <self:MClassDef> */
4734 if (unlikely(var76 == NULL)) {
4735 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
4736 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 507);
4737 show_backtrace(1);
4738 }
4739 var74 = var76;
4740 RET_LABEL75:(void)0;
4741 }
4742 }
4743 {
4744 ((void (*)(val* self, val* p0))(var73->class->vft[COLOR_nit__model__MPropDef__mclassdef_61d]))(var73, self) /* mclassdef= on <var73:MVirtualTypeDef>*/;
4745 }
4746 {
4747 ((void (*)(val* self, val* p0))(var73->class->vft[COLOR_nit__model__MPropDef__mproperty_61d]))(var73, var_mprop) /* mproperty= on <var73:MVirtualTypeDef>*/;
4748 }
4749 {
4750 ((void (*)(val* self, val* p0))(var73->class->vft[COLOR_nit__model__MPropDef__location_61d]))(var73, var74) /* location= on <var73:MVirtualTypeDef>*/;
4751 }
4752 {
4753 ((void (*)(val* self))(var73->class->vft[COLOR_standard__kernel__Object__init]))(var73) /* init on <var73:MVirtualTypeDef>*/;
4754 }
4755 var_mpropdef = var73;
4756 {
4757 { /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
4758 var79 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <self:MClassDef> */
4759 if (unlikely(var79 == NULL)) {
4760 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4761 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
4762 show_backtrace(1);
4763 }
4764 var77 = var79;
4765 RET_LABEL78:(void)0;
4766 }
4767 }
4768 {
4769 { /* Inline model#MClass#mclass_type (var77) on <var77:MClass> */
4770 var82 = var77->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on <var77:MClass> */
4771 if (unlikely(var82 == NULL)) {
4772 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
4773 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438);
4774 show_backtrace(1);
4775 }
4776 var80 = var82;
4777 RET_LABEL81:(void)0;
4778 }
4779 }
4780 {
4781 { /* Inline model#MVirtualTypeDef#bound= (var_mpropdef,var80) on <var_mpropdef:MVirtualTypeDef> */
4782 var_mpropdef->attrs[COLOR_nit__model__MVirtualTypeDef___bound].val = var80; /* _bound on <var_mpropdef:MVirtualTypeDef> */
4783 RET_LABEL83:(void)0;
4784 }
4785 }
4786 RET_LABEL:;
4787 }
4788 /* method modelize_property#APropdef#mpropdef for (self: APropdef): nullable MPropDef */
4789 val* nit__modelize_property___APropdef___mpropdef(val* self) {
4790 val* var /* : nullable MPropDef */;
4791 val* var1 /* : nullable MPropDef */;
4792 var1 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:APropdef> */
4793 var = var1;
4794 RET_LABEL:;
4795 return var;
4796 }
4797 /* method modelize_property#APropdef#mpropdef= for (self: APropdef, nullable MPropDef) */
4798 void nit__modelize_property___APropdef___mpropdef_61d(val* self, val* p0) {
4799 short int var /* : Bool */;
4800 int cltype;
4801 int idtype;
4802 const struct type* type_struct;
4803 const char* var_class_name;
4804 /* Covariant cast for argument 0 (mpropdef) <p0:nullable MPropDef> isa nullable MPROPDEF */
4805 /* <p0:nullable MPropDef> isa nullable MPROPDEF */
4806 type_struct = self->type->resolution_table->types[COLOR_nullable__nit__modelize_property__APropdef__MPROPDEF];
4807 cltype = type_struct->color;
4808 idtype = type_struct->id;
4809 if(p0 == NULL) {
4810 var = 1;
4811 } else {
4812 if(cltype >= p0->type->table_size) {
4813 var = 0;
4814 } else {
4815 var = p0->type->type_table[cltype] == idtype;
4816 }
4817 }
4818 if (unlikely(!var)) {
4819 var_class_name = p0 == NULL ? "null" : p0->type->name;
4820 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name);
4821 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 405);
4822 show_backtrace(1);
4823 }
4824 self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val = p0; /* _mpropdef on <self:APropdef> */
4825 RET_LABEL:;
4826 }
4827 /* method modelize_property#APropdef#new_property_visibility for (self: APropdef, ModelBuilder, MClassDef, nullable AVisibility): MVisibility */
4828 val* nit__modelize_property___APropdef___new_property_visibility(val* self, val* p0, val* p1, val* p2) {
4829 val* var /* : MVisibility */;
4830 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
4831 val* var_mclassdef /* var mclassdef: MClassDef */;
4832 val* var_nvisibility /* var nvisibility: nullable AVisibility */;
4833 val* var1 /* : MVisibility */;
4834 val* var_mvisibility /* var mvisibility: MVisibility */;
4835 val* var2 /* : null */;
4836 short int var3 /* : Bool */;
4837 short int var4 /* : Bool */;
4838 val* var_other /* var other: nullable Object */;
4839 short int var6 /* : Bool */;
4840 short int var7 /* : Bool */;
4841 val* var8 /* : MVisibility */;
4842 val* var9 /* : MVisibility */;
4843 short int var10 /* : Bool */;
4844 val* var_other12 /* var other: nullable Object */;
4845 short int var13 /* : Bool */;
4846 short int var15 /* : Bool */;
4847 static val* varonce;
4848 val* var16 /* : String */;
4849 char* var17 /* : NativeString */;
4850 long var18 /* : Int */;
4851 val* var19 /* : FlatString */;
4852 val* var20 /* : MVisibility */;
4853 val* var21 /* : MClass */;
4854 val* var23 /* : MClass */;
4855 val* var24 /* : MVisibility */;
4856 val* var26 /* : MVisibility */;
4857 val* var27 /* : MVisibility */;
4858 short int var28 /* : Bool */;
4859 short int var30 /* : Bool */;
4860 short int var32 /* : Bool */;
4861 val* var33 /* : MVisibility */;
4862 short int var34 /* : Bool */;
4863 short int var36 /* : Bool */;
4864 short int var38 /* : Bool */;
4865 val* var39 /* : null */;
4866 short int var40 /* : Bool */;
4867 short int var41 /* : Bool */;
4868 short int var43 /* : Bool */;
4869 short int var44 /* : Bool */;
4870 static val* varonce45;
4871 val* var46 /* : String */;
4872 char* var47 /* : NativeString */;
4873 long var48 /* : Int */;
4874 val* var49 /* : FlatString */;
4875 val* var50 /* : MVisibility */;
4876 short int var51 /* : Bool */;
4877 short int var53 /* : Bool */;
4878 short int var55 /* : Bool */;
4879 val* var56 /* : null */;
4880 short int var57 /* : Bool */;
4881 short int var58 /* : Bool */;
4882 short int var60 /* : Bool */;
4883 short int var61 /* : Bool */;
4884 static val* varonce62;
4885 val* var63 /* : String */;
4886 char* var64 /* : NativeString */;
4887 long var65 /* : Int */;
4888 val* var66 /* : FlatString */;
4889 static val* varonce67;
4890 val* var68 /* : String */;
4891 char* var69 /* : NativeString */;
4892 long var70 /* : Int */;
4893 val* var71 /* : FlatString */;
4894 val* var72 /* : MVisibility */;
4895 var_modelbuilder = p0;
4896 var_mclassdef = p1;
4897 var_nvisibility = p2;
4898 {
4899 var1 = nit__model_base___standard__Object___public_visibility(self);
4900 }
4901 var_mvisibility = var1;
4902 var2 = NULL;
4903 if (var_nvisibility == NULL) {
4904 var3 = 0; /* is null */
4905 } else {
4906 var3 = 1; /* arg is null and recv is not */
4907 }
4908 if (0) {
4909 { /* Inline kernel#Object#!= (var_nvisibility,var2) on <var_nvisibility:nullable AVisibility> */
4910 var_other = var2;
4911 {
4912 var6 = ((short int (*)(val* self, val* p0))(var_nvisibility->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nvisibility, var_other) /* == on <var_nvisibility:nullable AVisibility(AVisibility)>*/;
4913 }
4914 var7 = !var6;
4915 var4 = var7;
4916 goto RET_LABEL5;
4917 RET_LABEL5:(void)0;
4918 }
4919 var3 = var4;
4920 }
4921 if (var3){
4922 {
4923 var8 = ((val* (*)(val* self))(var_nvisibility->class->vft[COLOR_nit__modelbuilder_base__AVisibility__mvisibility]))(var_nvisibility) /* mvisibility on <var_nvisibility:nullable AVisibility(AVisibility)>*/;
4924 }
4925 var_mvisibility = var8;
4926 {
4927 var9 = nit__model_base___standard__Object___intrude_visibility(self);
4928 }
4929 {
4930 { /* Inline kernel#Object#== (var_mvisibility,var9) on <var_mvisibility:MVisibility> */
4931 var_other12 = var9;
4932 {
4933 { /* Inline kernel#Object#is_same_instance (var_mvisibility,var_other12) on <var_mvisibility:MVisibility> */
4934 var15 = var_mvisibility == var_other12;
4935 var13 = var15;
4936 goto RET_LABEL14;
4937 RET_LABEL14:(void)0;
4938 }
4939 }
4940 var10 = var13;
4941 goto RET_LABEL11;
4942 RET_LABEL11:(void)0;
4943 }
4944 }
4945 if (var10){
4946 if (varonce) {
4947 var16 = varonce;
4948 } else {
4949 var17 = "Error: intrude is not a legal visibility for properties.";
4950 var18 = 56;
4951 var19 = standard___standard__NativeString___to_s_with_length(var17, var18);
4952 var16 = var19;
4953 varonce = var16;
4954 }
4955 {
4956 nit___nit__ModelBuilder___error(var_modelbuilder, var_nvisibility, var16); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
4957 }
4958 {
4959 var20 = nit__model_base___standard__Object___public_visibility(self);
4960 }
4961 var_mvisibility = var20;
4962 } else {
4963 }
4964 } else {
4965 }
4966 {
4967 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
4968 var23 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
4969 if (unlikely(var23 == NULL)) {
4970 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4971 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
4972 show_backtrace(1);
4973 }
4974 var21 = var23;
4975 RET_LABEL22:(void)0;
4976 }
4977 }
4978 {
4979 { /* Inline model#MClass#visibility (var21) on <var21:MClass> */
4980 var26 = var21->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on <var21:MClass> */
4981 if (unlikely(var26 == NULL)) {
4982 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
4983 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 403);
4984 show_backtrace(1);
4985 }
4986 var24 = var26;
4987 RET_LABEL25:(void)0;
4988 }
4989 }
4990 {
4991 var27 = nit__model_base___standard__Object___private_visibility(self);
4992 }
4993 {
4994 { /* Inline kernel#Object#== (var24,var27) on <var24:MVisibility> */
4995 var_other12 = var27;
4996 {
4997 { /* Inline kernel#Object#is_same_instance (var24,var_other12) on <var24:MVisibility> */
4998 var32 = var24 == var_other12;
4999 var30 = var32;
5000 goto RET_LABEL31;
5001 RET_LABEL31:(void)0;
5002 }
5003 }
5004 var28 = var30;
5005 goto RET_LABEL29;
5006 RET_LABEL29:(void)0;
5007 }
5008 }
5009 if (var28){
5010 {
5011 var33 = nit__model_base___standard__Object___protected_visibility(self);
5012 }
5013 {
5014 { /* Inline kernel#Object#== (var_mvisibility,var33) on <var_mvisibility:MVisibility> */
5015 var_other12 = var33;
5016 {
5017 { /* Inline kernel#Object#is_same_instance (var_mvisibility,var_other12) on <var_mvisibility:MVisibility> */
5018 var38 = var_mvisibility == var_other12;
5019 var36 = var38;
5020 goto RET_LABEL37;
5021 RET_LABEL37:(void)0;
5022 }
5023 }
5024 var34 = var36;
5025 goto RET_LABEL35;
5026 RET_LABEL35:(void)0;
5027 }
5028 }
5029 if (var34){
5030 var39 = NULL;
5031 if (var_nvisibility == NULL) {
5032 var40 = 0; /* is null */
5033 } else {
5034 var40 = 1; /* arg is null and recv is not */
5035 }
5036 if (0) {
5037 { /* Inline kernel#Object#!= (var_nvisibility,var39) on <var_nvisibility:nullable AVisibility> */
5038 var_other = var39;
5039 {
5040 var43 = ((short int (*)(val* self, val* p0))(var_nvisibility->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nvisibility, var_other) /* == on <var_nvisibility:nullable AVisibility(AVisibility)>*/;
5041 }
5042 var44 = !var43;
5043 var41 = var44;
5044 goto RET_LABEL42;
5045 RET_LABEL42:(void)0;
5046 }
5047 var40 = var41;
5048 }
5049 if (unlikely(!var40)) {
5050 PRINT_ERROR("Runtime error: %s", "Assert failed");
5051 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 423);
5052 show_backtrace(1);
5053 }
5054 if (varonce45) {
5055 var46 = varonce45;
5056 } else {
5057 var47 = "Error: The only legal visibility for properties in a private class is private.";
5058 var48 = 78;
5059 var49 = standard___standard__NativeString___to_s_with_length(var47, var48);
5060 var46 = var49;
5061 varonce45 = var46;
5062 }
5063 {
5064 nit___nit__ModelBuilder___error(var_modelbuilder, var_nvisibility, var46); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
5065 }
5066 } else {
5067 {
5068 var50 = nit__model_base___standard__Object___private_visibility(self);
5069 }
5070 {
5071 { /* Inline kernel#Object#== (var_mvisibility,var50) on <var_mvisibility:MVisibility> */
5072 var_other12 = var50;
5073 {
5074 { /* Inline kernel#Object#is_same_instance (var_mvisibility,var_other12) on <var_mvisibility:MVisibility> */
5075 var55 = var_mvisibility == var_other12;
5076 var53 = var55;
5077 goto RET_LABEL54;
5078 RET_LABEL54:(void)0;
5079 }
5080 }
5081 var51 = var53;
5082 goto RET_LABEL52;
5083 RET_LABEL52:(void)0;
5084 }
5085 }
5086 if (var51){
5087 var56 = NULL;
5088 if (var_nvisibility == NULL) {
5089 var57 = 0; /* is null */
5090 } else {
5091 var57 = 1; /* arg is null and recv is not */
5092 }
5093 if (0) {
5094 { /* Inline kernel#Object#!= (var_nvisibility,var56) on <var_nvisibility:nullable AVisibility> */
5095 var_other = var56;
5096 {
5097 var60 = ((short int (*)(val* self, val* p0))(var_nvisibility->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nvisibility, var_other) /* == on <var_nvisibility:nullable AVisibility(AVisibility)>*/;
5098 }
5099 var61 = !var60;
5100 var58 = var61;
5101 goto RET_LABEL59;
5102 RET_LABEL59:(void)0;
5103 }
5104 var57 = var58;
5105 }
5106 if (unlikely(!var57)) {
5107 PRINT_ERROR("Runtime error: %s", "Assert failed");
5108 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 426);
5109 show_backtrace(1);
5110 }
5111 if (varonce62) {
5112 var63 = varonce62;
5113 } else {
5114 var64 = "useless-visibility";
5115 var65 = 18;
5116 var66 = standard___standard__NativeString___to_s_with_length(var64, var65);
5117 var63 = var66;
5118 varonce62 = var63;
5119 }
5120 if (varonce67) {
5121 var68 = varonce67;
5122 } else {
5123 var69 = "Warning: private is superfluous since the only legal visibility for properties in a private class is private.";
5124 var70 = 109;
5125 var71 = standard___standard__NativeString___to_s_with_length(var69, var70);
5126 var68 = var71;
5127 varonce67 = var68;
5128 }
5129 {
5130 nit___nit__ModelBuilder___advice(var_modelbuilder, var_nvisibility, var63, var68); /* Direct call modelbuilder_base#ModelBuilder#advice on <var_modelbuilder:ModelBuilder>*/
5131 }
5132 } else {
5133 }
5134 }
5135 {
5136 var72 = nit__model_base___standard__Object___private_visibility(self);
5137 }
5138 var_mvisibility = var72;
5139 } else {
5140 }
5141 var = var_mvisibility;
5142 goto RET_LABEL;
5143 RET_LABEL:;
5144 return var;
5145 }
5146 /* method modelize_property#APropdef#set_doc for (self: APropdef, MPropDef, ModelBuilder) */
5147 void nit__modelize_property___APropdef___set_doc(val* self, val* p0, val* p1) {
5148 val* var_mpropdef /* var mpropdef: MPropDef */;
5149 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
5150 val* var /* : nullable ADoc */;
5151 val* var2 /* : nullable ADoc */;
5152 val* var_ndoc /* var ndoc: nullable ADoc */;
5153 val* var3 /* : null */;
5154 short int var4 /* : Bool */;
5155 short int var5 /* : Bool */;
5156 val* var_other /* var other: nullable Object */;
5157 short int var7 /* : Bool */;
5158 short int var8 /* : Bool */;
5159 val* var9 /* : MDoc */;
5160 val* var_mdoc /* var mdoc: MDoc */;
5161 short int var12 /* : Bool */;
5162 short int var13 /* : Bool */;
5163 short int var_ /* var : Bool */;
5164 val* var14 /* : MProperty */;
5165 val* var16 /* : MProperty */;
5166 val* var17 /* : MVisibility */;
5167 val* var19 /* : MVisibility */;
5168 val* var20 /* : MVisibility */;
5169 short int var21 /* : Bool */;
5170 static val* varonce;
5171 val* var22 /* : String */;
5172 char* var23 /* : NativeString */;
5173 long var24 /* : Int */;
5174 val* var25 /* : FlatString */;
5175 static val* varonce26;
5176 val* var27 /* : String */;
5177 char* var28 /* : NativeString */;
5178 long var29 /* : Int */;
5179 val* var30 /* : FlatString */;
5180 val* var31 /* : MProperty */;
5181 val* var33 /* : MProperty */;
5182 static val* varonce34;
5183 val* var35 /* : String */;
5184 char* var36 /* : NativeString */;
5185 long var37 /* : Int */;
5186 val* var38 /* : FlatString */;
5187 val* var39 /* : Array[Object] */;
5188 long var40 /* : Int */;
5189 val* var41 /* : NativeArray[Object] */;
5190 val* var42 /* : String */;
5191 static val* varonce43;
5192 val* var44 /* : String */;
5193 char* var45 /* : NativeString */;
5194 long var46 /* : Int */;
5195 val* var47 /* : FlatString */;
5196 val* var48 /* : nullable AAnnotation */;
5197 val* var_at_deprecated /* var at_deprecated: nullable AAnnotation */;
5198 val* var49 /* : null */;
5199 short int var50 /* : Bool */;
5200 short int var51 /* : Bool */;
5201 short int var53 /* : Bool */;
5202 short int var54 /* : Bool */;
5203 short int var55 /* : Bool */;
5204 short int var56 /* : Bool */;
5205 static val* varonce57;
5206 val* var58 /* : String */;
5207 char* var59 /* : NativeString */;
5208 long var60 /* : Int */;
5209 val* var61 /* : FlatString */;
5210 val* var62 /* : MDeprecationInfo */;
5211 val* var_info /* var info: MDeprecationInfo */;
5212 val* var64 /* : nullable ADoc */;
5213 val* var66 /* : nullable ADoc */;
5214 val* var67 /* : null */;
5215 short int var68 /* : Bool */;
5216 short int var69 /* : Bool */;
5217 short int var71 /* : Bool */;
5218 short int var72 /* : Bool */;
5219 val* var73 /* : MDoc */;
5220 val* var75 /* : MProperty */;
5221 val* var77 /* : MProperty */;
5222 var_mpropdef = p0;
5223 var_modelbuilder = p1;
5224 {
5225 { /* Inline parser_nodes#ADefinition#n_doc (self) on <self:APropdef> */
5226 var2 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val; /* _n_doc on <self:APropdef> */
5227 var = var2;
5228 RET_LABEL1:(void)0;
5229 }
5230 }
5231 var_ndoc = var;
5232 var3 = NULL;
5233 if (var_ndoc == NULL) {
5234 var4 = 0; /* is null */
5235 } else {
5236 var4 = 1; /* arg is null and recv is not */
5237 }
5238 if (0) {
5239 { /* Inline kernel#Object#!= (var_ndoc,var3) on <var_ndoc:nullable ADoc> */
5240 var_other = var3;
5241 {
5242 var7 = ((short int (*)(val* self, val* p0))(var_ndoc->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ndoc, var_other) /* == on <var_ndoc:nullable ADoc(ADoc)>*/;
5243 }
5244 var8 = !var7;
5245 var5 = var8;
5246 goto RET_LABEL6;
5247 RET_LABEL6:(void)0;
5248 }
5249 var4 = var5;
5250 }
5251 if (var4){
5252 {
5253 var9 = nit__modelbuilder_base___ADoc___to_mdoc(var_ndoc);
5254 }
5255 var_mdoc = var9;
5256 {
5257 { /* Inline mdoc#MEntity#mdoc= (var_mpropdef,var_mdoc) on <var_mpropdef:MPropDef> */
5258 var_mpropdef->attrs[COLOR_nit__mdoc__MEntity___mdoc].val = var_mdoc; /* _mdoc on <var_mpropdef:MPropDef> */
5259 RET_LABEL10:(void)0;
5260 }
5261 }
5262 {
5263 { /* Inline mdoc#MDoc#original_mentity= (var_mdoc,var_mpropdef) on <var_mdoc:MDoc> */
5264 var_mdoc->attrs[COLOR_nit__mdoc__MDoc___original_mentity].val = var_mpropdef; /* _original_mentity on <var_mdoc:MDoc> */
5265 RET_LABEL11:(void)0;
5266 }
5267 }
5268 } else {
5269 {
5270 var13 = nit___nit__MPropDef___is_intro(var_mpropdef);
5271 }
5272 var_ = var13;
5273 if (var13){
5274 {
5275 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MPropDef> */
5276 var16 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MPropDef> */
5277 if (unlikely(var16 == NULL)) {
5278 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5279 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
5280 show_backtrace(1);
5281 }
5282 var14 = var16;
5283 RET_LABEL15:(void)0;
5284 }
5285 }
5286 {
5287 { /* Inline model#MProperty#visibility (var14) on <var14:MProperty> */
5288 var19 = var14->attrs[COLOR_nit__model__MProperty___visibility].val; /* _visibility on <var14:MProperty> */
5289 if (unlikely(var19 == NULL)) {
5290 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
5291 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1757);
5292 show_backtrace(1);
5293 }
5294 var17 = var19;
5295 RET_LABEL18:(void)0;
5296 }
5297 }
5298 {
5299 var20 = nit__model_base___standard__Object___protected_visibility(self);
5300 }
5301 {
5302 var21 = standard___standard__Comparable____62d_61d(var17, var20);
5303 }
5304 var12 = var21;
5305 } else {
5306 var12 = var_;
5307 }
5308 if (var12){
5309 if (varonce) {
5310 var22 = varonce;
5311 } else {
5312 var23 = "missing-doc";
5313 var24 = 11;
5314 var25 = standard___standard__NativeString___to_s_with_length(var23, var24);
5315 var22 = var25;
5316 varonce = var22;
5317 }
5318 if (varonce26) {
5319 var27 = varonce26;
5320 } else {
5321 var28 = "Documentation warning: Undocumented property `";
5322 var29 = 46;
5323 var30 = standard___standard__NativeString___to_s_with_length(var28, var29);
5324 var27 = var30;
5325 varonce26 = var27;
5326 }
5327 {
5328 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MPropDef> */
5329 var33 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MPropDef> */
5330 if (unlikely(var33 == NULL)) {
5331 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5332 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
5333 show_backtrace(1);
5334 }
5335 var31 = var33;
5336 RET_LABEL32:(void)0;
5337 }
5338 }
5339 if (varonce34) {
5340 var35 = varonce34;
5341 } else {
5342 var36 = "`";
5343 var37 = 1;
5344 var38 = standard___standard__NativeString___to_s_with_length(var36, var37);
5345 var35 = var38;
5346 varonce34 = var35;
5347 }
5348 var39 = NEW_standard__Array(&type_standard__Array__standard__Object);
5349 { /* var39 = array_instance Array[Object] */
5350 var40 = 3;
5351 var41 = NEW_standard__NativeArray(var40, &type_standard__NativeArray__standard__Object);
5352 ((struct instance_standard__NativeArray*)var41)->values[0] = (val*) var27;
5353 ((struct instance_standard__NativeArray*)var41)->values[1] = (val*) var31;
5354 ((struct instance_standard__NativeArray*)var41)->values[2] = (val*) var35;
5355 {
5356 ((void (*)(val* self, val* p0, long p1))(var39->class->vft[COLOR_standard__array__Array__with_native]))(var39, var41, var40) /* with_native on <var39:Array[Object]>*/;
5357 }
5358 }
5359 {
5360 var42 = ((val* (*)(val* self))(var39->class->vft[COLOR_standard__string__Object__to_s]))(var39) /* to_s on <var39:Array[Object]>*/;
5361 }
5362 {
5363 nit___nit__ModelBuilder___advice(var_modelbuilder, self, var22, var42); /* Direct call modelbuilder_base#ModelBuilder#advice on <var_modelbuilder:ModelBuilder>*/
5364 }
5365 } else {
5366 }
5367 }
5368 if (varonce43) {
5369 var44 = varonce43;
5370 } else {
5371 var45 = "deprecated";
5372 var46 = 10;
5373 var47 = standard___standard__NativeString___to_s_with_length(var45, var46);
5374 var44 = var47;
5375 varonce43 = var44;
5376 }
5377 {
5378 var48 = nit__annotation___Prod___get_single_annotation(self, var44, var_modelbuilder);
5379 }
5380 var_at_deprecated = var48;
5381 var49 = NULL;
5382 if (var_at_deprecated == NULL) {
5383 var50 = 0; /* is null */
5384 } else {
5385 var50 = 1; /* arg is null and recv is not */
5386 }
5387 if (0) {
5388 { /* Inline kernel#Object#!= (var_at_deprecated,var49) on <var_at_deprecated:nullable AAnnotation> */
5389 var_other = var49;
5390 {
5391 var53 = ((short int (*)(val* self, val* p0))(var_at_deprecated->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_at_deprecated, var_other) /* == on <var_at_deprecated:nullable AAnnotation(AAnnotation)>*/;
5392 }
5393 var54 = !var53;
5394 var51 = var54;
5395 goto RET_LABEL52;
5396 RET_LABEL52:(void)0;
5397 }
5398 var50 = var51;
5399 }
5400 if (var50){
5401 {
5402 var55 = nit___nit__MPropDef___is_intro(var_mpropdef);
5403 }
5404 var56 = !var55;
5405 if (var56){
5406 if (varonce57) {
5407 var58 = varonce57;
5408 } else {
5409 var59 = "Error: method redefinition cannot be deprecated.";
5410 var60 = 48;
5411 var61 = standard___standard__NativeString___to_s_with_length(var59, var60);
5412 var58 = var61;
5413 varonce57 = var58;
5414 }
5415 {
5416 nit___nit__ModelBuilder___error(var_modelbuilder, self, var58); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
5417 }
5418 } else {
5419 var62 = NEW_nit__MDeprecationInfo(&type_nit__MDeprecationInfo);
5420 {
5421 { /* Inline kernel#Object#init (var62) on <var62:MDeprecationInfo> */
5422 RET_LABEL63:(void)0;
5423 }
5424 }
5425 var_info = var62;
5426 {
5427 { /* Inline parser_nodes#ADefinition#n_doc (var_at_deprecated) on <var_at_deprecated:nullable AAnnotation(AAnnotation)> */
5428 var66 = var_at_deprecated->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val; /* _n_doc on <var_at_deprecated:nullable AAnnotation(AAnnotation)> */
5429 var64 = var66;
5430 RET_LABEL65:(void)0;
5431 }
5432 }
5433 var_ndoc = var64;
5434 var67 = NULL;
5435 if (var_ndoc == NULL) {
5436 var68 = 0; /* is null */
5437 } else {
5438 var68 = 1; /* arg is null and recv is not */
5439 }
5440 if (0) {
5441 { /* Inline kernel#Object#!= (var_ndoc,var67) on <var_ndoc:nullable ADoc> */
5442 var_other = var67;
5443 {
5444 var71 = ((short int (*)(val* self, val* p0))(var_ndoc->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ndoc, var_other) /* == on <var_ndoc:nullable ADoc(ADoc)>*/;
5445 }
5446 var72 = !var71;
5447 var69 = var72;
5448 goto RET_LABEL70;
5449 RET_LABEL70:(void)0;
5450 }
5451 var68 = var69;
5452 }
5453 if (var68){
5454 {
5455 var73 = nit__modelbuilder_base___ADoc___to_mdoc(var_ndoc);
5456 }
5457 {
5458 { /* Inline mdoc#MDeprecationInfo#mdoc= (var_info,var73) on <var_info:MDeprecationInfo> */
5459 var_info->attrs[COLOR_nit__mdoc__MDeprecationInfo___mdoc].val = var73; /* _mdoc on <var_info:MDeprecationInfo> */
5460 RET_LABEL74:(void)0;
5461 }
5462 }
5463 } else {
5464 }
5465 {
5466 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MPropDef> */
5467 var77 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MPropDef> */
5468 if (unlikely(var77 == NULL)) {
5469 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5470 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
5471 show_backtrace(1);
5472 }
5473 var75 = var77;
5474 RET_LABEL76:(void)0;
5475 }
5476 }
5477 {
5478 { /* Inline mdoc#MEntity#deprecation= (var75,var_info) on <var75:MProperty> */
5479 var75->attrs[COLOR_nit__mdoc__MEntity___deprecation].val = var_info; /* _deprecation on <var75:MProperty> */
5480 RET_LABEL78:(void)0;
5481 }
5482 }
5483 }
5484 } else {
5485 }
5486 RET_LABEL:;
5487 }
5488 /* method modelize_property#APropdef#check_redef_property_visibility for (self: APropdef, ModelBuilder, nullable AVisibility, MProperty) */
5489 void nit__modelize_property___APropdef___check_redef_property_visibility(val* self, val* p0, val* p1, val* p2) {
5490 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
5491 val* var_nvisibility /* var nvisibility: nullable AVisibility */;
5492 val* var_mprop /* var mprop: MProperty */;
5493 val* var /* : null */;
5494 short int var1 /* : Bool */;
5495 short int var2 /* : Bool */;
5496 val* var_other /* var other: nullable Object */;
5497 short int var4 /* : Bool */;
5498 short int var6 /* : Bool */;
5499 val* var7 /* : MVisibility */;
5500 val* var_mvisibility /* var mvisibility: MVisibility */;
5501 short int var8 /* : Bool */;
5502 val* var9 /* : MVisibility */;
5503 val* var11 /* : MVisibility */;
5504 short int var12 /* : Bool */;
5505 val* var_other14 /* var other: nullable Object */;
5506 short int var15 /* : Bool */;
5507 short int var16 /* : Bool */;
5508 short int var_ /* var : Bool */;
5509 val* var17 /* : MVisibility */;
5510 short int var18 /* : Bool */;
5511 short int var20 /* : Bool */;
5512 short int var21 /* : Bool */;
5513 static val* varonce;
5514 val* var22 /* : String */;
5515 char* var23 /* : NativeString */;
5516 long var24 /* : Int */;
5517 val* var25 /* : FlatString */;
5518 val* var26 /* : MVisibility */;
5519 val* var28 /* : MVisibility */;
5520 static val* varonce29;
5521 val* var30 /* : String */;
5522 char* var31 /* : NativeString */;
5523 long var32 /* : Int */;
5524 val* var33 /* : FlatString */;
5525 val* var34 /* : Array[Object] */;
5526 long var35 /* : Int */;
5527 val* var36 /* : NativeArray[Object] */;
5528 val* var37 /* : String */;
5529 var_modelbuilder = p0;
5530 var_nvisibility = p1;
5531 var_mprop = p2;
5532 var = NULL;
5533 if (var_nvisibility == NULL) {
5534 var1 = 1; /* is null */
5535 } else {
5536 var1 = 0; /* arg is null but recv is not */
5537 }
5538 if (0) {
5539 { /* Inline kernel#Object#== (var_nvisibility,var) on <var_nvisibility:nullable AVisibility> */
5540 var_other = var;
5541 {
5542 { /* Inline kernel#Object#is_same_instance (var_nvisibility,var_other) on <var_nvisibility:nullable AVisibility(AVisibility)> */
5543 var6 = var_nvisibility == var_other;
5544 var4 = var6;
5545 goto RET_LABEL5;
5546 RET_LABEL5:(void)0;
5547 }
5548 }
5549 var2 = var4;
5550 goto RET_LABEL3;
5551 RET_LABEL3:(void)0;
5552 }
5553 var1 = var2;
5554 }
5555 if (var1){
5556 goto RET_LABEL;
5557 } else {
5558 }
5559 {
5560 var7 = ((val* (*)(val* self))(var_nvisibility->class->vft[COLOR_nit__modelbuilder_base__AVisibility__mvisibility]))(var_nvisibility) /* mvisibility on <var_nvisibility:nullable AVisibility(AVisibility)>*/;
5561 }
5562 var_mvisibility = var7;
5563 {
5564 { /* Inline model#MProperty#visibility (var_mprop) on <var_mprop:MProperty> */
5565 var11 = var_mprop->attrs[COLOR_nit__model__MProperty___visibility].val; /* _visibility on <var_mprop:MProperty> */
5566 if (unlikely(var11 == NULL)) {
5567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
5568 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1757);
5569 show_backtrace(1);
5570 }
5571 var9 = var11;
5572 RET_LABEL10:(void)0;
5573 }
5574 }
5575 {
5576 { /* Inline kernel#Object#!= (var_mvisibility,var9) on <var_mvisibility:MVisibility> */
5577 var_other14 = var9;
5578 {
5579 var15 = ((short int (*)(val* self, val* p0))(var_mvisibility->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mvisibility, var_other14) /* == on <var_mvisibility:MVisibility>*/;
5580 }
5581 var16 = !var15;
5582 var12 = var16;
5583 goto RET_LABEL13;
5584 RET_LABEL13:(void)0;
5585 }
5586 }
5587 var_ = var12;
5588 if (var12){
5589 {
5590 var17 = nit__model_base___standard__Object___public_visibility(self);
5591 }
5592 {
5593 { /* Inline kernel#Object#!= (var_mvisibility,var17) on <var_mvisibility:MVisibility> */
5594 var_other14 = var17;
5595 {
5596 var20 = ((short int (*)(val* self, val* p0))(var_mvisibility->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mvisibility, var_other14) /* == on <var_mvisibility:MVisibility>*/;
5597 }
5598 var21 = !var20;
5599 var18 = var21;
5600 goto RET_LABEL19;
5601 RET_LABEL19:(void)0;
5602 }
5603 }
5604 var8 = var18;
5605 } else {
5606 var8 = var_;
5607 }
5608 if (var8){
5609 if (varonce) {
5610 var22 = varonce;
5611 } else {
5612 var23 = "Error: redefinition changed the visibility from a ";
5613 var24 = 50;
5614 var25 = standard___standard__NativeString___to_s_with_length(var23, var24);
5615 var22 = var25;
5616 varonce = var22;
5617 }
5618 {
5619 { /* Inline model#MProperty#visibility (var_mprop) on <var_mprop:MProperty> */
5620 var28 = var_mprop->attrs[COLOR_nit__model__MProperty___visibility].val; /* _visibility on <var_mprop:MProperty> */
5621 if (unlikely(var28 == NULL)) {
5622 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
5623 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1757);
5624 show_backtrace(1);
5625 }
5626 var26 = var28;
5627 RET_LABEL27:(void)0;
5628 }
5629 }
5630 if (varonce29) {
5631 var30 = varonce29;
5632 } else {
5633 var31 = " to a ";
5634 var32 = 6;
5635 var33 = standard___standard__NativeString___to_s_with_length(var31, var32);
5636 var30 = var33;
5637 varonce29 = var30;
5638 }
5639 var34 = NEW_standard__Array(&type_standard__Array__standard__Object);
5640 { /* var34 = array_instance Array[Object] */
5641 var35 = 4;
5642 var36 = NEW_standard__NativeArray(var35, &type_standard__NativeArray__standard__Object);
5643 ((struct instance_standard__NativeArray*)var36)->values[0] = (val*) var22;
5644 ((struct instance_standard__NativeArray*)var36)->values[1] = (val*) var26;
5645 ((struct instance_standard__NativeArray*)var36)->values[2] = (val*) var30;
5646 ((struct instance_standard__NativeArray*)var36)->values[3] = (val*) var_mvisibility;
5647 {
5648 ((void (*)(val* self, val* p0, long p1))(var34->class->vft[COLOR_standard__array__Array__with_native]))(var34, var36, var35) /* with_native on <var34:Array[Object]>*/;
5649 }
5650 }
5651 {
5652 var37 = ((val* (*)(val* self))(var34->class->vft[COLOR_standard__string__Object__to_s]))(var34) /* to_s on <var34:Array[Object]>*/;
5653 }
5654 {
5655 nit___nit__ModelBuilder___error(var_modelbuilder, var_nvisibility, var37); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
5656 }
5657 } else {
5658 }
5659 RET_LABEL:;
5660 }
5661 /* method modelize_property#APropdef#check_redef_keyword for (self: APropdef, ModelBuilder, MClassDef, nullable Token, Bool, MProperty): Bool */
5662 short int nit__modelize_property___APropdef___check_redef_keyword(val* self, val* p0, val* p1, val* p2, short int p3, val* p4) {
5663 short int var /* : Bool */;
5664 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
5665 val* var_mclassdef /* var mclassdef: MClassDef */;
5666 val* var_kwredef /* var kwredef: nullable Token */;
5667 short int var_need_redef /* var need_redef: Bool */;
5668 val* var_mprop /* var mprop: MProperty */;
5669 val* var1 /* : Map[MProperty, APropdef] */;
5670 val* var3 /* : Map[MProperty, APropdef] */;
5671 short int var4 /* : Bool */;
5672 static val* varonce;
5673 val* var5 /* : String */;
5674 char* var6 /* : NativeString */;
5675 long var7 /* : Int */;
5676 val* var8 /* : FlatString */;
5677 static val* varonce9;
5678 val* var10 /* : String */;
5679 char* var11 /* : NativeString */;
5680 long var12 /* : Int */;
5681 val* var13 /* : FlatString */;
5682 val* var14 /* : MClass */;
5683 val* var16 /* : MClass */;
5684 static val* varonce17;
5685 val* var18 /* : String */;
5686 char* var19 /* : NativeString */;
5687 long var20 /* : Int */;
5688 val* var21 /* : FlatString */;
5689 val* var22 /* : Map[MProperty, APropdef] */;
5690 val* var24 /* : Map[MProperty, APropdef] */;
5691 val* var25 /* : nullable Object */;
5692 val* var26 /* : Location */;
5693 val* var28 /* : Location */;
5694 long var29 /* : Int */;
5695 long var31 /* : Int */;
5696 static val* varonce32;
5697 val* var33 /* : String */;
5698 char* var34 /* : NativeString */;
5699 long var35 /* : Int */;
5700 val* var36 /* : FlatString */;
5701 val* var37 /* : Array[Object] */;
5702 long var38 /* : Int */;
5703 val* var39 /* : NativeArray[Object] */;
5704 val* var40 /* : Object */;
5705 val* var41 /* : String */;
5706 short int var42 /* : Bool */;
5707 short int var43 /* : Bool */;
5708 short int var44 /* : Bool */;
5709 int cltype;
5710 int idtype;
5711 short int var_ /* var : Bool */;
5712 short int var45 /* : Bool */;
5713 short int var47 /* : Bool */;
5714 val* var48 /* : nullable ANode */;
5715 val* var50 /* : nullable ANode */;
5716 short int var51 /* : Bool */;
5717 int cltype52;
5718 int idtype53;
5719 short int var54 /* : Bool */;
5720 short int var56 /* : Bool */;
5721 short int var57 /* : Bool */;
5722 short int var58 /* : Bool */;
5723 short int var60 /* : Bool */;
5724 static val* varonce61;
5725 val* var62 /* : String */;
5726 char* var63 /* : NativeString */;
5727 long var64 /* : Int */;
5728 val* var65 /* : FlatString */;
5729 static val* varonce66;
5730 val* var67 /* : String */;
5731 char* var68 /* : NativeString */;
5732 long var69 /* : Int */;
5733 val* var70 /* : FlatString */;
5734 val* var71 /* : Array[Object] */;
5735 long var72 /* : Int */;
5736 val* var73 /* : NativeArray[Object] */;
5737 val* var74 /* : String */;
5738 static val* varonce75;
5739 val* var76 /* : String */;
5740 char* var77 /* : NativeString */;
5741 long var78 /* : Int */;
5742 val* var79 /* : FlatString */;
5743 static val* varonce80;
5744 val* var81 /* : String */;
5745 char* var82 /* : NativeString */;
5746 long var83 /* : Int */;
5747 val* var84 /* : FlatString */;
5748 val* var85 /* : Array[Object] */;
5749 long var86 /* : Int */;
5750 val* var87 /* : NativeArray[Object] */;
5751 val* var88 /* : String */;
5752 short int var89 /* : Bool */;
5753 short int var90 /* : Bool */;
5754 short int var91 /* : Bool */;
5755 int cltype92;
5756 int idtype93;
5757 short int var_94 /* var : Bool */;
5758 short int var95 /* : Bool */;
5759 short int var97 /* : Bool */;
5760 short int var98 /* : Bool */;
5761 val* var99 /* : null */;
5762 short int var100 /* : Bool */;
5763 short int var101 /* : Bool */;
5764 val* var_other /* var other: nullable Object */;
5765 short int var103 /* : Bool */;
5766 short int var105 /* : Bool */;
5767 static val* varonce106;
5768 val* var107 /* : String */;
5769 char* var108 /* : NativeString */;
5770 long var109 /* : Int */;
5771 val* var110 /* : FlatString */;
5772 val* var111 /* : MClass */;
5773 val* var113 /* : MClass */;
5774 static val* varonce114;
5775 val* var115 /* : String */;
5776 char* var116 /* : NativeString */;
5777 long var117 /* : Int */;
5778 val* var118 /* : FlatString */;
5779 val* var119 /* : String */;
5780 val* var121 /* : String */;
5781 static val* varonce122;
5782 val* var123 /* : String */;
5783 char* var124 /* : NativeString */;
5784 long var125 /* : Int */;
5785 val* var126 /* : FlatString */;
5786 val* var127 /* : Array[Object] */;
5787 long var128 /* : Int */;
5788 val* var129 /* : NativeArray[Object] */;
5789 val* var130 /* : String */;
5790 short int var131 /* : Bool */;
5791 short int var132 /* : Bool */;
5792 val* var133 /* : MClassDef */;
5793 val* var135 /* : MClassDef */;
5794 val* var136 /* : MModule */;
5795 val* var138 /* : MModule */;
5796 val* var139 /* : nullable MGroup */;
5797 val* var141 /* : nullable MGroup */;
5798 val* var142 /* : null */;
5799 short int var143 /* : Bool */;
5800 short int var144 /* : Bool */;
5801 val* var_other146 /* var other: nullable Object */;
5802 short int var147 /* : Bool */;
5803 short int var148 /* : Bool */;
5804 short int var_149 /* var : Bool */;
5805 val* var150 /* : MVisibility */;
5806 val* var152 /* : MVisibility */;
5807 val* var153 /* : MVisibility */;
5808 short int var154 /* : Bool */;
5809 val* var155 /* : Model */;
5810 val* var157 /* : Model */;
5811 val* var158 /* : String */;
5812 val* var160 /* : String */;
5813 val* var161 /* : nullable Array[MProperty] */;
5814 val* var_others /* var others: nullable Array[MProperty] */;
5815 val* var162 /* : null */;
5816 short int var163 /* : Bool */;
5817 short int var164 /* : Bool */;
5818 short int var166 /* : Bool */;
5819 short int var167 /* : Bool */;
5820 val* var_168 /* var : Array[MProperty] */;
5821 val* var169 /* : ArrayIterator[nullable Object] */;
5822 val* var_170 /* var : ArrayIterator[MProperty] */;
5823 short int var171 /* : Bool */;
5824 val* var172 /* : nullable Object */;
5825 val* var_other173 /* var other: MProperty */;
5826 short int var174 /* : Bool */;
5827 short int var175 /* : Bool */;
5828 short int var176 /* : Bool */;
5829 short int var177 /* : Bool */;
5830 short int var178 /* : Bool */;
5831 short int var180 /* : Bool */;
5832 short int var181 /* : Bool */;
5833 short int var_182 /* var : Bool */;
5834 val* var183 /* : MClassDef */;
5835 val* var185 /* : MClassDef */;
5836 val* var186 /* : MModule */;
5837 val* var188 /* : MModule */;
5838 val* var189 /* : nullable MGroup */;
5839 val* var191 /* : nullable MGroup */;
5840 val* var192 /* : null */;
5841 short int var193 /* : Bool */;
5842 short int var194 /* : Bool */;
5843 short int var196 /* : Bool */;
5844 short int var197 /* : Bool */;
5845 short int var_198 /* var : Bool */;
5846 val* var199 /* : MClassDef */;
5847 val* var201 /* : MClassDef */;
5848 val* var202 /* : MModule */;
5849 val* var204 /* : MModule */;
5850 val* var205 /* : nullable MGroup */;
5851 val* var207 /* : nullable MGroup */;
5852 val* var208 /* : MProject */;
5853 val* var210 /* : MProject */;
5854 val* var211 /* : MClassDef */;
5855 val* var213 /* : MClassDef */;
5856 val* var214 /* : MModule */;
5857 val* var216 /* : MModule */;
5858 val* var217 /* : nullable MGroup */;
5859 val* var219 /* : nullable MGroup */;
5860 val* var220 /* : MProject */;
5861 val* var222 /* : MProject */;
5862 short int var223 /* : Bool */;
5863 short int var225 /* : Bool */;
5864 short int var227 /* : Bool */;
5865 short int var_228 /* var : Bool */;
5866 val* var229 /* : MClassDef */;
5867 val* var231 /* : MClassDef */;
5868 val* var232 /* : MClass */;
5869 val* var234 /* : MClass */;
5870 val* var235 /* : String */;
5871 val* var237 /* : String */;
5872 val* var238 /* : MClassDef */;
5873 val* var240 /* : MClassDef */;
5874 val* var241 /* : MClass */;
5875 val* var243 /* : MClass */;
5876 val* var244 /* : String */;
5877 val* var246 /* : String */;
5878 short int var247 /* : Bool */;
5879 short int var_248 /* var : Bool */;
5880 val* var249 /* : MVisibility */;
5881 val* var251 /* : MVisibility */;
5882 val* var252 /* : MVisibility */;
5883 short int var253 /* : Bool */;
5884 static val* varonce254;
5885 val* var255 /* : String */;
5886 char* var256 /* : NativeString */;
5887 long var257 /* : Int */;
5888 val* var258 /* : FlatString */;
5889 static val* varonce259;
5890 val* var260 /* : String */;
5891 char* var261 /* : NativeString */;
5892 long var262 /* : Int */;
5893 val* var263 /* : FlatString */;
5894 val* var264 /* : String */;
5895 static val* varonce265;
5896 val* var266 /* : String */;
5897 char* var267 /* : NativeString */;
5898 long var268 /* : Int */;
5899 val* var269 /* : FlatString */;
5900 val* var270 /* : MClassDef */;
5901 val* var272 /* : MClassDef */;
5902 val* var273 /* : MModule */;
5903 val* var275 /* : MModule */;
5904 static val* varonce276;
5905 val* var277 /* : String */;
5906 char* var278 /* : NativeString */;
5907 long var279 /* : Int */;
5908 val* var280 /* : FlatString */;
5909 val* var281 /* : MClassDef */;
5910 val* var283 /* : MClassDef */;
5911 val* var284 /* : MClass */;
5912 val* var286 /* : MClass */;
5913 val* var287 /* : String */;
5914 val* var289 /* : String */;
5915 static val* varonce290;
5916 val* var291 /* : String */;
5917 char* var292 /* : NativeString */;
5918 long var293 /* : Int */;
5919 val* var294 /* : FlatString */;
5920 val* var295 /* : Array[Object] */;
5921 long var296 /* : Int */;
5922 val* var297 /* : NativeArray[Object] */;
5923 val* var298 /* : String */;
5924 short int var300 /* : Bool */;
5925 static val* varonce301;
5926 val* var302 /* : String */;
5927 char* var303 /* : NativeString */;
5928 long var304 /* : Int */;
5929 val* var305 /* : FlatString */;
5930 val* var306 /* : MClass */;
5931 val* var308 /* : MClass */;
5932 static val* varonce309;
5933 val* var310 /* : String */;
5934 char* var311 /* : NativeString */;
5935 long var312 /* : Int */;
5936 val* var313 /* : FlatString */;
5937 val* var314 /* : String */;
5938 val* var316 /* : String */;
5939 static val* varonce317;
5940 val* var318 /* : String */;
5941 char* var319 /* : NativeString */;
5942 long var320 /* : Int */;
5943 val* var321 /* : FlatString */;
5944 val* var322 /* : Array[Object] */;
5945 long var323 /* : Int */;
5946 val* var324 /* : NativeArray[Object] */;
5947 val* var325 /* : String */;
5948 short int var326 /* : Bool */;
5949 short int var327 /* : Bool */;
5950 var_modelbuilder = p0;
5951 var_mclassdef = p1;
5952 var_kwredef = p2;
5953 var_need_redef = p3;
5954 var_mprop = p4;
5955 {
5956 { /* Inline modelize_property#MClassDef#mprop2npropdef (var_mclassdef) on <var_mclassdef:MClassDef> */
5957 var3 = var_mclassdef->attrs[COLOR_nit__modelize_property__MClassDef___mprop2npropdef].val; /* _mprop2npropdef on <var_mclassdef:MClassDef> */
5958 if (unlikely(var3 == NULL)) {
5959 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mprop2npropdef");
5960 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 352);
5961 show_backtrace(1);
5962 }
5963 var1 = var3;
5964 RET_LABEL2:(void)0;
5965 }
5966 }
5967 {
5968 var4 = standard___standard__MapRead___has_key(var1, var_mprop);
5969 }
5970 if (var4){
5971 if (varonce) {
5972 var5 = varonce;
5973 } else {
5974 var6 = "Error: A property ";
5975 var7 = 18;
5976 var8 = standard___standard__NativeString___to_s_with_length(var6, var7);
5977 var5 = var8;
5978 varonce = var5;
5979 }
5980 if (varonce9) {
5981 var10 = varonce9;
5982 } else {
5983 var11 = " is already defined in class ";
5984 var12 = 29;
5985 var13 = standard___standard__NativeString___to_s_with_length(var11, var12);
5986 var10 = var13;
5987 varonce9 = var10;
5988 }
5989 {
5990 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
5991 var16 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
5992 if (unlikely(var16 == NULL)) {
5993 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5994 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
5995 show_backtrace(1);
5996 }
5997 var14 = var16;
5998 RET_LABEL15:(void)0;
5999 }
6000 }
6001 if (varonce17) {
6002 var18 = varonce17;
6003 } else {
6004 var19 = " at line ";
6005 var20 = 9;
6006 var21 = standard___standard__NativeString___to_s_with_length(var19, var20);
6007 var18 = var21;
6008 varonce17 = var18;
6009 }
6010 {
6011 { /* Inline modelize_property#MClassDef#mprop2npropdef (var_mclassdef) on <var_mclassdef:MClassDef> */
6012 var24 = var_mclassdef->attrs[COLOR_nit__modelize_property__MClassDef___mprop2npropdef].val; /* _mprop2npropdef on <var_mclassdef:MClassDef> */
6013 if (unlikely(var24 == NULL)) {
6014 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mprop2npropdef");
6015 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 352);
6016 show_backtrace(1);
6017 }
6018 var22 = var24;
6019 RET_LABEL23:(void)0;
6020 }
6021 }
6022 {
6023 var25 = ((val* (*)(val* self, val* p0))(var22->class->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var22, var_mprop) /* [] on <var22:Map[MProperty, APropdef]>*/;
6024 }
6025 {
6026 { /* Inline parser_nodes#ANode#location (var25) on <var25:nullable Object(APropdef)> */
6027 var28 = var25->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <var25:nullable Object(APropdef)> */
6028 if (unlikely(var28 == NULL)) {
6029 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
6030 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
6031 show_backtrace(1);
6032 }
6033 var26 = var28;
6034 RET_LABEL27:(void)0;
6035 }
6036 }
6037 {
6038 { /* Inline location#Location#line_start (var26) on <var26:Location> */
6039 var31 = var26->attrs[COLOR_nit__location__Location___line_start].l; /* _line_start on <var26:Location> */
6040 var29 = var31;
6041 RET_LABEL30:(void)0;
6042 }
6043 }
6044 if (varonce32) {
6045 var33 = varonce32;
6046 } else {
6047 var34 = ".";
6048 var35 = 1;
6049 var36 = standard___standard__NativeString___to_s_with_length(var34, var35);
6050 var33 = var36;
6051 varonce32 = var33;
6052 }
6053 var37 = NEW_standard__Array(&type_standard__Array__standard__Object);
6054 { /* var37 = array_instance Array[Object] */
6055 var38 = 7;
6056 var39 = NEW_standard__NativeArray(var38, &type_standard__NativeArray__standard__Object);
6057 ((struct instance_standard__NativeArray*)var39)->values[0] = (val*) var5;
6058 ((struct instance_standard__NativeArray*)var39)->values[1] = (val*) var_mprop;
6059 ((struct instance_standard__NativeArray*)var39)->values[2] = (val*) var10;
6060 ((struct instance_standard__NativeArray*)var39)->values[3] = (val*) var14;
6061 ((struct instance_standard__NativeArray*)var39)->values[4] = (val*) var18;
6062 var40 = BOX_standard__Int(var29); /* autobox from Int to Object */
6063 ((struct instance_standard__NativeArray*)var39)->values[5] = (val*) var40;
6064 ((struct instance_standard__NativeArray*)var39)->values[6] = (val*) var33;
6065 {
6066 ((void (*)(val* self, val* p0, long p1))(var37->class->vft[COLOR_standard__array__Array__with_native]))(var37, var39, var38) /* with_native on <var37:Array[Object]>*/;
6067 }
6068 }
6069 {
6070 var41 = ((val* (*)(val* self))(var37->class->vft[COLOR_standard__string__Object__to_s]))(var37) /* to_s on <var37:Array[Object]>*/;
6071 }
6072 {
6073 nit___nit__ModelBuilder___error(var_modelbuilder, self, var41); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
6074 }
6075 var42 = 0;
6076 var = var42;
6077 goto RET_LABEL;
6078 } else {
6079 }
6080 /* <var_mprop:MProperty> isa MMethod */
6081 cltype = type_nit__MMethod.color;
6082 idtype = type_nit__MMethod.id;
6083 if(cltype >= var_mprop->type->table_size) {
6084 var44 = 0;
6085 } else {
6086 var44 = var_mprop->type->type_table[cltype] == idtype;
6087 }
6088 var_ = var44;
6089 if (var44){
6090 {
6091 { /* Inline model#MMethod#is_toplevel (var_mprop) on <var_mprop:MProperty(MMethod)> */
6092 var47 = var_mprop->attrs[COLOR_nit__model__MMethod___is_toplevel].s; /* _is_toplevel on <var_mprop:MProperty(MMethod)> */
6093 var45 = var47;
6094 RET_LABEL46:(void)0;
6095 }
6096 }
6097 {
6098 { /* Inline parser_nodes#ANode#parent (self) on <self:APropdef> */
6099 var50 = self->attrs[COLOR_nit__parser_nodes__ANode___parent].val; /* _parent on <self:APropdef> */
6100 var48 = var50;
6101 RET_LABEL49:(void)0;
6102 }
6103 }
6104 /* <var48:nullable ANode> isa ATopClassdef */
6105 cltype52 = type_nit__ATopClassdef.color;
6106 idtype53 = type_nit__ATopClassdef.id;
6107 if(var48 == NULL) {
6108 var51 = 0;
6109 } else {
6110 if(cltype52 >= var48->type->table_size) {
6111 var51 = 0;
6112 } else {
6113 var51 = var48->type->type_table[cltype52] == idtype53;
6114 }
6115 }
6116 {
6117 { /* Inline kernel#Bool#!= (var45,var51) on <var45:Bool> */
6118 var56 = var45 == var51;
6119 var57 = !var56;
6120 var54 = var57;
6121 goto RET_LABEL55;
6122 RET_LABEL55:(void)0;
6123 }
6124 }
6125 var43 = var54;
6126 } else {
6127 var43 = var_;
6128 }
6129 if (var43){
6130 {
6131 { /* Inline model#MMethod#is_toplevel (var_mprop) on <var_mprop:MProperty(MMethod)> */
6132 var60 = var_mprop->attrs[COLOR_nit__model__MMethod___is_toplevel].s; /* _is_toplevel on <var_mprop:MProperty(MMethod)> */
6133 var58 = var60;
6134 RET_LABEL59:(void)0;
6135 }
6136 }
6137 if (var58){
6138 if (varonce61) {
6139 var62 = varonce61;
6140 } else {
6141 var63 = "Error: ";
6142 var64 = 7;
6143 var65 = standard___standard__NativeString___to_s_with_length(var63, var64);
6144 var62 = var65;
6145 varonce61 = var62;
6146 }
6147 if (varonce66) {
6148 var67 = varonce66;
6149 } else {
6150 var68 = " is a top level method.";
6151 var69 = 23;
6152 var70 = standard___standard__NativeString___to_s_with_length(var68, var69);
6153 var67 = var70;
6154 varonce66 = var67;
6155 }
6156 var71 = NEW_standard__Array(&type_standard__Array__standard__Object);
6157 { /* var71 = array_instance Array[Object] */
6158 var72 = 3;
6159 var73 = NEW_standard__NativeArray(var72, &type_standard__NativeArray__standard__Object);
6160 ((struct instance_standard__NativeArray*)var73)->values[0] = (val*) var62;
6161 ((struct instance_standard__NativeArray*)var73)->values[1] = (val*) var_mprop;
6162 ((struct instance_standard__NativeArray*)var73)->values[2] = (val*) var67;
6163 {
6164 ((void (*)(val* self, val* p0, long p1))(var71->class->vft[COLOR_standard__array__Array__with_native]))(var71, var73, var72) /* with_native on <var71:Array[Object]>*/;
6165 }
6166 }
6167 {
6168 var74 = ((val* (*)(val* self))(var71->class->vft[COLOR_standard__string__Object__to_s]))(var71) /* to_s on <var71:Array[Object]>*/;
6169 }
6170 {
6171 nit___nit__ModelBuilder___error(var_modelbuilder, self, var74); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
6172 }
6173 } else {
6174 if (varonce75) {
6175 var76 = varonce75;
6176 } else {
6177 var77 = "Error: ";
6178 var78 = 7;
6179 var79 = standard___standard__NativeString___to_s_with_length(var77, var78);
6180 var76 = var79;
6181 varonce75 = var76;
6182 }
6183 if (varonce80) {
6184 var81 = varonce80;
6185 } else {
6186 var82 = " is not a top level method.";
6187 var83 = 27;
6188 var84 = standard___standard__NativeString___to_s_with_length(var82, var83);
6189 var81 = var84;
6190 varonce80 = var81;
6191 }
6192 var85 = NEW_standard__Array(&type_standard__Array__standard__Object);
6193 { /* var85 = array_instance Array[Object] */
6194 var86 = 3;
6195 var87 = NEW_standard__NativeArray(var86, &type_standard__NativeArray__standard__Object);
6196 ((struct instance_standard__NativeArray*)var87)->values[0] = (val*) var76;
6197 ((struct instance_standard__NativeArray*)var87)->values[1] = (val*) var_mprop;
6198 ((struct instance_standard__NativeArray*)var87)->values[2] = (val*) var81;
6199 {
6200 ((void (*)(val* self, val* p0, long p1))(var85->class->vft[COLOR_standard__array__Array__with_native]))(var85, var87, var86) /* with_native on <var85:Array[Object]>*/;
6201 }
6202 }
6203 {
6204 var88 = ((val* (*)(val* self))(var85->class->vft[COLOR_standard__string__Object__to_s]))(var85) /* to_s on <var85:Array[Object]>*/;
6205 }
6206 {
6207 nit___nit__ModelBuilder___error(var_modelbuilder, self, var88); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
6208 }
6209 }
6210 var89 = 0;
6211 var = var89;
6212 goto RET_LABEL;
6213 } else {
6214 }
6215 /* <var_mprop:MProperty> isa MMethod */
6216 cltype92 = type_nit__MMethod.color;
6217 idtype93 = type_nit__MMethod.id;
6218 if(cltype92 >= var_mprop->type->table_size) {
6219 var91 = 0;
6220 } else {
6221 var91 = var_mprop->type->type_table[cltype92] == idtype93;
6222 }
6223 var_94 = var91;
6224 if (var91){
6225 {
6226 { /* Inline model#MMethod#is_root_init (var_mprop) on <var_mprop:MProperty(MMethod)> */
6227 var97 = var_mprop->attrs[COLOR_nit__model__MMethod___is_root_init].s; /* _is_root_init on <var_mprop:MProperty(MMethod)> */
6228 var95 = var97;
6229 RET_LABEL96:(void)0;
6230 }
6231 }
6232 var90 = var95;
6233 } else {
6234 var90 = var_94;
6235 }
6236 if (var90){
6237 var98 = 1;
6238 var = var98;
6239 goto RET_LABEL;
6240 } else {
6241 }
6242 var99 = NULL;
6243 if (var_kwredef == NULL) {
6244 var100 = 1; /* is null */
6245 } else {
6246 var100 = 0; /* arg is null but recv is not */
6247 }
6248 if (0) {
6249 { /* Inline kernel#Object#== (var_kwredef,var99) on <var_kwredef:nullable Token> */
6250 var_other = var99;
6251 {
6252 { /* Inline kernel#Object#is_same_instance (var_kwredef,var_other) on <var_kwredef:nullable Token(Token)> */
6253 var105 = var_kwredef == var_other;
6254 var103 = var105;
6255 goto RET_LABEL104;
6256 RET_LABEL104:(void)0;
6257 }
6258 }
6259 var101 = var103;
6260 goto RET_LABEL102;
6261 RET_LABEL102:(void)0;
6262 }
6263 var100 = var101;
6264 }
6265 if (var100){
6266 if (var_need_redef){
6267 if (varonce106) {
6268 var107 = varonce106;
6269 } else {
6270 var108 = "Redef error: ";
6271 var109 = 13;
6272 var110 = standard___standard__NativeString___to_s_with_length(var108, var109);
6273 var107 = var110;
6274 varonce106 = var107;
6275 }
6276 {
6277 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
6278 var113 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
6279 if (unlikely(var113 == NULL)) {
6280 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6281 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
6282 show_backtrace(1);
6283 }
6284 var111 = var113;
6285 RET_LABEL112:(void)0;
6286 }
6287 }
6288 if (varonce114) {
6289 var115 = varonce114;
6290 } else {
6291 var116 = "::";
6292 var117 = 2;
6293 var118 = standard___standard__NativeString___to_s_with_length(var116, var117);
6294 var115 = var118;
6295 varonce114 = var115;
6296 }
6297 {
6298 { /* Inline model#MProperty#name (var_mprop) on <var_mprop:MProperty> */
6299 var121 = var_mprop->attrs[COLOR_nit__model__MProperty___name].val; /* _name on <var_mprop:MProperty> */
6300 if (unlikely(var121 == NULL)) {
6301 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6302 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1741);
6303 show_backtrace(1);
6304 }
6305 var119 = var121;
6306 RET_LABEL120:(void)0;
6307 }
6308 }
6309 if (varonce122) {
6310 var123 = varonce122;
6311 } else {
6312 var124 = " is an inherited property. To redefine it, add the redef keyword.";
6313 var125 = 65;
6314 var126 = standard___standard__NativeString___to_s_with_length(var124, var125);
6315 var123 = var126;
6316 varonce122 = var123;
6317 }
6318 var127 = NEW_standard__Array(&type_standard__Array__standard__Object);
6319 { /* var127 = array_instance Array[Object] */
6320 var128 = 5;
6321 var129 = NEW_standard__NativeArray(var128, &type_standard__NativeArray__standard__Object);
6322 ((struct instance_standard__NativeArray*)var129)->values[0] = (val*) var107;
6323 ((struct instance_standard__NativeArray*)var129)->values[1] = (val*) var111;
6324 ((struct instance_standard__NativeArray*)var129)->values[2] = (val*) var115;
6325 ((struct instance_standard__NativeArray*)var129)->values[3] = (val*) var119;
6326 ((struct instance_standard__NativeArray*)var129)->values[4] = (val*) var123;
6327 {
6328 ((void (*)(val* self, val* p0, long p1))(var127->class->vft[COLOR_standard__array__Array__with_native]))(var127, var129, var128) /* with_native on <var127:Array[Object]>*/;
6329 }
6330 }
6331 {
6332 var130 = ((val* (*)(val* self))(var127->class->vft[COLOR_standard__string__Object__to_s]))(var127) /* to_s on <var127:Array[Object]>*/;
6333 }
6334 {
6335 nit___nit__ModelBuilder___error(var_modelbuilder, self, var130); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
6336 }
6337 var131 = 0;
6338 var = var131;
6339 goto RET_LABEL;
6340 } else {
6341 }
6342 {
6343 { /* Inline model#MProperty#intro_mclassdef (var_mprop) on <var_mprop:MProperty> */
6344 var135 = var_mprop->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_mprop:MProperty> */
6345 if (unlikely(var135 == NULL)) {
6346 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
6347 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1736);
6348 show_backtrace(1);
6349 }
6350 var133 = var135;
6351 RET_LABEL134:(void)0;
6352 }
6353 }
6354 {
6355 { /* Inline model#MClassDef#mmodule (var133) on <var133:MClassDef> */
6356 var138 = var133->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var133:MClassDef> */
6357 if (unlikely(var138 == NULL)) {
6358 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
6359 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489);
6360 show_backtrace(1);
6361 }
6362 var136 = var138;
6363 RET_LABEL137:(void)0;
6364 }
6365 }
6366 {
6367 { /* Inline mmodule#MModule#mgroup (var136) on <var136:MModule> */
6368 var141 = var136->attrs[COLOR_nit__mmodule__MModule___mgroup].val; /* _mgroup on <var136:MModule> */
6369 var139 = var141;
6370 RET_LABEL140:(void)0;
6371 }
6372 }
6373 var142 = NULL;
6374 if (var139 == NULL) {
6375 var143 = 0; /* is null */
6376 } else {
6377 var143 = 1; /* arg is null and recv is not */
6378 }
6379 if (0) {
6380 { /* Inline kernel#Object#!= (var139,var142) on <var139:nullable MGroup> */
6381 var_other146 = var142;
6382 {
6383 var147 = ((short int (*)(val* self, val* p0))(var139->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var139, var_other146) /* == on <var139:nullable MGroup(MGroup)>*/;
6384 }
6385 var148 = !var147;
6386 var144 = var148;
6387 goto RET_LABEL145;
6388 RET_LABEL145:(void)0;
6389 }
6390 var143 = var144;
6391 }
6392 var_149 = var143;
6393 if (var143){
6394 {
6395 { /* Inline model#MProperty#visibility (var_mprop) on <var_mprop:MProperty> */
6396 var152 = var_mprop->attrs[COLOR_nit__model__MProperty___visibility].val; /* _visibility on <var_mprop:MProperty> */
6397 if (unlikely(var152 == NULL)) {
6398 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
6399 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1757);
6400 show_backtrace(1);
6401 }
6402 var150 = var152;
6403 RET_LABEL151:(void)0;
6404 }
6405 }
6406 {
6407 var153 = nit__model_base___standard__Object___protected_visibility(self);
6408 }
6409 {
6410 var154 = standard___standard__Comparable____62d_61d(var150, var153);
6411 }
6412 var132 = var154;
6413 } else {
6414 var132 = var_149;
6415 }
6416 if (var132){
6417 {
6418 { /* Inline modelbuilder_base#ModelBuilder#model (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
6419 var157 = var_modelbuilder->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___model].val; /* _model on <var_modelbuilder:ModelBuilder> */
6420 if (unlikely(var157 == NULL)) {
6421 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
6422 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 44);
6423 show_backtrace(1);
6424 }
6425 var155 = var157;
6426 RET_LABEL156:(void)0;
6427 }
6428 }
6429 {
6430 { /* Inline model#MProperty#name (var_mprop) on <var_mprop:MProperty> */
6431 var160 = var_mprop->attrs[COLOR_nit__model__MProperty___name].val; /* _name on <var_mprop:MProperty> */
6432 if (unlikely(var160 == NULL)) {
6433 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6434 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1741);
6435 show_backtrace(1);
6436 }
6437 var158 = var160;
6438 RET_LABEL159:(void)0;
6439 }
6440 }
6441 {
6442 var161 = nit__model___Model___get_mproperties_by_name(var155, var158);
6443 }
6444 var_others = var161;
6445 var162 = NULL;
6446 if (var_others == NULL) {
6447 var163 = 0; /* is null */
6448 } else {
6449 var163 = 1; /* arg is null and recv is not */
6450 }
6451 if (0) {
6452 { /* Inline kernel#Object#!= (var_others,var162) on <var_others:nullable Array[MProperty]> */
6453 var_other146 = var162;
6454 {
6455 var166 = ((short int (*)(val* self, val* p0))(var_others->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_others, var_other146) /* == on <var_others:nullable Array[MProperty](Array[MProperty])>*/;
6456 }
6457 var167 = !var166;
6458 var164 = var167;
6459 goto RET_LABEL165;
6460 RET_LABEL165:(void)0;
6461 }
6462 var163 = var164;
6463 }
6464 if (var163){
6465 var_168 = var_others;
6466 {
6467 var169 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_168);
6468 }
6469 var_170 = var169;
6470 for(;;) {
6471 {
6472 var171 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_170);
6473 }
6474 if (var171){
6475 {
6476 var172 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_170);
6477 }
6478 var_other173 = var172;
6479 {
6480 { /* Inline kernel#Object#!= (var_other173,var_mprop) on <var_other173:MProperty> */
6481 var_other146 = var_mprop;
6482 {
6483 var180 = ((short int (*)(val* self, val* p0))(var_other173->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_other173, var_other146) /* == on <var_other173:MProperty>*/;
6484 }
6485 var181 = !var180;
6486 var178 = var181;
6487 goto RET_LABEL179;
6488 RET_LABEL179:(void)0;
6489 }
6490 }
6491 var_182 = var178;
6492 if (var178){
6493 {
6494 { /* Inline model#MProperty#intro_mclassdef (var_other173) on <var_other173:MProperty> */
6495 var185 = var_other173->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_other173:MProperty> */
6496 if (unlikely(var185 == NULL)) {
6497 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
6498 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1736);
6499 show_backtrace(1);
6500 }
6501 var183 = var185;
6502 RET_LABEL184:(void)0;
6503 }
6504 }
6505 {
6506 { /* Inline model#MClassDef#mmodule (var183) on <var183:MClassDef> */
6507 var188 = var183->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var183:MClassDef> */
6508 if (unlikely(var188 == NULL)) {
6509 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
6510 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489);
6511 show_backtrace(1);
6512 }
6513 var186 = var188;
6514 RET_LABEL187:(void)0;
6515 }
6516 }
6517 {
6518 { /* Inline mmodule#MModule#mgroup (var186) on <var186:MModule> */
6519 var191 = var186->attrs[COLOR_nit__mmodule__MModule___mgroup].val; /* _mgroup on <var186:MModule> */
6520 var189 = var191;
6521 RET_LABEL190:(void)0;
6522 }
6523 }
6524 var192 = NULL;
6525 if (var189 == NULL) {
6526 var193 = 0; /* is null */
6527 } else {
6528 var193 = 1; /* arg is null and recv is not */
6529 }
6530 if (0) {
6531 { /* Inline kernel#Object#!= (var189,var192) on <var189:nullable MGroup> */
6532 var_other146 = var192;
6533 {
6534 var196 = ((short int (*)(val* self, val* p0))(var189->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var189, var_other146) /* == on <var189:nullable MGroup(MGroup)>*/;
6535 }
6536 var197 = !var196;
6537 var194 = var197;
6538 goto RET_LABEL195;
6539 RET_LABEL195:(void)0;
6540 }
6541 var193 = var194;
6542 }
6543 var177 = var193;
6544 } else {
6545 var177 = var_182;
6546 }
6547 var_198 = var177;
6548 if (var177){
6549 {
6550 { /* Inline model#MProperty#intro_mclassdef (var_other173) on <var_other173:MProperty> */
6551 var201 = var_other173->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_other173:MProperty> */
6552 if (unlikely(var201 == NULL)) {
6553 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
6554 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1736);
6555 show_backtrace(1);
6556 }
6557 var199 = var201;
6558 RET_LABEL200:(void)0;
6559 }
6560 }
6561 {
6562 { /* Inline model#MClassDef#mmodule (var199) on <var199:MClassDef> */
6563 var204 = var199->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var199:MClassDef> */
6564 if (unlikely(var204 == NULL)) {
6565 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
6566 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489);
6567 show_backtrace(1);
6568 }
6569 var202 = var204;
6570 RET_LABEL203:(void)0;
6571 }
6572 }
6573 {
6574 { /* Inline mmodule#MModule#mgroup (var202) on <var202:MModule> */
6575 var207 = var202->attrs[COLOR_nit__mmodule__MModule___mgroup].val; /* _mgroup on <var202:MModule> */
6576 var205 = var207;
6577 RET_LABEL206:(void)0;
6578 }
6579 }
6580 if (var205 == NULL) {
6581 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6582 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 494);
6583 show_backtrace(1);
6584 } else {
6585 { /* Inline mproject#MGroup#mproject (var205) on <var205:nullable MGroup> */
6586 if (unlikely(var205 == NULL)) {
6587 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6588 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mproject, 69);
6589 show_backtrace(1);
6590 }
6591 var210 = var205->attrs[COLOR_nit__mproject__MGroup___mproject].val; /* _mproject on <var205:nullable MGroup> */
6592 if (unlikely(var210 == NULL)) {
6593 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproject");
6594 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mproject, 69);
6595 show_backtrace(1);
6596 }
6597 var208 = var210;
6598 RET_LABEL209:(void)0;
6599 }
6600 }
6601 {
6602 { /* Inline model#MProperty#intro_mclassdef (var_mprop) on <var_mprop:MProperty> */
6603 var213 = var_mprop->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_mprop:MProperty> */
6604 if (unlikely(var213 == NULL)) {
6605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
6606 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1736);
6607 show_backtrace(1);
6608 }
6609 var211 = var213;
6610 RET_LABEL212:(void)0;
6611 }
6612 }
6613 {
6614 { /* Inline model#MClassDef#mmodule (var211) on <var211:MClassDef> */
6615 var216 = var211->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var211:MClassDef> */
6616 if (unlikely(var216 == NULL)) {
6617 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
6618 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489);
6619 show_backtrace(1);
6620 }
6621 var214 = var216;
6622 RET_LABEL215:(void)0;
6623 }
6624 }
6625 {
6626 { /* Inline mmodule#MModule#mgroup (var214) on <var214:MModule> */
6627 var219 = var214->attrs[COLOR_nit__mmodule__MModule___mgroup].val; /* _mgroup on <var214:MModule> */
6628 var217 = var219;
6629 RET_LABEL218:(void)0;
6630 }
6631 }
6632 if (var217 == NULL) {
6633 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6634 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 494);
6635 show_backtrace(1);
6636 } else {
6637 { /* Inline mproject#MGroup#mproject (var217) on <var217:nullable MGroup> */
6638 if (unlikely(var217 == NULL)) {
6639 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6640 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mproject, 69);
6641 show_backtrace(1);
6642 }
6643 var222 = var217->attrs[COLOR_nit__mproject__MGroup___mproject].val; /* _mproject on <var217:nullable MGroup> */
6644 if (unlikely(var222 == NULL)) {
6645 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproject");
6646 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mproject, 69);
6647 show_backtrace(1);
6648 }
6649 var220 = var222;
6650 RET_LABEL221:(void)0;
6651 }
6652 }
6653 {
6654 { /* Inline kernel#Object#== (var208,var220) on <var208:MProject> */
6655 var_other = var220;
6656 {
6657 { /* Inline kernel#Object#is_same_instance (var208,var_other) on <var208:MProject> */
6658 var227 = var208 == var_other;
6659 var225 = var227;
6660 goto RET_LABEL226;
6661 RET_LABEL226:(void)0;
6662 }
6663 }
6664 var223 = var225;
6665 goto RET_LABEL224;
6666 RET_LABEL224:(void)0;
6667 }
6668 }
6669 var176 = var223;
6670 } else {
6671 var176 = var_198;
6672 }
6673 var_228 = var176;
6674 if (var176){
6675 {
6676 { /* Inline model#MProperty#intro_mclassdef (var_other173) on <var_other173:MProperty> */
6677 var231 = var_other173->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_other173:MProperty> */
6678 if (unlikely(var231 == NULL)) {
6679 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
6680 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1736);
6681 show_backtrace(1);
6682 }
6683 var229 = var231;
6684 RET_LABEL230:(void)0;
6685 }
6686 }
6687 {
6688 { /* Inline model#MClassDef#mclass (var229) on <var229:MClassDef> */
6689 var234 = var229->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var229:MClassDef> */
6690 if (unlikely(var234 == NULL)) {
6691 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6692 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
6693 show_backtrace(1);
6694 }
6695 var232 = var234;
6696 RET_LABEL233:(void)0;
6697 }
6698 }
6699 {
6700 { /* Inline model#MClass#name (var232) on <var232:MClass> */
6701 var237 = var232->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var232:MClass> */
6702 if (unlikely(var237 == NULL)) {
6703 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6704 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
6705 show_backtrace(1);
6706 }
6707 var235 = var237;
6708 RET_LABEL236:(void)0;
6709 }
6710 }
6711 {
6712 { /* Inline model#MProperty#intro_mclassdef (var_mprop) on <var_mprop:MProperty> */
6713 var240 = var_mprop->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_mprop:MProperty> */
6714 if (unlikely(var240 == NULL)) {
6715 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
6716 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1736);
6717 show_backtrace(1);
6718 }
6719 var238 = var240;
6720 RET_LABEL239:(void)0;
6721 }
6722 }
6723 {
6724 { /* Inline model#MClassDef#mclass (var238) on <var238:MClassDef> */
6725 var243 = var238->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var238:MClassDef> */
6726 if (unlikely(var243 == NULL)) {
6727 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6728 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
6729 show_backtrace(1);
6730 }
6731 var241 = var243;
6732 RET_LABEL242:(void)0;
6733 }
6734 }
6735 {
6736 { /* Inline model#MClass#name (var241) on <var241:MClass> */
6737 var246 = var241->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var241:MClass> */
6738 if (unlikely(var246 == NULL)) {
6739 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6740 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
6741 show_backtrace(1);
6742 }
6743 var244 = var246;
6744 RET_LABEL245:(void)0;
6745 }
6746 }
6747 {
6748 var247 = ((short int (*)(val* self, val* p0))(var235->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var235, var244) /* == on <var235:String>*/;
6749 }
6750 var175 = var247;
6751 } else {
6752 var175 = var_228;
6753 }
6754 var_248 = var175;
6755 if (var175){
6756 {
6757 { /* Inline model#MProperty#visibility (var_other173) on <var_other173:MProperty> */
6758 var251 = var_other173->attrs[COLOR_nit__model__MProperty___visibility].val; /* _visibility on <var_other173:MProperty> */
6759 if (unlikely(var251 == NULL)) {
6760 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
6761 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1757);
6762 show_backtrace(1);
6763 }
6764 var249 = var251;
6765 RET_LABEL250:(void)0;
6766 }
6767 }
6768 {
6769 var252 = nit__model_base___standard__Object___protected_visibility(self);
6770 }
6771 {
6772 var253 = standard___standard__Comparable____62d_61d(var249, var252);
6773 }
6774 var174 = var253;
6775 } else {
6776 var174 = var_248;
6777 }
6778 if (var174){
6779 if (varonce254) {
6780 var255 = varonce254;
6781 } else {
6782 var256 = "full-name-conflict";
6783 var257 = 18;
6784 var258 = standard___standard__NativeString___to_s_with_length(var256, var257);
6785 var255 = var258;
6786 varonce254 = var255;
6787 }
6788 if (varonce259) {
6789 var260 = varonce259;
6790 } else {
6791 var261 = "Warning: A property named `";
6792 var262 = 27;
6793 var263 = standard___standard__NativeString___to_s_with_length(var261, var262);
6794 var260 = var263;
6795 varonce259 = var260;
6796 }
6797 {
6798 var264 = nit___nit__MProperty___nit__model_base__MEntity__full_name(var_other173);
6799 }
6800 if (varonce265) {
6801 var266 = varonce265;
6802 } else {
6803 var267 = "` is already defined in module `";
6804 var268 = 32;
6805 var269 = standard___standard__NativeString___to_s_with_length(var267, var268);
6806 var266 = var269;
6807 varonce265 = var266;
6808 }
6809 {
6810 { /* Inline model#MProperty#intro_mclassdef (var_other173) on <var_other173:MProperty> */
6811 var272 = var_other173->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_other173:MProperty> */
6812 if (unlikely(var272 == NULL)) {
6813 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
6814 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1736);
6815 show_backtrace(1);
6816 }
6817 var270 = var272;
6818 RET_LABEL271:(void)0;
6819 }
6820 }
6821 {
6822 { /* Inline model#MClassDef#mmodule (var270) on <var270:MClassDef> */
6823 var275 = var270->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var270:MClassDef> */
6824 if (unlikely(var275 == NULL)) {
6825 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
6826 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489);
6827 show_backtrace(1);
6828 }
6829 var273 = var275;
6830 RET_LABEL274:(void)0;
6831 }
6832 }
6833 if (varonce276) {
6834 var277 = varonce276;
6835 } else {
6836 var278 = "` for the class `";
6837 var279 = 17;
6838 var280 = standard___standard__NativeString___to_s_with_length(var278, var279);
6839 var277 = var280;
6840 varonce276 = var277;
6841 }
6842 {
6843 { /* Inline model#MProperty#intro_mclassdef (var_other173) on <var_other173:MProperty> */
6844 var283 = var_other173->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_other173:MProperty> */
6845 if (unlikely(var283 == NULL)) {
6846 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
6847 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1736);
6848 show_backtrace(1);
6849 }
6850 var281 = var283;
6851 RET_LABEL282:(void)0;
6852 }
6853 }
6854 {
6855 { /* Inline model#MClassDef#mclass (var281) on <var281:MClassDef> */
6856 var286 = var281->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var281:MClassDef> */
6857 if (unlikely(var286 == NULL)) {
6858 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6859 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
6860 show_backtrace(1);
6861 }
6862 var284 = var286;
6863 RET_LABEL285:(void)0;
6864 }
6865 }
6866 {
6867 { /* Inline model#MClass#name (var284) on <var284:MClass> */
6868 var289 = var284->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var284:MClass> */
6869 if (unlikely(var289 == NULL)) {
6870 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6871 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
6872 show_backtrace(1);
6873 }
6874 var287 = var289;
6875 RET_LABEL288:(void)0;
6876 }
6877 }
6878 if (varonce290) {
6879 var291 = varonce290;
6880 } else {
6881 var292 = "`.";
6882 var293 = 2;
6883 var294 = standard___standard__NativeString___to_s_with_length(var292, var293);
6884 var291 = var294;
6885 varonce290 = var291;
6886 }
6887 var295 = NEW_standard__Array(&type_standard__Array__standard__Object);
6888 { /* var295 = array_instance Array[Object] */
6889 var296 = 7;
6890 var297 = NEW_standard__NativeArray(var296, &type_standard__NativeArray__standard__Object);
6891 ((struct instance_standard__NativeArray*)var297)->values[0] = (val*) var260;
6892 ((struct instance_standard__NativeArray*)var297)->values[1] = (val*) var264;
6893 ((struct instance_standard__NativeArray*)var297)->values[2] = (val*) var266;
6894 ((struct instance_standard__NativeArray*)var297)->values[3] = (val*) var273;
6895 ((struct instance_standard__NativeArray*)var297)->values[4] = (val*) var277;
6896 ((struct instance_standard__NativeArray*)var297)->values[5] = (val*) var287;
6897 ((struct instance_standard__NativeArray*)var297)->values[6] = (val*) var291;
6898 {
6899 ((void (*)(val* self, val* p0, long p1))(var295->class->vft[COLOR_standard__array__Array__with_native]))(var295, var297, var296) /* with_native on <var295:Array[Object]>*/;
6900 }
6901 }
6902 {
6903 var298 = ((val* (*)(val* self))(var295->class->vft[COLOR_standard__string__Object__to_s]))(var295) /* to_s on <var295:Array[Object]>*/;
6904 }
6905 {
6906 nit___nit__ModelBuilder___advice(var_modelbuilder, self, var255, var298); /* Direct call modelbuilder_base#ModelBuilder#advice on <var_modelbuilder:ModelBuilder>*/
6907 }
6908 goto BREAK_label;
6909 } else {
6910 }
6911 {
6912 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_170); /* Direct call array#ArrayIterator#next on <var_170:ArrayIterator[MProperty]>*/
6913 }
6914 } else {
6915 goto BREAK_label;
6916 }
6917 }
6918 BREAK_label: (void)0;
6919 {
6920 { /* Inline abstract_collection#Iterator#finish (var_170) on <var_170:ArrayIterator[MProperty]> */
6921 RET_LABEL299:(void)0;
6922 }
6923 }
6924 } else {
6925 }
6926 } else {
6927 }
6928 } else {
6929 var300 = !var_need_redef;
6930 if (var300){
6931 if (varonce301) {
6932 var302 = varonce301;
6933 } else {
6934 var303 = "Error: No property ";
6935 var304 = 19;
6936 var305 = standard___standard__NativeString___to_s_with_length(var303, var304);
6937 var302 = var305;
6938 varonce301 = var302;
6939 }
6940 {
6941 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
6942 var308 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
6943 if (unlikely(var308 == NULL)) {
6944 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6945 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
6946 show_backtrace(1);
6947 }
6948 var306 = var308;
6949 RET_LABEL307:(void)0;
6950 }
6951 }
6952 if (varonce309) {
6953 var310 = varonce309;
6954 } else {
6955 var311 = "::";
6956 var312 = 2;
6957 var313 = standard___standard__NativeString___to_s_with_length(var311, var312);
6958 var310 = var313;
6959 varonce309 = var310;
6960 }
6961 {
6962 { /* Inline model#MProperty#name (var_mprop) on <var_mprop:MProperty> */
6963 var316 = var_mprop->attrs[COLOR_nit__model__MProperty___name].val; /* _name on <var_mprop:MProperty> */
6964 if (unlikely(var316 == NULL)) {
6965 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6966 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1741);
6967 show_backtrace(1);
6968 }
6969 var314 = var316;
6970 RET_LABEL315:(void)0;
6971 }
6972 }
6973 if (varonce317) {
6974 var318 = varonce317;
6975 } else {
6976 var319 = " is inherited. Remove the redef keyword to define a new property.";
6977 var320 = 65;
6978 var321 = standard___standard__NativeString___to_s_with_length(var319, var320);
6979 var318 = var321;
6980 varonce317 = var318;
6981 }
6982 var322 = NEW_standard__Array(&type_standard__Array__standard__Object);
6983 { /* var322 = array_instance Array[Object] */
6984 var323 = 5;
6985 var324 = NEW_standard__NativeArray(var323, &type_standard__NativeArray__standard__Object);
6986 ((struct instance_standard__NativeArray*)var324)->values[0] = (val*) var302;
6987 ((struct instance_standard__NativeArray*)var324)->values[1] = (val*) var306;
6988 ((struct instance_standard__NativeArray*)var324)->values[2] = (val*) var310;
6989 ((struct instance_standard__NativeArray*)var324)->values[3] = (val*) var314;
6990 ((struct instance_standard__NativeArray*)var324)->values[4] = (val*) var318;
6991 {
6992 ((void (*)(val* self, val* p0, long p1))(var322->class->vft[COLOR_standard__array__Array__with_native]))(var322, var324, var323) /* with_native on <var322:Array[Object]>*/;
6993 }
6994 }
6995 {
6996 var325 = ((val* (*)(val* self))(var322->class->vft[COLOR_standard__string__Object__to_s]))(var322) /* to_s on <var322:Array[Object]>*/;
6997 }
6998 {
6999 nit___nit__ModelBuilder___error(var_modelbuilder, self, var325); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
7000 }
7001 var326 = 0;
7002 var = var326;
7003 goto RET_LABEL;
7004 } else {
7005 }
7006 }
7007 var327 = 1;
7008 var = var327;
7009 goto RET_LABEL;
7010 RET_LABEL:;
7011 return var;
7012 }
7013 /* method modelize_property#ASignature#is_visited= for (self: ASignature, Bool) */
7014 void nit__modelize_property___ASignature___is_visited_61d(val* self, short int p0) {
7015 self->attrs[COLOR_nit__modelize_property__ASignature___is_visited].s = p0; /* _is_visited on <self:ASignature> */
7016 RET_LABEL:;
7017 }
7018 /* method modelize_property#ASignature#param_names for (self: ASignature): Array[String] */
7019 val* nit__modelize_property___ASignature___param_names(val* self) {
7020 val* var /* : Array[String] */;
7021 val* var1 /* : Array[String] */;
7022 var1 = self->attrs[COLOR_nit__modelize_property__ASignature___param_names].val; /* _param_names on <self:ASignature> */
7023 if (unlikely(var1 == NULL)) {
7024 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _param_names");
7025 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 514);
7026 show_backtrace(1);
7027 }
7028 var = var1;
7029 RET_LABEL:;
7030 return var;
7031 }
7032 /* method modelize_property#ASignature#param_types for (self: ASignature): Array[MType] */
7033 val* nit__modelize_property___ASignature___param_types(val* self) {
7034 val* var /* : Array[MType] */;
7035 val* var1 /* : Array[MType] */;
7036 var1 = self->attrs[COLOR_nit__modelize_property__ASignature___param_types].val; /* _param_types on <self:ASignature> */
7037 if (unlikely(var1 == NULL)) {
7038 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _param_types");
7039 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 517);
7040 show_backtrace(1);
7041 }
7042 var = var1;
7043 RET_LABEL:;
7044 return var;
7045 }
7046 /* method modelize_property#ASignature#vararg_rank for (self: ASignature): Int */
7047 long nit__modelize_property___ASignature___vararg_rank(val* self) {
7048 long var /* : Int */;
7049 long var1 /* : Int */;
7050 var1 = self->attrs[COLOR_nit__modelize_property__ASignature___vararg_rank].l; /* _vararg_rank on <self:ASignature> */
7051 var = var1;
7052 RET_LABEL:;
7053 return var;
7054 }
7055 /* method modelize_property#ASignature#vararg_rank= for (self: ASignature, Int) */
7056 void nit__modelize_property___ASignature___vararg_rank_61d(val* self, long p0) {
7057 self->attrs[COLOR_nit__modelize_property__ASignature___vararg_rank].l = p0; /* _vararg_rank on <self:ASignature> */
7058 RET_LABEL:;
7059 }
7060 /* method modelize_property#ASignature#ret_type for (self: ASignature): nullable MType */
7061 val* nit__modelize_property___ASignature___ret_type(val* self) {
7062 val* var /* : nullable MType */;
7063 val* var1 /* : nullable MType */;
7064 var1 = self->attrs[COLOR_nit__modelize_property__ASignature___ret_type].val; /* _ret_type on <self:ASignature> */
7065 var = var1;
7066 RET_LABEL:;
7067 return var;
7068 }
7069 /* method modelize_property#ASignature#ret_type= for (self: ASignature, nullable MType) */
7070 void nit__modelize_property___ASignature___ret_type_61d(val* self, val* p0) {
7071 self->attrs[COLOR_nit__modelize_property__ASignature___ret_type].val = p0; /* _ret_type on <self:ASignature> */
7072 RET_LABEL:;
7073 }
7074 /* method modelize_property#ASignature#visit_signature for (self: ASignature, ModelBuilder, MClassDef): Bool */
7075 short int nit__modelize_property___ASignature___visit_signature(val* self, val* p0, val* p1) {
7076 short int var /* : Bool */;
7077 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
7078 val* var_mclassdef /* var mclassdef: MClassDef */;
7079 val* var1 /* : MModule */;
7080 val* var3 /* : MModule */;
7081 val* var_mmodule /* var mmodule: MModule */;
7082 val* var4 /* : Array[String] */;
7083 val* var6 /* : Array[String] */;
7084 val* var_param_names /* var param_names: Array[String] */;
7085 val* var7 /* : Array[MType] */;
7086 val* var9 /* : Array[MType] */;
7087 val* var_param_types /* var param_types: Array[MType] */;
7088 val* var10 /* : ANodes[AParam] */;
7089 val* var12 /* : ANodes[AParam] */;
7090 val* var_ /* var : ANodes[AParam] */;
7091 val* var13 /* : Iterator[ANode] */;
7092 val* var_14 /* var : Iterator[AParam] */;
7093 short int var15 /* : Bool */;
7094 val* var16 /* : nullable Object */;
7095 val* var_np /* var np: AParam */;
7096 val* var17 /* : TId */;
7097 val* var19 /* : TId */;
7098 val* var20 /* : String */;
7099 val* var21 /* : nullable AType */;
7100 val* var23 /* : nullable AType */;
7101 val* var_ntype /* var ntype: nullable AType */;
7102 val* var24 /* : null */;
7103 short int var25 /* : Bool */;
7104 short int var26 /* : Bool */;
7105 val* var_other /* var other: nullable Object */;
7106 short int var28 /* : Bool */;
7107 short int var29 /* : Bool */;
7108 val* var30 /* : nullable MType */;
7109 val* var_mtype /* var mtype: nullable MType */;
7110 val* var31 /* : null */;
7111 short int var32 /* : Bool */;
7112 short int var33 /* : Bool */;
7113 val* var_other35 /* var other: nullable Object */;
7114 short int var36 /* : Bool */;
7115 short int var38 /* : Bool */;
7116 short int var39 /* : Bool */;
7117 long var40 /* : Int */;
7118 long var_i /* var i: Int */;
7119 long var41 /* : Int */;
7120 long var43 /* : Int */;
7121 long var44 /* : Int */;
7122 long var46 /* : Int */;
7123 long var47 /* : Int */;
7124 short int var49 /* : Bool */;
7125 int cltype;
7126 int idtype;
7127 const char* var_class_name;
7128 long var50 /* : Int */;
7129 long var_51 /* var : Int */;
7130 short int var52 /* : Bool */;
7131 short int var54 /* : Bool */;
7132 int cltype55;
7133 int idtype56;
7134 const char* var_class_name57;
7135 short int var58 /* : Bool */;
7136 long var59 /* : Int */;
7137 long var60 /* : Int */;
7138 val* var61 /* : nullable TDotdotdot */;
7139 val* var63 /* : nullable TDotdotdot */;
7140 val* var64 /* : null */;
7141 short int var65 /* : Bool */;
7142 short int var66 /* : Bool */;
7143 short int var68 /* : Bool */;
7144 short int var69 /* : Bool */;
7145 long var70 /* : Int */;
7146 long var72 /* : Int */;
7147 long var73 /* : Int */;
7148 long var74 /* : Int */;
7149 long var76 /* : Int */;
7150 short int var77 /* : Bool */;
7151 short int var79 /* : Bool */;
7152 short int var80 /* : Bool */;
7153 static val* varonce;
7154 val* var81 /* : String */;
7155 char* var82 /* : NativeString */;
7156 long var83 /* : Int */;
7157 val* var84 /* : FlatString */;
7158 long var85 /* : Int */;
7159 long var87 /* : Int */;
7160 val* var88 /* : nullable Object */;
7161 static val* varonce89;
7162 val* var90 /* : String */;
7163 char* var91 /* : NativeString */;
7164 long var92 /* : Int */;
7165 val* var93 /* : FlatString */;
7166 val* var94 /* : Array[Object] */;
7167 long var95 /* : Int */;
7168 val* var96 /* : NativeArray[Object] */;
7169 val* var97 /* : String */;
7170 short int var98 /* : Bool */;
7171 long var99 /* : Int */;
7172 long var101 /* : Int */;
7173 long var102 /* : Int */;
7174 long var103 /* : Int */;
7175 short int var105 /* : Bool */;
7176 int cltype106;
7177 int idtype107;
7178 const char* var_class_name108;
7179 long var109 /* : Int */;
7180 val* var113 /* : nullable AType */;
7181 val* var115 /* : nullable AType */;
7182 val* var_ntype116 /* var ntype: nullable AType */;
7183 val* var117 /* : null */;
7184 short int var118 /* : Bool */;
7185 short int var119 /* : Bool */;
7186 short int var121 /* : Bool */;
7187 short int var122 /* : Bool */;
7188 val* var123 /* : nullable MType */;
7189 val* var125 /* : nullable MType */;
7190 val* var127 /* : nullable MType */;
7191 val* var128 /* : null */;
7192 short int var129 /* : Bool */;
7193 short int var130 /* : Bool */;
7194 short int var132 /* : Bool */;
7195 short int var134 /* : Bool */;
7196 short int var135 /* : Bool */;
7197 short int var136 /* : Bool */;
7198 short int var138 /* : Bool */;
7199 var_modelbuilder = p0;
7200 var_mclassdef = p1;
7201 {
7202 { /* Inline model#MClassDef#mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
7203 var3 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
7204 if (unlikely(var3 == NULL)) {
7205 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7206 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489);
7207 show_backtrace(1);
7208 }
7209 var1 = var3;
7210 RET_LABEL2:(void)0;
7211 }
7212 }
7213 var_mmodule = var1;
7214 {
7215 { /* Inline modelize_property#ASignature#param_names (self) on <self:ASignature> */
7216 var6 = self->attrs[COLOR_nit__modelize_property__ASignature___param_names].val; /* _param_names on <self:ASignature> */
7217 if (unlikely(var6 == NULL)) {
7218 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _param_names");
7219 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 514);
7220 show_backtrace(1);
7221 }
7222 var4 = var6;
7223 RET_LABEL5:(void)0;
7224 }
7225 }
7226 var_param_names = var4;
7227 {
7228 { /* Inline modelize_property#ASignature#param_types (self) on <self:ASignature> */
7229 var9 = self->attrs[COLOR_nit__modelize_property__ASignature___param_types].val; /* _param_types on <self:ASignature> */
7230 if (unlikely(var9 == NULL)) {
7231 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _param_types");
7232 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 517);
7233 show_backtrace(1);
7234 }
7235 var7 = var9;
7236 RET_LABEL8:(void)0;
7237 }
7238 }
7239 var_param_types = var7;
7240 {
7241 { /* Inline parser_nodes#ASignature#n_params (self) on <self:ASignature> */
7242 var12 = self->attrs[COLOR_nit__parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
7243 if (unlikely(var12 == NULL)) {
7244 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
7245 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1506);
7246 show_backtrace(1);
7247 }
7248 var10 = var12;
7249 RET_LABEL11:(void)0;
7250 }
7251 }
7252 var_ = var10;
7253 {
7254 var13 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_);
7255 }
7256 var_14 = var13;
7257 for(;;) {
7258 {
7259 var15 = ((short int (*)(val* self))(var_14->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_14) /* is_ok on <var_14:Iterator[AParam]>*/;
7260 }
7261 if (var15){
7262 {
7263 var16 = ((val* (*)(val* self))(var_14->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_14) /* item on <var_14:Iterator[AParam]>*/;
7264 }
7265 var_np = var16;
7266 {
7267 { /* Inline parser_nodes#AParam#n_id (var_np) on <var_np:AParam> */
7268 var19 = var_np->attrs[COLOR_nit__parser_nodes__AParam___n_id].val; /* _n_id on <var_np:AParam> */
7269 if (unlikely(var19 == NULL)) {
7270 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
7271 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1520);
7272 show_backtrace(1);
7273 }
7274 var17 = var19;
7275 RET_LABEL18:(void)0;
7276 }
7277 }
7278 {
7279 var20 = nit__lexer_work___Token___text(var17);
7280 }
7281 {
7282 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_param_names, var20); /* Direct call array#Array#add on <var_param_names:Array[String]>*/
7283 }
7284 {
7285 { /* Inline parser_nodes#AParam#n_type (var_np) on <var_np:AParam> */
7286 var23 = var_np->attrs[COLOR_nit__parser_nodes__AParam___n_type].val; /* _n_type on <var_np:AParam> */
7287 var21 = var23;
7288 RET_LABEL22:(void)0;
7289 }
7290 }
7291 var_ntype = var21;
7292 var24 = NULL;
7293 if (var_ntype == NULL) {
7294 var25 = 0; /* is null */
7295 } else {
7296 var25 = 1; /* arg is null and recv is not */
7297 }
7298 if (0) {
7299 { /* Inline kernel#Object#!= (var_ntype,var24) on <var_ntype:nullable AType> */
7300 var_other = var24;
7301 {
7302 var28 = ((short int (*)(val* self, val* p0))(var_ntype->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ntype, var_other) /* == on <var_ntype:nullable AType(AType)>*/;
7303 }
7304 var29 = !var28;
7305 var26 = var29;
7306 goto RET_LABEL27;
7307 RET_LABEL27:(void)0;
7308 }
7309 var25 = var26;
7310 }
7311 if (var25){
7312 {
7313 var30 = nit__modelize_class___ModelBuilder___resolve_mtype(var_modelbuilder, var_mmodule, var_mclassdef, var_ntype);
7314 }
7315 var_mtype = var30;
7316 var31 = NULL;
7317 if (var_mtype == NULL) {
7318 var32 = 1; /* is null */
7319 } else {
7320 var32 = 0; /* arg is null but recv is not */
7321 }
7322 if (0) {
7323 { /* Inline kernel#Object#== (var_mtype,var31) on <var_mtype:nullable MType> */
7324 var_other35 = var31;
7325 {
7326 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other35) on <var_mtype:nullable MType(MType)> */
7327 var38 = var_mtype == var_other35;
7328 var36 = var38;
7329 goto RET_LABEL37;
7330 RET_LABEL37:(void)0;
7331 }
7332 }
7333 var33 = var36;
7334 goto RET_LABEL34;
7335 RET_LABEL34:(void)0;
7336 }
7337 var32 = var33;
7338 }
7339 if (var32){
7340 var39 = 0;
7341 var = var39;
7342 goto RET_LABEL;
7343 } else {
7344 }
7345 var40 = 0;
7346 var_i = var40;
7347 {
7348 { /* Inline array#AbstractArrayRead#length (var_param_names) on <var_param_names:Array[String]> */
7349 var43 = var_param_names->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_param_names:Array[String]> */
7350 var41 = var43;
7351 RET_LABEL42:(void)0;
7352 }
7353 }
7354 {
7355 { /* Inline array#AbstractArrayRead#length (var_param_types) on <var_param_types:Array[MType]> */
7356 var46 = var_param_types->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_param_types:Array[MType]> */
7357 var44 = var46;
7358 RET_LABEL45:(void)0;
7359 }
7360 }
7361 {
7362 { /* Inline kernel#Int#- (var41,var44) on <var41:Int> */
7363 /* Covariant cast for argument 0 (i) <var44:Int> isa OTHER */
7364 /* <var44:Int> isa OTHER */
7365 var49 = 1; /* easy <var44:Int> isa OTHER*/
7366 if (unlikely(!var49)) {
7367 var_class_name = type_standard__Int.name;
7368 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
7369 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
7370 show_backtrace(1);
7371 }
7372 var50 = var41 - var44;
7373 var47 = var50;
7374 goto RET_LABEL48;
7375 RET_LABEL48:(void)0;
7376 }
7377 }
7378 var_51 = var47;
7379 for(;;) {
7380 {
7381 { /* Inline kernel#Int#< (var_i,var_51) on <var_i:Int> */
7382 /* Covariant cast for argument 0 (i) <var_51:Int> isa OTHER */
7383 /* <var_51:Int> isa OTHER */
7384 var54 = 1; /* easy <var_51:Int> isa OTHER*/
7385 if (unlikely(!var54)) {
7386 var_class_name57 = type_standard__Int.name;
7387 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name57);
7388 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
7389 show_backtrace(1);
7390 }
7391 var58 = var_i < var_51;
7392 var52 = var58;
7393 goto RET_LABEL53;
7394 RET_LABEL53:(void)0;
7395 }
7396 }
7397 if (var52){
7398 {
7399 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_param_types, var_mtype); /* Direct call array#Array#add on <var_param_types:Array[MType]>*/
7400 }
7401 var59 = 1;
7402 {
7403 var60 = standard___standard__Int___Discrete__successor(var_i, var59);
7404 }
7405 var_i = var60;
7406 } else {
7407 goto BREAK_label;
7408 }
7409 }
7410 BREAK_label: (void)0;
7411 {
7412 { /* Inline parser_nodes#AParam#n_dotdotdot (var_np) on <var_np:AParam> */
7413 var63 = var_np->attrs[COLOR_nit__parser_nodes__AParam___n_dotdotdot].val; /* _n_dotdotdot on <var_np:AParam> */
7414 var61 = var63;
7415 RET_LABEL62:(void)0;
7416 }
7417 }
7418 var64 = NULL;
7419 if (var61 == NULL) {
7420 var65 = 0; /* is null */
7421 } else {
7422 var65 = 1; /* arg is null and recv is not */
7423 }
7424 if (0) {
7425 { /* Inline kernel#Object#!= (var61,var64) on <var61:nullable TDotdotdot> */
7426 var_other = var64;
7427 {
7428 var68 = ((short int (*)(val* self, val* p0))(var61->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var61, var_other) /* == on <var61:nullable TDotdotdot(TDotdotdot)>*/;
7429 }
7430 var69 = !var68;
7431 var66 = var69;
7432 goto RET_LABEL67;
7433 RET_LABEL67:(void)0;
7434 }
7435 var65 = var66;
7436 }
7437 if (var65){
7438 {
7439 { /* Inline modelize_property#ASignature#vararg_rank (self) on <self:ASignature> */
7440 var72 = self->attrs[COLOR_nit__modelize_property__ASignature___vararg_rank].l; /* _vararg_rank on <self:ASignature> */
7441 var70 = var72;
7442 RET_LABEL71:(void)0;
7443 }
7444 }
7445 var73 = 1;
7446 {
7447 { /* Inline kernel#Int#unary - (var73) on <var73:Int> */
7448 var76 = -var73;
7449 var74 = var76;
7450 goto RET_LABEL75;
7451 RET_LABEL75:(void)0;
7452 }
7453 }
7454 {
7455 { /* Inline kernel#Int#!= (var70,var74) on <var70:Int> */
7456 var79 = var70 == var74;
7457 var80 = !var79;
7458 var77 = var80;
7459 goto RET_LABEL78;
7460 RET_LABEL78:(void)0;
7461 }
7462 }
7463 if (var77){
7464 if (varonce) {
7465 var81 = varonce;
7466 } else {
7467 var82 = "Error: ";
7468 var83 = 7;
7469 var84 = standard___standard__NativeString___to_s_with_length(var82, var83);
7470 var81 = var84;
7471 varonce = var81;
7472 }
7473 {
7474 { /* Inline modelize_property#ASignature#vararg_rank (self) on <self:ASignature> */
7475 var87 = self->attrs[COLOR_nit__modelize_property__ASignature___vararg_rank].l; /* _vararg_rank on <self:ASignature> */
7476 var85 = var87;
7477 RET_LABEL86:(void)0;
7478 }
7479 }
7480 {
7481 var88 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_param_names, var85);
7482 }
7483 if (varonce89) {
7484 var90 = varonce89;
7485 } else {
7486 var91 = " is already a vararg";
7487 var92 = 20;
7488 var93 = standard___standard__NativeString___to_s_with_length(var91, var92);
7489 var90 = var93;
7490 varonce89 = var90;
7491 }
7492 var94 = NEW_standard__Array(&type_standard__Array__standard__Object);
7493 { /* var94 = array_instance Array[Object] */
7494 var95 = 3;
7495 var96 = NEW_standard__NativeArray(var95, &type_standard__NativeArray__standard__Object);
7496 ((struct instance_standard__NativeArray*)var96)->values[0] = (val*) var81;
7497 ((struct instance_standard__NativeArray*)var96)->values[1] = (val*) var88;
7498 ((struct instance_standard__NativeArray*)var96)->values[2] = (val*) var90;
7499 {
7500 ((void (*)(val* self, val* p0, long p1))(var94->class->vft[COLOR_standard__array__Array__with_native]))(var94, var96, var95) /* with_native on <var94:Array[Object]>*/;
7501 }
7502 }
7503 {
7504 var97 = ((val* (*)(val* self))(var94->class->vft[COLOR_standard__string__Object__to_s]))(var94) /* to_s on <var94:Array[Object]>*/;
7505 }
7506 {
7507 nit___nit__ModelBuilder___error(var_modelbuilder, var_np, var97); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
7508 }
7509 var98 = 0;
7510 var = var98;
7511 goto RET_LABEL;
7512 } else {
7513 {
7514 { /* Inline array#AbstractArrayRead#length (var_param_names) on <var_param_names:Array[String]> */
7515 var101 = var_param_names->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_param_names:Array[String]> */
7516 var99 = var101;
7517 RET_LABEL100:(void)0;
7518 }
7519 }
7520 var102 = 1;
7521 {
7522 { /* Inline kernel#Int#- (var99,var102) on <var99:Int> */
7523 /* Covariant cast for argument 0 (i) <var102:Int> isa OTHER */
7524 /* <var102:Int> isa OTHER */
7525 var105 = 1; /* easy <var102:Int> isa OTHER*/
7526 if (unlikely(!var105)) {
7527 var_class_name108 = type_standard__Int.name;
7528 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name108);
7529 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
7530 show_backtrace(1);
7531 }
7532 var109 = var99 - var102;
7533 var103 = var109;
7534 goto RET_LABEL104;
7535 RET_LABEL104:(void)0;
7536 }
7537 }
7538 {
7539 { /* Inline modelize_property#ASignature#vararg_rank= (self,var103) on <self:ASignature> */
7540 self->attrs[COLOR_nit__modelize_property__ASignature___vararg_rank].l = var103; /* _vararg_rank on <self:ASignature> */
7541 RET_LABEL110:(void)0;
7542 }
7543 }
7544 }
7545 } else {
7546 }
7547 } else {
7548 }
7549 {
7550 ((void (*)(val* self))(var_14->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_14) /* next on <var_14:Iterator[AParam]>*/;
7551 }
7552 } else {
7553 goto BREAK_label111;
7554 }
7555 }
7556 BREAK_label111: (void)0;
7557 {
7558 { /* Inline abstract_collection#Iterator#finish (var_14) on <var_14:Iterator[AParam]> */
7559 RET_LABEL112:(void)0;
7560 }
7561 }
7562 {
7563 { /* Inline parser_nodes#ASignature#n_type (self) on <self:ASignature> */
7564 var115 = self->attrs[COLOR_nit__parser_nodes__ASignature___n_type].val; /* _n_type on <self:ASignature> */
7565 var113 = var115;
7566 RET_LABEL114:(void)0;
7567 }
7568 }
7569 var_ntype116 = var113;
7570 var117 = NULL;
7571 if (var_ntype116 == NULL) {
7572 var118 = 0; /* is null */
7573 } else {
7574 var118 = 1; /* arg is null and recv is not */
7575 }
7576 if (0) {
7577 { /* Inline kernel#Object#!= (var_ntype116,var117) on <var_ntype116:nullable AType> */
7578 var_other = var117;
7579 {
7580 var121 = ((short int (*)(val* self, val* p0))(var_ntype116->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ntype116, var_other) /* == on <var_ntype116:nullable AType(AType)>*/;
7581 }
7582 var122 = !var121;
7583 var119 = var122;
7584 goto RET_LABEL120;
7585 RET_LABEL120:(void)0;
7586 }
7587 var118 = var119;
7588 }
7589 if (var118){
7590 {
7591 var123 = nit__modelize_class___ModelBuilder___resolve_mtype(var_modelbuilder, var_mmodule, var_mclassdef, var_ntype116);
7592 }
7593 {
7594 { /* Inline modelize_property#ASignature#ret_type= (self,var123) on <self:ASignature> */
7595 self->attrs[COLOR_nit__modelize_property__ASignature___ret_type].val = var123; /* _ret_type on <self:ASignature> */
7596 RET_LABEL124:(void)0;
7597 }
7598 }
7599 {
7600 { /* Inline modelize_property#ASignature#ret_type (self) on <self:ASignature> */
7601 var127 = self->attrs[COLOR_nit__modelize_property__ASignature___ret_type].val; /* _ret_type on <self:ASignature> */
7602 var125 = var127;
7603 RET_LABEL126:(void)0;
7604 }
7605 }
7606 var128 = NULL;
7607 if (var125 == NULL) {
7608 var129 = 1; /* is null */
7609 } else {
7610 var129 = 0; /* arg is null but recv is not */
7611 }
7612 if (0) {
7613 { /* Inline kernel#Object#== (var125,var128) on <var125:nullable MType> */
7614 var_other35 = var128;
7615 {
7616 { /* Inline kernel#Object#is_same_instance (var125,var_other35) on <var125:nullable MType(MType)> */
7617 var134 = var125 == var_other35;
7618 var132 = var134;
7619 goto RET_LABEL133;
7620 RET_LABEL133:(void)0;
7621 }
7622 }
7623 var130 = var132;
7624 goto RET_LABEL131;
7625 RET_LABEL131:(void)0;
7626 }
7627 var129 = var130;
7628 }
7629 if (var129){
7630 var135 = 0;
7631 var = var135;
7632 goto RET_LABEL;
7633 } else {
7634 }
7635 } else {
7636 }
7637 var136 = 1;
7638 {
7639 { /* Inline modelize_property#ASignature#is_visited= (self,var136) on <self:ASignature> */
7640 self->attrs[COLOR_nit__modelize_property__ASignature___is_visited].s = var136; /* _is_visited on <self:ASignature> */
7641 RET_LABEL137:(void)0;
7642 }
7643 }
7644 var138 = 1;
7645 var = var138;
7646 goto RET_LABEL;
7647 RET_LABEL:;
7648 return var;
7649 }
7650 /* method modelize_property#AParam#mparameter= for (self: AParam, nullable MParameter) */
7651 void nit__modelize_property___AParam___mparameter_61d(val* self, val* p0) {
7652 self->attrs[COLOR_nit__modelize_property__AParam___mparameter].val = p0; /* _mparameter on <self:AParam> */
7653 RET_LABEL:;
7654 }
7655 /* method modelize_property#AMethPropdef#look_like_a_root_init for (self: AMethPropdef, ModelBuilder, MClassDef): Bool */
7656 short int nit__modelize_property___AMethPropdef___look_like_a_root_init(val* self, val* p0, val* p1) {
7657 short int var /* : Bool */;
7658 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
7659 val* var_mclassdef /* var mclassdef: MClassDef */;
7660 val* var1 /* : nullable TKwinit */;
7661 val* var3 /* : nullable TKwinit */;
7662 val* var4 /* : null */;
7663 short int var5 /* : Bool */;
7664 short int var6 /* : Bool */;
7665 val* var_other /* var other: nullable Object */;
7666 short int var8 /* : Bool */;
7667 short int var10 /* : Bool */;
7668 short int var11 /* : Bool */;
7669 val* var12 /* : nullable AMethid */;
7670 val* var14 /* : nullable AMethid */;
7671 val* var15 /* : null */;
7672 short int var16 /* : Bool */;
7673 short int var17 /* : Bool */;
7674 val* var_other19 /* var other: nullable Object */;
7675 short int var20 /* : Bool */;
7676 short int var21 /* : Bool */;
7677 short int var22 /* : Bool */;
7678 static val* varonce;
7679 val* var23 /* : String */;
7680 char* var24 /* : NativeString */;
7681 long var25 /* : Int */;
7682 val* var26 /* : FlatString */;
7683 val* var27 /* : nullable AAnnotation */;
7684 val* var28 /* : null */;
7685 short int var29 /* : Bool */;
7686 short int var30 /* : Bool */;
7687 short int var32 /* : Bool */;
7688 short int var33 /* : Bool */;
7689 short int var34 /* : Bool */;
7690 val* var35 /* : nullable ANode */;
7691 val* var37 /* : nullable ANode */;
7692 val* var38 /* : nullable ANode */;
7693 val* var40 /* : nullable ANode */;
7694 short int var41 /* : Bool */;
7695 int cltype;
7696 int idtype;
7697 const char* var_class_name;
7698 val* var_amod /* var amod: AModule */;
7699 val* var42 /* : nullable AModuledecl */;
7700 val* var44 /* : nullable AModuledecl */;
7701 val* var_amoddecl /* var amoddecl: nullable AModuledecl */;
7702 val* var45 /* : null */;
7703 short int var46 /* : Bool */;
7704 short int var47 /* : Bool */;
7705 short int var49 /* : Bool */;
7706 short int var50 /* : Bool */;
7707 static val* varonce51;
7708 val* var52 /* : String */;
7709 char* var53 /* : NativeString */;
7710 long var54 /* : Int */;
7711 val* var55 /* : FlatString */;
7712 val* var56 /* : nullable AAnnotation */;
7713 val* var_old /* var old: nullable AAnnotation */;
7714 val* var57 /* : null */;
7715 short int var58 /* : Bool */;
7716 short int var59 /* : Bool */;
7717 short int var61 /* : Bool */;
7718 short int var62 /* : Bool */;
7719 short int var63 /* : Bool */;
7720 val* var64 /* : nullable ASignature */;
7721 val* var66 /* : nullable ASignature */;
7722 val* var67 /* : ANodes[AParam] */;
7723 val* var69 /* : ANodes[AParam] */;
7724 long var70 /* : Int */;
7725 long var71 /* : Int */;
7726 short int var72 /* : Bool */;
7727 short int var74 /* : Bool */;
7728 int cltype75;
7729 int idtype76;
7730 const char* var_class_name77;
7731 short int var78 /* : Bool */;
7732 static val* varonce79;
7733 val* var80 /* : String */;
7734 char* var81 /* : NativeString */;
7735 long var82 /* : Int */;
7736 val* var83 /* : FlatString */;
7737 static val* varonce84;
7738 val* var85 /* : String */;
7739 char* var86 /* : NativeString */;
7740 long var87 /* : Int */;
7741 val* var88 /* : FlatString */;
7742 val* var89 /* : Array[Object] */;
7743 long var90 /* : Int */;
7744 val* var91 /* : NativeArray[Object] */;
7745 val* var92 /* : String */;
7746 short int var93 /* : Bool */;
7747 val* var94 /* : nullable AVisibility */;
7748 val* var96 /* : nullable AVisibility */;
7749 short int var97 /* : Bool */;
7750 int cltype98;
7751 int idtype99;
7752 short int var100 /* : Bool */;
7753 static val* varonce101;
7754 val* var102 /* : String */;
7755 char* var103 /* : NativeString */;
7756 long var104 /* : Int */;
7757 val* var105 /* : FlatString */;
7758 static val* varonce106;
7759 val* var107 /* : String */;
7760 char* var108 /* : NativeString */;
7761 long var109 /* : Int */;
7762 val* var110 /* : FlatString */;
7763 val* var111 /* : Array[Object] */;
7764 long var112 /* : Int */;
7765 val* var113 /* : NativeArray[Object] */;
7766 val* var114 /* : String */;
7767 short int var115 /* : Bool */;
7768 short int var116 /* : Bool */;
7769 var_modelbuilder = p0;
7770 var_mclassdef = p1;
7771 {
7772 { /* Inline parser_nodes#AMethPropdef#n_kwinit (self) on <self:AMethPropdef> */
7773 var3 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_kwinit].val; /* _n_kwinit on <self:AMethPropdef> */
7774 var1 = var3;
7775 RET_LABEL2:(void)0;
7776 }
7777 }
7778 var4 = NULL;
7779 if (var1 == NULL) {
7780 var5 = 1; /* is null */
7781 } else {
7782 var5 = 0; /* arg is null but recv is not */
7783 }
7784 if (0) {
7785 { /* Inline kernel#Object#== (var1,var4) on <var1:nullable TKwinit> */
7786 var_other = var4;
7787 {
7788 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable TKwinit(TKwinit)> */
7789 var10 = var1 == var_other;
7790 var8 = var10;
7791 goto RET_LABEL9;
7792 RET_LABEL9:(void)0;
7793 }
7794 }
7795 var6 = var8;
7796 goto RET_LABEL7;
7797 RET_LABEL7:(void)0;
7798 }
7799 var5 = var6;
7800 }
7801 if (var5){
7802 var11 = 0;
7803 var = var11;
7804 goto RET_LABEL;
7805 } else {
7806 }
7807 {
7808 { /* Inline parser_nodes#AMethPropdef#n_methid (self) on <self:AMethPropdef> */
7809 var14 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AMethPropdef> */
7810 var12 = var14;
7811 RET_LABEL13:(void)0;
7812 }
7813 }
7814 var15 = NULL;
7815 if (var12 == NULL) {
7816 var16 = 0; /* is null */
7817 } else {
7818 var16 = 1; /* arg is null and recv is not */
7819 }
7820 if (0) {
7821 { /* Inline kernel#Object#!= (var12,var15) on <var12:nullable AMethid> */
7822 var_other19 = var15;
7823 {
7824 var20 = ((short int (*)(val* self, val* p0))(var12->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var12, var_other19) /* == on <var12:nullable AMethid(AMethid)>*/;
7825 }
7826 var21 = !var20;
7827 var17 = var21;
7828 goto RET_LABEL18;
7829 RET_LABEL18:(void)0;
7830 }
7831 var16 = var17;
7832 }
7833 if (var16){
7834 var22 = 0;
7835 var = var22;
7836 goto RET_LABEL;
7837 } else {
7838 }
7839 if (varonce) {
7840 var23 = varonce;
7841 } else {
7842 var24 = "old_style_init";
7843 var25 = 14;
7844 var26 = standard___standard__NativeString___to_s_with_length(var24, var25);
7845 var23 = var26;
7846 varonce = var23;
7847 }
7848 {
7849 var27 = nit__annotation___Prod___get_single_annotation(self, var23, var_modelbuilder);
7850 }
7851 var28 = NULL;
7852 if (var27 == NULL) {
7853 var29 = 0; /* is null */
7854 } else {
7855 var29 = 1; /* arg is null and recv is not */
7856 }
7857 if (0) {
7858 { /* Inline kernel#Object#!= (var27,var28) on <var27:nullable AAnnotation> */
7859 var_other19 = var28;
7860 {
7861 var32 = ((short int (*)(val* self, val* p0))(var27->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var27, var_other19) /* == on <var27:nullable AAnnotation(AAnnotation)>*/;
7862 }
7863 var33 = !var32;
7864 var30 = var33;
7865 goto RET_LABEL31;
7866 RET_LABEL31:(void)0;
7867 }
7868 var29 = var30;
7869 }
7870 if (var29){
7871 var34 = 0;
7872 var = var34;
7873 goto RET_LABEL;
7874 } else {
7875 }
7876 {
7877 { /* Inline parser_nodes#ANode#parent (self) on <self:AMethPropdef> */
7878 var37 = self->attrs[COLOR_nit__parser_nodes__ANode___parent].val; /* _parent on <self:AMethPropdef> */
7879 var35 = var37;
7880 RET_LABEL36:(void)0;
7881 }
7882 }
7883 if (var35 == NULL) {
7884 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7885 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 601);
7886 show_backtrace(1);
7887 } else {
7888 { /* Inline parser_nodes#ANode#parent (var35) on <var35:nullable ANode> */
7889 if (unlikely(var35 == NULL)) {
7890 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7891 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 36);
7892 show_backtrace(1);
7893 }
7894 var40 = var35->attrs[COLOR_nit__parser_nodes__ANode___parent].val; /* _parent on <var35:nullable ANode> */
7895 var38 = var40;
7896 RET_LABEL39:(void)0;
7897 }
7898 }
7899 /* <var38:nullable ANode> isa AModule */
7900 cltype = type_nit__AModule.color;
7901 idtype = type_nit__AModule.id;
7902 if(var38 == NULL) {
7903 var41 = 0;
7904 } else {
7905 if(cltype >= var38->type->table_size) {
7906 var41 = 0;
7907 } else {
7908 var41 = var38->type->type_table[cltype] == idtype;
7909 }
7910 }
7911 if (unlikely(!var41)) {
7912 var_class_name = var38 == NULL ? "null" : var38->type->name;
7913 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AModule", var_class_name);
7914 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 601);
7915 show_backtrace(1);
7916 }
7917 var_amod = var38;
7918 {
7919 { /* Inline parser_nodes#AModule#n_moduledecl (var_amod) on <var_amod:AModule> */
7920 var44 = var_amod->attrs[COLOR_nit__parser_nodes__AModule___n_moduledecl].val; /* _n_moduledecl on <var_amod:AModule> */
7921 var42 = var44;
7922 RET_LABEL43:(void)0;
7923 }
7924 }
7925 var_amoddecl = var42;
7926 var45 = NULL;
7927 if (var_amoddecl == NULL) {
7928 var46 = 0; /* is null */
7929 } else {
7930 var46 = 1; /* arg is null and recv is not */
7931 }
7932 if (0) {
7933 { /* Inline kernel#Object#!= (var_amoddecl,var45) on <var_amoddecl:nullable AModuledecl> */
7934 var_other19 = var45;
7935 {
7936 var49 = ((short int (*)(val* self, val* p0))(var_amoddecl->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_amoddecl, var_other19) /* == on <var_amoddecl:nullable AModuledecl(AModuledecl)>*/;
7937 }
7938 var50 = !var49;
7939 var47 = var50;
7940 goto RET_LABEL48;
7941 RET_LABEL48:(void)0;
7942 }
7943 var46 = var47;
7944 }
7945 if (var46){
7946 if (varonce51) {
7947 var52 = varonce51;
7948 } else {
7949 var53 = "old_style_init";
7950 var54 = 14;
7951 var55 = standard___standard__NativeString___to_s_with_length(var53, var54);
7952 var52 = var55;
7953 varonce51 = var52;
7954 }
7955 {
7956 var56 = nit__annotation___Prod___get_single_annotation(var_amoddecl, var52, var_modelbuilder);
7957 }
7958 var_old = var56;
7959 var57 = NULL;
7960 if (var_old == NULL) {
7961 var58 = 0; /* is null */
7962 } else {
7963 var58 = 1; /* arg is null and recv is not */
7964 }
7965 if (0) {
7966 { /* Inline kernel#Object#!= (var_old,var57) on <var_old:nullable AAnnotation> */
7967 var_other19 = var57;
7968 {
7969 var61 = ((short int (*)(val* self, val* p0))(var_old->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_old, var_other19) /* == on <var_old:nullable AAnnotation(AAnnotation)>*/;
7970 }
7971 var62 = !var61;
7972 var59 = var62;
7973 goto RET_LABEL60;
7974 RET_LABEL60:(void)0;
7975 }
7976 var58 = var59;
7977 }
7978 if (var58){
7979 var63 = 0;
7980 var = var63;
7981 goto RET_LABEL;
7982 } else {
7983 }
7984 } else {
7985 }
7986 {
7987 { /* Inline parser_nodes#AMethPropdef#n_signature (self) on <self:AMethPropdef> */
7988 var66 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AMethPropdef> */
7989 var64 = var66;
7990 RET_LABEL65:(void)0;
7991 }
7992 }
7993 if (var64 == NULL) {
7994 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7995 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 608);
7996 show_backtrace(1);
7997 } else {
7998 { /* Inline parser_nodes#ASignature#n_params (var64) on <var64:nullable ASignature> */
7999 if (unlikely(var64 == NULL)) {
8000 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8001 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1506);
8002 show_backtrace(1);
8003 }
8004 var69 = var64->attrs[COLOR_nit__parser_nodes__ASignature___n_params].val; /* _n_params on <var64:nullable ASignature> */
8005 if (unlikely(var69 == NULL)) {
8006 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
8007 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1506);
8008 show_backtrace(1);
8009 }
8010 var67 = var69;
8011 RET_LABEL68:(void)0;
8012 }
8013 }
8014 {
8015 var70 = nit___nit__ANodes___standard__abstract_collection__Collection__length(var67);
8016 }
8017 var71 = 0;
8018 {
8019 { /* Inline kernel#Int#> (var70,var71) on <var70:Int> */
8020 /* Covariant cast for argument 0 (i) <var71:Int> isa OTHER */
8021 /* <var71:Int> isa OTHER */
8022 var74 = 1; /* easy <var71:Int> isa OTHER*/
8023 if (unlikely(!var74)) {
8024 var_class_name77 = type_standard__Int.name;
8025 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name77);
8026 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
8027 show_backtrace(1);
8028 }
8029 var78 = var70 > var71;
8030 var72 = var78;
8031 goto RET_LABEL73;
8032 RET_LABEL73:(void)0;
8033 }
8034 }
8035 if (var72){
8036 if (varonce79) {
8037 var80 = varonce79;
8038 } else {
8039 var81 = "old-init";
8040 var82 = 8;
8041 var83 = standard___standard__NativeString___to_s_with_length(var81, var82);
8042 var80 = var83;
8043 varonce79 = var80;
8044 }
8045 if (varonce84) {
8046 var85 = varonce84;
8047 } else {
8048 var86 = "Warning: init with signature in ";
8049 var87 = 32;
8050 var88 = standard___standard__NativeString___to_s_with_length(var86, var87);
8051 var85 = var88;
8052 varonce84 = var85;
8053 }
8054 var89 = NEW_standard__Array(&type_standard__Array__standard__Object);
8055 { /* var89 = array_instance Array[Object] */
8056 var90 = 2;
8057 var91 = NEW_standard__NativeArray(var90, &type_standard__NativeArray__standard__Object);
8058 ((struct instance_standard__NativeArray*)var91)->values[0] = (val*) var85;
8059 ((struct instance_standard__NativeArray*)var91)->values[1] = (val*) var_mclassdef;
8060 {
8061 ((void (*)(val* self, val* p0, long p1))(var89->class->vft[COLOR_standard__array__Array__with_native]))(var89, var91, var90) /* with_native on <var89:Array[Object]>*/;
8062 }
8063 }
8064 {
8065 var92 = ((val* (*)(val* self))(var89->class->vft[COLOR_standard__string__Object__to_s]))(var89) /* to_s on <var89:Array[Object]>*/;
8066 }
8067 {
8068 nit___nit__ModelBuilder___advice(var_modelbuilder, self, var80, var92); /* Direct call modelbuilder_base#ModelBuilder#advice on <var_modelbuilder:ModelBuilder>*/
8069 }
8070 var93 = 0;
8071 var = var93;
8072 goto RET_LABEL;
8073 } else {
8074 }
8075 {
8076 { /* Inline parser_nodes#ADefinition#n_visibility (self) on <self:AMethPropdef> */
8077 var96 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val; /* _n_visibility on <self:AMethPropdef> */
8078 var94 = var96;
8079 RET_LABEL95:(void)0;
8080 }
8081 }
8082 /* <var94:nullable AVisibility> isa APublicVisibility */
8083 cltype98 = type_nit__APublicVisibility.color;
8084 idtype99 = type_nit__APublicVisibility.id;
8085 if(var94 == NULL) {
8086 var97 = 0;
8087 } else {
8088 if(cltype98 >= var94->type->table_size) {
8089 var97 = 0;
8090 } else {
8091 var97 = var94->type->type_table[cltype98] == idtype99;
8092 }
8093 }
8094 var100 = !var97;
8095 if (var100){
8096 if (varonce101) {
8097 var102 = varonce101;
8098 } else {
8099 var103 = "old-init";
8100 var104 = 8;
8101 var105 = standard___standard__NativeString___to_s_with_length(var103, var104);
8102 var102 = var105;
8103 varonce101 = var102;
8104 }
8105 if (varonce106) {
8106 var107 = varonce106;
8107 } else {
8108 var108 = "Warning: non-public init in ";
8109 var109 = 28;
8110 var110 = standard___standard__NativeString___to_s_with_length(var108, var109);
8111 var107 = var110;
8112 varonce106 = var107;
8113 }
8114 var111 = NEW_standard__Array(&type_standard__Array__standard__Object);
8115 { /* var111 = array_instance Array[Object] */
8116 var112 = 2;
8117 var113 = NEW_standard__NativeArray(var112, &type_standard__NativeArray__standard__Object);
8118 ((struct instance_standard__NativeArray*)var113)->values[0] = (val*) var107;
8119 ((struct instance_standard__NativeArray*)var113)->values[1] = (val*) var_mclassdef;
8120 {
8121 ((void (*)(val* self, val* p0, long p1))(var111->class->vft[COLOR_standard__array__Array__with_native]))(var111, var113, var112) /* with_native on <var111:Array[Object]>*/;
8122 }
8123 }
8124 {
8125 var114 = ((val* (*)(val* self))(var111->class->vft[COLOR_standard__string__Object__to_s]))(var111) /* to_s on <var111:Array[Object]>*/;
8126 }
8127 {
8128 nit___nit__ModelBuilder___advice(var_modelbuilder, self, var102, var114); /* Direct call modelbuilder_base#ModelBuilder#advice on <var_modelbuilder:ModelBuilder>*/
8129 }
8130 var115 = 0;
8131 var = var115;
8132 goto RET_LABEL;
8133 } else {
8134 }
8135 var116 = 1;
8136 var = var116;
8137 goto RET_LABEL;
8138 RET_LABEL:;
8139 return var;
8140 }
8141 /* method modelize_property#AMethPropdef#build_property for (self: AMethPropdef, ModelBuilder, MClassDef) */
8142 void nit__modelize_property___AMethPropdef___APropdef__build_property(val* self, val* p0, val* p1) {
8143 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
8144 val* var_mclassdef /* var mclassdef: MClassDef */;
8145 val* var /* : nullable TKwinit */;
8146 val* var2 /* : nullable TKwinit */;
8147 val* var_n_kwinit /* var n_kwinit: nullable TKwinit */;
8148 val* var3 /* : nullable TKwnew */;
8149 val* var5 /* : nullable TKwnew */;
8150 val* var_n_kwnew /* var n_kwnew: nullable TKwnew */;
8151 short int var6 /* : Bool */;
8152 val* var7 /* : null */;
8153 short int var8 /* : Bool */;
8154 short int var9 /* : Bool */;
8155 val* var_other /* var other: nullable Object */;
8156 short int var11 /* : Bool */;
8157 short int var12 /* : Bool */;
8158 short int var_ /* var : Bool */;
8159 val* var13 /* : null */;
8160 short int var14 /* : Bool */;
8161 short int var15 /* : Bool */;
8162 short int var17 /* : Bool */;
8163 short int var18 /* : Bool */;
8164 short int var_is_init /* var is_init: Bool */;
8165 val* var19 /* : nullable AMethid */;
8166 val* var21 /* : nullable AMethid */;
8167 val* var_amethodid /* var amethodid: nullable AMethid */;
8168 val* var22 /* : null */;
8169 short int var23 /* : Bool */;
8170 short int var24 /* : Bool */;
8171 val* var_other26 /* var other: nullable Object */;
8172 short int var27 /* : Bool */;
8173 short int var29 /* : Bool */;
8174 short int var30 /* : Bool */;
8175 static val* varonce;
8176 val* var31 /* : String */;
8177 char* var32 /* : NativeString */;
8178 long var33 /* : Int */;
8179 val* var34 /* : FlatString */;
8180 val* var_name /* var name: String */;
8181 val* var_name_node /* var name_node: ANode */;
8182 val* var35 /* : null */;
8183 short int var36 /* : Bool */;
8184 short int var37 /* : Bool */;
8185 short int var39 /* : Bool */;
8186 short int var40 /* : Bool */;
8187 static val* varonce41;
8188 val* var42 /* : String */;
8189 char* var43 /* : NativeString */;
8190 long var44 /* : Int */;
8191 val* var45 /* : FlatString */;
8192 val* var46 /* : null */;
8193 short int var47 /* : Bool */;
8194 short int var48 /* : Bool */;
8195 short int var50 /* : Bool */;
8196 short int var51 /* : Bool */;
8197 static val* varonce52;
8198 val* var53 /* : String */;
8199 char* var54 /* : NativeString */;
8200 long var55 /* : Int */;
8201 val* var56 /* : FlatString */;
8202 short int var57 /* : Bool */;
8203 int cltype;
8204 int idtype;
8205 val* var58 /* : TId */;
8206 val* var60 /* : TId */;
8207 val* var61 /* : String */;
8208 val* var62 /* : String */;
8209 short int var63 /* : Bool */;
8210 static val* varonce64;
8211 val* var65 /* : String */;
8212 char* var66 /* : NativeString */;
8213 long var67 /* : Int */;
8214 val* var68 /* : FlatString */;
8215 short int var69 /* : Bool */;
8216 short int var_70 /* var : Bool */;
8217 val* var71 /* : nullable ASignature */;
8218 val* var73 /* : nullable ASignature */;
8219 val* var74 /* : ANodes[AParam] */;
8220 val* var76 /* : ANodes[AParam] */;
8221 long var77 /* : Int */;
8222 long var78 /* : Int */;
8223 short int var79 /* : Bool */;
8224 short int var81 /* : Bool */;
8225 static val* varonce82;
8226 val* var83 /* : String */;
8227 char* var84 /* : NativeString */;
8228 long var85 /* : Int */;
8229 val* var86 /* : FlatString */;
8230 short int var87 /* : Bool */;
8231 short int var_look_like_a_root_init /* var look_like_a_root_init: Bool */;
8232 val* var88 /* : null */;
8233 val* var_mprop /* var mprop: nullable MMethod */;
8234 short int var89 /* : Bool */;
8235 short int var90 /* : Bool */;
8236 short int var_91 /* var : Bool */;
8237 val* var92 /* : nullable TKwredef */;
8238 val* var94 /* : nullable TKwredef */;
8239 val* var95 /* : null */;
8240 short int var96 /* : Bool */;
8241 short int var97 /* : Bool */;
8242 short int var99 /* : Bool */;
8243 short int var100 /* : Bool */;
8244 val* var101 /* : nullable MProperty */;
8245 short int var102 /* : Bool */;
8246 int cltype103;
8247 int idtype104;
8248 const char* var_class_name;
8249 short int var105 /* : Bool */;
8250 val* var106 /* : null */;
8251 short int var107 /* : Bool */;
8252 short int var108 /* : Bool */;
8253 short int var110 /* : Bool */;
8254 short int var112 /* : Bool */;
8255 short int var_113 /* var : Bool */;
8256 val* var114 /* : nullable MMethod */;
8257 val* var116 /* : nullable MMethod */;
8258 val* var117 /* : nullable AExpr */;
8259 val* var119 /* : nullable AExpr */;
8260 val* var_nb /* var nb: nullable AExpr */;
8261 short int var120 /* : Bool */;
8262 short int var121 /* : Bool */;
8263 short int var122 /* : Bool */;
8264 int cltype123;
8265 int idtype124;
8266 short int var_125 /* var : Bool */;
8267 val* var126 /* : ANodes[AExpr] */;
8268 val* var128 /* : ANodes[AExpr] */;
8269 short int var129 /* : Bool */;
8270 short int var_130 /* var : Bool */;
8271 val* var131 /* : nullable ADoc */;
8272 val* var133 /* : nullable ADoc */;
8273 val* var134 /* : null */;
8274 short int var135 /* : Bool */;
8275 short int var136 /* : Bool */;
8276 short int var138 /* : Bool */;
8277 short int var140 /* : Bool */;
8278 static val* varonce141;
8279 val* var142 /* : String */;
8280 char* var143 /* : NativeString */;
8281 long var144 /* : Int */;
8282 val* var145 /* : FlatString */;
8283 static val* varonce146;
8284 val* var147 /* : String */;
8285 char* var148 /* : NativeString */;
8286 long var149 /* : Int */;
8287 val* var150 /* : FlatString */;
8288 val* var151 /* : Array[Object] */;
8289 long var152 /* : Int */;
8290 val* var153 /* : NativeArray[Object] */;
8291 val* var154 /* : String */;
8292 val* var155 /* : null */;
8293 short int var156 /* : Bool */;
8294 short int var157 /* : Bool */;
8295 short int var159 /* : Bool */;
8296 short int var161 /* : Bool */;
8297 val* var162 /* : nullable AVisibility */;
8298 val* var164 /* : nullable AVisibility */;
8299 val* var165 /* : MVisibility */;
8300 val* var_mvisibility /* var mvisibility: MVisibility */;
8301 val* var166 /* : MMethod */;
8302 short int var167 /* : Bool */;
8303 short int var_168 /* var : Bool */;
8304 val* var169 /* : nullable MMethod */;
8305 val* var171 /* : nullable MMethod */;
8306 val* var172 /* : null */;
8307 short int var173 /* : Bool */;
8308 short int var174 /* : Bool */;
8309 short int var176 /* : Bool */;
8310 short int var178 /* : Bool */;
8311 short int var180 /* : Bool */;
8312 val* var183 /* : null */;
8313 short int var184 /* : Bool */;
8314 short int var185 /* : Bool */;
8315 short int var187 /* : Bool */;
8316 short int var188 /* : Bool */;
8317 val* var190 /* : nullable ANode */;
8318 val* var192 /* : nullable ANode */;
8319 short int var193 /* : Bool */;
8320 int cltype194;
8321 int idtype195;
8322 short int var196 /* : Bool */;
8323 val* var198 /* : nullable TKwredef */;
8324 val* var200 /* : nullable TKwredef */;
8325 short int var201 /* : Bool */;
8326 short int var202 /* : Bool */;
8327 val* var203 /* : nullable TKwredef */;
8328 val* var205 /* : nullable TKwredef */;
8329 short int var206 /* : Bool */;
8330 int cltype207;
8331 int idtype208;
8332 short int var209 /* : Bool */;
8333 short int var210 /* : Bool */;
8334 short int var211 /* : Bool */;
8335 val* var212 /* : nullable AVisibility */;
8336 val* var214 /* : nullable AVisibility */;
8337 val* var215 /* : Map[MProperty, APropdef] */;
8338 val* var217 /* : Map[MProperty, APropdef] */;
8339 val* var_218 /* var : Map[MProperty, APropdef] */;
8340 val* var219 /* : MapIterator[nullable Object, nullable Object] */;
8341 val* var_220 /* var : MapIterator[MProperty, APropdef] */;
8342 short int var221 /* : Bool */;
8343 val* var222 /* : nullable Object */;
8344 val* var_p /* var p: MProperty */;
8345 val* var223 /* : nullable Object */;
8346 val* var_n /* var n: APropdef */;
8347 short int var224 /* : Bool */;
8348 short int var225 /* : Bool */;
8349 short int var226 /* : Bool */;
8350 short int var228 /* : Bool */;
8351 short int var229 /* : Bool */;
8352 short int var_230 /* var : Bool */;
8353 short int var231 /* : Bool */;
8354 int cltype232;
8355 int idtype233;
8356 short int var_234 /* var : Bool */;
8357 val* var235 /* : String */;
8358 val* var237 /* : String */;
8359 short int var238 /* : Bool */;
8360 val* var239 /* : nullable TKwredef */;
8361 val* var241 /* : nullable TKwredef */;
8362 short int var242 /* : Bool */;
8363 short int var243 /* : Bool */;
8364 val* var245 /* : Map[MProperty, APropdef] */;
8365 val* var247 /* : Map[MProperty, APropdef] */;
8366 val* var248 /* : MMethodDef */;
8367 val* var249 /* : Location */;
8368 val* var251 /* : Location */;
8369 val* var_mpropdef /* var mpropdef: MMethodDef */;
8370 short int var252 /* : Bool */;
8371 int cltype253;
8372 int idtype254;
8373 const struct type* type_struct;
8374 const char* var_class_name255;
8375 short int var257 /* : Bool */;
8376 int cltype258;
8377 int idtype259;
8378 const struct type* type_struct260;
8379 const char* var_class_name261;
8380 val* var262 /* : HashMap[MPropDef, APropdef] */;
8381 val* var264 /* : HashMap[MPropDef, APropdef] */;
8382 short int var265 /* : Bool */;
8383 val* var266 /* : ToolContext */;
8384 val* var268 /* : ToolContext */;
8385 static val* varonce269;
8386 val* var270 /* : String */;
8387 char* var271 /* : NativeString */;
8388 long var272 /* : Int */;
8389 val* var273 /* : FlatString */;
8390 val* var274 /* : String */;
8391 val* var275 /* : Array[Object] */;
8392 long var276 /* : Int */;
8393 val* var277 /* : NativeArray[Object] */;
8394 val* var278 /* : String */;
8395 long var279 /* : Int */;
8396 val* var280 /* : ToolContext */;
8397 val* var282 /* : ToolContext */;
8398 static val* varonce283;
8399 val* var284 /* : String */;
8400 char* var285 /* : NativeString */;
8401 long var286 /* : Int */;
8402 val* var287 /* : FlatString */;
8403 val* var288 /* : String */;
8404 val* var289 /* : Array[Object] */;
8405 long var290 /* : Int */;
8406 val* var291 /* : NativeArray[Object] */;
8407 val* var292 /* : String */;
8408 long var293 /* : Int */;
8409 var_modelbuilder = p0;
8410 var_mclassdef = p1;
8411 {
8412 { /* Inline parser_nodes#AMethPropdef#n_kwinit (self) on <self:AMethPropdef> */
8413 var2 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_kwinit].val; /* _n_kwinit on <self:AMethPropdef> */
8414 var = var2;
8415 RET_LABEL1:(void)0;
8416 }
8417 }
8418 var_n_kwinit = var;
8419 {
8420 { /* Inline parser_nodes#AMethPropdef#n_kwnew (self) on <self:AMethPropdef> */
8421 var5 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_kwnew].val; /* _n_kwnew on <self:AMethPropdef> */
8422 var3 = var5;
8423 RET_LABEL4:(void)0;
8424 }
8425 }
8426 var_n_kwnew = var3;
8427 var7 = NULL;
8428 if (var_n_kwinit == NULL) {
8429 var8 = 0; /* is null */
8430 } else {
8431 var8 = 1; /* arg is null and recv is not */
8432 }
8433 if (0) {
8434 { /* Inline kernel#Object#!= (var_n_kwinit,var7) on <var_n_kwinit:nullable TKwinit> */
8435 var_other = var7;
8436 {
8437 var11 = ((short int (*)(val* self, val* p0))(var_n_kwinit->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwinit, var_other) /* == on <var_n_kwinit:nullable TKwinit(TKwinit)>*/;
8438 }
8439 var12 = !var11;
8440 var9 = var12;
8441 goto RET_LABEL10;
8442 RET_LABEL10:(void)0;
8443 }
8444 var8 = var9;
8445 }
8446 var_ = var8;
8447 if (var8){
8448 var6 = var_;
8449 } else {
8450 var13 = NULL;
8451 if (var_n_kwnew == NULL) {
8452 var14 = 0; /* is null */
8453 } else {
8454 var14 = 1; /* arg is null and recv is not */
8455 }
8456 if (0) {
8457 { /* Inline kernel#Object#!= (var_n_kwnew,var13) on <var_n_kwnew:nullable TKwnew> */
8458 var_other = var13;
8459 {
8460 var17 = ((short int (*)(val* self, val* p0))(var_n_kwnew->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwnew, var_other) /* == on <var_n_kwnew:nullable TKwnew(TKwnew)>*/;
8461 }
8462 var18 = !var17;
8463 var15 = var18;
8464 goto RET_LABEL16;
8465 RET_LABEL16:(void)0;
8466 }
8467 var14 = var15;
8468 }
8469 var6 = var14;
8470 }
8471 var_is_init = var6;
8472 {
8473 { /* Inline parser_nodes#AMethPropdef#n_methid (self) on <self:AMethPropdef> */
8474 var21 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AMethPropdef> */
8475 var19 = var21;
8476 RET_LABEL20:(void)0;
8477 }
8478 }
8479 var_amethodid = var19;
8480 var22 = NULL;
8481 if (var_amethodid == NULL) {
8482 var23 = 1; /* is null */
8483 } else {
8484 var23 = 0; /* arg is null but recv is not */
8485 }
8486 if (0) {
8487 { /* Inline kernel#Object#== (var_amethodid,var22) on <var_amethodid:nullable AMethid> */
8488 var_other26 = var22;
8489 {
8490 { /* Inline kernel#Object#is_same_instance (var_amethodid,var_other26) on <var_amethodid:nullable AMethid(AMethid)> */
8491 var29 = var_amethodid == var_other26;
8492 var27 = var29;
8493 goto RET_LABEL28;
8494 RET_LABEL28:(void)0;
8495 }
8496 }
8497 var24 = var27;
8498 goto RET_LABEL25;
8499 RET_LABEL25:(void)0;
8500 }
8501 var23 = var24;
8502 }
8503 if (var23){
8504 var30 = !var_is_init;
8505 if (var30){
8506 if (varonce) {
8507 var31 = varonce;
8508 } else {
8509 var32 = "main";
8510 var33 = 4;
8511 var34 = standard___standard__NativeString___to_s_with_length(var32, var33);
8512 var31 = var34;
8513 varonce = var31;
8514 }
8515 var_name = var31;
8516 var_name_node = self;
8517 } else {
8518 var35 = NULL;
8519 if (var_n_kwinit == NULL) {
8520 var36 = 0; /* is null */
8521 } else {
8522 var36 = 1; /* arg is null and recv is not */
8523 }
8524 if (0) {
8525 { /* Inline kernel#Object#!= (var_n_kwinit,var35) on <var_n_kwinit:nullable TKwinit> */
8526 var_other = var35;
8527 {
8528 var39 = ((short int (*)(val* self, val* p0))(var_n_kwinit->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwinit, var_other) /* == on <var_n_kwinit:nullable TKwinit(TKwinit)>*/;
8529 }
8530 var40 = !var39;
8531 var37 = var40;
8532 goto RET_LABEL38;
8533 RET_LABEL38:(void)0;
8534 }
8535 var36 = var37;
8536 }
8537 if (var36){
8538 if (varonce41) {
8539 var42 = varonce41;
8540 } else {
8541 var43 = "init";
8542 var44 = 4;
8543 var45 = standard___standard__NativeString___to_s_with_length(var43, var44);
8544 var42 = var45;
8545 varonce41 = var42;
8546 }
8547 var_name = var42;
8548 var_name_node = var_n_kwinit;
8549 } else {
8550 var46 = NULL;
8551 if (var_n_kwnew == NULL) {
8552 var47 = 0; /* is null */
8553 } else {
8554 var47 = 1; /* arg is null and recv is not */
8555 }
8556 if (0) {
8557 { /* Inline kernel#Object#!= (var_n_kwnew,var46) on <var_n_kwnew:nullable TKwnew> */
8558 var_other = var46;
8559 {
8560 var50 = ((short int (*)(val* self, val* p0))(var_n_kwnew->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwnew, var_other) /* == on <var_n_kwnew:nullable TKwnew(TKwnew)>*/;
8561 }
8562 var51 = !var50;
8563 var48 = var51;
8564 goto RET_LABEL49;
8565 RET_LABEL49:(void)0;
8566 }
8567 var47 = var48;
8568 }
8569 if (var47){
8570 if (varonce52) {
8571 var53 = varonce52;
8572 } else {
8573 var54 = "new";
8574 var55 = 3;
8575 var56 = standard___standard__NativeString___to_s_with_length(var54, var55);
8576 var53 = var56;
8577 varonce52 = var53;
8578 }
8579 var_name = var53;
8580 var_name_node = var_n_kwnew;
8581 } else {
8582 PRINT_ERROR("Runtime error: %s", "Aborted");
8583 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 640);
8584 show_backtrace(1);
8585 }
8586 }
8587 }
8588 } else {
8589 /* <var_amethodid:nullable AMethid(AMethid)> isa AIdMethid */
8590 cltype = type_nit__AIdMethid.color;
8591 idtype = type_nit__AIdMethid.id;
8592 if(cltype >= var_amethodid->type->table_size) {
8593 var57 = 0;
8594 } else {
8595 var57 = var_amethodid->type->type_table[cltype] == idtype;
8596 }
8597 if (var57){
8598 {
8599 { /* Inline parser_nodes#AIdMethid#n_id (var_amethodid) on <var_amethodid:nullable AMethid(AIdMethid)> */
8600 var60 = var_amethodid->attrs[COLOR_nit__parser_nodes__AIdMethid___n_id].val; /* _n_id on <var_amethodid:nullable AMethid(AIdMethid)> */
8601 if (unlikely(var60 == NULL)) {
8602 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
8603 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1339);
8604 show_backtrace(1);
8605 }
8606 var58 = var60;
8607 RET_LABEL59:(void)0;
8608 }
8609 }
8610 {
8611 var61 = nit__lexer_work___Token___text(var58);
8612 }
8613 var_name = var61;
8614 var_name_node = var_amethodid;
8615 } else {
8616 {
8617 var62 = nit__parser_work___Prod___collect_text(var_amethodid);
8618 }
8619 var_name = var62;
8620 var_name_node = var_amethodid;
8621 if (varonce64) {
8622 var65 = varonce64;
8623 } else {
8624 var66 = "-";
8625 var67 = 1;
8626 var68 = standard___standard__NativeString___to_s_with_length(var66, var67);
8627 var65 = var68;
8628 varonce64 = var65;
8629 }
8630 {
8631 var69 = ((short int (*)(val* self, val* p0))(var_name->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_name, var65) /* == on <var_name:String>*/;
8632 }
8633 var_70 = var69;
8634 if (var69){
8635 {
8636 { /* Inline parser_nodes#AMethPropdef#n_signature (self) on <self:AMethPropdef> */
8637 var73 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AMethPropdef> */
8638 var71 = var73;
8639 RET_LABEL72:(void)0;
8640 }
8641 }
8642 if (var71 == NULL) {
8643 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8644 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 650);
8645 show_backtrace(1);
8646 } else {
8647 { /* Inline parser_nodes#ASignature#n_params (var71) on <var71:nullable ASignature> */
8648 if (unlikely(var71 == NULL)) {
8649 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8650 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1506);
8651 show_backtrace(1);
8652 }
8653 var76 = var71->attrs[COLOR_nit__parser_nodes__ASignature___n_params].val; /* _n_params on <var71:nullable ASignature> */
8654 if (unlikely(var76 == NULL)) {
8655 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
8656 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1506);
8657 show_backtrace(1);
8658 }
8659 var74 = var76;
8660 RET_LABEL75:(void)0;
8661 }
8662 }
8663 {
8664 var77 = nit___nit__ANodes___standard__abstract_collection__Collection__length(var74);
8665 }
8666 var78 = 0;
8667 {
8668 { /* Inline kernel#Int#== (var77,var78) on <var77:Int> */
8669 var81 = var77 == var78;
8670 var79 = var81;
8671 goto RET_LABEL80;
8672 RET_LABEL80:(void)0;
8673 }
8674 }
8675 var63 = var79;
8676 } else {
8677 var63 = var_70;
8678 }
8679 if (var63){
8680 if (varonce82) {
8681 var83 = varonce82;
8682 } else {
8683 var84 = "unary -";
8684 var85 = 7;
8685 var86 = standard___standard__NativeString___to_s_with_length(var84, var85);
8686 var83 = var86;
8687 varonce82 = var83;
8688 }
8689 var_name = var83;
8690 } else {
8691 }
8692 }
8693 }
8694 {
8695 var87 = nit__modelize_property___AMethPropdef___look_like_a_root_init(self, var_modelbuilder, var_mclassdef);
8696 }
8697 var_look_like_a_root_init = var87;
8698 var88 = NULL;
8699 var_mprop = var88;
8700 var90 = !var_is_init;
8701 var_91 = var90;
8702 if (var90){
8703 var89 = var_91;
8704 } else {
8705 {
8706 { /* Inline parser_nodes#ADefinition#n_kwredef (self) on <self:AMethPropdef> */
8707 var94 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val; /* _n_kwredef on <self:AMethPropdef> */
8708 var92 = var94;
8709 RET_LABEL93:(void)0;
8710 }
8711 }
8712 var95 = NULL;
8713 if (var92 == NULL) {
8714 var96 = 0; /* is null */
8715 } else {
8716 var96 = 1; /* arg is null and recv is not */
8717 }
8718 if (0) {
8719 { /* Inline kernel#Object#!= (var92,var95) on <var92:nullable TKwredef> */
8720 var_other = var95;
8721 {
8722 var99 = ((short int (*)(val* self, val* p0))(var92->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var92, var_other) /* == on <var92:nullable TKwredef(TKwredef)>*/;
8723 }
8724 var100 = !var99;
8725 var97 = var100;
8726 goto RET_LABEL98;
8727 RET_LABEL98:(void)0;
8728 }
8729 var96 = var97;
8730 }
8731 var89 = var96;
8732 }
8733 if (var89){
8734 {
8735 var101 = nit___nit__ModelBuilder___try_get_mproperty_by_name(var_modelbuilder, var_name_node, var_mclassdef, var_name);
8736 }
8737 /* <var101:nullable MProperty> isa nullable MMethod */
8738 cltype103 = type_nullable__nit__MMethod.color;
8739 idtype104 = type_nullable__nit__MMethod.id;
8740 if(var101 == NULL) {
8741 var102 = 1;
8742 } else {
8743 if(cltype103 >= var101->type->table_size) {
8744 var102 = 0;
8745 } else {
8746 var102 = var101->type->type_table[cltype103] == idtype104;
8747 }
8748 }
8749 if (unlikely(!var102)) {
8750 var_class_name = var101 == NULL ? "null" : var101->type->name;
8751 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name);
8752 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 657);
8753 show_backtrace(1);
8754 }
8755 var_mprop = var101;
8756 } else {
8757 }
8758 var106 = NULL;
8759 if (var_mprop == NULL) {
8760 var107 = 1; /* is null */
8761 } else {
8762 var107 = 0; /* arg is null but recv is not */
8763 }
8764 if (0) {
8765 { /* Inline kernel#Object#== (var_mprop,var106) on <var_mprop:nullable MMethod> */
8766 var_other26 = var106;
8767 {
8768 { /* Inline kernel#Object#is_same_instance (var_mprop,var_other26) on <var_mprop:nullable MMethod(MMethod)> */
8769 var112 = var_mprop == var_other26;
8770 var110 = var112;
8771 goto RET_LABEL111;
8772 RET_LABEL111:(void)0;
8773 }
8774 }
8775 var108 = var110;
8776 goto RET_LABEL109;
8777 RET_LABEL109:(void)0;
8778 }
8779 var107 = var108;
8780 }
8781 var_113 = var107;
8782 if (var107){
8783 var105 = var_look_like_a_root_init;
8784 } else {
8785 var105 = var_113;
8786 }
8787 if (var105){
8788 {
8789 { /* Inline modelize_property#ModelBuilder#the_root_init_mmethod (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
8790 var116 = var_modelbuilder->attrs[COLOR_nit__modelize_property__ModelBuilder___the_root_init_mmethod].val; /* _the_root_init_mmethod on <var_modelbuilder:ModelBuilder> */
8791 var114 = var116;
8792 RET_LABEL115:(void)0;
8793 }
8794 }
8795 var_mprop = var114;
8796 {
8797 { /* Inline parser_nodes#AMethPropdef#n_block (self) on <self:AMethPropdef> */
8798 var119 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AMethPropdef> */
8799 var117 = var119;
8800 RET_LABEL118:(void)0;
8801 }
8802 }
8803 var_nb = var117;
8804 /* <var_nb:nullable AExpr> isa ABlockExpr */
8805 cltype123 = type_nit__ABlockExpr.color;
8806 idtype124 = type_nit__ABlockExpr.id;
8807 if(var_nb == NULL) {
8808 var122 = 0;
8809 } else {
8810 if(cltype123 >= var_nb->type->table_size) {
8811 var122 = 0;
8812 } else {
8813 var122 = var_nb->type->type_table[cltype123] == idtype124;
8814 }
8815 }
8816 var_125 = var122;
8817 if (var122){
8818 {
8819 { /* Inline parser_nodes#ABlockExpr#n_expr (var_nb) on <var_nb:nullable AExpr(ABlockExpr)> */
8820 var128 = var_nb->attrs[COLOR_nit__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <var_nb:nullable AExpr(ABlockExpr)> */
8821 if (unlikely(var128 == NULL)) {
8822 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8823 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1565);
8824 show_backtrace(1);
8825 }
8826 var126 = var128;
8827 RET_LABEL127:(void)0;
8828 }
8829 }
8830 {
8831 var129 = nit___nit__ANodes___standard__abstract_collection__Collection__is_empty(var126);
8832 }
8833 var121 = var129;
8834 } else {
8835 var121 = var_125;
8836 }
8837 var_130 = var121;
8838 if (var121){
8839 {
8840 { /* Inline parser_nodes#ADefinition#n_doc (self) on <self:AMethPropdef> */
8841 var133 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val; /* _n_doc on <self:AMethPropdef> */
8842 var131 = var133;
8843 RET_LABEL132:(void)0;
8844 }
8845 }
8846 var134 = NULL;
8847 if (var131 == NULL) {
8848 var135 = 1; /* is null */
8849 } else {
8850 var135 = 0; /* arg is null but recv is not */
8851 }
8852 if (0) {
8853 { /* Inline kernel#Object#== (var131,var134) on <var131:nullable ADoc> */
8854 var_other26 = var134;
8855 {
8856 { /* Inline kernel#Object#is_same_instance (var131,var_other26) on <var131:nullable ADoc(ADoc)> */
8857 var140 = var131 == var_other26;
8858 var138 = var140;
8859 goto RET_LABEL139;
8860 RET_LABEL139:(void)0;
8861 }
8862 }
8863 var136 = var138;
8864 goto RET_LABEL137;
8865 RET_LABEL137:(void)0;
8866 }
8867 var135 = var136;
8868 }
8869 var120 = var135;
8870 } else {
8871 var120 = var_130;
8872 }
8873 if (var120){
8874 if (varonce141) {
8875 var142 = varonce141;
8876 } else {
8877 var143 = "useless-init";
8878 var144 = 12;
8879 var145 = standard___standard__NativeString___to_s_with_length(var143, var144);
8880 var142 = var145;
8881 varonce141 = var142;
8882 }
8883 if (varonce146) {
8884 var147 = varonce146;
8885 } else {
8886 var148 = "Warning: useless empty init in ";
8887 var149 = 31;
8888 var150 = standard___standard__NativeString___to_s_with_length(var148, var149);
8889 var147 = var150;
8890 varonce146 = var147;
8891 }
8892 var151 = NEW_standard__Array(&type_standard__Array__standard__Object);
8893 { /* var151 = array_instance Array[Object] */
8894 var152 = 2;
8895 var153 = NEW_standard__NativeArray(var152, &type_standard__NativeArray__standard__Object);
8896 ((struct instance_standard__NativeArray*)var153)->values[0] = (val*) var147;
8897 ((struct instance_standard__NativeArray*)var153)->values[1] = (val*) var_mclassdef;
8898 {
8899 ((void (*)(val* self, val* p0, long p1))(var151->class->vft[COLOR_standard__array__Array__with_native]))(var151, var153, var152) /* with_native on <var151:Array[Object]>*/;
8900 }
8901 }
8902 {
8903 var154 = ((val* (*)(val* self))(var151->class->vft[COLOR_standard__string__Object__to_s]))(var151) /* to_s on <var151:Array[Object]>*/;
8904 }
8905 {
8906 nit___nit__ModelBuilder___advice(var_modelbuilder, self, var142, var154); /* Direct call modelbuilder_base#ModelBuilder#advice on <var_modelbuilder:ModelBuilder>*/
8907 }
8908 } else {
8909 }
8910 } else {
8911 }
8912 var155 = NULL;
8913 if (var_mprop == NULL) {
8914 var156 = 1; /* is null */
8915 } else {
8916 var156 = 0; /* arg is null but recv is not */
8917 }
8918 if (0) {
8919 { /* Inline kernel#Object#== (var_mprop,var155) on <var_mprop:nullable MMethod> */
8920 var_other26 = var155;
8921 {
8922 { /* Inline kernel#Object#is_same_instance (var_mprop,var_other26) on <var_mprop:nullable MMethod(MMethod)> */
8923 var161 = var_mprop == var_other26;
8924 var159 = var161;
8925 goto RET_LABEL160;
8926 RET_LABEL160:(void)0;
8927 }
8928 }
8929 var157 = var159;
8930 goto RET_LABEL158;
8931 RET_LABEL158:(void)0;
8932 }
8933 var156 = var157;
8934 }
8935 if (var156){
8936 {
8937 { /* Inline parser_nodes#ADefinition#n_visibility (self) on <self:AMethPropdef> */
8938 var164 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val; /* _n_visibility on <self:AMethPropdef> */
8939 var162 = var164;
8940 RET_LABEL163:(void)0;
8941 }
8942 }
8943 {
8944 var165 = nit__modelize_property___APropdef___new_property_visibility(self, var_modelbuilder, var_mclassdef, var162);
8945 }
8946 var_mvisibility = var165;
8947 var166 = NEW_nit__MMethod(&type_nit__MMethod);
8948 {
8949 ((void (*)(val* self, val* p0))(var166->class->vft[COLOR_nit__model__MProperty__intro_mclassdef_61d]))(var166, var_mclassdef) /* intro_mclassdef= on <var166:MMethod>*/;
8950 }
8951 {
8952 ((void (*)(val* self, val* p0))(var166->class->vft[COLOR_nit__model__MProperty__name_61d]))(var166, var_name) /* name= on <var166:MMethod>*/;
8953 }
8954 {
8955 ((void (*)(val* self, val* p0))(var166->class->vft[COLOR_nit__model__MProperty__visibility_61d]))(var166, var_mvisibility) /* visibility= on <var166:MMethod>*/;
8956 }
8957 {
8958 ((void (*)(val* self))(var166->class->vft[COLOR_standard__kernel__Object__init]))(var166) /* init on <var166:MMethod>*/;
8959 }
8960 var_mprop = var166;
8961 var_168 = var_look_like_a_root_init;
8962 if (var_look_like_a_root_init){
8963 {
8964 { /* Inline modelize_property#ModelBuilder#the_root_init_mmethod (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
8965 var171 = var_modelbuilder->attrs[COLOR_nit__modelize_property__ModelBuilder___the_root_init_mmethod].val; /* _the_root_init_mmethod on <var_modelbuilder:ModelBuilder> */
8966 var169 = var171;
8967 RET_LABEL170:(void)0;
8968 }
8969 }
8970 var172 = NULL;
8971 if (var169 == NULL) {
8972 var173 = 1; /* is null */
8973 } else {
8974 var173 = 0; /* arg is null but recv is not */
8975 }
8976 if (0) {
8977 { /* Inline kernel#Object#== (var169,var172) on <var169:nullable MMethod> */
8978 var_other26 = var172;
8979 {
8980 { /* Inline kernel#Object#is_same_instance (var169,var_other26) on <var169:nullable MMethod(MMethod)> */
8981 var178 = var169 == var_other26;
8982 var176 = var178;
8983 goto RET_LABEL177;
8984 RET_LABEL177:(void)0;
8985 }
8986 }
8987 var174 = var176;
8988 goto RET_LABEL175;
8989 RET_LABEL175:(void)0;
8990 }
8991 var173 = var174;
8992 }
8993 var167 = var173;
8994 } else {
8995 var167 = var_168;
8996 }
8997 if (var167){
8998 {
8999 { /* Inline modelize_property#ModelBuilder#the_root_init_mmethod= (var_modelbuilder,var_mprop) on <var_modelbuilder:ModelBuilder> */
9000 var_modelbuilder->attrs[COLOR_nit__modelize_property__ModelBuilder___the_root_init_mmethod].val = var_mprop; /* _the_root_init_mmethod on <var_modelbuilder:ModelBuilder> */
9001 RET_LABEL179:(void)0;
9002 }
9003 }
9004 var180 = 1;
9005 {
9006 { /* Inline model#MMethod#is_root_init= (var_mprop,var180) on <var_mprop:nullable MMethod(MMethod)> */
9007 var_mprop->attrs[COLOR_nit__model__MMethod___is_root_init].s = var180; /* _is_root_init on <var_mprop:nullable MMethod(MMethod)> */
9008 RET_LABEL181:(void)0;
9009 }
9010 }
9011 } else {
9012 }
9013 {
9014 { /* Inline model#MMethod#is_init= (var_mprop,var_is_init) on <var_mprop:nullable MMethod(MMethod)> */
9015 var_mprop->attrs[COLOR_nit__model__MMethod___is_init].s = var_is_init; /* _is_init on <var_mprop:nullable MMethod(MMethod)> */
9016 RET_LABEL182:(void)0;
9017 }
9018 }
9019 var183 = NULL;
9020 if (var_n_kwnew == NULL) {
9021 var184 = 0; /* is null */
9022 } else {
9023 var184 = 1; /* arg is null and recv is not */
9024 }
9025 if (0) {
9026 { /* Inline kernel#Object#!= (var_n_kwnew,var183) on <var_n_kwnew:nullable TKwnew> */
9027 var_other = var183;
9028 {
9029 var187 = ((short int (*)(val* self, val* p0))(var_n_kwnew->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwnew, var_other) /* == on <var_n_kwnew:nullable TKwnew(TKwnew)>*/;
9030 }
9031 var188 = !var187;
9032 var185 = var188;
9033 goto RET_LABEL186;
9034 RET_LABEL186:(void)0;
9035 }
9036 var184 = var185;
9037 }
9038 {
9039 { /* Inline model#MMethod#is_new= (var_mprop,var184) on <var_mprop:nullable MMethod(MMethod)> */
9040 var_mprop->attrs[COLOR_nit__model__MMethod___is_new].s = var184; /* _is_new on <var_mprop:nullable MMethod(MMethod)> */
9041 RET_LABEL189:(void)0;
9042 }
9043 }
9044 {
9045 { /* Inline parser_nodes#ANode#parent (self) on <self:AMethPropdef> */
9046 var192 = self->attrs[COLOR_nit__parser_nodes__ANode___parent].val; /* _parent on <self:AMethPropdef> */
9047 var190 = var192;
9048 RET_LABEL191:(void)0;
9049 }
9050 }
9051 /* <var190:nullable ANode> isa ATopClassdef */
9052 cltype194 = type_nit__ATopClassdef.color;
9053 idtype195 = type_nit__ATopClassdef.id;
9054 if(var190 == NULL) {
9055 var193 = 0;
9056 } else {
9057 if(cltype194 >= var190->type->table_size) {
9058 var193 = 0;
9059 } else {
9060 var193 = var190->type->type_table[cltype194] == idtype195;
9061 }
9062 }
9063 if (var193){
9064 var196 = 1;
9065 {
9066 { /* Inline model#MMethod#is_toplevel= (var_mprop,var196) on <var_mprop:nullable MMethod(MMethod)> */
9067 var_mprop->attrs[COLOR_nit__model__MMethod___is_toplevel].s = var196; /* _is_toplevel on <var_mprop:nullable MMethod(MMethod)> */
9068 RET_LABEL197:(void)0;
9069 }
9070 }
9071 } else {
9072 }
9073 {
9074 { /* Inline parser_nodes#ADefinition#n_kwredef (self) on <self:AMethPropdef> */
9075 var200 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val; /* _n_kwredef on <self:AMethPropdef> */
9076 var198 = var200;
9077 RET_LABEL199:(void)0;
9078 }
9079 }
9080 var201 = 0;
9081 {
9082 var202 = nit__modelize_property___APropdef___check_redef_keyword(self, var_modelbuilder, var_mclassdef, var198, var201, var_mprop);
9083 }
9084 } else {
9085 {
9086 { /* Inline parser_nodes#ADefinition#n_kwredef (self) on <self:AMethPropdef> */
9087 var205 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val; /* _n_kwredef on <self:AMethPropdef> */
9088 var203 = var205;
9089 RET_LABEL204:(void)0;
9090 }
9091 }
9092 /* <self:AMethPropdef> isa AMainMethPropdef */
9093 cltype207 = type_nit__AMainMethPropdef.color;
9094 idtype208 = type_nit__AMainMethPropdef.id;
9095 if(cltype207 >= self->type->table_size) {
9096 var206 = 0;
9097 } else {
9098 var206 = self->type->type_table[cltype207] == idtype208;
9099 }
9100 var209 = !var206;
9101 {
9102 var210 = nit__modelize_property___APropdef___check_redef_keyword(self, var_modelbuilder, var_mclassdef, var203, var209, var_mprop);
9103 }
9104 var211 = !var210;
9105 if (var211){
9106 goto RET_LABEL;
9107 } else {
9108 }
9109 {
9110 { /* Inline parser_nodes#ADefinition#n_visibility (self) on <self:AMethPropdef> */
9111 var214 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val; /* _n_visibility on <self:AMethPropdef> */
9112 var212 = var214;
9113 RET_LABEL213:(void)0;
9114 }
9115 }
9116 {
9117 nit__modelize_property___APropdef___check_redef_property_visibility(self, var_modelbuilder, var212, var_mprop); /* Direct call modelize_property#APropdef#check_redef_property_visibility on <self:AMethPropdef>*/
9118 }
9119 }
9120 if (var_is_init){
9121 {
9122 { /* Inline modelize_property#MClassDef#mprop2npropdef (var_mclassdef) on <var_mclassdef:MClassDef> */
9123 var217 = var_mclassdef->attrs[COLOR_nit__modelize_property__MClassDef___mprop2npropdef].val; /* _mprop2npropdef on <var_mclassdef:MClassDef> */
9124 if (unlikely(var217 == NULL)) {
9125 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mprop2npropdef");
9126 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 352);
9127 show_backtrace(1);
9128 }
9129 var215 = var217;
9130 RET_LABEL216:(void)0;
9131 }
9132 }
9133 var_218 = var215;
9134 {
9135 var219 = ((val* (*)(val* self))(var_218->class->vft[COLOR_standard__abstract_collection__MapRead__iterator]))(var_218) /* iterator on <var_218:Map[MProperty, APropdef]>*/;
9136 }
9137 var_220 = var219;
9138 for(;;) {
9139 {
9140 var221 = ((short int (*)(val* self))(var_220->class->vft[COLOR_standard__abstract_collection__MapIterator__is_ok]))(var_220) /* is_ok on <var_220:MapIterator[MProperty, APropdef]>*/;
9141 }
9142 if (var221){
9143 {
9144 var222 = ((val* (*)(val* self))(var_220->class->vft[COLOR_standard__abstract_collection__MapIterator__key]))(var_220) /* key on <var_220:MapIterator[MProperty, APropdef]>*/;
9145 }
9146 var_p = var222;
9147 {
9148 var223 = ((val* (*)(val* self))(var_220->class->vft[COLOR_standard__abstract_collection__MapIterator__item]))(var_220) /* item on <var_220:MapIterator[MProperty, APropdef]>*/;
9149 }
9150 var_n = var223;
9151 {
9152 { /* Inline kernel#Object#!= (var_p,var_mprop) on <var_p:MProperty> */
9153 var_other = var_mprop;
9154 {
9155 var228 = ((short int (*)(val* self, val* p0))(var_p->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_p, var_other) /* == on <var_p:MProperty>*/;
9156 }
9157 var229 = !var228;
9158 var226 = var229;
9159 goto RET_LABEL227;
9160 RET_LABEL227:(void)0;
9161 }
9162 }
9163 var_230 = var226;
9164 if (var226){
9165 /* <var_p:MProperty> isa MMethod */
9166 cltype232 = type_nit__MMethod.color;
9167 idtype233 = type_nit__MMethod.id;
9168 if(cltype232 >= var_p->type->table_size) {
9169 var231 = 0;
9170 } else {
9171 var231 = var_p->type->type_table[cltype232] == idtype233;
9172 }
9173 var225 = var231;
9174 } else {
9175 var225 = var_230;
9176 }
9177 var_234 = var225;
9178 if (var225){
9179 {
9180 { /* Inline model#MProperty#name (var_p) on <var_p:MProperty(MMethod)> */
9181 var237 = var_p->attrs[COLOR_nit__model__MProperty___name].val; /* _name on <var_p:MProperty(MMethod)> */
9182 if (unlikely(var237 == NULL)) {
9183 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
9184 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1741);
9185 show_backtrace(1);
9186 }
9187 var235 = var237;
9188 RET_LABEL236:(void)0;
9189 }
9190 }
9191 {
9192 var238 = ((short int (*)(val* self, val* p0))(var235->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var235, var_name) /* == on <var235:String>*/;
9193 }
9194 var224 = var238;
9195 } else {
9196 var224 = var_234;
9197 }
9198 if (var224){
9199 {
9200 { /* Inline parser_nodes#ADefinition#n_kwredef (self) on <self:AMethPropdef> */
9201 var241 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val; /* _n_kwredef on <self:AMethPropdef> */
9202 var239 = var241;
9203 RET_LABEL240:(void)0;
9204 }
9205 }
9206 var242 = 0;
9207 {
9208 var243 = nit__modelize_property___APropdef___check_redef_keyword(self, var_modelbuilder, var_mclassdef, var239, var242, var_p);
9209 }
9210 goto BREAK_label;
9211 } else {
9212 }
9213 {
9214 ((void (*)(val* self))(var_220->class->vft[COLOR_standard__abstract_collection__MapIterator__next]))(var_220) /* next on <var_220:MapIterator[MProperty, APropdef]>*/;
9215 }
9216 } else {
9217 goto BREAK_label;
9218 }
9219 }
9220 BREAK_label: (void)0;
9221 {
9222 { /* Inline abstract_collection#MapIterator#finish (var_220) on <var_220:MapIterator[MProperty, APropdef]> */
9223 RET_LABEL244:(void)0;
9224 }
9225 }
9226 } else {
9227 }
9228 {
9229 { /* Inline modelize_property#MClassDef#mprop2npropdef (var_mclassdef) on <var_mclassdef:MClassDef> */
9230 var247 = var_mclassdef->attrs[COLOR_nit__modelize_property__MClassDef___mprop2npropdef].val; /* _mprop2npropdef on <var_mclassdef:MClassDef> */
9231 if (unlikely(var247 == NULL)) {
9232 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mprop2npropdef");
9233 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 352);
9234 show_backtrace(1);
9235 }
9236 var245 = var247;
9237 RET_LABEL246:(void)0;
9238 }
9239 }
9240 {
9241 ((void (*)(val* self, val* p0, val* p1))(var245->class->vft[COLOR_standard__abstract_collection__Map___91d_93d_61d]))(var245, var_mprop, self) /* []= on <var245:Map[MProperty, APropdef]>*/;
9242 }
9243 var248 = NEW_nit__MMethodDef(&type_nit__MMethodDef);
9244 {
9245 { /* Inline parser_nodes#ANode#location (self) on <self:AMethPropdef> */
9246 var251 = self->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <self:AMethPropdef> */
9247 if (unlikely(var251 == NULL)) {
9248 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
9249 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
9250 show_backtrace(1);
9251 }
9252 var249 = var251;
9253 RET_LABEL250:(void)0;
9254 }
9255 }
9256 {
9257 ((void (*)(val* self, val* p0))(var248->class->vft[COLOR_nit__model__MPropDef__mclassdef_61d]))(var248, var_mclassdef) /* mclassdef= on <var248:MMethodDef>*/;
9258 }
9259 {
9260 ((void (*)(val* self, val* p0))(var248->class->vft[COLOR_nit__model__MPropDef__mproperty_61d]))(var248, var_mprop) /* mproperty= on <var248:MMethodDef>*/;
9261 }
9262 {
9263 ((void (*)(val* self, val* p0))(var248->class->vft[COLOR_nit__model__MPropDef__location_61d]))(var248, var249) /* location= on <var248:MMethodDef>*/;
9264 }
9265 {
9266 ((void (*)(val* self))(var248->class->vft[COLOR_standard__kernel__Object__init]))(var248) /* init on <var248:MMethodDef>*/;
9267 }
9268 var_mpropdef = var248;
9269 {
9270 nit__modelize_property___APropdef___set_doc(self, var_mpropdef, var_modelbuilder); /* Direct call modelize_property#APropdef#set_doc on <self:AMethPropdef>*/
9271 }
9272 /* <var_mpropdef:MMethodDef> isa nullable MPROPDEF */
9273 type_struct = self->type->resolution_table->types[COLOR_nullable__nit__modelize_property__APropdef__MPROPDEF];
9274 cltype253 = type_struct->color;
9275 idtype254 = type_struct->id;
9276 if(cltype253 >= var_mpropdef->type->table_size) {
9277 var252 = 0;
9278 } else {
9279 var252 = var_mpropdef->type->type_table[cltype253] == idtype254;
9280 }
9281 if (unlikely(!var252)) {
9282 var_class_name255 = var_mpropdef == NULL ? "null" : var_mpropdef->type->name;
9283 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name255);
9284 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 697);
9285 show_backtrace(1);
9286 }
9287 {
9288 { /* Inline modelize_property#APropdef#mpropdef= (self,var_mpropdef) on <self:AMethPropdef> */
9289 /* Covariant cast for argument 0 (mpropdef) <var_mpropdef:MMethodDef> isa nullable MPROPDEF */
9290 /* <var_mpropdef:MMethodDef> isa nullable MPROPDEF */
9291 type_struct260 = self->type->resolution_table->types[COLOR_nullable__nit__modelize_property__APropdef__MPROPDEF];
9292 cltype258 = type_struct260->color;
9293 idtype259 = type_struct260->id;
9294 if(cltype258 >= var_mpropdef->type->table_size) {
9295 var257 = 0;
9296 } else {
9297 var257 = var_mpropdef->type->type_table[cltype258] == idtype259;
9298 }
9299 if (unlikely(!var257)) {
9300 var_class_name261 = var_mpropdef == NULL ? "null" : var_mpropdef->type->name;
9301 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name261);
9302 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 405);
9303 show_backtrace(1);
9304 }
9305 self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val = var_mpropdef; /* _mpropdef on <self:AMethPropdef> */
9306 RET_LABEL256:(void)0;
9307 }
9308 }
9309 {
9310 { /* Inline modelize_property#ModelBuilder#mpropdef2npropdef (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
9311 var264 = var_modelbuilder->attrs[COLOR_nit__modelize_property__ModelBuilder___mpropdef2npropdef].val; /* _mpropdef2npropdef on <var_modelbuilder:ModelBuilder> */
9312 if (unlikely(var264 == NULL)) {
9313 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
9314 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 40);
9315 show_backtrace(1);
9316 }
9317 var262 = var264;
9318 RET_LABEL263:(void)0;
9319 }
9320 }
9321 {
9322 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var262, var_mpropdef, self); /* Direct call hash_collection#HashMap#[]= on <var262:HashMap[MPropDef, APropdef]>*/
9323 }
9324 {
9325 var265 = nit___nit__MPropDef___is_intro(var_mpropdef);
9326 }
9327 if (var265){
9328 {
9329 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
9330 var268 = var_modelbuilder->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var_modelbuilder:ModelBuilder> */
9331 if (unlikely(var268 == NULL)) {
9332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
9333 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
9334 show_backtrace(1);
9335 }
9336 var266 = var268;
9337 RET_LABEL267:(void)0;
9338 }
9339 }
9340 if (varonce269) {
9341 var270 = varonce269;
9342 } else {
9343 var271 = " introduces new method ";
9344 var272 = 23;
9345 var273 = standard___standard__NativeString___to_s_with_length(var271, var272);
9346 var270 = var273;
9347 varonce269 = var270;
9348 }
9349 {
9350 var274 = nit___nit__MProperty___nit__model_base__MEntity__full_name(var_mprop);
9351 }
9352 var275 = NEW_standard__Array(&type_standard__Array__standard__Object);
9353 { /* var275 = array_instance Array[Object] */
9354 var276 = 3;
9355 var277 = NEW_standard__NativeArray(var276, &type_standard__NativeArray__standard__Object);
9356 ((struct instance_standard__NativeArray*)var277)->values[0] = (val*) var_mpropdef;
9357 ((struct instance_standard__NativeArray*)var277)->values[1] = (val*) var270;
9358 ((struct instance_standard__NativeArray*)var277)->values[2] = (val*) var274;
9359 {
9360 ((void (*)(val* self, val* p0, long p1))(var275->class->vft[COLOR_standard__array__Array__with_native]))(var275, var277, var276) /* with_native on <var275:Array[Object]>*/;
9361 }
9362 }
9363 {
9364 var278 = ((val* (*)(val* self))(var275->class->vft[COLOR_standard__string__Object__to_s]))(var275) /* to_s on <var275:Array[Object]>*/;
9365 }
9366 var279 = 4;
9367 {
9368 nit___nit__ToolContext___info(var266, var278, var279); /* Direct call toolcontext#ToolContext#info on <var266:ToolContext>*/
9369 }
9370 } else {
9371 {
9372 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
9373 var282 = var_modelbuilder->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var_modelbuilder:ModelBuilder> */
9374 if (unlikely(var282 == NULL)) {
9375 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
9376 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
9377 show_backtrace(1);
9378 }
9379 var280 = var282;
9380 RET_LABEL281:(void)0;
9381 }
9382 }
9383 if (varonce283) {
9384 var284 = varonce283;
9385 } else {
9386 var285 = " redefines method ";
9387 var286 = 18;
9388 var287 = standard___standard__NativeString___to_s_with_length(var285, var286);
9389 var284 = var287;
9390 varonce283 = var284;
9391 }
9392 {
9393 var288 = nit___nit__MProperty___nit__model_base__MEntity__full_name(var_mprop);
9394 }
9395 var289 = NEW_standard__Array(&type_standard__Array__standard__Object);
9396 { /* var289 = array_instance Array[Object] */
9397 var290 = 3;
9398 var291 = NEW_standard__NativeArray(var290, &type_standard__NativeArray__standard__Object);
9399 ((struct instance_standard__NativeArray*)var291)->values[0] = (val*) var_mpropdef;
9400 ((struct instance_standard__NativeArray*)var291)->values[1] = (val*) var284;
9401 ((struct instance_standard__NativeArray*)var291)->values[2] = (val*) var288;
9402 {
9403 ((void (*)(val* self, val* p0, long p1))(var289->class->vft[COLOR_standard__array__Array__with_native]))(var289, var291, var290) /* with_native on <var289:Array[Object]>*/;
9404 }
9405 }
9406 {
9407 var292 = ((val* (*)(val* self))(var289->class->vft[COLOR_standard__string__Object__to_s]))(var289) /* to_s on <var289:Array[Object]>*/;
9408 }
9409 var293 = 4;
9410 {
9411 nit___nit__ToolContext___info(var280, var292, var293); /* Direct call toolcontext#ToolContext#info on <var280:ToolContext>*/
9412 }
9413 }
9414 RET_LABEL:;
9415 }