Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__modelbuilder_base.sep.1.c
1 #include "nitc__modelbuilder_base.sep.0.h"
2 /* method modelbuilder_base$ToolContext$modelbuilder for (self: ToolContext): ModelBuilder */
3 val* nitc__modelbuilder_base___ToolContext___modelbuilder(val* self) {
4 val* var /* : ModelBuilder */;
5 val* var1 /* : nullable ModelBuilder */;
6 val* var3 /* : nullable ModelBuilder */;
7 {
8 { /* Inline modelbuilder_base$ToolContext$modelbuilder_real (self) on <self:ToolContext> */
9 var3 = self->attrs[COLOR_nitc__modelbuilder_base__ToolContext___modelbuilder_real].val; /* _modelbuilder_real on <self:ToolContext> */
10 var1 = var3;
11 RET_LABEL2:(void)0;
12 }
13 }
14 if (unlikely(var1 == NULL)) {
15 if(catchStack.cursor >= 0){
16 longjmp(catchStack.envs[catchStack.cursor], 1);
17 }
18 PRINT_ERROR("Runtime error: %s", "Cast failed");
19 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 36);
20 fatal_exit(1);
21 }
22 var = var1;
23 goto RET_LABEL;
24 RET_LABEL:;
25 return var;
26 }
27 /* method modelbuilder_base$ToolContext$modelbuilder_real for (self: ToolContext): nullable ModelBuilder */
28 val* nitc__modelbuilder_base___ToolContext___modelbuilder_real(val* self) {
29 val* var /* : nullable ModelBuilder */;
30 val* var1 /* : nullable ModelBuilder */;
31 var1 = self->attrs[COLOR_nitc__modelbuilder_base__ToolContext___modelbuilder_real].val; /* _modelbuilder_real on <self:ToolContext> */
32 var = var1;
33 RET_LABEL:;
34 return var;
35 }
36 /* method modelbuilder_base$ToolContext$modelbuilder_real= for (self: ToolContext, nullable ModelBuilder) */
37 void nitc__modelbuilder_base___ToolContext___modelbuilder_real_61d(val* self, val* p0) {
38 self->attrs[COLOR_nitc__modelbuilder_base__ToolContext___modelbuilder_real].val = p0; /* _modelbuilder_real on <self:ToolContext> */
39 RET_LABEL:;
40 }
41 /* method modelbuilder_base$ModelBuilder$model for (self: ModelBuilder): Model */
42 val* nitc___nitc__ModelBuilder___model(val* self) {
43 val* var /* : Model */;
44 val* var1 /* : Model */;
45 var1 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___model].val; /* _model on <self:ModelBuilder> */
46 if (unlikely(var1 == NULL)) {
47 if(catchStack.cursor >= 0){
48 longjmp(catchStack.envs[catchStack.cursor], 1);
49 }
50 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
51 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 44);
52 fatal_exit(1);
53 }
54 var = var1;
55 RET_LABEL:;
56 return var;
57 }
58 /* method modelbuilder_base$ModelBuilder$model= for (self: ModelBuilder, Model) */
59 void nitc___nitc__ModelBuilder___model_61d(val* self, val* p0) {
60 self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___model].val = p0; /* _model on <self:ModelBuilder> */
61 RET_LABEL:;
62 }
63 /* method modelbuilder_base$ModelBuilder$toolcontext for (self: ModelBuilder): ToolContext */
64 val* nitc___nitc__ModelBuilder___toolcontext(val* self) {
65 val* var /* : ToolContext */;
66 val* var1 /* : ToolContext */;
67 var1 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
68 if (unlikely(var1 == NULL)) {
69 if(catchStack.cursor >= 0){
70 longjmp(catchStack.envs[catchStack.cursor], 1);
71 }
72 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
73 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
74 fatal_exit(1);
75 }
76 var = var1;
77 RET_LABEL:;
78 return var;
79 }
80 /* method modelbuilder_base$ModelBuilder$toolcontext= for (self: ModelBuilder, ToolContext) */
81 void nitc___nitc__ModelBuilder___toolcontext_61d(val* self, val* p0) {
82 self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val = p0; /* _toolcontext on <self:ModelBuilder> */
83 RET_LABEL:;
84 }
85 /* method modelbuilder_base$ModelBuilder$init for (self: ModelBuilder) */
86 void nitc___nitc__ModelBuilder___core__kernel__Object__init(val* self) {
87 val* var /* : ToolContext */;
88 val* var2 /* : ToolContext */;
89 val* var3 /* : nullable ModelBuilder */;
90 val* var5 /* : nullable ModelBuilder */;
91 short int var6 /* : Bool */;
92 short int var7 /* : Bool */;
93 val* var_other /* var other: nullable Object */;
94 short int var9 /* : Bool */;
95 short int var11 /* : Bool */;
96 val* var12 /* : ToolContext */;
97 val* var14 /* : ToolContext */;
98 {
99 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__ModelBuilder___core__kernel__Object__init]))(self); /* init on <self:ModelBuilder>*/
100 }
101 {
102 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (self) on <self:ModelBuilder> */
103 var2 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
104 if (unlikely(var2 == NULL)) {
105 if(catchStack.cursor >= 0){
106 longjmp(catchStack.envs[catchStack.cursor], 1);
107 }
108 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
109 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
110 fatal_exit(1);
111 }
112 var = var2;
113 RET_LABEL1:(void)0;
114 }
115 }
116 {
117 { /* Inline modelbuilder_base$ToolContext$modelbuilder_real (var) on <var:ToolContext> */
118 var5 = var->attrs[COLOR_nitc__modelbuilder_base__ToolContext___modelbuilder_real].val; /* _modelbuilder_real on <var:ToolContext> */
119 var3 = var5;
120 RET_LABEL4:(void)0;
121 }
122 }
123 if (var3 == NULL) {
124 var6 = 1; /* is null */
125 } else {
126 var6 = 0; /* arg is null but recv is not */
127 }
128 if (0) {
129 { /* Inline kernel$Object$== (var3,((val*)NULL)) on <var3:nullable ModelBuilder> */
130 var_other = ((val*)NULL);
131 {
132 { /* Inline kernel$Object$is_same_instance (var3,var_other) on <var3:nullable ModelBuilder(ModelBuilder)> */
133 var11 = var3 == var_other;
134 var9 = var11;
135 goto RET_LABEL10;
136 RET_LABEL10:(void)0;
137 }
138 }
139 var7 = var9;
140 goto RET_LABEL8;
141 RET_LABEL8:(void)0;
142 }
143 var6 = var7;
144 }
145 if (unlikely(!var6)) {
146 if(catchStack.cursor >= 0){
147 longjmp(catchStack.envs[catchStack.cursor], 1);
148 }
149 PRINT_ERROR("Runtime error: %s", "Assert failed");
150 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 54);
151 fatal_exit(1);
152 }
153 {
154 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (self) on <self:ModelBuilder> */
155 var14 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
156 if (unlikely(var14 == NULL)) {
157 if(catchStack.cursor >= 0){
158 longjmp(catchStack.envs[catchStack.cursor], 1);
159 }
160 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
161 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
162 fatal_exit(1);
163 }
164 var12 = var14;
165 RET_LABEL13:(void)0;
166 }
167 }
168 {
169 { /* Inline modelbuilder_base$ToolContext$modelbuilder_real= (var12,self) on <var12:ToolContext> */
170 var12->attrs[COLOR_nitc__modelbuilder_base__ToolContext___modelbuilder_real].val = self; /* _modelbuilder_real on <var12:ToolContext> */
171 RET_LABEL15:(void)0;
172 }
173 }
174 RET_LABEL:;
175 }
176 /* method modelbuilder_base$ModelBuilder$try_get_mclass_by_name for (self: ModelBuilder, ANode, MModule, String): nullable MClass */
177 val* nitc___nitc__ModelBuilder___try_get_mclass_by_name(val* self, val* p0, val* p1, val* p2) {
178 val* var /* : nullable MClass */;
179 val* var_anode /* var anode: ANode */;
180 val* var_mmodule /* var mmodule: MModule */;
181 val* var_name /* var name: String */;
182 val* var1 /* : Model */;
183 val* var3 /* : Model */;
184 val* var4 /* : nullable Array[MClass] */;
185 val* var_classes /* var classes: nullable Array[MClass] */;
186 short int var5 /* : Bool */;
187 short int var6 /* : Bool */;
188 val* var_res /* var res: nullable MClass */;
189 val* var_ /* var : Array[MClass] */;
190 val* var7 /* : IndexedIterator[nullable Object] */;
191 val* var_8 /* var : IndexedIterator[MClass] */;
192 short int var9 /* : Bool */;
193 val* var10 /* : nullable Object */;
194 val* var_mclass /* var mclass: MClass */;
195 val* var11 /* : POSetElement[MModule] */;
196 val* var13 /* : POSetElement[MModule] */;
197 val* var14 /* : MModule */;
198 val* var16 /* : MModule */;
199 short int var17 /* : Bool */;
200 short int var18 /* : Bool */;
201 val* var20 /* : MModule */;
202 val* var22 /* : MModule */;
203 val* var23 /* : MVisibility */;
204 val* var25 /* : MVisibility */;
205 short int var26 /* : Bool */;
206 short int var27 /* : Bool */;
207 short int var28 /* : Bool */;
208 short int var29 /* : Bool */;
209 val* var_other /* var other: nullable Object */;
210 short int var31 /* : Bool */;
211 short int var33 /* : Bool */;
212 val* var34 /* : NativeArray[String] */;
213 static val* varonce;
214 static val* varonce35;
215 val* var36 /* : String */;
216 char* var37 /* : CString */;
217 val* var38 /* : String */;
218 val* var39 /* : nullable Int */;
219 val* var40 /* : nullable Int */;
220 val* var41 /* : nullable Bool */;
221 val* var42 /* : nullable Bool */;
222 static val* varonce43;
223 val* var44 /* : String */;
224 char* var45 /* : CString */;
225 val* var46 /* : String */;
226 val* var47 /* : nullable Int */;
227 val* var48 /* : nullable Int */;
228 val* var49 /* : nullable Bool */;
229 val* var50 /* : nullable Bool */;
230 static val* varonce51;
231 val* var52 /* : String */;
232 char* var53 /* : CString */;
233 val* var54 /* : String */;
234 val* var55 /* : nullable Int */;
235 val* var56 /* : nullable Int */;
236 val* var57 /* : nullable Bool */;
237 val* var58 /* : nullable Bool */;
238 static val* varonce59;
239 val* var60 /* : String */;
240 char* var61 /* : CString */;
241 val* var62 /* : String */;
242 val* var63 /* : nullable Int */;
243 val* var64 /* : nullable Int */;
244 val* var65 /* : nullable Bool */;
245 val* var66 /* : nullable Bool */;
246 val* var67 /* : String */;
247 val* var68 /* : String */;
248 val* var69 /* : String */;
249 var_anode = p0;
250 var_mmodule = p1;
251 var_name = p2;
252 {
253 { /* Inline modelbuilder_base$ModelBuilder$model (self) on <self:ModelBuilder> */
254 var3 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___model].val; /* _model on <self:ModelBuilder> */
255 if (unlikely(var3 == NULL)) {
256 if(catchStack.cursor >= 0){
257 longjmp(catchStack.envs[catchStack.cursor], 1);
258 }
259 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
260 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 44);
261 fatal_exit(1);
262 }
263 var1 = var3;
264 RET_LABEL2:(void)0;
265 }
266 }
267 {
268 var4 = nitc__model___Model___get_mclasses_by_name(var1, var_name);
269 }
270 var_classes = var4;
271 if (var_classes == NULL) {
272 var5 = 1; /* is null */
273 } else {
274 var5 = 0; /* arg is null but recv is not */
275 }
276 if (0) {
277 var6 = core___core__Array___core__kernel__Object___61d_61d(var_classes, ((val*)NULL));
278 var5 = var6;
279 }
280 if (var5){
281 var = ((val*)NULL);
282 goto RET_LABEL;
283 } else {
284 }
285 var_res = ((val*)NULL);
286 var_ = var_classes;
287 {
288 var7 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
289 }
290 var_8 = var7;
291 for(;;) {
292 {
293 var9 = ((short int(*)(val* self))((((long)var_8&3)?class_info[((long)var_8&3)]:var_8->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_8); /* is_ok on <var_8:IndexedIterator[MClass]>*/
294 }
295 if (var9){
296 } else {
297 goto BREAK_label;
298 }
299 {
300 var10 = ((val*(*)(val* self))((((long)var_8&3)?class_info[((long)var_8&3)]:var_8->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_8); /* item on <var_8:IndexedIterator[MClass]>*/
301 }
302 var_mclass = var10;
303 {
304 { /* Inline mmodule$MModule$in_importation (var_mmodule) on <var_mmodule:MModule> */
305 var13 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
306 if (unlikely(var13 == NULL)) {
307 if(catchStack.cursor >= 0){
308 longjmp(catchStack.envs[catchStack.cursor], 1);
309 }
310 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
311 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
312 fatal_exit(1);
313 }
314 var11 = var13;
315 RET_LABEL12:(void)0;
316 }
317 }
318 {
319 { /* Inline model$MClass$intro_mmodule (var_mclass) on <var_mclass:MClass> */
320 var16 = var_mclass->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_mclass:MClass> */
321 if (unlikely(var16 == NULL)) {
322 if(catchStack.cursor >= 0){
323 longjmp(catchStack.envs[catchStack.cursor], 1);
324 }
325 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
326 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390);
327 fatal_exit(1);
328 }
329 var14 = var16;
330 RET_LABEL15:(void)0;
331 }
332 }
333 {
334 var17 = poset___poset__POSetElement____60d_61d(var11, var14);
335 }
336 var18 = !var17;
337 if (var18){
338 goto BREAK_label19;
339 } else {
340 }
341 {
342 { /* Inline model$MClass$intro_mmodule (var_mclass) on <var_mclass:MClass> */
343 var22 = var_mclass->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_mclass:MClass> */
344 if (unlikely(var22 == NULL)) {
345 if(catchStack.cursor >= 0){
346 longjmp(catchStack.envs[catchStack.cursor], 1);
347 }
348 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
349 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390);
350 fatal_exit(1);
351 }
352 var20 = var22;
353 RET_LABEL21:(void)0;
354 }
355 }
356 {
357 { /* Inline model$MClass$visibility (var_mclass) on <var_mclass:MClass> */
358 var25 = var_mclass->attrs[COLOR_nitc__model__MClass___visibility].val; /* _visibility on <var_mclass:MClass> */
359 if (unlikely(var25 == NULL)) {
360 if(catchStack.cursor >= 0){
361 longjmp(catchStack.envs[catchStack.cursor], 1);
362 }
363 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
364 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 476);
365 fatal_exit(1);
366 }
367 var23 = var25;
368 RET_LABEL24:(void)0;
369 }
370 }
371 {
372 var26 = nitc___nitc__MModule___is_visible(var_mmodule, var20, var23);
373 }
374 var27 = !var26;
375 if (var27){
376 goto BREAK_label19;
377 } else {
378 }
379 if (var_res == NULL) {
380 var28 = 1; /* is null */
381 } else {
382 var28 = 0; /* arg is null but recv is not */
383 }
384 if (0) {
385 { /* Inline kernel$Object$== (var_res,((val*)NULL)) on <var_res:nullable MClass> */
386 var_other = ((val*)NULL);
387 {
388 { /* Inline kernel$Object$is_same_instance (var_res,var_other) on <var_res:nullable MClass(MClass)> */
389 var33 = var_res == var_other;
390 var31 = var33;
391 goto RET_LABEL32;
392 RET_LABEL32:(void)0;
393 }
394 }
395 var29 = var31;
396 goto RET_LABEL30;
397 RET_LABEL30:(void)0;
398 }
399 var28 = var29;
400 }
401 if (var28){
402 var_res = var_mclass;
403 } else {
404 if (unlikely(varonce==NULL)) {
405 var34 = NEW_core__NativeArray((int)7l, &type_core__NativeArray__core__String);
406 if (likely(varonce35!=NULL)) {
407 var36 = varonce35;
408 } else {
409 var37 = "Error: ambiguous class name `";
410 var39 = (val*)(29l<<2|1);
411 var40 = (val*)(29l<<2|1);
412 var41 = (val*)((long)(0)<<2|3);
413 var42 = (val*)((long)(0)<<2|3);
414 var38 = core__flat___CString___to_s_unsafe(var37, var39, var40, var41, var42);
415 var36 = var38;
416 varonce35 = var36;
417 }
418 ((struct instance_core__NativeArray*)var34)->values[0]=var36;
419 if (likely(varonce43!=NULL)) {
420 var44 = varonce43;
421 } else {
422 var45 = "`; conflict between `";
423 var47 = (val*)(21l<<2|1);
424 var48 = (val*)(21l<<2|1);
425 var49 = (val*)((long)(0)<<2|3);
426 var50 = (val*)((long)(0)<<2|3);
427 var46 = core__flat___CString___to_s_unsafe(var45, var47, var48, var49, var50);
428 var44 = var46;
429 varonce43 = var44;
430 }
431 ((struct instance_core__NativeArray*)var34)->values[2]=var44;
432 if (likely(varonce51!=NULL)) {
433 var52 = varonce51;
434 } else {
435 var53 = "` and `";
436 var55 = (val*)(7l<<2|1);
437 var56 = (val*)(7l<<2|1);
438 var57 = (val*)((long)(0)<<2|3);
439 var58 = (val*)((long)(0)<<2|3);
440 var54 = core__flat___CString___to_s_unsafe(var53, var55, var56, var57, var58);
441 var52 = var54;
442 varonce51 = var52;
443 }
444 ((struct instance_core__NativeArray*)var34)->values[4]=var52;
445 if (likely(varonce59!=NULL)) {
446 var60 = varonce59;
447 } else {
448 var61 = "`.";
449 var63 = (val*)(2l<<2|1);
450 var64 = (val*)(2l<<2|1);
451 var65 = (val*)((long)(0)<<2|3);
452 var66 = (val*)((long)(0)<<2|3);
453 var62 = core__flat___CString___to_s_unsafe(var61, var63, var64, var65, var66);
454 var60 = var62;
455 varonce59 = var60;
456 }
457 ((struct instance_core__NativeArray*)var34)->values[6]=var60;
458 } else {
459 var34 = varonce;
460 varonce = NULL;
461 }
462 ((struct instance_core__NativeArray*)var34)->values[1]=var_name;
463 {
464 var67 = nitc___nitc__MClass___nitc__model_base__MEntity__full_name(var_mclass);
465 }
466 ((struct instance_core__NativeArray*)var34)->values[3]=var67;
467 {
468 var68 = nitc___nitc__MClass___nitc__model_base__MEntity__full_name(var_res);
469 }
470 ((struct instance_core__NativeArray*)var34)->values[5]=var68;
471 {
472 var69 = ((val*(*)(val* self))(var34->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var34); /* native_to_s on <var34:NativeArray[String]>*/
473 }
474 varonce = var34;
475 {
476 nitc___nitc__ModelBuilder___error(self, var_anode, var69); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
477 }
478 var = ((val*)NULL);
479 goto RET_LABEL;
480 }
481 BREAK_label19: (void)0;
482 {
483 ((void(*)(val* self))((((long)var_8&3)?class_info[((long)var_8&3)]:var_8->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_8); /* next on <var_8:IndexedIterator[MClass]>*/
484 }
485 }
486 BREAK_label: (void)0;
487 {
488 ((void(*)(val* self))((((long)var_8&3)?class_info[((long)var_8&3)]:var_8->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_8); /* finish on <var_8:IndexedIterator[MClass]>*/
489 }
490 var = var_res;
491 goto RET_LABEL;
492 RET_LABEL:;
493 return var;
494 }
495 /* method modelbuilder_base$ModelBuilder$try_get_mclass_by_qid for (self: ModelBuilder, AQclassid, MModule): nullable MClass */
496 val* nitc___nitc__ModelBuilder___try_get_mclass_by_qid(val* self, val* p0, val* p1) {
497 val* var /* : nullable MClass */;
498 val* var_qid /* var qid: AQclassid */;
499 val* var_mmodule /* var mmodule: MModule */;
500 val* var1 /* : TClassid */;
501 val* var3 /* : TClassid */;
502 val* var4 /* : String */;
503 val* var_name /* var name: String */;
504 val* var5 /* : Model */;
505 val* var7 /* : Model */;
506 val* var8 /* : nullable Array[MClass] */;
507 val* var_classes /* var classes: nullable Array[MClass] */;
508 short int var9 /* : Bool */;
509 short int var10 /* : Bool */;
510 val* var_res /* var res: nullable MClass */;
511 val* var_ /* var : Array[MClass] */;
512 val* var11 /* : IndexedIterator[nullable Object] */;
513 val* var_12 /* var : IndexedIterator[MClass] */;
514 short int var13 /* : Bool */;
515 val* var14 /* : nullable Object */;
516 val* var_mclass /* var mclass: MClass */;
517 val* var15 /* : POSetElement[MModule] */;
518 val* var17 /* : POSetElement[MModule] */;
519 val* var18 /* : MModule */;
520 val* var20 /* : MModule */;
521 short int var21 /* : Bool */;
522 short int var22 /* : Bool */;
523 val* var24 /* : MModule */;
524 val* var26 /* : MModule */;
525 val* var27 /* : MVisibility */;
526 val* var29 /* : MVisibility */;
527 short int var30 /* : Bool */;
528 short int var31 /* : Bool */;
529 short int var32 /* : Bool */;
530 short int var33 /* : Bool */;
531 short int var34 /* : Bool */;
532 short int var35 /* : Bool */;
533 val* var_other /* var other: nullable Object */;
534 short int var37 /* : Bool */;
535 short int var39 /* : Bool */;
536 var_qid = p0;
537 var_mmodule = p1;
538 {
539 { /* Inline parser_nodes$AQclassid$n_id (var_qid) on <var_qid:AQclassid> */
540 var3 = var_qid->attrs[COLOR_nitc__parser_nodes__AQclassid___n_id].val; /* _n_id on <var_qid:AQclassid> */
541 if (unlikely(var3 == NULL)) {
542 if(catchStack.cursor >= 0){
543 longjmp(catchStack.envs[catchStack.cursor], 1);
544 }
545 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
546 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1733);
547 fatal_exit(1);
548 }
549 var1 = var3;
550 RET_LABEL2:(void)0;
551 }
552 }
553 {
554 var4 = nitc__lexer_work___Token___text(var1);
555 }
556 var_name = var4;
557 {
558 { /* Inline modelbuilder_base$ModelBuilder$model (self) on <self:ModelBuilder> */
559 var7 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___model].val; /* _model on <self:ModelBuilder> */
560 if (unlikely(var7 == NULL)) {
561 if(catchStack.cursor >= 0){
562 longjmp(catchStack.envs[catchStack.cursor], 1);
563 }
564 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
565 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 44);
566 fatal_exit(1);
567 }
568 var5 = var7;
569 RET_LABEL6:(void)0;
570 }
571 }
572 {
573 var8 = nitc__model___Model___get_mclasses_by_name(var5, var_name);
574 }
575 var_classes = var8;
576 if (var_classes == NULL) {
577 var9 = 1; /* is null */
578 } else {
579 var9 = 0; /* arg is null but recv is not */
580 }
581 if (0) {
582 var10 = core___core__Array___core__kernel__Object___61d_61d(var_classes, ((val*)NULL));
583 var9 = var10;
584 }
585 if (var9){
586 var = ((val*)NULL);
587 goto RET_LABEL;
588 } else {
589 }
590 var_res = ((val*)NULL);
591 var_ = var_classes;
592 {
593 var11 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
594 }
595 var_12 = var11;
596 for(;;) {
597 {
598 var13 = ((short int(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_12); /* is_ok on <var_12:IndexedIterator[MClass]>*/
599 }
600 if (var13){
601 } else {
602 goto BREAK_label;
603 }
604 {
605 var14 = ((val*(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_12); /* item on <var_12:IndexedIterator[MClass]>*/
606 }
607 var_mclass = var14;
608 {
609 { /* Inline mmodule$MModule$in_importation (var_mmodule) on <var_mmodule:MModule> */
610 var17 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
611 if (unlikely(var17 == NULL)) {
612 if(catchStack.cursor >= 0){
613 longjmp(catchStack.envs[catchStack.cursor], 1);
614 }
615 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
616 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
617 fatal_exit(1);
618 }
619 var15 = var17;
620 RET_LABEL16:(void)0;
621 }
622 }
623 {
624 { /* Inline model$MClass$intro_mmodule (var_mclass) on <var_mclass:MClass> */
625 var20 = var_mclass->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_mclass:MClass> */
626 if (unlikely(var20 == NULL)) {
627 if(catchStack.cursor >= 0){
628 longjmp(catchStack.envs[catchStack.cursor], 1);
629 }
630 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
631 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390);
632 fatal_exit(1);
633 }
634 var18 = var20;
635 RET_LABEL19:(void)0;
636 }
637 }
638 {
639 var21 = poset___poset__POSetElement____60d_61d(var15, var18);
640 }
641 var22 = !var21;
642 if (var22){
643 goto BREAK_label23;
644 } else {
645 }
646 {
647 { /* Inline model$MClass$intro_mmodule (var_mclass) on <var_mclass:MClass> */
648 var26 = var_mclass->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_mclass:MClass> */
649 if (unlikely(var26 == NULL)) {
650 if(catchStack.cursor >= 0){
651 longjmp(catchStack.envs[catchStack.cursor], 1);
652 }
653 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
654 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390);
655 fatal_exit(1);
656 }
657 var24 = var26;
658 RET_LABEL25:(void)0;
659 }
660 }
661 {
662 { /* Inline model$MClass$visibility (var_mclass) on <var_mclass:MClass> */
663 var29 = var_mclass->attrs[COLOR_nitc__model__MClass___visibility].val; /* _visibility on <var_mclass:MClass> */
664 if (unlikely(var29 == NULL)) {
665 if(catchStack.cursor >= 0){
666 longjmp(catchStack.envs[catchStack.cursor], 1);
667 }
668 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
669 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 476);
670 fatal_exit(1);
671 }
672 var27 = var29;
673 RET_LABEL28:(void)0;
674 }
675 }
676 {
677 var30 = nitc___nitc__MModule___is_visible(var_mmodule, var24, var27);
678 }
679 var31 = !var30;
680 if (var31){
681 goto BREAK_label23;
682 } else {
683 }
684 {
685 var32 = nitc__modelbuilder_base___AQclassid___accept(var_qid, var_mclass);
686 }
687 var33 = !var32;
688 if (var33){
689 goto BREAK_label23;
690 } else {
691 }
692 if (var_res == NULL) {
693 var34 = 1; /* is null */
694 } else {
695 var34 = 0; /* arg is null but recv is not */
696 }
697 if (0) {
698 { /* Inline kernel$Object$== (var_res,((val*)NULL)) on <var_res:nullable MClass> */
699 var_other = ((val*)NULL);
700 {
701 { /* Inline kernel$Object$is_same_instance (var_res,var_other) on <var_res:nullable MClass(MClass)> */
702 var39 = var_res == var_other;
703 var37 = var39;
704 goto RET_LABEL38;
705 RET_LABEL38:(void)0;
706 }
707 }
708 var35 = var37;
709 goto RET_LABEL36;
710 RET_LABEL36:(void)0;
711 }
712 var34 = var35;
713 }
714 if (var34){
715 var_res = var_mclass;
716 } else {
717 var = ((val*)NULL);
718 goto RET_LABEL;
719 }
720 BREAK_label23: (void)0;
721 {
722 ((void(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_12); /* next on <var_12:IndexedIterator[MClass]>*/
723 }
724 }
725 BREAK_label: (void)0;
726 {
727 ((void(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_12); /* finish on <var_12:IndexedIterator[MClass]>*/
728 }
729 var = var_res;
730 goto RET_LABEL;
731 RET_LABEL:;
732 return var;
733 }
734 /* method modelbuilder_base$ModelBuilder$get_mclass_by_name for (self: ModelBuilder, ANode, MModule, String): nullable MClass */
735 val* nitc___nitc__ModelBuilder___get_mclass_by_name(val* self, val* p0, val* p1, val* p2) {
736 val* var /* : nullable MClass */;
737 val* var_node /* var node: ANode */;
738 val* var_mmodule /* var mmodule: MModule */;
739 val* var_name /* var name: String */;
740 val* var1 /* : nullable MClass */;
741 val* var_mclass /* var mclass: nullable MClass */;
742 short int var2 /* : Bool */;
743 short int var3 /* : Bool */;
744 val* var_other /* var other: nullable Object */;
745 short int var5 /* : Bool */;
746 short int var7 /* : Bool */;
747 val* var8 /* : NativeArray[String] */;
748 static val* varonce;
749 static val* varonce9;
750 val* var10 /* : String */;
751 char* var11 /* : CString */;
752 val* var12 /* : String */;
753 val* var13 /* : nullable Int */;
754 val* var14 /* : nullable Int */;
755 val* var15 /* : nullable Bool */;
756 val* var16 /* : nullable Bool */;
757 static val* varonce17;
758 val* var18 /* : String */;
759 char* var19 /* : CString */;
760 val* var20 /* : String */;
761 val* var21 /* : nullable Int */;
762 val* var22 /* : nullable Int */;
763 val* var23 /* : nullable Bool */;
764 val* var24 /* : nullable Bool */;
765 val* var25 /* : String */;
766 var_node = p0;
767 var_mmodule = p1;
768 var_name = p2;
769 {
770 var1 = nitc___nitc__ModelBuilder___try_get_mclass_by_name(self, var_node, var_mmodule, var_name);
771 }
772 var_mclass = var1;
773 if (var_mclass == NULL) {
774 var2 = 1; /* is null */
775 } else {
776 var2 = 0; /* arg is null but recv is not */
777 }
778 if (0) {
779 { /* Inline kernel$Object$== (var_mclass,((val*)NULL)) on <var_mclass:nullable MClass> */
780 var_other = ((val*)NULL);
781 {
782 { /* Inline kernel$Object$is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
783 var7 = var_mclass == var_other;
784 var5 = var7;
785 goto RET_LABEL6;
786 RET_LABEL6:(void)0;
787 }
788 }
789 var3 = var5;
790 goto RET_LABEL4;
791 RET_LABEL4:(void)0;
792 }
793 var2 = var3;
794 }
795 if (var2){
796 if (unlikely(varonce==NULL)) {
797 var8 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
798 if (likely(varonce9!=NULL)) {
799 var10 = varonce9;
800 } else {
801 var11 = "Type Error: missing primitive class `";
802 var13 = (val*)(37l<<2|1);
803 var14 = (val*)(37l<<2|1);
804 var15 = (val*)((long)(0)<<2|3);
805 var16 = (val*)((long)(0)<<2|3);
806 var12 = core__flat___CString___to_s_unsafe(var11, var13, var14, var15, var16);
807 var10 = var12;
808 varonce9 = var10;
809 }
810 ((struct instance_core__NativeArray*)var8)->values[0]=var10;
811 if (likely(varonce17!=NULL)) {
812 var18 = varonce17;
813 } else {
814 var19 = "\'.";
815 var21 = (val*)(2l<<2|1);
816 var22 = (val*)(2l<<2|1);
817 var23 = (val*)((long)(0)<<2|3);
818 var24 = (val*)((long)(0)<<2|3);
819 var20 = core__flat___CString___to_s_unsafe(var19, var21, var22, var23, var24);
820 var18 = var20;
821 varonce17 = var18;
822 }
823 ((struct instance_core__NativeArray*)var8)->values[2]=var18;
824 } else {
825 var8 = varonce;
826 varonce = NULL;
827 }
828 ((struct instance_core__NativeArray*)var8)->values[1]=var_name;
829 {
830 var25 = ((val*(*)(val* self))(var8->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var8); /* native_to_s on <var8:NativeArray[String]>*/
831 }
832 varonce = var8;
833 {
834 nitc___nitc__ModelBuilder___error(self, var_node, var25); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
835 }
836 } else {
837 }
838 var = var_mclass;
839 goto RET_LABEL;
840 RET_LABEL:;
841 return var;
842 }
843 /* method modelbuilder_base$ModelBuilder$try_get_mproperty_by_name2 for (self: ModelBuilder, ANode, MModule, MType, String): nullable MProperty */
844 val* nitc___nitc__ModelBuilder___try_get_mproperty_by_name2(val* self, val* p0, val* p1, val* p2, val* p3) {
845 val* var /* : nullable MProperty */;
846 val* var_anode /* var anode: ANode */;
847 val* var_mmodule /* var mmodule: MModule */;
848 val* var_mtype /* var mtype: MType */;
849 val* var_name /* var name: String */;
850 val* var1 /* : Model */;
851 val* var3 /* : Model */;
852 val* var4 /* : nullable Array[MProperty] */;
853 val* var_props /* var props: nullable Array[MProperty] */;
854 short int var5 /* : Bool */;
855 short int var6 /* : Bool */;
856 val* var7 /* : HashMap3[MModule, MType, String, nullable MProperty] */;
857 val* var9 /* : HashMap3[MModule, MType, String, nullable MProperty] */;
858 val* var10 /* : nullable Object */;
859 val* var_cache /* var cache: nullable MProperty */;
860 short int var11 /* : Bool */;
861 short int var12 /* : Bool */;
862 val* var_other /* var other: nullable Object */;
863 short int var14 /* : Bool */;
864 short int var15 /* : Bool */;
865 val* var_res /* var res: nullable MProperty */;
866 val* var_ress /* var ress: nullable Array[MProperty] */;
867 val* var_ /* var : Array[MProperty] */;
868 val* var16 /* : IndexedIterator[nullable Object] */;
869 val* var_17 /* var : IndexedIterator[MProperty] */;
870 short int var18 /* : Bool */;
871 val* var19 /* : nullable Object */;
872 val* var_mprop /* var mprop: MProperty */;
873 short int var20 /* : Bool */;
874 short int var21 /* : Bool */;
875 val* var23 /* : MClassDef */;
876 val* var25 /* : MClassDef */;
877 val* var26 /* : MModule */;
878 val* var28 /* : MModule */;
879 val* var29 /* : MVisibility */;
880 val* var31 /* : MVisibility */;
881 short int var32 /* : Bool */;
882 short int var33 /* : Bool */;
883 short int var34 /* : Bool */;
884 short int var35 /* : Bool */;
885 short int var36 /* : Bool */;
886 int cltype;
887 int idtype;
888 short int var_37 /* var : Bool */;
889 short int var38 /* : Bool */;
890 short int var40 /* : Bool */;
891 short int var_41 /* var : Bool */;
892 short int var42 /* : Bool */;
893 short int var43 /* : Bool */;
894 int cltype44;
895 int idtype45;
896 short int var46 /* : Bool */;
897 short int var_47 /* var : Bool */;
898 val* var48 /* : MClassDef */;
899 val* var50 /* : MClassDef */;
900 val* var51 /* : MClass */;
901 val* var53 /* : MClass */;
902 val* var54 /* : MClass */;
903 val* var56 /* : MClass */;
904 short int var57 /* : Bool */;
905 short int var59 /* : Bool */;
906 short int var60 /* : Bool */;
907 short int var61 /* : Bool */;
908 short int var62 /* : Bool */;
909 val* var_other64 /* var other: nullable Object */;
910 short int var65 /* : Bool */;
911 short int var67 /* : Bool */;
912 short int var68 /* : Bool */;
913 short int var69 /* : Bool */;
914 short int var70 /* : Bool */;
915 short int var71 /* : Bool */;
916 int cltype72;
917 int idtype73;
918 short int var_74 /* var : Bool */;
919 short int var75 /* : Bool */;
920 int cltype76;
921 int idtype77;
922 short int var_78 /* var : Bool */;
923 short int var79 /* : Bool */;
924 short int var81 /* : Bool */;
925 short int var_82 /* var : Bool */;
926 short int var83 /* : Bool */;
927 short int var85 /* : Bool */;
928 val* var86 /* : MClassDef */;
929 val* var88 /* : MClassDef */;
930 val* var89 /* : MClassType */;
931 val* var91 /* : MClassType */;
932 val* var_restype /* var restype: MClassType */;
933 val* var92 /* : MClassDef */;
934 val* var94 /* : MClassDef */;
935 val* var95 /* : MClassType */;
936 val* var97 /* : MClassType */;
937 val* var_mproptype /* var mproptype: MClassType */;
938 short int var98 /* : Bool */;
939 short int var99 /* : Bool */;
940 short int var100 /* : Bool */;
941 val* var101 /* : Array[MProperty] */;
942 short int var102 /* : Bool */;
943 short int var103 /* : Bool */;
944 short int var104 /* : Bool */;
945 short int var105 /* : Bool */;
946 short int var107 /* : Bool */;
947 short int var108 /* : Bool */;
948 short int var_109 /* var : Bool */;
949 short int var110 /* : Bool */;
950 int cltype111;
951 int idtype112;
952 short int var_113 /* var : Bool */;
953 short int var114 /* : Bool */;
954 short int var116 /* : Bool */;
955 val* var117 /* : MClassDef */;
956 val* var119 /* : MClassDef */;
957 val* var120 /* : MClassType */;
958 val* var122 /* : MClassType */;
959 val* var_restype123 /* var restype: MClassType */;
960 val* var124 /* : Array[MProperty] */;
961 val* var_ress2 /* var ress2: Array[MProperty] */;
962 val* var_125 /* var : Array[MProperty] */;
963 val* var126 /* : IndexedIterator[nullable Object] */;
964 val* var_127 /* var : IndexedIterator[MProperty] */;
965 short int var128 /* : Bool */;
966 val* var130 /* : nullable Object */;
967 val* var_mprop131 /* var mprop: MProperty */;
968 val* var132 /* : MClassDef */;
969 val* var134 /* : MClassDef */;
970 val* var135 /* : MClassType */;
971 val* var137 /* : MClassType */;
972 val* var_mproptype138 /* var mproptype: MClassType */;
973 short int var139 /* : Bool */;
974 short int var140 /* : Bool */;
975 short int var141 /* : Bool */;
976 short int var142 /* : Bool */;
977 int cltype143;
978 int idtype144;
979 short int var145 /* : Bool */;
980 short int var_146 /* var : Bool */;
981 short int var147 /* : Bool */;
982 short int var149 /* : Bool */;
983 short int var150 /* : Bool */;
984 short int var151 /* : Bool */;
985 short int var152 /* : Bool */;
986 short int var153 /* : Bool */;
987 short int var155 /* : Bool */;
988 short int var156 /* : Bool */;
989 long var157 /* : Int */;
990 long var159 /* : Int */;
991 short int var160 /* : Bool */;
992 short int var162 /* : Bool */;
993 int cltype163;
994 int idtype164;
995 const char* var_class_name;
996 short int var165 /* : Bool */;
997 val* var166 /* : Array[String] */;
998 val* var_s /* var s: Array[String] */;
999 val* var_167 /* var : Array[MProperty] */;
1000 val* var168 /* : IndexedIterator[nullable Object] */;
1001 val* var_169 /* var : IndexedIterator[MProperty] */;
1002 short int var170 /* : Bool */;
1003 val* var172 /* : nullable Object */;
1004 val* var_mprop173 /* var mprop: MProperty */;
1005 val* var174 /* : String */;
1006 val* var175 /* : NativeArray[String] */;
1007 static val* varonce;
1008 static val* varonce176;
1009 val* var177 /* : String */;
1010 char* var178 /* : CString */;
1011 val* var179 /* : String */;
1012 val* var180 /* : nullable Int */;
1013 val* var181 /* : nullable Int */;
1014 val* var182 /* : nullable Bool */;
1015 val* var183 /* : nullable Bool */;
1016 static val* varonce184;
1017 val* var185 /* : String */;
1018 char* var186 /* : CString */;
1019 val* var187 /* : String */;
1020 val* var188 /* : nullable Int */;
1021 val* var189 /* : nullable Int */;
1022 val* var190 /* : nullable Bool */;
1023 val* var191 /* : nullable Bool */;
1024 static val* varonce192;
1025 val* var193 /* : String */;
1026 char* var194 /* : CString */;
1027 val* var195 /* : String */;
1028 val* var196 /* : nullable Int */;
1029 val* var197 /* : nullable Int */;
1030 val* var198 /* : nullable Bool */;
1031 val* var199 /* : nullable Bool */;
1032 static val* varonce200;
1033 val* var201 /* : String */;
1034 char* var202 /* : CString */;
1035 val* var203 /* : String */;
1036 val* var204 /* : nullable Int */;
1037 val* var205 /* : nullable Int */;
1038 val* var206 /* : nullable Bool */;
1039 val* var207 /* : nullable Bool */;
1040 val* var208 /* : String */;
1041 static val* varonce209;
1042 val* var210 /* : String */;
1043 char* var211 /* : CString */;
1044 val* var212 /* : String */;
1045 val* var213 /* : nullable Int */;
1046 val* var214 /* : nullable Int */;
1047 val* var215 /* : nullable Bool */;
1048 val* var216 /* : nullable Bool */;
1049 val* var217 /* : String */;
1050 val* var218 /* : String */;
1051 val* var219 /* : HashMap3[MModule, MType, String, nullable MProperty] */;
1052 val* var221 /* : HashMap3[MModule, MType, String, nullable MProperty] */;
1053 var_anode = p0;
1054 var_mmodule = p1;
1055 var_mtype = p2;
1056 var_name = p3;
1057 {
1058 { /* Inline modelbuilder_base$ModelBuilder$model (self) on <self:ModelBuilder> */
1059 var3 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___model].val; /* _model on <self:ModelBuilder> */
1060 if (unlikely(var3 == NULL)) {
1061 if(catchStack.cursor >= 0){
1062 longjmp(catchStack.envs[catchStack.cursor], 1);
1063 }
1064 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
1065 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 44);
1066 fatal_exit(1);
1067 }
1068 var1 = var3;
1069 RET_LABEL2:(void)0;
1070 }
1071 }
1072 {
1073 var4 = nitc__model___Model___get_mproperties_by_name(var1, var_name);
1074 }
1075 var_props = var4;
1076 if (var_props == NULL) {
1077 var5 = 1; /* is null */
1078 } else {
1079 var5 = 0; /* arg is null but recv is not */
1080 }
1081 if (0) {
1082 var6 = core___core__Array___core__kernel__Object___61d_61d(var_props, ((val*)NULL));
1083 var5 = var6;
1084 }
1085 if (var5){
1086 var = ((val*)NULL);
1087 goto RET_LABEL;
1088 } else {
1089 }
1090 {
1091 { /* Inline modelbuilder_base$ModelBuilder$try_get_mproperty_by_name2_cache (self) on <self:ModelBuilder> */
1092 var9 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___try_get_mproperty_by_name2_cache].val; /* _try_get_mproperty_by_name2_cache on <self:ModelBuilder> */
1093 if (unlikely(var9 == NULL)) {
1094 if(catchStack.cursor >= 0){
1095 longjmp(catchStack.envs[catchStack.cursor], 1);
1096 }
1097 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_get_mproperty_by_name2_cache");
1098 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 208);
1099 fatal_exit(1);
1100 }
1101 var7 = var9;
1102 RET_LABEL8:(void)0;
1103 }
1104 }
1105 {
1106 var10 = more_collections___more_collections__HashMap3____91d_93d(var7, var_mmodule, var_mtype, var_name);
1107 }
1108 var_cache = var10;
1109 if (var_cache == NULL) {
1110 var11 = 0; /* is null */
1111 } else {
1112 var11 = 1; /* arg is null and recv is not */
1113 }
1114 if (0) {
1115 { /* Inline kernel$Object$!= (var_cache,((val*)NULL)) on <var_cache:nullable MProperty> */
1116 var_other = ((val*)NULL);
1117 {
1118 var14 = ((short int(*)(val* self, val* p0))(var_cache->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_cache, var_other); /* == on <var_cache:nullable MProperty(MProperty)>*/
1119 }
1120 var15 = !var14;
1121 var12 = var15;
1122 goto RET_LABEL13;
1123 RET_LABEL13:(void)0;
1124 }
1125 var11 = var12;
1126 }
1127 if (var11){
1128 var = var_cache;
1129 goto RET_LABEL;
1130 } else {
1131 }
1132 var_res = ((val*)NULL);
1133 var_ress = ((val*)NULL);
1134 var_ = var_props;
1135 {
1136 var16 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
1137 }
1138 var_17 = var16;
1139 for(;;) {
1140 {
1141 var18 = ((short int(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_17); /* is_ok on <var_17:IndexedIterator[MProperty]>*/
1142 }
1143 if (var18){
1144 } else {
1145 goto BREAK_label;
1146 }
1147 {
1148 var19 = ((val*(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_17); /* item on <var_17:IndexedIterator[MProperty]>*/
1149 }
1150 var_mprop = var19;
1151 {
1152 var20 = nitc___nitc__MType___has_mproperty(var_mtype, var_mmodule, var_mprop);
1153 }
1154 var21 = !var20;
1155 if (var21){
1156 goto BREAK_label22;
1157 } else {
1158 }
1159 {
1160 { /* Inline model$MProperty$intro_mclassdef (var_mprop) on <var_mprop:MProperty> */
1161 var25 = var_mprop->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_mprop:MProperty> */
1162 if (unlikely(var25 == NULL)) {
1163 if(catchStack.cursor >= 0){
1164 longjmp(catchStack.envs[catchStack.cursor], 1);
1165 }
1166 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
1167 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2042);
1168 fatal_exit(1);
1169 }
1170 var23 = var25;
1171 RET_LABEL24:(void)0;
1172 }
1173 }
1174 {
1175 { /* Inline model$MClassDef$mmodule (var23) on <var23:MClassDef> */
1176 var28 = var23->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var23:MClassDef> */
1177 if (unlikely(var28 == NULL)) {
1178 if(catchStack.cursor >= 0){
1179 longjmp(catchStack.envs[catchStack.cursor], 1);
1180 }
1181 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1182 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
1183 fatal_exit(1);
1184 }
1185 var26 = var28;
1186 RET_LABEL27:(void)0;
1187 }
1188 }
1189 {
1190 { /* Inline model$MProperty$visibility (var_mprop) on <var_mprop:MProperty> */
1191 var31 = var_mprop->attrs[COLOR_nitc__model__MProperty___visibility].val; /* _visibility on <var_mprop:MProperty> */
1192 if (unlikely(var31 == NULL)) {
1193 if(catchStack.cursor >= 0){
1194 longjmp(catchStack.envs[catchStack.cursor], 1);
1195 }
1196 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
1197 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2078);
1198 fatal_exit(1);
1199 }
1200 var29 = var31;
1201 RET_LABEL30:(void)0;
1202 }
1203 }
1204 {
1205 var32 = nitc___nitc__MModule___is_visible(var_mmodule, var26, var29);
1206 }
1207 var33 = !var32;
1208 if (var33){
1209 goto BREAK_label22;
1210 } else {
1211 }
1212 /* <var_mprop:MProperty> isa MMethod */
1213 cltype = type_nitc__MMethod.color;
1214 idtype = type_nitc__MMethod.id;
1215 if(cltype >= var_mprop->type->table_size) {
1216 var36 = 0;
1217 } else {
1218 var36 = var_mprop->type->type_table[cltype] == idtype;
1219 }
1220 var_37 = var36;
1221 if (var36){
1222 {
1223 { /* Inline model$MMethod$is_new (var_mprop) on <var_mprop:MProperty(MMethod)> */
1224 var40 = var_mprop->attrs[COLOR_nitc__model__MMethod___is_new].s; /* _is_new on <var_mprop:MProperty(MMethod)> */
1225 var38 = var40;
1226 RET_LABEL39:(void)0;
1227 }
1228 }
1229 var35 = var38;
1230 } else {
1231 var35 = var_37;
1232 }
1233 var_41 = var35;
1234 if (var35){
1235 /* <var_mtype:MType> isa MClassType */
1236 cltype44 = type_nitc__MClassType.color;
1237 idtype45 = type_nitc__MClassType.id;
1238 if(cltype44 >= var_mtype->type->table_size) {
1239 var43 = 0;
1240 } else {
1241 var43 = var_mtype->type->type_table[cltype44] == idtype45;
1242 }
1243 var46 = !var43;
1244 var_47 = var46;
1245 if (var46){
1246 var42 = var_47;
1247 } else {
1248 {
1249 { /* Inline model$MProperty$intro_mclassdef (var_mprop) on <var_mprop:MProperty(MMethod)> */
1250 var50 = var_mprop->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_mprop:MProperty(MMethod)> */
1251 if (unlikely(var50 == NULL)) {
1252 if(catchStack.cursor >= 0){
1253 longjmp(catchStack.envs[catchStack.cursor], 1);
1254 }
1255 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
1256 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2042);
1257 fatal_exit(1);
1258 }
1259 var48 = var50;
1260 RET_LABEL49:(void)0;
1261 }
1262 }
1263 {
1264 { /* Inline model$MClassDef$mclass (var48) on <var48:MClassDef> */
1265 var53 = var48->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var48:MClassDef> */
1266 if (unlikely(var53 == NULL)) {
1267 if(catchStack.cursor >= 0){
1268 longjmp(catchStack.envs[catchStack.cursor], 1);
1269 }
1270 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1271 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 591);
1272 fatal_exit(1);
1273 }
1274 var51 = var53;
1275 RET_LABEL52:(void)0;
1276 }
1277 }
1278 {
1279 { /* Inline model$MClassType$mclass (var_mtype) on <var_mtype:MType(MClassType)> */
1280 var56 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:MType(MClassType)> */
1281 if (unlikely(var56 == NULL)) {
1282 if(catchStack.cursor >= 0){
1283 longjmp(catchStack.envs[catchStack.cursor], 1);
1284 }
1285 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1286 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
1287 fatal_exit(1);
1288 }
1289 var54 = var56;
1290 RET_LABEL55:(void)0;
1291 }
1292 }
1293 {
1294 { /* Inline kernel$Object$!= (var51,var54) on <var51:MClass> */
1295 var_other = var54;
1296 {
1297 var59 = ((short int(*)(val* self, val* p0))(var51->class->vft[COLOR_core__kernel__Object___61d_61d]))(var51, var_other); /* == on <var51:MClass>*/
1298 }
1299 var60 = !var59;
1300 var57 = var60;
1301 goto RET_LABEL58;
1302 RET_LABEL58:(void)0;
1303 }
1304 }
1305 var42 = var57;
1306 }
1307 var34 = var42;
1308 } else {
1309 var34 = var_41;
1310 }
1311 if (var34){
1312 goto BREAK_label22;
1313 } else {
1314 }
1315 if (var_res == NULL) {
1316 var61 = 1; /* is null */
1317 } else {
1318 var61 = 0; /* arg is null but recv is not */
1319 }
1320 if (0) {
1321 { /* Inline kernel$Object$== (var_res,((val*)NULL)) on <var_res:nullable MProperty> */
1322 var_other64 = ((val*)NULL);
1323 {
1324 { /* Inline kernel$Object$is_same_instance (var_res,var_other64) on <var_res:nullable MProperty(MProperty)> */
1325 var67 = var_res == var_other64;
1326 var65 = var67;
1327 goto RET_LABEL66;
1328 RET_LABEL66:(void)0;
1329 }
1330 }
1331 var62 = var65;
1332 goto RET_LABEL63;
1333 RET_LABEL63:(void)0;
1334 }
1335 var61 = var62;
1336 }
1337 if (var61){
1338 var_res = var_mprop;
1339 goto BREAK_label22;
1340 } else {
1341 }
1342 /* <var_res:nullable MProperty(MProperty)> isa MMethod */
1343 cltype72 = type_nitc__MMethod.color;
1344 idtype73 = type_nitc__MMethod.id;
1345 if(cltype72 >= var_res->type->table_size) {
1346 var71 = 0;
1347 } else {
1348 var71 = var_res->type->type_table[cltype72] == idtype73;
1349 }
1350 var_74 = var71;
1351 if (var71){
1352 /* <var_mprop:MProperty> isa MMethod */
1353 cltype76 = type_nitc__MMethod.color;
1354 idtype77 = type_nitc__MMethod.id;
1355 if(cltype76 >= var_mprop->type->table_size) {
1356 var75 = 0;
1357 } else {
1358 var75 = var_mprop->type->type_table[cltype76] == idtype77;
1359 }
1360 var70 = var75;
1361 } else {
1362 var70 = var_74;
1363 }
1364 var_78 = var70;
1365 if (var70){
1366 {
1367 { /* Inline model$MMethod$is_init (var_res) on <var_res:nullable MProperty(MMethod)> */
1368 var81 = var_res->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <var_res:nullable MProperty(MMethod)> */
1369 var79 = var81;
1370 RET_LABEL80:(void)0;
1371 }
1372 }
1373 var69 = var79;
1374 } else {
1375 var69 = var_78;
1376 }
1377 var_82 = var69;
1378 if (var69){
1379 {
1380 { /* Inline model$MMethod$is_init (var_mprop) on <var_mprop:MProperty(MMethod)> */
1381 var85 = var_mprop->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <var_mprop:MProperty(MMethod)> */
1382 var83 = var85;
1383 RET_LABEL84:(void)0;
1384 }
1385 }
1386 var68 = var83;
1387 } else {
1388 var68 = var_82;
1389 }
1390 if (var68){
1391 {
1392 { /* Inline model$MProperty$intro_mclassdef (var_res) on <var_res:nullable MProperty(MMethod)> */
1393 var88 = var_res->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_res:nullable MProperty(MMethod)> */
1394 if (unlikely(var88 == NULL)) {
1395 if(catchStack.cursor >= 0){
1396 longjmp(catchStack.envs[catchStack.cursor], 1);
1397 }
1398 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
1399 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2042);
1400 fatal_exit(1);
1401 }
1402 var86 = var88;
1403 RET_LABEL87:(void)0;
1404 }
1405 }
1406 {
1407 { /* Inline model$MClassDef$bound_mtype (var86) on <var86:MClassDef> */
1408 var91 = var86->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var86:MClassDef> */
1409 if (unlikely(var91 == NULL)) {
1410 if(catchStack.cursor >= 0){
1411 longjmp(catchStack.envs[catchStack.cursor], 1);
1412 }
1413 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1414 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
1415 fatal_exit(1);
1416 }
1417 var89 = var91;
1418 RET_LABEL90:(void)0;
1419 }
1420 }
1421 var_restype = var89;
1422 {
1423 { /* Inline model$MProperty$intro_mclassdef (var_mprop) on <var_mprop:MProperty(MMethod)> */
1424 var94 = var_mprop->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_mprop:MProperty(MMethod)> */
1425 if (unlikely(var94 == NULL)) {
1426 if(catchStack.cursor >= 0){
1427 longjmp(catchStack.envs[catchStack.cursor], 1);
1428 }
1429 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
1430 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2042);
1431 fatal_exit(1);
1432 }
1433 var92 = var94;
1434 RET_LABEL93:(void)0;
1435 }
1436 }
1437 {
1438 { /* Inline model$MClassDef$bound_mtype (var92) on <var92:MClassDef> */
1439 var97 = var92->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var92:MClassDef> */
1440 if (unlikely(var97 == NULL)) {
1441 if(catchStack.cursor >= 0){
1442 longjmp(catchStack.envs[catchStack.cursor], 1);
1443 }
1444 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1445 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
1446 fatal_exit(1);
1447 }
1448 var95 = var97;
1449 RET_LABEL96:(void)0;
1450 }
1451 }
1452 var_mproptype = var95;
1453 {
1454 var98 = nitc___nitc__MType___is_subtype(var_mproptype, var_mmodule, ((val*)NULL), var_restype);
1455 }
1456 if (var98){
1457 var_res = var_mprop;
1458 goto BREAK_label22;
1459 } else {
1460 }
1461 } else {
1462 }
1463 if (var_ress == NULL) {
1464 var99 = 1; /* is null */
1465 } else {
1466 var99 = 0; /* arg is null but recv is not */
1467 }
1468 if (0) {
1469 var100 = core___core__Array___core__kernel__Object___61d_61d(var_ress, ((val*)NULL));
1470 var99 = var100;
1471 }
1472 if (var99){
1473 var101 = NEW_core__Array(&type_core__Array__nitc__MProperty);
1474 {
1475 core___core__Array___core__kernel__Object__init(var101); /* Direct call array$Array$init on <var101:Array[MProperty]>*/
1476 }
1477 var_ress = var101;
1478 {
1479 core___core__Array___core__abstract_collection__SimpleCollection__add(var_ress, var_res); /* Direct call array$Array$add on <var_ress:nullable Array[MProperty](Array[MProperty])>*/
1480 }
1481 } else {
1482 }
1483 {
1484 core___core__Array___core__abstract_collection__SimpleCollection__add(var_ress, var_mprop); /* Direct call array$Array$add on <var_ress:nullable Array[MProperty](Array[MProperty])>*/
1485 }
1486 BREAK_label22: (void)0;
1487 {
1488 ((void(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_17); /* next on <var_17:IndexedIterator[MProperty]>*/
1489 }
1490 }
1491 BREAK_label: (void)0;
1492 {
1493 ((void(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_17); /* finish on <var_17:IndexedIterator[MProperty]>*/
1494 }
1495 if (var_ress == NULL) {
1496 var104 = 0; /* is null */
1497 } else {
1498 var104 = 1; /* arg is null and recv is not */
1499 }
1500 if (0) {
1501 { /* Inline kernel$Object$!= (var_ress,((val*)NULL)) on <var_ress:nullable Array[MProperty]> */
1502 var_other = ((val*)NULL);
1503 {
1504 var107 = ((short int(*)(val* self, val* p0))(var_ress->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ress, var_other); /* == on <var_ress:nullable Array[MProperty](Array[MProperty])>*/
1505 }
1506 var108 = !var107;
1507 var105 = var108;
1508 goto RET_LABEL106;
1509 RET_LABEL106:(void)0;
1510 }
1511 var104 = var105;
1512 }
1513 var_109 = var104;
1514 if (var104){
1515 /* <var_res:nullable MProperty> isa MMethod */
1516 cltype111 = type_nitc__MMethod.color;
1517 idtype112 = type_nitc__MMethod.id;
1518 if(var_res == NULL) {
1519 var110 = 0;
1520 } else {
1521 if(cltype111 >= var_res->type->table_size) {
1522 var110 = 0;
1523 } else {
1524 var110 = var_res->type->type_table[cltype111] == idtype112;
1525 }
1526 }
1527 var103 = var110;
1528 } else {
1529 var103 = var_109;
1530 }
1531 var_113 = var103;
1532 if (var103){
1533 {
1534 { /* Inline model$MMethod$is_init (var_res) on <var_res:nullable MProperty(MMethod)> */
1535 var116 = var_res->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <var_res:nullable MProperty(MMethod)> */
1536 var114 = var116;
1537 RET_LABEL115:(void)0;
1538 }
1539 }
1540 var102 = var114;
1541 } else {
1542 var102 = var_113;
1543 }
1544 if (var102){
1545 {
1546 { /* Inline model$MProperty$intro_mclassdef (var_res) on <var_res:nullable MProperty(MMethod)> */
1547 var119 = var_res->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_res:nullable MProperty(MMethod)> */
1548 if (unlikely(var119 == NULL)) {
1549 if(catchStack.cursor >= 0){
1550 longjmp(catchStack.envs[catchStack.cursor], 1);
1551 }
1552 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
1553 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2042);
1554 fatal_exit(1);
1555 }
1556 var117 = var119;
1557 RET_LABEL118:(void)0;
1558 }
1559 }
1560 {
1561 { /* Inline model$MClassDef$bound_mtype (var117) on <var117:MClassDef> */
1562 var122 = var117->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var117:MClassDef> */
1563 if (unlikely(var122 == NULL)) {
1564 if(catchStack.cursor >= 0){
1565 longjmp(catchStack.envs[catchStack.cursor], 1);
1566 }
1567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1568 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
1569 fatal_exit(1);
1570 }
1571 var120 = var122;
1572 RET_LABEL121:(void)0;
1573 }
1574 }
1575 var_restype123 = var120;
1576 var124 = NEW_core__Array(&type_core__Array__nitc__MProperty);
1577 {
1578 core___core__Array___core__kernel__Object__init(var124); /* Direct call array$Array$init on <var124:Array[MProperty]>*/
1579 }
1580 var_ress2 = var124;
1581 var_125 = var_ress;
1582 {
1583 var126 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_125);
1584 }
1585 var_127 = var126;
1586 for(;;) {
1587 {
1588 var128 = ((short int(*)(val* self))((((long)var_127&3)?class_info[((long)var_127&3)]:var_127->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_127); /* is_ok on <var_127:IndexedIterator[MProperty]>*/
1589 }
1590 if (var128){
1591 } else {
1592 goto BREAK_label129;
1593 }
1594 {
1595 var130 = ((val*(*)(val* self))((((long)var_127&3)?class_info[((long)var_127&3)]:var_127->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_127); /* item on <var_127:IndexedIterator[MProperty]>*/
1596 }
1597 var_mprop131 = var130;
1598 {
1599 { /* Inline model$MProperty$intro_mclassdef (var_mprop131) on <var_mprop131:MProperty> */
1600 var134 = var_mprop131->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_mprop131:MProperty> */
1601 if (unlikely(var134 == NULL)) {
1602 if(catchStack.cursor >= 0){
1603 longjmp(catchStack.envs[catchStack.cursor], 1);
1604 }
1605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
1606 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2042);
1607 fatal_exit(1);
1608 }
1609 var132 = var134;
1610 RET_LABEL133:(void)0;
1611 }
1612 }
1613 {
1614 { /* Inline model$MClassDef$bound_mtype (var132) on <var132:MClassDef> */
1615 var137 = var132->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var132:MClassDef> */
1616 if (unlikely(var137 == NULL)) {
1617 if(catchStack.cursor >= 0){
1618 longjmp(catchStack.envs[catchStack.cursor], 1);
1619 }
1620 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1621 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
1622 fatal_exit(1);
1623 }
1624 var135 = var137;
1625 RET_LABEL136:(void)0;
1626 }
1627 }
1628 var_mproptype138 = var135;
1629 {
1630 var139 = nitc___nitc__MType___is_subtype(var_restype123, var_mmodule, ((val*)NULL), var_mproptype138);
1631 }
1632 var140 = !var139;
1633 if (var140){
1634 {
1635 core___core__Array___core__abstract_collection__SimpleCollection__add(var_ress2, var_mprop131); /* Direct call array$Array$add on <var_ress2:Array[MProperty]>*/
1636 }
1637 } else {
1638 /* <var_mprop131:MProperty> isa MMethod */
1639 cltype143 = type_nitc__MMethod.color;
1640 idtype144 = type_nitc__MMethod.id;
1641 if(cltype143 >= var_mprop131->type->table_size) {
1642 var142 = 0;
1643 } else {
1644 var142 = var_mprop131->type->type_table[cltype143] == idtype144;
1645 }
1646 var145 = !var142;
1647 var_146 = var145;
1648 if (var145){
1649 var141 = var_146;
1650 } else {
1651 {
1652 { /* Inline model$MMethod$is_init (var_mprop131) on <var_mprop131:MProperty(MMethod)> */
1653 var149 = var_mprop131->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <var_mprop131:MProperty(MMethod)> */
1654 var147 = var149;
1655 RET_LABEL148:(void)0;
1656 }
1657 }
1658 var150 = !var147;
1659 var141 = var150;
1660 }
1661 if (var141){
1662 {
1663 core___core__Array___core__abstract_collection__SimpleCollection__add(var_ress2, var_mprop131); /* Direct call array$Array$add on <var_ress2:Array[MProperty]>*/
1664 }
1665 } else {
1666 }
1667 }
1668 {
1669 ((void(*)(val* self))((((long)var_127&3)?class_info[((long)var_127&3)]:var_127->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_127); /* next on <var_127:IndexedIterator[MProperty]>*/
1670 }
1671 }
1672 BREAK_label129: (void)0;
1673 {
1674 ((void(*)(val* self))((((long)var_127&3)?class_info[((long)var_127&3)]:var_127->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_127); /* finish on <var_127:IndexedIterator[MProperty]>*/
1675 }
1676 {
1677 var151 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_ress2);
1678 }
1679 if (var151){
1680 var_ress = ((val*)NULL);
1681 } else {
1682 var_ress = var_ress2;
1683 {
1684 core___core__Array___core__abstract_collection__SimpleCollection__add(var_ress, var_res); /* Direct call array$Array$add on <var_ress:nullable Array[MProperty](Array[MProperty])>*/
1685 }
1686 }
1687 } else {
1688 }
1689 if (var_ress == NULL) {
1690 var152 = 0; /* is null */
1691 } else {
1692 var152 = 1; /* arg is null and recv is not */
1693 }
1694 if (0) {
1695 { /* Inline kernel$Object$!= (var_ress,((val*)NULL)) on <var_ress:nullable Array[MProperty]> */
1696 var_other = ((val*)NULL);
1697 {
1698 var155 = ((short int(*)(val* self, val* p0))(var_ress->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ress, var_other); /* == on <var_ress:nullable Array[MProperty](Array[MProperty])>*/
1699 }
1700 var156 = !var155;
1701 var153 = var156;
1702 goto RET_LABEL154;
1703 RET_LABEL154:(void)0;
1704 }
1705 var152 = var153;
1706 }
1707 if (var152){
1708 {
1709 { /* Inline array$AbstractArrayRead$length (var_ress) on <var_ress:nullable Array[MProperty](Array[MProperty])> */
1710 var159 = var_ress->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_ress:nullable Array[MProperty](Array[MProperty])> */
1711 var157 = var159;
1712 RET_LABEL158:(void)0;
1713 }
1714 }
1715 {
1716 { /* Inline kernel$Int$> (var157,1l) on <var157:Int> */
1717 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1718 /* <1l:Int> isa OTHER */
1719 var162 = 1; /* easy <1l:Int> isa OTHER*/
1720 if (unlikely(!var162)) {
1721 var_class_name = type_core__Int.name;
1722 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1723 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
1724 fatal_exit(1);
1725 }
1726 var165 = var157 > 1l;
1727 var160 = var165;
1728 goto RET_LABEL161;
1729 RET_LABEL161:(void)0;
1730 }
1731 }
1732 if (unlikely(!var160)) {
1733 if(catchStack.cursor >= 0){
1734 longjmp(catchStack.envs[catchStack.cursor], 1);
1735 }
1736 PRINT_ERROR("Runtime error: %s", "Assert failed");
1737 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 198);
1738 fatal_exit(1);
1739 }
1740 var166 = NEW_core__Array(&type_core__Array__core__String);
1741 {
1742 core___core__Array___core__kernel__Object__init(var166); /* Direct call array$Array$init on <var166:Array[String]>*/
1743 }
1744 var_s = var166;
1745 var_167 = var_ress;
1746 {
1747 var168 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_167);
1748 }
1749 var_169 = var168;
1750 for(;;) {
1751 {
1752 var170 = ((short int(*)(val* self))((((long)var_169&3)?class_info[((long)var_169&3)]:var_169->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_169); /* is_ok on <var_169:IndexedIterator[MProperty]>*/
1753 }
1754 if (var170){
1755 } else {
1756 goto BREAK_label171;
1757 }
1758 {
1759 var172 = ((val*(*)(val* self))((((long)var_169&3)?class_info[((long)var_169&3)]:var_169->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_169); /* item on <var_169:IndexedIterator[MProperty]>*/
1760 }
1761 var_mprop173 = var172;
1762 {
1763 var174 = nitc___nitc__MProperty___nitc__model_base__MEntity__full_name(var_mprop173);
1764 }
1765 {
1766 core___core__Array___core__abstract_collection__SimpleCollection__add(var_s, var174); /* Direct call array$Array$add on <var_s:Array[String]>*/
1767 }
1768 {
1769 ((void(*)(val* self))((((long)var_169&3)?class_info[((long)var_169&3)]:var_169->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_169); /* next on <var_169:IndexedIterator[MProperty]>*/
1770 }
1771 }
1772 BREAK_label171: (void)0;
1773 {
1774 ((void(*)(val* self))((((long)var_169&3)?class_info[((long)var_169&3)]:var_169->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_169); /* finish on <var_169:IndexedIterator[MProperty]>*/
1775 }
1776 if (unlikely(varonce==NULL)) {
1777 var175 = NEW_core__NativeArray((int)7l, &type_core__NativeArray__core__String);
1778 if (likely(varonce176!=NULL)) {
1779 var177 = varonce176;
1780 } else {
1781 var178 = "Error: ambiguous property name `";
1782 var180 = (val*)(32l<<2|1);
1783 var181 = (val*)(32l<<2|1);
1784 var182 = (val*)((long)(0)<<2|3);
1785 var183 = (val*)((long)(0)<<2|3);
1786 var179 = core__flat___CString___to_s_unsafe(var178, var180, var181, var182, var183);
1787 var177 = var179;
1788 varonce176 = var177;
1789 }
1790 ((struct instance_core__NativeArray*)var175)->values[0]=var177;
1791 if (likely(varonce184!=NULL)) {
1792 var185 = varonce184;
1793 } else {
1794 var186 = "` for `";
1795 var188 = (val*)(7l<<2|1);
1796 var189 = (val*)(7l<<2|1);
1797 var190 = (val*)((long)(0)<<2|3);
1798 var191 = (val*)((long)(0)<<2|3);
1799 var187 = core__flat___CString___to_s_unsafe(var186, var188, var189, var190, var191);
1800 var185 = var187;
1801 varonce184 = var185;
1802 }
1803 ((struct instance_core__NativeArray*)var175)->values[2]=var185;
1804 if (likely(varonce192!=NULL)) {
1805 var193 = varonce192;
1806 } else {
1807 var194 = "`; conflict between ";
1808 var196 = (val*)(20l<<2|1);
1809 var197 = (val*)(20l<<2|1);
1810 var198 = (val*)((long)(0)<<2|3);
1811 var199 = (val*)((long)(0)<<2|3);
1812 var195 = core__flat___CString___to_s_unsafe(var194, var196, var197, var198, var199);
1813 var193 = var195;
1814 varonce192 = var193;
1815 }
1816 ((struct instance_core__NativeArray*)var175)->values[4]=var193;
1817 if (likely(varonce200!=NULL)) {
1818 var201 = varonce200;
1819 } else {
1820 var202 = ".";
1821 var204 = (val*)(1l<<2|1);
1822 var205 = (val*)(1l<<2|1);
1823 var206 = (val*)((long)(0)<<2|3);
1824 var207 = (val*)((long)(0)<<2|3);
1825 var203 = core__flat___CString___to_s_unsafe(var202, var204, var205, var206, var207);
1826 var201 = var203;
1827 varonce200 = var201;
1828 }
1829 ((struct instance_core__NativeArray*)var175)->values[6]=var201;
1830 } else {
1831 var175 = varonce;
1832 varonce = NULL;
1833 }
1834 ((struct instance_core__NativeArray*)var175)->values[1]=var_name;
1835 {
1836 var208 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MType>*/
1837 }
1838 ((struct instance_core__NativeArray*)var175)->values[3]=var208;
1839 if (likely(varonce209!=NULL)) {
1840 var210 = varonce209;
1841 } else {
1842 var211 = " and ";
1843 var213 = (val*)(5l<<2|1);
1844 var214 = (val*)(5l<<2|1);
1845 var215 = (val*)((long)(0)<<2|3);
1846 var216 = (val*)((long)(0)<<2|3);
1847 var212 = core__flat___CString___to_s_unsafe(var211, var213, var214, var215, var216);
1848 var210 = var212;
1849 varonce209 = var210;
1850 }
1851 {
1852 var217 = core__abstract_text___Collection___join(var_s, var210, ((val*)NULL));
1853 }
1854 ((struct instance_core__NativeArray*)var175)->values[5]=var217;
1855 {
1856 var218 = ((val*(*)(val* self))(var175->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var175); /* native_to_s on <var175:NativeArray[String]>*/
1857 }
1858 varonce = var175;
1859 {
1860 nitc___nitc__ModelBuilder___error(self, var_anode, var218); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
1861 }
1862 } else {
1863 }
1864 {
1865 { /* Inline modelbuilder_base$ModelBuilder$try_get_mproperty_by_name2_cache (self) on <self:ModelBuilder> */
1866 var221 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___try_get_mproperty_by_name2_cache].val; /* _try_get_mproperty_by_name2_cache on <self:ModelBuilder> */
1867 if (unlikely(var221 == NULL)) {
1868 if(catchStack.cursor >= 0){
1869 longjmp(catchStack.envs[catchStack.cursor], 1);
1870 }
1871 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_get_mproperty_by_name2_cache");
1872 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 208);
1873 fatal_exit(1);
1874 }
1875 var219 = var221;
1876 RET_LABEL220:(void)0;
1877 }
1878 }
1879 {
1880 more_collections___more_collections__HashMap3____91d_93d_61d(var219, var_mmodule, var_mtype, var_name, var_res); /* Direct call more_collections$HashMap3$[]= on <var219:HashMap3[MModule, MType, String, nullable MProperty]>*/
1881 }
1882 var = var_res;
1883 goto RET_LABEL;
1884 RET_LABEL:;
1885 return var;
1886 }
1887 /* method modelbuilder_base$ModelBuilder$try_get_mproperty_by_name2_cache for (self: ModelBuilder): HashMap3[MModule, MType, String, nullable MProperty] */
1888 val* nitc___nitc__ModelBuilder___try_get_mproperty_by_name2_cache(val* self) {
1889 val* var /* : HashMap3[MModule, MType, String, nullable MProperty] */;
1890 val* var1 /* : HashMap3[MModule, MType, String, nullable MProperty] */;
1891 var1 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___try_get_mproperty_by_name2_cache].val; /* _try_get_mproperty_by_name2_cache on <self:ModelBuilder> */
1892 if (unlikely(var1 == NULL)) {
1893 if(catchStack.cursor >= 0){
1894 longjmp(catchStack.envs[catchStack.cursor], 1);
1895 }
1896 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_get_mproperty_by_name2_cache");
1897 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 208);
1898 fatal_exit(1);
1899 }
1900 var = var1;
1901 RET_LABEL:;
1902 return var;
1903 }
1904 /* method modelbuilder_base$ModelBuilder$try_get_mproperty_by_name for (self: ModelBuilder, ANode, MClassDef, String): nullable MProperty */
1905 val* nitc___nitc__ModelBuilder___try_get_mproperty_by_name(val* self, val* p0, val* p1, val* p2) {
1906 val* var /* : nullable MProperty */;
1907 val* var_anode /* var anode: ANode */;
1908 val* var_mclassdef /* var mclassdef: MClassDef */;
1909 val* var_name /* var name: String */;
1910 val* var1 /* : MModule */;
1911 val* var3 /* : MModule */;
1912 val* var4 /* : MClassType */;
1913 val* var6 /* : MClassType */;
1914 val* var7 /* : nullable MProperty */;
1915 var_anode = p0;
1916 var_mclassdef = p1;
1917 var_name = p2;
1918 {
1919 { /* Inline model$MClassDef$mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
1920 var3 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
1921 if (unlikely(var3 == NULL)) {
1922 if(catchStack.cursor >= 0){
1923 longjmp(catchStack.envs[catchStack.cursor], 1);
1924 }
1925 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1926 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
1927 fatal_exit(1);
1928 }
1929 var1 = var3;
1930 RET_LABEL2:(void)0;
1931 }
1932 }
1933 {
1934 { /* Inline model$MClassDef$bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
1935 var6 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
1936 if (unlikely(var6 == NULL)) {
1937 if(catchStack.cursor >= 0){
1938 longjmp(catchStack.envs[catchStack.cursor], 1);
1939 }
1940 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1941 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
1942 fatal_exit(1);
1943 }
1944 var4 = var6;
1945 RET_LABEL5:(void)0;
1946 }
1947 }
1948 {
1949 var7 = nitc___nitc__ModelBuilder___try_get_mproperty_by_name2(self, var_anode, var1, var4, var_name);
1950 }
1951 var = var7;
1952 goto RET_LABEL;
1953 RET_LABEL:;
1954 return var;
1955 }
1956 /* method modelbuilder_base$ModelBuilder$error for (self: ModelBuilder, nullable ANode, String) */
1957 void nitc___nitc__ModelBuilder___error(val* self, val* p0, val* p1) {
1958 val* var_n /* var n: nullable ANode */;
1959 val* var_text /* var text: String */;
1960 val* var_l /* var l: nullable Object */;
1961 short int var /* : Bool */;
1962 short int var1 /* : Bool */;
1963 val* var_other /* var other: nullable Object */;
1964 short int var3 /* : Bool */;
1965 short int var4 /* : Bool */;
1966 val* var5 /* : Location */;
1967 val* var7 /* : ToolContext */;
1968 val* var9 /* : ToolContext */;
1969 val* var10 /* : Message */;
1970 var_n = p0;
1971 var_text = p1;
1972 var_l = ((val*)NULL);
1973 if (var_n == NULL) {
1974 var = 0; /* is null */
1975 } else {
1976 var = 1; /* arg is null and recv is not */
1977 }
1978 if (0) {
1979 { /* Inline kernel$Object$!= (var_n,((val*)NULL)) on <var_n:nullable ANode> */
1980 var_other = ((val*)NULL);
1981 {
1982 var3 = ((short int(*)(val* self, val* p0))(var_n->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n, var_other); /* == on <var_n:nullable ANode(ANode)>*/
1983 }
1984 var4 = !var3;
1985 var1 = var4;
1986 goto RET_LABEL2;
1987 RET_LABEL2:(void)0;
1988 }
1989 var = var1;
1990 }
1991 if (var){
1992 {
1993 var5 = ((val*(*)(val* self))(var_n->class->vft[COLOR_nitc__parser_nodes__ANode__hot_location]))(var_n); /* hot_location on <var_n:nullable ANode(ANode)>*/
1994 }
1995 var_l = var5;
1996 {
1997 { /* Inline modelbuilder_base$ANode$is_broken= (var_n,1) on <var_n:nullable ANode(ANode)> */
1998 var_n->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s = 1; /* _is_broken on <var_n:nullable ANode(ANode)> */
1999 RET_LABEL6:(void)0;
2000 }
2001 }
2002 } else {
2003 }
2004 {
2005 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (self) on <self:ModelBuilder> */
2006 var9 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
2007 if (unlikely(var9 == NULL)) {
2008 if(catchStack.cursor >= 0){
2009 longjmp(catchStack.envs[catchStack.cursor], 1);
2010 }
2011 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2012 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
2013 fatal_exit(1);
2014 }
2015 var7 = var9;
2016 RET_LABEL8:(void)0;
2017 }
2018 }
2019 {
2020 var10 = nitc___nitc__ToolContext___error(var7, var_l, var_text);
2021 }
2022 RET_LABEL:;
2023 }
2024 /* method modelbuilder_base$ModelBuilder$warning for (self: ModelBuilder, nullable ANode, String, String) */
2025 void nitc___nitc__ModelBuilder___warning(val* self, val* p0, val* p1, val* p2) {
2026 val* var_n /* var n: nullable ANode */;
2027 val* var_tag /* var tag: String */;
2028 val* var_text /* var text: String */;
2029 val* var_l /* var l: nullable Object */;
2030 short int var /* : Bool */;
2031 short int var1 /* : Bool */;
2032 val* var_other /* var other: nullable Object */;
2033 short int var3 /* : Bool */;
2034 short int var4 /* : Bool */;
2035 val* var5 /* : Location */;
2036 val* var6 /* : ToolContext */;
2037 val* var8 /* : ToolContext */;
2038 val* var9 /* : nullable Message */;
2039 var_n = p0;
2040 var_tag = p1;
2041 var_text = p2;
2042 var_l = ((val*)NULL);
2043 if (var_n == NULL) {
2044 var = 0; /* is null */
2045 } else {
2046 var = 1; /* arg is null and recv is not */
2047 }
2048 if (0) {
2049 { /* Inline kernel$Object$!= (var_n,((val*)NULL)) on <var_n:nullable ANode> */
2050 var_other = ((val*)NULL);
2051 {
2052 var3 = ((short int(*)(val* self, val* p0))(var_n->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n, var_other); /* == on <var_n:nullable ANode(ANode)>*/
2053 }
2054 var4 = !var3;
2055 var1 = var4;
2056 goto RET_LABEL2;
2057 RET_LABEL2:(void)0;
2058 }
2059 var = var1;
2060 }
2061 if (var){
2062 {
2063 var5 = ((val*(*)(val* self))(var_n->class->vft[COLOR_nitc__parser_nodes__ANode__hot_location]))(var_n); /* hot_location on <var_n:nullable ANode(ANode)>*/
2064 }
2065 var_l = var5;
2066 } else {
2067 }
2068 {
2069 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (self) on <self:ModelBuilder> */
2070 var8 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
2071 if (unlikely(var8 == NULL)) {
2072 if(catchStack.cursor >= 0){
2073 longjmp(catchStack.envs[catchStack.cursor], 1);
2074 }
2075 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2076 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
2077 fatal_exit(1);
2078 }
2079 var6 = var8;
2080 RET_LABEL7:(void)0;
2081 }
2082 }
2083 {
2084 var9 = nitc___nitc__ToolContext___warning(var6, var_l, var_tag, var_text);
2085 }
2086 RET_LABEL:;
2087 }
2088 /* method modelbuilder_base$ModelBuilder$advice for (self: ModelBuilder, nullable ANode, String, String) */
2089 void nitc___nitc__ModelBuilder___advice(val* self, val* p0, val* p1, val* p2) {
2090 val* var_n /* var n: nullable ANode */;
2091 val* var_tag /* var tag: String */;
2092 val* var_text /* var text: String */;
2093 val* var_l /* var l: nullable Object */;
2094 short int var /* : Bool */;
2095 short int var1 /* : Bool */;
2096 val* var_other /* var other: nullable Object */;
2097 short int var3 /* : Bool */;
2098 short int var4 /* : Bool */;
2099 val* var5 /* : Location */;
2100 val* var6 /* : ToolContext */;
2101 val* var8 /* : ToolContext */;
2102 val* var9 /* : nullable Message */;
2103 var_n = p0;
2104 var_tag = p1;
2105 var_text = p2;
2106 var_l = ((val*)NULL);
2107 if (var_n == NULL) {
2108 var = 0; /* is null */
2109 } else {
2110 var = 1; /* arg is null and recv is not */
2111 }
2112 if (0) {
2113 { /* Inline kernel$Object$!= (var_n,((val*)NULL)) on <var_n:nullable ANode> */
2114 var_other = ((val*)NULL);
2115 {
2116 var3 = ((short int(*)(val* self, val* p0))(var_n->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n, var_other); /* == on <var_n:nullable ANode(ANode)>*/
2117 }
2118 var4 = !var3;
2119 var1 = var4;
2120 goto RET_LABEL2;
2121 RET_LABEL2:(void)0;
2122 }
2123 var = var1;
2124 }
2125 if (var){
2126 {
2127 var5 = ((val*(*)(val* self))(var_n->class->vft[COLOR_nitc__parser_nodes__ANode__hot_location]))(var_n); /* hot_location on <var_n:nullable ANode(ANode)>*/
2128 }
2129 var_l = var5;
2130 } else {
2131 }
2132 {
2133 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (self) on <self:ModelBuilder> */
2134 var8 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
2135 if (unlikely(var8 == NULL)) {
2136 if(catchStack.cursor >= 0){
2137 longjmp(catchStack.envs[catchStack.cursor], 1);
2138 }
2139 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2140 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
2141 fatal_exit(1);
2142 }
2143 var6 = var8;
2144 RET_LABEL7:(void)0;
2145 }
2146 }
2147 {
2148 var9 = nitc___nitc__ToolContext___advice(var6, var_l, var_tag, var_text);
2149 }
2150 RET_LABEL:;
2151 }
2152 /* method modelbuilder_base$ModelBuilder$force_get_primitive_method for (self: ModelBuilder, nullable ANode, String, MClass, MModule): MMethod */
2153 val* nitc___nitc__ModelBuilder___force_get_primitive_method(val* self, val* p0, val* p1, val* p2, val* p3) {
2154 val* var /* : MMethod */;
2155 val* var_n /* var n: nullable ANode */;
2156 val* var_name /* var name: String */;
2157 val* var_recv /* var recv: MClass */;
2158 val* var_mmodule /* var mmodule: MModule */;
2159 val* var1 /* : nullable MMethod */;
2160 val* var_res /* var res: nullable MMethod */;
2161 short int var2 /* : Bool */;
2162 short int var3 /* : Bool */;
2163 val* var_other /* var other: nullable Object */;
2164 short int var5 /* : Bool */;
2165 short int var7 /* : Bool */;
2166 val* var_l /* var l: nullable Object */;
2167 short int var8 /* : Bool */;
2168 short int var9 /* : Bool */;
2169 val* var_other11 /* var other: nullable Object */;
2170 short int var12 /* : Bool */;
2171 short int var13 /* : Bool */;
2172 val* var14 /* : Location */;
2173 val* var15 /* : ToolContext */;
2174 val* var17 /* : ToolContext */;
2175 val* var18 /* : NativeArray[String] */;
2176 static val* varonce;
2177 static val* varonce19;
2178 val* var20 /* : String */;
2179 char* var21 /* : CString */;
2180 val* var22 /* : String */;
2181 val* var23 /* : nullable Int */;
2182 val* var24 /* : nullable Int */;
2183 val* var25 /* : nullable Bool */;
2184 val* var26 /* : nullable Bool */;
2185 static val* varonce27;
2186 val* var28 /* : String */;
2187 char* var29 /* : CString */;
2188 val* var30 /* : String */;
2189 val* var31 /* : nullable Int */;
2190 val* var32 /* : nullable Int */;
2191 val* var33 /* : nullable Bool */;
2192 val* var34 /* : nullable Bool */;
2193 static val* varonce35;
2194 val* var36 /* : String */;
2195 char* var37 /* : CString */;
2196 val* var38 /* : String */;
2197 val* var39 /* : nullable Int */;
2198 val* var40 /* : nullable Int */;
2199 val* var41 /* : nullable Bool */;
2200 val* var42 /* : nullable Bool */;
2201 val* var43 /* : String */;
2202 val* var44 /* : String */;
2203 var_n = p0;
2204 var_name = p1;
2205 var_recv = p2;
2206 var_mmodule = p3;
2207 {
2208 var1 = nitc__model___MModule___try_get_primitive_method(var_mmodule, var_name, var_recv);
2209 }
2210 var_res = var1;
2211 if (var_res == NULL) {
2212 var2 = 1; /* is null */
2213 } else {
2214 var2 = 0; /* arg is null but recv is not */
2215 }
2216 if (0) {
2217 { /* Inline kernel$Object$== (var_res,((val*)NULL)) on <var_res:nullable MMethod> */
2218 var_other = ((val*)NULL);
2219 {
2220 { /* Inline kernel$Object$is_same_instance (var_res,var_other) on <var_res:nullable MMethod(MMethod)> */
2221 var7 = var_res == var_other;
2222 var5 = var7;
2223 goto RET_LABEL6;
2224 RET_LABEL6:(void)0;
2225 }
2226 }
2227 var3 = var5;
2228 goto RET_LABEL4;
2229 RET_LABEL4:(void)0;
2230 }
2231 var2 = var3;
2232 }
2233 if (var2){
2234 var_l = ((val*)NULL);
2235 if (var_n == NULL) {
2236 var8 = 0; /* is null */
2237 } else {
2238 var8 = 1; /* arg is null and recv is not */
2239 }
2240 if (0) {
2241 { /* Inline kernel$Object$!= (var_n,((val*)NULL)) on <var_n:nullable ANode> */
2242 var_other11 = ((val*)NULL);
2243 {
2244 var12 = ((short int(*)(val* self, val* p0))(var_n->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n, var_other11); /* == on <var_n:nullable ANode(ANode)>*/
2245 }
2246 var13 = !var12;
2247 var9 = var13;
2248 goto RET_LABEL10;
2249 RET_LABEL10:(void)0;
2250 }
2251 var8 = var9;
2252 }
2253 if (var8){
2254 {
2255 var14 = ((val*(*)(val* self))(var_n->class->vft[COLOR_nitc__parser_nodes__ANode__hot_location]))(var_n); /* hot_location on <var_n:nullable ANode(ANode)>*/
2256 }
2257 var_l = var14;
2258 } else {
2259 }
2260 {
2261 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (self) on <self:ModelBuilder> */
2262 var17 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
2263 if (unlikely(var17 == NULL)) {
2264 if(catchStack.cursor >= 0){
2265 longjmp(catchStack.envs[catchStack.cursor], 1);
2266 }
2267 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2268 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
2269 fatal_exit(1);
2270 }
2271 var15 = var17;
2272 RET_LABEL16:(void)0;
2273 }
2274 }
2275 if (unlikely(varonce==NULL)) {
2276 var18 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
2277 if (likely(varonce19!=NULL)) {
2278 var20 = varonce19;
2279 } else {
2280 var21 = "Fatal Error: `";
2281 var23 = (val*)(14l<<2|1);
2282 var24 = (val*)(14l<<2|1);
2283 var25 = (val*)((long)(0)<<2|3);
2284 var26 = (val*)((long)(0)<<2|3);
2285 var22 = core__flat___CString___to_s_unsafe(var21, var23, var24, var25, var26);
2286 var20 = var22;
2287 varonce19 = var20;
2288 }
2289 ((struct instance_core__NativeArray*)var18)->values[0]=var20;
2290 if (likely(varonce27!=NULL)) {
2291 var28 = varonce27;
2292 } else {
2293 var29 = "` must have a property named `";
2294 var31 = (val*)(30l<<2|1);
2295 var32 = (val*)(30l<<2|1);
2296 var33 = (val*)((long)(0)<<2|3);
2297 var34 = (val*)((long)(0)<<2|3);
2298 var30 = core__flat___CString___to_s_unsafe(var29, var31, var32, var33, var34);
2299 var28 = var30;
2300 varonce27 = var28;
2301 }
2302 ((struct instance_core__NativeArray*)var18)->values[2]=var28;
2303 if (likely(varonce35!=NULL)) {
2304 var36 = varonce35;
2305 } else {
2306 var37 = "`.";
2307 var39 = (val*)(2l<<2|1);
2308 var40 = (val*)(2l<<2|1);
2309 var41 = (val*)((long)(0)<<2|3);
2310 var42 = (val*)((long)(0)<<2|3);
2311 var38 = core__flat___CString___to_s_unsafe(var37, var39, var40, var41, var42);
2312 var36 = var38;
2313 varonce35 = var36;
2314 }
2315 ((struct instance_core__NativeArray*)var18)->values[4]=var36;
2316 } else {
2317 var18 = varonce;
2318 varonce = NULL;
2319 }
2320 {
2321 var43 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recv); /* to_s on <var_recv:MClass>*/
2322 }
2323 ((struct instance_core__NativeArray*)var18)->values[1]=var43;
2324 ((struct instance_core__NativeArray*)var18)->values[3]=var_name;
2325 {
2326 var44 = ((val*(*)(val* self))(var18->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var18); /* native_to_s on <var18:NativeArray[String]>*/
2327 }
2328 varonce = var18;
2329 {
2330 nitc___nitc__ToolContext___fatal_error(var15, var_l, var44); /* Direct call toolcontext$ToolContext$fatal_error on <var15:ToolContext>*/
2331 }
2332 if(catchStack.cursor >= 0){
2333 longjmp(catchStack.envs[catchStack.cursor], 1);
2334 }
2335 PRINT_ERROR("Runtime error: %s", "Aborted");
2336 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 257);
2337 fatal_exit(1);
2338 } else {
2339 }
2340 var = var_res;
2341 goto RET_LABEL;
2342 RET_LABEL:;
2343 return var;
2344 }
2345 /* method modelbuilder_base$ModelBuilder$resolve_mtype_unchecked for (self: ModelBuilder, MModule, nullable MClassDef, AType, Bool): nullable MType */
2346 val* nitc___nitc__ModelBuilder___resolve_mtype_unchecked(val* self, val* p0, val* p1, val* p2, short int p3) {
2347 val* var /* : nullable MType */;
2348 val* var_mmodule /* var mmodule: MModule */;
2349 val* var_mclassdef /* var mclassdef: nullable MClassDef */;
2350 val* var_ntype /* var ntype: AType */;
2351 short int var_with_virtual /* var with_virtual: Bool */;
2352 val* var1 /* : AQclassid */;
2353 val* var3 /* : AQclassid */;
2354 val* var_qid /* var qid: AQclassid */;
2355 val* var4 /* : TClassid */;
2356 val* var6 /* : TClassid */;
2357 val* var7 /* : String */;
2358 val* var_name /* var name: String */;
2359 short int var8 /* : Bool */;
2360 short int var9 /* : Bool */;
2361 short int var10 /* : Bool */;
2362 val* var_other /* var other: nullable Object */;
2363 short int var12 /* : Bool */;
2364 short int var13 /* : Bool */;
2365 short int var_ /* var : Bool */;
2366 val* var14 /* : nullable MProperty */;
2367 short int var15 /* : Bool */;
2368 int cltype;
2369 int idtype;
2370 const char* var_class_name;
2371 val* var_prop /* var prop: nullable MVirtualTypeProp */;
2372 short int var16 /* : Bool */;
2373 short int var17 /* : Bool */;
2374 short int var19 /* : Bool */;
2375 short int var20 /* : Bool */;
2376 val* var21 /* : ANodes[AType] */;
2377 val* var23 /* : ANodes[AType] */;
2378 short int var24 /* : Bool */;
2379 short int var25 /* : Bool */;
2380 val* var26 /* : NativeArray[String] */;
2381 static val* varonce;
2382 static val* varonce27;
2383 val* var28 /* : String */;
2384 char* var29 /* : CString */;
2385 val* var30 /* : String */;
2386 val* var31 /* : nullable Int */;
2387 val* var32 /* : nullable Int */;
2388 val* var33 /* : nullable Bool */;
2389 val* var34 /* : nullable Bool */;
2390 static val* varonce35;
2391 val* var36 /* : String */;
2392 char* var37 /* : CString */;
2393 val* var38 /* : String */;
2394 val* var39 /* : nullable Int */;
2395 val* var40 /* : nullable Int */;
2396 val* var41 /* : nullable Bool */;
2397 val* var42 /* : nullable Bool */;
2398 val* var43 /* : String */;
2399 val* var44 /* : MVirtualType */;
2400 val* var46 /* : MVirtualType */;
2401 val* var_res /* var res: MType */;
2402 val* var47 /* : nullable TKwnullable */;
2403 val* var49 /* : nullable TKwnullable */;
2404 short int var50 /* : Bool */;
2405 short int var51 /* : Bool */;
2406 short int var53 /* : Bool */;
2407 short int var54 /* : Bool */;
2408 val* var55 /* : MType */;
2409 short int var57 /* : Bool */;
2410 short int var58 /* : Bool */;
2411 short int var60 /* : Bool */;
2412 short int var61 /* : Bool */;
2413 val* var62 /* : MClass */;
2414 val* var64 /* : MClass */;
2415 val* var65 /* : Array[MParameterType] */;
2416 val* var67 /* : Array[MParameterType] */;
2417 val* var_68 /* var : Array[MParameterType] */;
2418 val* var69 /* : IndexedIterator[nullable Object] */;
2419 val* var_70 /* var : IndexedIterator[MParameterType] */;
2420 short int var71 /* : Bool */;
2421 val* var72 /* : nullable Object */;
2422 val* var_p /* var p: MParameterType */;
2423 val* var73 /* : String */;
2424 val* var75 /* : String */;
2425 short int var76 /* : Bool */;
2426 short int var78 /* : Bool */;
2427 short int var79 /* : Bool */;
2428 val* var81 /* : ANodes[AType] */;
2429 val* var83 /* : ANodes[AType] */;
2430 short int var84 /* : Bool */;
2431 short int var85 /* : Bool */;
2432 val* var87 /* : NativeArray[String] */;
2433 static val* varonce86;
2434 static val* varonce88;
2435 val* var89 /* : String */;
2436 char* var90 /* : CString */;
2437 val* var91 /* : String */;
2438 val* var92 /* : nullable Int */;
2439 val* var93 /* : nullable Int */;
2440 val* var94 /* : nullable Bool */;
2441 val* var95 /* : nullable Bool */;
2442 static val* varonce96;
2443 val* var97 /* : String */;
2444 char* var98 /* : CString */;
2445 val* var99 /* : String */;
2446 val* var100 /* : nullable Int */;
2447 val* var101 /* : nullable Int */;
2448 val* var102 /* : nullable Bool */;
2449 val* var103 /* : nullable Bool */;
2450 val* var104 /* : String */;
2451 val* var105 /* : nullable TKwnullable */;
2452 val* var107 /* : nullable TKwnullable */;
2453 short int var108 /* : Bool */;
2454 short int var109 /* : Bool */;
2455 short int var111 /* : Bool */;
2456 short int var112 /* : Bool */;
2457 val* var113 /* : MType */;
2458 val* var115 /* : nullable MClass */;
2459 val* var_mclass /* var mclass: nullable MClass */;
2460 short int var116 /* : Bool */;
2461 short int var117 /* : Bool */;
2462 short int var119 /* : Bool */;
2463 short int var120 /* : Bool */;
2464 val* var121 /* : ANodes[AType] */;
2465 val* var123 /* : ANodes[AType] */;
2466 long var124 /* : Int */;
2467 long var_arity /* var arity: Int */;
2468 long var125 /* : Int */;
2469 long var127 /* : Int */;
2470 short int var128 /* : Bool */;
2471 short int var130 /* : Bool */;
2472 short int var131 /* : Bool */;
2473 short int var132 /* : Bool */;
2474 short int var134 /* : Bool */;
2475 val* var136 /* : NativeArray[String] */;
2476 static val* varonce135;
2477 static val* varonce137;
2478 val* var138 /* : String */;
2479 char* var139 /* : CString */;
2480 val* var140 /* : String */;
2481 val* var141 /* : nullable Int */;
2482 val* var142 /* : nullable Int */;
2483 val* var143 /* : nullable Bool */;
2484 val* var144 /* : nullable Bool */;
2485 static val* varonce145;
2486 val* var146 /* : String */;
2487 char* var147 /* : CString */;
2488 val* var148 /* : String */;
2489 val* var149 /* : nullable Int */;
2490 val* var150 /* : nullable Int */;
2491 val* var151 /* : nullable Bool */;
2492 val* var152 /* : nullable Bool */;
2493 val* var153 /* : String */;
2494 val* var154 /* : String */;
2495 long var155 /* : Int */;
2496 long var157 /* : Int */;
2497 short int var158 /* : Bool */;
2498 short int var160 /* : Bool */;
2499 val* var162 /* : NativeArray[String] */;
2500 static val* varonce161;
2501 static val* varonce163;
2502 val* var164 /* : String */;
2503 char* var165 /* : CString */;
2504 val* var166 /* : String */;
2505 val* var167 /* : nullable Int */;
2506 val* var168 /* : nullable Int */;
2507 val* var169 /* : nullable Bool */;
2508 val* var170 /* : nullable Bool */;
2509 static val* varonce171;
2510 val* var172 /* : String */;
2511 char* var173 /* : CString */;
2512 val* var174 /* : String */;
2513 val* var175 /* : nullable Int */;
2514 val* var176 /* : nullable Int */;
2515 val* var177 /* : nullable Bool */;
2516 val* var178 /* : nullable Bool */;
2517 val* var179 /* : String */;
2518 val* var181 /* : NativeArray[String] */;
2519 static val* varonce180;
2520 static val* varonce182;
2521 val* var183 /* : String */;
2522 char* var184 /* : CString */;
2523 val* var185 /* : String */;
2524 val* var186 /* : nullable Int */;
2525 val* var187 /* : nullable Int */;
2526 val* var188 /* : nullable Bool */;
2527 val* var189 /* : nullable Bool */;
2528 static val* varonce190;
2529 val* var191 /* : String */;
2530 char* var192 /* : CString */;
2531 val* var193 /* : String */;
2532 val* var194 /* : nullable Int */;
2533 val* var195 /* : nullable Int */;
2534 val* var196 /* : nullable Bool */;
2535 val* var197 /* : nullable Bool */;
2536 static val* varonce198;
2537 val* var199 /* : String */;
2538 char* var200 /* : CString */;
2539 val* var201 /* : String */;
2540 val* var202 /* : nullable Int */;
2541 val* var203 /* : nullable Int */;
2542 val* var204 /* : nullable Bool */;
2543 val* var205 /* : nullable Bool */;
2544 static val* varonce206;
2545 val* var207 /* : String */;
2546 char* var208 /* : CString */;
2547 val* var209 /* : String */;
2548 val* var210 /* : nullable Int */;
2549 val* var211 /* : nullable Int */;
2550 val* var212 /* : nullable Bool */;
2551 val* var213 /* : nullable Bool */;
2552 long var214 /* : Int */;
2553 long var216 /* : Int */;
2554 val* var217 /* : String */;
2555 val* var218 /* : String */;
2556 val* var219 /* : String */;
2557 val* var220 /* : String */;
2558 short int var221 /* : Bool */;
2559 short int var223 /* : Bool */;
2560 val* var224 /* : MClassType */;
2561 val* var226 /* : MClassType */;
2562 val* var227 /* : nullable TKwnullable */;
2563 val* var229 /* : nullable TKwnullable */;
2564 short int var230 /* : Bool */;
2565 short int var231 /* : Bool */;
2566 short int var233 /* : Bool */;
2567 short int var234 /* : Bool */;
2568 val* var235 /* : MType */;
2569 val* var237 /* : Array[MType] */;
2570 val* var_mtypes /* var mtypes: Array[MType] */;
2571 val* var238 /* : ANodes[AType] */;
2572 val* var240 /* : ANodes[AType] */;
2573 val* var_241 /* var : ANodes[AType] */;
2574 val* var242 /* : Iterator[ANode] */;
2575 val* var_243 /* var : Iterator[AType] */;
2576 short int var244 /* : Bool */;
2577 val* var246 /* : nullable Object */;
2578 val* var_nt /* var nt: AType */;
2579 val* var247 /* : nullable MType */;
2580 val* var_mt /* var mt: nullable MType */;
2581 short int var248 /* : Bool */;
2582 short int var249 /* : Bool */;
2583 val* var_other251 /* var other: nullable Object */;
2584 short int var252 /* : Bool */;
2585 short int var254 /* : Bool */;
2586 val* var255 /* : MClassType */;
2587 val* var256 /* : nullable TKwnullable */;
2588 val* var258 /* : nullable TKwnullable */;
2589 short int var259 /* : Bool */;
2590 short int var260 /* : Bool */;
2591 short int var262 /* : Bool */;
2592 short int var263 /* : Bool */;
2593 val* var264 /* : MType */;
2594 var_mmodule = p0;
2595 var_mclassdef = p1;
2596 var_ntype = p2;
2597 var_with_virtual = p3;
2598 {
2599 { /* Inline parser_nodes$AType$n_qid (var_ntype) on <var_ntype:AType> */
2600 var3 = var_ntype->attrs[COLOR_nitc__parser_nodes__AType___n_qid].val; /* _n_qid on <var_ntype:AType> */
2601 if (unlikely(var3 == NULL)) {
2602 if(catchStack.cursor >= 0){
2603 longjmp(catchStack.envs[catchStack.cursor], 1);
2604 }
2605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid");
2606 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1776);
2607 fatal_exit(1);
2608 }
2609 var1 = var3;
2610 RET_LABEL2:(void)0;
2611 }
2612 }
2613 var_qid = var1;
2614 {
2615 { /* Inline parser_nodes$AQclassid$n_id (var_qid) on <var_qid:AQclassid> */
2616 var6 = var_qid->attrs[COLOR_nitc__parser_nodes__AQclassid___n_id].val; /* _n_id on <var_qid:AQclassid> */
2617 if (unlikely(var6 == NULL)) {
2618 if(catchStack.cursor >= 0){
2619 longjmp(catchStack.envs[catchStack.cursor], 1);
2620 }
2621 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2622 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1733);
2623 fatal_exit(1);
2624 }
2625 var4 = var6;
2626 RET_LABEL5:(void)0;
2627 }
2628 }
2629 {
2630 var7 = nitc__lexer_work___Token___text(var4);
2631 }
2632 var_name = var7;
2633 if (var_mclassdef == NULL) {
2634 var9 = 0; /* is null */
2635 } else {
2636 var9 = 1; /* arg is null and recv is not */
2637 }
2638 if (0) {
2639 { /* Inline kernel$Object$!= (var_mclassdef,((val*)NULL)) on <var_mclassdef:nullable MClassDef> */
2640 var_other = ((val*)NULL);
2641 {
2642 var12 = ((short int(*)(val* self, val* p0))(var_mclassdef->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mclassdef, var_other); /* == on <var_mclassdef:nullable MClassDef(MClassDef)>*/
2643 }
2644 var13 = !var12;
2645 var10 = var13;
2646 goto RET_LABEL11;
2647 RET_LABEL11:(void)0;
2648 }
2649 var9 = var10;
2650 }
2651 var_ = var9;
2652 if (var9){
2653 var8 = var_with_virtual;
2654 } else {
2655 var8 = var_;
2656 }
2657 if (var8){
2658 {
2659 var14 = nitc___nitc__ModelBuilder___try_get_mproperty_by_name(self, var_ntype, var_mclassdef, var_name);
2660 }
2661 /* <var14:nullable MProperty> isa nullable MVirtualTypeProp */
2662 cltype = type_nullable__nitc__MVirtualTypeProp.color;
2663 idtype = type_nullable__nitc__MVirtualTypeProp.id;
2664 if(var14 == NULL) {
2665 var15 = 1;
2666 } else {
2667 if(cltype >= var14->type->table_size) {
2668 var15 = 0;
2669 } else {
2670 var15 = var14->type->type_table[cltype] == idtype;
2671 }
2672 }
2673 if (unlikely(!var15)) {
2674 var_class_name = var14 == NULL ? "null" : var14->type->name;
2675 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MVirtualTypeProp", var_class_name);
2676 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 274);
2677 fatal_exit(1);
2678 }
2679 var_prop = var14;
2680 if (var_prop == NULL) {
2681 var16 = 0; /* is null */
2682 } else {
2683 var16 = 1; /* arg is null and recv is not */
2684 }
2685 if (0) {
2686 { /* Inline kernel$Object$!= (var_prop,((val*)NULL)) on <var_prop:nullable MVirtualTypeProp> */
2687 var_other = ((val*)NULL);
2688 {
2689 var19 = ((short int(*)(val* self, val* p0))(var_prop->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_prop, var_other); /* == on <var_prop:nullable MVirtualTypeProp(MVirtualTypeProp)>*/
2690 }
2691 var20 = !var19;
2692 var17 = var20;
2693 goto RET_LABEL18;
2694 RET_LABEL18:(void)0;
2695 }
2696 var16 = var17;
2697 }
2698 if (var16){
2699 {
2700 { /* Inline parser_nodes$AType$n_types (var_ntype) on <var_ntype:AType> */
2701 var23 = var_ntype->attrs[COLOR_nitc__parser_nodes__AType___n_types].val; /* _n_types on <var_ntype:AType> */
2702 if (unlikely(var23 == NULL)) {
2703 if(catchStack.cursor >= 0){
2704 longjmp(catchStack.envs[catchStack.cursor], 1);
2705 }
2706 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
2707 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1782);
2708 fatal_exit(1);
2709 }
2710 var21 = var23;
2711 RET_LABEL22:(void)0;
2712 }
2713 }
2714 {
2715 var24 = nitc___nitc__ANodes___core__abstract_collection__Collection__is_empty(var21);
2716 }
2717 var25 = !var24;
2718 if (var25){
2719 if (unlikely(varonce==NULL)) {
2720 var26 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
2721 if (likely(varonce27!=NULL)) {
2722 var28 = varonce27;
2723 } else {
2724 var29 = "Type Error: formal type `";
2725 var31 = (val*)(25l<<2|1);
2726 var32 = (val*)(25l<<2|1);
2727 var33 = (val*)((long)(0)<<2|3);
2728 var34 = (val*)((long)(0)<<2|3);
2729 var30 = core__flat___CString___to_s_unsafe(var29, var31, var32, var33, var34);
2730 var28 = var30;
2731 varonce27 = var28;
2732 }
2733 ((struct instance_core__NativeArray*)var26)->values[0]=var28;
2734 if (likely(varonce35!=NULL)) {
2735 var36 = varonce35;
2736 } else {
2737 var37 = "` cannot have formal parameters.";
2738 var39 = (val*)(32l<<2|1);
2739 var40 = (val*)(32l<<2|1);
2740 var41 = (val*)((long)(0)<<2|3);
2741 var42 = (val*)((long)(0)<<2|3);
2742 var38 = core__flat___CString___to_s_unsafe(var37, var39, var40, var41, var42);
2743 var36 = var38;
2744 varonce35 = var36;
2745 }
2746 ((struct instance_core__NativeArray*)var26)->values[2]=var36;
2747 } else {
2748 var26 = varonce;
2749 varonce = NULL;
2750 }
2751 ((struct instance_core__NativeArray*)var26)->values[1]=var_name;
2752 {
2753 var43 = ((val*(*)(val* self))(var26->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var26); /* native_to_s on <var26:NativeArray[String]>*/
2754 }
2755 varonce = var26;
2756 {
2757 nitc___nitc__ModelBuilder___error(self, var_ntype, var43); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
2758 }
2759 } else {
2760 }
2761 {
2762 { /* Inline model$MVirtualTypeProp$mvirtualtype (var_prop) on <var_prop:nullable MVirtualTypeProp(MVirtualTypeProp)> */
2763 var46 = var_prop->attrs[COLOR_nitc__model__MVirtualTypeProp___mvirtualtype].val; /* _mvirtualtype on <var_prop:nullable MVirtualTypeProp(MVirtualTypeProp)> */
2764 if (unlikely(var46 == NULL)) {
2765 if(catchStack.cursor >= 0){
2766 longjmp(catchStack.envs[catchStack.cursor], 1);
2767 }
2768 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mvirtualtype");
2769 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2333);
2770 fatal_exit(1);
2771 }
2772 var44 = var46;
2773 RET_LABEL45:(void)0;
2774 }
2775 }
2776 var_res = var44;
2777 {
2778 { /* Inline parser_nodes$AType$n_kwnullable (var_ntype) on <var_ntype:AType> */
2779 var49 = var_ntype->attrs[COLOR_nitc__parser_nodes__AType___n_kwnullable].val; /* _n_kwnullable on <var_ntype:AType> */
2780 var47 = var49;
2781 RET_LABEL48:(void)0;
2782 }
2783 }
2784 if (var47 == NULL) {
2785 var50 = 0; /* is null */
2786 } else {
2787 var50 = 1; /* arg is null and recv is not */
2788 }
2789 if (0) {
2790 { /* Inline kernel$Object$!= (var47,((val*)NULL)) on <var47:nullable TKwnullable> */
2791 var_other = ((val*)NULL);
2792 {
2793 var53 = ((short int(*)(val* self, val* p0))(var47->class->vft[COLOR_core__kernel__Object___61d_61d]))(var47, var_other); /* == on <var47:nullable TKwnullable(TKwnullable)>*/
2794 }
2795 var54 = !var53;
2796 var51 = var54;
2797 goto RET_LABEL52;
2798 RET_LABEL52:(void)0;
2799 }
2800 var50 = var51;
2801 }
2802 if (var50){
2803 {
2804 var55 = nitc___nitc__MType___as_nullable(var_res);
2805 }
2806 var_res = var55;
2807 } else {
2808 }
2809 {
2810 { /* Inline modelbuilder_base$AType$mtype= (var_ntype,var_res) on <var_ntype:AType> */
2811 var_ntype->attrs[COLOR_nitc__modelbuilder_base__AType___mtype].val = var_res; /* _mtype on <var_ntype:AType> */
2812 RET_LABEL56:(void)0;
2813 }
2814 }
2815 var = var_res;
2816 goto RET_LABEL;
2817 } else {
2818 }
2819 } else {
2820 }
2821 if (var_mclassdef == NULL) {
2822 var57 = 0; /* is null */
2823 } else {
2824 var57 = 1; /* arg is null and recv is not */
2825 }
2826 if (0) {
2827 { /* Inline kernel$Object$!= (var_mclassdef,((val*)NULL)) on <var_mclassdef:nullable MClassDef> */
2828 var_other = ((val*)NULL);
2829 {
2830 var60 = ((short int(*)(val* self, val* p0))(var_mclassdef->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mclassdef, var_other); /* == on <var_mclassdef:nullable MClassDef(MClassDef)>*/
2831 }
2832 var61 = !var60;
2833 var58 = var61;
2834 goto RET_LABEL59;
2835 RET_LABEL59:(void)0;
2836 }
2837 var57 = var58;
2838 }
2839 if (var57){
2840 {
2841 { /* Inline model$MClassDef$mclass (var_mclassdef) on <var_mclassdef:nullable MClassDef(MClassDef)> */
2842 var64 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:nullable MClassDef(MClassDef)> */
2843 if (unlikely(var64 == NULL)) {
2844 if(catchStack.cursor >= 0){
2845 longjmp(catchStack.envs[catchStack.cursor], 1);
2846 }
2847 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2848 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 591);
2849 fatal_exit(1);
2850 }
2851 var62 = var64;
2852 RET_LABEL63:(void)0;
2853 }
2854 }
2855 {
2856 { /* Inline model$MClass$mparameters (var62) on <var62:MClass> */
2857 var67 = var62->attrs[COLOR_nitc__model__MClass___mparameters].val; /* _mparameters on <var62:MClass> */
2858 if (unlikely(var67 == NULL)) {
2859 if(catchStack.cursor >= 0){
2860 longjmp(catchStack.envs[catchStack.cursor], 1);
2861 }
2862 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2863 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 418);
2864 fatal_exit(1);
2865 }
2866 var65 = var67;
2867 RET_LABEL66:(void)0;
2868 }
2869 }
2870 var_68 = var65;
2871 {
2872 var69 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_68);
2873 }
2874 var_70 = var69;
2875 for(;;) {
2876 {
2877 var71 = ((short int(*)(val* self))((((long)var_70&3)?class_info[((long)var_70&3)]:var_70->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_70); /* is_ok on <var_70:IndexedIterator[MParameterType]>*/
2878 }
2879 if (var71){
2880 } else {
2881 goto BREAK_label;
2882 }
2883 {
2884 var72 = ((val*(*)(val* self))((((long)var_70&3)?class_info[((long)var_70&3)]:var_70->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_70); /* item on <var_70:IndexedIterator[MParameterType]>*/
2885 }
2886 var_p = var72;
2887 {
2888 { /* Inline model$MParameterType$name (var_p) on <var_p:MParameterType> */
2889 var75 = var_p->attrs[COLOR_nitc__model__MParameterType___name].val; /* _name on <var_p:MParameterType> */
2890 if (unlikely(var75 == NULL)) {
2891 if(catchStack.cursor >= 0){
2892 longjmp(catchStack.envs[catchStack.cursor], 1);
2893 }
2894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2895 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1570);
2896 fatal_exit(1);
2897 }
2898 var73 = var75;
2899 RET_LABEL74:(void)0;
2900 }
2901 }
2902 {
2903 { /* Inline kernel$Object$!= (var73,var_name) on <var73:String> */
2904 var_other = var_name;
2905 {
2906 var78 = ((short int(*)(val* self, val* p0))(var73->class->vft[COLOR_core__kernel__Object___61d_61d]))(var73, var_other); /* == on <var73:String>*/
2907 }
2908 var79 = !var78;
2909 var76 = var79;
2910 goto RET_LABEL77;
2911 RET_LABEL77:(void)0;
2912 }
2913 }
2914 if (var76){
2915 goto BREAK_label80;
2916 } else {
2917 }
2918 {
2919 { /* Inline parser_nodes$AType$n_types (var_ntype) on <var_ntype:AType> */
2920 var83 = var_ntype->attrs[COLOR_nitc__parser_nodes__AType___n_types].val; /* _n_types on <var_ntype:AType> */
2921 if (unlikely(var83 == NULL)) {
2922 if(catchStack.cursor >= 0){
2923 longjmp(catchStack.envs[catchStack.cursor], 1);
2924 }
2925 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
2926 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1782);
2927 fatal_exit(1);
2928 }
2929 var81 = var83;
2930 RET_LABEL82:(void)0;
2931 }
2932 }
2933 {
2934 var84 = nitc___nitc__ANodes___core__abstract_collection__Collection__is_empty(var81);
2935 }
2936 var85 = !var84;
2937 if (var85){
2938 if (unlikely(varonce86==NULL)) {
2939 var87 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
2940 if (likely(varonce88!=NULL)) {
2941 var89 = varonce88;
2942 } else {
2943 var90 = "Type Error: formal type `";
2944 var92 = (val*)(25l<<2|1);
2945 var93 = (val*)(25l<<2|1);
2946 var94 = (val*)((long)(0)<<2|3);
2947 var95 = (val*)((long)(0)<<2|3);
2948 var91 = core__flat___CString___to_s_unsafe(var90, var92, var93, var94, var95);
2949 var89 = var91;
2950 varonce88 = var89;
2951 }
2952 ((struct instance_core__NativeArray*)var87)->values[0]=var89;
2953 if (likely(varonce96!=NULL)) {
2954 var97 = varonce96;
2955 } else {
2956 var98 = "` cannot have formal parameters.";
2957 var100 = (val*)(32l<<2|1);
2958 var101 = (val*)(32l<<2|1);
2959 var102 = (val*)((long)(0)<<2|3);
2960 var103 = (val*)((long)(0)<<2|3);
2961 var99 = core__flat___CString___to_s_unsafe(var98, var100, var101, var102, var103);
2962 var97 = var99;
2963 varonce96 = var97;
2964 }
2965 ((struct instance_core__NativeArray*)var87)->values[2]=var97;
2966 } else {
2967 var87 = varonce86;
2968 varonce86 = NULL;
2969 }
2970 ((struct instance_core__NativeArray*)var87)->values[1]=var_name;
2971 {
2972 var104 = ((val*(*)(val* self))(var87->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var87); /* native_to_s on <var87:NativeArray[String]>*/
2973 }
2974 varonce86 = var87;
2975 {
2976 nitc___nitc__ModelBuilder___error(self, var_ntype, var104); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
2977 }
2978 } else {
2979 }
2980 var_res = var_p;
2981 {
2982 { /* Inline parser_nodes$AType$n_kwnullable (var_ntype) on <var_ntype:AType> */
2983 var107 = var_ntype->attrs[COLOR_nitc__parser_nodes__AType___n_kwnullable].val; /* _n_kwnullable on <var_ntype:AType> */
2984 var105 = var107;
2985 RET_LABEL106:(void)0;
2986 }
2987 }
2988 if (var105 == NULL) {
2989 var108 = 0; /* is null */
2990 } else {
2991 var108 = 1; /* arg is null and recv is not */
2992 }
2993 if (0) {
2994 { /* Inline kernel$Object$!= (var105,((val*)NULL)) on <var105:nullable TKwnullable> */
2995 var_other = ((val*)NULL);
2996 {
2997 var111 = ((short int(*)(val* self, val* p0))(var105->class->vft[COLOR_core__kernel__Object___61d_61d]))(var105, var_other); /* == on <var105:nullable TKwnullable(TKwnullable)>*/
2998 }
2999 var112 = !var111;
3000 var109 = var112;
3001 goto RET_LABEL110;
3002 RET_LABEL110:(void)0;
3003 }
3004 var108 = var109;
3005 }
3006 if (var108){
3007 {
3008 var113 = nitc___nitc__MType___as_nullable(var_res);
3009 }
3010 var_res = var113;
3011 } else {
3012 }
3013 {
3014 { /* Inline modelbuilder_base$AType$mtype= (var_ntype,var_res) on <var_ntype:AType> */
3015 var_ntype->attrs[COLOR_nitc__modelbuilder_base__AType___mtype].val = var_res; /* _mtype on <var_ntype:AType> */
3016 RET_LABEL114:(void)0;
3017 }
3018 }
3019 var = var_res;
3020 goto RET_LABEL;
3021 BREAK_label80: (void)0;
3022 {
3023 ((void(*)(val* self))((((long)var_70&3)?class_info[((long)var_70&3)]:var_70->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_70); /* next on <var_70:IndexedIterator[MParameterType]>*/
3024 }
3025 }
3026 BREAK_label: (void)0;
3027 {
3028 ((void(*)(val* self))((((long)var_70&3)?class_info[((long)var_70&3)]:var_70->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_70); /* finish on <var_70:IndexedIterator[MParameterType]>*/
3029 }
3030 } else {
3031 }
3032 {
3033 var115 = nitc___nitc__ModelBuilder___try_get_mclass_by_qid(self, var_qid, var_mmodule);
3034 }
3035 var_mclass = var115;
3036 if (var_mclass == NULL) {
3037 var116 = 0; /* is null */
3038 } else {
3039 var116 = 1; /* arg is null and recv is not */
3040 }
3041 if (0) {
3042 { /* Inline kernel$Object$!= (var_mclass,((val*)NULL)) on <var_mclass:nullable MClass> */
3043 var_other = ((val*)NULL);
3044 {
3045 var119 = ((short int(*)(val* self, val* p0))(var_mclass->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mclass, var_other); /* == on <var_mclass:nullable MClass(MClass)>*/
3046 }
3047 var120 = !var119;
3048 var117 = var120;
3049 goto RET_LABEL118;
3050 RET_LABEL118:(void)0;
3051 }
3052 var116 = var117;
3053 }
3054 if (var116){
3055 {
3056 { /* Inline parser_nodes$AType$n_types (var_ntype) on <var_ntype:AType> */
3057 var123 = var_ntype->attrs[COLOR_nitc__parser_nodes__AType___n_types].val; /* _n_types on <var_ntype:AType> */
3058 if (unlikely(var123 == NULL)) {
3059 if(catchStack.cursor >= 0){
3060 longjmp(catchStack.envs[catchStack.cursor], 1);
3061 }
3062 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
3063 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1782);
3064 fatal_exit(1);
3065 }
3066 var121 = var123;
3067 RET_LABEL122:(void)0;
3068 }
3069 }
3070 {
3071 var124 = nitc___nitc__ANodes___core__abstract_collection__Collection__length(var121);
3072 }
3073 var_arity = var124;
3074 {
3075 { /* Inline model$MClass$arity (var_mclass) on <var_mclass:nullable MClass(MClass)> */
3076 var127 = var_mclass->attrs[COLOR_nitc__model__MClass___arity].l; /* _arity on <var_mclass:nullable MClass(MClass)> */
3077 var125 = var127;
3078 RET_LABEL126:(void)0;
3079 }
3080 }
3081 {
3082 { /* Inline kernel$Int$!= (var_arity,var125) on <var_arity:Int> */
3083 var130 = var_arity == var125;
3084 var131 = !var130;
3085 var128 = var131;
3086 goto RET_LABEL129;
3087 RET_LABEL129:(void)0;
3088 }
3089 }
3090 if (var128){
3091 {
3092 { /* Inline kernel$Int$== (var_arity,0l) on <var_arity:Int> */
3093 var134 = var_arity == 0l;
3094 var132 = var134;
3095 goto RET_LABEL133;
3096 RET_LABEL133:(void)0;
3097 }
3098 }
3099 if (var132){
3100 if (unlikely(varonce135==NULL)) {
3101 var136 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
3102 if (likely(varonce137!=NULL)) {
3103 var138 = varonce137;
3104 } else {
3105 var139 = "Type Error: `";
3106 var141 = (val*)(13l<<2|1);
3107 var142 = (val*)(13l<<2|1);
3108 var143 = (val*)((long)(0)<<2|3);
3109 var144 = (val*)((long)(0)<<2|3);
3110 var140 = core__flat___CString___to_s_unsafe(var139, var141, var142, var143, var144);
3111 var138 = var140;
3112 varonce137 = var138;
3113 }
3114 ((struct instance_core__NativeArray*)var136)->values[0]=var138;
3115 if (likely(varonce145!=NULL)) {
3116 var146 = varonce145;
3117 } else {
3118 var147 = "` is a generic class.";
3119 var149 = (val*)(21l<<2|1);
3120 var150 = (val*)(21l<<2|1);
3121 var151 = (val*)((long)(0)<<2|3);
3122 var152 = (val*)((long)(0)<<2|3);
3123 var148 = core__flat___CString___to_s_unsafe(var147, var149, var150, var151, var152);
3124 var146 = var148;
3125 varonce145 = var146;
3126 }
3127 ((struct instance_core__NativeArray*)var136)->values[2]=var146;
3128 } else {
3129 var136 = varonce135;
3130 varonce135 = NULL;
3131 }
3132 {
3133 var153 = nitc___nitc__MClass___signature_to_s(var_mclass);
3134 }
3135 ((struct instance_core__NativeArray*)var136)->values[1]=var153;
3136 {
3137 var154 = ((val*(*)(val* self))(var136->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var136); /* native_to_s on <var136:NativeArray[String]>*/
3138 }
3139 varonce135 = var136;
3140 {
3141 nitc___nitc__ModelBuilder___error(self, var_ntype, var154); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
3142 }
3143 } else {
3144 {
3145 { /* Inline model$MClass$arity (var_mclass) on <var_mclass:nullable MClass(MClass)> */
3146 var157 = var_mclass->attrs[COLOR_nitc__model__MClass___arity].l; /* _arity on <var_mclass:nullable MClass(MClass)> */
3147 var155 = var157;
3148 RET_LABEL156:(void)0;
3149 }
3150 }
3151 {
3152 { /* Inline kernel$Int$== (var155,0l) on <var155:Int> */
3153 var160 = var155 == 0l;
3154 var158 = var160;
3155 goto RET_LABEL159;
3156 RET_LABEL159:(void)0;
3157 }
3158 }
3159 if (var158){
3160 if (unlikely(varonce161==NULL)) {
3161 var162 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
3162 if (likely(varonce163!=NULL)) {
3163 var164 = varonce163;
3164 } else {
3165 var165 = "Type Error: `";
3166 var167 = (val*)(13l<<2|1);
3167 var168 = (val*)(13l<<2|1);
3168 var169 = (val*)((long)(0)<<2|3);
3169 var170 = (val*)((long)(0)<<2|3);
3170 var166 = core__flat___CString___to_s_unsafe(var165, var167, var168, var169, var170);
3171 var164 = var166;
3172 varonce163 = var164;
3173 }
3174 ((struct instance_core__NativeArray*)var162)->values[0]=var164;
3175 if (likely(varonce171!=NULL)) {
3176 var172 = varonce171;
3177 } else {
3178 var173 = "` is not a generic class.";
3179 var175 = (val*)(25l<<2|1);
3180 var176 = (val*)(25l<<2|1);
3181 var177 = (val*)((long)(0)<<2|3);
3182 var178 = (val*)((long)(0)<<2|3);
3183 var174 = core__flat___CString___to_s_unsafe(var173, var175, var176, var177, var178);
3184 var172 = var174;
3185 varonce171 = var172;
3186 }
3187 ((struct instance_core__NativeArray*)var162)->values[2]=var172;
3188 } else {
3189 var162 = varonce161;
3190 varonce161 = NULL;
3191 }
3192 ((struct instance_core__NativeArray*)var162)->values[1]=var_name;
3193 {
3194 var179 = ((val*(*)(val* self))(var162->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var162); /* native_to_s on <var162:NativeArray[String]>*/
3195 }
3196 varonce161 = var162;
3197 {
3198 nitc___nitc__ModelBuilder___error(self, var_ntype, var179); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
3199 }
3200 } else {
3201 if (unlikely(varonce180==NULL)) {
3202 var181 = NEW_core__NativeArray((int)7l, &type_core__NativeArray__core__String);
3203 if (likely(varonce182!=NULL)) {
3204 var183 = varonce182;
3205 } else {
3206 var184 = "Type Error: expected ";
3207 var186 = (val*)(21l<<2|1);
3208 var187 = (val*)(21l<<2|1);
3209 var188 = (val*)((long)(0)<<2|3);
3210 var189 = (val*)((long)(0)<<2|3);
3211 var185 = core__flat___CString___to_s_unsafe(var184, var186, var187, var188, var189);
3212 var183 = var185;
3213 varonce182 = var183;
3214 }
3215 ((struct instance_core__NativeArray*)var181)->values[0]=var183;
3216 if (likely(varonce190!=NULL)) {
3217 var191 = varonce190;
3218 } else {
3219 var192 = " formal argument(s) for `";
3220 var194 = (val*)(25l<<2|1);
3221 var195 = (val*)(25l<<2|1);
3222 var196 = (val*)((long)(0)<<2|3);
3223 var197 = (val*)((long)(0)<<2|3);
3224 var193 = core__flat___CString___to_s_unsafe(var192, var194, var195, var196, var197);
3225 var191 = var193;
3226 varonce190 = var191;
3227 }
3228 ((struct instance_core__NativeArray*)var181)->values[2]=var191;
3229 if (likely(varonce198!=NULL)) {
3230 var199 = varonce198;
3231 } else {
3232 var200 = "`; got ";
3233 var202 = (val*)(7l<<2|1);
3234 var203 = (val*)(7l<<2|1);
3235 var204 = (val*)((long)(0)<<2|3);
3236 var205 = (val*)((long)(0)<<2|3);
3237 var201 = core__flat___CString___to_s_unsafe(var200, var202, var203, var204, var205);
3238 var199 = var201;
3239 varonce198 = var199;
3240 }
3241 ((struct instance_core__NativeArray*)var181)->values[4]=var199;
3242 if (likely(varonce206!=NULL)) {
3243 var207 = varonce206;
3244 } else {
3245 var208 = ".";
3246 var210 = (val*)(1l<<2|1);
3247 var211 = (val*)(1l<<2|1);
3248 var212 = (val*)((long)(0)<<2|3);
3249 var213 = (val*)((long)(0)<<2|3);
3250 var209 = core__flat___CString___to_s_unsafe(var208, var210, var211, var212, var213);
3251 var207 = var209;
3252 varonce206 = var207;
3253 }
3254 ((struct instance_core__NativeArray*)var181)->values[6]=var207;
3255 } else {
3256 var181 = varonce180;
3257 varonce180 = NULL;
3258 }
3259 {
3260 { /* Inline model$MClass$arity (var_mclass) on <var_mclass:nullable MClass(MClass)> */
3261 var216 = var_mclass->attrs[COLOR_nitc__model__MClass___arity].l; /* _arity on <var_mclass:nullable MClass(MClass)> */
3262 var214 = var216;
3263 RET_LABEL215:(void)0;
3264 }
3265 }
3266 var217 = core__flat___Int___core__abstract_text__Object__to_s(var214);
3267 ((struct instance_core__NativeArray*)var181)->values[1]=var217;
3268 {
3269 var218 = nitc___nitc__MClass___signature_to_s(var_mclass);
3270 }
3271 ((struct instance_core__NativeArray*)var181)->values[3]=var218;
3272 var219 = core__flat___Int___core__abstract_text__Object__to_s(var_arity);
3273 ((struct instance_core__NativeArray*)var181)->values[5]=var219;
3274 {
3275 var220 = ((val*(*)(val* self))(var181->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var181); /* native_to_s on <var181:NativeArray[String]>*/
3276 }
3277 varonce180 = var181;
3278 {
3279 nitc___nitc__ModelBuilder___error(self, var_ntype, var220); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
3280 }
3281 }
3282 }
3283 var = ((val*)NULL);
3284 goto RET_LABEL;
3285 } else {
3286 }
3287 {
3288 { /* Inline kernel$Int$== (var_arity,0l) on <var_arity:Int> */
3289 var223 = var_arity == 0l;
3290 var221 = var223;
3291 goto RET_LABEL222;
3292 RET_LABEL222:(void)0;
3293 }
3294 }
3295 if (var221){
3296 {
3297 { /* Inline model$MClass$mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
3298 var226 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
3299 if (unlikely(var226 == NULL)) {
3300 if(catchStack.cursor >= 0){
3301 longjmp(catchStack.envs[catchStack.cursor], 1);
3302 }
3303 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
3304 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
3305 fatal_exit(1);
3306 }
3307 var224 = var226;
3308 RET_LABEL225:(void)0;
3309 }
3310 }
3311 var_res = var224;
3312 {
3313 { /* Inline parser_nodes$AType$n_kwnullable (var_ntype) on <var_ntype:AType> */
3314 var229 = var_ntype->attrs[COLOR_nitc__parser_nodes__AType___n_kwnullable].val; /* _n_kwnullable on <var_ntype:AType> */
3315 var227 = var229;
3316 RET_LABEL228:(void)0;
3317 }
3318 }
3319 if (var227 == NULL) {
3320 var230 = 0; /* is null */
3321 } else {
3322 var230 = 1; /* arg is null and recv is not */
3323 }
3324 if (0) {
3325 { /* Inline kernel$Object$!= (var227,((val*)NULL)) on <var227:nullable TKwnullable> */
3326 var_other = ((val*)NULL);
3327 {
3328 var233 = ((short int(*)(val* self, val* p0))(var227->class->vft[COLOR_core__kernel__Object___61d_61d]))(var227, var_other); /* == on <var227:nullable TKwnullable(TKwnullable)>*/
3329 }
3330 var234 = !var233;
3331 var231 = var234;
3332 goto RET_LABEL232;
3333 RET_LABEL232:(void)0;
3334 }
3335 var230 = var231;
3336 }
3337 if (var230){
3338 {
3339 var235 = nitc___nitc__MType___as_nullable(var_res);
3340 }
3341 var_res = var235;
3342 } else {
3343 }
3344 {
3345 { /* Inline modelbuilder_base$AType$mtype= (var_ntype,var_res) on <var_ntype:AType> */
3346 var_ntype->attrs[COLOR_nitc__modelbuilder_base__AType___mtype].val = var_res; /* _mtype on <var_ntype:AType> */
3347 RET_LABEL236:(void)0;
3348 }
3349 }
3350 var = var_res;
3351 goto RET_LABEL;
3352 } else {
3353 var237 = NEW_core__Array(&type_core__Array__nitc__MType);
3354 {
3355 core___core__Array___core__kernel__Object__init(var237); /* Direct call array$Array$init on <var237:Array[MType]>*/
3356 }
3357 var_mtypes = var237;
3358 {
3359 { /* Inline parser_nodes$AType$n_types (var_ntype) on <var_ntype:AType> */
3360 var240 = var_ntype->attrs[COLOR_nitc__parser_nodes__AType___n_types].val; /* _n_types on <var_ntype:AType> */
3361 if (unlikely(var240 == NULL)) {
3362 if(catchStack.cursor >= 0){
3363 longjmp(catchStack.envs[catchStack.cursor], 1);
3364 }
3365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
3366 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1782);
3367 fatal_exit(1);
3368 }
3369 var238 = var240;
3370 RET_LABEL239:(void)0;
3371 }
3372 }
3373 var_241 = var238;
3374 {
3375 var242 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_241);
3376 }
3377 var_243 = var242;
3378 for(;;) {
3379 {
3380 var244 = ((short int(*)(val* self))((((long)var_243&3)?class_info[((long)var_243&3)]:var_243->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_243); /* is_ok on <var_243:Iterator[AType]>*/
3381 }
3382 if (var244){
3383 } else {
3384 goto BREAK_label245;
3385 }
3386 {
3387 var246 = ((val*(*)(val* self))((((long)var_243&3)?class_info[((long)var_243&3)]:var_243->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_243); /* item on <var_243:Iterator[AType]>*/
3388 }
3389 var_nt = var246;
3390 {
3391 var247 = nitc___nitc__ModelBuilder___resolve_mtype_unchecked(self, var_mmodule, var_mclassdef, var_nt, var_with_virtual);
3392 }
3393 var_mt = var247;
3394 if (var_mt == NULL) {
3395 var248 = 1; /* is null */
3396 } else {
3397 var248 = 0; /* arg is null but recv is not */
3398 }
3399 if (0) {
3400 { /* Inline kernel$Object$== (var_mt,((val*)NULL)) on <var_mt:nullable MType> */
3401 var_other251 = ((val*)NULL);
3402 {
3403 { /* Inline kernel$Object$is_same_instance (var_mt,var_other251) on <var_mt:nullable MType(MType)> */
3404 var254 = var_mt == var_other251;
3405 var252 = var254;
3406 goto RET_LABEL253;
3407 RET_LABEL253:(void)0;
3408 }
3409 }
3410 var249 = var252;
3411 goto RET_LABEL250;
3412 RET_LABEL250:(void)0;
3413 }
3414 var248 = var249;
3415 }
3416 if (var248){
3417 var = ((val*)NULL);
3418 goto RET_LABEL;
3419 } else {
3420 }
3421 {
3422 core___core__Array___core__abstract_collection__SimpleCollection__add(var_mtypes, var_mt); /* Direct call array$Array$add on <var_mtypes:Array[MType]>*/
3423 }
3424 {
3425 ((void(*)(val* self))((((long)var_243&3)?class_info[((long)var_243&3)]:var_243->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_243); /* next on <var_243:Iterator[AType]>*/
3426 }
3427 }
3428 BREAK_label245: (void)0;
3429 {
3430 ((void(*)(val* self))((((long)var_243&3)?class_info[((long)var_243&3)]:var_243->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_243); /* finish on <var_243:Iterator[AType]>*/
3431 }
3432 {
3433 var255 = nitc___nitc__MClass___get_mtype(var_mclass, var_mtypes);
3434 }
3435 var_res = var255;
3436 {
3437 { /* Inline parser_nodes$AType$n_kwnullable (var_ntype) on <var_ntype:AType> */
3438 var258 = var_ntype->attrs[COLOR_nitc__parser_nodes__AType___n_kwnullable].val; /* _n_kwnullable on <var_ntype:AType> */
3439 var256 = var258;
3440 RET_LABEL257:(void)0;
3441 }
3442 }
3443 if (var256 == NULL) {
3444 var259 = 0; /* is null */
3445 } else {
3446 var259 = 1; /* arg is null and recv is not */
3447 }
3448 if (0) {
3449 { /* Inline kernel$Object$!= (var256,((val*)NULL)) on <var256:nullable TKwnullable> */
3450 var_other = ((val*)NULL);
3451 {
3452 var262 = ((short int(*)(val* self, val* p0))(var256->class->vft[COLOR_core__kernel__Object___61d_61d]))(var256, var_other); /* == on <var256:nullable TKwnullable(TKwnullable)>*/
3453 }
3454 var263 = !var262;
3455 var260 = var263;
3456 goto RET_LABEL261;
3457 RET_LABEL261:(void)0;
3458 }
3459 var259 = var260;
3460 }
3461 if (var259){
3462 {
3463 var264 = nitc___nitc__MType___as_nullable(var_res);
3464 }
3465 var_res = var264;
3466 } else {
3467 }
3468 {
3469 { /* Inline modelbuilder_base$AType$mtype= (var_ntype,var_res) on <var_ntype:AType> */
3470 var_ntype->attrs[COLOR_nitc__modelbuilder_base__AType___mtype].val = var_res; /* _mtype on <var_ntype:AType> */
3471 RET_LABEL265:(void)0;
3472 }
3473 }
3474 var = var_res;
3475 goto RET_LABEL;
3476 }
3477 } else {
3478 }
3479 {
3480 nitc___nitc__ModelBuilder___class_not_found(self, var_qid, var_mmodule); /* Direct call modelbuilder_base$ModelBuilder$class_not_found on <self:ModelBuilder>*/
3481 }
3482 {
3483 { /* Inline modelbuilder_base$ANode$is_broken= (var_ntype,1) on <var_ntype:AType> */
3484 var_ntype->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s = 1; /* _is_broken on <var_ntype:AType> */
3485 RET_LABEL266:(void)0;
3486 }
3487 }
3488 var = ((val*)NULL);
3489 goto RET_LABEL;
3490 RET_LABEL:;
3491 return var;
3492 }
3493 /* method modelbuilder_base$ModelBuilder$class_not_found for (self: ModelBuilder, AQclassid, MModule) */
3494 void nitc___nitc__ModelBuilder___class_not_found(val* self, val* p0, val* p1) {
3495 val* var_qid /* var qid: AQclassid */;
3496 val* var_mmodule /* var mmodule: MModule */;
3497 val* var /* : TClassid */;
3498 val* var2 /* : TClassid */;
3499 val* var3 /* : String */;
3500 val* var_name /* var name: String */;
3501 val* var4 /* : String */;
3502 val* var_qname /* var qname: String */;
3503 val* var5 /* : MultiHashMap[MModule, String] */;
3504 val* var7 /* : MultiHashMap[MModule, String] */;
3505 val* var8 /* : nullable Object */;
3506 short int var9 /* : Bool */;
3507 val* var10 /* : NativeArray[String] */;
3508 static val* varonce;
3509 static val* varonce11;
3510 val* var12 /* : String */;
3511 char* var13 /* : CString */;
3512 val* var14 /* : String */;
3513 val* var15 /* : nullable Int */;
3514 val* var16 /* : nullable Int */;
3515 val* var17 /* : nullable Bool */;
3516 val* var18 /* : nullable Bool */;
3517 static val* varonce19;
3518 val* var20 /* : String */;
3519 char* var21 /* : CString */;
3520 val* var22 /* : String */;
3521 val* var23 /* : nullable Int */;
3522 val* var24 /* : nullable Int */;
3523 val* var25 /* : nullable Bool */;
3524 val* var26 /* : nullable Bool */;
3525 static val* varonce27;
3526 val* var28 /* : String */;
3527 char* var29 /* : CString */;
3528 val* var30 /* : String */;
3529 val* var31 /* : nullable Int */;
3530 val* var32 /* : nullable Int */;
3531 val* var33 /* : nullable Bool */;
3532 val* var34 /* : nullable Bool */;
3533 val* var35 /* : String */;
3534 val* var36 /* : String */;
3535 val* var37 /* : MultiHashMap[MModule, String] */;
3536 val* var39 /* : MultiHashMap[MModule, String] */;
3537 val* var40 /* : nullable Object */;
3538 val* var41 /* : Model */;
3539 val* var43 /* : Model */;
3540 val* var44 /* : nullable Array[MClass] */;
3541 val* var_all_classes /* var all_classes: nullable Array[MClass] */;
3542 val* var45 /* : Array[String] */;
3543 val* var_hints /* var hints: Array[String] */;
3544 short int var46 /* : Bool */;
3545 short int var47 /* : Bool */;
3546 val* var_other /* var other: nullable Object */;
3547 short int var49 /* : Bool */;
3548 short int var50 /* : Bool */;
3549 val* var_ /* var : Array[MClass] */;
3550 val* var51 /* : IndexedIterator[nullable Object] */;
3551 val* var_52 /* var : IndexedIterator[MClass] */;
3552 short int var53 /* : Bool */;
3553 val* var54 /* : nullable Object */;
3554 val* var_c /* var c: MClass */;
3555 val* var55 /* : MModule */;
3556 val* var57 /* : MModule */;
3557 val* var58 /* : MVisibility */;
3558 val* var60 /* : MVisibility */;
3559 short int var61 /* : Bool */;
3560 short int var62 /* : Bool */;
3561 short int var64 /* : Bool */;
3562 short int var65 /* : Bool */;
3563 val* var67 /* : NativeArray[String] */;
3564 static val* varonce66;
3565 static val* varonce68;
3566 val* var69 /* : String */;
3567 char* var70 /* : CString */;
3568 val* var71 /* : String */;
3569 val* var72 /* : nullable Int */;
3570 val* var73 /* : nullable Int */;
3571 val* var74 /* : nullable Bool */;
3572 val* var75 /* : nullable Bool */;
3573 static val* varonce76;
3574 val* var77 /* : String */;
3575 char* var78 /* : CString */;
3576 val* var79 /* : String */;
3577 val* var80 /* : nullable Int */;
3578 val* var81 /* : nullable Int */;
3579 val* var82 /* : nullable Bool */;
3580 val* var83 /* : nullable Bool */;
3581 val* var84 /* : String */;
3582 val* var85 /* : String */;
3583 long var86 /* : Int */;
3584 long var88 /* : Int */;
3585 short int var89 /* : Bool */;
3586 short int var91 /* : Bool */;
3587 int cltype;
3588 int idtype;
3589 const char* var_class_name;
3590 short int var92 /* : Bool */;
3591 val* var94 /* : NativeArray[String] */;
3592 static val* varonce93;
3593 static val* varonce95;
3594 val* var96 /* : String */;
3595 char* var97 /* : CString */;
3596 val* var98 /* : String */;
3597 val* var99 /* : nullable Int */;
3598 val* var100 /* : nullable Int */;
3599 val* var101 /* : nullable Bool */;
3600 val* var102 /* : nullable Bool */;
3601 static val* varonce103;
3602 val* var104 /* : String */;
3603 char* var105 /* : CString */;
3604 val* var106 /* : String */;
3605 val* var107 /* : nullable Int */;
3606 val* var108 /* : nullable Int */;
3607 val* var109 /* : nullable Bool */;
3608 val* var110 /* : nullable Bool */;
3609 static val* varonce111;
3610 val* var112 /* : String */;
3611 char* var113 /* : CString */;
3612 val* var114 /* : String */;
3613 val* var115 /* : nullable Int */;
3614 val* var116 /* : nullable Int */;
3615 val* var117 /* : nullable Bool */;
3616 val* var118 /* : nullable Bool */;
3617 static val* varonce119;
3618 val* var120 /* : String */;
3619 char* var121 /* : CString */;
3620 val* var122 /* : String */;
3621 val* var123 /* : nullable Int */;
3622 val* var124 /* : nullable Int */;
3623 val* var125 /* : nullable Bool */;
3624 val* var126 /* : nullable Bool */;
3625 val* var127 /* : String */;
3626 static val* varonce128;
3627 val* var129 /* : String */;
3628 char* var130 /* : CString */;
3629 val* var131 /* : String */;
3630 val* var132 /* : nullable Int */;
3631 val* var133 /* : nullable Int */;
3632 val* var134 /* : nullable Bool */;
3633 val* var135 /* : nullable Bool */;
3634 static val* varonce136;
3635 val* var137 /* : String */;
3636 char* var138 /* : CString */;
3637 val* var139 /* : String */;
3638 val* var140 /* : nullable Int */;
3639 val* var141 /* : nullable Int */;
3640 val* var142 /* : nullable Bool */;
3641 val* var143 /* : nullable Bool */;
3642 val* var144 /* : String */;
3643 val* var145 /* : String */;
3644 short int var146 /* : Bool */;
3645 short int var147 /* : Bool */;
3646 short int var149 /* : Bool */;
3647 short int var150 /* : Bool */;
3648 val* var_151 /* var : Array[MClass] */;
3649 val* var152 /* : IndexedIterator[nullable Object] */;
3650 val* var_153 /* var : IndexedIterator[MClass] */;
3651 short int var154 /* : Bool */;
3652 val* var156 /* : nullable Object */;
3653 val* var_c157 /* var c: MClass */;
3654 val* var158 /* : POSetElement[MModule] */;
3655 val* var160 /* : POSetElement[MModule] */;
3656 val* var161 /* : MModule */;
3657 val* var163 /* : MModule */;
3658 short int var164 /* : Bool */;
3659 short int var165 /* : Bool */;
3660 val* var167 /* : MModule */;
3661 val* var169 /* : MModule */;
3662 val* var170 /* : MVisibility */;
3663 val* var172 /* : MVisibility */;
3664 short int var173 /* : Bool */;
3665 short int var174 /* : Bool */;
3666 short int var175 /* : Bool */;
3667 val* var177 /* : NativeArray[String] */;
3668 static val* varonce176;
3669 static val* varonce178;
3670 val* var179 /* : String */;
3671 char* var180 /* : CString */;
3672 val* var181 /* : String */;
3673 val* var182 /* : nullable Int */;
3674 val* var183 /* : nullable Int */;
3675 val* var184 /* : nullable Bool */;
3676 val* var185 /* : nullable Bool */;
3677 static val* varonce186;
3678 val* var187 /* : String */;
3679 char* var188 /* : CString */;
3680 val* var189 /* : String */;
3681 val* var190 /* : nullable Int */;
3682 val* var191 /* : nullable Int */;
3683 val* var192 /* : nullable Bool */;
3684 val* var193 /* : nullable Bool */;
3685 static val* varonce194;
3686 val* var195 /* : String */;
3687 char* var196 /* : CString */;
3688 val* var197 /* : String */;
3689 val* var198 /* : nullable Int */;
3690 val* var199 /* : nullable Int */;
3691 val* var200 /* : nullable Bool */;
3692 val* var201 /* : nullable Bool */;
3693 val* var202 /* : String */;
3694 val* var203 /* : String */;
3695 val* var204 /* : String */;
3696 short int var205 /* : Bool */;
3697 short int var206 /* : Bool */;
3698 short int var208 /* : Bool */;
3699 short int var209 /* : Bool */;
3700 val* var_210 /* var : Array[MClass] */;
3701 val* var211 /* : IndexedIterator[nullable Object] */;
3702 val* var_212 /* var : IndexedIterator[MClass] */;
3703 short int var213 /* : Bool */;
3704 val* var215 /* : nullable Object */;
3705 val* var_c216 /* var c: MClass */;
3706 val* var217 /* : POSetElement[MModule] */;
3707 val* var219 /* : POSetElement[MModule] */;
3708 val* var220 /* : MModule */;
3709 val* var222 /* : MModule */;
3710 short int var223 /* : Bool */;
3711 val* var225 /* : MModule */;
3712 val* var227 /* : MModule */;
3713 val* var228 /* : POSetElement[MModule] */;
3714 val* var230 /* : POSetElement[MModule] */;
3715 short int var231 /* : Bool */;
3716 val* var232 /* : MVisibility */;
3717 val* var234 /* : MVisibility */;
3718 val* var235 /* : Sys */;
3719 val* var236 /* : MVisibility */;
3720 short int var237 /* : Bool */;
3721 short int var238 /* : Bool */;
3722 short int var239 /* : Bool */;
3723 val* var241 /* : NativeArray[String] */;
3724 static val* varonce240;
3725 static val* varonce242;
3726 val* var243 /* : String */;
3727 char* var244 /* : CString */;
3728 val* var245 /* : String */;
3729 val* var246 /* : nullable Int */;
3730 val* var247 /* : nullable Int */;
3731 val* var248 /* : nullable Bool */;
3732 val* var249 /* : nullable Bool */;
3733 static val* varonce250;
3734 val* var251 /* : String */;
3735 char* var252 /* : CString */;
3736 val* var253 /* : String */;
3737 val* var254 /* : nullable Int */;
3738 val* var255 /* : nullable Int */;
3739 val* var256 /* : nullable Bool */;
3740 val* var257 /* : nullable Bool */;
3741 val* var258 /* : MModule */;
3742 val* var260 /* : MModule */;
3743 val* var261 /* : String */;
3744 val* var262 /* : String */;
3745 short int var263 /* : Bool */;
3746 val* var265 /* : NativeArray[String] */;
3747 static val* varonce264;
3748 static val* varonce266;
3749 val* var267 /* : String */;
3750 char* var268 /* : CString */;
3751 val* var269 /* : String */;
3752 val* var270 /* : nullable Int */;
3753 val* var271 /* : nullable Int */;
3754 val* var272 /* : nullable Bool */;
3755 val* var273 /* : nullable Bool */;
3756 static val* varonce274;
3757 val* var275 /* : String */;
3758 char* var276 /* : CString */;
3759 val* var277 /* : String */;
3760 val* var278 /* : nullable Int */;
3761 val* var279 /* : nullable Int */;
3762 val* var280 /* : nullable Bool */;
3763 val* var281 /* : nullable Bool */;
3764 static val* varonce282;
3765 val* var283 /* : String */;
3766 char* var284 /* : CString */;
3767 val* var285 /* : String */;
3768 val* var286 /* : nullable Int */;
3769 val* var287 /* : nullable Int */;
3770 val* var288 /* : nullable Bool */;
3771 val* var289 /* : nullable Bool */;
3772 static val* varonce290;
3773 val* var291 /* : String */;
3774 char* var292 /* : CString */;
3775 val* var293 /* : String */;
3776 val* var294 /* : nullable Int */;
3777 val* var295 /* : nullable Int */;
3778 val* var296 /* : nullable Bool */;
3779 val* var297 /* : nullable Bool */;
3780 val* var298 /* : String */;
3781 static val* varonce299;
3782 val* var300 /* : String */;
3783 char* var301 /* : CString */;
3784 val* var302 /* : String */;
3785 val* var303 /* : nullable Int */;
3786 val* var304 /* : nullable Int */;
3787 val* var305 /* : nullable Bool */;
3788 val* var306 /* : nullable Bool */;
3789 static val* varonce307;
3790 val* var308 /* : String */;
3791 char* var309 /* : CString */;
3792 val* var310 /* : String */;
3793 val* var311 /* : nullable Int */;
3794 val* var312 /* : nullable Int */;
3795 val* var313 /* : nullable Bool */;
3796 val* var314 /* : nullable Bool */;
3797 val* var315 /* : String */;
3798 val* var316 /* : String */;
3799 val* var317 /* : BestDistance[MClass] */;
3800 long var318 /* : Int */;
3801 long var319 /* : Int */;
3802 long var320 /* : Int */;
3803 short int var322 /* : Bool */;
3804 int cltype323;
3805 int idtype324;
3806 const char* var_class_name325;
3807 long var326 /* : Int */;
3808 long var327 /* : Int */;
3809 short int var329 /* : Bool */;
3810 int cltype330;
3811 int idtype331;
3812 const char* var_class_name332;
3813 long var333 /* : Int */;
3814 val* var_bests /* var bests: BestDistance[MClass] */;
3815 val* var334 /* : Model */;
3816 val* var336 /* : Model */;
3817 val* var337 /* : Array[MClass] */;
3818 val* var339 /* : Array[MClass] */;
3819 val* var_340 /* var : Array[MClass] */;
3820 val* var341 /* : IndexedIterator[nullable Object] */;
3821 val* var_342 /* var : IndexedIterator[MClass] */;
3822 short int var343 /* : Bool */;
3823 val* var345 /* : nullable Object */;
3824 val* var_c346 /* var c: MClass */;
3825 val* var347 /* : POSetElement[MModule] */;
3826 val* var349 /* : POSetElement[MModule] */;
3827 val* var350 /* : MModule */;
3828 val* var352 /* : MModule */;
3829 short int var353 /* : Bool */;
3830 short int var354 /* : Bool */;
3831 val* var356 /* : MModule */;
3832 val* var358 /* : MModule */;
3833 val* var359 /* : MVisibility */;
3834 val* var361 /* : MVisibility */;
3835 short int var362 /* : Bool */;
3836 short int var363 /* : Bool */;
3837 val* var364 /* : String */;
3838 val* var366 /* : String */;
3839 long var367 /* : Int */;
3840 long var_d /* var d: Int */;
3841 short int var368 /* : Bool */;
3842 val* var369 /* : String */;
3843 long var370 /* : Int */;
3844 short int var371 /* : Bool */;
3845 val* var372 /* : Set[nullable Object] */;
3846 val* var374 /* : Set[nullable Object] */;
3847 short int var375 /* : Bool */;
3848 val* var376 /* : Set[nullable Object] */;
3849 val* var378 /* : Set[nullable Object] */;
3850 val* var_379 /* var : Set[MClass] */;
3851 val* var380 /* : Iterator[nullable Object] */;
3852 val* var_381 /* var : Iterator[MClass] */;
3853 short int var382 /* : Bool */;
3854 val* var384 /* : nullable Object */;
3855 val* var_c385 /* var c: MClass */;
3856 val* var387 /* : NativeArray[String] */;
3857 static val* varonce386;
3858 static val* varonce388;
3859 val* var389 /* : String */;
3860 char* var390 /* : CString */;
3861 val* var391 /* : String */;
3862 val* var392 /* : nullable Int */;
3863 val* var393 /* : nullable Int */;
3864 val* var394 /* : nullable Bool */;
3865 val* var395 /* : nullable Bool */;
3866 static val* varonce396;
3867 val* var397 /* : String */;
3868 char* var398 /* : CString */;
3869 val* var399 /* : String */;
3870 val* var400 /* : nullable Int */;
3871 val* var401 /* : nullable Int */;
3872 val* var402 /* : nullable Bool */;
3873 val* var403 /* : nullable Bool */;
3874 val* var404 /* : String */;
3875 val* var405 /* : String */;
3876 val* var407 /* : NativeArray[String] */;
3877 static val* varonce406;
3878 static val* varonce408;
3879 val* var409 /* : String */;
3880 char* var410 /* : CString */;
3881 val* var411 /* : String */;
3882 val* var412 /* : nullable Int */;
3883 val* var413 /* : nullable Int */;
3884 val* var414 /* : nullable Bool */;
3885 val* var415 /* : nullable Bool */;
3886 static val* varonce416;
3887 val* var417 /* : String */;
3888 char* var418 /* : CString */;
3889 val* var419 /* : String */;
3890 val* var420 /* : nullable Int */;
3891 val* var421 /* : nullable Int */;
3892 val* var422 /* : nullable Bool */;
3893 val* var423 /* : nullable Bool */;
3894 static val* varonce424;
3895 val* var425 /* : String */;
3896 char* var426 /* : CString */;
3897 val* var427 /* : String */;
3898 val* var428 /* : nullable Int */;
3899 val* var429 /* : nullable Int */;
3900 val* var430 /* : nullable Bool */;
3901 val* var431 /* : nullable Bool */;
3902 static val* varonce432;
3903 val* var433 /* : String */;
3904 char* var434 /* : CString */;
3905 val* var435 /* : String */;
3906 val* var436 /* : nullable Int */;
3907 val* var437 /* : nullable Int */;
3908 val* var438 /* : nullable Bool */;
3909 val* var439 /* : nullable Bool */;
3910 val* var440 /* : String */;
3911 static val* varonce441;
3912 val* var442 /* : String */;
3913 char* var443 /* : CString */;
3914 val* var444 /* : String */;
3915 val* var445 /* : nullable Int */;
3916 val* var446 /* : nullable Int */;
3917 val* var447 /* : nullable Bool */;
3918 val* var448 /* : nullable Bool */;
3919 static val* varonce449;
3920 val* var450 /* : String */;
3921 char* var451 /* : CString */;
3922 val* var452 /* : String */;
3923 val* var453 /* : nullable Int */;
3924 val* var454 /* : nullable Int */;
3925 val* var455 /* : nullable Bool */;
3926 val* var456 /* : nullable Bool */;
3927 val* var457 /* : String */;
3928 val* var458 /* : String */;
3929 val* var460 /* : NativeArray[String] */;
3930 static val* varonce459;
3931 static val* varonce461;
3932 val* var462 /* : String */;
3933 char* var463 /* : CString */;
3934 val* var464 /* : String */;
3935 val* var465 /* : nullable Int */;
3936 val* var466 /* : nullable Int */;
3937 val* var467 /* : nullable Bool */;
3938 val* var468 /* : nullable Bool */;
3939 static val* varonce469;
3940 val* var470 /* : String */;
3941 char* var471 /* : CString */;
3942 val* var472 /* : String */;
3943 val* var473 /* : nullable Int */;
3944 val* var474 /* : nullable Int */;
3945 val* var475 /* : nullable Bool */;
3946 val* var476 /* : nullable Bool */;
3947 static val* varonce477;
3948 val* var478 /* : String */;
3949 char* var479 /* : CString */;
3950 val* var480 /* : String */;
3951 val* var481 /* : nullable Int */;
3952 val* var482 /* : nullable Int */;
3953 val* var483 /* : nullable Bool */;
3954 val* var484 /* : nullable Bool */;
3955 val* var485 /* : String */;
3956 val* var486 /* : String */;
3957 var_qid = p0;
3958 var_mmodule = p1;
3959 {
3960 { /* Inline parser_nodes$AQclassid$n_id (var_qid) on <var_qid:AQclassid> */
3961 var2 = var_qid->attrs[COLOR_nitc__parser_nodes__AQclassid___n_id].val; /* _n_id on <var_qid:AQclassid> */
3962 if (unlikely(var2 == NULL)) {
3963 if(catchStack.cursor >= 0){
3964 longjmp(catchStack.envs[catchStack.cursor], 1);
3965 }
3966 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
3967 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1733);
3968 fatal_exit(1);
3969 }
3970 var = var2;
3971 RET_LABEL1:(void)0;
3972 }
3973 }
3974 {
3975 var3 = nitc__lexer_work___Token___text(var);
3976 }
3977 var_name = var3;
3978 {
3979 var4 = nitc__modelbuilder_base___AQclassid___full_name(var_qid);
3980 }
3981 var_qname = var4;
3982 {
3983 { /* Inline modelbuilder_base$ModelBuilder$bad_class_names (self) on <self:ModelBuilder> */
3984 var7 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___bad_class_names].val; /* _bad_class_names on <self:ModelBuilder> */
3985 if (unlikely(var7 == NULL)) {
3986 if(catchStack.cursor >= 0){
3987 longjmp(catchStack.envs[catchStack.cursor], 1);
3988 }
3989 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bad_class_names");
3990 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 413);
3991 fatal_exit(1);
3992 }
3993 var5 = var7;
3994 RET_LABEL6:(void)0;
3995 }
3996 }
3997 {
3998 var8 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var5, var_mmodule);
3999 }
4000 {
4001 var9 = core___core__AbstractArrayRead___core__abstract_collection__Collection__has(var8, var_qname);
4002 }
4003 if (var9){
4004 if (unlikely(varonce==NULL)) {
4005 var10 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
4006 if (likely(varonce11!=NULL)) {
4007 var12 = varonce11;
4008 } else {
4009 var13 = "Error: class `";
4010 var15 = (val*)(14l<<2|1);
4011 var16 = (val*)(14l<<2|1);
4012 var17 = (val*)((long)(0)<<2|3);
4013 var18 = (val*)((long)(0)<<2|3);
4014 var14 = core__flat___CString___to_s_unsafe(var13, var15, var16, var17, var18);
4015 var12 = var14;
4016 varonce11 = var12;
4017 }
4018 ((struct instance_core__NativeArray*)var10)->values[0]=var12;
4019 if (likely(varonce19!=NULL)) {
4020 var20 = varonce19;
4021 } else {
4022 var21 = "` not found in module `";
4023 var23 = (val*)(23l<<2|1);
4024 var24 = (val*)(23l<<2|1);
4025 var25 = (val*)((long)(0)<<2|3);
4026 var26 = (val*)((long)(0)<<2|3);
4027 var22 = core__flat___CString___to_s_unsafe(var21, var23, var24, var25, var26);
4028 var20 = var22;
4029 varonce19 = var20;
4030 }
4031 ((struct instance_core__NativeArray*)var10)->values[2]=var20;
4032 if (likely(varonce27!=NULL)) {
4033 var28 = varonce27;
4034 } else {
4035 var29 = "`.";
4036 var31 = (val*)(2l<<2|1);
4037 var32 = (val*)(2l<<2|1);
4038 var33 = (val*)((long)(0)<<2|3);
4039 var34 = (val*)((long)(0)<<2|3);
4040 var30 = core__flat___CString___to_s_unsafe(var29, var31, var32, var33, var34);
4041 var28 = var30;
4042 varonce27 = var28;
4043 }
4044 ((struct instance_core__NativeArray*)var10)->values[4]=var28;
4045 } else {
4046 var10 = varonce;
4047 varonce = NULL;
4048 }
4049 ((struct instance_core__NativeArray*)var10)->values[1]=var_qname;
4050 {
4051 var35 = ((val*(*)(val* self))(var_mmodule->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmodule); /* to_s on <var_mmodule:MModule>*/
4052 }
4053 ((struct instance_core__NativeArray*)var10)->values[3]=var35;
4054 {
4055 var36 = ((val*(*)(val* self))(var10->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var10); /* native_to_s on <var10:NativeArray[String]>*/
4056 }
4057 varonce = var10;
4058 {
4059 nitc___nitc__ModelBuilder___error(self, var_qid, var36); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
4060 }
4061 goto RET_LABEL;
4062 } else {
4063 }
4064 {
4065 { /* Inline modelbuilder_base$ModelBuilder$bad_class_names (self) on <self:ModelBuilder> */
4066 var39 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___bad_class_names].val; /* _bad_class_names on <self:ModelBuilder> */
4067 if (unlikely(var39 == NULL)) {
4068 if(catchStack.cursor >= 0){
4069 longjmp(catchStack.envs[catchStack.cursor], 1);
4070 }
4071 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bad_class_names");
4072 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 413);
4073 fatal_exit(1);
4074 }
4075 var37 = var39;
4076 RET_LABEL38:(void)0;
4077 }
4078 }
4079 {
4080 var40 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var37, var_mmodule);
4081 }
4082 {
4083 core___core__Array___core__abstract_collection__SimpleCollection__add(var40, var_qname); /* Direct call array$Array$add on <var40:nullable Object(Array[String])>*/
4084 }
4085 {
4086 { /* Inline modelbuilder_base$ModelBuilder$model (self) on <self:ModelBuilder> */
4087 var43 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___model].val; /* _model on <self:ModelBuilder> */
4088 if (unlikely(var43 == NULL)) {
4089 if(catchStack.cursor >= 0){
4090 longjmp(catchStack.envs[catchStack.cursor], 1);
4091 }
4092 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
4093 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 44);
4094 fatal_exit(1);
4095 }
4096 var41 = var43;
4097 RET_LABEL42:(void)0;
4098 }
4099 }
4100 {
4101 var44 = nitc__model___Model___get_mclasses_by_name(var41, var_name);
4102 }
4103 var_all_classes = var44;
4104 var45 = NEW_core__Array(&type_core__Array__core__String);
4105 {
4106 core___core__Array___core__kernel__Object__init(var45); /* Direct call array$Array$init on <var45:Array[String]>*/
4107 }
4108 var_hints = var45;
4109 if (var_all_classes == NULL) {
4110 var46 = 0; /* is null */
4111 } else {
4112 var46 = 1; /* arg is null and recv is not */
4113 }
4114 if (0) {
4115 { /* Inline kernel$Object$!= (var_all_classes,((val*)NULL)) on <var_all_classes:nullable Array[MClass]> */
4116 var_other = ((val*)NULL);
4117 {
4118 var49 = ((short int(*)(val* self, val* p0))(var_all_classes->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_all_classes, var_other); /* == on <var_all_classes:nullable Array[MClass](Array[MClass])>*/
4119 }
4120 var50 = !var49;
4121 var47 = var50;
4122 goto RET_LABEL48;
4123 RET_LABEL48:(void)0;
4124 }
4125 var46 = var47;
4126 }
4127 if (var46){
4128 var_ = var_all_classes;
4129 {
4130 var51 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
4131 }
4132 var_52 = var51;
4133 for(;;) {
4134 {
4135 var53 = ((short int(*)(val* self))((((long)var_52&3)?class_info[((long)var_52&3)]:var_52->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_52); /* is_ok on <var_52:IndexedIterator[MClass]>*/
4136 }
4137 if (var53){
4138 } else {
4139 goto BREAK_label;
4140 }
4141 {
4142 var54 = ((val*(*)(val* self))((((long)var_52&3)?class_info[((long)var_52&3)]:var_52->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_52); /* item on <var_52:IndexedIterator[MClass]>*/
4143 }
4144 var_c = var54;
4145 {
4146 { /* Inline model$MClass$intro_mmodule (var_c) on <var_c:MClass> */
4147 var57 = var_c->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_c:MClass> */
4148 if (unlikely(var57 == NULL)) {
4149 if(catchStack.cursor >= 0){
4150 longjmp(catchStack.envs[catchStack.cursor], 1);
4151 }
4152 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
4153 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390);
4154 fatal_exit(1);
4155 }
4156 var55 = var57;
4157 RET_LABEL56:(void)0;
4158 }
4159 }
4160 {
4161 { /* Inline model$MClass$visibility (var_c) on <var_c:MClass> */
4162 var60 = var_c->attrs[COLOR_nitc__model__MClass___visibility].val; /* _visibility on <var_c:MClass> */
4163 if (unlikely(var60 == NULL)) {
4164 if(catchStack.cursor >= 0){
4165 longjmp(catchStack.envs[catchStack.cursor], 1);
4166 }
4167 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
4168 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 476);
4169 fatal_exit(1);
4170 }
4171 var58 = var60;
4172 RET_LABEL59:(void)0;
4173 }
4174 }
4175 {
4176 var61 = nitc___nitc__MModule___is_visible(var_mmodule, var55, var58);
4177 }
4178 var62 = !var61;
4179 if (var62){
4180 goto BREAK_label63;
4181 } else {
4182 }
4183 {
4184 var64 = nitc__modelbuilder_base___AQclassid___accept(var_qid, var_c);
4185 }
4186 var65 = !var64;
4187 if (var65){
4188 goto BREAK_label63;
4189 } else {
4190 }
4191 if (unlikely(varonce66==NULL)) {
4192 var67 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4193 if (likely(varonce68!=NULL)) {
4194 var69 = varonce68;
4195 } else {
4196 var70 = "`";
4197 var72 = (val*)(1l<<2|1);
4198 var73 = (val*)(1l<<2|1);
4199 var74 = (val*)((long)(0)<<2|3);
4200 var75 = (val*)((long)(0)<<2|3);
4201 var71 = core__flat___CString___to_s_unsafe(var70, var72, var73, var74, var75);
4202 var69 = var71;
4203 varonce68 = var69;
4204 }
4205 ((struct instance_core__NativeArray*)var67)->values[0]=var69;
4206 if (likely(varonce76!=NULL)) {
4207 var77 = varonce76;
4208 } else {
4209 var78 = "`";
4210 var80 = (val*)(1l<<2|1);
4211 var81 = (val*)(1l<<2|1);
4212 var82 = (val*)((long)(0)<<2|3);
4213 var83 = (val*)((long)(0)<<2|3);
4214 var79 = core__flat___CString___to_s_unsafe(var78, var80, var81, var82, var83);
4215 var77 = var79;
4216 varonce76 = var77;
4217 }
4218 ((struct instance_core__NativeArray*)var67)->values[2]=var77;
4219 } else {
4220 var67 = varonce66;
4221 varonce66 = NULL;
4222 }
4223 {
4224 var84 = nitc___nitc__MClass___nitc__model_base__MEntity__full_name(var_c);
4225 }
4226 ((struct instance_core__NativeArray*)var67)->values[1]=var84;
4227 {
4228 var85 = ((val*(*)(val* self))(var67->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var67); /* native_to_s on <var67:NativeArray[String]>*/
4229 }
4230 varonce66 = var67;
4231 {
4232 core___core__Array___core__abstract_collection__SimpleCollection__add(var_hints, var85); /* Direct call array$Array$add on <var_hints:Array[String]>*/
4233 }
4234 BREAK_label63: (void)0;
4235 {
4236 ((void(*)(val* self))((((long)var_52&3)?class_info[((long)var_52&3)]:var_52->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_52); /* next on <var_52:IndexedIterator[MClass]>*/
4237 }
4238 }
4239 BREAK_label: (void)0;
4240 {
4241 ((void(*)(val* self))((((long)var_52&3)?class_info[((long)var_52&3)]:var_52->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_52); /* finish on <var_52:IndexedIterator[MClass]>*/
4242 }
4243 } else {
4244 }
4245 {
4246 { /* Inline array$AbstractArrayRead$length (var_hints) on <var_hints:Array[String]> */
4247 var88 = var_hints->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_hints:Array[String]> */
4248 var86 = var88;
4249 RET_LABEL87:(void)0;
4250 }
4251 }
4252 {
4253 { /* Inline kernel$Int$> (var86,1l) on <var86:Int> */
4254 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4255 /* <1l:Int> isa OTHER */
4256 var91 = 1; /* easy <1l:Int> isa OTHER*/
4257 if (unlikely(!var91)) {
4258 var_class_name = type_core__Int.name;
4259 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4260 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
4261 fatal_exit(1);
4262 }
4263 var92 = var86 > 1l;
4264 var89 = var92;
4265 goto RET_LABEL90;
4266 RET_LABEL90:(void)0;
4267 }
4268 }
4269 if (var89){
4270 if (unlikely(varonce93==NULL)) {
4271 var94 = NEW_core__NativeArray((int)7l, &type_core__NativeArray__core__String);
4272 if (likely(varonce95!=NULL)) {
4273 var96 = varonce95;
4274 } else {
4275 var97 = "Error: ambiguous class name `";
4276 var99 = (val*)(29l<<2|1);
4277 var100 = (val*)(29l<<2|1);
4278 var101 = (val*)((long)(0)<<2|3);
4279 var102 = (val*)((long)(0)<<2|3);
4280 var98 = core__flat___CString___to_s_unsafe(var97, var99, var100, var101, var102);
4281 var96 = var98;
4282 varonce95 = var96;
4283 }
4284 ((struct instance_core__NativeArray*)var94)->values[0]=var96;
4285 if (likely(varonce103!=NULL)) {
4286 var104 = varonce103;
4287 } else {
4288 var105 = "` in module `";
4289 var107 = (val*)(13l<<2|1);
4290 var108 = (val*)(13l<<2|1);
4291 var109 = (val*)((long)(0)<<2|3);
4292 var110 = (val*)((long)(0)<<2|3);
4293 var106 = core__flat___CString___to_s_unsafe(var105, var107, var108, var109, var110);
4294 var104 = var106;
4295 varonce103 = var104;
4296 }
4297 ((struct instance_core__NativeArray*)var94)->values[2]=var104;
4298 if (likely(varonce111!=NULL)) {
4299 var112 = varonce111;
4300 } else {
4301 var113 = "`. Conflicts are between ";
4302 var115 = (val*)(25l<<2|1);
4303 var116 = (val*)(25l<<2|1);
4304 var117 = (val*)((long)(0)<<2|3);
4305 var118 = (val*)((long)(0)<<2|3);
4306 var114 = core__flat___CString___to_s_unsafe(var113, var115, var116, var117, var118);
4307 var112 = var114;
4308 varonce111 = var112;
4309 }
4310 ((struct instance_core__NativeArray*)var94)->values[4]=var112;
4311 if (likely(varonce119!=NULL)) {
4312 var120 = varonce119;
4313 } else {
4314 var121 = ".";
4315 var123 = (val*)(1l<<2|1);
4316 var124 = (val*)(1l<<2|1);
4317 var125 = (val*)((long)(0)<<2|3);
4318 var126 = (val*)((long)(0)<<2|3);
4319 var122 = core__flat___CString___to_s_unsafe(var121, var123, var124, var125, var126);
4320 var120 = var122;
4321 varonce119 = var120;
4322 }
4323 ((struct instance_core__NativeArray*)var94)->values[6]=var120;
4324 } else {
4325 var94 = varonce93;
4326 varonce93 = NULL;
4327 }
4328 ((struct instance_core__NativeArray*)var94)->values[1]=var_qname;
4329 {
4330 var127 = ((val*(*)(val* self))(var_mmodule->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmodule); /* to_s on <var_mmodule:MModule>*/
4331 }
4332 ((struct instance_core__NativeArray*)var94)->values[3]=var127;
4333 if (likely(varonce128!=NULL)) {
4334 var129 = varonce128;
4335 } else {
4336 var130 = ",";
4337 var132 = (val*)(1l<<2|1);
4338 var133 = (val*)(1l<<2|1);
4339 var134 = (val*)((long)(0)<<2|3);
4340 var135 = (val*)((long)(0)<<2|3);
4341 var131 = core__flat___CString___to_s_unsafe(var130, var132, var133, var134, var135);
4342 var129 = var131;
4343 varonce128 = var129;
4344 }
4345 if (likely(varonce136!=NULL)) {
4346 var137 = varonce136;
4347 } else {
4348 var138 = " and ";
4349 var140 = (val*)(5l<<2|1);
4350 var141 = (val*)(5l<<2|1);
4351 var142 = (val*)((long)(0)<<2|3);
4352 var143 = (val*)((long)(0)<<2|3);
4353 var139 = core__flat___CString___to_s_unsafe(var138, var140, var141, var142, var143);
4354 var137 = var139;
4355 varonce136 = var137;
4356 }
4357 {
4358 var144 = core__abstract_text___Collection___join(var_hints, var129, var137);
4359 }
4360 ((struct instance_core__NativeArray*)var94)->values[5]=var144;
4361 {
4362 var145 = ((val*(*)(val* self))(var94->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var94); /* native_to_s on <var94:NativeArray[String]>*/
4363 }
4364 varonce93 = var94;
4365 {
4366 nitc___nitc__ModelBuilder___error(self, var_qid, var145); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
4367 }
4368 goto RET_LABEL;
4369 } else {
4370 }
4371 {
4372 core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var_hints); /* Direct call array$AbstractArray$clear on <var_hints:Array[String]>*/
4373 }
4374 if (var_all_classes == NULL) {
4375 var146 = 0; /* is null */
4376 } else {
4377 var146 = 1; /* arg is null and recv is not */
4378 }
4379 if (0) {
4380 { /* Inline kernel$Object$!= (var_all_classes,((val*)NULL)) on <var_all_classes:nullable Array[MClass]> */
4381 var_other = ((val*)NULL);
4382 {
4383 var149 = ((short int(*)(val* self, val* p0))(var_all_classes->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_all_classes, var_other); /* == on <var_all_classes:nullable Array[MClass](Array[MClass])>*/
4384 }
4385 var150 = !var149;
4386 var147 = var150;
4387 goto RET_LABEL148;
4388 RET_LABEL148:(void)0;
4389 }
4390 var146 = var147;
4391 }
4392 if (var146){
4393 var_151 = var_all_classes;
4394 {
4395 var152 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_151);
4396 }
4397 var_153 = var152;
4398 for(;;) {
4399 {
4400 var154 = ((short int(*)(val* self))((((long)var_153&3)?class_info[((long)var_153&3)]:var_153->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_153); /* is_ok on <var_153:IndexedIterator[MClass]>*/
4401 }
4402 if (var154){
4403 } else {
4404 goto BREAK_label155;
4405 }
4406 {
4407 var156 = ((val*(*)(val* self))((((long)var_153&3)?class_info[((long)var_153&3)]:var_153->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_153); /* item on <var_153:IndexedIterator[MClass]>*/
4408 }
4409 var_c157 = var156;
4410 {
4411 { /* Inline mmodule$MModule$in_importation (var_mmodule) on <var_mmodule:MModule> */
4412 var160 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
4413 if (unlikely(var160 == NULL)) {
4414 if(catchStack.cursor >= 0){
4415 longjmp(catchStack.envs[catchStack.cursor], 1);
4416 }
4417 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
4418 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
4419 fatal_exit(1);
4420 }
4421 var158 = var160;
4422 RET_LABEL159:(void)0;
4423 }
4424 }
4425 {
4426 { /* Inline model$MClass$intro_mmodule (var_c157) on <var_c157:MClass> */
4427 var163 = var_c157->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_c157:MClass> */
4428 if (unlikely(var163 == NULL)) {
4429 if(catchStack.cursor >= 0){
4430 longjmp(catchStack.envs[catchStack.cursor], 1);
4431 }
4432 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
4433 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390);
4434 fatal_exit(1);
4435 }
4436 var161 = var163;
4437 RET_LABEL162:(void)0;
4438 }
4439 }
4440 {
4441 var164 = poset___poset__POSetElement____60d_61d(var158, var161);
4442 }
4443 var165 = !var164;
4444 if (var165){
4445 goto BREAK_label166;
4446 } else {
4447 }
4448 {
4449 { /* Inline model$MClass$intro_mmodule (var_c157) on <var_c157:MClass> */
4450 var169 = var_c157->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_c157:MClass> */
4451 if (unlikely(var169 == NULL)) {
4452 if(catchStack.cursor >= 0){
4453 longjmp(catchStack.envs[catchStack.cursor], 1);
4454 }
4455 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
4456 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390);
4457 fatal_exit(1);
4458 }
4459 var167 = var169;
4460 RET_LABEL168:(void)0;
4461 }
4462 }
4463 {
4464 { /* Inline model$MClass$visibility (var_c157) on <var_c157:MClass> */
4465 var172 = var_c157->attrs[COLOR_nitc__model__MClass___visibility].val; /* _visibility on <var_c157:MClass> */
4466 if (unlikely(var172 == NULL)) {
4467 if(catchStack.cursor >= 0){
4468 longjmp(catchStack.envs[catchStack.cursor], 1);
4469 }
4470 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
4471 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 476);
4472 fatal_exit(1);
4473 }
4474 var170 = var172;
4475 RET_LABEL171:(void)0;
4476 }
4477 }
4478 {
4479 var173 = nitc___nitc__MModule___is_visible(var_mmodule, var167, var170);
4480 }
4481 if (var173){
4482 goto BREAK_label166;
4483 } else {
4484 }
4485 {
4486 var174 = nitc__modelbuilder_base___AQclassid___accept(var_qid, var_c157);
4487 }
4488 var175 = !var174;
4489 if (var175){
4490 goto BREAK_label166;
4491 } else {
4492 }
4493 if (unlikely(varonce176==NULL)) {
4494 var177 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
4495 if (likely(varonce178!=NULL)) {
4496 var179 = varonce178;
4497 } else {
4498 var180 = "Error: class `";
4499 var182 = (val*)(14l<<2|1);
4500 var183 = (val*)(14l<<2|1);
4501 var184 = (val*)((long)(0)<<2|3);
4502 var185 = (val*)((long)(0)<<2|3);
4503 var181 = core__flat___CString___to_s_unsafe(var180, var182, var183, var184, var185);
4504 var179 = var181;
4505 varonce178 = var179;
4506 }
4507 ((struct instance_core__NativeArray*)var177)->values[0]=var179;
4508 if (likely(varonce186!=NULL)) {
4509 var187 = varonce186;
4510 } else {
4511 var188 = "` not visible in module `";
4512 var190 = (val*)(25l<<2|1);
4513 var191 = (val*)(25l<<2|1);
4514 var192 = (val*)((long)(0)<<2|3);
4515 var193 = (val*)((long)(0)<<2|3);
4516 var189 = core__flat___CString___to_s_unsafe(var188, var190, var191, var192, var193);
4517 var187 = var189;
4518 varonce186 = var187;
4519 }
4520 ((struct instance_core__NativeArray*)var177)->values[2]=var187;
4521 if (likely(varonce194!=NULL)) {
4522 var195 = varonce194;
4523 } else {
4524 var196 = "`.";
4525 var198 = (val*)(2l<<2|1);
4526 var199 = (val*)(2l<<2|1);
4527 var200 = (val*)((long)(0)<<2|3);
4528 var201 = (val*)((long)(0)<<2|3);
4529 var197 = core__flat___CString___to_s_unsafe(var196, var198, var199, var200, var201);
4530 var195 = var197;
4531 varonce194 = var195;
4532 }
4533 ((struct instance_core__NativeArray*)var177)->values[4]=var195;
4534 } else {
4535 var177 = varonce176;
4536 varonce176 = NULL;
4537 }
4538 {
4539 var202 = nitc___nitc__MClass___nitc__model_base__MEntity__full_name(var_c157);
4540 }
4541 ((struct instance_core__NativeArray*)var177)->values[1]=var202;
4542 {
4543 var203 = ((val*(*)(val* self))(var_mmodule->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmodule); /* to_s on <var_mmodule:MModule>*/
4544 }
4545 ((struct instance_core__NativeArray*)var177)->values[3]=var203;
4546 {
4547 var204 = ((val*(*)(val* self))(var177->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var177); /* native_to_s on <var177:NativeArray[String]>*/
4548 }
4549 varonce176 = var177;
4550 {
4551 nitc___nitc__ModelBuilder___error(self, var_qid, var204); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
4552 }
4553 goto RET_LABEL;
4554 BREAK_label166: (void)0;
4555 {
4556 ((void(*)(val* self))((((long)var_153&3)?class_info[((long)var_153&3)]:var_153->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_153); /* next on <var_153:IndexedIterator[MClass]>*/
4557 }
4558 }
4559 BREAK_label155: (void)0;
4560 {
4561 ((void(*)(val* self))((((long)var_153&3)?class_info[((long)var_153&3)]:var_153->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_153); /* finish on <var_153:IndexedIterator[MClass]>*/
4562 }
4563 } else {
4564 }
4565 if (var_all_classes == NULL) {
4566 var205 = 0; /* is null */
4567 } else {
4568 var205 = 1; /* arg is null and recv is not */
4569 }
4570 if (0) {
4571 { /* Inline kernel$Object$!= (var_all_classes,((val*)NULL)) on <var_all_classes:nullable Array[MClass]> */
4572 var_other = ((val*)NULL);
4573 {
4574 var208 = ((short int(*)(val* self, val* p0))(var_all_classes->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_all_classes, var_other); /* == on <var_all_classes:nullable Array[MClass](Array[MClass])>*/
4575 }
4576 var209 = !var208;
4577 var206 = var209;
4578 goto RET_LABEL207;
4579 RET_LABEL207:(void)0;
4580 }
4581 var205 = var206;
4582 }
4583 if (var205){
4584 var_210 = var_all_classes;
4585 {
4586 var211 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_210);
4587 }
4588 var_212 = var211;
4589 for(;;) {
4590 {
4591 var213 = ((short int(*)(val* self))((((long)var_212&3)?class_info[((long)var_212&3)]:var_212->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_212); /* is_ok on <var_212:IndexedIterator[MClass]>*/
4592 }
4593 if (var213){
4594 } else {
4595 goto BREAK_label214;
4596 }
4597 {
4598 var215 = ((val*(*)(val* self))((((long)var_212&3)?class_info[((long)var_212&3)]:var_212->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_212); /* item on <var_212:IndexedIterator[MClass]>*/
4599 }
4600 var_c216 = var215;
4601 {
4602 { /* Inline mmodule$MModule$in_importation (var_mmodule) on <var_mmodule:MModule> */
4603 var219 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
4604 if (unlikely(var219 == NULL)) {
4605 if(catchStack.cursor >= 0){
4606 longjmp(catchStack.envs[catchStack.cursor], 1);
4607 }
4608 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
4609 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
4610 fatal_exit(1);
4611 }
4612 var217 = var219;
4613 RET_LABEL218:(void)0;
4614 }
4615 }
4616 {
4617 { /* Inline model$MClass$intro_mmodule (var_c216) on <var_c216:MClass> */
4618 var222 = var_c216->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_c216:MClass> */
4619 if (unlikely(var222 == NULL)) {
4620 if(catchStack.cursor >= 0){
4621 longjmp(catchStack.envs[catchStack.cursor], 1);
4622 }
4623 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
4624 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390);
4625 fatal_exit(1);
4626 }
4627 var220 = var222;
4628 RET_LABEL221:(void)0;
4629 }
4630 }
4631 {
4632 var223 = poset___poset__POSetElement____60d_61d(var217, var220);
4633 }
4634 if (var223){
4635 goto BREAK_label224;
4636 } else {
4637 }
4638 {
4639 { /* Inline model$MClass$intro_mmodule (var_c216) on <var_c216:MClass> */
4640 var227 = var_c216->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_c216:MClass> */
4641 if (unlikely(var227 == NULL)) {
4642 if(catchStack.cursor >= 0){
4643 longjmp(catchStack.envs[catchStack.cursor], 1);
4644 }
4645 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
4646 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390);
4647 fatal_exit(1);
4648 }
4649 var225 = var227;
4650 RET_LABEL226:(void)0;
4651 }
4652 }
4653 {
4654 { /* Inline mmodule$MModule$in_importation (var225) on <var225:MModule> */
4655 var230 = var225->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var225:MModule> */
4656 if (unlikely(var230 == NULL)) {
4657 if(catchStack.cursor >= 0){
4658 longjmp(catchStack.envs[catchStack.cursor], 1);
4659 }
4660 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
4661 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
4662 fatal_exit(1);
4663 }
4664 var228 = var230;
4665 RET_LABEL229:(void)0;
4666 }
4667 }
4668 {
4669 var231 = poset___poset__POSetElement____60d_61d(var228, var_mmodule);
4670 }
4671 if (var231){
4672 goto BREAK_label224;
4673 } else {
4674 }
4675 {
4676 { /* Inline model$MClass$visibility (var_c216) on <var_c216:MClass> */
4677 var234 = var_c216->attrs[COLOR_nitc__model__MClass___visibility].val; /* _visibility on <var_c216:MClass> */
4678 if (unlikely(var234 == NULL)) {
4679 if(catchStack.cursor >= 0){
4680 longjmp(catchStack.envs[catchStack.cursor], 1);
4681 }
4682 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
4683 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 476);
4684 fatal_exit(1);
4685 }
4686 var232 = var234;
4687 RET_LABEL233:(void)0;
4688 }
4689 }
4690 var235 = glob_sys;
4691 {
4692 var236 = nitc__model_base___core__Sys___private_visibility(var235);
4693 }
4694 {
4695 var237 = core___core__Comparable____60d_61d(var232, var236);
4696 }
4697 if (var237){
4698 goto BREAK_label224;
4699 } else {
4700 }
4701 {
4702 var238 = nitc__modelbuilder_base___AQclassid___accept(var_qid, var_c216);
4703 }
4704 var239 = !var238;
4705 if (var239){
4706 goto BREAK_label224;
4707 } else {
4708 }
4709 if (unlikely(varonce240==NULL)) {
4710 var241 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4711 if (likely(varonce242!=NULL)) {
4712 var243 = varonce242;
4713 } else {
4714 var244 = "`";
4715 var246 = (val*)(1l<<2|1);
4716 var247 = (val*)(1l<<2|1);
4717 var248 = (val*)((long)(0)<<2|3);
4718 var249 = (val*)((long)(0)<<2|3);
4719 var245 = core__flat___CString___to_s_unsafe(var244, var246, var247, var248, var249);
4720 var243 = var245;
4721 varonce242 = var243;
4722 }
4723 ((struct instance_core__NativeArray*)var241)->values[0]=var243;
4724 if (likely(varonce250!=NULL)) {
4725 var251 = varonce250;
4726 } else {
4727 var252 = "`";
4728 var254 = (val*)(1l<<2|1);
4729 var255 = (val*)(1l<<2|1);
4730 var256 = (val*)((long)(0)<<2|3);
4731 var257 = (val*)((long)(0)<<2|3);
4732 var253 = core__flat___CString___to_s_unsafe(var252, var254, var255, var256, var257);
4733 var251 = var253;
4734 varonce250 = var251;
4735 }
4736 ((struct instance_core__NativeArray*)var241)->values[2]=var251;
4737 } else {
4738 var241 = varonce240;
4739 varonce240 = NULL;
4740 }
4741 {
4742 { /* Inline model$MClass$intro_mmodule (var_c216) on <var_c216:MClass> */
4743 var260 = var_c216->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_c216:MClass> */
4744 if (unlikely(var260 == NULL)) {
4745 if(catchStack.cursor >= 0){
4746 longjmp(catchStack.envs[catchStack.cursor], 1);
4747 }
4748 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
4749 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390);
4750 fatal_exit(1);
4751 }
4752 var258 = var260;
4753 RET_LABEL259:(void)0;
4754 }
4755 }
4756 {
4757 var261 = nitc___nitc__MModule___nitc__model_base__MEntity__full_name(var258);
4758 }
4759 ((struct instance_core__NativeArray*)var241)->values[1]=var261;
4760 {
4761 var262 = ((val*(*)(val* self))(var241->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var241); /* native_to_s on <var241:NativeArray[String]>*/
4762 }
4763 varonce240 = var241;
4764 {
4765 core___core__Array___core__abstract_collection__SimpleCollection__add(var_hints, var262); /* Direct call array$Array$add on <var_hints:Array[String]>*/
4766 }
4767 BREAK_label224: (void)0;
4768 {
4769 ((void(*)(val* self))((((long)var_212&3)?class_info[((long)var_212&3)]:var_212->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_212); /* next on <var_212:IndexedIterator[MClass]>*/
4770 }
4771 }
4772 BREAK_label214: (void)0;
4773 {
4774 ((void(*)(val* self))((((long)var_212&3)?class_info[((long)var_212&3)]:var_212->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_212); /* finish on <var_212:IndexedIterator[MClass]>*/
4775 }
4776 } else {
4777 }
4778 {
4779 var263 = core___core__Collection___not_empty(var_hints);
4780 }
4781 if (var263){
4782 if (unlikely(varonce264==NULL)) {
4783 var265 = NEW_core__NativeArray((int)7l, &type_core__NativeArray__core__String);
4784 if (likely(varonce266!=NULL)) {
4785 var267 = varonce266;
4786 } else {
4787 var268 = "Error: class `";
4788 var270 = (val*)(14l<<2|1);
4789 var271 = (val*)(14l<<2|1);
4790 var272 = (val*)((long)(0)<<2|3);
4791 var273 = (val*)((long)(0)<<2|3);
4792 var269 = core__flat___CString___to_s_unsafe(var268, var270, var271, var272, var273);
4793 var267 = var269;
4794 varonce266 = var267;
4795 }
4796 ((struct instance_core__NativeArray*)var265)->values[0]=var267;
4797 if (likely(varonce274!=NULL)) {
4798 var275 = varonce274;
4799 } else {
4800 var276 = "` not found in module `";
4801 var278 = (val*)(23l<<2|1);
4802 var279 = (val*)(23l<<2|1);
4803 var280 = (val*)((long)(0)<<2|3);
4804 var281 = (val*)((long)(0)<<2|3);
4805 var277 = core__flat___CString___to_s_unsafe(var276, var278, var279, var280, var281);
4806 var275 = var277;
4807 varonce274 = var275;
4808 }
4809 ((struct instance_core__NativeArray*)var265)->values[2]=var275;
4810 if (likely(varonce282!=NULL)) {
4811 var283 = varonce282;
4812 } else {
4813 var284 = "`. Maybe import ";
4814 var286 = (val*)(16l<<2|1);
4815 var287 = (val*)(16l<<2|1);
4816 var288 = (val*)((long)(0)<<2|3);
4817 var289 = (val*)((long)(0)<<2|3);
4818 var285 = core__flat___CString___to_s_unsafe(var284, var286, var287, var288, var289);
4819 var283 = var285;
4820 varonce282 = var283;
4821 }
4822 ((struct instance_core__NativeArray*)var265)->values[4]=var283;
4823 if (likely(varonce290!=NULL)) {
4824 var291 = varonce290;
4825 } else {
4826 var292 = "?";
4827 var294 = (val*)(1l<<2|1);
4828 var295 = (val*)(1l<<2|1);
4829 var296 = (val*)((long)(0)<<2|3);
4830 var297 = (val*)((long)(0)<<2|3);
4831 var293 = core__flat___CString___to_s_unsafe(var292, var294, var295, var296, var297);
4832 var291 = var293;
4833 varonce290 = var291;
4834 }
4835 ((struct instance_core__NativeArray*)var265)->values[6]=var291;
4836 } else {
4837 var265 = varonce264;
4838 varonce264 = NULL;
4839 }
4840 ((struct instance_core__NativeArray*)var265)->values[1]=var_qname;
4841 {
4842 var298 = ((val*(*)(val* self))(var_mmodule->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmodule); /* to_s on <var_mmodule:MModule>*/
4843 }
4844 ((struct instance_core__NativeArray*)var265)->values[3]=var298;
4845 if (likely(varonce299!=NULL)) {
4846 var300 = varonce299;
4847 } else {
4848 var301 = ",";
4849 var303 = (val*)(1l<<2|1);
4850 var304 = (val*)(1l<<2|1);
4851 var305 = (val*)((long)(0)<<2|3);
4852 var306 = (val*)((long)(0)<<2|3);
4853 var302 = core__flat___CString___to_s_unsafe(var301, var303, var304, var305, var306);
4854 var300 = var302;
4855 varonce299 = var300;
4856 }
4857 if (likely(varonce307!=NULL)) {
4858 var308 = varonce307;
4859 } else {
4860 var309 = " or ";
4861 var311 = (val*)(4l<<2|1);
4862 var312 = (val*)(4l<<2|1);
4863 var313 = (val*)((long)(0)<<2|3);
4864 var314 = (val*)((long)(0)<<2|3);
4865 var310 = core__flat___CString___to_s_unsafe(var309, var311, var312, var313, var314);
4866 var308 = var310;
4867 varonce307 = var308;
4868 }
4869 {
4870 var315 = core__abstract_text___Collection___join(var_hints, var300, var308);
4871 }
4872 ((struct instance_core__NativeArray*)var265)->values[5]=var315;
4873 {
4874 var316 = ((val*(*)(val* self))(var265->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var265); /* native_to_s on <var265:NativeArray[String]>*/
4875 }
4876 varonce264 = var265;
4877 {
4878 nitc___nitc__ModelBuilder___error(self, var_qid, var316); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
4879 }
4880 goto RET_LABEL;
4881 } else {
4882 }
4883 var317 = NEW_more_collections__BestDistance(&type_more_collections__BestDistance__nitc__MClass);
4884 {
4885 var318 = ((long(*)(val* self))(var_qname->class->vft[COLOR_core__abstract_text__Text__length]))(var_qname); /* length on <var_qname:String>*/
4886 }
4887 {
4888 var319 = ((long(*)(val* self))(var_name->class->vft[COLOR_core__abstract_text__Text__length]))(var_name); /* length on <var_name:String>*/
4889 }
4890 {
4891 { /* Inline kernel$Int$/ (var319,2l) on <var319:Int> */
4892 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
4893 /* <2l:Int> isa OTHER */
4894 var322 = 1; /* easy <2l:Int> isa OTHER*/
4895 if (unlikely(!var322)) {
4896 var_class_name325 = type_core__Int.name;
4897 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name325);
4898 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 733);
4899 fatal_exit(1);
4900 }
4901 var326 = var319 / 2l;
4902 var320 = var326;
4903 goto RET_LABEL321;
4904 RET_LABEL321:(void)0;
4905 }
4906 }
4907 {
4908 { /* Inline kernel$Int$- (var318,var320) on <var318:Int> */
4909 /* Covariant cast for argument 0 (i) <var320:Int> isa OTHER */
4910 /* <var320:Int> isa OTHER */
4911 var329 = 1; /* easy <var320:Int> isa OTHER*/
4912 if (unlikely(!var329)) {
4913 var_class_name332 = type_core__Int.name;
4914 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name332);
4915 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4916 fatal_exit(1);
4917 }
4918 var333 = var318 - var320;
4919 var327 = var333;
4920 goto RET_LABEL328;
4921 RET_LABEL328:(void)0;
4922 }
4923 }
4924 {
4925 ((void(*)(val* self, long p0))(var317->class->vft[COLOR_more_collections__BestDistance__best_distance_61d]))(var317, var327); /* best_distance= on <var317:BestDistance[MClass]>*/
4926 }
4927 {
4928 ((void(*)(val* self))(var317->class->vft[COLOR_core__kernel__Object__init]))(var317); /* init on <var317:BestDistance[MClass]>*/
4929 }
4930 var_bests = var317;
4931 {
4932 { /* Inline modelbuilder_base$ModelBuilder$model (self) on <self:ModelBuilder> */
4933 var336 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___model].val; /* _model on <self:ModelBuilder> */
4934 if (unlikely(var336 == NULL)) {
4935 if(catchStack.cursor >= 0){
4936 longjmp(catchStack.envs[catchStack.cursor], 1);
4937 }
4938 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
4939 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 44);
4940 fatal_exit(1);
4941 }
4942 var334 = var336;
4943 RET_LABEL335:(void)0;
4944 }
4945 }
4946 {
4947 { /* Inline model$Model$mclasses (var334) on <var334:Model> */
4948 var339 = var334->attrs[COLOR_nitc__model__Model___mclasses].val; /* _mclasses on <var334:Model> */
4949 if (unlikely(var339 == NULL)) {
4950 if(catchStack.cursor >= 0){
4951 longjmp(catchStack.envs[catchStack.cursor], 1);
4952 }
4953 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses");
4954 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 43);
4955 fatal_exit(1);
4956 }
4957 var337 = var339;
4958 RET_LABEL338:(void)0;
4959 }
4960 }
4961 var_340 = var337;
4962 {
4963 var341 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_340);
4964 }
4965 var_342 = var341;
4966 for(;;) {
4967 {
4968 var343 = ((short int(*)(val* self))((((long)var_342&3)?class_info[((long)var_342&3)]:var_342->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_342); /* is_ok on <var_342:IndexedIterator[MClass]>*/
4969 }
4970 if (var343){
4971 } else {
4972 goto BREAK_label344;
4973 }
4974 {
4975 var345 = ((val*(*)(val* self))((((long)var_342&3)?class_info[((long)var_342&3)]:var_342->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_342); /* item on <var_342:IndexedIterator[MClass]>*/
4976 }
4977 var_c346 = var345;
4978 {
4979 { /* Inline mmodule$MModule$in_importation (var_mmodule) on <var_mmodule:MModule> */
4980 var349 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
4981 if (unlikely(var349 == NULL)) {
4982 if(catchStack.cursor >= 0){
4983 longjmp(catchStack.envs[catchStack.cursor], 1);
4984 }
4985 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
4986 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
4987 fatal_exit(1);
4988 }
4989 var347 = var349;
4990 RET_LABEL348:(void)0;
4991 }
4992 }
4993 {
4994 { /* Inline model$MClass$intro_mmodule (var_c346) on <var_c346:MClass> */
4995 var352 = var_c346->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_c346:MClass> */
4996 if (unlikely(var352 == NULL)) {
4997 if(catchStack.cursor >= 0){
4998 longjmp(catchStack.envs[catchStack.cursor], 1);
4999 }
5000 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
5001 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390);
5002 fatal_exit(1);
5003 }
5004 var350 = var352;
5005 RET_LABEL351:(void)0;
5006 }
5007 }
5008 {
5009 var353 = poset___poset__POSetElement____60d_61d(var347, var350);
5010 }
5011 var354 = !var353;
5012 if (var354){
5013 goto BREAK_label355;
5014 } else {
5015 }
5016 {
5017 { /* Inline model$MClass$intro_mmodule (var_c346) on <var_c346:MClass> */
5018 var358 = var_c346->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_c346:MClass> */
5019 if (unlikely(var358 == NULL)) {
5020 if(catchStack.cursor >= 0){
5021 longjmp(catchStack.envs[catchStack.cursor], 1);
5022 }
5023 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
5024 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390);
5025 fatal_exit(1);
5026 }
5027 var356 = var358;
5028 RET_LABEL357:(void)0;
5029 }
5030 }
5031 {
5032 { /* Inline model$MClass$visibility (var_c346) on <var_c346:MClass> */
5033 var361 = var_c346->attrs[COLOR_nitc__model__MClass___visibility].val; /* _visibility on <var_c346:MClass> */
5034 if (unlikely(var361 == NULL)) {
5035 if(catchStack.cursor >= 0){
5036 longjmp(catchStack.envs[catchStack.cursor], 1);
5037 }
5038 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
5039 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 476);
5040 fatal_exit(1);
5041 }
5042 var359 = var361;
5043 RET_LABEL360:(void)0;
5044 }
5045 }
5046 {
5047 var362 = nitc___nitc__MModule___is_visible(var_mmodule, var356, var359);
5048 }
5049 var363 = !var362;
5050 if (var363){
5051 goto BREAK_label355;
5052 } else {
5053 }
5054 {
5055 { /* Inline model$MClass$name (var_c346) on <var_c346:MClass> */
5056 var366 = var_c346->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var_c346:MClass> */
5057 if (unlikely(var366 == NULL)) {
5058 if(catchStack.cursor >= 0){
5059 longjmp(catchStack.envs[catchStack.cursor], 1);
5060 }
5061 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5062 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
5063 fatal_exit(1);
5064 }
5065 var364 = var366;
5066 RET_LABEL365:(void)0;
5067 }
5068 }
5069 {
5070 var367 = core___core__Text___levenshtein_distance(var_qname, var364);
5071 }
5072 var_d = var367;
5073 {
5074 var368 = more_collections___more_collections__BestDistance___update(var_bests, var_d, var_c346);
5075 }
5076 {
5077 var369 = nitc___nitc__MClass___nitc__model_base__MEntity__full_name(var_c346);
5078 }
5079 {
5080 var370 = core___core__Text___levenshtein_distance(var_qname, var369);
5081 }
5082 var_d = var370;
5083 {
5084 var371 = more_collections___more_collections__BestDistance___update(var_bests, var_d, var_c346);
5085 }
5086 BREAK_label355: (void)0;
5087 {
5088 ((void(*)(val* self))((((long)var_342&3)?class_info[((long)var_342&3)]:var_342->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_342); /* next on <var_342:IndexedIterator[MClass]>*/
5089 }
5090 }
5091 BREAK_label344: (void)0;
5092 {
5093 ((void(*)(val* self))((((long)var_342&3)?class_info[((long)var_342&3)]:var_342->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_342); /* finish on <var_342:IndexedIterator[MClass]>*/
5094 }
5095 {
5096 { /* Inline more_collections$BestDistance$best_items (var_bests) on <var_bests:BestDistance[MClass]> */
5097 var374 = var_bests->attrs[COLOR_more_collections__BestDistance___best_items].val; /* _best_items on <var_bests:BestDistance[MClass]> */
5098 if (unlikely(var374 == NULL)) {
5099 if(catchStack.cursor >= 0){
5100 longjmp(catchStack.envs[catchStack.cursor], 1);
5101 }
5102 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _best_items");
5103 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections, 562);
5104 fatal_exit(1);
5105 }
5106 var372 = var374;
5107 RET_LABEL373:(void)0;
5108 }
5109 }
5110 {
5111 var375 = core___core__Collection___not_empty(var372);
5112 }
5113 if (var375){
5114 {
5115 { /* Inline more_collections$BestDistance$best_items (var_bests) on <var_bests:BestDistance[MClass]> */
5116 var378 = var_bests->attrs[COLOR_more_collections__BestDistance___best_items].val; /* _best_items on <var_bests:BestDistance[MClass]> */
5117 if (unlikely(var378 == NULL)) {
5118 if(catchStack.cursor >= 0){
5119 longjmp(catchStack.envs[catchStack.cursor], 1);
5120 }
5121 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _best_items");
5122 PRINT_ERROR(" (%s:%d)\n", FILE_more_collections, 562);
5123 fatal_exit(1);
5124 }
5125 var376 = var378;
5126 RET_LABEL377:(void)0;
5127 }
5128 }
5129 var_379 = var376;
5130 {
5131 var380 = ((val*(*)(val* self))((((long)var_379&3)?class_info[((long)var_379&3)]:var_379->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_379); /* iterator on <var_379:Set[MClass]>*/
5132 }
5133 var_381 = var380;
5134 for(;;) {
5135 {
5136 var382 = ((short int(*)(val* self))((((long)var_381&3)?class_info[((long)var_381&3)]:var_381->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_381); /* is_ok on <var_381:Iterator[MClass]>*/
5137 }
5138 if (var382){
5139 } else {
5140 goto BREAK_label383;
5141 }
5142 {
5143 var384 = ((val*(*)(val* self))((((long)var_381&3)?class_info[((long)var_381&3)]:var_381->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_381); /* item on <var_381:Iterator[MClass]>*/
5144 }
5145 var_c385 = var384;
5146 if (unlikely(varonce386==NULL)) {
5147 var387 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
5148 if (likely(varonce388!=NULL)) {
5149 var389 = varonce388;
5150 } else {
5151 var390 = "`";
5152 var392 = (val*)(1l<<2|1);
5153 var393 = (val*)(1l<<2|1);
5154 var394 = (val*)((long)(0)<<2|3);
5155 var395 = (val*)((long)(0)<<2|3);
5156 var391 = core__flat___CString___to_s_unsafe(var390, var392, var393, var394, var395);
5157 var389 = var391;
5158 varonce388 = var389;
5159 }
5160 ((struct instance_core__NativeArray*)var387)->values[0]=var389;
5161 if (likely(varonce396!=NULL)) {
5162 var397 = varonce396;
5163 } else {
5164 var398 = "`";
5165 var400 = (val*)(1l<<2|1);
5166 var401 = (val*)(1l<<2|1);
5167 var402 = (val*)((long)(0)<<2|3);
5168 var403 = (val*)((long)(0)<<2|3);
5169 var399 = core__flat___CString___to_s_unsafe(var398, var400, var401, var402, var403);
5170 var397 = var399;
5171 varonce396 = var397;
5172 }
5173 ((struct instance_core__NativeArray*)var387)->values[2]=var397;
5174 } else {
5175 var387 = varonce386;
5176 varonce386 = NULL;
5177 }
5178 {
5179 var404 = nitc___nitc__MClass___nitc__model_base__MEntity__full_name(var_c385);
5180 }
5181 ((struct instance_core__NativeArray*)var387)->values[1]=var404;
5182 {
5183 var405 = ((val*(*)(val* self))(var387->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var387); /* native_to_s on <var387:NativeArray[String]>*/
5184 }
5185 varonce386 = var387;
5186 {
5187 core___core__Array___core__abstract_collection__SimpleCollection__add(var_hints, var405); /* Direct call array$Array$add on <var_hints:Array[String]>*/
5188 }
5189 {
5190 ((void(*)(val* self))((((long)var_381&3)?class_info[((long)var_381&3)]:var_381->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_381); /* next on <var_381:Iterator[MClass]>*/
5191 }
5192 }
5193 BREAK_label383: (void)0;
5194 {
5195 ((void(*)(val* self))((((long)var_381&3)?class_info[((long)var_381&3)]:var_381->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_381); /* finish on <var_381:Iterator[MClass]>*/
5196 }
5197 if (unlikely(varonce406==NULL)) {
5198 var407 = NEW_core__NativeArray((int)7l, &type_core__NativeArray__core__String);
5199 if (likely(varonce408!=NULL)) {
5200 var409 = varonce408;
5201 } else {
5202 var410 = "Error: class `";
5203 var412 = (val*)(14l<<2|1);
5204 var413 = (val*)(14l<<2|1);
5205 var414 = (val*)((long)(0)<<2|3);
5206 var415 = (val*)((long)(0)<<2|3);
5207 var411 = core__flat___CString___to_s_unsafe(var410, var412, var413, var414, var415);
5208 var409 = var411;
5209 varonce408 = var409;
5210 }
5211 ((struct instance_core__NativeArray*)var407)->values[0]=var409;
5212 if (likely(varonce416!=NULL)) {
5213 var417 = varonce416;
5214 } else {
5215 var418 = "` not found in module `";
5216 var420 = (val*)(23l<<2|1);
5217 var421 = (val*)(23l<<2|1);
5218 var422 = (val*)((long)(0)<<2|3);
5219 var423 = (val*)((long)(0)<<2|3);
5220 var419 = core__flat___CString___to_s_unsafe(var418, var420, var421, var422, var423);
5221 var417 = var419;
5222 varonce416 = var417;
5223 }
5224 ((struct instance_core__NativeArray*)var407)->values[2]=var417;
5225 if (likely(varonce424!=NULL)) {
5226 var425 = varonce424;
5227 } else {
5228 var426 = "`. Did you mean ";
5229 var428 = (val*)(16l<<2|1);
5230 var429 = (val*)(16l<<2|1);
5231 var430 = (val*)((long)(0)<<2|3);
5232 var431 = (val*)((long)(0)<<2|3);
5233 var427 = core__flat___CString___to_s_unsafe(var426, var428, var429, var430, var431);
5234 var425 = var427;
5235 varonce424 = var425;
5236 }
5237 ((struct instance_core__NativeArray*)var407)->values[4]=var425;
5238 if (likely(varonce432!=NULL)) {
5239 var433 = varonce432;
5240 } else {
5241 var434 = "?";
5242 var436 = (val*)(1l<<2|1);
5243 var437 = (val*)(1l<<2|1);
5244 var438 = (val*)((long)(0)<<2|3);
5245 var439 = (val*)((long)(0)<<2|3);
5246 var435 = core__flat___CString___to_s_unsafe(var434, var436, var437, var438, var439);
5247 var433 = var435;
5248 varonce432 = var433;
5249 }
5250 ((struct instance_core__NativeArray*)var407)->values[6]=var433;
5251 } else {
5252 var407 = varonce406;
5253 varonce406 = NULL;
5254 }
5255 ((struct instance_core__NativeArray*)var407)->values[1]=var_qname;
5256 {
5257 var440 = ((val*(*)(val* self))(var_mmodule->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmodule); /* to_s on <var_mmodule:MModule>*/
5258 }
5259 ((struct instance_core__NativeArray*)var407)->values[3]=var440;
5260 if (likely(varonce441!=NULL)) {
5261 var442 = varonce441;
5262 } else {
5263 var443 = ",";
5264 var445 = (val*)(1l<<2|1);
5265 var446 = (val*)(1l<<2|1);
5266 var447 = (val*)((long)(0)<<2|3);
5267 var448 = (val*)((long)(0)<<2|3);
5268 var444 = core__flat___CString___to_s_unsafe(var443, var445, var446, var447, var448);
5269 var442 = var444;
5270 varonce441 = var442;
5271 }
5272 if (likely(varonce449!=NULL)) {
5273 var450 = varonce449;
5274 } else {
5275 var451 = " or ";
5276 var453 = (val*)(4l<<2|1);
5277 var454 = (val*)(4l<<2|1);
5278 var455 = (val*)((long)(0)<<2|3);
5279 var456 = (val*)((long)(0)<<2|3);
5280 var452 = core__flat___CString___to_s_unsafe(var451, var453, var454, var455, var456);
5281 var450 = var452;
5282 varonce449 = var450;
5283 }
5284 {
5285 var457 = core__abstract_text___Collection___join(var_hints, var442, var450);
5286 }
5287 ((struct instance_core__NativeArray*)var407)->values[5]=var457;
5288 {
5289 var458 = ((val*(*)(val* self))(var407->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var407); /* native_to_s on <var407:NativeArray[String]>*/
5290 }
5291 varonce406 = var407;
5292 {
5293 nitc___nitc__ModelBuilder___error(self, var_qid, var458); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
5294 }
5295 goto RET_LABEL;
5296 } else {
5297 }
5298 if (unlikely(varonce459==NULL)) {
5299 var460 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
5300 if (likely(varonce461!=NULL)) {
5301 var462 = varonce461;
5302 } else {
5303 var463 = "Error: class `";
5304 var465 = (val*)(14l<<2|1);
5305 var466 = (val*)(14l<<2|1);
5306 var467 = (val*)((long)(0)<<2|3);
5307 var468 = (val*)((long)(0)<<2|3);
5308 var464 = core__flat___CString___to_s_unsafe(var463, var465, var466, var467, var468);
5309 var462 = var464;
5310 varonce461 = var462;
5311 }
5312 ((struct instance_core__NativeArray*)var460)->values[0]=var462;
5313 if (likely(varonce469!=NULL)) {
5314 var470 = varonce469;
5315 } else {
5316 var471 = "` not found in module `";
5317 var473 = (val*)(23l<<2|1);
5318 var474 = (val*)(23l<<2|1);
5319 var475 = (val*)((long)(0)<<2|3);
5320 var476 = (val*)((long)(0)<<2|3);
5321 var472 = core__flat___CString___to_s_unsafe(var471, var473, var474, var475, var476);
5322 var470 = var472;
5323 varonce469 = var470;
5324 }
5325 ((struct instance_core__NativeArray*)var460)->values[2]=var470;
5326 if (likely(varonce477!=NULL)) {
5327 var478 = varonce477;
5328 } else {
5329 var479 = "`.";
5330 var481 = (val*)(2l<<2|1);
5331 var482 = (val*)(2l<<2|1);
5332 var483 = (val*)((long)(0)<<2|3);
5333 var484 = (val*)((long)(0)<<2|3);
5334 var480 = core__flat___CString___to_s_unsafe(var479, var481, var482, var483, var484);
5335 var478 = var480;
5336 varonce477 = var478;
5337 }
5338 ((struct instance_core__NativeArray*)var460)->values[4]=var478;
5339 } else {
5340 var460 = varonce459;
5341 varonce459 = NULL;
5342 }
5343 ((struct instance_core__NativeArray*)var460)->values[1]=var_qname;
5344 {
5345 var485 = ((val*(*)(val* self))(var_mmodule->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmodule); /* to_s on <var_mmodule:MModule>*/
5346 }
5347 ((struct instance_core__NativeArray*)var460)->values[3]=var485;
5348 {
5349 var486 = ((val*(*)(val* self))(var460->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var460); /* native_to_s on <var460:NativeArray[String]>*/
5350 }
5351 varonce459 = var460;
5352 {
5353 nitc___nitc__ModelBuilder___error(self, var_qid, var486); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
5354 }
5355 RET_LABEL:;
5356 }
5357 /* method modelbuilder_base$ModelBuilder$bad_class_names for (self: ModelBuilder): MultiHashMap[MModule, String] */
5358 val* nitc___nitc__ModelBuilder___bad_class_names(val* self) {
5359 val* var /* : MultiHashMap[MModule, String] */;
5360 val* var1 /* : MultiHashMap[MModule, String] */;
5361 var1 = self->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___bad_class_names].val; /* _bad_class_names on <self:ModelBuilder> */
5362 if (unlikely(var1 == NULL)) {
5363 if(catchStack.cursor >= 0){
5364 longjmp(catchStack.envs[catchStack.cursor], 1);
5365 }
5366 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bad_class_names");
5367 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 413);
5368 fatal_exit(1);
5369 }
5370 var = var1;
5371 RET_LABEL:;
5372 return var;
5373 }
5374 /* method modelbuilder_base$ModelBuilder$resolve_mtype for (self: ModelBuilder, MModule, nullable MClassDef, AType): nullable MType */
5375 val* nitc___nitc__ModelBuilder___resolve_mtype(val* self, val* p0, val* p1, val* p2) {
5376 val* var /* : nullable MType */;
5377 val* var_mmodule /* var mmodule: MModule */;
5378 val* var_mclassdef /* var mclassdef: nullable MClassDef */;
5379 val* var_ntype /* var ntype: AType */;
5380 val* var1 /* : nullable MType */;
5381 val* var3 /* : nullable MType */;
5382 val* var_mtype /* var mtype: nullable MType */;
5383 short int var4 /* : Bool */;
5384 short int var5 /* : Bool */;
5385 val* var_other /* var other: nullable Object */;
5386 short int var7 /* : Bool */;
5387 short int var9 /* : Bool */;
5388 val* var10 /* : nullable MType */;
5389 short int var11 /* : Bool */;
5390 short int var12 /* : Bool */;
5391 short int var14 /* : Bool */;
5392 short int var16 /* : Bool */;
5393 short int var17 /* : Bool */;
5394 short int var19 /* : Bool */;
5395 short int var20 /* : Bool */;
5396 int cltype;
5397 int idtype;
5398 val* var21 /* : MClass */;
5399 val* var23 /* : MClass */;
5400 val* var_mclass /* var mclass: MClass */;
5401 long var_i /* var i: Int */;
5402 long var24 /* : Int */;
5403 long var26 /* : Int */;
5404 long var_ /* var : Int */;
5405 short int var27 /* : Bool */;
5406 short int var29 /* : Bool */;
5407 int cltype30;
5408 int idtype31;
5409 const char* var_class_name;
5410 short int var32 /* : Bool */;
5411 val* var33 /* : nullable MClassDef */;
5412 val* var_intro /* var intro: nullable MClassDef */;
5413 short int var34 /* : Bool */;
5414 short int var35 /* : Bool */;
5415 short int var37 /* : Bool */;
5416 short int var39 /* : Bool */;
5417 val* var40 /* : MClassType */;
5418 val* var42 /* : MClassType */;
5419 val* var43 /* : Array[MType] */;
5420 val* var44 /* : nullable Object */;
5421 val* var_bound /* var bound: MType */;
5422 val* var45 /* : ANodes[AType] */;
5423 val* var47 /* : ANodes[AType] */;
5424 val* var48 /* : ANode */;
5425 val* var_nt /* var nt: AType */;
5426 val* var49 /* : nullable MType */;
5427 val* var_mt /* var mt: nullable MType */;
5428 short int var50 /* : Bool */;
5429 short int var51 /* : Bool */;
5430 short int var53 /* : Bool */;
5431 short int var55 /* : Bool */;
5432 short int var56 /* : Bool */;
5433 short int var57 /* : Bool */;
5434 val* var_other59 /* var other: nullable Object */;
5435 short int var60 /* : Bool */;
5436 short int var61 /* : Bool */;
5437 val* var62 /* : MClassType */;
5438 val* var64 /* : MClassType */;
5439 val* var_anchor /* var anchor: nullable Object */;
5440 short int var65 /* : Bool */;
5441 short int var66 /* : Bool */;
5442 val* var67 /* : NativeArray[String] */;
5443 static val* varonce;
5444 static val* varonce68;
5445 val* var69 /* : String */;
5446 char* var70 /* : CString */;
5447 val* var71 /* : String */;
5448 val* var72 /* : nullable Int */;
5449 val* var73 /* : nullable Int */;
5450 val* var74 /* : nullable Bool */;
5451 val* var75 /* : nullable Bool */;
5452 static val* varonce76;
5453 val* var77 /* : String */;
5454 char* var78 /* : CString */;
5455 val* var79 /* : String */;
5456 val* var80 /* : nullable Int */;
5457 val* var81 /* : nullable Int */;
5458 val* var82 /* : nullable Bool */;
5459 val* var83 /* : nullable Bool */;
5460 static val* varonce84;
5461 val* var85 /* : String */;
5462 char* var86 /* : CString */;
5463 val* var87 /* : String */;
5464 val* var88 /* : nullable Int */;
5465 val* var89 /* : nullable Int */;
5466 val* var90 /* : nullable Bool */;
5467 val* var91 /* : nullable Bool */;
5468 val* var92 /* : String */;
5469 val* var93 /* : String */;
5470 val* var94 /* : String */;
5471 long var95 /* : Int */;
5472 var_mmodule = p0;
5473 var_mclassdef = p1;
5474 var_ntype = p2;
5475 {
5476 { /* Inline modelbuilder_base$AType$mtype (var_ntype) on <var_ntype:AType> */
5477 var3 = var_ntype->attrs[COLOR_nitc__modelbuilder_base__AType___mtype].val; /* _mtype on <var_ntype:AType> */
5478 var1 = var3;
5479 RET_LABEL2:(void)0;
5480 }
5481 }
5482 var_mtype = var1;
5483 if (var_mtype == NULL) {
5484 var4 = 1; /* is null */
5485 } else {
5486 var4 = 0; /* arg is null but recv is not */
5487 }
5488 if (0) {
5489 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
5490 var_other = ((val*)NULL);
5491 {
5492 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
5493 var9 = var_mtype == var_other;
5494 var7 = var9;
5495 goto RET_LABEL8;
5496 RET_LABEL8:(void)0;
5497 }
5498 }
5499 var5 = var7;
5500 goto RET_LABEL6;
5501 RET_LABEL6:(void)0;
5502 }
5503 var4 = var5;
5504 }
5505 if (var4){
5506 {
5507 var10 = nitc___nitc__ModelBuilder___resolve_mtype_unchecked(self, var_mmodule, var_mclassdef, var_ntype, 1);
5508 }
5509 var_mtype = var10;
5510 } else {
5511 }
5512 if (var_mtype == NULL) {
5513 var11 = 1; /* is null */
5514 } else {
5515 var11 = 0; /* arg is null but recv is not */
5516 }
5517 if (0) {
5518 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
5519 var_other = ((val*)NULL);
5520 {
5521 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
5522 var16 = var_mtype == var_other;
5523 var14 = var16;
5524 goto RET_LABEL15;
5525 RET_LABEL15:(void)0;
5526 }
5527 }
5528 var12 = var14;
5529 goto RET_LABEL13;
5530 RET_LABEL13:(void)0;
5531 }
5532 var11 = var12;
5533 }
5534 if (var11){
5535 var = ((val*)NULL);
5536 goto RET_LABEL;
5537 } else {
5538 }
5539 {
5540 { /* Inline modelbuilder_base$AType$checked_mtype (var_ntype) on <var_ntype:AType> */
5541 var19 = var_ntype->attrs[COLOR_nitc__modelbuilder_base__AType___checked_mtype].s; /* _checked_mtype on <var_ntype:AType> */
5542 var17 = var19;
5543 RET_LABEL18:(void)0;
5544 }
5545 }
5546 if (var17){
5547 var = var_mtype;
5548 goto RET_LABEL;
5549 } else {
5550 }
5551 /* <var_mtype:nullable MType(MType)> isa MGenericType */
5552 cltype = type_nitc__MGenericType.color;
5553 idtype = type_nitc__MGenericType.id;
5554 if(cltype >= var_mtype->type->table_size) {
5555 var20 = 0;
5556 } else {
5557 var20 = var_mtype->type->type_table[cltype] == idtype;
5558 }
5559 if (var20){
5560 {
5561 { /* Inline model$MClassType$mclass (var_mtype) on <var_mtype:nullable MType(MGenericType)> */
5562 var23 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:nullable MType(MGenericType)> */
5563 if (unlikely(var23 == NULL)) {
5564 if(catchStack.cursor >= 0){
5565 longjmp(catchStack.envs[catchStack.cursor], 1);
5566 }
5567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5568 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
5569 fatal_exit(1);
5570 }
5571 var21 = var23;
5572 RET_LABEL22:(void)0;
5573 }
5574 }
5575 var_mclass = var21;
5576 var_i = 0l;
5577 {
5578 { /* Inline model$MClass$arity (var_mclass) on <var_mclass:MClass> */
5579 var26 = var_mclass->attrs[COLOR_nitc__model__MClass___arity].l; /* _arity on <var_mclass:MClass> */
5580 var24 = var26;
5581 RET_LABEL25:(void)0;
5582 }
5583 }
5584 var_ = var24;
5585 for(;;) {
5586 {
5587 { /* Inline kernel$Int$< (var_i,var_) on <var_i:Int> */
5588 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
5589 /* <var_:Int> isa OTHER */
5590 var29 = 1; /* easy <var_:Int> isa OTHER*/
5591 if (unlikely(!var29)) {
5592 var_class_name = type_core__Int.name;
5593 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5594 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
5595 fatal_exit(1);
5596 }
5597 var32 = var_i < var_;
5598 var27 = var32;
5599 goto RET_LABEL28;
5600 RET_LABEL28:(void)0;
5601 }
5602 }
5603 if (var27){
5604 } else {
5605 goto BREAK_label;
5606 }
5607 {
5608 var33 = nitc___nitc__MClass___try_intro(var_mclass);
5609 }
5610 var_intro = var33;
5611 if (var_intro == NULL) {
5612 var34 = 1; /* is null */
5613 } else {
5614 var34 = 0; /* arg is null but recv is not */
5615 }
5616 if (0) {
5617 { /* Inline kernel$Object$== (var_intro,((val*)NULL)) on <var_intro:nullable MClassDef> */
5618 var_other = ((val*)NULL);
5619 {
5620 { /* Inline kernel$Object$is_same_instance (var_intro,var_other) on <var_intro:nullable MClassDef(MClassDef)> */
5621 var39 = var_intro == var_other;
5622 var37 = var39;
5623 goto RET_LABEL38;
5624 RET_LABEL38:(void)0;
5625 }
5626 }
5627 var35 = var37;
5628 goto RET_LABEL36;
5629 RET_LABEL36:(void)0;
5630 }
5631 var34 = var35;
5632 }
5633 if (var34){
5634 var = ((val*)NULL);
5635 goto RET_LABEL;
5636 } else {
5637 }
5638 {
5639 { /* Inline model$MClassDef$bound_mtype (var_intro) on <var_intro:nullable MClassDef(MClassDef)> */
5640 var42 = var_intro->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_intro:nullable MClassDef(MClassDef)> */
5641 if (unlikely(var42 == NULL)) {
5642 if(catchStack.cursor >= 0){
5643 longjmp(catchStack.envs[catchStack.cursor], 1);
5644 }
5645 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5646 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
5647 fatal_exit(1);
5648 }
5649 var40 = var42;
5650 RET_LABEL41:(void)0;
5651 }
5652 }
5653 {
5654 var43 = ((val*(*)(val* self))(var40->class->vft[COLOR_nitc__model__MClassType__arguments]))(var40); /* arguments on <var40:MClassType>*/
5655 }
5656 {
5657 var44 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var43, var_i);
5658 }
5659 var_bound = var44;
5660 {
5661 { /* Inline parser_nodes$AType$n_types (var_ntype) on <var_ntype:AType> */
5662 var47 = var_ntype->attrs[COLOR_nitc__parser_nodes__AType___n_types].val; /* _n_types on <var_ntype:AType> */
5663 if (unlikely(var47 == NULL)) {
5664 if(catchStack.cursor >= 0){
5665 longjmp(catchStack.envs[catchStack.cursor], 1);
5666 }
5667 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
5668 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1782);
5669 fatal_exit(1);
5670 }
5671 var45 = var47;
5672 RET_LABEL46:(void)0;
5673 }
5674 }
5675 {
5676 var48 = nitc___nitc__ANodes___core__abstract_collection__SequenceRead___91d_93d(var45, var_i);
5677 }
5678 var_nt = var48;
5679 {
5680 var49 = nitc___nitc__ModelBuilder___resolve_mtype(self, var_mmodule, var_mclassdef, var_nt);
5681 }
5682 var_mt = var49;
5683 if (var_mt == NULL) {
5684 var50 = 1; /* is null */
5685 } else {
5686 var50 = 0; /* arg is null but recv is not */
5687 }
5688 if (0) {
5689 { /* Inline kernel$Object$== (var_mt,((val*)NULL)) on <var_mt:nullable MType> */
5690 var_other = ((val*)NULL);
5691 {
5692 { /* Inline kernel$Object$is_same_instance (var_mt,var_other) on <var_mt:nullable MType(MType)> */
5693 var55 = var_mt == var_other;
5694 var53 = var55;
5695 goto RET_LABEL54;
5696 RET_LABEL54:(void)0;
5697 }
5698 }
5699 var51 = var53;
5700 goto RET_LABEL52;
5701 RET_LABEL52:(void)0;
5702 }
5703 var50 = var51;
5704 }
5705 if (var50){
5706 var = ((val*)NULL);
5707 goto RET_LABEL;
5708 } else {
5709 }
5710 if (var_mclassdef == NULL) {
5711 var56 = 0; /* is null */
5712 } else {
5713 var56 = 1; /* arg is null and recv is not */
5714 }
5715 if (0) {
5716 { /* Inline kernel$Object$!= (var_mclassdef,((val*)NULL)) on <var_mclassdef:nullable MClassDef> */
5717 var_other59 = ((val*)NULL);
5718 {
5719 var60 = ((short int(*)(val* self, val* p0))(var_mclassdef->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mclassdef, var_other59); /* == on <var_mclassdef:nullable MClassDef(MClassDef)>*/
5720 }
5721 var61 = !var60;
5722 var57 = var61;
5723 goto RET_LABEL58;
5724 RET_LABEL58:(void)0;
5725 }
5726 var56 = var57;
5727 }
5728 if (var56){
5729 {
5730 { /* Inline model$MClassDef$bound_mtype (var_mclassdef) on <var_mclassdef:nullable MClassDef(MClassDef)> */
5731 var64 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:nullable MClassDef(MClassDef)> */
5732 if (unlikely(var64 == NULL)) {
5733 if(catchStack.cursor >= 0){
5734 longjmp(catchStack.envs[catchStack.cursor], 1);
5735 }
5736 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5737 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
5738 fatal_exit(1);
5739 }
5740 var62 = var64;
5741 RET_LABEL63:(void)0;
5742 }
5743 }
5744 var_anchor = var62;
5745 } else {
5746 var_anchor = ((val*)NULL);
5747 }
5748 {
5749 var65 = nitc___nitc__ModelBuilder___check_subtype(self, var_nt, var_mmodule, var_anchor, var_mt, var_bound);
5750 }
5751 var66 = !var65;
5752 if (var66){
5753 if (unlikely(varonce==NULL)) {
5754 var67 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
5755 if (likely(varonce68!=NULL)) {
5756 var69 = varonce68;
5757 } else {
5758 var70 = "Type Error: expected `";
5759 var72 = (val*)(22l<<2|1);
5760 var73 = (val*)(22l<<2|1);
5761 var74 = (val*)((long)(0)<<2|3);
5762 var75 = (val*)((long)(0)<<2|3);
5763 var71 = core__flat___CString___to_s_unsafe(var70, var72, var73, var74, var75);
5764 var69 = var71;
5765 varonce68 = var69;
5766 }
5767 ((struct instance_core__NativeArray*)var67)->values[0]=var69;
5768 if (likely(varonce76!=NULL)) {
5769 var77 = varonce76;
5770 } else {
5771 var78 = "`, got `";
5772 var80 = (val*)(8l<<2|1);
5773 var81 = (val*)(8l<<2|1);
5774 var82 = (val*)((long)(0)<<2|3);
5775 var83 = (val*)((long)(0)<<2|3);
5776 var79 = core__flat___CString___to_s_unsafe(var78, var80, var81, var82, var83);
5777 var77 = var79;
5778 varonce76 = var77;
5779 }
5780 ((struct instance_core__NativeArray*)var67)->values[2]=var77;
5781 if (likely(varonce84!=NULL)) {
5782 var85 = varonce84;
5783 } else {
5784 var86 = "`.";
5785 var88 = (val*)(2l<<2|1);
5786 var89 = (val*)(2l<<2|1);
5787 var90 = (val*)((long)(0)<<2|3);
5788 var91 = (val*)((long)(0)<<2|3);
5789 var87 = core__flat___CString___to_s_unsafe(var86, var88, var89, var90, var91);
5790 var85 = var87;
5791 varonce84 = var85;
5792 }
5793 ((struct instance_core__NativeArray*)var67)->values[4]=var85;
5794 } else {
5795 var67 = varonce;
5796 varonce = NULL;
5797 }
5798 {
5799 var92 = ((val*(*)(val* self))(var_bound->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_bound); /* to_s on <var_bound:MType>*/
5800 }
5801 ((struct instance_core__NativeArray*)var67)->values[1]=var92;
5802 {
5803 var93 = ((val*(*)(val* self))(var_mt->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mt); /* to_s on <var_mt:nullable MType(MType)>*/
5804 }
5805 ((struct instance_core__NativeArray*)var67)->values[3]=var93;
5806 {
5807 var94 = ((val*(*)(val* self))(var67->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var67); /* native_to_s on <var67:NativeArray[String]>*/
5808 }
5809 varonce = var67;
5810 {
5811 nitc___nitc__ModelBuilder___error(self, var_nt, var94); /* Direct call modelbuilder_base$ModelBuilder$error on <self:ModelBuilder>*/
5812 }
5813 var = ((val*)NULL);
5814 goto RET_LABEL;
5815 } else {
5816 }
5817 {
5818 var95 = core___core__Int___Discrete__successor(var_i, 1l);
5819 }
5820 var_i = var95;
5821 }
5822 BREAK_label: (void)0;
5823 } else {
5824 }
5825 {
5826 { /* Inline modelbuilder_base$AType$checked_mtype= (var_ntype,1) on <var_ntype:AType> */
5827 var_ntype->attrs[COLOR_nitc__modelbuilder_base__AType___checked_mtype].s = 1; /* _checked_mtype on <var_ntype:AType> */
5828 RET_LABEL96:(void)0;
5829 }
5830 }
5831 var = var_mtype;
5832 goto RET_LABEL;
5833 RET_LABEL:;
5834 return var;
5835 }
5836 /* method modelbuilder_base$ModelBuilder$check_subtype for (self: ModelBuilder, ANode, MModule, nullable MClassType, MType, MType): Bool */
5837 short int nitc___nitc__ModelBuilder___check_subtype(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
5838 short int var /* : Bool */;
5839 val* var_node /* var node: ANode */;
5840 val* var_mmodule /* var mmodule: MModule */;
5841 val* var_anchor /* var anchor: nullable MClassType */;
5842 val* var_sub /* var sub: MType */;
5843 val* var_sup /* var sup: MType */;
5844 short int var1 /* : Bool */;
5845 var_node = p0;
5846 var_mmodule = p1;
5847 var_anchor = p2;
5848 var_sub = p3;
5849 var_sup = p4;
5850 {
5851 var1 = nitc___nitc__MType___is_subtype(var_sub, var_mmodule, var_anchor, var_sup);
5852 }
5853 var = var1;
5854 goto RET_LABEL;
5855 RET_LABEL:;
5856 return var;
5857 }
5858 /* method modelbuilder_base$ModelBuilder$check_sametype for (self: ModelBuilder, ANode, MModule, nullable MClassType, MType, MType): Bool */
5859 short int nitc___nitc__ModelBuilder___check_sametype(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
5860 short int var /* : Bool */;
5861 val* var_node /* var node: ANode */;
5862 val* var_mmodule /* var mmodule: MModule */;
5863 val* var_anchor /* var anchor: nullable MClassType */;
5864 val* var_sub /* var sub: MType */;
5865 val* var_sup /* var sup: MType */;
5866 short int var1 /* : Bool */;
5867 short int var2 /* : Bool */;
5868 short int var_ /* var : Bool */;
5869 short int var3 /* : Bool */;
5870 var_node = p0;
5871 var_mmodule = p1;
5872 var_anchor = p2;
5873 var_sub = p3;
5874 var_sup = p4;
5875 {
5876 var2 = nitc___nitc__MType___is_subtype(var_sub, var_mmodule, var_anchor, var_sup);
5877 }
5878 var_ = var2;
5879 if (var2){
5880 {
5881 var3 = nitc___nitc__MType___is_subtype(var_sup, var_mmodule, var_anchor, var_sub);
5882 }
5883 var1 = var3;
5884 } else {
5885 var1 = var_;
5886 }
5887 var = var1;
5888 goto RET_LABEL;
5889 RET_LABEL:;
5890 return var;
5891 }
5892 /* method modelbuilder_base$ANode$is_broken for (self: ANode): Bool */
5893 short int nitc__modelbuilder_base___ANode___is_broken(val* self) {
5894 short int var /* : Bool */;
5895 short int var1 /* : Bool */;
5896 var1 = self->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s; /* _is_broken on <self:ANode> */
5897 var = var1;
5898 RET_LABEL:;
5899 return var;
5900 }
5901 /* method modelbuilder_base$ANode$is_broken= for (self: ANode, Bool) */
5902 void nitc__modelbuilder_base___ANode___is_broken_61d(val* self, short int p0) {
5903 self->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s = p0; /* _is_broken on <self:ANode> */
5904 RET_LABEL:;
5905 }
5906 /* method modelbuilder_base$AType$mtype for (self: AType): nullable MType */
5907 val* nitc__modelbuilder_base___AType___mtype(val* self) {
5908 val* var /* : nullable MType */;
5909 val* var1 /* : nullable MType */;
5910 var1 = self->attrs[COLOR_nitc__modelbuilder_base__AType___mtype].val; /* _mtype on <self:AType> */
5911 var = var1;
5912 RET_LABEL:;
5913 return var;
5914 }
5915 /* method modelbuilder_base$AType$mtype= for (self: AType, nullable MType) */
5916 void nitc__modelbuilder_base___AType___mtype_61d(val* self, val* p0) {
5917 self->attrs[COLOR_nitc__modelbuilder_base__AType___mtype].val = p0; /* _mtype on <self:AType> */
5918 RET_LABEL:;
5919 }
5920 /* method modelbuilder_base$AType$checked_mtype for (self: AType): Bool */
5921 short int nitc__modelbuilder_base___AType___checked_mtype(val* self) {
5922 short int var /* : Bool */;
5923 short int var1 /* : Bool */;
5924 var1 = self->attrs[COLOR_nitc__modelbuilder_base__AType___checked_mtype].s; /* _checked_mtype on <self:AType> */
5925 var = var1;
5926 RET_LABEL:;
5927 return var;
5928 }
5929 /* method modelbuilder_base$AType$checked_mtype= for (self: AType, Bool) */
5930 void nitc__modelbuilder_base___AType___checked_mtype_61d(val* self, short int p0) {
5931 self->attrs[COLOR_nitc__modelbuilder_base__AType___checked_mtype].s = p0; /* _checked_mtype on <self:AType> */
5932 RET_LABEL:;
5933 }
5934 /* method modelbuilder_base$AIntrudeVisibility$mvisibility for (self: AIntrudeVisibility): MVisibility */
5935 val* nitc__modelbuilder_base___AIntrudeVisibility___AVisibility__mvisibility(val* self) {
5936 val* var /* : MVisibility */;
5937 val* var1 /* : Sys */;
5938 val* var2 /* : MVisibility */;
5939 var1 = glob_sys;
5940 {
5941 var2 = nitc__model_base___core__Sys___intrude_visibility(var1);
5942 }
5943 var = var2;
5944 goto RET_LABEL;
5945 RET_LABEL:;
5946 return var;
5947 }
5948 /* method modelbuilder_base$APublicVisibility$mvisibility for (self: APublicVisibility): MVisibility */
5949 val* nitc__modelbuilder_base___APublicVisibility___AVisibility__mvisibility(val* self) {
5950 val* var /* : MVisibility */;
5951 val* var1 /* : Sys */;
5952 val* var2 /* : MVisibility */;
5953 var1 = glob_sys;
5954 {
5955 var2 = nitc__model_base___core__Sys___public_visibility(var1);
5956 }
5957 var = var2;
5958 goto RET_LABEL;
5959 RET_LABEL:;
5960 return var;
5961 }
5962 /* method modelbuilder_base$AProtectedVisibility$mvisibility for (self: AProtectedVisibility): MVisibility */
5963 val* nitc__modelbuilder_base___AProtectedVisibility___AVisibility__mvisibility(val* self) {
5964 val* var /* : MVisibility */;
5965 val* var1 /* : Sys */;
5966 val* var2 /* : MVisibility */;
5967 var1 = glob_sys;
5968 {
5969 var2 = nitc__model_base___core__Sys___protected_visibility(var1);
5970 }
5971 var = var2;
5972 goto RET_LABEL;
5973 RET_LABEL:;
5974 return var;
5975 }
5976 /* method modelbuilder_base$APrivateVisibility$mvisibility for (self: APrivateVisibility): MVisibility */
5977 val* nitc__modelbuilder_base___APrivateVisibility___AVisibility__mvisibility(val* self) {
5978 val* var /* : MVisibility */;
5979 val* var1 /* : Sys */;
5980 val* var2 /* : MVisibility */;
5981 var1 = glob_sys;
5982 {
5983 var2 = nitc__model_base___core__Sys___private_visibility(var1);
5984 }
5985 var = var2;
5986 goto RET_LABEL;
5987 RET_LABEL:;
5988 return var;
5989 }
5990 /* method modelbuilder_base$ADoc$mdoc_cache for (self: ADoc): nullable MDoc */
5991 val* nitc__modelbuilder_base___ADoc___mdoc_cache(val* self) {
5992 val* var /* : nullable MDoc */;
5993 val* var1 /* : nullable MDoc */;
5994 var1 = self->attrs[COLOR_nitc__modelbuilder_base__ADoc___mdoc_cache].val; /* _mdoc_cache on <self:ADoc> */
5995 var = var1;
5996 RET_LABEL:;
5997 return var;
5998 }
5999 /* method modelbuilder_base$ADoc$mdoc_cache= for (self: ADoc, nullable MDoc) */
6000 void nitc__modelbuilder_base___ADoc___mdoc_cache_61d(val* self, val* p0) {
6001 self->attrs[COLOR_nitc__modelbuilder_base__ADoc___mdoc_cache].val = p0; /* _mdoc_cache on <self:ADoc> */
6002 RET_LABEL:;
6003 }
6004 /* method modelbuilder_base$ADoc$to_mdoc for (self: ADoc): MDoc */
6005 val* nitc__modelbuilder_base___ADoc___to_mdoc(val* self) {
6006 val* var /* : MDoc */;
6007 val* var1 /* : nullable MDoc */;
6008 val* var3 /* : nullable MDoc */;
6009 val* var_res /* var res: nullable MDoc */;
6010 short int var4 /* : Bool */;
6011 short int var5 /* : Bool */;
6012 val* var_other /* var other: nullable Object */;
6013 short int var7 /* : Bool */;
6014 short int var8 /* : Bool */;
6015 val* var9 /* : MDoc */;
6016 val* var10 /* : Location */;
6017 val* var12 /* : Location */;
6018 val* var13 /* : ANodes[TComment] */;
6019 val* var15 /* : ANodes[TComment] */;
6020 val* var_ /* var : ANodes[TComment] */;
6021 val* var16 /* : Iterator[ANode] */;
6022 val* var_17 /* var : Iterator[TComment] */;
6023 short int var18 /* : Bool */;
6024 val* var19 /* : nullable Object */;
6025 val* var_c /* var c: TComment */;
6026 val* var20 /* : String */;
6027 val* var_text /* var text: String */;
6028 long var21 /* : Int */;
6029 short int var22 /* : Bool */;
6030 short int var24 /* : Bool */;
6031 int cltype;
6032 int idtype;
6033 const char* var_class_name;
6034 short int var25 /* : Bool */;
6035 val* var26 /* : Array[String] */;
6036 val* var28 /* : Array[String] */;
6037 static val* varonce;
6038 val* var29 /* : String */;
6039 char* var30 /* : CString */;
6040 val* var31 /* : String */;
6041 val* var32 /* : nullable Int */;
6042 val* var33 /* : nullable Int */;
6043 val* var34 /* : nullable Bool */;
6044 val* var35 /* : nullable Bool */;
6045 val* var37 /* : SequenceRead[Char] */;
6046 val* var38 /* : nullable Object */;
6047 short int var39 /* : Bool */;
6048 short int var41 /* : Bool */;
6049 uint32_t var42 /* : Char */;
6050 val* var43 /* : SequenceRead[Char] */;
6051 val* var44 /* : nullable Object */;
6052 short int var45 /* : Bool */;
6053 short int var47 /* : Bool */;
6054 uint32_t var48 /* : Char */;
6055 val* var49 /* : Text */;
6056 val* var50 /* : Text */;
6057 val* var51 /* : SequenceRead[Char] */;
6058 val* var52 /* : nullable Object */;
6059 short int var53 /* : Bool */;
6060 short int var55 /* : Bool */;
6061 uint32_t var56 /* : Char */;
6062 long var57 /* : Int */;
6063 long var58 /* : Int */;
6064 short int var60 /* : Bool */;
6065 int cltype61;
6066 int idtype62;
6067 const char* var_class_name63;
6068 long var64 /* : Int */;
6069 val* var65 /* : Text */;
6070 val* var66 /* : Array[String] */;
6071 val* var68 /* : Array[String] */;
6072 {
6073 { /* Inline modelbuilder_base$ADoc$mdoc_cache (self) on <self:ADoc> */
6074 var3 = self->attrs[COLOR_nitc__modelbuilder_base__ADoc___mdoc_cache].val; /* _mdoc_cache on <self:ADoc> */
6075 var1 = var3;
6076 RET_LABEL2:(void)0;
6077 }
6078 }
6079 var_res = var1;
6080 if (var_res == NULL) {
6081 var4 = 0; /* is null */
6082 } else {
6083 var4 = 1; /* arg is null and recv is not */
6084 }
6085 if (0) {
6086 { /* Inline kernel$Object$!= (var_res,((val*)NULL)) on <var_res:nullable MDoc> */
6087 var_other = ((val*)NULL);
6088 {
6089 var7 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_res, var_other); /* == on <var_res:nullable MDoc(MDoc)>*/
6090 }
6091 var8 = !var7;
6092 var5 = var8;
6093 goto RET_LABEL6;
6094 RET_LABEL6:(void)0;
6095 }
6096 var4 = var5;
6097 }
6098 if (var4){
6099 var = var_res;
6100 goto RET_LABEL;
6101 } else {
6102 }
6103 var9 = NEW_nitc__MDoc(&type_nitc__MDoc);
6104 {
6105 { /* Inline parser_nodes$ANode$location (self) on <self:ADoc> */
6106 var12 = self->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <self:ADoc> */
6107 if (unlikely(var12 == NULL)) {
6108 if(catchStack.cursor >= 0){
6109 longjmp(catchStack.envs[catchStack.cursor], 1);
6110 }
6111 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
6112 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
6113 fatal_exit(1);
6114 }
6115 var10 = var12;
6116 RET_LABEL11:(void)0;
6117 }
6118 }
6119 {
6120 ((void(*)(val* self, val* p0))(var9->class->vft[COLOR_nitc__mdoc__MDoc__location_61d]))(var9, var10); /* location= on <var9:MDoc>*/
6121 }
6122 {
6123 ((void(*)(val* self))(var9->class->vft[COLOR_core__kernel__Object__init]))(var9); /* init on <var9:MDoc>*/
6124 }
6125 var_res = var9;
6126 {
6127 { /* Inline parser_nodes$ADoc$n_comment (self) on <self:ADoc> */
6128 var15 = self->attrs[COLOR_nitc__parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
6129 if (unlikely(var15 == NULL)) {
6130 if(catchStack.cursor >= 0){
6131 longjmp(catchStack.envs[catchStack.cursor], 1);
6132 }
6133 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_comment");
6134 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2964);
6135 fatal_exit(1);
6136 }
6137 var13 = var15;
6138 RET_LABEL14:(void)0;
6139 }
6140 }
6141 var_ = var13;
6142 {
6143 var16 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
6144 }
6145 var_17 = var16;
6146 for(;;) {
6147 {
6148 var18 = ((short int(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_17); /* is_ok on <var_17:Iterator[TComment]>*/
6149 }
6150 if (var18){
6151 } else {
6152 goto BREAK_label;
6153 }
6154 {
6155 var19 = ((val*(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_17); /* item on <var_17:Iterator[TComment]>*/
6156 }
6157 var_c = var19;
6158 {
6159 var20 = nitc__lexer_work___Token___text(var_c);
6160 }
6161 var_text = var20;
6162 {
6163 var21 = ((long(*)(val* self))(var_text->class->vft[COLOR_core__abstract_text__Text__length]))(var_text); /* length on <var_text:String>*/
6164 }
6165 {
6166 { /* Inline kernel$Int$< (var21,2l) on <var21:Int> */
6167 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
6168 /* <2l:Int> isa OTHER */
6169 var24 = 1; /* easy <2l:Int> isa OTHER*/
6170 if (unlikely(!var24)) {
6171 var_class_name = type_core__Int.name;
6172 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6173 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
6174 fatal_exit(1);
6175 }
6176 var25 = var21 < 2l;
6177 var22 = var25;
6178 goto RET_LABEL23;
6179 RET_LABEL23:(void)0;
6180 }
6181 }
6182 if (var22){
6183 {
6184 { /* Inline mdoc$MDoc$content (var_res) on <var_res:nullable MDoc(MDoc)> */
6185 var28 = var_res->attrs[COLOR_nitc__mdoc__MDoc___content].val; /* _content on <var_res:nullable MDoc(MDoc)> */
6186 if (unlikely(var28 == NULL)) {
6187 if(catchStack.cursor >= 0){
6188 longjmp(catchStack.envs[catchStack.cursor], 1);
6189 }
6190 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content");
6191 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mdoc, 23);
6192 fatal_exit(1);
6193 }
6194 var26 = var28;
6195 RET_LABEL27:(void)0;
6196 }
6197 }
6198 if (likely(varonce!=NULL)) {
6199 var29 = varonce;
6200 } else {
6201 var30 = "";
6202 var32 = (val*)(0l<<2|1);
6203 var33 = (val*)(0l<<2|1);
6204 var34 = (val*)((long)(0)<<2|3);
6205 var35 = (val*)((long)(0)<<2|3);
6206 var31 = core__flat___CString___to_s_unsafe(var30, var32, var33, var34, var35);
6207 var29 = var31;
6208 varonce = var29;
6209 }
6210 {
6211 core___core__Array___core__abstract_collection__SimpleCollection__add(var26, var29); /* Direct call array$Array$add on <var26:Array[String]>*/
6212 }
6213 goto BREAK_label36;
6214 } else {
6215 }
6216 {
6217 var37 = ((val*(*)(val* self))(var_text->class->vft[COLOR_core__abstract_text__Text__chars]))(var_text); /* chars on <var_text:String>*/
6218 }
6219 {
6220 var38 = ((val*(*)(val* self, long p0))((((long)var37&3)?class_info[((long)var37&3)]:var37->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var37, 0l); /* [] on <var37:SequenceRead[Char]>*/
6221 }
6222 {
6223 { /* Inline kernel$Char$== (var38,'#') on <var38:nullable Object(Char)> */
6224 var42 = (uint32_t)((long)(var38)>>2);
6225 var41 = var42 == '#';
6226 var39 = var41;
6227 goto RET_LABEL40;
6228 RET_LABEL40:(void)0;
6229 }
6230 }
6231 if (unlikely(!var39)) {
6232 if(catchStack.cursor >= 0){
6233 longjmp(catchStack.envs[catchStack.cursor], 1);
6234 }
6235 PRINT_ERROR("Runtime error: %s", "Assert failed");
6236 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 543);
6237 fatal_exit(1);
6238 }
6239 {
6240 var43 = ((val*(*)(val* self))(var_text->class->vft[COLOR_core__abstract_text__Text__chars]))(var_text); /* chars on <var_text:String>*/
6241 }
6242 {
6243 var44 = ((val*(*)(val* self, long p0))((((long)var43&3)?class_info[((long)var43&3)]:var43->class)->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var43, 1l); /* [] on <var43:SequenceRead[Char]>*/
6244 }
6245 {
6246 { /* Inline kernel$Char$== (var44,' ') on <var44:nullable Object(Char)> */
6247 var48 = (uint32_t)((long)(var44)>>2);
6248 var47 = var48 == ' ';
6249 var45 = var47;
6250 goto RET_LABEL46;
6251 RET_LABEL46:(void)0;
6252 }
6253 }
6254 if (var45){
6255 {
6256 var49 = ((val*(*)(val* self, long p0))(var_text->class->vft[COLOR_core__abstract_text__Text__substring_from]))(var_text, 2l); /* substring_from on <var_text:String>*/
6257 }
6258 var_text = var49;
6259 } else {
6260 {
6261 var50 = ((val*(*)(val* self, long p0))(var_text->class->vft[COLOR_core__abstract_text__Text__substring_from]))(var_text, 1l); /* substring_from on <var_text:String>*/
6262 }
6263 var_text = var50;
6264 }
6265 {
6266 var51 = ((val*(*)(val* self))(var_text->class->vft[COLOR_core__abstract_text__Text__chars]))(var_text); /* chars on <var_text:String>*/
6267 }
6268 {
6269 var52 = ((val*(*)(val* self))((((long)var51&3)?class_info[((long)var51&3)]:var51->class)->vft[COLOR_core__abstract_collection__SequenceRead__last]))(var51); /* last on <var51:SequenceRead[Char]>*/
6270 }
6271 {
6272 { /* Inline kernel$Char$== (var52,'\n') on <var52:nullable Object(Char)> */
6273 var56 = (uint32_t)((long)(var52)>>2);
6274 var55 = var56 == '\n';
6275 var53 = var55;
6276 goto RET_LABEL54;
6277 RET_LABEL54:(void)0;
6278 }
6279 }
6280 if (var53){
6281 {
6282 var57 = ((long(*)(val* self))(var_text->class->vft[COLOR_core__abstract_text__Text__length]))(var_text); /* length on <var_text:String>*/
6283 }
6284 {
6285 { /* Inline kernel$Int$- (var57,1l) on <var57:Int> */
6286 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6287 /* <1l:Int> isa OTHER */
6288 var60 = 1; /* easy <1l:Int> isa OTHER*/
6289 if (unlikely(!var60)) {
6290 var_class_name63 = type_core__Int.name;
6291 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name63);
6292 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
6293 fatal_exit(1);
6294 }
6295 var64 = var57 - 1l;
6296 var58 = var64;
6297 goto RET_LABEL59;
6298 RET_LABEL59:(void)0;
6299 }
6300 }
6301 {
6302 var65 = ((val*(*)(val* self, long p0, long p1))(var_text->class->vft[COLOR_core__abstract_text__Text__substring]))(var_text, 0l, var58); /* substring on <var_text:String>*/
6303 }
6304 var_text = var65;
6305 } else {
6306 }
6307 {
6308 { /* Inline mdoc$MDoc$content (var_res) on <var_res:nullable MDoc(MDoc)> */
6309 var68 = var_res->attrs[COLOR_nitc__mdoc__MDoc___content].val; /* _content on <var_res:nullable MDoc(MDoc)> */
6310 if (unlikely(var68 == NULL)) {
6311 if(catchStack.cursor >= 0){
6312 longjmp(catchStack.envs[catchStack.cursor], 1);
6313 }
6314 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content");
6315 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mdoc, 23);
6316 fatal_exit(1);
6317 }
6318 var66 = var68;
6319 RET_LABEL67:(void)0;
6320 }
6321 }
6322 {
6323 core___core__Array___core__abstract_collection__SimpleCollection__add(var66, var_text); /* Direct call array$Array$add on <var66:Array[String]>*/
6324 }
6325 BREAK_label36: (void)0;
6326 {
6327 ((void(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_17); /* next on <var_17:Iterator[TComment]>*/
6328 }
6329 }
6330 BREAK_label: (void)0;
6331 {
6332 ((void(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_17); /* finish on <var_17:Iterator[TComment]>*/
6333 }
6334 {
6335 { /* Inline modelbuilder_base$ADoc$mdoc_cache= (self,var_res) on <self:ADoc> */
6336 self->attrs[COLOR_nitc__modelbuilder_base__ADoc___mdoc_cache].val = var_res; /* _mdoc_cache on <self:ADoc> */
6337 RET_LABEL69:(void)0;
6338 }
6339 }
6340 var = var_res;
6341 goto RET_LABEL;
6342 RET_LABEL:;
6343 return var;
6344 }
6345 /* method modelbuilder_base$AQclassid$mpackname for (self: AQclassid): nullable String */
6346 val* nitc__modelbuilder_base___AQclassid___mpackname(val* self) {
6347 val* var /* : nullable String */;
6348 val* var1 /* : nullable AQualified */;
6349 val* var3 /* : nullable AQualified */;
6350 val* var_nqualified /* var nqualified: nullable AQualified */;
6351 short int var4 /* : Bool */;
6352 short int var5 /* : Bool */;
6353 val* var_other /* var other: nullable Object */;
6354 short int var7 /* : Bool */;
6355 short int var9 /* : Bool */;
6356 val* var10 /* : ANodes[TId] */;
6357 val* var12 /* : ANodes[TId] */;
6358 val* var_nids /* var nids: ANodes[TId] */;
6359 long var13 /* : Int */;
6360 short int var14 /* : Bool */;
6361 short int var16 /* : Bool */;
6362 int cltype;
6363 int idtype;
6364 const char* var_class_name;
6365 short int var17 /* : Bool */;
6366 val* var18 /* : ANode */;
6367 val* var19 /* : String */;
6368 {
6369 { /* Inline parser_nodes$AQclassid$n_qualified (self) on <self:AQclassid> */
6370 var3 = self->attrs[COLOR_nitc__parser_nodes__AQclassid___n_qualified].val; /* _n_qualified on <self:AQclassid> */
6371 var1 = var3;
6372 RET_LABEL2:(void)0;
6373 }
6374 }
6375 var_nqualified = var1;
6376 if (var_nqualified == NULL) {
6377 var4 = 1; /* is null */
6378 } else {
6379 var4 = 0; /* arg is null but recv is not */
6380 }
6381 if (0) {
6382 { /* Inline kernel$Object$== (var_nqualified,((val*)NULL)) on <var_nqualified:nullable AQualified> */
6383 var_other = ((val*)NULL);
6384 {
6385 { /* Inline kernel$Object$is_same_instance (var_nqualified,var_other) on <var_nqualified:nullable AQualified(AQualified)> */
6386 var9 = var_nqualified == var_other;
6387 var7 = var9;
6388 goto RET_LABEL8;
6389 RET_LABEL8:(void)0;
6390 }
6391 }
6392 var5 = var7;
6393 goto RET_LABEL6;
6394 RET_LABEL6:(void)0;
6395 }
6396 var4 = var5;
6397 }
6398 if (var4){
6399 var = ((val*)NULL);
6400 goto RET_LABEL;
6401 } else {
6402 }
6403 {
6404 { /* Inline parser_nodes$AQualified$n_id (var_nqualified) on <var_nqualified:nullable AQualified(AQualified)> */
6405 var12 = var_nqualified->attrs[COLOR_nitc__parser_nodes__AQualified___n_id].val; /* _n_id on <var_nqualified:nullable AQualified(AQualified)> */
6406 if (unlikely(var12 == NULL)) {
6407 if(catchStack.cursor >= 0){
6408 longjmp(catchStack.envs[catchStack.cursor], 1);
6409 }
6410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
6411 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2952);
6412 fatal_exit(1);
6413 }
6414 var10 = var12;
6415 RET_LABEL11:(void)0;
6416 }
6417 }
6418 var_nids = var10;
6419 {
6420 var13 = nitc___nitc__ANodes___core__abstract_collection__Collection__length(var_nids);
6421 }
6422 {
6423 { /* Inline kernel$Int$<= (var13,0l) on <var13:Int> */
6424 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
6425 /* <0l:Int> isa OTHER */
6426 var16 = 1; /* easy <0l:Int> isa OTHER*/
6427 if (unlikely(!var16)) {
6428 var_class_name = type_core__Int.name;
6429 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6430 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
6431 fatal_exit(1);
6432 }
6433 var17 = var13 <= 0l;
6434 var14 = var17;
6435 goto RET_LABEL15;
6436 RET_LABEL15:(void)0;
6437 }
6438 }
6439 if (var14){
6440 var = ((val*)NULL);
6441 goto RET_LABEL;
6442 } else {
6443 }
6444 {
6445 var18 = nitc___nitc__ANodes___core__abstract_collection__SequenceRead___91d_93d(var_nids, 0l);
6446 }
6447 {
6448 var19 = nitc__lexer_work___Token___text(var18);
6449 }
6450 var = var19;
6451 goto RET_LABEL;
6452 RET_LABEL:;
6453 return var;
6454 }
6455 /* method modelbuilder_base$AQclassid$mmodname for (self: AQclassid): nullable String */
6456 val* nitc__modelbuilder_base___AQclassid___mmodname(val* self) {
6457 val* var /* : nullable String */;
6458 val* var1 /* : nullable AQualified */;
6459 val* var3 /* : nullable AQualified */;
6460 val* var_nqualified /* var nqualified: nullable AQualified */;
6461 short int var4 /* : Bool */;
6462 short int var5 /* : Bool */;
6463 val* var_other /* var other: nullable Object */;
6464 short int var7 /* : Bool */;
6465 short int var9 /* : Bool */;
6466 val* var10 /* : ANodes[TId] */;
6467 val* var12 /* : ANodes[TId] */;
6468 val* var_nids /* var nids: ANodes[TId] */;
6469 long var13 /* : Int */;
6470 short int var14 /* : Bool */;
6471 short int var16 /* : Bool */;
6472 int cltype;
6473 int idtype;
6474 const char* var_class_name;
6475 short int var17 /* : Bool */;
6476 val* var18 /* : ANode */;
6477 val* var19 /* : String */;
6478 {
6479 { /* Inline parser_nodes$AQclassid$n_qualified (self) on <self:AQclassid> */
6480 var3 = self->attrs[COLOR_nitc__parser_nodes__AQclassid___n_qualified].val; /* _n_qualified on <self:AQclassid> */
6481 var1 = var3;
6482 RET_LABEL2:(void)0;
6483 }
6484 }
6485 var_nqualified = var1;
6486 if (var_nqualified == NULL) {
6487 var4 = 1; /* is null */
6488 } else {
6489 var4 = 0; /* arg is null but recv is not */
6490 }
6491 if (0) {
6492 { /* Inline kernel$Object$== (var_nqualified,((val*)NULL)) on <var_nqualified:nullable AQualified> */
6493 var_other = ((val*)NULL);
6494 {
6495 { /* Inline kernel$Object$is_same_instance (var_nqualified,var_other) on <var_nqualified:nullable AQualified(AQualified)> */
6496 var9 = var_nqualified == var_other;
6497 var7 = var9;
6498 goto RET_LABEL8;
6499 RET_LABEL8:(void)0;
6500 }
6501 }
6502 var5 = var7;
6503 goto RET_LABEL6;
6504 RET_LABEL6:(void)0;
6505 }
6506 var4 = var5;
6507 }
6508 if (var4){
6509 var = ((val*)NULL);
6510 goto RET_LABEL;
6511 } else {
6512 }
6513 {
6514 { /* Inline parser_nodes$AQualified$n_id (var_nqualified) on <var_nqualified:nullable AQualified(AQualified)> */
6515 var12 = var_nqualified->attrs[COLOR_nitc__parser_nodes__AQualified___n_id].val; /* _n_id on <var_nqualified:nullable AQualified(AQualified)> */
6516 if (unlikely(var12 == NULL)) {
6517 if(catchStack.cursor >= 0){
6518 longjmp(catchStack.envs[catchStack.cursor], 1);
6519 }
6520 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
6521 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2952);
6522 fatal_exit(1);
6523 }
6524 var10 = var12;
6525 RET_LABEL11:(void)0;
6526 }
6527 }
6528 var_nids = var10;
6529 {
6530 var13 = nitc___nitc__ANodes___core__abstract_collection__Collection__length(var_nids);
6531 }
6532 {
6533 { /* Inline kernel$Int$<= (var13,1l) on <var13:Int> */
6534 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6535 /* <1l:Int> isa OTHER */
6536 var16 = 1; /* easy <1l:Int> isa OTHER*/
6537 if (unlikely(!var16)) {
6538 var_class_name = type_core__Int.name;
6539 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6540 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
6541 fatal_exit(1);
6542 }
6543 var17 = var13 <= 1l;
6544 var14 = var17;
6545 goto RET_LABEL15;
6546 RET_LABEL15:(void)0;
6547 }
6548 }
6549 if (var14){
6550 var = ((val*)NULL);
6551 goto RET_LABEL;
6552 } else {
6553 }
6554 {
6555 var18 = nitc___nitc__ANodes___core__abstract_collection__SequenceRead___91d_93d(var_nids, 1l);
6556 }
6557 {
6558 var19 = nitc__lexer_work___Token___text(var18);
6559 }
6560 var = var19;
6561 goto RET_LABEL;
6562 RET_LABEL:;
6563 return var;
6564 }
6565 /* method modelbuilder_base$AQclassid$accept for (self: AQclassid, MClass): Bool */
6566 short int nitc__modelbuilder_base___AQclassid___accept(val* self, val* p0) {
6567 short int var /* : Bool */;
6568 val* var_mclass /* var mclass: MClass */;
6569 val* var1 /* : String */;
6570 val* var3 /* : String */;
6571 val* var4 /* : TClassid */;
6572 val* var6 /* : TClassid */;
6573 val* var7 /* : String */;
6574 short int var8 /* : Bool */;
6575 val* var_other /* var other: nullable Object */;
6576 short int var10 /* : Bool */;
6577 short int var11 /* : Bool */;
6578 val* var12 /* : nullable String */;
6579 val* var_mpackname /* var mpackname: nullable String */;
6580 short int var13 /* : Bool */;
6581 short int var14 /* : Bool */;
6582 short int var16 /* : Bool */;
6583 short int var17 /* : Bool */;
6584 val* var18 /* : MModule */;
6585 val* var20 /* : MModule */;
6586 val* var21 /* : nullable MPackage */;
6587 val* var_mpackage /* var mpackage: nullable MPackage */;
6588 short int var22 /* : Bool */;
6589 short int var23 /* : Bool */;
6590 val* var_other25 /* var other: nullable Object */;
6591 short int var26 /* : Bool */;
6592 short int var28 /* : Bool */;
6593 val* var29 /* : String */;
6594 val* var31 /* : String */;
6595 short int var32 /* : Bool */;
6596 short int var34 /* : Bool */;
6597 short int var35 /* : Bool */;
6598 val* var36 /* : nullable String */;
6599 val* var_mmodname /* var mmodname: nullable String */;
6600 short int var37 /* : Bool */;
6601 short int var38 /* : Bool */;
6602 short int var39 /* : Bool */;
6603 short int var41 /* : Bool */;
6604 short int var42 /* : Bool */;
6605 short int var_ /* var : Bool */;
6606 val* var43 /* : MModule */;
6607 val* var45 /* : MModule */;
6608 val* var46 /* : String */;
6609 val* var48 /* : String */;
6610 short int var49 /* : Bool */;
6611 short int var51 /* : Bool */;
6612 short int var52 /* : Bool */;
6613 var_mclass = p0;
6614 {
6615 { /* Inline model$MClass$name (var_mclass) on <var_mclass:MClass> */
6616 var3 = var_mclass->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var_mclass:MClass> */
6617 if (unlikely(var3 == NULL)) {
6618 if(catchStack.cursor >= 0){
6619 longjmp(catchStack.envs[catchStack.cursor], 1);
6620 }
6621 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6622 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
6623 fatal_exit(1);
6624 }
6625 var1 = var3;
6626 RET_LABEL2:(void)0;
6627 }
6628 }
6629 {
6630 { /* Inline parser_nodes$AQclassid$n_id (self) on <self:AQclassid> */
6631 var6 = self->attrs[COLOR_nitc__parser_nodes__AQclassid___n_id].val; /* _n_id on <self:AQclassid> */
6632 if (unlikely(var6 == NULL)) {
6633 if(catchStack.cursor >= 0){
6634 longjmp(catchStack.envs[catchStack.cursor], 1);
6635 }
6636 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
6637 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1733);
6638 fatal_exit(1);
6639 }
6640 var4 = var6;
6641 RET_LABEL5:(void)0;
6642 }
6643 }
6644 {
6645 var7 = nitc__lexer_work___Token___text(var4);
6646 }
6647 {
6648 { /* Inline kernel$Object$!= (var1,var7) on <var1:String> */
6649 var_other = var7;
6650 {
6651 var10 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_core__kernel__Object___61d_61d]))(var1, var_other); /* == on <var1:String>*/
6652 }
6653 var11 = !var10;
6654 var8 = var11;
6655 goto RET_LABEL9;
6656 RET_LABEL9:(void)0;
6657 }
6658 }
6659 if (var8){
6660 var = 0;
6661 goto RET_LABEL;
6662 } else {
6663 }
6664 {
6665 var12 = nitc__modelbuilder_base___AQclassid___mpackname(self);
6666 }
6667 var_mpackname = var12;
6668 if (var_mpackname == NULL) {
6669 var13 = 0; /* is null */
6670 } else {
6671 var13 = 1; /* arg is null and recv is not */
6672 }
6673 if (0) {
6674 { /* Inline kernel$Object$!= (var_mpackname,((val*)NULL)) on <var_mpackname:nullable String> */
6675 var_other = ((val*)NULL);
6676 {
6677 var16 = ((short int(*)(val* self, val* p0))(var_mpackname->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mpackname, var_other); /* == on <var_mpackname:nullable String(String)>*/
6678 }
6679 var17 = !var16;
6680 var14 = var17;
6681 goto RET_LABEL15;
6682 RET_LABEL15:(void)0;
6683 }
6684 var13 = var14;
6685 }
6686 if (var13){
6687 {
6688 { /* Inline model$MClass$intro_mmodule (var_mclass) on <var_mclass:MClass> */
6689 var20 = var_mclass->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_mclass:MClass> */
6690 if (unlikely(var20 == NULL)) {
6691 if(catchStack.cursor >= 0){
6692 longjmp(catchStack.envs[catchStack.cursor], 1);
6693 }
6694 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
6695 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390);
6696 fatal_exit(1);
6697 }
6698 var18 = var20;
6699 RET_LABEL19:(void)0;
6700 }
6701 }
6702 {
6703 var21 = nitc___nitc__MModule___mpackage(var18);
6704 }
6705 var_mpackage = var21;
6706 if (var_mpackage == NULL) {
6707 var22 = 1; /* is null */
6708 } else {
6709 var22 = 0; /* arg is null but recv is not */
6710 }
6711 if (0) {
6712 { /* Inline kernel$Object$== (var_mpackage,((val*)NULL)) on <var_mpackage:nullable MPackage> */
6713 var_other25 = ((val*)NULL);
6714 {
6715 { /* Inline kernel$Object$is_same_instance (var_mpackage,var_other25) on <var_mpackage:nullable MPackage(MPackage)> */
6716 var28 = var_mpackage == var_other25;
6717 var26 = var28;
6718 goto RET_LABEL27;
6719 RET_LABEL27:(void)0;
6720 }
6721 }
6722 var23 = var26;
6723 goto RET_LABEL24;
6724 RET_LABEL24:(void)0;
6725 }
6726 var22 = var23;
6727 }
6728 if (var22){
6729 var = 0;
6730 goto RET_LABEL;
6731 } else {
6732 }
6733 {
6734 { /* Inline mpackage$MPackage$name (var_mpackage) on <var_mpackage:nullable MPackage(MPackage)> */
6735 var31 = var_mpackage->attrs[COLOR_nitc__mpackage__MPackage___name].val; /* _name on <var_mpackage:nullable MPackage(MPackage)> */
6736 if (unlikely(var31 == NULL)) {
6737 if(catchStack.cursor >= 0){
6738 longjmp(catchStack.envs[catchStack.cursor], 1);
6739 }
6740 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6741 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mpackage, 27);
6742 fatal_exit(1);
6743 }
6744 var29 = var31;
6745 RET_LABEL30:(void)0;
6746 }
6747 }
6748 {
6749 { /* Inline kernel$Object$!= (var29,var_mpackname) on <var29:String> */
6750 var_other = var_mpackname;
6751 {
6752 var34 = ((short int(*)(val* self, val* p0))(var29->class->vft[COLOR_core__kernel__Object___61d_61d]))(var29, var_other); /* == on <var29:String>*/
6753 }
6754 var35 = !var34;
6755 var32 = var35;
6756 goto RET_LABEL33;
6757 RET_LABEL33:(void)0;
6758 }
6759 }
6760 if (var32){
6761 var = 0;
6762 goto RET_LABEL;
6763 } else {
6764 }
6765 {
6766 var36 = nitc__modelbuilder_base___AQclassid___mmodname(self);
6767 }
6768 var_mmodname = var36;
6769 if (var_mmodname == NULL) {
6770 var38 = 0; /* is null */
6771 } else {
6772 var38 = 1; /* arg is null and recv is not */
6773 }
6774 if (0) {
6775 { /* Inline kernel$Object$!= (var_mmodname,((val*)NULL)) on <var_mmodname:nullable String> */
6776 var_other = ((val*)NULL);
6777 {
6778 var41 = ((short int(*)(val* self, val* p0))(var_mmodname->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mmodname, var_other); /* == on <var_mmodname:nullable String(String)>*/
6779 }
6780 var42 = !var41;
6781 var39 = var42;
6782 goto RET_LABEL40;
6783 RET_LABEL40:(void)0;
6784 }
6785 var38 = var39;
6786 }
6787 var_ = var38;
6788 if (var38){
6789 {
6790 { /* Inline model$MClass$intro_mmodule (var_mclass) on <var_mclass:MClass> */
6791 var45 = var_mclass->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_mclass:MClass> */
6792 if (unlikely(var45 == NULL)) {
6793 if(catchStack.cursor >= 0){
6794 longjmp(catchStack.envs[catchStack.cursor], 1);
6795 }
6796 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
6797 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390);
6798 fatal_exit(1);
6799 }
6800 var43 = var45;
6801 RET_LABEL44:(void)0;
6802 }
6803 }
6804 {
6805 { /* Inline mmodule$MModule$name (var43) on <var43:MModule> */
6806 var48 = var43->attrs[COLOR_nitc__mmodule__MModule___name].val; /* _name on <var43:MModule> */
6807 if (unlikely(var48 == NULL)) {
6808 if(catchStack.cursor >= 0){
6809 longjmp(catchStack.envs[catchStack.cursor], 1);
6810 }
6811 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6812 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 100);
6813 fatal_exit(1);
6814 }
6815 var46 = var48;
6816 RET_LABEL47:(void)0;
6817 }
6818 }
6819 {
6820 { /* Inline kernel$Object$!= (var46,var_mmodname) on <var46:String> */
6821 var_other = var_mmodname;
6822 {
6823 var51 = ((short int(*)(val* self, val* p0))(var46->class->vft[COLOR_core__kernel__Object___61d_61d]))(var46, var_other); /* == on <var46:String>*/
6824 }
6825 var52 = !var51;
6826 var49 = var52;
6827 goto RET_LABEL50;
6828 RET_LABEL50:(void)0;
6829 }
6830 }
6831 var37 = var49;
6832 } else {
6833 var37 = var_;
6834 }
6835 if (var37){
6836 var = 0;
6837 goto RET_LABEL;
6838 } else {
6839 }
6840 } else {
6841 }
6842 var = 1;
6843 goto RET_LABEL;
6844 RET_LABEL:;
6845 return var;
6846 }
6847 /* method modelbuilder_base$AQclassid$full_name for (self: AQclassid): String */
6848 val* nitc__modelbuilder_base___AQclassid___full_name(val* self) {
6849 val* var /* : String */;
6850 val* var1 /* : TClassid */;
6851 val* var3 /* : TClassid */;
6852 val* var4 /* : String */;
6853 val* var_res /* var res: String */;
6854 val* var5 /* : nullable AQualified */;
6855 val* var7 /* : nullable AQualified */;
6856 val* var_nqualified /* var nqualified: nullable AQualified */;
6857 short int var8 /* : Bool */;
6858 short int var9 /* : Bool */;
6859 val* var_other /* var other: nullable Object */;
6860 short int var11 /* : Bool */;
6861 short int var13 /* : Bool */;
6862 val* var14 /* : nullable TClassid */;
6863 val* var16 /* : nullable TClassid */;
6864 val* var_ncid /* var ncid: nullable TClassid */;
6865 short int var17 /* : Bool */;
6866 short int var18 /* : Bool */;
6867 val* var_other20 /* var other: nullable Object */;
6868 short int var21 /* : Bool */;
6869 short int var22 /* : Bool */;
6870 val* var23 /* : String */;
6871 static val* varonce;
6872 val* var24 /* : String */;
6873 char* var25 /* : CString */;
6874 val* var26 /* : String */;
6875 val* var27 /* : nullable Int */;
6876 val* var28 /* : nullable Int */;
6877 val* var29 /* : nullable Bool */;
6878 val* var30 /* : nullable Bool */;
6879 val* var31 /* : Text */;
6880 val* var32 /* : Text */;
6881 val* var33 /* : ANodes[TId] */;
6882 val* var35 /* : ANodes[TId] */;
6883 val* var_nids /* var nids: ANodes[TId] */;
6884 short int var36 /* : Bool */;
6885 val* var37 /* : IndexedIterator[ANode] */;
6886 val* var_ /* var : IndexedIterator[TId] */;
6887 val* var38 /* : Iterator[nullable Object] */;
6888 val* var_39 /* var : Iterator[TId] */;
6889 short int var40 /* : Bool */;
6890 val* var41 /* : nullable Object */;
6891 val* var_n /* var n: TId */;
6892 val* var42 /* : String */;
6893 static val* varonce43;
6894 val* var44 /* : String */;
6895 char* var45 /* : CString */;
6896 val* var46 /* : String */;
6897 val* var47 /* : nullable Int */;
6898 val* var48 /* : nullable Int */;
6899 val* var49 /* : nullable Bool */;
6900 val* var50 /* : nullable Bool */;
6901 val* var51 /* : Text */;
6902 val* var52 /* : Text */;
6903 {
6904 { /* Inline parser_nodes$AQclassid$n_id (self) on <self:AQclassid> */
6905 var3 = self->attrs[COLOR_nitc__parser_nodes__AQclassid___n_id].val; /* _n_id on <self:AQclassid> */
6906 if (unlikely(var3 == NULL)) {
6907 if(catchStack.cursor >= 0){
6908 longjmp(catchStack.envs[catchStack.cursor], 1);
6909 }
6910 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
6911 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1733);
6912 fatal_exit(1);
6913 }
6914 var1 = var3;
6915 RET_LABEL2:(void)0;
6916 }
6917 }
6918 {
6919 var4 = nitc__lexer_work___Token___text(var1);
6920 }
6921 var_res = var4;
6922 {
6923 { /* Inline parser_nodes$AQclassid$n_qualified (self) on <self:AQclassid> */
6924 var7 = self->attrs[COLOR_nitc__parser_nodes__AQclassid___n_qualified].val; /* _n_qualified on <self:AQclassid> */
6925 var5 = var7;
6926 RET_LABEL6:(void)0;
6927 }
6928 }
6929 var_nqualified = var5;
6930 if (var_nqualified == NULL) {
6931 var8 = 1; /* is null */
6932 } else {
6933 var8 = 0; /* arg is null but recv is not */
6934 }
6935 if (0) {
6936 { /* Inline kernel$Object$== (var_nqualified,((val*)NULL)) on <var_nqualified:nullable AQualified> */
6937 var_other = ((val*)NULL);
6938 {
6939 { /* Inline kernel$Object$is_same_instance (var_nqualified,var_other) on <var_nqualified:nullable AQualified(AQualified)> */
6940 var13 = var_nqualified == var_other;
6941 var11 = var13;
6942 goto RET_LABEL12;
6943 RET_LABEL12:(void)0;
6944 }
6945 }
6946 var9 = var11;
6947 goto RET_LABEL10;
6948 RET_LABEL10:(void)0;
6949 }
6950 var8 = var9;
6951 }
6952 if (var8){
6953 var = var_res;
6954 goto RET_LABEL;
6955 } else {
6956 }
6957 {
6958 { /* Inline parser_nodes$AQualified$n_classid (var_nqualified) on <var_nqualified:nullable AQualified(AQualified)> */
6959 var16 = var_nqualified->attrs[COLOR_nitc__parser_nodes__AQualified___n_classid].val; /* _n_classid on <var_nqualified:nullable AQualified(AQualified)> */
6960 var14 = var16;
6961 RET_LABEL15:(void)0;
6962 }
6963 }
6964 var_ncid = var14;
6965 if (var_ncid == NULL) {
6966 var17 = 0; /* is null */
6967 } else {
6968 var17 = 1; /* arg is null and recv is not */
6969 }
6970 if (0) {
6971 { /* Inline kernel$Object$!= (var_ncid,((val*)NULL)) on <var_ncid:nullable TClassid> */
6972 var_other20 = ((val*)NULL);
6973 {
6974 var21 = ((short int(*)(val* self, val* p0))(var_ncid->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ncid, var_other20); /* == on <var_ncid:nullable TClassid(TClassid)>*/
6975 }
6976 var22 = !var21;
6977 var18 = var22;
6978 goto RET_LABEL19;
6979 RET_LABEL19:(void)0;
6980 }
6981 var17 = var18;
6982 }
6983 if (var17){
6984 {
6985 var23 = nitc__lexer_work___Token___text(var_ncid);
6986 }
6987 if (likely(varonce!=NULL)) {
6988 var24 = varonce;
6989 } else {
6990 var25 = "::";
6991 var27 = (val*)(2l<<2|1);
6992 var28 = (val*)(2l<<2|1);
6993 var29 = (val*)((long)(0)<<2|3);
6994 var30 = (val*)((long)(0)<<2|3);
6995 var26 = core__flat___CString___to_s_unsafe(var25, var27, var28, var29, var30);
6996 var24 = var26;
6997 varonce = var24;
6998 }
6999 {
7000 var31 = ((val*(*)(val* self, val* p0))(var23->class->vft[COLOR_core__abstract_text__Text___43d]))(var23, var24); /* + on <var23:String>*/
7001 }
7002 {
7003 var32 = ((val*(*)(val* self, val* p0))(var31->class->vft[COLOR_core__abstract_text__Text___43d]))(var31, var_res); /* + on <var31:Text(String)>*/
7004 }
7005 var_res = var32;
7006 } else {
7007 }
7008 {
7009 { /* Inline parser_nodes$AQualified$n_id (var_nqualified) on <var_nqualified:nullable AQualified(AQualified)> */
7010 var35 = var_nqualified->attrs[COLOR_nitc__parser_nodes__AQualified___n_id].val; /* _n_id on <var_nqualified:nullable AQualified(AQualified)> */
7011 if (unlikely(var35 == NULL)) {
7012 if(catchStack.cursor >= 0){
7013 longjmp(catchStack.envs[catchStack.cursor], 1);
7014 }
7015 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
7016 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2952);
7017 fatal_exit(1);
7018 }
7019 var33 = var35;
7020 RET_LABEL34:(void)0;
7021 }
7022 }
7023 var_nids = var33;
7024 {
7025 var36 = core___core__Collection___not_empty(var_nids);
7026 }
7027 if (var36){
7028 {
7029 var37 = nitc___nitc__ANodes___core__abstract_collection__SequenceRead__reverse_iterator(var_nids);
7030 }
7031 var_ = var37;
7032 {
7033 var38 = core___core__Iterator___iterator(var_);
7034 }
7035 var_39 = var38;
7036 for(;;) {
7037 {
7038 var40 = ((short int(*)(val* self))((((long)var_39&3)?class_info[((long)var_39&3)]:var_39->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_39); /* is_ok on <var_39:Iterator[TId]>*/
7039 }
7040 if (var40){
7041 } else {
7042 goto BREAK_label;
7043 }
7044 {
7045 var41 = ((val*(*)(val* self))((((long)var_39&3)?class_info[((long)var_39&3)]:var_39->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_39); /* item on <var_39:Iterator[TId]>*/
7046 }
7047 var_n = var41;
7048 {
7049 var42 = nitc__lexer_work___Token___text(var_n);
7050 }
7051 if (likely(varonce43!=NULL)) {
7052 var44 = varonce43;
7053 } else {
7054 var45 = "::";
7055 var47 = (val*)(2l<<2|1);
7056 var48 = (val*)(2l<<2|1);
7057 var49 = (val*)((long)(0)<<2|3);
7058 var50 = (val*)((long)(0)<<2|3);
7059 var46 = core__flat___CString___to_s_unsafe(var45, var47, var48, var49, var50);
7060 var44 = var46;
7061 varonce43 = var44;
7062 }
7063 {
7064 var51 = ((val*(*)(val* self, val* p0))(var42->class->vft[COLOR_core__abstract_text__Text___43d]))(var42, var44); /* + on <var42:String>*/
7065 }
7066 {
7067 var52 = ((val*(*)(val* self, val* p0))(var51->class->vft[COLOR_core__abstract_text__Text___43d]))(var51, var_res); /* + on <var51:Text(String)>*/
7068 }
7069 var_res = var52;
7070 {
7071 ((void(*)(val* self))((((long)var_39&3)?class_info[((long)var_39&3)]:var_39->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_39); /* next on <var_39:Iterator[TId]>*/
7072 }
7073 }
7074 BREAK_label: (void)0;
7075 {
7076 ((void(*)(val* self))((((long)var_39&3)?class_info[((long)var_39&3)]:var_39->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_39); /* finish on <var_39:Iterator[TId]>*/
7077 }
7078 } else {
7079 }
7080 var = var_res;
7081 goto RET_LABEL;
7082 RET_LABEL:;
7083 return var;
7084 }