README: document nit_env.sh
[nit.git] / c_src / nit__modelize_property.sep.3.c
1 #include "nit__modelize_property.sep.0.h"
2 /* method modelize_property#AAttrPropdef#check_signature for (self: AAttrPropdef, ModelBuilder) */
3 void nit__modelize_property___AAttrPropdef___APropdef__check_signature(val* self, val* p0) {
4 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
5 val* var /* : nullable MPropDef */;
6 val* var2 /* : nullable MPropDef */;
7 val* var_mpropdef /* var mpropdef: nullable MAttributeDef */;
8 short int var3 /* : Bool */;
9 short int var4 /* : Bool */;
10 val* var_other /* var other: nullable Object */;
11 short int var6 /* : Bool */;
12 short int var8 /* : Bool */;
13 val* var9 /* : nullable AType */;
14 val* var11 /* : nullable AType */;
15 val* var_ntype /* var ntype: nullable AType */;
16 val* var12 /* : nullable MType */;
17 val* var14 /* : nullable MType */;
18 val* var_mtype /* var mtype: nullable MType */;
19 short int var15 /* : Bool */;
20 short int var16 /* : Bool */;
21 short int var18 /* : Bool */;
22 short int var20 /* : Bool */;
23 val* var21 /* : MClassDef */;
24 val* var23 /* : MClassDef */;
25 val* var_mclassdef /* var mclassdef: MClassDef */;
26 val* var24 /* : MModule */;
27 val* var26 /* : MModule */;
28 val* var_mmodule /* var mmodule: MModule */;
29 short int var27 /* : Bool */;
30 short int var28 /* : Bool */;
31 val* var_other30 /* var other: nullable Object */;
32 short int var31 /* : Bool */;
33 short int var32 /* : Bool */;
34 val* var33 /* : nullable MType */;
35 short int var34 /* : Bool */;
36 short int var35 /* : Bool */;
37 short int var37 /* : Bool */;
38 short int var39 /* : Bool */;
39 val* var40 /* : nullable AExpr */;
40 val* var42 /* : nullable AExpr */;
41 val* var_nexpr /* var nexpr: nullable AExpr */;
42 short int var43 /* : Bool */;
43 int cltype;
44 int idtype;
45 val* var44 /* : AType */;
46 val* var46 /* : AType */;
47 val* var47 /* : nullable MType */;
48 short int var48 /* : Bool */;
49 short int var49 /* : Bool */;
50 short int var51 /* : Bool */;
51 short int var53 /* : Bool */;
52 short int var54 /* : Bool */;
53 short int var55 /* : Bool */;
54 val* var56 /* : MProperty */;
55 val* var58 /* : MProperty */;
56 val* var59 /* : MPropDef */;
57 val* var61 /* : MPropDef */;
58 val* var62 /* : nullable MType */;
59 val* var64 /* : nullable MType */;
60 val* var_precursor_type /* var precursor_type: nullable MType */;
61 short int var65 /* : Bool */;
62 short int var66 /* : Bool */;
63 short int var68 /* : Bool */;
64 short int var70 /* : Bool */;
65 short int var71 /* : Bool */;
66 short int var73 /* : Bool */;
67 short int var74 /* : Bool */;
68 val* var75 /* : NativeArray[String] */;
69 static val* varonce;
70 static val* varonce76;
71 val* var77 /* : String */;
72 char* var78 /* : NativeString */;
73 val* var79 /* : FlatString */;
74 static val* varonce80;
75 val* var81 /* : String */;
76 char* var82 /* : NativeString */;
77 val* var83 /* : FlatString */;
78 static val* varonce84;
79 val* var85 /* : String */;
80 char* var86 /* : NativeString */;
81 val* var87 /* : FlatString */;
82 val* var88 /* : String */;
83 val* var89 /* : String */;
84 val* var90 /* : String */;
85 val* var91 /* : nullable MMethodDef */;
86 val* var93 /* : nullable MMethodDef */;
87 val* var_meth /* var meth: nullable MMethodDef */;
88 short int var94 /* : Bool */;
89 short int var95 /* : Bool */;
90 short int var97 /* : Bool */;
91 short int var98 /* : Bool */;
92 val* var_node /* var node: nullable ANode */;
93 short int var99 /* : Bool */;
94 short int var100 /* : Bool */;
95 short int var102 /* : Bool */;
96 short int var104 /* : Bool */;
97 val* var105 /* : nullable MMethodDef */;
98 val* var107 /* : nullable MMethodDef */;
99 short int var108 /* : Bool */;
100 short int var109 /* : Bool */;
101 short int var111 /* : Bool */;
102 short int var112 /* : Bool */;
103 val* var_node113 /* var node: nullable ANode */;
104 short int var114 /* : Bool */;
105 short int var115 /* : Bool */;
106 short int var117 /* : Bool */;
107 short int var119 /* : Bool */;
108 var_modelbuilder = p0;
109 {
110 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
111 var2 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
112 var = var2;
113 RET_LABEL1:(void)0;
114 }
115 }
116 var_mpropdef = var;
117 if (var_mpropdef == NULL) {
118 var3 = 1; /* is null */
119 } else {
120 var3 = 0; /* arg is null but recv is not */
121 }
122 if (0) {
123 { /* Inline kernel#Object#== (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MAttributeDef> */
124 var_other = ((val*)NULL);
125 {
126 { /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other) on <var_mpropdef:nullable MAttributeDef(MAttributeDef)> */
127 var8 = var_mpropdef == var_other;
128 var6 = var8;
129 goto RET_LABEL7;
130 RET_LABEL7:(void)0;
131 }
132 }
133 var4 = var6;
134 goto RET_LABEL5;
135 RET_LABEL5:(void)0;
136 }
137 var3 = var4;
138 }
139 if (var3){
140 goto RET_LABEL;
141 } else {
142 }
143 {
144 { /* Inline parser_nodes#AAttrPropdef#n_type (self) on <self:AAttrPropdef> */
145 var11 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_type].val; /* _n_type on <self:AAttrPropdef> */
146 var9 = var11;
147 RET_LABEL10:(void)0;
148 }
149 }
150 var_ntype = var9;
151 {
152 { /* Inline modelize_property#AAttrPropdef#mtype (self) on <self:AAttrPropdef> */
153 var14 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___mtype].val; /* _mtype on <self:AAttrPropdef> */
154 var12 = var14;
155 RET_LABEL13:(void)0;
156 }
157 }
158 var_mtype = var12;
159 if (var_mtype == NULL) {
160 var15 = 1; /* is null */
161 } else {
162 var15 = 0; /* arg is null but recv is not */
163 }
164 if (0) {
165 { /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
166 var_other = ((val*)NULL);
167 {
168 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
169 var20 = var_mtype == var_other;
170 var18 = var20;
171 goto RET_LABEL19;
172 RET_LABEL19:(void)0;
173 }
174 }
175 var16 = var18;
176 goto RET_LABEL17;
177 RET_LABEL17:(void)0;
178 }
179 var15 = var16;
180 }
181 if (var15){
182 goto RET_LABEL;
183 } else {
184 }
185 {
186 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:nullable MAttributeDef(MAttributeDef)> */
187 var23 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:nullable MAttributeDef(MAttributeDef)> */
188 if (unlikely(var23 == NULL)) {
189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
190 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209);
191 fatal_exit(1);
192 }
193 var21 = var23;
194 RET_LABEL22:(void)0;
195 }
196 }
197 var_mclassdef = var21;
198 {
199 { /* Inline model#MClassDef#mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
200 var26 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
201 if (unlikely(var26 == NULL)) {
202 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
203 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550);
204 fatal_exit(1);
205 }
206 var24 = var26;
207 RET_LABEL25:(void)0;
208 }
209 }
210 var_mmodule = var24;
211 if (var_ntype == NULL) {
212 var27 = 0; /* is null */
213 } else {
214 var27 = 1; /* arg is null and recv is not */
215 }
216 if (0) {
217 { /* Inline kernel#Object#!= (var_ntype,((val*)NULL)) on <var_ntype:nullable AType> */
218 var_other30 = ((val*)NULL);
219 {
220 var31 = ((short int(*)(val* self, val* p0))(var_ntype->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ntype, var_other30); /* == on <var_ntype:nullable AType(AType)>*/
221 }
222 var32 = !var31;
223 var28 = var32;
224 goto RET_LABEL29;
225 RET_LABEL29:(void)0;
226 }
227 var27 = var28;
228 }
229 if (var27){
230 {
231 var33 = nit___nit__ModelBuilder___resolve_mtype(var_modelbuilder, var_mmodule, var_mclassdef, var_ntype);
232 }
233 if (var33 == NULL) {
234 var34 = 1; /* is null */
235 } else {
236 var34 = 0; /* arg is null but recv is not */
237 }
238 if (0) {
239 { /* Inline kernel#Object#== (var33,((val*)NULL)) on <var33:nullable MType> */
240 var_other = ((val*)NULL);
241 {
242 { /* Inline kernel#Object#is_same_instance (var33,var_other) on <var33:nullable MType(MType)> */
243 var39 = var33 == var_other;
244 var37 = var39;
245 goto RET_LABEL38;
246 RET_LABEL38:(void)0;
247 }
248 }
249 var35 = var37;
250 goto RET_LABEL36;
251 RET_LABEL36:(void)0;
252 }
253 var34 = var35;
254 }
255 if (var34){
256 goto RET_LABEL;
257 } else {
258 }
259 } else {
260 }
261 {
262 { /* Inline parser_nodes#AAttrPropdef#n_expr (self) on <self:AAttrPropdef> */
263 var42 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_expr].val; /* _n_expr on <self:AAttrPropdef> */
264 var40 = var42;
265 RET_LABEL41:(void)0;
266 }
267 }
268 var_nexpr = var40;
269 /* <var_nexpr:nullable AExpr> isa ANewExpr */
270 cltype = type_nit__ANewExpr.color;
271 idtype = type_nit__ANewExpr.id;
272 if(var_nexpr == NULL) {
273 var43 = 0;
274 } else {
275 if(cltype >= var_nexpr->type->table_size) {
276 var43 = 0;
277 } else {
278 var43 = var_nexpr->type->type_table[cltype] == idtype;
279 }
280 }
281 if (var43){
282 {
283 { /* Inline parser_nodes#ANewExpr#n_type (var_nexpr) on <var_nexpr:nullable AExpr(ANewExpr)> */
284 var46 = var_nexpr->attrs[COLOR_nit__parser_nodes__ANewExpr___n_type].val; /* _n_type on <var_nexpr:nullable AExpr(ANewExpr)> */
285 if (unlikely(var46 == NULL)) {
286 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
287 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2255);
288 fatal_exit(1);
289 }
290 var44 = var46;
291 RET_LABEL45:(void)0;
292 }
293 }
294 {
295 var47 = nit___nit__ModelBuilder___resolve_mtype(var_modelbuilder, var_mmodule, var_mclassdef, var44);
296 }
297 if (var47 == NULL) {
298 var48 = 1; /* is null */
299 } else {
300 var48 = 0; /* arg is null but recv is not */
301 }
302 if (0) {
303 { /* Inline kernel#Object#== (var47,((val*)NULL)) on <var47:nullable MType> */
304 var_other = ((val*)NULL);
305 {
306 { /* Inline kernel#Object#is_same_instance (var47,var_other) on <var47:nullable MType(MType)> */
307 var53 = var47 == var_other;
308 var51 = var53;
309 goto RET_LABEL52;
310 RET_LABEL52:(void)0;
311 }
312 }
313 var49 = var51;
314 goto RET_LABEL50;
315 RET_LABEL50:(void)0;
316 }
317 var48 = var49;
318 }
319 if (var48){
320 goto RET_LABEL;
321 } else {
322 }
323 } else {
324 }
325 {
326 var54 = nit___nit__MPropDef___is_intro(var_mpropdef);
327 }
328 var55 = !var54;
329 if (var55){
330 {
331 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:nullable MAttributeDef(MAttributeDef)> */
332 var58 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MAttributeDef(MAttributeDef)> */
333 if (unlikely(var58 == NULL)) {
334 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
335 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
336 fatal_exit(1);
337 }
338 var56 = var58;
339 RET_LABEL57:(void)0;
340 }
341 }
342 {
343 { /* Inline model#MProperty#intro (var56) on <var56:MProperty(MAttribute)> */
344 var61 = var56->attrs[COLOR_nit__model__MProperty___intro].val; /* _intro on <var56:MProperty(MAttribute)> */
345 if (unlikely(var61 == NULL)) {
346 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
347 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1968);
348 fatal_exit(1);
349 }
350 var59 = var61;
351 RET_LABEL60:(void)0;
352 }
353 }
354 {
355 { /* Inline model#MAttributeDef#static_mtype (var59) on <var59:MPropDef(MAttributeDef)> */
356 var64 = var59->attrs[COLOR_nit__model__MAttributeDef___static_mtype].val; /* _static_mtype on <var59:MPropDef(MAttributeDef)> */
357 var62 = var64;
358 RET_LABEL63:(void)0;
359 }
360 }
361 var_precursor_type = var62;
362 if (var_precursor_type == NULL) {
363 var65 = 1; /* is null */
364 } else {
365 var65 = 0; /* arg is null but recv is not */
366 }
367 if (0) {
368 { /* Inline kernel#Object#== (var_precursor_type,((val*)NULL)) on <var_precursor_type:nullable MType> */
369 var_other = ((val*)NULL);
370 {
371 { /* Inline kernel#Object#is_same_instance (var_precursor_type,var_other) on <var_precursor_type:nullable MType(MType)> */
372 var70 = var_precursor_type == var_other;
373 var68 = var70;
374 goto RET_LABEL69;
375 RET_LABEL69:(void)0;
376 }
377 }
378 var66 = var68;
379 goto RET_LABEL67;
380 RET_LABEL67:(void)0;
381 }
382 var65 = var66;
383 }
384 if (var65){
385 goto RET_LABEL;
386 } else {
387 }
388 {
389 { /* Inline kernel#Object#!= (var_mtype,var_precursor_type) on <var_mtype:nullable MType(MType)> */
390 var_other30 = var_precursor_type;
391 {
392 var73 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mtype, var_other30); /* == on <var_mtype:nullable MType(MType)>*/
393 }
394 var74 = !var73;
395 var71 = var74;
396 goto RET_LABEL72;
397 RET_LABEL72:(void)0;
398 }
399 }
400 if (var71){
401 if (unlikely(var_ntype == NULL)) {
402 PRINT_ERROR("Runtime error: %s", "Cast failed");
403 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 1438);
404 fatal_exit(1);
405 }
406 if (unlikely(varonce==NULL)) {
407 var75 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String);
408 if (likely(varonce76!=NULL)) {
409 var77 = varonce76;
410 } else {
411 var78 = "Redef Error: expected `";
412 var79 = standard___standard__NativeString___to_s_with_length(var78, 23l);
413 var77 = var79;
414 varonce76 = var77;
415 }
416 ((struct instance_standard__NativeArray*)var75)->values[0]=var77;
417 if (likely(varonce80!=NULL)) {
418 var81 = varonce80;
419 } else {
420 var82 = "` type as a bound; got `";
421 var83 = standard___standard__NativeString___to_s_with_length(var82, 24l);
422 var81 = var83;
423 varonce80 = var81;
424 }
425 ((struct instance_standard__NativeArray*)var75)->values[2]=var81;
426 if (likely(varonce84!=NULL)) {
427 var85 = varonce84;
428 } else {
429 var86 = "`.";
430 var87 = standard___standard__NativeString___to_s_with_length(var86, 2l);
431 var85 = var87;
432 varonce84 = var85;
433 }
434 ((struct instance_standard__NativeArray*)var75)->values[4]=var85;
435 } else {
436 var75 = varonce;
437 varonce = NULL;
438 }
439 {
440 var88 = ((val*(*)(val* self))(var_precursor_type->class->vft[COLOR_standard__string__Object__to_s]))(var_precursor_type); /* to_s on <var_precursor_type:nullable MType(MType)>*/
441 }
442 ((struct instance_standard__NativeArray*)var75)->values[1]=var88;
443 {
444 var89 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_standard__string__Object__to_s]))(var_mtype); /* to_s on <var_mtype:nullable MType(MType)>*/
445 }
446 ((struct instance_standard__NativeArray*)var75)->values[3]=var89;
447 {
448 var90 = ((val*(*)(val* self))(var75->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var75); /* native_to_s on <var75:NativeArray[String]>*/
449 }
450 varonce = var75;
451 {
452 nit___nit__ModelBuilder___error(var_modelbuilder, var_ntype, var90); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
453 }
454 goto RET_LABEL;
455 } else {
456 }
457 } else {
458 }
459 {
460 { /* Inline modelize_property#AAttrPropdef#mreadpropdef (self) on <self:AAttrPropdef> */
461 var93 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___mreadpropdef].val; /* _mreadpropdef on <self:AAttrPropdef> */
462 var91 = var93;
463 RET_LABEL92:(void)0;
464 }
465 }
466 var_meth = var91;
467 if (var_meth == NULL) {
468 var94 = 0; /* is null */
469 } else {
470 var94 = 1; /* arg is null and recv is not */
471 }
472 if (0) {
473 { /* Inline kernel#Object#!= (var_meth,((val*)NULL)) on <var_meth:nullable MMethodDef> */
474 var_other30 = ((val*)NULL);
475 {
476 var97 = ((short int(*)(val* self, val* p0))(var_meth->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_meth, var_other30); /* == on <var_meth:nullable MMethodDef(MMethodDef)>*/
477 }
478 var98 = !var97;
479 var95 = var98;
480 goto RET_LABEL96;
481 RET_LABEL96:(void)0;
482 }
483 var94 = var95;
484 }
485 if (var94){
486 {
487 nit__modelize_property___AAttrPropdef___check_method_signature(self, var_modelbuilder, var_meth); /* Direct call modelize_property#AAttrPropdef#check_method_signature on <self:AAttrPropdef>*/
488 }
489 var_node = var_ntype;
490 if (var_node == NULL) {
491 var99 = 1; /* is null */
492 } else {
493 var99 = 0; /* arg is null but recv is not */
494 }
495 if (0) {
496 { /* Inline kernel#Object#== (var_node,((val*)NULL)) on <var_node:nullable ANode> */
497 var_other = ((val*)NULL);
498 {
499 { /* Inline kernel#Object#is_same_instance (var_node,var_other) on <var_node:nullable ANode(ANode)> */
500 var104 = var_node == var_other;
501 var102 = var104;
502 goto RET_LABEL103;
503 RET_LABEL103:(void)0;
504 }
505 }
506 var100 = var102;
507 goto RET_LABEL101;
508 RET_LABEL101:(void)0;
509 }
510 var99 = var100;
511 }
512 if (var99){
513 var_node = self;
514 } else {
515 }
516 {
517 nit__modelize_property___ModelBuilder___check_visibility(var_modelbuilder, var_node, var_mtype, var_meth); /* Direct call modelize_property#ModelBuilder#check_visibility on <var_modelbuilder:ModelBuilder>*/
518 }
519 } else {
520 }
521 {
522 { /* Inline modelize_property#AAttrPropdef#mwritepropdef (self) on <self:AAttrPropdef> */
523 var107 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___mwritepropdef].val; /* _mwritepropdef on <self:AAttrPropdef> */
524 var105 = var107;
525 RET_LABEL106:(void)0;
526 }
527 }
528 var_meth = var105;
529 if (var_meth == NULL) {
530 var108 = 0; /* is null */
531 } else {
532 var108 = 1; /* arg is null and recv is not */
533 }
534 if (0) {
535 { /* Inline kernel#Object#!= (var_meth,((val*)NULL)) on <var_meth:nullable MMethodDef> */
536 var_other30 = ((val*)NULL);
537 {
538 var111 = ((short int(*)(val* self, val* p0))(var_meth->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_meth, var_other30); /* == on <var_meth:nullable MMethodDef(MMethodDef)>*/
539 }
540 var112 = !var111;
541 var109 = var112;
542 goto RET_LABEL110;
543 RET_LABEL110:(void)0;
544 }
545 var108 = var109;
546 }
547 if (var108){
548 {
549 nit__modelize_property___AAttrPropdef___check_method_signature(self, var_modelbuilder, var_meth); /* Direct call modelize_property#AAttrPropdef#check_method_signature on <self:AAttrPropdef>*/
550 }
551 var_node113 = var_ntype;
552 if (var_node113 == NULL) {
553 var114 = 1; /* is null */
554 } else {
555 var114 = 0; /* arg is null but recv is not */
556 }
557 if (0) {
558 { /* Inline kernel#Object#== (var_node113,((val*)NULL)) on <var_node113:nullable ANode> */
559 var_other = ((val*)NULL);
560 {
561 { /* Inline kernel#Object#is_same_instance (var_node113,var_other) on <var_node113:nullable ANode(ANode)> */
562 var119 = var_node113 == var_other;
563 var117 = var119;
564 goto RET_LABEL118;
565 RET_LABEL118:(void)0;
566 }
567 }
568 var115 = var117;
569 goto RET_LABEL116;
570 RET_LABEL116:(void)0;
571 }
572 var114 = var115;
573 }
574 if (var114){
575 var_node113 = self;
576 } else {
577 }
578 {
579 nit__modelize_property___ModelBuilder___check_visibility(var_modelbuilder, var_node113, var_mtype, var_meth); /* Direct call modelize_property#ModelBuilder#check_visibility on <var_modelbuilder:ModelBuilder>*/
580 }
581 } else {
582 }
583 RET_LABEL:;
584 }
585 /* method modelize_property#AAttrPropdef#check_method_signature for (self: AAttrPropdef, ModelBuilder, MMethodDef) */
586 void nit__modelize_property___AAttrPropdef___check_method_signature(val* self, val* p0, val* p1) {
587 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
588 val* var_mpropdef /* var mpropdef: MMethodDef */;
589 val* var /* : MClassDef */;
590 val* var2 /* : MClassDef */;
591 val* var_mclassdef /* var mclassdef: MClassDef */;
592 val* var3 /* : MModule */;
593 val* var5 /* : MModule */;
594 val* var_mmodule /* var mmodule: MModule */;
595 val* var6 /* : nullable AType */;
596 val* var8 /* : nullable AType */;
597 val* var_nsig /* var nsig: nullable AType */;
598 val* var9 /* : nullable MSignature */;
599 val* var11 /* : nullable MSignature */;
600 val* var_mysignature /* var mysignature: nullable MSignature */;
601 short int var12 /* : Bool */;
602 short int var13 /* : Bool */;
603 val* var_other /* var other: nullable Object */;
604 short int var15 /* : Bool */;
605 short int var17 /* : Bool */;
606 short int var18 /* : Bool */;
607 short int var19 /* : Bool */;
608 val* var20 /* : MProperty */;
609 val* var22 /* : MProperty */;
610 val* var23 /* : MPropDef */;
611 val* var25 /* : MPropDef */;
612 val* var26 /* : nullable MSignature */;
613 val* var28 /* : nullable MSignature */;
614 val* var_msignature /* var msignature: nullable MSignature */;
615 short int var29 /* : Bool */;
616 short int var30 /* : Bool */;
617 short int var32 /* : Bool */;
618 short int var34 /* : Bool */;
619 long var35 /* : Int */;
620 long var36 /* : Int */;
621 short int var37 /* : Bool */;
622 short int var39 /* : Bool */;
623 short int var40 /* : Bool */;
624 short int var41 /* : Bool */;
625 short int var42 /* : Bool */;
626 val* var_other44 /* var other: nullable Object */;
627 short int var45 /* : Bool */;
628 short int var46 /* : Bool */;
629 val* var_node /* var node: ANode */;
630 val* var47 /* : NativeArray[String] */;
631 static val* varonce;
632 static val* varonce48;
633 val* var49 /* : String */;
634 char* var50 /* : NativeString */;
635 val* var51 /* : FlatString */;
636 static val* varonce52;
637 val* var53 /* : String */;
638 char* var54 /* : NativeString */;
639 val* var55 /* : FlatString */;
640 static val* varonce56;
641 val* var57 /* : String */;
642 char* var58 /* : NativeString */;
643 val* var59 /* : FlatString */;
644 static val* varonce60;
645 val* var61 /* : String */;
646 char* var62 /* : NativeString */;
647 val* var63 /* : FlatString */;
648 static val* varonce64;
649 val* var65 /* : String */;
650 char* var66 /* : NativeString */;
651 val* var67 /* : FlatString */;
652 long var68 /* : Int */;
653 val* var69 /* : String */;
654 val* var70 /* : MProperty */;
655 val* var72 /* : MProperty */;
656 val* var73 /* : String */;
657 val* var75 /* : String */;
658 val* var76 /* : String */;
659 long var77 /* : Int */;
660 val* var78 /* : String */;
661 val* var79 /* : MProperty */;
662 val* var81 /* : MProperty */;
663 val* var82 /* : String */;
664 val* var83 /* : String */;
665 val* var84 /* : nullable MType */;
666 val* var86 /* : nullable MType */;
667 val* var_precursor_ret_type /* var precursor_ret_type: nullable MType */;
668 val* var87 /* : nullable MType */;
669 val* var89 /* : nullable MType */;
670 val* var_ret_type /* var ret_type: nullable MType */;
671 short int var90 /* : Bool */;
672 short int var91 /* : Bool */;
673 short int var92 /* : Bool */;
674 short int var94 /* : Bool */;
675 short int var95 /* : Bool */;
676 short int var_ /* var : Bool */;
677 short int var96 /* : Bool */;
678 short int var97 /* : Bool */;
679 short int var99 /* : Bool */;
680 short int var101 /* : Bool */;
681 short int var102 /* : Bool */;
682 short int var103 /* : Bool */;
683 short int var105 /* : Bool */;
684 short int var106 /* : Bool */;
685 val* var_node107 /* var node: ANode */;
686 val* var109 /* : NativeArray[String] */;
687 static val* varonce108;
688 static val* varonce110;
689 val* var111 /* : String */;
690 char* var112 /* : NativeString */;
691 val* var113 /* : FlatString */;
692 static val* varonce114;
693 val* var115 /* : String */;
694 char* var116 /* : NativeString */;
695 val* var117 /* : FlatString */;
696 val* var118 /* : MProperty */;
697 val* var120 /* : MProperty */;
698 val* var121 /* : String */;
699 val* var122 /* : String */;
700 long var123 /* : Int */;
701 short int var124 /* : Bool */;
702 short int var126 /* : Bool */;
703 int cltype;
704 int idtype;
705 const char* var_class_name;
706 short int var127 /* : Bool */;
707 long var_i /* var i: Int */;
708 long var128 /* : Int */;
709 long var_129 /* var : Int */;
710 short int var130 /* : Bool */;
711 short int var132 /* : Bool */;
712 int cltype133;
713 int idtype134;
714 const char* var_class_name135;
715 short int var136 /* : Bool */;
716 val* var137 /* : Array[MParameter] */;
717 val* var139 /* : Array[MParameter] */;
718 val* var140 /* : nullable Object */;
719 val* var141 /* : MType */;
720 val* var143 /* : MType */;
721 val* var_myt /* var myt: MType */;
722 val* var144 /* : Array[MParameter] */;
723 val* var146 /* : Array[MParameter] */;
724 val* var147 /* : nullable Object */;
725 val* var148 /* : MType */;
726 val* var150 /* : MType */;
727 val* var_prt /* var prt: MType */;
728 short int var151 /* : Bool */;
729 short int var152 /* : Bool */;
730 short int var154 /* : Bool */;
731 short int var155 /* : Bool */;
732 val* var_node156 /* var node: ANode */;
733 val* var157 /* : MClassType */;
734 val* var159 /* : MClassType */;
735 short int var160 /* : Bool */;
736 short int var161 /* : Bool */;
737 val* var163 /* : NativeArray[String] */;
738 static val* varonce162;
739 static val* varonce164;
740 val* var165 /* : String */;
741 char* var166 /* : NativeString */;
742 val* var167 /* : FlatString */;
743 static val* varonce168;
744 val* var169 /* : String */;
745 char* var170 /* : NativeString */;
746 val* var171 /* : FlatString */;
747 static val* varonce172;
748 val* var173 /* : String */;
749 char* var174 /* : NativeString */;
750 val* var175 /* : FlatString */;
751 static val* varonce176;
752 val* var177 /* : String */;
753 char* var178 /* : NativeString */;
754 val* var179 /* : FlatString */;
755 val* var180 /* : String */;
756 val* var181 /* : Array[MParameter] */;
757 val* var183 /* : Array[MParameter] */;
758 val* var184 /* : nullable Object */;
759 val* var185 /* : String */;
760 val* var187 /* : String */;
761 val* var188 /* : String */;
762 val* var189 /* : String */;
763 long var190 /* : Int */;
764 short int var191 /* : Bool */;
765 short int var192 /* : Bool */;
766 short int var194 /* : Bool */;
767 short int var195 /* : Bool */;
768 short int var196 /* : Bool */;
769 short int var197 /* : Bool */;
770 short int var199 /* : Bool */;
771 short int var200 /* : Bool */;
772 val* var_node201 /* var node: ANode */;
773 short int var202 /* : Bool */;
774 short int var203 /* : Bool */;
775 short int var205 /* : Bool */;
776 short int var207 /* : Bool */;
777 val* var208 /* : MClassType */;
778 val* var210 /* : MClassType */;
779 short int var211 /* : Bool */;
780 short int var212 /* : Bool */;
781 val* var214 /* : NativeArray[String] */;
782 static val* varonce213;
783 static val* varonce215;
784 val* var216 /* : String */;
785 char* var217 /* : NativeString */;
786 val* var218 /* : FlatString */;
787 static val* varonce219;
788 val* var220 /* : String */;
789 char* var221 /* : NativeString */;
790 val* var222 /* : FlatString */;
791 static val* varonce223;
792 val* var224 /* : String */;
793 char* var225 /* : NativeString */;
794 val* var226 /* : FlatString */;
795 val* var227 /* : String */;
796 val* var228 /* : String */;
797 val* var229 /* : String */;
798 var_modelbuilder = p0;
799 var_mpropdef = p1;
800 {
801 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
802 var2 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MMethodDef> */
803 if (unlikely(var2 == NULL)) {
804 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
805 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209);
806 fatal_exit(1);
807 }
808 var = var2;
809 RET_LABEL1:(void)0;
810 }
811 }
812 var_mclassdef = var;
813 {
814 { /* Inline model#MClassDef#mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
815 var5 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
816 if (unlikely(var5 == NULL)) {
817 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
818 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550);
819 fatal_exit(1);
820 }
821 var3 = var5;
822 RET_LABEL4:(void)0;
823 }
824 }
825 var_mmodule = var3;
826 {
827 { /* Inline parser_nodes#AAttrPropdef#n_type (self) on <self:AAttrPropdef> */
828 var8 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_type].val; /* _n_type on <self:AAttrPropdef> */
829 var6 = var8;
830 RET_LABEL7:(void)0;
831 }
832 }
833 var_nsig = var6;
834 {
835 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:MMethodDef> */
836 var11 = var_mpropdef->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:MMethodDef> */
837 var9 = var11;
838 RET_LABEL10:(void)0;
839 }
840 }
841 var_mysignature = var9;
842 if (var_mysignature == NULL) {
843 var12 = 1; /* is null */
844 } else {
845 var12 = 0; /* arg is null but recv is not */
846 }
847 if (0) {
848 { /* Inline kernel#Object#== (var_mysignature,((val*)NULL)) on <var_mysignature:nullable MSignature> */
849 var_other = ((val*)NULL);
850 {
851 { /* Inline kernel#Object#is_same_instance (var_mysignature,var_other) on <var_mysignature:nullable MSignature(MSignature)> */
852 var17 = var_mysignature == var_other;
853 var15 = var17;
854 goto RET_LABEL16;
855 RET_LABEL16:(void)0;
856 }
857 }
858 var13 = var15;
859 goto RET_LABEL14;
860 RET_LABEL14:(void)0;
861 }
862 var12 = var13;
863 }
864 if (var12){
865 goto RET_LABEL;
866 } else {
867 }
868 {
869 var18 = nit___nit__MPropDef___is_intro(var_mpropdef);
870 }
871 var19 = !var18;
872 if (var19){
873 {
874 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
875 var22 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
876 if (unlikely(var22 == NULL)) {
877 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
878 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
879 fatal_exit(1);
880 }
881 var20 = var22;
882 RET_LABEL21:(void)0;
883 }
884 }
885 {
886 { /* Inline model#MProperty#intro (var20) on <var20:MProperty(MMethod)> */
887 var25 = var20->attrs[COLOR_nit__model__MProperty___intro].val; /* _intro on <var20:MProperty(MMethod)> */
888 if (unlikely(var25 == NULL)) {
889 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
890 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1968);
891 fatal_exit(1);
892 }
893 var23 = var25;
894 RET_LABEL24:(void)0;
895 }
896 }
897 {
898 { /* Inline model#MMethodDef#msignature (var23) on <var23:MPropDef(MMethodDef)> */
899 var28 = var23->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on <var23:MPropDef(MMethodDef)> */
900 var26 = var28;
901 RET_LABEL27:(void)0;
902 }
903 }
904 var_msignature = var26;
905 if (var_msignature == NULL) {
906 var29 = 1; /* is null */
907 } else {
908 var29 = 0; /* arg is null but recv is not */
909 }
910 if (0) {
911 { /* Inline kernel#Object#== (var_msignature,((val*)NULL)) on <var_msignature:nullable MSignature> */
912 var_other = ((val*)NULL);
913 {
914 { /* Inline kernel#Object#is_same_instance (var_msignature,var_other) on <var_msignature:nullable MSignature(MSignature)> */
915 var34 = var_msignature == var_other;
916 var32 = var34;
917 goto RET_LABEL33;
918 RET_LABEL33:(void)0;
919 }
920 }
921 var30 = var32;
922 goto RET_LABEL31;
923 RET_LABEL31:(void)0;
924 }
925 var29 = var30;
926 }
927 if (var29){
928 goto RET_LABEL;
929 } else {
930 }
931 {
932 var35 = nit___nit__MSignature___arity(var_mysignature);
933 }
934 {
935 var36 = nit___nit__MSignature___arity(var_msignature);
936 }
937 {
938 { /* Inline kernel#Int#!= (var35,var36) on <var35:Int> */
939 var39 = var35 == var36;
940 var40 = !var39;
941 var37 = var40;
942 goto RET_LABEL38;
943 RET_LABEL38:(void)0;
944 }
945 }
946 if (var37){
947 if (var_nsig == NULL) {
948 var41 = 0; /* is null */
949 } else {
950 var41 = 1; /* arg is null and recv is not */
951 }
952 if (0) {
953 { /* Inline kernel#Object#!= (var_nsig,((val*)NULL)) on <var_nsig:nullable AType> */
954 var_other44 = ((val*)NULL);
955 {
956 var45 = ((short int(*)(val* self, val* p0))(var_nsig->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nsig, var_other44); /* == on <var_nsig:nullable AType(AType)>*/
957 }
958 var46 = !var45;
959 var42 = var46;
960 goto RET_LABEL43;
961 RET_LABEL43:(void)0;
962 }
963 var41 = var42;
964 }
965 if (var41){
966 var_node = var_nsig;
967 } else {
968 var_node = self;
969 }
970 if (unlikely(varonce==NULL)) {
971 var47 = NEW_standard__NativeArray(10l, &type_standard__NativeArray__standard__String);
972 if (likely(varonce48!=NULL)) {
973 var49 = varonce48;
974 } else {
975 var50 = "Redef Error: expected ";
976 var51 = standard___standard__NativeString___to_s_with_length(var50, 22l);
977 var49 = var51;
978 varonce48 = var49;
979 }
980 ((struct instance_standard__NativeArray*)var47)->values[0]=var49;
981 if (likely(varonce52!=NULL)) {
982 var53 = varonce52;
983 } else {
984 var54 = " parameter(s) for `";
985 var55 = standard___standard__NativeString___to_s_with_length(var54, 19l);
986 var53 = var55;
987 varonce52 = var53;
988 }
989 ((struct instance_standard__NativeArray*)var47)->values[2]=var53;
990 if (likely(varonce56!=NULL)) {
991 var57 = varonce56;
992 } else {
993 var58 = "`; got ";
994 var59 = standard___standard__NativeString___to_s_with_length(var58, 7l);
995 var57 = var59;
996 varonce56 = var57;
997 }
998 ((struct instance_standard__NativeArray*)var47)->values[5]=var57;
999 if (likely(varonce60!=NULL)) {
1000 var61 = varonce60;
1001 } else {
1002 var62 = ". See introduction at `";
1003 var63 = standard___standard__NativeString___to_s_with_length(var62, 23l);
1004 var61 = var63;
1005 varonce60 = var61;
1006 }
1007 ((struct instance_standard__NativeArray*)var47)->values[7]=var61;
1008 if (likely(varonce64!=NULL)) {
1009 var65 = varonce64;
1010 } else {
1011 var66 = "`.";
1012 var67 = standard___standard__NativeString___to_s_with_length(var66, 2l);
1013 var65 = var67;
1014 varonce64 = var65;
1015 }
1016 ((struct instance_standard__NativeArray*)var47)->values[9]=var65;
1017 } else {
1018 var47 = varonce;
1019 varonce = NULL;
1020 }
1021 {
1022 var68 = nit___nit__MSignature___arity(var_msignature);
1023 }
1024 var69 = standard__string___Int___Object__to_s(var68);
1025 ((struct instance_standard__NativeArray*)var47)->values[1]=var69;
1026 {
1027 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
1028 var72 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
1029 if (unlikely(var72 == NULL)) {
1030 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1031 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
1032 fatal_exit(1);
1033 }
1034 var70 = var72;
1035 RET_LABEL71:(void)0;
1036 }
1037 }
1038 {
1039 { /* Inline model#MProperty#name (var70) on <var70:MProperty(MMethod)> */
1040 var75 = var70->attrs[COLOR_nit__model__MProperty___name].val; /* _name on <var70:MProperty(MMethod)> */
1041 if (unlikely(var75 == NULL)) {
1042 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1043 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1933);
1044 fatal_exit(1);
1045 }
1046 var73 = var75;
1047 RET_LABEL74:(void)0;
1048 }
1049 }
1050 ((struct instance_standard__NativeArray*)var47)->values[3]=var73;
1051 {
1052 var76 = ((val*(*)(val* self))(var_msignature->class->vft[COLOR_standard__string__Object__to_s]))(var_msignature); /* to_s on <var_msignature:nullable MSignature(MSignature)>*/
1053 }
1054 ((struct instance_standard__NativeArray*)var47)->values[4]=var76;
1055 {
1056 var77 = nit___nit__MSignature___arity(var_mysignature);
1057 }
1058 var78 = standard__string___Int___Object__to_s(var77);
1059 ((struct instance_standard__NativeArray*)var47)->values[6]=var78;
1060 {
1061 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
1062 var81 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
1063 if (unlikely(var81 == NULL)) {
1064 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1065 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
1066 fatal_exit(1);
1067 }
1068 var79 = var81;
1069 RET_LABEL80:(void)0;
1070 }
1071 }
1072 {
1073 var82 = nit___nit__MProperty___nit__model_base__MEntity__full_name(var79);
1074 }
1075 ((struct instance_standard__NativeArray*)var47)->values[8]=var82;
1076 {
1077 var83 = ((val*(*)(val* self))(var47->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var47); /* native_to_s on <var47:NativeArray[String]>*/
1078 }
1079 varonce = var47;
1080 {
1081 nit___nit__ModelBuilder___error(var_modelbuilder, var_node, var83); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
1082 }
1083 goto RET_LABEL;
1084 } else {
1085 }
1086 {
1087 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
1088 var86 = var_msignature->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on <var_msignature:nullable MSignature(MSignature)> */
1089 var84 = var86;
1090 RET_LABEL85:(void)0;
1091 }
1092 }
1093 var_precursor_ret_type = var84;
1094 {
1095 { /* Inline model#MSignature#return_mtype (var_mysignature) on <var_mysignature:nullable MSignature(MSignature)> */
1096 var89 = var_mysignature->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on <var_mysignature:nullable MSignature(MSignature)> */
1097 var87 = var89;
1098 RET_LABEL88:(void)0;
1099 }
1100 }
1101 var_ret_type = var87;
1102 if (var_ret_type == NULL) {
1103 var91 = 0; /* is null */
1104 } else {
1105 var91 = 1; /* arg is null and recv is not */
1106 }
1107 if (0) {
1108 { /* Inline kernel#Object#!= (var_ret_type,((val*)NULL)) on <var_ret_type:nullable MType> */
1109 var_other44 = ((val*)NULL);
1110 {
1111 var94 = ((short int(*)(val* self, val* p0))(var_ret_type->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ret_type, var_other44); /* == on <var_ret_type:nullable MType(MType)>*/
1112 }
1113 var95 = !var94;
1114 var92 = var95;
1115 goto RET_LABEL93;
1116 RET_LABEL93:(void)0;
1117 }
1118 var91 = var92;
1119 }
1120 var_ = var91;
1121 if (var91){
1122 if (var_precursor_ret_type == NULL) {
1123 var96 = 1; /* is null */
1124 } else {
1125 var96 = 0; /* arg is null but recv is not */
1126 }
1127 if (0) {
1128 { /* Inline kernel#Object#== (var_precursor_ret_type,((val*)NULL)) on <var_precursor_ret_type:nullable MType> */
1129 var_other = ((val*)NULL);
1130 {
1131 { /* Inline kernel#Object#is_same_instance (var_precursor_ret_type,var_other) on <var_precursor_ret_type:nullable MType(MType)> */
1132 var101 = var_precursor_ret_type == var_other;
1133 var99 = var101;
1134 goto RET_LABEL100;
1135 RET_LABEL100:(void)0;
1136 }
1137 }
1138 var97 = var99;
1139 goto RET_LABEL98;
1140 RET_LABEL98:(void)0;
1141 }
1142 var96 = var97;
1143 }
1144 var90 = var96;
1145 } else {
1146 var90 = var_;
1147 }
1148 if (var90){
1149 if (var_nsig == NULL) {
1150 var102 = 0; /* is null */
1151 } else {
1152 var102 = 1; /* arg is null and recv is not */
1153 }
1154 if (0) {
1155 { /* Inline kernel#Object#!= (var_nsig,((val*)NULL)) on <var_nsig:nullable AType> */
1156 var_other44 = ((val*)NULL);
1157 {
1158 var105 = ((short int(*)(val* self, val* p0))(var_nsig->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nsig, var_other44); /* == on <var_nsig:nullable AType(AType)>*/
1159 }
1160 var106 = !var105;
1161 var103 = var106;
1162 goto RET_LABEL104;
1163 RET_LABEL104:(void)0;
1164 }
1165 var102 = var103;
1166 }
1167 if (var102){
1168 var_node107 = var_nsig;
1169 } else {
1170 var_node107 = self;
1171 }
1172 if (unlikely(varonce108==NULL)) {
1173 var109 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
1174 if (likely(varonce110!=NULL)) {
1175 var111 = varonce110;
1176 } else {
1177 var112 = "Redef Error: `";
1178 var113 = standard___standard__NativeString___to_s_with_length(var112, 14l);
1179 var111 = var113;
1180 varonce110 = var111;
1181 }
1182 ((struct instance_standard__NativeArray*)var109)->values[0]=var111;
1183 if (likely(varonce114!=NULL)) {
1184 var115 = varonce114;
1185 } else {
1186 var116 = "` is a procedure, not a function.";
1187 var117 = standard___standard__NativeString___to_s_with_length(var116, 33l);
1188 var115 = var117;
1189 varonce114 = var115;
1190 }
1191 ((struct instance_standard__NativeArray*)var109)->values[2]=var115;
1192 } else {
1193 var109 = varonce108;
1194 varonce108 = NULL;
1195 }
1196 {
1197 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
1198 var120 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
1199 if (unlikely(var120 == NULL)) {
1200 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1201 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
1202 fatal_exit(1);
1203 }
1204 var118 = var120;
1205 RET_LABEL119:(void)0;
1206 }
1207 }
1208 {
1209 var121 = ((val*(*)(val* self))(var118->class->vft[COLOR_standard__string__Object__to_s]))(var118); /* to_s on <var118:MProperty(MMethod)>*/
1210 }
1211 ((struct instance_standard__NativeArray*)var109)->values[1]=var121;
1212 {
1213 var122 = ((val*(*)(val* self))(var109->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var109); /* native_to_s on <var109:NativeArray[String]>*/
1214 }
1215 varonce108 = var109;
1216 {
1217 nit___nit__ModelBuilder___error(var_modelbuilder, var_node107, var122); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
1218 }
1219 goto RET_LABEL;
1220 } else {
1221 }
1222 {
1223 var123 = nit___nit__MSignature___arity(var_mysignature);
1224 }
1225 {
1226 { /* Inline kernel#Int#> (var123,0l) on <var123:Int> */
1227 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1228 /* <0l:Int> isa OTHER */
1229 var126 = 1; /* easy <0l:Int> isa OTHER*/
1230 if (unlikely(!var126)) {
1231 var_class_name = type_standard__Int.name;
1232 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1233 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
1234 fatal_exit(1);
1235 }
1236 var127 = var123 > 0l;
1237 var124 = var127;
1238 goto RET_LABEL125;
1239 RET_LABEL125:(void)0;
1240 }
1241 }
1242 if (var124){
1243 var_i = 0l;
1244 {
1245 var128 = nit___nit__MSignature___arity(var_mysignature);
1246 }
1247 var_129 = var128;
1248 for(;;) {
1249 {
1250 { /* Inline kernel#Int#< (var_i,var_129) on <var_i:Int> */
1251 /* Covariant cast for argument 0 (i) <var_129:Int> isa OTHER */
1252 /* <var_129:Int> isa OTHER */
1253 var132 = 1; /* easy <var_129:Int> isa OTHER*/
1254 if (unlikely(!var132)) {
1255 var_class_name135 = type_standard__Int.name;
1256 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name135);
1257 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
1258 fatal_exit(1);
1259 }
1260 var136 = var_i < var_129;
1261 var130 = var136;
1262 goto RET_LABEL131;
1263 RET_LABEL131:(void)0;
1264 }
1265 }
1266 if (var130){
1267 {
1268 { /* Inline model#MSignature#mparameters (var_mysignature) on <var_mysignature:nullable MSignature(MSignature)> */
1269 var139 = var_mysignature->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on <var_mysignature:nullable MSignature(MSignature)> */
1270 if (unlikely(var139 == NULL)) {
1271 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
1272 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1756);
1273 fatal_exit(1);
1274 }
1275 var137 = var139;
1276 RET_LABEL138:(void)0;
1277 }
1278 }
1279 {
1280 var140 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var137, var_i);
1281 }
1282 {
1283 { /* Inline model#MParameter#mtype (var140) on <var140:nullable Object(MParameter)> */
1284 var143 = var140->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on <var140:nullable Object(MParameter)> */
1285 if (unlikely(var143 == NULL)) {
1286 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1287 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1879);
1288 fatal_exit(1);
1289 }
1290 var141 = var143;
1291 RET_LABEL142:(void)0;
1292 }
1293 }
1294 var_myt = var141;
1295 {
1296 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
1297 var146 = var_msignature->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on <var_msignature:nullable MSignature(MSignature)> */
1298 if (unlikely(var146 == NULL)) {
1299 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
1300 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1756);
1301 fatal_exit(1);
1302 }
1303 var144 = var146;
1304 RET_LABEL145:(void)0;
1305 }
1306 }
1307 {
1308 var147 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var144, var_i);
1309 }
1310 {
1311 { /* Inline model#MParameter#mtype (var147) on <var147:nullable Object(MParameter)> */
1312 var150 = var147->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on <var147:nullable Object(MParameter)> */
1313 if (unlikely(var150 == NULL)) {
1314 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1315 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1879);
1316 fatal_exit(1);
1317 }
1318 var148 = var150;
1319 RET_LABEL149:(void)0;
1320 }
1321 }
1322 var_prt = var148;
1323 if (var_nsig == NULL) {
1324 var151 = 0; /* is null */
1325 } else {
1326 var151 = 1; /* arg is null and recv is not */
1327 }
1328 if (0) {
1329 { /* Inline kernel#Object#!= (var_nsig,((val*)NULL)) on <var_nsig:nullable AType> */
1330 var_other44 = ((val*)NULL);
1331 {
1332 var154 = ((short int(*)(val* self, val* p0))(var_nsig->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nsig, var_other44); /* == on <var_nsig:nullable AType(AType)>*/
1333 }
1334 var155 = !var154;
1335 var152 = var155;
1336 goto RET_LABEL153;
1337 RET_LABEL153:(void)0;
1338 }
1339 var151 = var152;
1340 }
1341 if (var151){
1342 var_node156 = var_nsig;
1343 } else {
1344 var_node156 = self;
1345 }
1346 {
1347 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
1348 var159 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
1349 if (unlikely(var159 == NULL)) {
1350 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1351 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556);
1352 fatal_exit(1);
1353 }
1354 var157 = var159;
1355 RET_LABEL158:(void)0;
1356 }
1357 }
1358 {
1359 var160 = nit___nit__ModelBuilder___check_sametype(var_modelbuilder, var_node156, var_mmodule, var157, var_myt, var_prt);
1360 }
1361 var161 = !var160;
1362 if (var161){
1363 if (unlikely(varonce162==NULL)) {
1364 var163 = NEW_standard__NativeArray(7l, &type_standard__NativeArray__standard__String);
1365 if (likely(varonce164!=NULL)) {
1366 var165 = varonce164;
1367 } else {
1368 var166 = "Redef Error: expected `";
1369 var167 = standard___standard__NativeString___to_s_with_length(var166, 23l);
1370 var165 = var167;
1371 varonce164 = var165;
1372 }
1373 ((struct instance_standard__NativeArray*)var163)->values[0]=var165;
1374 if (likely(varonce168!=NULL)) {
1375 var169 = varonce168;
1376 } else {
1377 var170 = "` type for parameter `";
1378 var171 = standard___standard__NativeString___to_s_with_length(var170, 22l);
1379 var169 = var171;
1380 varonce168 = var169;
1381 }
1382 ((struct instance_standard__NativeArray*)var163)->values[2]=var169;
1383 if (likely(varonce172!=NULL)) {
1384 var173 = varonce172;
1385 } else {
1386 var174 = "\'; got `";
1387 var175 = standard___standard__NativeString___to_s_with_length(var174, 8l);
1388 var173 = var175;
1389 varonce172 = var173;
1390 }
1391 ((struct instance_standard__NativeArray*)var163)->values[4]=var173;
1392 if (likely(varonce176!=NULL)) {
1393 var177 = varonce176;
1394 } else {
1395 var178 = "`.";
1396 var179 = standard___standard__NativeString___to_s_with_length(var178, 2l);
1397 var177 = var179;
1398 varonce176 = var177;
1399 }
1400 ((struct instance_standard__NativeArray*)var163)->values[6]=var177;
1401 } else {
1402 var163 = varonce162;
1403 varonce162 = NULL;
1404 }
1405 {
1406 var180 = ((val*(*)(val* self))(var_prt->class->vft[COLOR_standard__string__Object__to_s]))(var_prt); /* to_s on <var_prt:MType>*/
1407 }
1408 ((struct instance_standard__NativeArray*)var163)->values[1]=var180;
1409 {
1410 { /* Inline model#MSignature#mparameters (var_mysignature) on <var_mysignature:nullable MSignature(MSignature)> */
1411 var183 = var_mysignature->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on <var_mysignature:nullable MSignature(MSignature)> */
1412 if (unlikely(var183 == NULL)) {
1413 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
1414 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1756);
1415 fatal_exit(1);
1416 }
1417 var181 = var183;
1418 RET_LABEL182:(void)0;
1419 }
1420 }
1421 {
1422 var184 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var181, var_i);
1423 }
1424 {
1425 { /* Inline model#MParameter#name (var184) on <var184:nullable Object(MParameter)> */
1426 var187 = var184->attrs[COLOR_nit__model__MParameter___name].val; /* _name on <var184:nullable Object(MParameter)> */
1427 if (unlikely(var187 == NULL)) {
1428 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1429 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1876);
1430 fatal_exit(1);
1431 }
1432 var185 = var187;
1433 RET_LABEL186:(void)0;
1434 }
1435 }
1436 ((struct instance_standard__NativeArray*)var163)->values[3]=var185;
1437 {
1438 var188 = ((val*(*)(val* self))(var_myt->class->vft[COLOR_standard__string__Object__to_s]))(var_myt); /* to_s on <var_myt:MType>*/
1439 }
1440 ((struct instance_standard__NativeArray*)var163)->values[5]=var188;
1441 {
1442 var189 = ((val*(*)(val* self))(var163->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var163); /* native_to_s on <var163:NativeArray[String]>*/
1443 }
1444 varonce162 = var163;
1445 {
1446 nit___nit__ModelBuilder___error(var_modelbuilder, var_node156, var189); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
1447 }
1448 } else {
1449 }
1450 {
1451 var190 = standard___standard__Int___Discrete__successor(var_i, 1l);
1452 }
1453 var_i = var190;
1454 } else {
1455 goto BREAK_label;
1456 }
1457 }
1458 BREAK_label: (void)0;
1459 } else {
1460 }
1461 if (var_precursor_ret_type == NULL) {
1462 var191 = 0; /* is null */
1463 } else {
1464 var191 = 1; /* arg is null and recv is not */
1465 }
1466 if (0) {
1467 { /* Inline kernel#Object#!= (var_precursor_ret_type,((val*)NULL)) on <var_precursor_ret_type:nullable MType> */
1468 var_other44 = ((val*)NULL);
1469 {
1470 var194 = ((short int(*)(val* self, val* p0))(var_precursor_ret_type->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_precursor_ret_type, var_other44); /* == on <var_precursor_ret_type:nullable MType(MType)>*/
1471 }
1472 var195 = !var194;
1473 var192 = var195;
1474 goto RET_LABEL193;
1475 RET_LABEL193:(void)0;
1476 }
1477 var191 = var192;
1478 }
1479 if (var191){
1480 if (var_nsig == NULL) {
1481 var196 = 0; /* is null */
1482 } else {
1483 var196 = 1; /* arg is null and recv is not */
1484 }
1485 if (0) {
1486 { /* Inline kernel#Object#!= (var_nsig,((val*)NULL)) on <var_nsig:nullable AType> */
1487 var_other44 = ((val*)NULL);
1488 {
1489 var199 = ((short int(*)(val* self, val* p0))(var_nsig->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nsig, var_other44); /* == on <var_nsig:nullable AType(AType)>*/
1490 }
1491 var200 = !var199;
1492 var197 = var200;
1493 goto RET_LABEL198;
1494 RET_LABEL198:(void)0;
1495 }
1496 var196 = var197;
1497 }
1498 if (var196){
1499 var_node201 = var_nsig;
1500 } else {
1501 var_node201 = self;
1502 }
1503 if (var_ret_type == NULL) {
1504 var202 = 1; /* is null */
1505 } else {
1506 var202 = 0; /* arg is null but recv is not */
1507 }
1508 if (0) {
1509 { /* Inline kernel#Object#== (var_ret_type,((val*)NULL)) on <var_ret_type:nullable MType> */
1510 var_other = ((val*)NULL);
1511 {
1512 { /* Inline kernel#Object#is_same_instance (var_ret_type,var_other) on <var_ret_type:nullable MType(MType)> */
1513 var207 = var_ret_type == var_other;
1514 var205 = var207;
1515 goto RET_LABEL206;
1516 RET_LABEL206:(void)0;
1517 }
1518 }
1519 var203 = var205;
1520 goto RET_LABEL204;
1521 RET_LABEL204:(void)0;
1522 }
1523 var202 = var203;
1524 }
1525 if (var202){
1526 var_ret_type = var_precursor_ret_type;
1527 } else {
1528 {
1529 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
1530 var210 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
1531 if (unlikely(var210 == NULL)) {
1532 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1533 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556);
1534 fatal_exit(1);
1535 }
1536 var208 = var210;
1537 RET_LABEL209:(void)0;
1538 }
1539 }
1540 {
1541 var211 = nit___nit__ModelBuilder___check_subtype(var_modelbuilder, var_node201, var_mmodule, var208, var_ret_type, var_precursor_ret_type);
1542 }
1543 var212 = !var211;
1544 if (var212){
1545 if (unlikely(varonce213==NULL)) {
1546 var214 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String);
1547 if (likely(varonce215!=NULL)) {
1548 var216 = varonce215;
1549 } else {
1550 var217 = "Redef Error: expected `";
1551 var218 = standard___standard__NativeString___to_s_with_length(var217, 23l);
1552 var216 = var218;
1553 varonce215 = var216;
1554 }
1555 ((struct instance_standard__NativeArray*)var214)->values[0]=var216;
1556 if (likely(varonce219!=NULL)) {
1557 var220 = varonce219;
1558 } else {
1559 var221 = "` return type; got `";
1560 var222 = standard___standard__NativeString___to_s_with_length(var221, 20l);
1561 var220 = var222;
1562 varonce219 = var220;
1563 }
1564 ((struct instance_standard__NativeArray*)var214)->values[2]=var220;
1565 if (likely(varonce223!=NULL)) {
1566 var224 = varonce223;
1567 } else {
1568 var225 = "`.";
1569 var226 = standard___standard__NativeString___to_s_with_length(var225, 2l);
1570 var224 = var226;
1571 varonce223 = var224;
1572 }
1573 ((struct instance_standard__NativeArray*)var214)->values[4]=var224;
1574 } else {
1575 var214 = varonce213;
1576 varonce213 = NULL;
1577 }
1578 {
1579 var227 = ((val*(*)(val* self))(var_precursor_ret_type->class->vft[COLOR_standard__string__Object__to_s]))(var_precursor_ret_type); /* to_s on <var_precursor_ret_type:nullable MType(MType)>*/
1580 }
1581 ((struct instance_standard__NativeArray*)var214)->values[1]=var227;
1582 {
1583 var228 = ((val*(*)(val* self))(var_ret_type->class->vft[COLOR_standard__string__Object__to_s]))(var_ret_type); /* to_s on <var_ret_type:nullable MType(MType)>*/
1584 }
1585 ((struct instance_standard__NativeArray*)var214)->values[3]=var228;
1586 {
1587 var229 = ((val*(*)(val* self))(var214->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var214); /* native_to_s on <var214:NativeArray[String]>*/
1588 }
1589 varonce213 = var214;
1590 {
1591 nit___nit__ModelBuilder___error(var_modelbuilder, var_node201, var229); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
1592 }
1593 } else {
1594 }
1595 }
1596 } else {
1597 }
1598 } else {
1599 }
1600 RET_LABEL:;
1601 }
1602 /* method modelize_property#AAttrPropdef#check_repeated_types for (self: AAttrPropdef, ModelBuilder) */
1603 void nit__modelize_property___AAttrPropdef___APropdef__check_repeated_types(val* self, val* p0) {
1604 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
1605 short int var /* : Bool */;
1606 val* var1 /* : nullable MMethodDef */;
1607 val* var3 /* : nullable MMethodDef */;
1608 short int var4 /* : Bool */;
1609 short int var_ /* var : Bool */;
1610 val* var5 /* : nullable AType */;
1611 val* var7 /* : nullable AType */;
1612 short int var8 /* : Bool */;
1613 short int var9 /* : Bool */;
1614 val* var_other /* var other: nullable Object */;
1615 short int var11 /* : Bool */;
1616 short int var13 /* : Bool */;
1617 val* var14 /* : nullable MMethodDef */;
1618 val* var16 /* : nullable MMethodDef */;
1619 val* var17 /* : MProperty */;
1620 val* var19 /* : MProperty */;
1621 val* var20 /* : MPropDef */;
1622 val* var22 /* : MPropDef */;
1623 val* var_intro /* var intro: MMethodDef */;
1624 val* var23 /* : HashMap[MPropDef, APropdef] */;
1625 val* var25 /* : HashMap[MPropDef, APropdef] */;
1626 val* var26 /* : nullable Object */;
1627 val* var_n_intro /* var n_intro: nullable APropdef */;
1628 short int var27 /* : Bool */;
1629 short int var28 /* : Bool */;
1630 short int var30 /* : Bool */;
1631 short int var32 /* : Bool */;
1632 val* var_ntype /* var ntype: nullable Object */;
1633 short int var33 /* : Bool */;
1634 int cltype;
1635 int idtype;
1636 val* var34 /* : nullable ASignature */;
1637 val* var36 /* : nullable ASignature */;
1638 val* var37 /* : nullable MType */;
1639 val* var39 /* : nullable MType */;
1640 short int var40 /* : Bool */;
1641 short int var41 /* : Bool */;
1642 int cltype42;
1643 int idtype43;
1644 short int var_44 /* var : Bool */;
1645 val* var45 /* : nullable AType */;
1646 val* var47 /* : nullable AType */;
1647 short int var48 /* : Bool */;
1648 short int var49 /* : Bool */;
1649 val* var_other51 /* var other: nullable Object */;
1650 short int var52 /* : Bool */;
1651 short int var53 /* : Bool */;
1652 val* var54 /* : nullable AType */;
1653 val* var56 /* : nullable AType */;
1654 val* var57 /* : nullable MType */;
1655 val* var59 /* : nullable MType */;
1656 short int var60 /* : Bool */;
1657 short int var61 /* : Bool */;
1658 short int var62 /* : Bool */;
1659 short int var64 /* : Bool */;
1660 short int var66 /* : Bool */;
1661 short int var_67 /* var : Bool */;
1662 val* var68 /* : nullable AType */;
1663 val* var70 /* : nullable AType */;
1664 val* var71 /* : nullable MType */;
1665 val* var73 /* : nullable MType */;
1666 short int var74 /* : Bool */;
1667 short int var76 /* : Bool */;
1668 short int var77 /* : Bool */;
1669 val* var78 /* : nullable AType */;
1670 val* var80 /* : nullable AType */;
1671 static val* varonce;
1672 val* var81 /* : String */;
1673 char* var82 /* : NativeString */;
1674 val* var83 /* : FlatString */;
1675 val* var85 /* : NativeArray[String] */;
1676 static val* varonce84;
1677 static val* varonce86;
1678 val* var87 /* : String */;
1679 char* var88 /* : NativeString */;
1680 val* var89 /* : FlatString */;
1681 static val* varonce90;
1682 val* var91 /* : String */;
1683 char* var92 /* : NativeString */;
1684 val* var93 /* : FlatString */;
1685 val* var94 /* : nullable MPropDef */;
1686 val* var96 /* : nullable MPropDef */;
1687 val* var97 /* : String */;
1688 val* var98 /* : String */;
1689 var_modelbuilder = p0;
1690 {
1691 { /* Inline modelize_property#AAttrPropdef#mreadpropdef (self) on <self:AAttrPropdef> */
1692 var3 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___mreadpropdef].val; /* _mreadpropdef on <self:AAttrPropdef> */
1693 var1 = var3;
1694 RET_LABEL2:(void)0;
1695 }
1696 }
1697 if (var1 == NULL) {
1698 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1699 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 1516);
1700 fatal_exit(1);
1701 } else {
1702 var4 = nit___nit__MPropDef___is_intro(var1);
1703 }
1704 var_ = var4;
1705 if (var4){
1706 var = var_;
1707 } else {
1708 {
1709 { /* Inline parser_nodes#AAttrPropdef#n_type (self) on <self:AAttrPropdef> */
1710 var7 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_type].val; /* _n_type on <self:AAttrPropdef> */
1711 var5 = var7;
1712 RET_LABEL6:(void)0;
1713 }
1714 }
1715 if (var5 == NULL) {
1716 var8 = 1; /* is null */
1717 } else {
1718 var8 = 0; /* arg is null but recv is not */
1719 }
1720 if (0) {
1721 { /* Inline kernel#Object#== (var5,((val*)NULL)) on <var5:nullable AType> */
1722 var_other = ((val*)NULL);
1723 {
1724 { /* Inline kernel#Object#is_same_instance (var5,var_other) on <var5:nullable AType(AType)> */
1725 var13 = var5 == var_other;
1726 var11 = var13;
1727 goto RET_LABEL12;
1728 RET_LABEL12:(void)0;
1729 }
1730 }
1731 var9 = var11;
1732 goto RET_LABEL10;
1733 RET_LABEL10:(void)0;
1734 }
1735 var8 = var9;
1736 }
1737 var = var8;
1738 }
1739 if (var){
1740 goto RET_LABEL;
1741 } else {
1742 }
1743 {
1744 { /* Inline modelize_property#AAttrPropdef#mreadpropdef (self) on <self:AAttrPropdef> */
1745 var16 = self->attrs[COLOR_nit__modelize_property__AAttrPropdef___mreadpropdef].val; /* _mreadpropdef on <self:AAttrPropdef> */
1746 var14 = var16;
1747 RET_LABEL15:(void)0;
1748 }
1749 }
1750 if (var14 == NULL) {
1751 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1752 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 1518);
1753 fatal_exit(1);
1754 } else {
1755 { /* Inline model#MPropDef#mproperty (var14) on <var14:nullable MMethodDef> */
1756 if (unlikely(var14 == NULL)) {
1757 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1758 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
1759 fatal_exit(1);
1760 }
1761 var19 = var14->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var14:nullable MMethodDef> */
1762 if (unlikely(var19 == NULL)) {
1763 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1764 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
1765 fatal_exit(1);
1766 }
1767 var17 = var19;
1768 RET_LABEL18:(void)0;
1769 }
1770 }
1771 {
1772 { /* Inline model#MProperty#intro (var17) on <var17:MProperty(MMethod)> */
1773 var22 = var17->attrs[COLOR_nit__model__MProperty___intro].val; /* _intro on <var17:MProperty(MMethod)> */
1774 if (unlikely(var22 == NULL)) {
1775 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
1776 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1968);
1777 fatal_exit(1);
1778 }
1779 var20 = var22;
1780 RET_LABEL21:(void)0;
1781 }
1782 }
1783 var_intro = var20;
1784 {
1785 { /* Inline modelize_property#ModelBuilder#mpropdef2npropdef (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
1786 var25 = var_modelbuilder->attrs[COLOR_nit__modelize_property__ModelBuilder___mpropdef2npropdef].val; /* _mpropdef2npropdef on <var_modelbuilder:ModelBuilder> */
1787 if (unlikely(var25 == NULL)) {
1788 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
1789 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 40);
1790 fatal_exit(1);
1791 }
1792 var23 = var25;
1793 RET_LABEL24:(void)0;
1794 }
1795 }
1796 {
1797 var26 = standard___standard__HashMap___standard__abstract_collection__MapRead__get_or_null(var23, var_intro);
1798 }
1799 var_n_intro = var26;
1800 if (var_n_intro == NULL) {
1801 var27 = 1; /* is null */
1802 } else {
1803 var27 = 0; /* arg is null but recv is not */
1804 }
1805 if (0) {
1806 { /* Inline kernel#Object#== (var_n_intro,((val*)NULL)) on <var_n_intro:nullable APropdef> */
1807 var_other = ((val*)NULL);
1808 {
1809 { /* Inline kernel#Object#is_same_instance (var_n_intro,var_other) on <var_n_intro:nullable APropdef(APropdef)> */
1810 var32 = var_n_intro == var_other;
1811 var30 = var32;
1812 goto RET_LABEL31;
1813 RET_LABEL31:(void)0;
1814 }
1815 }
1816 var28 = var30;
1817 goto RET_LABEL29;
1818 RET_LABEL29:(void)0;
1819 }
1820 var27 = var28;
1821 }
1822 if (var27){
1823 goto RET_LABEL;
1824 } else {
1825 }
1826 var_ntype = ((val*)NULL);
1827 /* <var_n_intro:nullable APropdef(APropdef)> isa AMethPropdef */
1828 cltype = type_nit__AMethPropdef.color;
1829 idtype = type_nit__AMethPropdef.id;
1830 if(cltype >= var_n_intro->type->table_size) {
1831 var33 = 0;
1832 } else {
1833 var33 = var_n_intro->type->type_table[cltype] == idtype;
1834 }
1835 if (var33){
1836 {
1837 { /* Inline parser_nodes#AMethPropdef#n_signature (var_n_intro) on <var_n_intro:nullable APropdef(AMethPropdef)> */
1838 var36 = var_n_intro->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <var_n_intro:nullable APropdef(AMethPropdef)> */
1839 var34 = var36;
1840 RET_LABEL35:(void)0;
1841 }
1842 }
1843 if (var34 == NULL) {
1844 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1845 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 1524);
1846 fatal_exit(1);
1847 } else {
1848 { /* Inline modelize_property#ASignature#ret_type (var34) on <var34:nullable ASignature> */
1849 if (unlikely(var34 == NULL)) {
1850 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1851 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 669);
1852 fatal_exit(1);
1853 }
1854 var39 = var34->attrs[COLOR_nit__modelize_property__ASignature___ret_type].val; /* _ret_type on <var34:nullable ASignature> */
1855 var37 = var39;
1856 RET_LABEL38:(void)0;
1857 }
1858 }
1859 var_ntype = var37;
1860 } else {
1861 /* <var_n_intro:nullable APropdef(APropdef)> isa AAttrPropdef */
1862 cltype42 = type_nit__AAttrPropdef.color;
1863 idtype43 = type_nit__AAttrPropdef.id;
1864 if(cltype42 >= var_n_intro->type->table_size) {
1865 var41 = 0;
1866 } else {
1867 var41 = var_n_intro->type->type_table[cltype42] == idtype43;
1868 }
1869 var_44 = var41;
1870 if (var41){
1871 {
1872 { /* Inline parser_nodes#AAttrPropdef#n_type (var_n_intro) on <var_n_intro:nullable APropdef(AAttrPropdef)> */
1873 var47 = var_n_intro->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_type].val; /* _n_type on <var_n_intro:nullable APropdef(AAttrPropdef)> */
1874 var45 = var47;
1875 RET_LABEL46:(void)0;
1876 }
1877 }
1878 if (var45 == NULL) {
1879 var48 = 0; /* is null */
1880 } else {
1881 var48 = 1; /* arg is null and recv is not */
1882 }
1883 if (0) {
1884 { /* Inline kernel#Object#!= (var45,((val*)NULL)) on <var45:nullable AType> */
1885 var_other51 = ((val*)NULL);
1886 {
1887 var52 = ((short int(*)(val* self, val* p0))(var45->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var45, var_other51); /* == on <var45:nullable AType(AType)>*/
1888 }
1889 var53 = !var52;
1890 var49 = var53;
1891 goto RET_LABEL50;
1892 RET_LABEL50:(void)0;
1893 }
1894 var48 = var49;
1895 }
1896 var40 = var48;
1897 } else {
1898 var40 = var_44;
1899 }
1900 if (var40){
1901 {
1902 { /* Inline parser_nodes#AAttrPropdef#n_type (var_n_intro) on <var_n_intro:nullable APropdef(AAttrPropdef)> */
1903 var56 = var_n_intro->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_type].val; /* _n_type on <var_n_intro:nullable APropdef(AAttrPropdef)> */
1904 var54 = var56;
1905 RET_LABEL55:(void)0;
1906 }
1907 }
1908 if (var54 == NULL) {
1909 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1910 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 1526);
1911 fatal_exit(1);
1912 } else {
1913 { /* Inline modelbuilder_base#AType#mtype (var54) on <var54:nullable AType> */
1914 if (unlikely(var54 == NULL)) {
1915 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1916 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 358);
1917 fatal_exit(1);
1918 }
1919 var59 = var54->attrs[COLOR_nit__modelbuilder_base__AType___mtype].val; /* _mtype on <var54:nullable AType> */
1920 var57 = var59;
1921 RET_LABEL58:(void)0;
1922 }
1923 }
1924 var_ntype = var57;
1925 } else {
1926 }
1927 }
1928 if (var_ntype == NULL) {
1929 var61 = 1; /* is null */
1930 } else {
1931 var61 = 0; /* arg is null but recv is not */
1932 }
1933 if (0) {
1934 { /* Inline kernel#Object#== (var_ntype,((val*)NULL)) on <var_ntype:nullable Object(nullable MType)> */
1935 var_other = ((val*)NULL);
1936 {
1937 { /* Inline kernel#Object#is_same_instance (var_ntype,var_other) on <var_ntype:nullable MType(MType)> */
1938 var66 = var_ntype == var_other;
1939 var64 = var66;
1940 goto RET_LABEL65;
1941 RET_LABEL65:(void)0;
1942 }
1943 }
1944 var62 = var64;
1945 goto RET_LABEL63;
1946 RET_LABEL63:(void)0;
1947 }
1948 var61 = var62;
1949 }
1950 var_67 = var61;
1951 if (var61){
1952 var60 = var_67;
1953 } else {
1954 {
1955 { /* Inline parser_nodes#AAttrPropdef#n_type (self) on <self:AAttrPropdef> */
1956 var70 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_type].val; /* _n_type on <self:AAttrPropdef> */
1957 var68 = var70;
1958 RET_LABEL69:(void)0;
1959 }
1960 }
1961 if (var68 == NULL) {
1962 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1963 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 1529);
1964 fatal_exit(1);
1965 } else {
1966 { /* Inline modelbuilder_base#AType#mtype (var68) on <var68:nullable AType> */
1967 if (unlikely(var68 == NULL)) {
1968 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1969 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 358);
1970 fatal_exit(1);
1971 }
1972 var73 = var68->attrs[COLOR_nit__modelbuilder_base__AType___mtype].val; /* _mtype on <var68:nullable AType> */
1973 var71 = var73;
1974 RET_LABEL72:(void)0;
1975 }
1976 }
1977 {
1978 { /* Inline kernel#Object#!= (var_ntype,var71) on <var_ntype:nullable Object(MType)> */
1979 var_other51 = var71;
1980 {
1981 var76 = ((short int(*)(val* self, val* p0))(var_ntype->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ntype, var_other51); /* == on <var_ntype:nullable Object(MType)>*/
1982 }
1983 var77 = !var76;
1984 var74 = var77;
1985 goto RET_LABEL75;
1986 RET_LABEL75:(void)0;
1987 }
1988 }
1989 var60 = var74;
1990 }
1991 if (var60){
1992 goto RET_LABEL;
1993 } else {
1994 }
1995 {
1996 { /* Inline parser_nodes#AAttrPropdef#n_type (self) on <self:AAttrPropdef> */
1997 var80 = self->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_type].val; /* _n_type on <self:AAttrPropdef> */
1998 var78 = var80;
1999 RET_LABEL79:(void)0;
2000 }
2001 }
2002 if (likely(varonce!=NULL)) {
2003 var81 = varonce;
2004 } else {
2005 var82 = "useless-signature";
2006 var83 = standard___standard__NativeString___to_s_with_length(var82, 17l);
2007 var81 = var83;
2008 varonce = var81;
2009 }
2010 if (unlikely(varonce84==NULL)) {
2011 var85 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
2012 if (likely(varonce86!=NULL)) {
2013 var87 = varonce86;
2014 } else {
2015 var88 = "Warning: useless type repetition on redefined attribute `";
2016 var89 = standard___standard__NativeString___to_s_with_length(var88, 57l);
2017 var87 = var89;
2018 varonce86 = var87;
2019 }
2020 ((struct instance_standard__NativeArray*)var85)->values[0]=var87;
2021 if (likely(varonce90!=NULL)) {
2022 var91 = varonce90;
2023 } else {
2024 var92 = "`";
2025 var93 = standard___standard__NativeString___to_s_with_length(var92, 1l);
2026 var91 = var93;
2027 varonce90 = var91;
2028 }
2029 ((struct instance_standard__NativeArray*)var85)->values[2]=var91;
2030 } else {
2031 var85 = varonce84;
2032 varonce84 = NULL;
2033 }
2034 {
2035 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
2036 var96 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
2037 var94 = var96;
2038 RET_LABEL95:(void)0;
2039 }
2040 }
2041 if (var94 == NULL) {
2042 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2043 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 1530);
2044 fatal_exit(1);
2045 } else {
2046 var97 = nit___nit__MPropDef___nit__model_base__MEntity__name(var94);
2047 }
2048 ((struct instance_standard__NativeArray*)var85)->values[1]=var97;
2049 {
2050 var98 = ((val*(*)(val* self))(var85->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var85); /* native_to_s on <var85:NativeArray[String]>*/
2051 }
2052 varonce84 = var85;
2053 {
2054 nit___nit__ModelBuilder___advice(var_modelbuilder, var78, var81, var98); /* Direct call modelbuilder_base#ModelBuilder#advice on <var_modelbuilder:ModelBuilder>*/
2055 }
2056 RET_LABEL:;
2057 }
2058 /* method modelize_property#ATypePropdef#build_property for (self: ATypePropdef, ModelBuilder, MClassDef) */
2059 void nit__modelize_property___ATypePropdef___APropdef__build_property(val* self, val* p0, val* p1) {
2060 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
2061 val* var_mclassdef /* var mclassdef: MClassDef */;
2062 val* var /* : TClassid */;
2063 val* var2 /* : TClassid */;
2064 val* var3 /* : String */;
2065 val* var_name /* var name: String */;
2066 val* var4 /* : TClassid */;
2067 val* var6 /* : TClassid */;
2068 val* var7 /* : nullable MProperty */;
2069 val* var_mprop /* var mprop: nullable MProperty */;
2070 short int var8 /* : Bool */;
2071 short int var9 /* : Bool */;
2072 val* var_other /* var other: nullable Object */;
2073 short int var11 /* : Bool */;
2074 short int var13 /* : Bool */;
2075 val* var14 /* : nullable AVisibility */;
2076 val* var16 /* : nullable AVisibility */;
2077 val* var17 /* : MVisibility */;
2078 val* var_mvisibility /* var mvisibility: MVisibility */;
2079 val* var18 /* : MVirtualTypeProp */;
2080 val* var19 /* : SequenceRead[Char] */;
2081 val* var_ /* var : SequenceRead[Char] */;
2082 val* var20 /* : Iterator[nullable Object] */;
2083 val* var_21 /* var : IndexedIterator[Char] */;
2084 short int var22 /* : Bool */;
2085 val* var23 /* : nullable Object */;
2086 uint32_t var24 /* : Char */;
2087 uint32_t var_c /* var c: Char */;
2088 short int var25 /* : Bool */;
2089 short int var26 /* : Bool */;
2090 short int var28 /* : Bool */;
2091 int cltype;
2092 int idtype;
2093 const char* var_class_name;
2094 short int var29 /* : Bool */;
2095 short int var_30 /* var : Bool */;
2096 short int var31 /* : Bool */;
2097 short int var33 /* : Bool */;
2098 int cltype34;
2099 int idtype35;
2100 const char* var_class_name36;
2101 short int var37 /* : Bool */;
2102 val* var38 /* : TClassid */;
2103 val* var40 /* : TClassid */;
2104 static val* varonce;
2105 val* var41 /* : String */;
2106 char* var42 /* : NativeString */;
2107 val* var43 /* : FlatString */;
2108 val* var45 /* : NativeArray[String] */;
2109 static val* varonce44;
2110 static val* varonce46;
2111 val* var47 /* : String */;
2112 char* var48 /* : NativeString */;
2113 val* var49 /* : FlatString */;
2114 static val* varonce50;
2115 val* var51 /* : String */;
2116 char* var52 /* : NativeString */;
2117 val* var53 /* : FlatString */;
2118 val* var54 /* : String */;
2119 val* var55 /* : nullable TKwredef */;
2120 val* var57 /* : nullable TKwredef */;
2121 short int var58 /* : Bool */;
2122 short int var59 /* : Bool */;
2123 val* var60 /* : nullable TKwredef */;
2124 val* var62 /* : nullable TKwredef */;
2125 short int var63 /* : Bool */;
2126 short int var64 /* : Bool */;
2127 short int var65 /* : Bool */;
2128 int cltype66;
2129 int idtype67;
2130 val* var68 /* : nullable AVisibility */;
2131 val* var70 /* : nullable AVisibility */;
2132 val* var71 /* : Map[MProperty, APropdef] */;
2133 val* var73 /* : Map[MProperty, APropdef] */;
2134 val* var74 /* : MVirtualTypeDef */;
2135 val* var75 /* : Location */;
2136 val* var77 /* : Location */;
2137 val* var_mpropdef /* var mpropdef: MVirtualTypeDef */;
2138 short int var78 /* : Bool */;
2139 int cltype79;
2140 int idtype80;
2141 const struct type* type_struct;
2142 const char* var_class_name81;
2143 short int var83 /* : Bool */;
2144 int cltype84;
2145 int idtype85;
2146 const struct type* type_struct86;
2147 const char* var_class_name87;
2148 val* var88 /* : HashMap[MPropDef, APropdef] */;
2149 val* var90 /* : HashMap[MPropDef, APropdef] */;
2150 short int var91 /* : Bool */;
2151 val* var92 /* : ToolContext */;
2152 val* var94 /* : ToolContext */;
2153 val* var96 /* : NativeArray[String] */;
2154 static val* varonce95;
2155 static val* varonce97;
2156 val* var98 /* : String */;
2157 char* var99 /* : NativeString */;
2158 val* var100 /* : FlatString */;
2159 val* var101 /* : String */;
2160 val* var102 /* : String */;
2161 val* var103 /* : String */;
2162 val* var104 /* : ToolContext */;
2163 val* var106 /* : ToolContext */;
2164 val* var108 /* : NativeArray[String] */;
2165 static val* varonce107;
2166 static val* varonce109;
2167 val* var110 /* : String */;
2168 char* var111 /* : NativeString */;
2169 val* var112 /* : FlatString */;
2170 val* var113 /* : String */;
2171 val* var114 /* : String */;
2172 val* var115 /* : String */;
2173 static val* varonce116;
2174 val* var117 /* : String */;
2175 char* var118 /* : NativeString */;
2176 val* var119 /* : FlatString */;
2177 val* var120 /* : nullable AAnnotation */;
2178 val* var_atfixed /* var atfixed: nullable AAnnotation */;
2179 short int var121 /* : Bool */;
2180 short int var122 /* : Bool */;
2181 val* var_other124 /* var other: nullable Object */;
2182 short int var125 /* : Bool */;
2183 short int var126 /* : Bool */;
2184 var_modelbuilder = p0;
2185 var_mclassdef = p1;
2186 {
2187 { /* Inline parser_nodes#ATypePropdef#n_id (self) on <self:ATypePropdef> */
2188 var2 = self->attrs[COLOR_nit__parser_nodes__ATypePropdef___n_id].val; /* _n_id on <self:ATypePropdef> */
2189 if (unlikely(var2 == NULL)) {
2190 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2191 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1527);
2192 fatal_exit(1);
2193 }
2194 var = var2;
2195 RET_LABEL1:(void)0;
2196 }
2197 }
2198 {
2199 var3 = nit__lexer_work___Token___text(var);
2200 }
2201 var_name = var3;
2202 {
2203 { /* Inline parser_nodes#ATypePropdef#n_id (self) on <self:ATypePropdef> */
2204 var6 = self->attrs[COLOR_nit__parser_nodes__ATypePropdef___n_id].val; /* _n_id on <self:ATypePropdef> */
2205 if (unlikely(var6 == NULL)) {
2206 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2207 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1527);
2208 fatal_exit(1);
2209 }
2210 var4 = var6;
2211 RET_LABEL5:(void)0;
2212 }
2213 }
2214 {
2215 var7 = nit___nit__ModelBuilder___try_get_mproperty_by_name(var_modelbuilder, var4, var_mclassdef, var_name);
2216 }
2217 var_mprop = var7;
2218 if (var_mprop == NULL) {
2219 var8 = 1; /* is null */
2220 } else {
2221 var8 = 0; /* arg is null but recv is not */
2222 }
2223 if (0) {
2224 { /* Inline kernel#Object#== (var_mprop,((val*)NULL)) on <var_mprop:nullable MProperty> */
2225 var_other = ((val*)NULL);
2226 {
2227 { /* Inline kernel#Object#is_same_instance (var_mprop,var_other) on <var_mprop:nullable MProperty(MProperty)> */
2228 var13 = var_mprop == var_other;
2229 var11 = var13;
2230 goto RET_LABEL12;
2231 RET_LABEL12:(void)0;
2232 }
2233 }
2234 var9 = var11;
2235 goto RET_LABEL10;
2236 RET_LABEL10:(void)0;
2237 }
2238 var8 = var9;
2239 }
2240 if (var8){
2241 {
2242 { /* Inline parser_nodes#ADefinition#n_visibility (self) on <self:ATypePropdef> */
2243 var16 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val; /* _n_visibility on <self:ATypePropdef> */
2244 var14 = var16;
2245 RET_LABEL15:(void)0;
2246 }
2247 }
2248 {
2249 var17 = nit__modelize_property___APropdef___new_property_visibility(self, var_modelbuilder, var_mclassdef, var14);
2250 }
2251 var_mvisibility = var17;
2252 var18 = NEW_nit__MVirtualTypeProp(&type_nit__MVirtualTypeProp);
2253 {
2254 ((void(*)(val* self, val* p0))(var18->class->vft[COLOR_nit__model__MProperty__intro_mclassdef_61d]))(var18, var_mclassdef); /* intro_mclassdef= on <var18:MVirtualTypeProp>*/
2255 }
2256 {
2257 ((void(*)(val* self, val* p0))(var18->class->vft[COLOR_nit__model__MProperty__name_61d]))(var18, var_name); /* name= on <var18:MVirtualTypeProp>*/
2258 }
2259 {
2260 ((void(*)(val* self, val* p0))(var18->class->vft[COLOR_nit__model__MProperty__visibility_61d]))(var18, var_mvisibility); /* visibility= on <var18:MVirtualTypeProp>*/
2261 }
2262 {
2263 ((void(*)(val* self))(var18->class->vft[COLOR_standard__kernel__Object__init]))(var18); /* init on <var18:MVirtualTypeProp>*/
2264 }
2265 var_mprop = var18;
2266 {
2267 var19 = ((val*(*)(val* self))(var_name->class->vft[COLOR_standard__string__Text__chars]))(var_name); /* chars on <var_name:String>*/
2268 }
2269 var_ = var19;
2270 {
2271 var20 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:SequenceRead[Char]>*/
2272 }
2273 var_21 = var20;
2274 for(;;) {
2275 {
2276 var22 = ((short int(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_21); /* is_ok on <var_21:IndexedIterator[Char]>*/
2277 }
2278 if (var22){
2279 {
2280 var23 = ((val*(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_21); /* item on <var_21:IndexedIterator[Char]>*/
2281 }
2282 var24 = (uint32_t)((long)(var23)>>2);
2283 var_c = var24;
2284 {
2285 { /* Inline kernel#Char#>= (var_c,'a') on <var_c:Char> */
2286 /* Covariant cast for argument 0 (i) <'a':Char> isa OTHER */
2287 /* <'a':Char> isa OTHER */
2288 var28 = 1; /* easy <'a':Char> isa OTHER*/
2289 if (unlikely(!var28)) {
2290 var_class_name = type_standard__Char.name;
2291 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2292 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 724);
2293 fatal_exit(1);
2294 }
2295 var29 = var_c >= 'a';
2296 var26 = var29;
2297 goto RET_LABEL27;
2298 RET_LABEL27:(void)0;
2299 }
2300 }
2301 var_30 = var26;
2302 if (var26){
2303 {
2304 { /* Inline kernel#Char#<= (var_c,'z') on <var_c:Char> */
2305 /* Covariant cast for argument 0 (i) <'z':Char> isa OTHER */
2306 /* <'z':Char> isa OTHER */
2307 var33 = 1; /* easy <'z':Char> isa OTHER*/
2308 if (unlikely(!var33)) {
2309 var_class_name36 = type_standard__Char.name;
2310 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36);
2311 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 722);
2312 fatal_exit(1);
2313 }
2314 var37 = var_c <= 'z';
2315 var31 = var37;
2316 goto RET_LABEL32;
2317 RET_LABEL32:(void)0;
2318 }
2319 }
2320 var25 = var31;
2321 } else {
2322 var25 = var_30;
2323 }
2324 if (var25){
2325 {
2326 { /* Inline parser_nodes#ATypePropdef#n_id (self) on <self:ATypePropdef> */
2327 var40 = self->attrs[COLOR_nit__parser_nodes__ATypePropdef___n_id].val; /* _n_id on <self:ATypePropdef> */
2328 if (unlikely(var40 == NULL)) {
2329 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2330 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1527);
2331 fatal_exit(1);
2332 }
2333 var38 = var40;
2334 RET_LABEL39:(void)0;
2335 }
2336 }
2337 if (likely(varonce!=NULL)) {
2338 var41 = varonce;
2339 } else {
2340 var42 = "bad-type-name";
2341 var43 = standard___standard__NativeString___to_s_with_length(var42, 13l);
2342 var41 = var43;
2343 varonce = var41;
2344 }
2345 if (unlikely(varonce44==NULL)) {
2346 var45 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
2347 if (likely(varonce46!=NULL)) {
2348 var47 = varonce46;
2349 } else {
2350 var48 = "Warning: lowercase in the virtual type `";
2351 var49 = standard___standard__NativeString___to_s_with_length(var48, 40l);
2352 var47 = var49;
2353 varonce46 = var47;
2354 }
2355 ((struct instance_standard__NativeArray*)var45)->values[0]=var47;
2356 if (likely(varonce50!=NULL)) {
2357 var51 = varonce50;
2358 } else {
2359 var52 = "`.";
2360 var53 = standard___standard__NativeString___to_s_with_length(var52, 2l);
2361 var51 = var53;
2362 varonce50 = var51;
2363 }
2364 ((struct instance_standard__NativeArray*)var45)->values[2]=var51;
2365 } else {
2366 var45 = varonce44;
2367 varonce44 = NULL;
2368 }
2369 ((struct instance_standard__NativeArray*)var45)->values[1]=var_name;
2370 {
2371 var54 = ((val*(*)(val* self))(var45->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var45); /* native_to_s on <var45:NativeArray[String]>*/
2372 }
2373 varonce44 = var45;
2374 {
2375 nit___nit__ModelBuilder___warning(var_modelbuilder, var38, var41, var54); /* Direct call modelbuilder_base#ModelBuilder#warning on <var_modelbuilder:ModelBuilder>*/
2376 }
2377 goto BREAK_label;
2378 } else {
2379 }
2380 {
2381 ((void(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_21); /* next on <var_21:IndexedIterator[Char]>*/
2382 }
2383 } else {
2384 goto BREAK_label;
2385 }
2386 }
2387 BREAK_label: (void)0;
2388 {
2389 ((void(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_21); /* finish on <var_21:IndexedIterator[Char]>*/
2390 }
2391 {
2392 { /* Inline parser_nodes#ADefinition#n_kwredef (self) on <self:ATypePropdef> */
2393 var57 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val; /* _n_kwredef on <self:ATypePropdef> */
2394 var55 = var57;
2395 RET_LABEL56:(void)0;
2396 }
2397 }
2398 {
2399 var58 = nit__modelize_property___APropdef___check_redef_keyword(self, var_modelbuilder, var_mclassdef, var55, 0, var_mprop);
2400 }
2401 var59 = !var58;
2402 if (var59){
2403 goto RET_LABEL;
2404 } else {
2405 }
2406 } else {
2407 {
2408 { /* Inline parser_nodes#ADefinition#n_kwredef (self) on <self:ATypePropdef> */
2409 var62 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val; /* _n_kwredef on <self:ATypePropdef> */
2410 var60 = var62;
2411 RET_LABEL61:(void)0;
2412 }
2413 }
2414 {
2415 var63 = nit__modelize_property___APropdef___check_redef_keyword(self, var_modelbuilder, var_mclassdef, var60, 1, var_mprop);
2416 }
2417 var64 = !var63;
2418 if (var64){
2419 goto RET_LABEL;
2420 } else {
2421 }
2422 /* <var_mprop:nullable MProperty(MProperty)> isa MVirtualTypeProp */
2423 cltype66 = type_nit__MVirtualTypeProp.color;
2424 idtype67 = type_nit__MVirtualTypeProp.id;
2425 if(cltype66 >= var_mprop->type->table_size) {
2426 var65 = 0;
2427 } else {
2428 var65 = var_mprop->type->type_table[cltype66] == idtype67;
2429 }
2430 if (unlikely(!var65)) {
2431 PRINT_ERROR("Runtime error: %s", "Assert failed");
2432 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 1551);
2433 fatal_exit(1);
2434 }
2435 {
2436 { /* Inline parser_nodes#ADefinition#n_visibility (self) on <self:ATypePropdef> */
2437 var70 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val; /* _n_visibility on <self:ATypePropdef> */
2438 var68 = var70;
2439 RET_LABEL69:(void)0;
2440 }
2441 }
2442 {
2443 nit__modelize_property___APropdef___check_redef_property_visibility(self, var_modelbuilder, var68, var_mprop); /* Direct call modelize_property#APropdef#check_redef_property_visibility on <self:ATypePropdef>*/
2444 }
2445 }
2446 {
2447 { /* Inline modelize_property#MClassDef#mprop2npropdef (var_mclassdef) on <var_mclassdef:MClassDef> */
2448 var73 = var_mclassdef->attrs[COLOR_nit__modelize_property__MClassDef___mprop2npropdef].val; /* _mprop2npropdef on <var_mclassdef:MClassDef> */
2449 if (unlikely(var73 == NULL)) {
2450 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mprop2npropdef");
2451 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 505);
2452 fatal_exit(1);
2453 }
2454 var71 = var73;
2455 RET_LABEL72:(void)0;
2456 }
2457 }
2458 {
2459 ((void(*)(val* self, val* p0, val* p1))((((long)var71&3)?class_info[((long)var71&3)]:var71->class)->vft[COLOR_standard__abstract_collection__Map___91d_93d_61d]))(var71, var_mprop, self); /* []= on <var71:Map[MProperty, APropdef]>*/
2460 }
2461 var74 = NEW_nit__MVirtualTypeDef(&type_nit__MVirtualTypeDef);
2462 {
2463 { /* Inline parser_nodes#ANode#location (self) on <self:ATypePropdef> */
2464 var77 = self->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <self:ATypePropdef> */
2465 if (unlikely(var77 == NULL)) {
2466 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
2467 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 24);
2468 fatal_exit(1);
2469 }
2470 var75 = var77;
2471 RET_LABEL76:(void)0;
2472 }
2473 }
2474 {
2475 ((void(*)(val* self, val* p0))(var74->class->vft[COLOR_nit__model__MPropDef__mclassdef_61d]))(var74, var_mclassdef); /* mclassdef= on <var74:MVirtualTypeDef>*/
2476 }
2477 {
2478 ((void(*)(val* self, val* p0))(var74->class->vft[COLOR_nit__model__MPropDef__mproperty_61d]))(var74, var_mprop); /* mproperty= on <var74:MVirtualTypeDef>*/
2479 }
2480 {
2481 ((void(*)(val* self, val* p0))(var74->class->vft[COLOR_nit__model__MPropDef__location_61d]))(var74, var75); /* location= on <var74:MVirtualTypeDef>*/
2482 }
2483 {
2484 ((void(*)(val* self))(var74->class->vft[COLOR_standard__kernel__Object__init]))(var74); /* init on <var74:MVirtualTypeDef>*/
2485 }
2486 var_mpropdef = var74;
2487 /* <var_mpropdef:MVirtualTypeDef> isa nullable MPROPDEF */
2488 type_struct = self->type->resolution_table->types[COLOR_nullable__nit__modelize_property__APropdef__MPROPDEF];
2489 cltype79 = type_struct->color;
2490 idtype80 = type_struct->id;
2491 if(cltype79 >= var_mpropdef->type->table_size) {
2492 var78 = 0;
2493 } else {
2494 var78 = var_mpropdef->type->type_table[cltype79] == idtype80;
2495 }
2496 if (unlikely(!var78)) {
2497 var_class_name81 = var_mpropdef == NULL ? "null" : var_mpropdef->type->name;
2498 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name81);
2499 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 1557);
2500 fatal_exit(1);
2501 }
2502 {
2503 { /* Inline modelize_property#APropdef#mpropdef= (self,var_mpropdef) on <self:ATypePropdef> */
2504 /* Covariant cast for argument 0 (mpropdef) <var_mpropdef:MVirtualTypeDef> isa nullable MPROPDEF */
2505 /* <var_mpropdef:MVirtualTypeDef> isa nullable MPROPDEF */
2506 type_struct86 = self->type->resolution_table->types[COLOR_nullable__nit__modelize_property__APropdef__MPROPDEF];
2507 cltype84 = type_struct86->color;
2508 idtype85 = type_struct86->id;
2509 if(cltype84 >= var_mpropdef->type->table_size) {
2510 var83 = 0;
2511 } else {
2512 var83 = var_mpropdef->type->type_table[cltype84] == idtype85;
2513 }
2514 if (unlikely(!var83)) {
2515 var_class_name87 = var_mpropdef == NULL ? "null" : var_mpropdef->type->name;
2516 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name87);
2517 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 558);
2518 fatal_exit(1);
2519 }
2520 self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val = var_mpropdef; /* _mpropdef on <self:ATypePropdef> */
2521 RET_LABEL82:(void)0;
2522 }
2523 }
2524 {
2525 { /* Inline modelize_property#ModelBuilder#mpropdef2npropdef (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
2526 var90 = var_modelbuilder->attrs[COLOR_nit__modelize_property__ModelBuilder___mpropdef2npropdef].val; /* _mpropdef2npropdef on <var_modelbuilder:ModelBuilder> */
2527 if (unlikely(var90 == NULL)) {
2528 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
2529 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelize_property, 40);
2530 fatal_exit(1);
2531 }
2532 var88 = var90;
2533 RET_LABEL89:(void)0;
2534 }
2535 }
2536 {
2537 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var88, var_mpropdef, self); /* Direct call hash_collection#HashMap#[]= on <var88:HashMap[MPropDef, APropdef]>*/
2538 }
2539 {
2540 var91 = nit___nit__MPropDef___is_intro(var_mpropdef);
2541 }
2542 if (var91){
2543 {
2544 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
2545 var94 = var_modelbuilder->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var_modelbuilder:ModelBuilder> */
2546 if (unlikely(var94 == NULL)) {
2547 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2548 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
2549 fatal_exit(1);
2550 }
2551 var92 = var94;
2552 RET_LABEL93:(void)0;
2553 }
2554 }
2555 if (unlikely(varonce95==NULL)) {
2556 var96 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
2557 if (likely(varonce97!=NULL)) {
2558 var98 = varonce97;
2559 } else {
2560 var99 = " introduces new type ";
2561 var100 = standard___standard__NativeString___to_s_with_length(var99, 21l);
2562 var98 = var100;
2563 varonce97 = var98;
2564 }
2565 ((struct instance_standard__NativeArray*)var96)->values[1]=var98;
2566 } else {
2567 var96 = varonce95;
2568 varonce95 = NULL;
2569 }
2570 {
2571 var101 = ((val*(*)(val* self))(var_mpropdef->class->vft[COLOR_standard__string__Object__to_s]))(var_mpropdef); /* to_s on <var_mpropdef:MVirtualTypeDef>*/
2572 }
2573 ((struct instance_standard__NativeArray*)var96)->values[0]=var101;
2574 {
2575 var102 = nit___nit__MProperty___nit__model_base__MEntity__full_name(var_mprop);
2576 }
2577 ((struct instance_standard__NativeArray*)var96)->values[2]=var102;
2578 {
2579 var103 = ((val*(*)(val* self))(var96->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var96); /* native_to_s on <var96:NativeArray[String]>*/
2580 }
2581 varonce95 = var96;
2582 {
2583 nit___nit__ToolContext___info(var92, var103, 4l); /* Direct call toolcontext#ToolContext#info on <var92:ToolContext>*/
2584 }
2585 } else {
2586 {
2587 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
2588 var106 = var_modelbuilder->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var_modelbuilder:ModelBuilder> */
2589 if (unlikely(var106 == NULL)) {
2590 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2591 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
2592 fatal_exit(1);
2593 }
2594 var104 = var106;
2595 RET_LABEL105:(void)0;
2596 }
2597 }
2598 if (unlikely(varonce107==NULL)) {
2599 var108 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
2600 if (likely(varonce109!=NULL)) {
2601 var110 = varonce109;
2602 } else {
2603 var111 = " redefines type ";
2604 var112 = standard___standard__NativeString___to_s_with_length(var111, 16l);
2605 var110 = var112;
2606 varonce109 = var110;
2607 }
2608 ((struct instance_standard__NativeArray*)var108)->values[1]=var110;
2609 } else {
2610 var108 = varonce107;
2611 varonce107 = NULL;
2612 }
2613 {
2614 var113 = ((val*(*)(val* self))(var_mpropdef->class->vft[COLOR_standard__string__Object__to_s]))(var_mpropdef); /* to_s on <var_mpropdef:MVirtualTypeDef>*/
2615 }
2616 ((struct instance_standard__NativeArray*)var108)->values[0]=var113;
2617 {
2618 var114 = nit___nit__MProperty___nit__model_base__MEntity__full_name(var_mprop);
2619 }
2620 ((struct instance_standard__NativeArray*)var108)->values[2]=var114;
2621 {
2622 var115 = ((val*(*)(val* self))(var108->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var108); /* native_to_s on <var108:NativeArray[String]>*/
2623 }
2624 varonce107 = var108;
2625 {
2626 nit___nit__ToolContext___info(var104, var115, 4l); /* Direct call toolcontext#ToolContext#info on <var104:ToolContext>*/
2627 }
2628 }
2629 {
2630 nit__modelize_property___APropdef___set_doc(self, var_mpropdef, var_modelbuilder); /* Direct call modelize_property#APropdef#set_doc on <self:ATypePropdef>*/
2631 }
2632 if (likely(varonce116!=NULL)) {
2633 var117 = varonce116;
2634 } else {
2635 var118 = "fixed";
2636 var119 = standard___standard__NativeString___to_s_with_length(var118, 5l);
2637 var117 = var119;
2638 varonce116 = var117;
2639 }
2640 {
2641 var120 = nit__annotation___Prod___get_single_annotation(self, var117, var_modelbuilder);
2642 }
2643 var_atfixed = var120;
2644 if (var_atfixed == NULL) {
2645 var121 = 0; /* is null */
2646 } else {
2647 var121 = 1; /* arg is null and recv is not */
2648 }
2649 if (0) {
2650 { /* Inline kernel#Object#!= (var_atfixed,((val*)NULL)) on <var_atfixed:nullable AAnnotation> */
2651 var_other124 = ((val*)NULL);
2652 {
2653 var125 = ((short int(*)(val* self, val* p0))(var_atfixed->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_atfixed, var_other124); /* == on <var_atfixed:nullable AAnnotation(AAnnotation)>*/
2654 }
2655 var126 = !var125;
2656 var122 = var126;
2657 goto RET_LABEL123;
2658 RET_LABEL123:(void)0;
2659 }
2660 var121 = var122;
2661 }
2662 if (var121){
2663 {
2664 { /* Inline model#MVirtualTypeDef#is_fixed= (var_mpropdef,1) on <var_mpropdef:MVirtualTypeDef> */
2665 var_mpropdef->attrs[COLOR_nit__model__MVirtualTypeDef___is_fixed].s = 1; /* _is_fixed on <var_mpropdef:MVirtualTypeDef> */
2666 RET_LABEL127:(void)0;
2667 }
2668 }
2669 } else {
2670 }
2671 RET_LABEL:;
2672 }
2673 /* method modelize_property#ATypePropdef#build_signature for (self: ATypePropdef, ModelBuilder) */
2674 void nit__modelize_property___ATypePropdef___APropdef__build_signature(val* self, val* p0) {
2675 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
2676 val* var /* : nullable MPropDef */;
2677 val* var2 /* : nullable MPropDef */;
2678 val* var_mpropdef /* var mpropdef: nullable MVirtualTypeDef */;
2679 short int var3 /* : Bool */;
2680 short int var4 /* : Bool */;
2681 val* var_other /* var other: nullable Object */;
2682 short int var6 /* : Bool */;
2683 short int var8 /* : Bool */;
2684 val* var9 /* : MClassDef */;
2685 val* var11 /* : MClassDef */;
2686 val* var_mclassdef /* var mclassdef: MClassDef */;
2687 val* var12 /* : MModule */;
2688 val* var14 /* : MModule */;
2689 val* var_mmodule /* var mmodule: MModule */;
2690 val* var_mtype /* var mtype: nullable MType */;
2691 val* var15 /* : AType */;
2692 val* var17 /* : AType */;
2693 val* var_ntype /* var ntype: AType */;
2694 val* var18 /* : nullable MType */;
2695 short int var19 /* : Bool */;
2696 short int var20 /* : Bool */;
2697 short int var22 /* : Bool */;
2698 short int var24 /* : Bool */;
2699 var_modelbuilder = p0;
2700 {
2701 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:ATypePropdef> */
2702 var2 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:ATypePropdef> */
2703 var = var2;
2704 RET_LABEL1:(void)0;
2705 }
2706 }
2707 var_mpropdef = var;
2708 if (var_mpropdef == NULL) {
2709 var3 = 1; /* is null */
2710 } else {
2711 var3 = 0; /* arg is null but recv is not */
2712 }
2713 if (0) {
2714 { /* Inline kernel#Object#== (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MVirtualTypeDef> */
2715 var_other = ((val*)NULL);
2716 {
2717 { /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other) on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
2718 var8 = var_mpropdef == var_other;
2719 var6 = var8;
2720 goto RET_LABEL7;
2721 RET_LABEL7:(void)0;
2722 }
2723 }
2724 var4 = var6;
2725 goto RET_LABEL5;
2726 RET_LABEL5:(void)0;
2727 }
2728 var3 = var4;
2729 }
2730 if (var3){
2731 goto RET_LABEL;
2732 } else {
2733 }
2734 {
2735 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
2736 var11 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
2737 if (unlikely(var11 == NULL)) {
2738 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
2739 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209);
2740 fatal_exit(1);
2741 }
2742 var9 = var11;
2743 RET_LABEL10:(void)0;
2744 }
2745 }
2746 var_mclassdef = var9;
2747 {
2748 { /* Inline model#MClassDef#mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
2749 var14 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
2750 if (unlikely(var14 == NULL)) {
2751 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2752 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550);
2753 fatal_exit(1);
2754 }
2755 var12 = var14;
2756 RET_LABEL13:(void)0;
2757 }
2758 }
2759 var_mmodule = var12;
2760 var_mtype = ((val*)NULL);
2761 {
2762 { /* Inline parser_nodes#ATypePropdef#n_type (self) on <self:ATypePropdef> */
2763 var17 = self->attrs[COLOR_nit__parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
2764 if (unlikely(var17 == NULL)) {
2765 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
2766 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1530);
2767 fatal_exit(1);
2768 }
2769 var15 = var17;
2770 RET_LABEL16:(void)0;
2771 }
2772 }
2773 var_ntype = var15;
2774 {
2775 var18 = nit___nit__ModelBuilder___resolve_mtype_unchecked(var_modelbuilder, var_mmodule, var_mclassdef, var_ntype, 1);
2776 }
2777 var_mtype = var18;
2778 if (var_mtype == NULL) {
2779 var19 = 1; /* is null */
2780 } else {
2781 var19 = 0; /* arg is null but recv is not */
2782 }
2783 if (0) {
2784 { /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
2785 var_other = ((val*)NULL);
2786 {
2787 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
2788 var24 = var_mtype == var_other;
2789 var22 = var24;
2790 goto RET_LABEL23;
2791 RET_LABEL23:(void)0;
2792 }
2793 }
2794 var20 = var22;
2795 goto RET_LABEL21;
2796 RET_LABEL21:(void)0;
2797 }
2798 var19 = var20;
2799 }
2800 if (var19){
2801 goto RET_LABEL;
2802 } else {
2803 }
2804 {
2805 { /* Inline model#MVirtualTypeDef#bound= (var_mpropdef,var_mtype) on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
2806 var_mpropdef->attrs[COLOR_nit__model__MVirtualTypeDef___bound].val = var_mtype; /* _bound on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
2807 RET_LABEL25:(void)0;
2808 }
2809 }
2810 RET_LABEL:;
2811 }
2812 /* method modelize_property#ATypePropdef#check_signature for (self: ATypePropdef, ModelBuilder) */
2813 void nit__modelize_property___ATypePropdef___APropdef__check_signature(val* self, val* p0) {
2814 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
2815 val* var /* : nullable MPropDef */;
2816 val* var2 /* : nullable MPropDef */;
2817 val* var_mpropdef /* var mpropdef: nullable MVirtualTypeDef */;
2818 short int var3 /* : Bool */;
2819 short int var4 /* : Bool */;
2820 val* var_other /* var other: nullable Object */;
2821 short int var6 /* : Bool */;
2822 short int var8 /* : Bool */;
2823 val* var9 /* : nullable MType */;
2824 val* var11 /* : nullable MType */;
2825 val* var_bound /* var bound: nullable MType */;
2826 short int var12 /* : Bool */;
2827 short int var13 /* : Bool */;
2828 short int var15 /* : Bool */;
2829 short int var17 /* : Bool */;
2830 val* var18 /* : AType */;
2831 val* var20 /* : AType */;
2832 val* var21 /* : MClassDef */;
2833 val* var23 /* : MClassDef */;
2834 val* var_mclassdef /* var mclassdef: MClassDef */;
2835 val* var24 /* : MModule */;
2836 val* var26 /* : MModule */;
2837 val* var_mmodule /* var mmodule: MModule */;
2838 val* var27 /* : MClassType */;
2839 val* var29 /* : MClassType */;
2840 val* var_anchor /* var anchor: MClassType */;
2841 val* var30 /* : AType */;
2842 val* var32 /* : AType */;
2843 val* var_ntype /* var ntype: AType */;
2844 val* var33 /* : nullable MType */;
2845 short int var34 /* : Bool */;
2846 short int var35 /* : Bool */;
2847 short int var37 /* : Bool */;
2848 short int var39 /* : Bool */;
2849 val* var41 /* : MProperty */;
2850 val* var43 /* : MProperty */;
2851 val* var44 /* : Array[MPropDef] */;
2852 val* var_ /* var : Array[MVirtualTypeDef] */;
2853 val* var45 /* : ArrayIterator[nullable Object] */;
2854 val* var_46 /* var : ArrayIterator[MVirtualTypeDef] */;
2855 short int var47 /* : Bool */;
2856 val* var48 /* : nullable Object */;
2857 val* var_p /* var p: MVirtualTypeDef */;
2858 val* var49 /* : nullable MType */;
2859 val* var51 /* : nullable MType */;
2860 val* var_supbound /* var supbound: nullable MType */;
2861 short int var52 /* : Bool */;
2862 short int var53 /* : Bool */;
2863 short int var55 /* : Bool */;
2864 short int var57 /* : Bool */;
2865 short int var58 /* : Bool */;
2866 short int var60 /* : Bool */;
2867 val* var61 /* : NativeArray[String] */;
2868 static val* varonce;
2869 static val* varonce62;
2870 val* var63 /* : String */;
2871 char* var64 /* : NativeString */;
2872 val* var65 /* : FlatString */;
2873 static val* varonce66;
2874 val* var67 /* : String */;
2875 char* var68 /* : NativeString */;
2876 val* var69 /* : FlatString */;
2877 static val* varonce70;
2878 val* var71 /* : String */;
2879 char* var72 /* : NativeString */;
2880 val* var73 /* : FlatString */;
2881 val* var74 /* : MProperty */;
2882 val* var76 /* : MProperty */;
2883 val* var77 /* : String */;
2884 val* var78 /* : MClassDef */;
2885 val* var80 /* : MClassDef */;
2886 val* var81 /* : MClass */;
2887 val* var83 /* : MClass */;
2888 val* var84 /* : String */;
2889 val* var85 /* : String */;
2890 val* var86 /* : MClassDef */;
2891 val* var88 /* : MClassDef */;
2892 val* var89 /* : MClass */;
2893 val* var91 /* : MClass */;
2894 val* var92 /* : MClass */;
2895 val* var94 /* : MClass */;
2896 short int var95 /* : Bool */;
2897 short int var97 /* : Bool */;
2898 short int var99 /* : Bool */;
2899 val* var100 /* : AType */;
2900 val* var102 /* : AType */;
2901 static val* varonce103;
2902 val* var104 /* : String */;
2903 char* var105 /* : NativeString */;
2904 val* var106 /* : FlatString */;
2905 static val* varonce107;
2906 val* var108 /* : String */;
2907 char* var109 /* : NativeString */;
2908 val* var110 /* : FlatString */;
2909 val* var111 /* : AType */;
2910 val* var113 /* : AType */;
2911 short int var114 /* : Bool */;
2912 short int var115 /* : Bool */;
2913 val* var116 /* : AType */;
2914 val* var118 /* : AType */;
2915 val* var120 /* : NativeArray[String] */;
2916 static val* varonce119;
2917 static val* varonce121;
2918 val* var122 /* : String */;
2919 char* var123 /* : NativeString */;
2920 val* var124 /* : FlatString */;
2921 static val* varonce125;
2922 val* var126 /* : String */;
2923 char* var127 /* : NativeString */;
2924 val* var128 /* : FlatString */;
2925 static val* varonce129;
2926 val* var130 /* : String */;
2927 char* var131 /* : NativeString */;
2928 val* var132 /* : FlatString */;
2929 val* var133 /* : String */;
2930 val* var134 /* : String */;
2931 val* var135 /* : String */;
2932 var_modelbuilder = p0;
2933 {
2934 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:ATypePropdef> */
2935 var2 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:ATypePropdef> */
2936 var = var2;
2937 RET_LABEL1:(void)0;
2938 }
2939 }
2940 var_mpropdef = var;
2941 if (var_mpropdef == NULL) {
2942 var3 = 1; /* is null */
2943 } else {
2944 var3 = 0; /* arg is null but recv is not */
2945 }
2946 if (0) {
2947 { /* Inline kernel#Object#== (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MVirtualTypeDef> */
2948 var_other = ((val*)NULL);
2949 {
2950 { /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other) on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
2951 var8 = var_mpropdef == var_other;
2952 var6 = var8;
2953 goto RET_LABEL7;
2954 RET_LABEL7:(void)0;
2955 }
2956 }
2957 var4 = var6;
2958 goto RET_LABEL5;
2959 RET_LABEL5:(void)0;
2960 }
2961 var3 = var4;
2962 }
2963 if (var3){
2964 goto RET_LABEL;
2965 } else {
2966 }
2967 {
2968 { /* Inline model#MVirtualTypeDef#bound (var_mpropdef) on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
2969 var11 = var_mpropdef->attrs[COLOR_nit__model__MVirtualTypeDef___bound].val; /* _bound on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
2970 var9 = var11;
2971 RET_LABEL10:(void)0;
2972 }
2973 }
2974 var_bound = var9;
2975 if (var_bound == NULL) {
2976 var12 = 1; /* is null */
2977 } else {
2978 var12 = 0; /* arg is null but recv is not */
2979 }
2980 if (0) {
2981 { /* Inline kernel#Object#== (var_bound,((val*)NULL)) on <var_bound:nullable MType> */
2982 var_other = ((val*)NULL);
2983 {
2984 { /* Inline kernel#Object#is_same_instance (var_bound,var_other) on <var_bound:nullable MType(MType)> */
2985 var17 = var_bound == var_other;
2986 var15 = var17;
2987 goto RET_LABEL16;
2988 RET_LABEL16:(void)0;
2989 }
2990 }
2991 var13 = var15;
2992 goto RET_LABEL14;
2993 RET_LABEL14:(void)0;
2994 }
2995 var12 = var13;
2996 }
2997 if (var12){
2998 goto RET_LABEL;
2999 } else {
3000 }
3001 {
3002 { /* Inline parser_nodes#ATypePropdef#n_type (self) on <self:ATypePropdef> */
3003 var20 = self->attrs[COLOR_nit__parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
3004 if (unlikely(var20 == NULL)) {
3005 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
3006 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1530);
3007 fatal_exit(1);
3008 }
3009 var18 = var20;
3010 RET_LABEL19:(void)0;
3011 }
3012 }
3013 {
3014 nit__modelize_property___ModelBuilder___check_visibility(var_modelbuilder, var18, var_bound, var_mpropdef); /* Direct call modelize_property#ModelBuilder#check_visibility on <var_modelbuilder:ModelBuilder>*/
3015 }
3016 {
3017 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3018 var23 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3019 if (unlikely(var23 == NULL)) {
3020 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
3021 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209);
3022 fatal_exit(1);
3023 }
3024 var21 = var23;
3025 RET_LABEL22:(void)0;
3026 }
3027 }
3028 var_mclassdef = var21;
3029 {
3030 { /* Inline model#MClassDef#mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
3031 var26 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
3032 if (unlikely(var26 == NULL)) {
3033 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3034 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550);
3035 fatal_exit(1);
3036 }
3037 var24 = var26;
3038 RET_LABEL25:(void)0;
3039 }
3040 }
3041 var_mmodule = var24;
3042 {
3043 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
3044 var29 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
3045 if (unlikely(var29 == NULL)) {
3046 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3047 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556);
3048 fatal_exit(1);
3049 }
3050 var27 = var29;
3051 RET_LABEL28:(void)0;
3052 }
3053 }
3054 var_anchor = var27;
3055 {
3056 { /* Inline parser_nodes#ATypePropdef#n_type (self) on <self:ATypePropdef> */
3057 var32 = self->attrs[COLOR_nit__parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
3058 if (unlikely(var32 == NULL)) {
3059 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
3060 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1530);
3061 fatal_exit(1);
3062 }
3063 var30 = var32;
3064 RET_LABEL31:(void)0;
3065 }
3066 }
3067 var_ntype = var30;
3068 {
3069 var33 = nit___nit__ModelBuilder___resolve_mtype(var_modelbuilder, var_mmodule, var_mclassdef, var_ntype);
3070 }
3071 if (var33 == NULL) {
3072 var34 = 1; /* is null */
3073 } else {
3074 var34 = 0; /* arg is null but recv is not */
3075 }
3076 if (0) {
3077 { /* Inline kernel#Object#== (var33,((val*)NULL)) on <var33:nullable MType> */
3078 var_other = ((val*)NULL);
3079 {
3080 { /* Inline kernel#Object#is_same_instance (var33,var_other) on <var33:nullable MType(MType)> */
3081 var39 = var33 == var_other;
3082 var37 = var39;
3083 goto RET_LABEL38;
3084 RET_LABEL38:(void)0;
3085 }
3086 }
3087 var35 = var37;
3088 goto RET_LABEL36;
3089 RET_LABEL36:(void)0;
3090 }
3091 var34 = var35;
3092 }
3093 if (var34){
3094 {
3095 { /* Inline model#MVirtualTypeDef#bound= (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3096 var_mpropdef->attrs[COLOR_nit__model__MVirtualTypeDef___bound].val = ((val*)NULL); /* _bound on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3097 RET_LABEL40:(void)0;
3098 }
3099 }
3100 goto RET_LABEL;
3101 } else {
3102 }
3103 {
3104 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3105 var43 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3106 if (unlikely(var43 == NULL)) {
3107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3108 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
3109 fatal_exit(1);
3110 }
3111 var41 = var43;
3112 RET_LABEL42:(void)0;
3113 }
3114 }
3115 {
3116 var44 = nit___nit__MProperty___lookup_super_definitions(var41, var_mmodule, var_anchor);
3117 }
3118 var_ = var44;
3119 {
3120 var45 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
3121 }
3122 var_46 = var45;
3123 for(;;) {
3124 {
3125 var47 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_46);
3126 }
3127 if (var47){
3128 {
3129 var48 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_46);
3130 }
3131 var_p = var48;
3132 {
3133 { /* Inline model#MVirtualTypeDef#bound (var_p) on <var_p:MVirtualTypeDef> */
3134 var51 = var_p->attrs[COLOR_nit__model__MVirtualTypeDef___bound].val; /* _bound on <var_p:MVirtualTypeDef> */
3135 var49 = var51;
3136 RET_LABEL50:(void)0;
3137 }
3138 }
3139 var_supbound = var49;
3140 if (var_supbound == NULL) {
3141 var52 = 1; /* is null */
3142 } else {
3143 var52 = 0; /* arg is null but recv is not */
3144 }
3145 if (0) {
3146 { /* Inline kernel#Object#== (var_supbound,((val*)NULL)) on <var_supbound:nullable MType> */
3147 var_other = ((val*)NULL);
3148 {
3149 { /* Inline kernel#Object#is_same_instance (var_supbound,var_other) on <var_supbound:nullable MType(MType)> */
3150 var57 = var_supbound == var_other;
3151 var55 = var57;
3152 goto RET_LABEL56;
3153 RET_LABEL56:(void)0;
3154 }
3155 }
3156 var53 = var55;
3157 goto RET_LABEL54;
3158 RET_LABEL54:(void)0;
3159 }
3160 var52 = var53;
3161 }
3162 if (var52){
3163 goto BREAK_label;
3164 } else {
3165 }
3166 {
3167 { /* Inline model#MVirtualTypeDef#is_fixed (var_p) on <var_p:MVirtualTypeDef> */
3168 var60 = var_p->attrs[COLOR_nit__model__MVirtualTypeDef___is_fixed].s; /* _is_fixed on <var_p:MVirtualTypeDef> */
3169 var58 = var60;
3170 RET_LABEL59:(void)0;
3171 }
3172 }
3173 if (var58){
3174 if (unlikely(varonce==NULL)) {
3175 var61 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String);
3176 if (likely(varonce62!=NULL)) {
3177 var63 = varonce62;
3178 } else {
3179 var64 = "Redef Error: virtual type `";
3180 var65 = standard___standard__NativeString___to_s_with_length(var64, 27l);
3181 var63 = var65;
3182 varonce62 = var63;
3183 }
3184 ((struct instance_standard__NativeArray*)var61)->values[0]=var63;
3185 if (likely(varonce66!=NULL)) {
3186 var67 = varonce66;
3187 } else {
3188 var68 = "` is fixed in super-class `";
3189 var69 = standard___standard__NativeString___to_s_with_length(var68, 27l);
3190 var67 = var69;
3191 varonce66 = var67;
3192 }
3193 ((struct instance_standard__NativeArray*)var61)->values[2]=var67;
3194 if (likely(varonce70!=NULL)) {
3195 var71 = varonce70;
3196 } else {
3197 var72 = "`.";
3198 var73 = standard___standard__NativeString___to_s_with_length(var72, 2l);
3199 var71 = var73;
3200 varonce70 = var71;
3201 }
3202 ((struct instance_standard__NativeArray*)var61)->values[4]=var71;
3203 } else {
3204 var61 = varonce;
3205 varonce = NULL;
3206 }
3207 {
3208 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3209 var76 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3210 if (unlikely(var76 == NULL)) {
3211 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3212 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
3213 fatal_exit(1);
3214 }
3215 var74 = var76;
3216 RET_LABEL75:(void)0;
3217 }
3218 }
3219 {
3220 var77 = ((val*(*)(val* self))(var74->class->vft[COLOR_standard__string__Object__to_s]))(var74); /* to_s on <var74:MProperty(MVirtualTypeProp)>*/
3221 }
3222 ((struct instance_standard__NativeArray*)var61)->values[1]=var77;
3223 {
3224 { /* Inline model#MPropDef#mclassdef (var_p) on <var_p:MVirtualTypeDef> */
3225 var80 = var_p->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var_p:MVirtualTypeDef> */
3226 if (unlikely(var80 == NULL)) {
3227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
3228 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209);
3229 fatal_exit(1);
3230 }
3231 var78 = var80;
3232 RET_LABEL79:(void)0;
3233 }
3234 }
3235 {
3236 { /* Inline model#MClassDef#mclass (var78) on <var78:MClassDef> */
3237 var83 = var78->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var78:MClassDef> */
3238 if (unlikely(var83 == NULL)) {
3239 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3240 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553);
3241 fatal_exit(1);
3242 }
3243 var81 = var83;
3244 RET_LABEL82:(void)0;
3245 }
3246 }
3247 {
3248 var84 = ((val*(*)(val* self))(var81->class->vft[COLOR_standard__string__Object__to_s]))(var81); /* to_s on <var81:MClass>*/
3249 }
3250 ((struct instance_standard__NativeArray*)var61)->values[3]=var84;
3251 {
3252 var85 = ((val*(*)(val* self))(var61->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var61); /* native_to_s on <var61:NativeArray[String]>*/
3253 }
3254 varonce = var61;
3255 {
3256 nit___nit__ModelBuilder___error(var_modelbuilder, self, var85); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
3257 }
3258 goto BREAK_label;
3259 } else {
3260 }
3261 {
3262 { /* Inline model#MPropDef#mclassdef (var_p) on <var_p:MVirtualTypeDef> */
3263 var88 = var_p->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var_p:MVirtualTypeDef> */
3264 if (unlikely(var88 == NULL)) {
3265 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
3266 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209);
3267 fatal_exit(1);
3268 }
3269 var86 = var88;
3270 RET_LABEL87:(void)0;
3271 }
3272 }
3273 {
3274 { /* Inline model#MClassDef#mclass (var86) on <var86:MClassDef> */
3275 var91 = var86->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var86:MClassDef> */
3276 if (unlikely(var91 == NULL)) {
3277 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3278 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553);
3279 fatal_exit(1);
3280 }
3281 var89 = var91;
3282 RET_LABEL90:(void)0;
3283 }
3284 }
3285 {
3286 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
3287 var94 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
3288 if (unlikely(var94 == NULL)) {
3289 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3290 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553);
3291 fatal_exit(1);
3292 }
3293 var92 = var94;
3294 RET_LABEL93:(void)0;
3295 }
3296 }
3297 {
3298 { /* Inline kernel#Object#== (var89,var92) on <var89:MClass> */
3299 var_other = var92;
3300 {
3301 { /* Inline kernel#Object#is_same_instance (var89,var_other) on <var89:MClass> */
3302 var99 = var89 == var_other;
3303 var97 = var99;
3304 goto RET_LABEL98;
3305 RET_LABEL98:(void)0;
3306 }
3307 }
3308 var95 = var97;
3309 goto RET_LABEL96;
3310 RET_LABEL96:(void)0;
3311 }
3312 }
3313 if (var95){
3314 {
3315 { /* Inline parser_nodes#ATypePropdef#n_type (self) on <self:ATypePropdef> */
3316 var102 = self->attrs[COLOR_nit__parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
3317 if (unlikely(var102 == NULL)) {
3318 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
3319 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1530);
3320 fatal_exit(1);
3321 }
3322 var100 = var102;
3323 RET_LABEL101:(void)0;
3324 }
3325 }
3326 if (likely(varonce103!=NULL)) {
3327 var104 = varonce103;
3328 } else {
3329 var105 = "refine-type";
3330 var106 = standard___standard__NativeString___to_s_with_length(var105, 11l);
3331 var104 = var106;
3332 varonce103 = var104;
3333 }
3334 if (likely(varonce107!=NULL)) {
3335 var108 = varonce107;
3336 } else {
3337 var109 = "Redef Error: a virtual type cannot be refined.";
3338 var110 = standard___standard__NativeString___to_s_with_length(var109, 46l);
3339 var108 = var110;
3340 varonce107 = var108;
3341 }
3342 {
3343 nit___nit__ModelBuilder___warning(var_modelbuilder, var100, var104, var108); /* Direct call modelbuilder_base#ModelBuilder#warning on <var_modelbuilder:ModelBuilder>*/
3344 }
3345 goto BREAK_label;
3346 } else {
3347 }
3348 {
3349 { /* Inline parser_nodes#ATypePropdef#n_type (self) on <self:ATypePropdef> */
3350 var113 = self->attrs[COLOR_nit__parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
3351 if (unlikely(var113 == NULL)) {
3352 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
3353 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1530);
3354 fatal_exit(1);
3355 }
3356 var111 = var113;
3357 RET_LABEL112:(void)0;
3358 }
3359 }
3360 {
3361 var114 = nit___nit__ModelBuilder___check_subtype(var_modelbuilder, var111, var_mmodule, var_anchor, var_bound, var_supbound);
3362 }
3363 var115 = !var114;
3364 if (var115){
3365 {
3366 { /* Inline parser_nodes#ATypePropdef#n_type (self) on <self:ATypePropdef> */
3367 var118 = self->attrs[COLOR_nit__parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
3368 if (unlikely(var118 == NULL)) {
3369 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
3370 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1530);
3371 fatal_exit(1);
3372 }
3373 var116 = var118;
3374 RET_LABEL117:(void)0;
3375 }
3376 }
3377 if (unlikely(varonce119==NULL)) {
3378 var120 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String);
3379 if (likely(varonce121!=NULL)) {
3380 var122 = varonce121;
3381 } else {
3382 var123 = "Redef Error: expected `";
3383 var124 = standard___standard__NativeString___to_s_with_length(var123, 23l);
3384 var122 = var124;
3385 varonce121 = var122;
3386 }
3387 ((struct instance_standard__NativeArray*)var120)->values[0]=var122;
3388 if (likely(varonce125!=NULL)) {
3389 var126 = varonce125;
3390 } else {
3391 var127 = "` bound type; got `";
3392 var128 = standard___standard__NativeString___to_s_with_length(var127, 19l);
3393 var126 = var128;
3394 varonce125 = var126;
3395 }
3396 ((struct instance_standard__NativeArray*)var120)->values[2]=var126;
3397 if (likely(varonce129!=NULL)) {
3398 var130 = varonce129;
3399 } else {
3400 var131 = "`.";
3401 var132 = standard___standard__NativeString___to_s_with_length(var131, 2l);
3402 var130 = var132;
3403 varonce129 = var130;
3404 }
3405 ((struct instance_standard__NativeArray*)var120)->values[4]=var130;
3406 } else {
3407 var120 = varonce119;
3408 varonce119 = NULL;
3409 }
3410 {
3411 var133 = ((val*(*)(val* self))(var_supbound->class->vft[COLOR_standard__string__Object__to_s]))(var_supbound); /* to_s on <var_supbound:nullable MType(MType)>*/
3412 }
3413 ((struct instance_standard__NativeArray*)var120)->values[1]=var133;
3414 {
3415 var134 = ((val*(*)(val* self))(var_bound->class->vft[COLOR_standard__string__Object__to_s]))(var_bound); /* to_s on <var_bound:nullable MType(MType)>*/
3416 }
3417 ((struct instance_standard__NativeArray*)var120)->values[3]=var134;
3418 {
3419 var135 = ((val*(*)(val* self))(var120->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var120); /* native_to_s on <var120:NativeArray[String]>*/
3420 }
3421 varonce119 = var120;
3422 {
3423 nit___nit__ModelBuilder___error(var_modelbuilder, var116, var135); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
3424 }
3425 goto BREAK_label;
3426 } else {
3427 }
3428 {
3429 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_46); /* Direct call array#ArrayIterator#next on <var_46:ArrayIterator[MVirtualTypeDef]>*/
3430 }
3431 } else {
3432 goto BREAK_label;
3433 }
3434 }
3435 BREAK_label: (void)0;
3436 {
3437 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_46); /* Direct call array#ArrayIterator#finish on <var_46:ArrayIterator[MVirtualTypeDef]>*/
3438 }
3439 RET_LABEL:;
3440 }