lib: Add a tiny GNU readline wrapper
[nit.git] / c_src / nitc__modelize_property.sep.3.c
1 #include "nitc__modelize_property.sep.0.h"
2 /* method modelize_property#AAttrPropdef#check_signature for (self: AAttrPropdef, ModelBuilder) */
3 void nitc__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 /* : String */;
74 static val* varonce80;
75 val* var81 /* : String */;
76 char* var82 /* : NativeString */;
77 val* var83 /* : String */;
78 static val* varonce84;
79 val* var85 /* : String */;
80 char* var86 /* : NativeString */;
81 val* var87 /* : String */;
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_nitc__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_nitc__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_nitc__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_nitc__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_nitc__model, 2227);
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_nitc__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_nitc__model, 573);
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_core__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 = nitc___nitc__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_nitc__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_nitc__ANewExpr.color;
271 idtype = type_nitc__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_nitc__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_nitc__parser_nodes, 2259);
288 fatal_exit(1);
289 }
290 var44 = var46;
291 RET_LABEL45:(void)0;
292 }
293 }
294 {
295 var47 = nitc___nitc__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 = nitc___nitc__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_nitc__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_nitc__model, 2230);
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_nitc__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_nitc__model, 1986);
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_nitc__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_core__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_nitc__modelize_property, 1470);
404 fatal_exit(1);
405 }
406 if (unlikely(varonce==NULL)) {
407 var75 = NEW_core__NativeArray(5l, &type_core__NativeArray__core__String);
408 if (likely(varonce76!=NULL)) {
409 var77 = varonce76;
410 } else {
411 var78 = "Redef Error: expected `";
412 var79 = core__flat___NativeString___to_s_full(var78, 23l, 23l);
413 var77 = var79;
414 varonce76 = var77;
415 }
416 ((struct instance_core__NativeArray*)var75)->values[0]=var77;
417 if (likely(varonce80!=NULL)) {
418 var81 = varonce80;
419 } else {
420 var82 = "` type as a bound; got `";
421 var83 = core__flat___NativeString___to_s_full(var82, 24l, 24l);
422 var81 = var83;
423 varonce80 = var81;
424 }
425 ((struct instance_core__NativeArray*)var75)->values[2]=var81;
426 if (likely(varonce84!=NULL)) {
427 var85 = varonce84;
428 } else {
429 var86 = "`.";
430 var87 = core__flat___NativeString___to_s_full(var86, 2l, 2l);
431 var85 = var87;
432 varonce84 = var85;
433 }
434 ((struct instance_core__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_core__abstract_text__Object__to_s]))(var_precursor_type); /* to_s on <var_precursor_type:nullable MType(MType)>*/
441 }
442 ((struct instance_core__NativeArray*)var75)->values[1]=var88;
443 {
444 var89 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:nullable MType(MType)>*/
445 }
446 ((struct instance_core__NativeArray*)var75)->values[3]=var89;
447 {
448 var90 = ((val*(*)(val* self))(var75->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var75); /* native_to_s on <var75:NativeArray[String]>*/
449 }
450 varonce = var75;
451 {
452 nitc___nitc__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_nitc__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_core__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 nitc__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 nitc__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_nitc__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_core__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 nitc__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 nitc__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 nitc__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 /* : String */;
636 static val* varonce52;
637 val* var53 /* : String */;
638 char* var54 /* : NativeString */;
639 val* var55 /* : String */;
640 static val* varonce56;
641 val* var57 /* : String */;
642 char* var58 /* : NativeString */;
643 val* var59 /* : String */;
644 static val* varonce60;
645 val* var61 /* : String */;
646 char* var62 /* : NativeString */;
647 val* var63 /* : String */;
648 static val* varonce64;
649 val* var65 /* : String */;
650 char* var66 /* : NativeString */;
651 val* var67 /* : String */;
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 /* : String */;
692 static val* varonce114;
693 val* var115 /* : String */;
694 char* var116 /* : NativeString */;
695 val* var117 /* : String */;
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 /* : String */;
743 static val* varonce168;
744 val* var169 /* : String */;
745 char* var170 /* : NativeString */;
746 val* var171 /* : String */;
747 static val* varonce172;
748 val* var173 /* : String */;
749 char* var174 /* : NativeString */;
750 val* var175 /* : String */;
751 static val* varonce176;
752 val* var177 /* : String */;
753 char* var178 /* : NativeString */;
754 val* var179 /* : String */;
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 /* : String */;
787 static val* varonce219;
788 val* var220 /* : String */;
789 char* var221 /* : NativeString */;
790 val* var222 /* : String */;
791 static val* varonce223;
792 val* var224 /* : String */;
793 char* var225 /* : NativeString */;
794 val* var226 /* : String */;
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_nitc__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_nitc__model, 2227);
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_nitc__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_nitc__model, 573);
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_nitc__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_nitc__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 = nitc___nitc__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_nitc__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_nitc__model, 2230);
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_nitc__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_nitc__model, 1986);
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_nitc__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 = nitc___nitc__MSignature___arity(var_mysignature);
933 }
934 {
935 var36 = nitc___nitc__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_core__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_core__NativeArray(10l, &type_core__NativeArray__core__String);
972 if (likely(varonce48!=NULL)) {
973 var49 = varonce48;
974 } else {
975 var50 = "Redef Error: expected ";
976 var51 = core__flat___NativeString___to_s_full(var50, 22l, 22l);
977 var49 = var51;
978 varonce48 = var49;
979 }
980 ((struct instance_core__NativeArray*)var47)->values[0]=var49;
981 if (likely(varonce52!=NULL)) {
982 var53 = varonce52;
983 } else {
984 var54 = " parameter(s) for `";
985 var55 = core__flat___NativeString___to_s_full(var54, 19l, 19l);
986 var53 = var55;
987 varonce52 = var53;
988 }
989 ((struct instance_core__NativeArray*)var47)->values[2]=var53;
990 if (likely(varonce56!=NULL)) {
991 var57 = varonce56;
992 } else {
993 var58 = "`; got ";
994 var59 = core__flat___NativeString___to_s_full(var58, 7l, 7l);
995 var57 = var59;
996 varonce56 = var57;
997 }
998 ((struct instance_core__NativeArray*)var47)->values[5]=var57;
999 if (likely(varonce60!=NULL)) {
1000 var61 = varonce60;
1001 } else {
1002 var62 = ". See introduction at `";
1003 var63 = core__flat___NativeString___to_s_full(var62, 23l, 23l);
1004 var61 = var63;
1005 varonce60 = var61;
1006 }
1007 ((struct instance_core__NativeArray*)var47)->values[7]=var61;
1008 if (likely(varonce64!=NULL)) {
1009 var65 = varonce64;
1010 } else {
1011 var66 = "`.";
1012 var67 = core__flat___NativeString___to_s_full(var66, 2l, 2l);
1013 var65 = var67;
1014 varonce64 = var65;
1015 }
1016 ((struct instance_core__NativeArray*)var47)->values[9]=var65;
1017 } else {
1018 var47 = varonce;
1019 varonce = NULL;
1020 }
1021 {
1022 var68 = nitc___nitc__MSignature___arity(var_msignature);
1023 }
1024 var69 = core__flat___Int___core__abstract_text__Object__to_s(var68);
1025 ((struct instance_core__NativeArray*)var47)->values[1]=var69;
1026 {
1027 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
1028 var72 = var_mpropdef->attrs[COLOR_nitc__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_nitc__model, 2230);
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_nitc__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_nitc__model, 1951);
1044 fatal_exit(1);
1045 }
1046 var73 = var75;
1047 RET_LABEL74:(void)0;
1048 }
1049 }
1050 ((struct instance_core__NativeArray*)var47)->values[3]=var73;
1051 {
1052 var76 = ((val*(*)(val* self))(var_msignature->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_msignature); /* to_s on <var_msignature:nullable MSignature(MSignature)>*/
1053 }
1054 ((struct instance_core__NativeArray*)var47)->values[4]=var76;
1055 {
1056 var77 = nitc___nitc__MSignature___arity(var_mysignature);
1057 }
1058 var78 = core__flat___Int___core__abstract_text__Object__to_s(var77);
1059 ((struct instance_core__NativeArray*)var47)->values[6]=var78;
1060 {
1061 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
1062 var81 = var_mpropdef->attrs[COLOR_nitc__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_nitc__model, 2230);
1066 fatal_exit(1);
1067 }
1068 var79 = var81;
1069 RET_LABEL80:(void)0;
1070 }
1071 }
1072 {
1073 var82 = nitc___nitc__MProperty___nitc__model_base__MEntity__full_name(var79);
1074 }
1075 ((struct instance_core__NativeArray*)var47)->values[8]=var82;
1076 {
1077 var83 = ((val*(*)(val* self))(var47->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var47); /* native_to_s on <var47:NativeArray[String]>*/
1078 }
1079 varonce = var47;
1080 {
1081 nitc___nitc__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_nitc__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_nitc__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_core__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_core__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_core__NativeArray(3l, &type_core__NativeArray__core__String);
1174 if (likely(varonce110!=NULL)) {
1175 var111 = varonce110;
1176 } else {
1177 var112 = "Redef Error: `";
1178 var113 = core__flat___NativeString___to_s_full(var112, 14l, 14l);
1179 var111 = var113;
1180 varonce110 = var111;
1181 }
1182 ((struct instance_core__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 = core__flat___NativeString___to_s_full(var116, 33l, 33l);
1188 var115 = var117;
1189 varonce114 = var115;
1190 }
1191 ((struct instance_core__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_nitc__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_nitc__model, 2230);
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_core__abstract_text__Object__to_s]))(var118); /* to_s on <var118:MProperty(MMethod)>*/
1210 }
1211 ((struct instance_core__NativeArray*)var109)->values[1]=var121;
1212 {
1213 var122 = ((val*(*)(val* self))(var109->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var109); /* native_to_s on <var109:NativeArray[String]>*/
1214 }
1215 varonce108 = var109;
1216 {
1217 nitc___nitc__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 = nitc___nitc__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_core__Int.name;
1232 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1233 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
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 = nitc___nitc__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_core__Int.name;
1256 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name135);
1257 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
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 } else {
1268 goto BREAK_label;
1269 }
1270 {
1271 { /* Inline model#MSignature#mparameters (var_mysignature) on <var_mysignature:nullable MSignature(MSignature)> */
1272 var139 = var_mysignature->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var_mysignature:nullable MSignature(MSignature)> */
1273 if (unlikely(var139 == NULL)) {
1274 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
1275 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1783);
1276 fatal_exit(1);
1277 }
1278 var137 = var139;
1279 RET_LABEL138:(void)0;
1280 }
1281 }
1282 {
1283 var140 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var137, var_i);
1284 }
1285 {
1286 { /* Inline model#MParameter#mtype (var140) on <var140:nullable Object(MParameter)> */
1287 var143 = var140->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var140:nullable Object(MParameter)> */
1288 if (unlikely(var143 == NULL)) {
1289 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1290 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1900);
1291 fatal_exit(1);
1292 }
1293 var141 = var143;
1294 RET_LABEL142:(void)0;
1295 }
1296 }
1297 var_myt = var141;
1298 {
1299 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
1300 var146 = var_msignature->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var_msignature:nullable MSignature(MSignature)> */
1301 if (unlikely(var146 == NULL)) {
1302 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
1303 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1783);
1304 fatal_exit(1);
1305 }
1306 var144 = var146;
1307 RET_LABEL145:(void)0;
1308 }
1309 }
1310 {
1311 var147 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var144, var_i);
1312 }
1313 {
1314 { /* Inline model#MParameter#mtype (var147) on <var147:nullable Object(MParameter)> */
1315 var150 = var147->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var147:nullable Object(MParameter)> */
1316 if (unlikely(var150 == NULL)) {
1317 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1318 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1900);
1319 fatal_exit(1);
1320 }
1321 var148 = var150;
1322 RET_LABEL149:(void)0;
1323 }
1324 }
1325 var_prt = var148;
1326 if (var_nsig == NULL) {
1327 var151 = 0; /* is null */
1328 } else {
1329 var151 = 1; /* arg is null and recv is not */
1330 }
1331 if (0) {
1332 { /* Inline kernel#Object#!= (var_nsig,((val*)NULL)) on <var_nsig:nullable AType> */
1333 var_other44 = ((val*)NULL);
1334 {
1335 var154 = ((short int(*)(val* self, val* p0))(var_nsig->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nsig, var_other44); /* == on <var_nsig:nullable AType(AType)>*/
1336 }
1337 var155 = !var154;
1338 var152 = var155;
1339 goto RET_LABEL153;
1340 RET_LABEL153:(void)0;
1341 }
1342 var151 = var152;
1343 }
1344 if (var151){
1345 var_node156 = var_nsig;
1346 } else {
1347 var_node156 = self;
1348 }
1349 {
1350 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
1351 var159 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
1352 if (unlikely(var159 == NULL)) {
1353 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1354 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 579);
1355 fatal_exit(1);
1356 }
1357 var157 = var159;
1358 RET_LABEL158:(void)0;
1359 }
1360 }
1361 {
1362 var160 = nitc___nitc__ModelBuilder___check_sametype(var_modelbuilder, var_node156, var_mmodule, var157, var_myt, var_prt);
1363 }
1364 var161 = !var160;
1365 if (var161){
1366 if (unlikely(varonce162==NULL)) {
1367 var163 = NEW_core__NativeArray(7l, &type_core__NativeArray__core__String);
1368 if (likely(varonce164!=NULL)) {
1369 var165 = varonce164;
1370 } else {
1371 var166 = "Redef Error: expected `";
1372 var167 = core__flat___NativeString___to_s_full(var166, 23l, 23l);
1373 var165 = var167;
1374 varonce164 = var165;
1375 }
1376 ((struct instance_core__NativeArray*)var163)->values[0]=var165;
1377 if (likely(varonce168!=NULL)) {
1378 var169 = varonce168;
1379 } else {
1380 var170 = "` type for parameter `";
1381 var171 = core__flat___NativeString___to_s_full(var170, 22l, 22l);
1382 var169 = var171;
1383 varonce168 = var169;
1384 }
1385 ((struct instance_core__NativeArray*)var163)->values[2]=var169;
1386 if (likely(varonce172!=NULL)) {
1387 var173 = varonce172;
1388 } else {
1389 var174 = "\'; got `";
1390 var175 = core__flat___NativeString___to_s_full(var174, 8l, 8l);
1391 var173 = var175;
1392 varonce172 = var173;
1393 }
1394 ((struct instance_core__NativeArray*)var163)->values[4]=var173;
1395 if (likely(varonce176!=NULL)) {
1396 var177 = varonce176;
1397 } else {
1398 var178 = "`.";
1399 var179 = core__flat___NativeString___to_s_full(var178, 2l, 2l);
1400 var177 = var179;
1401 varonce176 = var177;
1402 }
1403 ((struct instance_core__NativeArray*)var163)->values[6]=var177;
1404 } else {
1405 var163 = varonce162;
1406 varonce162 = NULL;
1407 }
1408 {
1409 var180 = ((val*(*)(val* self))(var_prt->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_prt); /* to_s on <var_prt:MType>*/
1410 }
1411 ((struct instance_core__NativeArray*)var163)->values[1]=var180;
1412 {
1413 { /* Inline model#MSignature#mparameters (var_mysignature) on <var_mysignature:nullable MSignature(MSignature)> */
1414 var183 = var_mysignature->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var_mysignature:nullable MSignature(MSignature)> */
1415 if (unlikely(var183 == NULL)) {
1416 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
1417 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1783);
1418 fatal_exit(1);
1419 }
1420 var181 = var183;
1421 RET_LABEL182:(void)0;
1422 }
1423 }
1424 {
1425 var184 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var181, var_i);
1426 }
1427 {
1428 { /* Inline model#MParameter#name (var184) on <var184:nullable Object(MParameter)> */
1429 var187 = var184->attrs[COLOR_nitc__model__MParameter___name].val; /* _name on <var184:nullable Object(MParameter)> */
1430 if (unlikely(var187 == NULL)) {
1431 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1432 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1897);
1433 fatal_exit(1);
1434 }
1435 var185 = var187;
1436 RET_LABEL186:(void)0;
1437 }
1438 }
1439 ((struct instance_core__NativeArray*)var163)->values[3]=var185;
1440 {
1441 var188 = ((val*(*)(val* self))(var_myt->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_myt); /* to_s on <var_myt:MType>*/
1442 }
1443 ((struct instance_core__NativeArray*)var163)->values[5]=var188;
1444 {
1445 var189 = ((val*(*)(val* self))(var163->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var163); /* native_to_s on <var163:NativeArray[String]>*/
1446 }
1447 varonce162 = var163;
1448 {
1449 nitc___nitc__ModelBuilder___error(var_modelbuilder, var_node156, var189); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
1450 }
1451 } else {
1452 }
1453 {
1454 var190 = core___core__Int___Discrete__successor(var_i, 1l);
1455 }
1456 var_i = var190;
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_core__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_core__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_nitc__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_nitc__model, 579);
1534 fatal_exit(1);
1535 }
1536 var208 = var210;
1537 RET_LABEL209:(void)0;
1538 }
1539 }
1540 {
1541 var211 = nitc___nitc__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_core__NativeArray(5l, &type_core__NativeArray__core__String);
1547 if (likely(varonce215!=NULL)) {
1548 var216 = varonce215;
1549 } else {
1550 var217 = "Redef Error: expected `";
1551 var218 = core__flat___NativeString___to_s_full(var217, 23l, 23l);
1552 var216 = var218;
1553 varonce215 = var216;
1554 }
1555 ((struct instance_core__NativeArray*)var214)->values[0]=var216;
1556 if (likely(varonce219!=NULL)) {
1557 var220 = varonce219;
1558 } else {
1559 var221 = "` return type; got `";
1560 var222 = core__flat___NativeString___to_s_full(var221, 20l, 20l);
1561 var220 = var222;
1562 varonce219 = var220;
1563 }
1564 ((struct instance_core__NativeArray*)var214)->values[2]=var220;
1565 if (likely(varonce223!=NULL)) {
1566 var224 = varonce223;
1567 } else {
1568 var225 = "`.";
1569 var226 = core__flat___NativeString___to_s_full(var225, 2l, 2l);
1570 var224 = var226;
1571 varonce223 = var224;
1572 }
1573 ((struct instance_core__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_core__abstract_text__Object__to_s]))(var_precursor_ret_type); /* to_s on <var_precursor_ret_type:nullable MType(MType)>*/
1580 }
1581 ((struct instance_core__NativeArray*)var214)->values[1]=var227;
1582 {
1583 var228 = ((val*(*)(val* self))(var_ret_type->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ret_type); /* to_s on <var_ret_type:nullable MType(MType)>*/
1584 }
1585 ((struct instance_core__NativeArray*)var214)->values[3]=var228;
1586 {
1587 var229 = ((val*(*)(val* self))(var214->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var214); /* native_to_s on <var214:NativeArray[String]>*/
1588 }
1589 varonce213 = var214;
1590 {
1591 nitc___nitc__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 nitc__modelize_property___AAttrPropdef___APropdef__check_repeated_types(val* self, val* p0) {
1604 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
1605 val* var /* : nullable MMethodDef */;
1606 val* var2 /* : nullable MMethodDef */;
1607 val* var_mreadpropdef /* var mreadpropdef: nullable MMethodDef */;
1608 short int var3 /* : Bool */;
1609 short int var4 /* : Bool */;
1610 val* var_other /* var other: nullable Object */;
1611 short int var6 /* : Bool */;
1612 short int var8 /* : Bool */;
1613 short int var9 /* : Bool */;
1614 short int var10 /* : Bool */;
1615 short int var_ /* var : Bool */;
1616 val* var11 /* : nullable AType */;
1617 val* var13 /* : nullable AType */;
1618 short int var14 /* : Bool */;
1619 short int var15 /* : Bool */;
1620 short int var17 /* : Bool */;
1621 short int var19 /* : Bool */;
1622 val* var20 /* : MProperty */;
1623 val* var22 /* : MProperty */;
1624 val* var23 /* : MPropDef */;
1625 val* var25 /* : MPropDef */;
1626 val* var_intro /* var intro: MMethodDef */;
1627 val* var26 /* : HashMap[MPropDef, APropdef] */;
1628 val* var28 /* : HashMap[MPropDef, APropdef] */;
1629 val* var29 /* : nullable Object */;
1630 val* var_n_intro /* var n_intro: nullable APropdef */;
1631 short int var30 /* : Bool */;
1632 short int var31 /* : Bool */;
1633 short int var33 /* : Bool */;
1634 short int var35 /* : Bool */;
1635 val* var_ntype /* var ntype: nullable Object */;
1636 short int var36 /* : Bool */;
1637 int cltype;
1638 int idtype;
1639 val* var37 /* : nullable ASignature */;
1640 val* var39 /* : nullable ASignature */;
1641 val* var40 /* : nullable MType */;
1642 val* var42 /* : nullable MType */;
1643 short int var43 /* : Bool */;
1644 short int var44 /* : Bool */;
1645 int cltype45;
1646 int idtype46;
1647 short int var_47 /* var : Bool */;
1648 val* var48 /* : nullable AType */;
1649 val* var50 /* : nullable AType */;
1650 short int var51 /* : Bool */;
1651 short int var52 /* : Bool */;
1652 val* var_other54 /* var other: nullable Object */;
1653 short int var55 /* : Bool */;
1654 short int var56 /* : Bool */;
1655 val* var57 /* : nullable AType */;
1656 val* var59 /* : nullable AType */;
1657 val* var60 /* : nullable MType */;
1658 val* var62 /* : nullable MType */;
1659 short int var63 /* : Bool */;
1660 short int var64 /* : Bool */;
1661 short int var65 /* : Bool */;
1662 short int var66 /* : Bool */;
1663 short int var68 /* : Bool */;
1664 short int var70 /* : Bool */;
1665 short int var_71 /* var : Bool */;
1666 val* var72 /* : nullable AType */;
1667 val* var74 /* : nullable AType */;
1668 val* var75 /* : nullable MType */;
1669 val* var77 /* : nullable MType */;
1670 short int var78 /* : Bool */;
1671 short int var80 /* : Bool */;
1672 short int var81 /* : Bool */;
1673 short int var_82 /* var : Bool */;
1674 val* var83 /* : nullable MPropDef */;
1675 val* var85 /* : nullable MPropDef */;
1676 short int var86 /* : Bool */;
1677 short int var87 /* : Bool */;
1678 short int var89 /* : Bool */;
1679 short int var91 /* : Bool */;
1680 val* var92 /* : nullable AType */;
1681 val* var94 /* : nullable AType */;
1682 static val* varonce;
1683 val* var95 /* : String */;
1684 char* var96 /* : NativeString */;
1685 val* var97 /* : String */;
1686 val* var99 /* : NativeArray[String] */;
1687 static val* varonce98;
1688 static val* varonce100;
1689 val* var101 /* : String */;
1690 char* var102 /* : NativeString */;
1691 val* var103 /* : String */;
1692 static val* varonce104;
1693 val* var105 /* : String */;
1694 char* var106 /* : NativeString */;
1695 val* var107 /* : String */;
1696 val* var108 /* : nullable MPropDef */;
1697 val* var110 /* : nullable MPropDef */;
1698 val* var111 /* : String */;
1699 val* var112 /* : String */;
1700 var_modelbuilder = p0;
1701 {
1702 { /* Inline modelize_property#AAttrPropdef#mreadpropdef (self) on <self:AAttrPropdef> */
1703 var2 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mreadpropdef].val; /* _mreadpropdef on <self:AAttrPropdef> */
1704 var = var2;
1705 RET_LABEL1:(void)0;
1706 }
1707 }
1708 var_mreadpropdef = var;
1709 if (var_mreadpropdef == NULL) {
1710 var3 = 1; /* is null */
1711 } else {
1712 var3 = 0; /* arg is null but recv is not */
1713 }
1714 if (0) {
1715 { /* Inline kernel#Object#== (var_mreadpropdef,((val*)NULL)) on <var_mreadpropdef:nullable MMethodDef> */
1716 var_other = ((val*)NULL);
1717 {
1718 { /* Inline kernel#Object#is_same_instance (var_mreadpropdef,var_other) on <var_mreadpropdef:nullable MMethodDef(MMethodDef)> */
1719 var8 = var_mreadpropdef == var_other;
1720 var6 = var8;
1721 goto RET_LABEL7;
1722 RET_LABEL7:(void)0;
1723 }
1724 }
1725 var4 = var6;
1726 goto RET_LABEL5;
1727 RET_LABEL5:(void)0;
1728 }
1729 var3 = var4;
1730 }
1731 if (var3){
1732 goto RET_LABEL;
1733 } else {
1734 }
1735 {
1736 var10 = nitc___nitc__MPropDef___is_intro(var_mreadpropdef);
1737 }
1738 var_ = var10;
1739 if (var10){
1740 var9 = var_;
1741 } else {
1742 {
1743 { /* Inline parser_nodes#AAttrPropdef#n_type (self) on <self:AAttrPropdef> */
1744 var13 = self->attrs[COLOR_nitc__parser_nodes__AAttrPropdef___n_type].val; /* _n_type on <self:AAttrPropdef> */
1745 var11 = var13;
1746 RET_LABEL12:(void)0;
1747 }
1748 }
1749 if (var11 == NULL) {
1750 var14 = 1; /* is null */
1751 } else {
1752 var14 = 0; /* arg is null but recv is not */
1753 }
1754 if (0) {
1755 { /* Inline kernel#Object#== (var11,((val*)NULL)) on <var11:nullable AType> */
1756 var_other = ((val*)NULL);
1757 {
1758 { /* Inline kernel#Object#is_same_instance (var11,var_other) on <var11:nullable AType(AType)> */
1759 var19 = var11 == var_other;
1760 var17 = var19;
1761 goto RET_LABEL18;
1762 RET_LABEL18:(void)0;
1763 }
1764 }
1765 var15 = var17;
1766 goto RET_LABEL16;
1767 RET_LABEL16:(void)0;
1768 }
1769 var14 = var15;
1770 }
1771 var9 = var14;
1772 }
1773 if (var9){
1774 goto RET_LABEL;
1775 } else {
1776 }
1777 {
1778 { /* Inline model#MPropDef#mproperty (var_mreadpropdef) on <var_mreadpropdef:nullable MMethodDef(MMethodDef)> */
1779 var22 = var_mreadpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mreadpropdef:nullable MMethodDef(MMethodDef)> */
1780 if (unlikely(var22 == NULL)) {
1781 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1782 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
1783 fatal_exit(1);
1784 }
1785 var20 = var22;
1786 RET_LABEL21:(void)0;
1787 }
1788 }
1789 {
1790 { /* Inline model#MProperty#intro (var20) on <var20:MProperty(MMethod)> */
1791 var25 = var20->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var20:MProperty(MMethod)> */
1792 if (unlikely(var25 == NULL)) {
1793 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
1794 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1986);
1795 fatal_exit(1);
1796 }
1797 var23 = var25;
1798 RET_LABEL24:(void)0;
1799 }
1800 }
1801 var_intro = var23;
1802 {
1803 { /* Inline modelize_property#ModelBuilder#mpropdef2npropdef (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
1804 var28 = var_modelbuilder->attrs[COLOR_nitc__modelize_property__ModelBuilder___mpropdef2npropdef].val; /* _mpropdef2npropdef on <var_modelbuilder:ModelBuilder> */
1805 if (unlikely(var28 == NULL)) {
1806 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
1807 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 40);
1808 fatal_exit(1);
1809 }
1810 var26 = var28;
1811 RET_LABEL27:(void)0;
1812 }
1813 }
1814 {
1815 var29 = core___core__HashMap___core__abstract_collection__MapRead__get_or_null(var26, var_intro);
1816 }
1817 var_n_intro = var29;
1818 if (var_n_intro == NULL) {
1819 var30 = 1; /* is null */
1820 } else {
1821 var30 = 0; /* arg is null but recv is not */
1822 }
1823 if (0) {
1824 { /* Inline kernel#Object#== (var_n_intro,((val*)NULL)) on <var_n_intro:nullable APropdef> */
1825 var_other = ((val*)NULL);
1826 {
1827 { /* Inline kernel#Object#is_same_instance (var_n_intro,var_other) on <var_n_intro:nullable APropdef(APropdef)> */
1828 var35 = var_n_intro == var_other;
1829 var33 = var35;
1830 goto RET_LABEL34;
1831 RET_LABEL34:(void)0;
1832 }
1833 }
1834 var31 = var33;
1835 goto RET_LABEL32;
1836 RET_LABEL32:(void)0;
1837 }
1838 var30 = var31;
1839 }
1840 if (var30){
1841 goto RET_LABEL;
1842 } else {
1843 }
1844 var_ntype = ((val*)NULL);
1845 /* <var_n_intro:nullable APropdef(APropdef)> isa AMethPropdef */
1846 cltype = type_nitc__AMethPropdef.color;
1847 idtype = type_nitc__AMethPropdef.id;
1848 if(cltype >= var_n_intro->type->table_size) {
1849 var36 = 0;
1850 } else {
1851 var36 = var_n_intro->type->type_table[cltype] == idtype;
1852 }
1853 if (var36){
1854 {
1855 { /* Inline parser_nodes#AMethPropdef#n_signature (var_n_intro) on <var_n_intro:nullable APropdef(AMethPropdef)> */
1856 var39 = var_n_intro->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <var_n_intro:nullable APropdef(AMethPropdef)> */
1857 var37 = var39;
1858 RET_LABEL38:(void)0;
1859 }
1860 }
1861 if (var37 == NULL) {
1862 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1863 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 1558);
1864 fatal_exit(1);
1865 } else {
1866 { /* Inline modelize_property#ASignature#ret_type (var37) on <var37:nullable ASignature> */
1867 if (unlikely(var37 == NULL)) {
1868 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1869 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 670);
1870 fatal_exit(1);
1871 }
1872 var42 = var37->attrs[COLOR_nitc__modelize_property__ASignature___ret_type].val; /* _ret_type on <var37:nullable ASignature> */
1873 var40 = var42;
1874 RET_LABEL41:(void)0;
1875 }
1876 }
1877 var_ntype = var40;
1878 } else {
1879 /* <var_n_intro:nullable APropdef(APropdef)> isa AAttrPropdef */
1880 cltype45 = type_nitc__AAttrPropdef.color;
1881 idtype46 = type_nitc__AAttrPropdef.id;
1882 if(cltype45 >= var_n_intro->type->table_size) {
1883 var44 = 0;
1884 } else {
1885 var44 = var_n_intro->type->type_table[cltype45] == idtype46;
1886 }
1887 var_47 = var44;
1888 if (var44){
1889 {
1890 { /* Inline parser_nodes#AAttrPropdef#n_type (var_n_intro) on <var_n_intro:nullable APropdef(AAttrPropdef)> */
1891 var50 = var_n_intro->attrs[COLOR_nitc__parser_nodes__AAttrPropdef___n_type].val; /* _n_type on <var_n_intro:nullable APropdef(AAttrPropdef)> */
1892 var48 = var50;
1893 RET_LABEL49:(void)0;
1894 }
1895 }
1896 if (var48 == NULL) {
1897 var51 = 0; /* is null */
1898 } else {
1899 var51 = 1; /* arg is null and recv is not */
1900 }
1901 if (0) {
1902 { /* Inline kernel#Object#!= (var48,((val*)NULL)) on <var48:nullable AType> */
1903 var_other54 = ((val*)NULL);
1904 {
1905 var55 = ((short int(*)(val* self, val* p0))(var48->class->vft[COLOR_core__kernel__Object___61d_61d]))(var48, var_other54); /* == on <var48:nullable AType(AType)>*/
1906 }
1907 var56 = !var55;
1908 var52 = var56;
1909 goto RET_LABEL53;
1910 RET_LABEL53:(void)0;
1911 }
1912 var51 = var52;
1913 }
1914 var43 = var51;
1915 } else {
1916 var43 = var_47;
1917 }
1918 if (var43){
1919 {
1920 { /* Inline parser_nodes#AAttrPropdef#n_type (var_n_intro) on <var_n_intro:nullable APropdef(AAttrPropdef)> */
1921 var59 = var_n_intro->attrs[COLOR_nitc__parser_nodes__AAttrPropdef___n_type].val; /* _n_type on <var_n_intro:nullable APropdef(AAttrPropdef)> */
1922 var57 = var59;
1923 RET_LABEL58:(void)0;
1924 }
1925 }
1926 if (var57 == NULL) {
1927 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1928 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 1560);
1929 fatal_exit(1);
1930 } else {
1931 { /* Inline modelbuilder_base#AType#mtype (var57) on <var57:nullable AType> */
1932 if (unlikely(var57 == NULL)) {
1933 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1934 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 379);
1935 fatal_exit(1);
1936 }
1937 var62 = var57->attrs[COLOR_nitc__modelbuilder_base__AType___mtype].val; /* _mtype on <var57:nullable AType> */
1938 var60 = var62;
1939 RET_LABEL61:(void)0;
1940 }
1941 }
1942 var_ntype = var60;
1943 } else {
1944 }
1945 }
1946 if (var_ntype == NULL) {
1947 var65 = 1; /* is null */
1948 } else {
1949 var65 = 0; /* arg is null but recv is not */
1950 }
1951 if (0) {
1952 { /* Inline kernel#Object#== (var_ntype,((val*)NULL)) on <var_ntype:nullable Object(nullable MType)> */
1953 var_other = ((val*)NULL);
1954 {
1955 { /* Inline kernel#Object#is_same_instance (var_ntype,var_other) on <var_ntype:nullable MType(MType)> */
1956 var70 = var_ntype == var_other;
1957 var68 = var70;
1958 goto RET_LABEL69;
1959 RET_LABEL69:(void)0;
1960 }
1961 }
1962 var66 = var68;
1963 goto RET_LABEL67;
1964 RET_LABEL67:(void)0;
1965 }
1966 var65 = var66;
1967 }
1968 var_71 = var65;
1969 if (var65){
1970 var64 = var_71;
1971 } else {
1972 {
1973 { /* Inline parser_nodes#AAttrPropdef#n_type (self) on <self:AAttrPropdef> */
1974 var74 = self->attrs[COLOR_nitc__parser_nodes__AAttrPropdef___n_type].val; /* _n_type on <self:AAttrPropdef> */
1975 var72 = var74;
1976 RET_LABEL73:(void)0;
1977 }
1978 }
1979 if (var72 == NULL) {
1980 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1981 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 1563);
1982 fatal_exit(1);
1983 } else {
1984 { /* Inline modelbuilder_base#AType#mtype (var72) on <var72:nullable AType> */
1985 if (unlikely(var72 == NULL)) {
1986 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1987 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 379);
1988 fatal_exit(1);
1989 }
1990 var77 = var72->attrs[COLOR_nitc__modelbuilder_base__AType___mtype].val; /* _mtype on <var72:nullable AType> */
1991 var75 = var77;
1992 RET_LABEL76:(void)0;
1993 }
1994 }
1995 {
1996 { /* Inline kernel#Object#!= (var_ntype,var75) on <var_ntype:nullable Object(MType)> */
1997 var_other54 = var75;
1998 {
1999 var80 = ((short int(*)(val* self, val* p0))(var_ntype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ntype, var_other54); /* == on <var_ntype:nullable Object(MType)>*/
2000 }
2001 var81 = !var80;
2002 var78 = var81;
2003 goto RET_LABEL79;
2004 RET_LABEL79:(void)0;
2005 }
2006 }
2007 var64 = var78;
2008 }
2009 var_82 = var64;
2010 if (var64){
2011 var63 = var_82;
2012 } else {
2013 {
2014 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
2015 var85 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
2016 var83 = var85;
2017 RET_LABEL84:(void)0;
2018 }
2019 }
2020 if (var83 == NULL) {
2021 var86 = 1; /* is null */
2022 } else {
2023 var86 = 0; /* arg is null but recv is not */
2024 }
2025 if (0) {
2026 { /* Inline kernel#Object#== (var83,((val*)NULL)) on <var83:nullable MPropDef(nullable MAttributeDef)> */
2027 var_other = ((val*)NULL);
2028 {
2029 { /* Inline kernel#Object#is_same_instance (var83,var_other) on <var83:nullable MAttributeDef(MAttributeDef)> */
2030 var91 = var83 == var_other;
2031 var89 = var91;
2032 goto RET_LABEL90;
2033 RET_LABEL90:(void)0;
2034 }
2035 }
2036 var87 = var89;
2037 goto RET_LABEL88;
2038 RET_LABEL88:(void)0;
2039 }
2040 var86 = var87;
2041 }
2042 var63 = var86;
2043 }
2044 if (var63){
2045 goto RET_LABEL;
2046 } else {
2047 }
2048 {
2049 { /* Inline parser_nodes#AAttrPropdef#n_type (self) on <self:AAttrPropdef> */
2050 var94 = self->attrs[COLOR_nitc__parser_nodes__AAttrPropdef___n_type].val; /* _n_type on <self:AAttrPropdef> */
2051 var92 = var94;
2052 RET_LABEL93:(void)0;
2053 }
2054 }
2055 if (likely(varonce!=NULL)) {
2056 var95 = varonce;
2057 } else {
2058 var96 = "useless-signature";
2059 var97 = core__flat___NativeString___to_s_full(var96, 17l, 17l);
2060 var95 = var97;
2061 varonce = var95;
2062 }
2063 if (unlikely(varonce98==NULL)) {
2064 var99 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
2065 if (likely(varonce100!=NULL)) {
2066 var101 = varonce100;
2067 } else {
2068 var102 = "Warning: useless type repetition on redefined attribute `";
2069 var103 = core__flat___NativeString___to_s_full(var102, 57l, 57l);
2070 var101 = var103;
2071 varonce100 = var101;
2072 }
2073 ((struct instance_core__NativeArray*)var99)->values[0]=var101;
2074 if (likely(varonce104!=NULL)) {
2075 var105 = varonce104;
2076 } else {
2077 var106 = "`";
2078 var107 = core__flat___NativeString___to_s_full(var106, 1l, 1l);
2079 var105 = var107;
2080 varonce104 = var105;
2081 }
2082 ((struct instance_core__NativeArray*)var99)->values[2]=var105;
2083 } else {
2084 var99 = varonce98;
2085 varonce98 = NULL;
2086 }
2087 {
2088 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
2089 var110 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
2090 var108 = var110;
2091 RET_LABEL109:(void)0;
2092 }
2093 }
2094 if (var108 == NULL) {
2095 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2096 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 1564);
2097 fatal_exit(1);
2098 } else {
2099 var111 = nitc___nitc__MPropDef___nitc__model_base__MEntity__name(var108);
2100 }
2101 ((struct instance_core__NativeArray*)var99)->values[1]=var111;
2102 {
2103 var112 = ((val*(*)(val* self))(var99->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var99); /* native_to_s on <var99:NativeArray[String]>*/
2104 }
2105 varonce98 = var99;
2106 {
2107 nitc___nitc__ModelBuilder___advice(var_modelbuilder, var92, var95, var112); /* Direct call modelbuilder_base#ModelBuilder#advice on <var_modelbuilder:ModelBuilder>*/
2108 }
2109 RET_LABEL:;
2110 }
2111 /* method modelize_property#ATypePropdef#build_property for (self: ATypePropdef, ModelBuilder, MClassDef) */
2112 void nitc__modelize_property___ATypePropdef___APropdef__build_property(val* self, val* p0, val* p1) {
2113 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
2114 val* var_mclassdef /* var mclassdef: MClassDef */;
2115 val* var /* : AQclassid */;
2116 val* var2 /* : AQclassid */;
2117 val* var3 /* : TClassid */;
2118 val* var5 /* : TClassid */;
2119 val* var6 /* : String */;
2120 val* var_name /* var name: String */;
2121 val* var7 /* : AQclassid */;
2122 val* var9 /* : AQclassid */;
2123 val* var10 /* : nullable MProperty */;
2124 val* var_mprop /* var mprop: nullable MProperty */;
2125 short int var11 /* : Bool */;
2126 short int var12 /* : Bool */;
2127 val* var_other /* var other: nullable Object */;
2128 short int var14 /* : Bool */;
2129 short int var16 /* : Bool */;
2130 val* var17 /* : nullable AVisibility */;
2131 val* var19 /* : nullable AVisibility */;
2132 val* var20 /* : MVisibility */;
2133 val* var_mvisibility /* var mvisibility: MVisibility */;
2134 val* var21 /* : MVirtualTypeProp */;
2135 val* var22 /* : SequenceRead[Char] */;
2136 val* var_ /* var : SequenceRead[Char] */;
2137 val* var23 /* : Iterator[nullable Object] */;
2138 val* var_24 /* var : IndexedIterator[Char] */;
2139 short int var25 /* : Bool */;
2140 val* var26 /* : nullable Object */;
2141 uint32_t var27 /* : Char */;
2142 uint32_t var_c /* var c: Char */;
2143 short int var28 /* : Bool */;
2144 short int var29 /* : Bool */;
2145 short int var31 /* : Bool */;
2146 int cltype;
2147 int idtype;
2148 const char* var_class_name;
2149 short int var32 /* : Bool */;
2150 short int var_33 /* var : Bool */;
2151 short int var34 /* : Bool */;
2152 short int var36 /* : Bool */;
2153 int cltype37;
2154 int idtype38;
2155 const char* var_class_name39;
2156 short int var40 /* : Bool */;
2157 val* var41 /* : AQclassid */;
2158 val* var43 /* : AQclassid */;
2159 static val* varonce;
2160 val* var44 /* : String */;
2161 char* var45 /* : NativeString */;
2162 val* var46 /* : String */;
2163 val* var48 /* : NativeArray[String] */;
2164 static val* varonce47;
2165 static val* varonce49;
2166 val* var50 /* : String */;
2167 char* var51 /* : NativeString */;
2168 val* var52 /* : String */;
2169 static val* varonce53;
2170 val* var54 /* : String */;
2171 char* var55 /* : NativeString */;
2172 val* var56 /* : String */;
2173 val* var57 /* : String */;
2174 short int var58 /* : Bool */;
2175 int cltype59;
2176 int idtype60;
2177 val* var61 /* : nullable AVisibility */;
2178 val* var63 /* : nullable AVisibility */;
2179 val* var64 /* : MVirtualTypeDef */;
2180 val* var65 /* : Location */;
2181 val* var67 /* : Location */;
2182 val* var_mpropdef /* var mpropdef: MVirtualTypeDef */;
2183 short int var68 /* : Bool */;
2184 int cltype69;
2185 int idtype70;
2186 const struct type* type_struct;
2187 const char* var_class_name71;
2188 short int var73 /* : Bool */;
2189 int cltype74;
2190 int idtype75;
2191 const struct type* type_struct76;
2192 const char* var_class_name77;
2193 short int var78 /* : Bool */;
2194 val* var79 /* : ToolContext */;
2195 val* var81 /* : ToolContext */;
2196 val* var83 /* : NativeArray[String] */;
2197 static val* varonce82;
2198 static val* varonce84;
2199 val* var85 /* : String */;
2200 char* var86 /* : NativeString */;
2201 val* var87 /* : String */;
2202 val* var88 /* : String */;
2203 val* var89 /* : String */;
2204 val* var90 /* : String */;
2205 val* var91 /* : ToolContext */;
2206 val* var93 /* : ToolContext */;
2207 val* var95 /* : NativeArray[String] */;
2208 static val* varonce94;
2209 static val* varonce96;
2210 val* var97 /* : String */;
2211 char* var98 /* : NativeString */;
2212 val* var99 /* : String */;
2213 val* var100 /* : String */;
2214 val* var101 /* : String */;
2215 val* var102 /* : String */;
2216 val* var103 /* : nullable TKwredef */;
2217 val* var105 /* : nullable TKwredef */;
2218 short int var106 /* : Bool */;
2219 short int var107 /* : Bool */;
2220 short int var108 /* : Bool */;
2221 short int var109 /* : Bool */;
2222 val* var111 /* : Map[MProperty, APropdef] */;
2223 val* var113 /* : Map[MProperty, APropdef] */;
2224 val* var114 /* : HashMap[MPropDef, APropdef] */;
2225 val* var116 /* : HashMap[MPropDef, APropdef] */;
2226 static val* varonce117;
2227 val* var118 /* : String */;
2228 char* var119 /* : NativeString */;
2229 val* var120 /* : String */;
2230 val* var121 /* : nullable AAnnotation */;
2231 val* var_atfixed /* var atfixed: nullable AAnnotation */;
2232 short int var122 /* : Bool */;
2233 short int var123 /* : Bool */;
2234 val* var_other125 /* var other: nullable Object */;
2235 short int var126 /* : Bool */;
2236 short int var127 /* : Bool */;
2237 var_modelbuilder = p0;
2238 var_mclassdef = p1;
2239 {
2240 { /* Inline parser_nodes#ATypePropdef#n_qid (self) on <self:ATypePropdef> */
2241 var2 = self->attrs[COLOR_nitc__parser_nodes__ATypePropdef___n_qid].val; /* _n_qid on <self:ATypePropdef> */
2242 if (unlikely(var2 == NULL)) {
2243 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid");
2244 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1493);
2245 fatal_exit(1);
2246 }
2247 var = var2;
2248 RET_LABEL1:(void)0;
2249 }
2250 }
2251 {
2252 { /* Inline parser_nodes#AQclassid#n_id (var) on <var:AQclassid> */
2253 var5 = var->attrs[COLOR_nitc__parser_nodes__AQclassid___n_id].val; /* _n_id on <var:AQclassid> */
2254 if (unlikely(var5 == NULL)) {
2255 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2256 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1668);
2257 fatal_exit(1);
2258 }
2259 var3 = var5;
2260 RET_LABEL4:(void)0;
2261 }
2262 }
2263 {
2264 var6 = nitc__lexer_work___Token___text(var3);
2265 }
2266 var_name = var6;
2267 {
2268 { /* Inline parser_nodes#ATypePropdef#n_qid (self) on <self:ATypePropdef> */
2269 var9 = self->attrs[COLOR_nitc__parser_nodes__ATypePropdef___n_qid].val; /* _n_qid on <self:ATypePropdef> */
2270 if (unlikely(var9 == NULL)) {
2271 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid");
2272 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1493);
2273 fatal_exit(1);
2274 }
2275 var7 = var9;
2276 RET_LABEL8:(void)0;
2277 }
2278 }
2279 {
2280 var10 = nitc___nitc__ModelBuilder___try_get_mproperty_by_name(var_modelbuilder, var7, var_mclassdef, var_name);
2281 }
2282 var_mprop = var10;
2283 if (var_mprop == NULL) {
2284 var11 = 1; /* is null */
2285 } else {
2286 var11 = 0; /* arg is null but recv is not */
2287 }
2288 if (0) {
2289 { /* Inline kernel#Object#== (var_mprop,((val*)NULL)) on <var_mprop:nullable MProperty> */
2290 var_other = ((val*)NULL);
2291 {
2292 { /* Inline kernel#Object#is_same_instance (var_mprop,var_other) on <var_mprop:nullable MProperty(MProperty)> */
2293 var16 = var_mprop == var_other;
2294 var14 = var16;
2295 goto RET_LABEL15;
2296 RET_LABEL15:(void)0;
2297 }
2298 }
2299 var12 = var14;
2300 goto RET_LABEL13;
2301 RET_LABEL13:(void)0;
2302 }
2303 var11 = var12;
2304 }
2305 if (var11){
2306 {
2307 { /* Inline parser_nodes#ADefinition#n_visibility (self) on <self:ATypePropdef> */
2308 var19 = self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_visibility].val; /* _n_visibility on <self:ATypePropdef> */
2309 var17 = var19;
2310 RET_LABEL18:(void)0;
2311 }
2312 }
2313 {
2314 var20 = nitc__modelize_property___APropdef___new_property_visibility(self, var_modelbuilder, var_mclassdef, var17);
2315 }
2316 var_mvisibility = var20;
2317 var21 = NEW_nitc__MVirtualTypeProp(&type_nitc__MVirtualTypeProp);
2318 {
2319 ((void(*)(val* self, val* p0))(var21->class->vft[COLOR_nitc__model__MProperty__intro_mclassdef_61d]))(var21, var_mclassdef); /* intro_mclassdef= on <var21:MVirtualTypeProp>*/
2320 }
2321 {
2322 ((void(*)(val* self, val* p0))(var21->class->vft[COLOR_nitc__model__MProperty__name_61d]))(var21, var_name); /* name= on <var21:MVirtualTypeProp>*/
2323 }
2324 {
2325 ((void(*)(val* self, val* p0))(var21->class->vft[COLOR_nitc__model__MProperty__visibility_61d]))(var21, var_mvisibility); /* visibility= on <var21:MVirtualTypeProp>*/
2326 }
2327 {
2328 ((void(*)(val* self))(var21->class->vft[COLOR_core__kernel__Object__init]))(var21); /* init on <var21:MVirtualTypeProp>*/
2329 }
2330 var_mprop = var21;
2331 {
2332 var22 = ((val*(*)(val* self))(var_name->class->vft[COLOR_core__abstract_text__Text__chars]))(var_name); /* chars on <var_name:String>*/
2333 }
2334 var_ = var22;
2335 {
2336 var23 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:SequenceRead[Char]>*/
2337 }
2338 var_24 = var23;
2339 for(;;) {
2340 {
2341 var25 = ((short int(*)(val* self))((((long)var_24&3)?class_info[((long)var_24&3)]:var_24->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_24); /* is_ok on <var_24:IndexedIterator[Char]>*/
2342 }
2343 if (var25){
2344 } else {
2345 goto BREAK_label;
2346 }
2347 {
2348 var26 = ((val*(*)(val* self))((((long)var_24&3)?class_info[((long)var_24&3)]:var_24->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_24); /* item on <var_24:IndexedIterator[Char]>*/
2349 }
2350 var27 = (uint32_t)((long)(var26)>>2);
2351 var_c = var27;
2352 {
2353 { /* Inline kernel#Char#>= (var_c,'a') on <var_c:Char> */
2354 /* Covariant cast for argument 0 (i) <'a':Char> isa OTHER */
2355 /* <'a':Char> isa OTHER */
2356 var31 = 1; /* easy <'a':Char> isa OTHER*/
2357 if (unlikely(!var31)) {
2358 var_class_name = type_core__Char.name;
2359 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2360 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
2361 fatal_exit(1);
2362 }
2363 var32 = var_c >= 'a';
2364 var29 = var32;
2365 goto RET_LABEL30;
2366 RET_LABEL30:(void)0;
2367 }
2368 }
2369 var_33 = var29;
2370 if (var29){
2371 {
2372 { /* Inline kernel#Char#<= (var_c,'z') on <var_c:Char> */
2373 /* Covariant cast for argument 0 (i) <'z':Char> isa OTHER */
2374 /* <'z':Char> isa OTHER */
2375 var36 = 1; /* easy <'z':Char> isa OTHER*/
2376 if (unlikely(!var36)) {
2377 var_class_name39 = type_core__Char.name;
2378 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39);
2379 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
2380 fatal_exit(1);
2381 }
2382 var40 = var_c <= 'z';
2383 var34 = var40;
2384 goto RET_LABEL35;
2385 RET_LABEL35:(void)0;
2386 }
2387 }
2388 var28 = var34;
2389 } else {
2390 var28 = var_33;
2391 }
2392 if (var28){
2393 {
2394 { /* Inline parser_nodes#ATypePropdef#n_qid (self) on <self:ATypePropdef> */
2395 var43 = self->attrs[COLOR_nitc__parser_nodes__ATypePropdef___n_qid].val; /* _n_qid on <self:ATypePropdef> */
2396 if (unlikely(var43 == NULL)) {
2397 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid");
2398 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1493);
2399 fatal_exit(1);
2400 }
2401 var41 = var43;
2402 RET_LABEL42:(void)0;
2403 }
2404 }
2405 if (likely(varonce!=NULL)) {
2406 var44 = varonce;
2407 } else {
2408 var45 = "bad-type-name";
2409 var46 = core__flat___NativeString___to_s_full(var45, 13l, 13l);
2410 var44 = var46;
2411 varonce = var44;
2412 }
2413 if (unlikely(varonce47==NULL)) {
2414 var48 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
2415 if (likely(varonce49!=NULL)) {
2416 var50 = varonce49;
2417 } else {
2418 var51 = "Warning: lowercase in the virtual type `";
2419 var52 = core__flat___NativeString___to_s_full(var51, 40l, 40l);
2420 var50 = var52;
2421 varonce49 = var50;
2422 }
2423 ((struct instance_core__NativeArray*)var48)->values[0]=var50;
2424 if (likely(varonce53!=NULL)) {
2425 var54 = varonce53;
2426 } else {
2427 var55 = "`.";
2428 var56 = core__flat___NativeString___to_s_full(var55, 2l, 2l);
2429 var54 = var56;
2430 varonce53 = var54;
2431 }
2432 ((struct instance_core__NativeArray*)var48)->values[2]=var54;
2433 } else {
2434 var48 = varonce47;
2435 varonce47 = NULL;
2436 }
2437 ((struct instance_core__NativeArray*)var48)->values[1]=var_name;
2438 {
2439 var57 = ((val*(*)(val* self))(var48->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var48); /* native_to_s on <var48:NativeArray[String]>*/
2440 }
2441 varonce47 = var48;
2442 {
2443 nitc___nitc__ModelBuilder___warning(var_modelbuilder, var41, var44, var57); /* Direct call modelbuilder_base#ModelBuilder#warning on <var_modelbuilder:ModelBuilder>*/
2444 }
2445 goto BREAK_label;
2446 } else {
2447 }
2448 {
2449 ((void(*)(val* self))((((long)var_24&3)?class_info[((long)var_24&3)]:var_24->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_24); /* next on <var_24:IndexedIterator[Char]>*/
2450 }
2451 }
2452 BREAK_label: (void)0;
2453 {
2454 ((void(*)(val* self))((((long)var_24&3)?class_info[((long)var_24&3)]:var_24->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_24); /* finish on <var_24:IndexedIterator[Char]>*/
2455 }
2456 } else {
2457 /* <var_mprop:nullable MProperty(MProperty)> isa MVirtualTypeProp */
2458 cltype59 = type_nitc__MVirtualTypeProp.color;
2459 idtype60 = type_nitc__MVirtualTypeProp.id;
2460 if(cltype59 >= var_mprop->type->table_size) {
2461 var58 = 0;
2462 } else {
2463 var58 = var_mprop->type->type_table[cltype59] == idtype60;
2464 }
2465 if (unlikely(!var58)) {
2466 PRINT_ERROR("Runtime error: %s", "Assert failed");
2467 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 1583);
2468 fatal_exit(1);
2469 }
2470 {
2471 { /* Inline parser_nodes#ADefinition#n_visibility (self) on <self:ATypePropdef> */
2472 var63 = self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_visibility].val; /* _n_visibility on <self:ATypePropdef> */
2473 var61 = var63;
2474 RET_LABEL62:(void)0;
2475 }
2476 }
2477 {
2478 nitc__modelize_property___APropdef___check_redef_property_visibility(self, var_modelbuilder, var61, var_mprop); /* Direct call modelize_property#APropdef#check_redef_property_visibility on <self:ATypePropdef>*/
2479 }
2480 }
2481 var64 = NEW_nitc__MVirtualTypeDef(&type_nitc__MVirtualTypeDef);
2482 {
2483 { /* Inline parser_nodes#ANode#location (self) on <self:ATypePropdef> */
2484 var67 = self->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <self:ATypePropdef> */
2485 if (unlikely(var67 == NULL)) {
2486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
2487 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 24);
2488 fatal_exit(1);
2489 }
2490 var65 = var67;
2491 RET_LABEL66:(void)0;
2492 }
2493 }
2494 {
2495 ((void(*)(val* self, val* p0))(var64->class->vft[COLOR_nitc__model__MPropDef__mclassdef_61d]))(var64, var_mclassdef); /* mclassdef= on <var64:MVirtualTypeDef>*/
2496 }
2497 {
2498 ((void(*)(val* self, val* p0))(var64->class->vft[COLOR_nitc__model__MPropDef__mproperty_61d]))(var64, var_mprop); /* mproperty= on <var64:MVirtualTypeDef>*/
2499 }
2500 {
2501 ((void(*)(val* self, val* p0))(var64->class->vft[COLOR_nitc__model__MPropDef__location_61d]))(var64, var65); /* location= on <var64:MVirtualTypeDef>*/
2502 }
2503 {
2504 ((void(*)(val* self))(var64->class->vft[COLOR_core__kernel__Object__init]))(var64); /* init on <var64:MVirtualTypeDef>*/
2505 }
2506 var_mpropdef = var64;
2507 /* <var_mpropdef:MVirtualTypeDef> isa nullable MPROPDEF */
2508 type_struct = self->type->resolution_table->types[COLOR_nullable__nitc__modelize_property__APropdef__MPROPDEF];
2509 cltype69 = type_struct->color;
2510 idtype70 = type_struct->id;
2511 if(cltype69 >= var_mpropdef->type->table_size) {
2512 var68 = 0;
2513 } else {
2514 var68 = var_mpropdef->type->type_table[cltype69] == idtype70;
2515 }
2516 if (unlikely(!var68)) {
2517 var_class_name71 = var_mpropdef == NULL ? "null" : var_mpropdef->type->name;
2518 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name71);
2519 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 1588);
2520 fatal_exit(1);
2521 }
2522 {
2523 { /* Inline modelize_property#APropdef#mpropdef= (self,var_mpropdef) on <self:ATypePropdef> */
2524 /* Covariant cast for argument 0 (mpropdef) <var_mpropdef:MVirtualTypeDef> isa nullable MPROPDEF */
2525 /* <var_mpropdef:MVirtualTypeDef> isa nullable MPROPDEF */
2526 type_struct76 = self->type->resolution_table->types[COLOR_nullable__nitc__modelize_property__APropdef__MPROPDEF];
2527 cltype74 = type_struct76->color;
2528 idtype75 = type_struct76->id;
2529 if(cltype74 >= var_mpropdef->type->table_size) {
2530 var73 = 0;
2531 } else {
2532 var73 = var_mpropdef->type->type_table[cltype74] == idtype75;
2533 }
2534 if (unlikely(!var73)) {
2535 var_class_name77 = var_mpropdef == NULL ? "null" : var_mpropdef->type->name;
2536 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name77);
2537 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 559);
2538 fatal_exit(1);
2539 }
2540 self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val = var_mpropdef; /* _mpropdef on <self:ATypePropdef> */
2541 RET_LABEL72:(void)0;
2542 }
2543 }
2544 {
2545 var78 = nitc___nitc__MPropDef___is_intro(var_mpropdef);
2546 }
2547 if (var78){
2548 {
2549 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
2550 var81 = var_modelbuilder->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var_modelbuilder:ModelBuilder> */
2551 if (unlikely(var81 == NULL)) {
2552 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2553 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
2554 fatal_exit(1);
2555 }
2556 var79 = var81;
2557 RET_LABEL80:(void)0;
2558 }
2559 }
2560 if (unlikely(varonce82==NULL)) {
2561 var83 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
2562 if (likely(varonce84!=NULL)) {
2563 var85 = varonce84;
2564 } else {
2565 var86 = " introduces new type ";
2566 var87 = core__flat___NativeString___to_s_full(var86, 21l, 21l);
2567 var85 = var87;
2568 varonce84 = var85;
2569 }
2570 ((struct instance_core__NativeArray*)var83)->values[1]=var85;
2571 } else {
2572 var83 = varonce82;
2573 varonce82 = NULL;
2574 }
2575 {
2576 var88 = ((val*(*)(val* self))(var_mpropdef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mpropdef); /* to_s on <var_mpropdef:MVirtualTypeDef>*/
2577 }
2578 ((struct instance_core__NativeArray*)var83)->values[0]=var88;
2579 {
2580 var89 = nitc___nitc__MProperty___nitc__model_base__MEntity__full_name(var_mprop);
2581 }
2582 ((struct instance_core__NativeArray*)var83)->values[2]=var89;
2583 {
2584 var90 = ((val*(*)(val* self))(var83->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var83); /* native_to_s on <var83:NativeArray[String]>*/
2585 }
2586 varonce82 = var83;
2587 {
2588 nitc___nitc__ToolContext___info(var79, var90, 4l); /* Direct call toolcontext#ToolContext#info on <var79:ToolContext>*/
2589 }
2590 } else {
2591 {
2592 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
2593 var93 = var_modelbuilder->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var_modelbuilder:ModelBuilder> */
2594 if (unlikely(var93 == NULL)) {
2595 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2596 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
2597 fatal_exit(1);
2598 }
2599 var91 = var93;
2600 RET_LABEL92:(void)0;
2601 }
2602 }
2603 if (unlikely(varonce94==NULL)) {
2604 var95 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
2605 if (likely(varonce96!=NULL)) {
2606 var97 = varonce96;
2607 } else {
2608 var98 = " redefines type ";
2609 var99 = core__flat___NativeString___to_s_full(var98, 16l, 16l);
2610 var97 = var99;
2611 varonce96 = var97;
2612 }
2613 ((struct instance_core__NativeArray*)var95)->values[1]=var97;
2614 } else {
2615 var95 = varonce94;
2616 varonce94 = NULL;
2617 }
2618 {
2619 var100 = ((val*(*)(val* self))(var_mpropdef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mpropdef); /* to_s on <var_mpropdef:MVirtualTypeDef>*/
2620 }
2621 ((struct instance_core__NativeArray*)var95)->values[0]=var100;
2622 {
2623 var101 = nitc___nitc__MProperty___nitc__model_base__MEntity__full_name(var_mprop);
2624 }
2625 ((struct instance_core__NativeArray*)var95)->values[2]=var101;
2626 {
2627 var102 = ((val*(*)(val* self))(var95->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var95); /* native_to_s on <var95:NativeArray[String]>*/
2628 }
2629 varonce94 = var95;
2630 {
2631 nitc___nitc__ToolContext___info(var91, var102, 4l); /* Direct call toolcontext#ToolContext#info on <var91:ToolContext>*/
2632 }
2633 }
2634 {
2635 { /* Inline parser_nodes#ADefinition#n_kwredef (self) on <self:ATypePropdef> */
2636 var105 = self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_kwredef].val; /* _n_kwredef on <self:ATypePropdef> */
2637 var103 = var105;
2638 RET_LABEL104:(void)0;
2639 }
2640 }
2641 {
2642 var106 = nitc___nitc__MPropDef___is_intro(var_mpropdef);
2643 }
2644 var107 = !var106;
2645 {
2646 var108 = nitc__modelize_property___APropdef___check_redef_keyword(self, var_modelbuilder, var_mclassdef, var103, var107, var_mprop);
2647 }
2648 var109 = !var108;
2649 if (var109){
2650 {
2651 { /* Inline model_base#MEntity#is_broken= (var_mpropdef,1) on <var_mpropdef:MVirtualTypeDef> */
2652 var_mpropdef->attrs[COLOR_nitc__model_base__MEntity___is_broken].s = 1; /* _is_broken on <var_mpropdef:MVirtualTypeDef> */
2653 RET_LABEL110:(void)0;
2654 }
2655 }
2656 } else {
2657 }
2658 {
2659 { /* Inline modelize_property#MClassDef#mprop2npropdef (var_mclassdef) on <var_mclassdef:MClassDef> */
2660 var113 = var_mclassdef->attrs[COLOR_nitc__modelize_property__MClassDef___mprop2npropdef].val; /* _mprop2npropdef on <var_mclassdef:MClassDef> */
2661 if (unlikely(var113 == NULL)) {
2662 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mprop2npropdef");
2663 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 506);
2664 fatal_exit(1);
2665 }
2666 var111 = var113;
2667 RET_LABEL112:(void)0;
2668 }
2669 }
2670 {
2671 ((void(*)(val* self, val* p0, val* p1))((((long)var111&3)?class_info[((long)var111&3)]:var111->class)->vft[COLOR_core__abstract_collection__Map___91d_93d_61d]))(var111, var_mprop, self); /* []= on <var111:Map[MProperty, APropdef]>*/
2672 }
2673 {
2674 { /* Inline modelize_property#ModelBuilder#mpropdef2npropdef (var_modelbuilder) on <var_modelbuilder:ModelBuilder> */
2675 var116 = var_modelbuilder->attrs[COLOR_nitc__modelize_property__ModelBuilder___mpropdef2npropdef].val; /* _mpropdef2npropdef on <var_modelbuilder:ModelBuilder> */
2676 if (unlikely(var116 == NULL)) {
2677 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef2npropdef");
2678 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 40);
2679 fatal_exit(1);
2680 }
2681 var114 = var116;
2682 RET_LABEL115:(void)0;
2683 }
2684 }
2685 {
2686 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var114, var_mpropdef, self); /* Direct call hash_collection#HashMap#[]= on <var114:HashMap[MPropDef, APropdef]>*/
2687 }
2688 {
2689 nitc__modelize_property___APropdef___set_doc(self, var_mpropdef, var_modelbuilder); /* Direct call modelize_property#APropdef#set_doc on <self:ATypePropdef>*/
2690 }
2691 if (likely(varonce117!=NULL)) {
2692 var118 = varonce117;
2693 } else {
2694 var119 = "fixed";
2695 var120 = core__flat___NativeString___to_s_full(var119, 5l, 5l);
2696 var118 = var120;
2697 varonce117 = var118;
2698 }
2699 {
2700 var121 = nitc__annotation___Prod___get_single_annotation(self, var118, var_modelbuilder);
2701 }
2702 var_atfixed = var121;
2703 if (var_atfixed == NULL) {
2704 var122 = 0; /* is null */
2705 } else {
2706 var122 = 1; /* arg is null and recv is not */
2707 }
2708 if (0) {
2709 { /* Inline kernel#Object#!= (var_atfixed,((val*)NULL)) on <var_atfixed:nullable AAnnotation> */
2710 var_other125 = ((val*)NULL);
2711 {
2712 var126 = ((short int(*)(val* self, val* p0))(var_atfixed->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_atfixed, var_other125); /* == on <var_atfixed:nullable AAnnotation(AAnnotation)>*/
2713 }
2714 var127 = !var126;
2715 var123 = var127;
2716 goto RET_LABEL124;
2717 RET_LABEL124:(void)0;
2718 }
2719 var122 = var123;
2720 }
2721 if (var122){
2722 {
2723 { /* Inline model#MVirtualTypeDef#is_fixed= (var_mpropdef,1) on <var_mpropdef:MVirtualTypeDef> */
2724 var_mpropdef->attrs[COLOR_nitc__model__MVirtualTypeDef___is_fixed].s = 1; /* _is_fixed on <var_mpropdef:MVirtualTypeDef> */
2725 RET_LABEL128:(void)0;
2726 }
2727 }
2728 } else {
2729 }
2730 RET_LABEL:;
2731 }
2732 /* method modelize_property#ATypePropdef#build_signature for (self: ATypePropdef, ModelBuilder) */
2733 void nitc__modelize_property___ATypePropdef___APropdef__build_signature(val* self, val* p0) {
2734 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
2735 val* var /* : nullable MPropDef */;
2736 val* var2 /* : nullable MPropDef */;
2737 val* var_mpropdef /* var mpropdef: nullable MVirtualTypeDef */;
2738 short int var3 /* : Bool */;
2739 short int var4 /* : Bool */;
2740 val* var_other /* var other: nullable Object */;
2741 short int var6 /* : Bool */;
2742 short int var8 /* : Bool */;
2743 val* var9 /* : MClassDef */;
2744 val* var11 /* : MClassDef */;
2745 val* var_mclassdef /* var mclassdef: MClassDef */;
2746 val* var12 /* : MModule */;
2747 val* var14 /* : MModule */;
2748 val* var_mmodule /* var mmodule: MModule */;
2749 val* var_mtype /* var mtype: nullable MType */;
2750 val* var15 /* : AType */;
2751 val* var17 /* : AType */;
2752 val* var_ntype /* var ntype: AType */;
2753 val* var18 /* : nullable MType */;
2754 short int var19 /* : Bool */;
2755 short int var20 /* : Bool */;
2756 short int var22 /* : Bool */;
2757 short int var24 /* : Bool */;
2758 var_modelbuilder = p0;
2759 {
2760 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:ATypePropdef> */
2761 var2 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:ATypePropdef> */
2762 var = var2;
2763 RET_LABEL1:(void)0;
2764 }
2765 }
2766 var_mpropdef = var;
2767 if (var_mpropdef == NULL) {
2768 var3 = 1; /* is null */
2769 } else {
2770 var3 = 0; /* arg is null but recv is not */
2771 }
2772 if (0) {
2773 { /* Inline kernel#Object#== (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MVirtualTypeDef> */
2774 var_other = ((val*)NULL);
2775 {
2776 { /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other) on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
2777 var8 = var_mpropdef == var_other;
2778 var6 = var8;
2779 goto RET_LABEL7;
2780 RET_LABEL7:(void)0;
2781 }
2782 }
2783 var4 = var6;
2784 goto RET_LABEL5;
2785 RET_LABEL5:(void)0;
2786 }
2787 var3 = var4;
2788 }
2789 if (var3){
2790 goto RET_LABEL;
2791 } else {
2792 }
2793 {
2794 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
2795 var11 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
2796 if (unlikely(var11 == NULL)) {
2797 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
2798 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
2799 fatal_exit(1);
2800 }
2801 var9 = var11;
2802 RET_LABEL10:(void)0;
2803 }
2804 }
2805 var_mclassdef = var9;
2806 {
2807 { /* Inline model#MClassDef#mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
2808 var14 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
2809 if (unlikely(var14 == NULL)) {
2810 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2811 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
2812 fatal_exit(1);
2813 }
2814 var12 = var14;
2815 RET_LABEL13:(void)0;
2816 }
2817 }
2818 var_mmodule = var12;
2819 var_mtype = ((val*)NULL);
2820 {
2821 { /* Inline parser_nodes#ATypePropdef#n_type (self) on <self:ATypePropdef> */
2822 var17 = self->attrs[COLOR_nitc__parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
2823 if (unlikely(var17 == NULL)) {
2824 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
2825 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1496);
2826 fatal_exit(1);
2827 }
2828 var15 = var17;
2829 RET_LABEL16:(void)0;
2830 }
2831 }
2832 var_ntype = var15;
2833 {
2834 var18 = nitc___nitc__ModelBuilder___resolve_mtype_unchecked(var_modelbuilder, var_mmodule, var_mclassdef, var_ntype, 1);
2835 }
2836 var_mtype = var18;
2837 if (var_mtype == NULL) {
2838 var19 = 1; /* is null */
2839 } else {
2840 var19 = 0; /* arg is null but recv is not */
2841 }
2842 if (0) {
2843 { /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
2844 var_other = ((val*)NULL);
2845 {
2846 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
2847 var24 = var_mtype == var_other;
2848 var22 = var24;
2849 goto RET_LABEL23;
2850 RET_LABEL23:(void)0;
2851 }
2852 }
2853 var20 = var22;
2854 goto RET_LABEL21;
2855 RET_LABEL21:(void)0;
2856 }
2857 var19 = var20;
2858 }
2859 if (var19){
2860 goto RET_LABEL;
2861 } else {
2862 }
2863 {
2864 { /* Inline model#MVirtualTypeDef#bound= (var_mpropdef,var_mtype) on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
2865 var_mpropdef->attrs[COLOR_nitc__model__MVirtualTypeDef___bound].val = var_mtype; /* _bound on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
2866 RET_LABEL25:(void)0;
2867 }
2868 }
2869 RET_LABEL:;
2870 }
2871 /* method modelize_property#ATypePropdef#check_signature for (self: ATypePropdef, ModelBuilder) */
2872 void nitc__modelize_property___ATypePropdef___APropdef__check_signature(val* self, val* p0) {
2873 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
2874 val* var /* : nullable MPropDef */;
2875 val* var2 /* : nullable MPropDef */;
2876 val* var_mpropdef /* var mpropdef: nullable MVirtualTypeDef */;
2877 short int var3 /* : Bool */;
2878 short int var4 /* : Bool */;
2879 val* var_other /* var other: nullable Object */;
2880 short int var6 /* : Bool */;
2881 short int var8 /* : Bool */;
2882 val* var9 /* : nullable MType */;
2883 val* var11 /* : nullable MType */;
2884 val* var_bound /* var bound: nullable MType */;
2885 short int var12 /* : Bool */;
2886 short int var13 /* : Bool */;
2887 short int var15 /* : Bool */;
2888 short int var17 /* : Bool */;
2889 val* var18 /* : AType */;
2890 val* var20 /* : AType */;
2891 val* var21 /* : MClassDef */;
2892 val* var23 /* : MClassDef */;
2893 val* var_mclassdef /* var mclassdef: MClassDef */;
2894 val* var24 /* : MModule */;
2895 val* var26 /* : MModule */;
2896 val* var_mmodule /* var mmodule: MModule */;
2897 val* var27 /* : MClassType */;
2898 val* var29 /* : MClassType */;
2899 val* var_anchor /* var anchor: MClassType */;
2900 val* var30 /* : AType */;
2901 val* var32 /* : AType */;
2902 val* var_ntype /* var ntype: AType */;
2903 val* var33 /* : nullable MType */;
2904 short int var34 /* : Bool */;
2905 short int var35 /* : Bool */;
2906 short int var37 /* : Bool */;
2907 short int var39 /* : Bool */;
2908 val* var41 /* : MProperty */;
2909 val* var43 /* : MProperty */;
2910 val* var44 /* : Array[MPropDef] */;
2911 val* var_ /* var : Array[MVirtualTypeDef] */;
2912 val* var45 /* : IndexedIterator[nullable Object] */;
2913 val* var_46 /* var : IndexedIterator[MVirtualTypeDef] */;
2914 short int var47 /* : Bool */;
2915 val* var48 /* : nullable Object */;
2916 val* var_p /* var p: MVirtualTypeDef */;
2917 val* var49 /* : nullable MType */;
2918 val* var51 /* : nullable MType */;
2919 val* var_supbound /* var supbound: nullable MType */;
2920 short int var52 /* : Bool */;
2921 short int var53 /* : Bool */;
2922 short int var54 /* : Bool */;
2923 short int var55 /* : Bool */;
2924 short int var57 /* : Bool */;
2925 short int var59 /* : Bool */;
2926 short int var_60 /* var : Bool */;
2927 short int var61 /* : Bool */;
2928 int cltype;
2929 int idtype;
2930 short int var_62 /* var : Bool */;
2931 short int var63 /* : Bool */;
2932 short int var65 /* : Bool */;
2933 short int var66 /* : Bool */;
2934 short int var68 /* : Bool */;
2935 val* var69 /* : NativeArray[String] */;
2936 static val* varonce;
2937 static val* varonce70;
2938 val* var71 /* : String */;
2939 char* var72 /* : NativeString */;
2940 val* var73 /* : String */;
2941 static val* varonce74;
2942 val* var75 /* : String */;
2943 char* var76 /* : NativeString */;
2944 val* var77 /* : String */;
2945 static val* varonce78;
2946 val* var79 /* : String */;
2947 char* var80 /* : NativeString */;
2948 val* var81 /* : String */;
2949 val* var82 /* : MProperty */;
2950 val* var84 /* : MProperty */;
2951 val* var85 /* : String */;
2952 val* var86 /* : MClassDef */;
2953 val* var88 /* : MClassDef */;
2954 val* var89 /* : MClass */;
2955 val* var91 /* : MClass */;
2956 val* var92 /* : String */;
2957 val* var93 /* : String */;
2958 val* var94 /* : MClassDef */;
2959 val* var96 /* : MClassDef */;
2960 val* var97 /* : MClass */;
2961 val* var99 /* : MClass */;
2962 val* var100 /* : MClass */;
2963 val* var102 /* : MClass */;
2964 short int var103 /* : Bool */;
2965 short int var105 /* : Bool */;
2966 short int var107 /* : Bool */;
2967 val* var108 /* : AType */;
2968 val* var110 /* : AType */;
2969 static val* varonce111;
2970 val* var112 /* : String */;
2971 char* var113 /* : NativeString */;
2972 val* var114 /* : String */;
2973 static val* varonce115;
2974 val* var116 /* : String */;
2975 char* var117 /* : NativeString */;
2976 val* var118 /* : String */;
2977 val* var119 /* : AType */;
2978 val* var121 /* : AType */;
2979 short int var122 /* : Bool */;
2980 short int var123 /* : Bool */;
2981 val* var124 /* : AType */;
2982 val* var126 /* : AType */;
2983 val* var128 /* : NativeArray[String] */;
2984 static val* varonce127;
2985 static val* varonce129;
2986 val* var130 /* : String */;
2987 char* var131 /* : NativeString */;
2988 val* var132 /* : String */;
2989 static val* varonce133;
2990 val* var134 /* : String */;
2991 char* var135 /* : NativeString */;
2992 val* var136 /* : String */;
2993 static val* varonce137;
2994 val* var138 /* : String */;
2995 char* var139 /* : NativeString */;
2996 val* var140 /* : String */;
2997 val* var141 /* : String */;
2998 val* var142 /* : String */;
2999 val* var143 /* : String */;
3000 var_modelbuilder = p0;
3001 {
3002 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:ATypePropdef> */
3003 var2 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:ATypePropdef> */
3004 var = var2;
3005 RET_LABEL1:(void)0;
3006 }
3007 }
3008 var_mpropdef = var;
3009 if (var_mpropdef == NULL) {
3010 var3 = 1; /* is null */
3011 } else {
3012 var3 = 0; /* arg is null but recv is not */
3013 }
3014 if (0) {
3015 { /* Inline kernel#Object#== (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MVirtualTypeDef> */
3016 var_other = ((val*)NULL);
3017 {
3018 { /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other) on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3019 var8 = var_mpropdef == var_other;
3020 var6 = var8;
3021 goto RET_LABEL7;
3022 RET_LABEL7:(void)0;
3023 }
3024 }
3025 var4 = var6;
3026 goto RET_LABEL5;
3027 RET_LABEL5:(void)0;
3028 }
3029 var3 = var4;
3030 }
3031 if (var3){
3032 goto RET_LABEL;
3033 } else {
3034 }
3035 {
3036 { /* Inline model#MVirtualTypeDef#bound (var_mpropdef) on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3037 var11 = var_mpropdef->attrs[COLOR_nitc__model__MVirtualTypeDef___bound].val; /* _bound on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3038 var9 = var11;
3039 RET_LABEL10:(void)0;
3040 }
3041 }
3042 var_bound = var9;
3043 if (var_bound == NULL) {
3044 var12 = 1; /* is null */
3045 } else {
3046 var12 = 0; /* arg is null but recv is not */
3047 }
3048 if (0) {
3049 { /* Inline kernel#Object#== (var_bound,((val*)NULL)) on <var_bound:nullable MType> */
3050 var_other = ((val*)NULL);
3051 {
3052 { /* Inline kernel#Object#is_same_instance (var_bound,var_other) on <var_bound:nullable MType(MType)> */
3053 var17 = var_bound == var_other;
3054 var15 = var17;
3055 goto RET_LABEL16;
3056 RET_LABEL16:(void)0;
3057 }
3058 }
3059 var13 = var15;
3060 goto RET_LABEL14;
3061 RET_LABEL14:(void)0;
3062 }
3063 var12 = var13;
3064 }
3065 if (var12){
3066 goto RET_LABEL;
3067 } else {
3068 }
3069 {
3070 { /* Inline parser_nodes#ATypePropdef#n_type (self) on <self:ATypePropdef> */
3071 var20 = self->attrs[COLOR_nitc__parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
3072 if (unlikely(var20 == NULL)) {
3073 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
3074 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1496);
3075 fatal_exit(1);
3076 }
3077 var18 = var20;
3078 RET_LABEL19:(void)0;
3079 }
3080 }
3081 {
3082 nitc__modelize_property___ModelBuilder___check_visibility(var_modelbuilder, var18, var_bound, var_mpropdef); /* Direct call modelize_property#ModelBuilder#check_visibility on <var_modelbuilder:ModelBuilder>*/
3083 }
3084 {
3085 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3086 var23 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3087 if (unlikely(var23 == NULL)) {
3088 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
3089 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
3090 fatal_exit(1);
3091 }
3092 var21 = var23;
3093 RET_LABEL22:(void)0;
3094 }
3095 }
3096 var_mclassdef = var21;
3097 {
3098 { /* Inline model#MClassDef#mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
3099 var26 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
3100 if (unlikely(var26 == NULL)) {
3101 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3102 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
3103 fatal_exit(1);
3104 }
3105 var24 = var26;
3106 RET_LABEL25:(void)0;
3107 }
3108 }
3109 var_mmodule = var24;
3110 {
3111 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
3112 var29 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
3113 if (unlikely(var29 == NULL)) {
3114 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3115 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 579);
3116 fatal_exit(1);
3117 }
3118 var27 = var29;
3119 RET_LABEL28:(void)0;
3120 }
3121 }
3122 var_anchor = var27;
3123 {
3124 { /* Inline parser_nodes#ATypePropdef#n_type (self) on <self:ATypePropdef> */
3125 var32 = self->attrs[COLOR_nitc__parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
3126 if (unlikely(var32 == NULL)) {
3127 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
3128 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1496);
3129 fatal_exit(1);
3130 }
3131 var30 = var32;
3132 RET_LABEL31:(void)0;
3133 }
3134 }
3135 var_ntype = var30;
3136 {
3137 var33 = nitc___nitc__ModelBuilder___resolve_mtype(var_modelbuilder, var_mmodule, var_mclassdef, var_ntype);
3138 }
3139 if (var33 == NULL) {
3140 var34 = 1; /* is null */
3141 } else {
3142 var34 = 0; /* arg is null but recv is not */
3143 }
3144 if (0) {
3145 { /* Inline kernel#Object#== (var33,((val*)NULL)) on <var33:nullable MType> */
3146 var_other = ((val*)NULL);
3147 {
3148 { /* Inline kernel#Object#is_same_instance (var33,var_other) on <var33:nullable MType(MType)> */
3149 var39 = var33 == var_other;
3150 var37 = var39;
3151 goto RET_LABEL38;
3152 RET_LABEL38:(void)0;
3153 }
3154 }
3155 var35 = var37;
3156 goto RET_LABEL36;
3157 RET_LABEL36:(void)0;
3158 }
3159 var34 = var35;
3160 }
3161 if (var34){
3162 {
3163 { /* Inline model#MVirtualTypeDef#bound= (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3164 var_mpropdef->attrs[COLOR_nitc__model__MVirtualTypeDef___bound].val = ((val*)NULL); /* _bound on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3165 RET_LABEL40:(void)0;
3166 }
3167 }
3168 goto RET_LABEL;
3169 } else {
3170 }
3171 {
3172 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3173 var43 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3174 if (unlikely(var43 == NULL)) {
3175 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3176 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
3177 fatal_exit(1);
3178 }
3179 var41 = var43;
3180 RET_LABEL42:(void)0;
3181 }
3182 }
3183 {
3184 var44 = nitc___nitc__MProperty___lookup_super_definitions(var41, var_mmodule, var_anchor);
3185 }
3186 var_ = var44;
3187 {
3188 var45 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
3189 }
3190 var_46 = var45;
3191 for(;;) {
3192 {
3193 var47 = ((short int(*)(val* self))((((long)var_46&3)?class_info[((long)var_46&3)]:var_46->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_46); /* is_ok on <var_46:IndexedIterator[MVirtualTypeDef]>*/
3194 }
3195 if (var47){
3196 } else {
3197 goto BREAK_label;
3198 }
3199 {
3200 var48 = ((val*(*)(val* self))((((long)var_46&3)?class_info[((long)var_46&3)]:var_46->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_46); /* item on <var_46:IndexedIterator[MVirtualTypeDef]>*/
3201 }
3202 var_p = var48;
3203 {
3204 { /* Inline model#MVirtualTypeDef#bound (var_p) on <var_p:MVirtualTypeDef> */
3205 var51 = var_p->attrs[COLOR_nitc__model__MVirtualTypeDef___bound].val; /* _bound on <var_p:MVirtualTypeDef> */
3206 var49 = var51;
3207 RET_LABEL50:(void)0;
3208 }
3209 }
3210 var_supbound = var49;
3211 if (var_supbound == NULL) {
3212 var54 = 1; /* is null */
3213 } else {
3214 var54 = 0; /* arg is null but recv is not */
3215 }
3216 if (0) {
3217 { /* Inline kernel#Object#== (var_supbound,((val*)NULL)) on <var_supbound:nullable MType> */
3218 var_other = ((val*)NULL);
3219 {
3220 { /* Inline kernel#Object#is_same_instance (var_supbound,var_other) on <var_supbound:nullable MType(MType)> */
3221 var59 = var_supbound == var_other;
3222 var57 = var59;
3223 goto RET_LABEL58;
3224 RET_LABEL58:(void)0;
3225 }
3226 }
3227 var55 = var57;
3228 goto RET_LABEL56;
3229 RET_LABEL56:(void)0;
3230 }
3231 var54 = var55;
3232 }
3233 var_60 = var54;
3234 if (var54){
3235 var53 = var_60;
3236 } else {
3237 /* <var_supbound:nullable MType(MType)> isa MBottomType */
3238 cltype = type_nitc__MBottomType.color;
3239 idtype = type_nitc__MBottomType.id;
3240 if(cltype >= var_supbound->type->table_size) {
3241 var61 = 0;
3242 } else {
3243 var61 = var_supbound->type->type_table[cltype] == idtype;
3244 }
3245 var53 = var61;
3246 }
3247 var_62 = var53;
3248 if (var53){
3249 var52 = var_62;
3250 } else {
3251 {
3252 { /* Inline model_base#MEntity#is_broken (var_p) on <var_p:MVirtualTypeDef> */
3253 var65 = var_p->attrs[COLOR_nitc__model_base__MEntity___is_broken].s; /* _is_broken on <var_p:MVirtualTypeDef> */
3254 var63 = var65;
3255 RET_LABEL64:(void)0;
3256 }
3257 }
3258 var52 = var63;
3259 }
3260 if (var52){
3261 goto BREAK_label;
3262 } else {
3263 }
3264 {
3265 { /* Inline model#MVirtualTypeDef#is_fixed (var_p) on <var_p:MVirtualTypeDef> */
3266 var68 = var_p->attrs[COLOR_nitc__model__MVirtualTypeDef___is_fixed].s; /* _is_fixed on <var_p:MVirtualTypeDef> */
3267 var66 = var68;
3268 RET_LABEL67:(void)0;
3269 }
3270 }
3271 if (var66){
3272 if (unlikely(varonce==NULL)) {
3273 var69 = NEW_core__NativeArray(5l, &type_core__NativeArray__core__String);
3274 if (likely(varonce70!=NULL)) {
3275 var71 = varonce70;
3276 } else {
3277 var72 = "Redef Error: virtual type `";
3278 var73 = core__flat___NativeString___to_s_full(var72, 27l, 27l);
3279 var71 = var73;
3280 varonce70 = var71;
3281 }
3282 ((struct instance_core__NativeArray*)var69)->values[0]=var71;
3283 if (likely(varonce74!=NULL)) {
3284 var75 = varonce74;
3285 } else {
3286 var76 = "` is fixed in super-class `";
3287 var77 = core__flat___NativeString___to_s_full(var76, 27l, 27l);
3288 var75 = var77;
3289 varonce74 = var75;
3290 }
3291 ((struct instance_core__NativeArray*)var69)->values[2]=var75;
3292 if (likely(varonce78!=NULL)) {
3293 var79 = varonce78;
3294 } else {
3295 var80 = "`.";
3296 var81 = core__flat___NativeString___to_s_full(var80, 2l, 2l);
3297 var79 = var81;
3298 varonce78 = var79;
3299 }
3300 ((struct instance_core__NativeArray*)var69)->values[4]=var79;
3301 } else {
3302 var69 = varonce;
3303 varonce = NULL;
3304 }
3305 {
3306 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3307 var84 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MVirtualTypeDef(MVirtualTypeDef)> */
3308 if (unlikely(var84 == NULL)) {
3309 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3310 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
3311 fatal_exit(1);
3312 }
3313 var82 = var84;
3314 RET_LABEL83:(void)0;
3315 }
3316 }
3317 {
3318 var85 = ((val*(*)(val* self))(var82->class->vft[COLOR_core__abstract_text__Object__to_s]))(var82); /* to_s on <var82:MProperty(MVirtualTypeProp)>*/
3319 }
3320 ((struct instance_core__NativeArray*)var69)->values[1]=var85;
3321 {
3322 { /* Inline model#MPropDef#mclassdef (var_p) on <var_p:MVirtualTypeDef> */
3323 var88 = var_p->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_p:MVirtualTypeDef> */
3324 if (unlikely(var88 == NULL)) {
3325 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
3326 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
3327 fatal_exit(1);
3328 }
3329 var86 = var88;
3330 RET_LABEL87:(void)0;
3331 }
3332 }
3333 {
3334 { /* Inline model#MClassDef#mclass (var86) on <var86:MClassDef> */
3335 var91 = var86->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var86:MClassDef> */
3336 if (unlikely(var91 == NULL)) {
3337 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3338 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
3339 fatal_exit(1);
3340 }
3341 var89 = var91;
3342 RET_LABEL90:(void)0;
3343 }
3344 }
3345 {
3346 var92 = ((val*(*)(val* self))(var89->class->vft[COLOR_core__abstract_text__Object__to_s]))(var89); /* to_s on <var89:MClass>*/
3347 }
3348 ((struct instance_core__NativeArray*)var69)->values[3]=var92;
3349 {
3350 var93 = ((val*(*)(val* self))(var69->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var69); /* native_to_s on <var69:NativeArray[String]>*/
3351 }
3352 varonce = var69;
3353 {
3354 nitc___nitc__ModelBuilder___error(var_modelbuilder, self, var93); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
3355 }
3356 goto BREAK_label;
3357 } else {
3358 }
3359 {
3360 { /* Inline model#MPropDef#mclassdef (var_p) on <var_p:MVirtualTypeDef> */
3361 var96 = var_p->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_p:MVirtualTypeDef> */
3362 if (unlikely(var96 == NULL)) {
3363 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
3364 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
3365 fatal_exit(1);
3366 }
3367 var94 = var96;
3368 RET_LABEL95:(void)0;
3369 }
3370 }
3371 {
3372 { /* Inline model#MClassDef#mclass (var94) on <var94:MClassDef> */
3373 var99 = var94->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var94:MClassDef> */
3374 if (unlikely(var99 == NULL)) {
3375 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3376 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
3377 fatal_exit(1);
3378 }
3379 var97 = var99;
3380 RET_LABEL98:(void)0;
3381 }
3382 }
3383 {
3384 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
3385 var102 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
3386 if (unlikely(var102 == NULL)) {
3387 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3388 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
3389 fatal_exit(1);
3390 }
3391 var100 = var102;
3392 RET_LABEL101:(void)0;
3393 }
3394 }
3395 {
3396 { /* Inline kernel#Object#== (var97,var100) on <var97:MClass> */
3397 var_other = var100;
3398 {
3399 { /* Inline kernel#Object#is_same_instance (var97,var_other) on <var97:MClass> */
3400 var107 = var97 == var_other;
3401 var105 = var107;
3402 goto RET_LABEL106;
3403 RET_LABEL106:(void)0;
3404 }
3405 }
3406 var103 = var105;
3407 goto RET_LABEL104;
3408 RET_LABEL104:(void)0;
3409 }
3410 }
3411 if (var103){
3412 {
3413 { /* Inline parser_nodes#ATypePropdef#n_type (self) on <self:ATypePropdef> */
3414 var110 = self->attrs[COLOR_nitc__parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
3415 if (unlikely(var110 == NULL)) {
3416 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
3417 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1496);
3418 fatal_exit(1);
3419 }
3420 var108 = var110;
3421 RET_LABEL109:(void)0;
3422 }
3423 }
3424 if (likely(varonce111!=NULL)) {
3425 var112 = varonce111;
3426 } else {
3427 var113 = "refine-type";
3428 var114 = core__flat___NativeString___to_s_full(var113, 11l, 11l);
3429 var112 = var114;
3430 varonce111 = var112;
3431 }
3432 if (likely(varonce115!=NULL)) {
3433 var116 = varonce115;
3434 } else {
3435 var117 = "Redef Error: a virtual type cannot be refined.";
3436 var118 = core__flat___NativeString___to_s_full(var117, 46l, 46l);
3437 var116 = var118;
3438 varonce115 = var116;
3439 }
3440 {
3441 nitc___nitc__ModelBuilder___warning(var_modelbuilder, var108, var112, var116); /* Direct call modelbuilder_base#ModelBuilder#warning on <var_modelbuilder:ModelBuilder>*/
3442 }
3443 goto BREAK_label;
3444 } else {
3445 }
3446 {
3447 { /* Inline parser_nodes#ATypePropdef#n_type (self) on <self:ATypePropdef> */
3448 var121 = self->attrs[COLOR_nitc__parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
3449 if (unlikely(var121 == NULL)) {
3450 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
3451 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1496);
3452 fatal_exit(1);
3453 }
3454 var119 = var121;
3455 RET_LABEL120:(void)0;
3456 }
3457 }
3458 {
3459 var122 = nitc___nitc__ModelBuilder___check_subtype(var_modelbuilder, var119, var_mmodule, var_anchor, var_bound, var_supbound);
3460 }
3461 var123 = !var122;
3462 if (var123){
3463 {
3464 { /* Inline parser_nodes#ATypePropdef#n_type (self) on <self:ATypePropdef> */
3465 var126 = self->attrs[COLOR_nitc__parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
3466 if (unlikely(var126 == NULL)) {
3467 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
3468 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1496);
3469 fatal_exit(1);
3470 }
3471 var124 = var126;
3472 RET_LABEL125:(void)0;
3473 }
3474 }
3475 if (unlikely(varonce127==NULL)) {
3476 var128 = NEW_core__NativeArray(5l, &type_core__NativeArray__core__String);
3477 if (likely(varonce129!=NULL)) {
3478 var130 = varonce129;
3479 } else {
3480 var131 = "Redef Error: expected `";
3481 var132 = core__flat___NativeString___to_s_full(var131, 23l, 23l);
3482 var130 = var132;
3483 varonce129 = var130;
3484 }
3485 ((struct instance_core__NativeArray*)var128)->values[0]=var130;
3486 if (likely(varonce133!=NULL)) {
3487 var134 = varonce133;
3488 } else {
3489 var135 = "` bound type; got `";
3490 var136 = core__flat___NativeString___to_s_full(var135, 19l, 19l);
3491 var134 = var136;
3492 varonce133 = var134;
3493 }
3494 ((struct instance_core__NativeArray*)var128)->values[2]=var134;
3495 if (likely(varonce137!=NULL)) {
3496 var138 = varonce137;
3497 } else {
3498 var139 = "`.";
3499 var140 = core__flat___NativeString___to_s_full(var139, 2l, 2l);
3500 var138 = var140;
3501 varonce137 = var138;
3502 }
3503 ((struct instance_core__NativeArray*)var128)->values[4]=var138;
3504 } else {
3505 var128 = varonce127;
3506 varonce127 = NULL;
3507 }
3508 {
3509 var141 = ((val*(*)(val* self))(var_supbound->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_supbound); /* to_s on <var_supbound:nullable MType(MType)>*/
3510 }
3511 ((struct instance_core__NativeArray*)var128)->values[1]=var141;
3512 {
3513 var142 = ((val*(*)(val* self))(var_bound->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_bound); /* to_s on <var_bound:nullable MType(MType)>*/
3514 }
3515 ((struct instance_core__NativeArray*)var128)->values[3]=var142;
3516 {
3517 var143 = ((val*(*)(val* self))(var128->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var128); /* native_to_s on <var128:NativeArray[String]>*/
3518 }
3519 varonce127 = var128;
3520 {
3521 nitc___nitc__ModelBuilder___error(var_modelbuilder, var124, var143); /* Direct call modelbuilder_base#ModelBuilder#error on <var_modelbuilder:ModelBuilder>*/
3522 }
3523 goto BREAK_label;
3524 } else {
3525 }
3526 {
3527 ((void(*)(val* self))((((long)var_46&3)?class_info[((long)var_46&3)]:var_46->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_46); /* next on <var_46:IndexedIterator[MVirtualTypeDef]>*/
3528 }
3529 }
3530 BREAK_label: (void)0;
3531 {
3532 ((void(*)(val* self))((((long)var_46&3)?class_info[((long)var_46&3)]:var_46->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_46); /* finish on <var_46:IndexedIterator[MVirtualTypeDef]>*/
3533 }
3534 RET_LABEL:;
3535 }