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