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