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