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