Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__model.sep.2.c
1 #include "nitc__model.sep.0.h"
2 /* method model$MGenericType$init for (self: MGenericType) */
3 void nitc___nitc__MGenericType___core__kernel__Object__init(val* self) {
4 val* var /* : MClass */;
5 val* var2 /* : MClass */;
6 long var3 /* : Int */;
7 long var5 /* : Int */;
8 val* var6 /* : Array[MType] */;
9 val* var8 /* : Array[MType] */;
10 long var9 /* : Int */;
11 long var11 /* : Int */;
12 short int var12 /* : Bool */;
13 short int var14 /* : Bool */;
14 val* var16 /* : Array[MType] */;
15 val* var18 /* : Array[MType] */;
16 val* var_ /* var : Array[MType] */;
17 val* var19 /* : IndexedIterator[nullable Object] */;
18 val* var_20 /* var : IndexedIterator[MType] */;
19 short int var21 /* : Bool */;
20 val* var22 /* : nullable Object */;
21 val* var_t /* var t: MType */;
22 short int var23 /* : Bool */;
23 val* var25 /* : NativeArray[String] */;
24 static val* varonce;
25 static val* varonce26;
26 val* var27 /* : String */;
27 char* var28 /* : CString */;
28 val* var29 /* : String */;
29 val* var30 /* : nullable Int */;
30 val* var31 /* : nullable Int */;
31 val* var32 /* : nullable Bool */;
32 val* var33 /* : nullable Bool */;
33 static val* varonce34;
34 val* var35 /* : String */;
35 char* var36 /* : CString */;
36 val* var37 /* : String */;
37 val* var38 /* : nullable Int */;
38 val* var39 /* : nullable Int */;
39 val* var40 /* : nullable Bool */;
40 val* var41 /* : nullable Bool */;
41 val* var42 /* : MClass */;
42 val* var44 /* : MClass */;
43 val* var45 /* : String */;
44 val* var46 /* : Array[MType] */;
45 val* var48 /* : Array[MType] */;
46 static val* varonce49;
47 val* var50 /* : String */;
48 char* var51 /* : CString */;
49 val* var52 /* : String */;
50 val* var53 /* : nullable Int */;
51 val* var54 /* : nullable Int */;
52 val* var55 /* : nullable Bool */;
53 val* var56 /* : nullable Bool */;
54 val* var57 /* : String */;
55 val* var58 /* : String */;
56 {
57 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MGenericType___core__kernel__Object__init]))(self); /* init on <self:MGenericType>*/
58 }
59 {
60 { /* Inline model$MClassType$mclass (self) on <self:MGenericType> */
61 var2 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MGenericType> */
62 if (unlikely(var2 == NULL)) {
63 if(catchStack.cursor >= 0){
64 longjmp(catchStack.envs[catchStack.cursor], 1);
65 }
66 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
67 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
68 fatal_exit(1);
69 }
70 var = var2;
71 RET_LABEL1:(void)0;
72 }
73 }
74 {
75 { /* Inline model$MClass$arity (var) on <var:MClass> */
76 var5 = var->attrs[COLOR_nitc__model__MClass___arity].l; /* _arity on <var:MClass> */
77 var3 = var5;
78 RET_LABEL4:(void)0;
79 }
80 }
81 {
82 { /* Inline model$MGenericType$arguments (self) on <self:MGenericType> */
83 var8 = self->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <self:MGenericType> */
84 if (unlikely(var8 == NULL)) {
85 if(catchStack.cursor >= 0){
86 longjmp(catchStack.envs[catchStack.cursor], 1);
87 }
88 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
89 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1305);
90 fatal_exit(1);
91 }
92 var6 = var8;
93 RET_LABEL7:(void)0;
94 }
95 }
96 {
97 { /* Inline array$AbstractArrayRead$length (var6) on <var6:Array[MType]> */
98 var11 = var6->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var6:Array[MType]> */
99 var9 = var11;
100 RET_LABEL10:(void)0;
101 }
102 }
103 {
104 { /* Inline kernel$Int$== (var3,var9) on <var3:Int> */
105 var14 = var3 == var9;
106 var12 = var14;
107 goto RET_LABEL13;
108 RET_LABEL13:(void)0;
109 }
110 }
111 if (unlikely(!var12)) {
112 if(catchStack.cursor >= 0){
113 longjmp(catchStack.envs[catchStack.cursor], 1);
114 }
115 PRINT_ERROR("Runtime error: %s", "Assert failed");
116 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1311);
117 fatal_exit(1);
118 }
119 {
120 { /* Inline model$MGenericType$need_anchor= (self,0) on <self:MGenericType> */
121 self->attrs[COLOR_nitc__model__MGenericType___need_anchor].s = 0; /* _need_anchor on <self:MGenericType> */
122 RET_LABEL15:(void)0;
123 }
124 }
125 {
126 { /* Inline model$MGenericType$arguments (self) on <self:MGenericType> */
127 var18 = self->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <self:MGenericType> */
128 if (unlikely(var18 == NULL)) {
129 if(catchStack.cursor >= 0){
130 longjmp(catchStack.envs[catchStack.cursor], 1);
131 }
132 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
133 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1305);
134 fatal_exit(1);
135 }
136 var16 = var18;
137 RET_LABEL17:(void)0;
138 }
139 }
140 var_ = var16;
141 {
142 var19 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
143 }
144 var_20 = var19;
145 for(;;) {
146 {
147 var21 = ((short int(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_20); /* is_ok on <var_20:IndexedIterator[MType]>*/
148 }
149 if (var21){
150 } else {
151 goto BREAK_label;
152 }
153 {
154 var22 = ((val*(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_20); /* item on <var_20:IndexedIterator[MType]>*/
155 }
156 var_t = var22;
157 {
158 var23 = ((short int(*)(val* self))(var_t->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_t); /* need_anchor on <var_t:MType>*/
159 }
160 if (var23){
161 {
162 { /* Inline model$MGenericType$need_anchor= (self,1) on <self:MGenericType> */
163 self->attrs[COLOR_nitc__model__MGenericType___need_anchor].s = 1; /* _need_anchor on <self:MGenericType> */
164 RET_LABEL24:(void)0;
165 }
166 }
167 goto BREAK_label;
168 } else {
169 }
170 {
171 ((void(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_20); /* next on <var_20:IndexedIterator[MType]>*/
172 }
173 }
174 BREAK_label: (void)0;
175 {
176 ((void(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_20); /* finish on <var_20:IndexedIterator[MType]>*/
177 }
178 if (unlikely(varonce==NULL)) {
179 var25 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
180 if (likely(varonce26!=NULL)) {
181 var27 = varonce26;
182 } else {
183 var28 = "[";
184 var30 = (val*)(1l<<2|1);
185 var31 = (val*)(1l<<2|1);
186 var32 = (val*)((long)(0)<<2|3);
187 var33 = (val*)((long)(0)<<2|3);
188 var29 = core__flat___CString___to_s_unsafe(var28, var30, var31, var32, var33);
189 var27 = var29;
190 varonce26 = var27;
191 }
192 ((struct instance_core__NativeArray*)var25)->values[1]=var27;
193 if (likely(varonce34!=NULL)) {
194 var35 = varonce34;
195 } else {
196 var36 = "]";
197 var38 = (val*)(1l<<2|1);
198 var39 = (val*)(1l<<2|1);
199 var40 = (val*)((long)(0)<<2|3);
200 var41 = (val*)((long)(0)<<2|3);
201 var37 = core__flat___CString___to_s_unsafe(var36, var38, var39, var40, var41);
202 var35 = var37;
203 varonce34 = var35;
204 }
205 ((struct instance_core__NativeArray*)var25)->values[3]=var35;
206 } else {
207 var25 = varonce;
208 varonce = NULL;
209 }
210 {
211 { /* Inline model$MClassType$mclass (self) on <self:MGenericType> */
212 var44 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MGenericType> */
213 if (unlikely(var44 == NULL)) {
214 if(catchStack.cursor >= 0){
215 longjmp(catchStack.envs[catchStack.cursor], 1);
216 }
217 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
218 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
219 fatal_exit(1);
220 }
221 var42 = var44;
222 RET_LABEL43:(void)0;
223 }
224 }
225 {
226 var45 = ((val*(*)(val* self))(var42->class->vft[COLOR_core__abstract_text__Object__to_s]))(var42); /* to_s on <var42:MClass>*/
227 }
228 ((struct instance_core__NativeArray*)var25)->values[0]=var45;
229 {
230 { /* Inline model$MGenericType$arguments (self) on <self:MGenericType> */
231 var48 = self->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <self:MGenericType> */
232 if (unlikely(var48 == NULL)) {
233 if(catchStack.cursor >= 0){
234 longjmp(catchStack.envs[catchStack.cursor], 1);
235 }
236 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
237 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1305);
238 fatal_exit(1);
239 }
240 var46 = var48;
241 RET_LABEL47:(void)0;
242 }
243 }
244 if (likely(varonce49!=NULL)) {
245 var50 = varonce49;
246 } else {
247 var51 = ", ";
248 var53 = (val*)(2l<<2|1);
249 var54 = (val*)(2l<<2|1);
250 var55 = (val*)((long)(0)<<2|3);
251 var56 = (val*)((long)(0)<<2|3);
252 var52 = core__flat___CString___to_s_unsafe(var51, var53, var54, var55, var56);
253 var50 = var52;
254 varonce49 = var50;
255 }
256 {
257 var57 = core__abstract_text___Collection___join(var46, var50, ((val*)NULL));
258 }
259 ((struct instance_core__NativeArray*)var25)->values[2]=var57;
260 {
261 var58 = ((val*(*)(val* self))(var25->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var25); /* native_to_s on <var25:NativeArray[String]>*/
262 }
263 varonce = var25;
264 {
265 { /* Inline model$MGenericType$to_s= (self,var58) on <self:MGenericType> */
266 self->attrs[COLOR_nitc__model__MGenericType___to_s].val = var58; /* _to_s on <self:MGenericType> */
267 RET_LABEL59:(void)0;
268 }
269 }
270 RET_LABEL:;
271 }
272 /* method model$MGenericType$to_s for (self: MGenericType): String */
273 val* nitc___nitc__MGenericType___core__abstract_text__Object__to_s(val* self) {
274 val* var /* : String */;
275 val* var1 /* : String */;
276 var1 = self->attrs[COLOR_nitc__model__MGenericType___to_s].val; /* _to_s on <self:MGenericType> */
277 if (unlikely(var1 == NULL)) {
278 if(catchStack.cursor >= 0){
279 longjmp(catchStack.envs[catchStack.cursor], 1);
280 }
281 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
282 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1324);
283 fatal_exit(1);
284 }
285 var = var1;
286 RET_LABEL:;
287 return var;
288 }
289 /* method model$MGenericType$to_s= for (self: MGenericType, String) */
290 void nitc___nitc__MGenericType___to_s_61d(val* self, val* p0) {
291 self->attrs[COLOR_nitc__model__MGenericType___to_s].val = p0; /* _to_s on <self:MGenericType> */
292 RET_LABEL:;
293 }
294 /* method model$MGenericType$full_name for (self: MGenericType): String */
295 val* nitc___nitc__MGenericType___nitc__model_base__MEntity__full_name(val* self) {
296 val* var /* : String */;
297 short int var1 /* : Bool */;
298 val* var2 /* : String */;
299 val* var3 /* : String */;
300 val* var5 /* : Array[String] */;
301 val* var_args /* var args: Array[String] */;
302 val* var6 /* : Array[MType] */;
303 val* var8 /* : Array[MType] */;
304 val* var_ /* var : Array[MType] */;
305 val* var9 /* : IndexedIterator[nullable Object] */;
306 val* var_10 /* var : IndexedIterator[MType] */;
307 short int var11 /* : Bool */;
308 val* var12 /* : nullable Object */;
309 val* var_t /* var t: MType */;
310 val* var13 /* : String */;
311 val* var14 /* : NativeArray[String] */;
312 static val* varonce;
313 static val* varonce15;
314 val* var16 /* : String */;
315 char* var17 /* : CString */;
316 val* var18 /* : String */;
317 val* var19 /* : nullable Int */;
318 val* var20 /* : nullable Int */;
319 val* var21 /* : nullable Bool */;
320 val* var22 /* : nullable Bool */;
321 static val* varonce23;
322 val* var24 /* : String */;
323 char* var25 /* : CString */;
324 val* var26 /* : String */;
325 val* var27 /* : nullable Int */;
326 val* var28 /* : nullable Int */;
327 val* var29 /* : nullable Bool */;
328 val* var30 /* : nullable Bool */;
329 val* var31 /* : MClass */;
330 val* var33 /* : MClass */;
331 val* var34 /* : String */;
332 static val* varonce35;
333 val* var36 /* : String */;
334 char* var37 /* : CString */;
335 val* var38 /* : String */;
336 val* var39 /* : nullable Int */;
337 val* var40 /* : nullable Int */;
338 val* var41 /* : nullable Bool */;
339 val* var42 /* : nullable Bool */;
340 val* var43 /* : String */;
341 val* var44 /* : String */;
342 var1 = self->attrs[COLOR_nitc__model__MGenericType___full_name].val != NULL; /* _full_name on <self:MGenericType> */
343 if(likely(var1)) {
344 var2 = self->attrs[COLOR_nitc__model__MGenericType___full_name].val; /* _full_name on <self:MGenericType> */
345 if (unlikely(var2 == NULL)) {
346 if(catchStack.cursor >= 0){
347 longjmp(catchStack.envs[catchStack.cursor], 1);
348 }
349 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_name");
350 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1328);
351 fatal_exit(1);
352 }
353 } else {
354 {
355 var5 = NEW_core__Array(&type_core__Array__core__String);
356 {
357 core___core__Array___core__kernel__Object__init(var5); /* Direct call array$Array$init on <var5:Array[String]>*/
358 }
359 var_args = var5;
360 {
361 { /* Inline model$MGenericType$arguments (self) on <self:MGenericType> */
362 var8 = self->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <self:MGenericType> */
363 if (unlikely(var8 == NULL)) {
364 if(catchStack.cursor >= 0){
365 longjmp(catchStack.envs[catchStack.cursor], 1);
366 }
367 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
368 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1305);
369 fatal_exit(1);
370 }
371 var6 = var8;
372 RET_LABEL7:(void)0;
373 }
374 }
375 var_ = var6;
376 {
377 var9 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
378 }
379 var_10 = var9;
380 for(;;) {
381 {
382 var11 = ((short int(*)(val* self))((((long)var_10&3)?class_info[((long)var_10&3)]:var_10->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_10); /* is_ok on <var_10:IndexedIterator[MType]>*/
383 }
384 if (var11){
385 } else {
386 goto BREAK_label;
387 }
388 {
389 var12 = ((val*(*)(val* self))((((long)var_10&3)?class_info[((long)var_10&3)]:var_10->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_10); /* item on <var_10:IndexedIterator[MType]>*/
390 }
391 var_t = var12;
392 {
393 var13 = ((val*(*)(val* self))(var_t->class->vft[COLOR_nitc__model_base__MEntity__full_name]))(var_t); /* full_name on <var_t:MType>*/
394 }
395 {
396 core___core__Array___core__abstract_collection__SimpleCollection__add(var_args, var13); /* Direct call array$Array$add on <var_args:Array[String]>*/
397 }
398 {
399 ((void(*)(val* self))((((long)var_10&3)?class_info[((long)var_10&3)]:var_10->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_10); /* next on <var_10:IndexedIterator[MType]>*/
400 }
401 }
402 BREAK_label: (void)0;
403 {
404 ((void(*)(val* self))((((long)var_10&3)?class_info[((long)var_10&3)]:var_10->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_10); /* finish on <var_10:IndexedIterator[MType]>*/
405 }
406 if (unlikely(varonce==NULL)) {
407 var14 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
408 if (likely(varonce15!=NULL)) {
409 var16 = varonce15;
410 } else {
411 var17 = "[";
412 var19 = (val*)(1l<<2|1);
413 var20 = (val*)(1l<<2|1);
414 var21 = (val*)((long)(0)<<2|3);
415 var22 = (val*)((long)(0)<<2|3);
416 var18 = core__flat___CString___to_s_unsafe(var17, var19, var20, var21, var22);
417 var16 = var18;
418 varonce15 = var16;
419 }
420 ((struct instance_core__NativeArray*)var14)->values[1]=var16;
421 if (likely(varonce23!=NULL)) {
422 var24 = varonce23;
423 } else {
424 var25 = "]";
425 var27 = (val*)(1l<<2|1);
426 var28 = (val*)(1l<<2|1);
427 var29 = (val*)((long)(0)<<2|3);
428 var30 = (val*)((long)(0)<<2|3);
429 var26 = core__flat___CString___to_s_unsafe(var25, var27, var28, var29, var30);
430 var24 = var26;
431 varonce23 = var24;
432 }
433 ((struct instance_core__NativeArray*)var14)->values[3]=var24;
434 } else {
435 var14 = varonce;
436 varonce = NULL;
437 }
438 {
439 { /* Inline model$MClassType$mclass (self) on <self:MGenericType> */
440 var33 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MGenericType> */
441 if (unlikely(var33 == NULL)) {
442 if(catchStack.cursor >= 0){
443 longjmp(catchStack.envs[catchStack.cursor], 1);
444 }
445 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
446 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
447 fatal_exit(1);
448 }
449 var31 = var33;
450 RET_LABEL32:(void)0;
451 }
452 }
453 {
454 var34 = nitc___nitc__MClass___nitc__model_base__MEntity__full_name(var31);
455 }
456 ((struct instance_core__NativeArray*)var14)->values[0]=var34;
457 if (likely(varonce35!=NULL)) {
458 var36 = varonce35;
459 } else {
460 var37 = ", ";
461 var39 = (val*)(2l<<2|1);
462 var40 = (val*)(2l<<2|1);
463 var41 = (val*)((long)(0)<<2|3);
464 var42 = (val*)((long)(0)<<2|3);
465 var38 = core__flat___CString___to_s_unsafe(var37, var39, var40, var41, var42);
466 var36 = var38;
467 varonce35 = var36;
468 }
469 {
470 var43 = core__abstract_text___Collection___join(var_args, var36, ((val*)NULL));
471 }
472 ((struct instance_core__NativeArray*)var14)->values[2]=var43;
473 {
474 var44 = ((val*(*)(val* self))(var14->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var14); /* native_to_s on <var14:NativeArray[String]>*/
475 }
476 varonce = var14;
477 var3 = var44;
478 goto RET_LABEL4;
479 RET_LABEL4:(void)0;
480 }
481 self->attrs[COLOR_nitc__model__MGenericType___full_name].val = var3; /* _full_name on <self:MGenericType> */
482 var2 = var3;
483 }
484 var = var2;
485 RET_LABEL:;
486 return var;
487 }
488 /* method model$MGenericType$c_name for (self: MGenericType): String */
489 val* nitc___nitc__MGenericType___nitc__model_base__MEntity__c_name(val* self) {
490 val* var /* : String */;
491 short int var1 /* : Bool */;
492 val* var2 /* : String */;
493 val* var3 /* : String */;
494 val* var5 /* : MClass */;
495 val* var7 /* : MClass */;
496 val* var8 /* : String */;
497 val* var_res /* var res: String */;
498 val* var9 /* : Array[MType] */;
499 val* var11 /* : Array[MType] */;
500 val* var_ /* var : Array[MType] */;
501 val* var12 /* : IndexedIterator[nullable Object] */;
502 val* var_13 /* var : IndexedIterator[MType] */;
503 short int var14 /* : Bool */;
504 val* var15 /* : nullable Object */;
505 val* var_t /* var t: MType */;
506 static val* varonce;
507 val* var16 /* : String */;
508 char* var17 /* : CString */;
509 val* var18 /* : String */;
510 val* var19 /* : nullable Int */;
511 val* var20 /* : nullable Int */;
512 val* var21 /* : nullable Bool */;
513 val* var22 /* : nullable Bool */;
514 val* var23 /* : Text */;
515 val* var24 /* : String */;
516 val* var25 /* : Text */;
517 val* var26 /* : String */;
518 var1 = self->attrs[COLOR_nitc__model__MGenericType___c_name].val != NULL; /* _c_name on <self:MGenericType> */
519 if(likely(var1)) {
520 var2 = self->attrs[COLOR_nitc__model__MGenericType___c_name].val; /* _c_name on <self:MGenericType> */
521 if (unlikely(var2 == NULL)) {
522 if(catchStack.cursor >= 0){
523 longjmp(catchStack.envs[catchStack.cursor], 1);
524 }
525 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_name");
526 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1338);
527 fatal_exit(1);
528 }
529 } else {
530 {
531 {
532 { /* Inline model$MClassType$mclass (self) on <self:MGenericType> */
533 var7 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MGenericType> */
534 if (unlikely(var7 == NULL)) {
535 if(catchStack.cursor >= 0){
536 longjmp(catchStack.envs[catchStack.cursor], 1);
537 }
538 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
539 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
540 fatal_exit(1);
541 }
542 var5 = var7;
543 RET_LABEL6:(void)0;
544 }
545 }
546 {
547 var8 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var5);
548 }
549 var_res = var8;
550 {
551 { /* Inline model$MGenericType$arguments (self) on <self:MGenericType> */
552 var11 = self->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <self:MGenericType> */
553 if (unlikely(var11 == NULL)) {
554 if(catchStack.cursor >= 0){
555 longjmp(catchStack.envs[catchStack.cursor], 1);
556 }
557 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
558 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1305);
559 fatal_exit(1);
560 }
561 var9 = var11;
562 RET_LABEL10:(void)0;
563 }
564 }
565 var_ = var9;
566 {
567 var12 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
568 }
569 var_13 = var12;
570 for(;;) {
571 {
572 var14 = ((short int(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_13); /* is_ok on <var_13:IndexedIterator[MType]>*/
573 }
574 if (var14){
575 } else {
576 goto BREAK_label;
577 }
578 {
579 var15 = ((val*(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_13); /* item on <var_13:IndexedIterator[MType]>*/
580 }
581 var_t = var15;
582 if (likely(varonce!=NULL)) {
583 var16 = varonce;
584 } else {
585 var17 = "__";
586 var19 = (val*)(2l<<2|1);
587 var20 = (val*)(2l<<2|1);
588 var21 = (val*)((long)(0)<<2|3);
589 var22 = (val*)((long)(0)<<2|3);
590 var18 = core__flat___CString___to_s_unsafe(var17, var19, var20, var21, var22);
591 var16 = var18;
592 varonce = var16;
593 }
594 {
595 var23 = ((val*(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__abstract_text__Text___43d]))(var_res, var16); /* + on <var_res:String>*/
596 }
597 var_res = var23;
598 {
599 var24 = ((val*(*)(val* self))(var_t->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var_t); /* c_name on <var_t:MType>*/
600 }
601 {
602 var25 = ((val*(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__abstract_text__Text___43d]))(var_res, var24); /* + on <var_res:String>*/
603 }
604 var_res = var25;
605 {
606 ((void(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_13); /* next on <var_13:IndexedIterator[MType]>*/
607 }
608 }
609 BREAK_label: (void)0;
610 {
611 ((void(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_13); /* finish on <var_13:IndexedIterator[MType]>*/
612 }
613 {
614 var26 = core___core__String___Object__to_s(var_res);
615 }
616 var3 = var26;
617 goto RET_LABEL4;
618 RET_LABEL4:(void)0;
619 }
620 self->attrs[COLOR_nitc__model__MGenericType___c_name].val = var3; /* _c_name on <self:MGenericType> */
621 var2 = var3;
622 }
623 var = var2;
624 RET_LABEL:;
625 return var;
626 }
627 /* method model$MGenericType$need_anchor for (self: MGenericType): Bool */
628 short int nitc___nitc__MGenericType___MType__need_anchor(val* self) {
629 short int var /* : Bool */;
630 short int var1 /* : Bool */;
631 var1 = self->attrs[COLOR_nitc__model__MGenericType___need_anchor].s; /* _need_anchor on <self:MGenericType> */
632 var = var1;
633 RET_LABEL:;
634 return var;
635 }
636 /* method model$MGenericType$need_anchor= for (self: MGenericType, Bool) */
637 void nitc___nitc__MGenericType___need_anchor_61d(val* self, short int p0) {
638 self->attrs[COLOR_nitc__model__MGenericType___need_anchor].s = p0; /* _need_anchor on <self:MGenericType> */
639 RET_LABEL:;
640 }
641 /* method model$MGenericType$resolve_for for (self: MGenericType, MType, nullable MClassType, MModule, Bool): MType */
642 val* nitc___nitc__MGenericType___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
643 val* var /* : MType */;
644 val* var_mtype /* var mtype: MType */;
645 val* var_anchor /* var anchor: nullable MClassType */;
646 val* var_mmodule /* var mmodule: MModule */;
647 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
648 short int var1 /* : Bool */;
649 short int var3 /* : Bool */;
650 short int var4 /* : Bool */;
651 short int var5 /* : Bool */;
652 val* var6 /* : Array[MType] */;
653 val* var_types /* var types: Array[MType] */;
654 val* var7 /* : Array[MType] */;
655 val* var9 /* : Array[MType] */;
656 val* var_ /* var : Array[MType] */;
657 val* var10 /* : IndexedIterator[nullable Object] */;
658 val* var_11 /* var : IndexedIterator[MType] */;
659 short int var12 /* : Bool */;
660 val* var13 /* : nullable Object */;
661 val* var_t /* var t: MType */;
662 val* var14 /* : MType */;
663 val* var15 /* : MClass */;
664 val* var17 /* : MClass */;
665 val* var18 /* : MClassType */;
666 var_mtype = p0;
667 var_anchor = p1;
668 var_mmodule = p2;
669 var_cleanup_virtual = p3;
670 {
671 { /* Inline model$MGenericType$need_anchor (self) on <self:MGenericType> */
672 var3 = self->attrs[COLOR_nitc__model__MGenericType___need_anchor].s; /* _need_anchor on <self:MGenericType> */
673 var1 = var3;
674 RET_LABEL2:(void)0;
675 }
676 }
677 var4 = !var1;
678 if (var4){
679 var = self;
680 goto RET_LABEL;
681 } else {
682 }
683 {
684 var5 = nitc___nitc__MGenericType___MType__can_resolve_for(self, var_mtype, var_anchor, var_mmodule);
685 }
686 if (unlikely(!var5)) {
687 if(catchStack.cursor >= 0){
688 longjmp(catchStack.envs[catchStack.cursor], 1);
689 }
690 PRINT_ERROR("Runtime error: %s", "Assert failed");
691 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1353);
692 fatal_exit(1);
693 }
694 var6 = NEW_core__Array(&type_core__Array__nitc__MType);
695 {
696 core___core__Array___core__kernel__Object__init(var6); /* Direct call array$Array$init on <var6:Array[MType]>*/
697 }
698 var_types = var6;
699 {
700 { /* Inline model$MGenericType$arguments (self) on <self:MGenericType> */
701 var9 = self->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <self:MGenericType> */
702 if (unlikely(var9 == NULL)) {
703 if(catchStack.cursor >= 0){
704 longjmp(catchStack.envs[catchStack.cursor], 1);
705 }
706 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
707 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1305);
708 fatal_exit(1);
709 }
710 var7 = var9;
711 RET_LABEL8:(void)0;
712 }
713 }
714 var_ = var7;
715 {
716 var10 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
717 }
718 var_11 = var10;
719 for(;;) {
720 {
721 var12 = ((short int(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var_11->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_11); /* is_ok on <var_11:IndexedIterator[MType]>*/
722 }
723 if (var12){
724 } else {
725 goto BREAK_label;
726 }
727 {
728 var13 = ((val*(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var_11->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_11); /* item on <var_11:IndexedIterator[MType]>*/
729 }
730 var_t = var13;
731 {
732 var14 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_t->class->vft[COLOR_nitc__model__MType__resolve_for]))(var_t, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual); /* resolve_for on <var_t:MType>*/
733 }
734 {
735 core___core__Array___core__abstract_collection__SimpleCollection__add(var_types, var14); /* Direct call array$Array$add on <var_types:Array[MType]>*/
736 }
737 {
738 ((void(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var_11->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_11); /* next on <var_11:IndexedIterator[MType]>*/
739 }
740 }
741 BREAK_label: (void)0;
742 {
743 ((void(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var_11->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_11); /* finish on <var_11:IndexedIterator[MType]>*/
744 }
745 {
746 { /* Inline model$MClassType$mclass (self) on <self:MGenericType> */
747 var17 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MGenericType> */
748 if (unlikely(var17 == NULL)) {
749 if(catchStack.cursor >= 0){
750 longjmp(catchStack.envs[catchStack.cursor], 1);
751 }
752 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
753 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
754 fatal_exit(1);
755 }
756 var15 = var17;
757 RET_LABEL16:(void)0;
758 }
759 }
760 {
761 var18 = nitc___nitc__MClass___get_mtype(var15, var_types);
762 }
763 var = var18;
764 goto RET_LABEL;
765 RET_LABEL:;
766 return var;
767 }
768 /* method model$MGenericType$can_resolve_for for (self: MGenericType, MType, nullable MClassType, MModule): Bool */
769 short int nitc___nitc__MGenericType___MType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
770 short int var /* : Bool */;
771 val* var_mtype /* var mtype: MType */;
772 val* var_anchor /* var anchor: nullable MClassType */;
773 val* var_mmodule /* var mmodule: MModule */;
774 short int var1 /* : Bool */;
775 short int var3 /* : Bool */;
776 short int var4 /* : Bool */;
777 val* var5 /* : Array[MType] */;
778 val* var7 /* : Array[MType] */;
779 val* var_ /* var : Array[MType] */;
780 val* var8 /* : IndexedIterator[nullable Object] */;
781 val* var_9 /* var : IndexedIterator[MType] */;
782 short int var10 /* : Bool */;
783 val* var11 /* : nullable Object */;
784 val* var_t /* var t: MType */;
785 short int var12 /* : Bool */;
786 short int var13 /* : Bool */;
787 var_mtype = p0;
788 var_anchor = p1;
789 var_mmodule = p2;
790 {
791 { /* Inline model$MGenericType$need_anchor (self) on <self:MGenericType> */
792 var3 = self->attrs[COLOR_nitc__model__MGenericType___need_anchor].s; /* _need_anchor on <self:MGenericType> */
793 var1 = var3;
794 RET_LABEL2:(void)0;
795 }
796 }
797 var4 = !var1;
798 if (var4){
799 var = 1;
800 goto RET_LABEL;
801 } else {
802 }
803 {
804 { /* Inline model$MGenericType$arguments (self) on <self:MGenericType> */
805 var7 = self->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <self:MGenericType> */
806 if (unlikely(var7 == NULL)) {
807 if(catchStack.cursor >= 0){
808 longjmp(catchStack.envs[catchStack.cursor], 1);
809 }
810 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
811 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1305);
812 fatal_exit(1);
813 }
814 var5 = var7;
815 RET_LABEL6:(void)0;
816 }
817 }
818 var_ = var5;
819 {
820 var8 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
821 }
822 var_9 = var8;
823 for(;;) {
824 {
825 var10 = ((short int(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_9); /* is_ok on <var_9:IndexedIterator[MType]>*/
826 }
827 if (var10){
828 } else {
829 goto BREAK_label;
830 }
831 {
832 var11 = ((val*(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_9); /* item on <var_9:IndexedIterator[MType]>*/
833 }
834 var_t = var11;
835 {
836 var12 = ((short int(*)(val* self, val* p0, val* p1, val* p2))(var_t->class->vft[COLOR_nitc__model__MType__can_resolve_for]))(var_t, var_mtype, var_anchor, var_mmodule); /* can_resolve_for on <var_t:MType>*/
837 }
838 var13 = !var12;
839 if (var13){
840 var = 0;
841 goto RET_LABEL;
842 } else {
843 }
844 {
845 ((void(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_9); /* next on <var_9:IndexedIterator[MType]>*/
846 }
847 }
848 BREAK_label: (void)0;
849 {
850 ((void(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_9); /* finish on <var_9:IndexedIterator[MType]>*/
851 }
852 var = 1;
853 goto RET_LABEL;
854 RET_LABEL:;
855 return var;
856 }
857 /* method model$MGenericType$is_ok for (self: MGenericType): Bool */
858 short int nitc___nitc__MGenericType___MType__is_ok(val* self) {
859 short int var /* : Bool */;
860 val* var1 /* : Array[MType] */;
861 val* var3 /* : Array[MType] */;
862 val* var_ /* var : Array[MType] */;
863 val* var4 /* : IndexedIterator[nullable Object] */;
864 val* var_5 /* var : IndexedIterator[MType] */;
865 short int var6 /* : Bool */;
866 val* var7 /* : nullable Object */;
867 val* var_t /* var t: MType */;
868 short int var8 /* : Bool */;
869 short int var9 /* : Bool */;
870 short int var10 /* : Bool */;
871 {
872 { /* Inline model$MGenericType$arguments (self) on <self:MGenericType> */
873 var3 = self->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <self:MGenericType> */
874 if (unlikely(var3 == NULL)) {
875 if(catchStack.cursor >= 0){
876 longjmp(catchStack.envs[catchStack.cursor], 1);
877 }
878 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
879 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1305);
880 fatal_exit(1);
881 }
882 var1 = var3;
883 RET_LABEL2:(void)0;
884 }
885 }
886 var_ = var1;
887 {
888 var4 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
889 }
890 var_5 = var4;
891 for(;;) {
892 {
893 var6 = ((short int(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_5); /* is_ok on <var_5:IndexedIterator[MType]>*/
894 }
895 if (var6){
896 } else {
897 goto BREAK_label;
898 }
899 {
900 var7 = ((val*(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_5); /* item on <var_5:IndexedIterator[MType]>*/
901 }
902 var_t = var7;
903 {
904 var8 = ((short int(*)(val* self))(var_t->class->vft[COLOR_nitc__model__MType__is_ok]))(var_t); /* is_ok on <var_t:MType>*/
905 }
906 var9 = !var8;
907 if (var9){
908 var = 0;
909 goto RET_LABEL;
910 } else {
911 }
912 {
913 ((void(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_5); /* next on <var_5:IndexedIterator[MType]>*/
914 }
915 }
916 BREAK_label: (void)0;
917 {
918 ((void(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_5); /* finish on <var_5:IndexedIterator[MType]>*/
919 }
920 {
921 var10 = ((short int(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MGenericType___MType__is_ok]))(self); /* is_ok on <self:MGenericType>*/
922 }
923 var = var10;
924 goto RET_LABEL;
925 RET_LABEL:;
926 return var;
927 }
928 /* method model$MGenericType$is_legal_in for (self: MGenericType, MModule, nullable MClassType): Bool */
929 short int nitc___nitc__MGenericType___MType__is_legal_in(val* self, val* p0, val* p1) {
930 short int var /* : Bool */;
931 val* var_mmodule /* var mmodule: MModule */;
932 val* var_anchor /* var anchor: nullable MClassType */;
933 short int var1 /* : Bool */;
934 short int var3 /* : Bool */;
935 short int var4 /* : Bool */;
936 short int var5 /* : Bool */;
937 val* var_other /* var other: nullable Object */;
938 short int var7 /* : Bool */;
939 short int var8 /* : Bool */;
940 val* var9 /* : MClassType */;
941 val* var_mtype /* var mtype: nullable Object */;
942 short int var10 /* : Bool */;
943 short int var11 /* : Bool */;
944 val* var12 /* : MClass */;
945 val* var14 /* : MClass */;
946 val* var15 /* : MClassDef */;
947 val* var17 /* : MClassDef */;
948 val* var18 /* : MClassType */;
949 val* var20 /* : MClassType */;
950 short int var21 /* : Bool */;
951 var_mmodule = p0;
952 var_anchor = p1;
953 {
954 { /* Inline model$MGenericType$need_anchor (self) on <self:MGenericType> */
955 var3 = self->attrs[COLOR_nitc__model__MGenericType___need_anchor].s; /* _need_anchor on <self:MGenericType> */
956 var1 = var3;
957 RET_LABEL2:(void)0;
958 }
959 }
960 if (var1){
961 if (var_anchor == NULL) {
962 var4 = 0; /* is null */
963 } else {
964 var4 = 1; /* arg is null and recv is not */
965 }
966 if (0) {
967 { /* Inline kernel$Object$!= (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
968 var_other = ((val*)NULL);
969 {
970 var7 = ((short int(*)(val* self, val* p0))(var_anchor->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_anchor, var_other); /* == on <var_anchor:nullable MClassType(MClassType)>*/
971 }
972 var8 = !var7;
973 var5 = var8;
974 goto RET_LABEL6;
975 RET_LABEL6:(void)0;
976 }
977 var4 = var5;
978 }
979 if (unlikely(!var4)) {
980 if(catchStack.cursor >= 0){
981 longjmp(catchStack.envs[catchStack.cursor], 1);
982 }
983 PRINT_ERROR("Runtime error: %s", "Assert failed");
984 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1380);
985 fatal_exit(1);
986 }
987 {
988 var9 = nitc___nitc__MClassType___MType__anchor_to(self, var_mmodule, var_anchor);
989 }
990 var_mtype = var9;
991 } else {
992 var_mtype = self;
993 }
994 {
995 var10 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__is_ok]))(var_mtype); /* is_ok on <var_mtype:nullable Object(MClassType)>*/
996 }
997 var11 = !var10;
998 if (var11){
999 var = 0;
1000 goto RET_LABEL;
1001 } else {
1002 }
1003 {
1004 { /* Inline model$MClassType$mclass (var_mtype) on <var_mtype:nullable Object(MClassType)> */
1005 var14 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:nullable Object(MClassType)> */
1006 if (unlikely(var14 == NULL)) {
1007 if(catchStack.cursor >= 0){
1008 longjmp(catchStack.envs[catchStack.cursor], 1);
1009 }
1010 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1011 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
1012 fatal_exit(1);
1013 }
1014 var12 = var14;
1015 RET_LABEL13:(void)0;
1016 }
1017 }
1018 {
1019 { /* Inline model$MClass$intro (var12) on <var12:MClass> */
1020 var17 = var12->attrs[COLOR_nitc__model__MClass___intro].val; /* _intro on <var12:MClass> */
1021 if (unlikely(var17 == NULL)) {
1022 if(catchStack.cursor >= 0){
1023 longjmp(catchStack.envs[catchStack.cursor], 1);
1024 }
1025 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
1026 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 496);
1027 fatal_exit(1);
1028 }
1029 var15 = var17;
1030 RET_LABEL16:(void)0;
1031 }
1032 }
1033 {
1034 { /* Inline model$MClassDef$bound_mtype (var15) on <var15:MClassDef> */
1035 var20 = var15->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var15:MClassDef> */
1036 if (unlikely(var20 == NULL)) {
1037 if(catchStack.cursor >= 0){
1038 longjmp(catchStack.envs[catchStack.cursor], 1);
1039 }
1040 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1041 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
1042 fatal_exit(1);
1043 }
1044 var18 = var20;
1045 RET_LABEL19:(void)0;
1046 }
1047 }
1048 {
1049 var21 = nitc___nitc__MType___is_subtype(var_mtype, var_mmodule, ((val*)NULL), var18);
1050 }
1051 var = var21;
1052 goto RET_LABEL;
1053 RET_LABEL:;
1054 return var;
1055 }
1056 /* method model$MGenericType$length for (self: MGenericType): Int */
1057 long nitc___nitc__MGenericType___MType__length(val* self) {
1058 long var /* : Int */;
1059 long var_res /* var res: Int */;
1060 val* var1 /* : Array[MType] */;
1061 val* var3 /* : Array[MType] */;
1062 val* var_ /* var : Array[MType] */;
1063 val* var4 /* : IndexedIterator[nullable Object] */;
1064 val* var_5 /* var : IndexedIterator[MType] */;
1065 short int var6 /* : Bool */;
1066 val* var7 /* : nullable Object */;
1067 val* var_a /* var a: MType */;
1068 long var8 /* : Int */;
1069 long var9 /* : Int */;
1070 short int var11 /* : Bool */;
1071 int cltype;
1072 int idtype;
1073 const char* var_class_name;
1074 long var12 /* : Int */;
1075 var_res = 1l;
1076 {
1077 { /* Inline model$MGenericType$arguments (self) on <self:MGenericType> */
1078 var3 = self->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <self:MGenericType> */
1079 if (unlikely(var3 == NULL)) {
1080 if(catchStack.cursor >= 0){
1081 longjmp(catchStack.envs[catchStack.cursor], 1);
1082 }
1083 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
1084 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1305);
1085 fatal_exit(1);
1086 }
1087 var1 = var3;
1088 RET_LABEL2:(void)0;
1089 }
1090 }
1091 var_ = var1;
1092 {
1093 var4 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
1094 }
1095 var_5 = var4;
1096 for(;;) {
1097 {
1098 var6 = ((short int(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_5); /* is_ok on <var_5:IndexedIterator[MType]>*/
1099 }
1100 if (var6){
1101 } else {
1102 goto BREAK_label;
1103 }
1104 {
1105 var7 = ((val*(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_5); /* item on <var_5:IndexedIterator[MType]>*/
1106 }
1107 var_a = var7;
1108 {
1109 var8 = ((long(*)(val* self))(var_a->class->vft[COLOR_nitc__model__MType__length]))(var_a); /* length on <var_a:MType>*/
1110 }
1111 {
1112 { /* Inline kernel$Int$+ (var_res,var8) on <var_res:Int> */
1113 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
1114 /* <var8:Int> isa OTHER */
1115 var11 = 1; /* easy <var8:Int> isa OTHER*/
1116 if (unlikely(!var11)) {
1117 var_class_name = type_core__Int.name;
1118 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1119 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1120 fatal_exit(1);
1121 }
1122 var12 = var_res + var8;
1123 var9 = var12;
1124 goto RET_LABEL10;
1125 RET_LABEL10:(void)0;
1126 }
1127 }
1128 var_res = var9;
1129 {
1130 ((void(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_5); /* next on <var_5:IndexedIterator[MType]>*/
1131 }
1132 }
1133 BREAK_label: (void)0;
1134 {
1135 ((void(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_5); /* finish on <var_5:IndexedIterator[MType]>*/
1136 }
1137 var = var_res;
1138 goto RET_LABEL;
1139 RET_LABEL:;
1140 return var;
1141 }
1142 /* method model$MFormalType$as_notnull for (self: MFormalType): MType */
1143 val* nitc___nitc__MFormalType___MType__as_notnull(val* self) {
1144 val* var /* : MType */;
1145 short int var1 /* : Bool */;
1146 val* var2 /* : MType */;
1147 val* var3 /* : MNotNullType */;
1148 var1 = self->attrs[COLOR_nitc__model__MFormalType___as_notnull].val != NULL; /* _as_notnull on <self:MFormalType> */
1149 if(likely(var1)) {
1150 var2 = self->attrs[COLOR_nitc__model__MFormalType___as_notnull].val; /* _as_notnull on <self:MFormalType> */
1151 if (unlikely(var2 == NULL)) {
1152 if(catchStack.cursor >= 0){
1153 longjmp(catchStack.envs[catchStack.cursor], 1);
1154 }
1155 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _as_notnull");
1156 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1416);
1157 fatal_exit(1);
1158 }
1159 } else {
1160 var3 = NEW_nitc__MNotNullType(&type_nitc__MNotNullType);
1161 {
1162 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__model__MProxyType__mtype_61d]))(var3, self); /* mtype= on <var3:MNotNullType>*/
1163 }
1164 {
1165 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:MNotNullType>*/
1166 }
1167 self->attrs[COLOR_nitc__model__MFormalType___as_notnull].val = var3; /* _as_notnull on <self:MFormalType> */
1168 var2 = var3;
1169 }
1170 var = var2;
1171 RET_LABEL:;
1172 return var;
1173 }
1174 /* method model$MVirtualType$mproperty for (self: MVirtualType): MVirtualTypeProp */
1175 val* nitc___nitc__MVirtualType___mproperty(val* self) {
1176 val* var /* : MVirtualTypeProp */;
1177 val* var1 /* : MVirtualTypeProp */;
1178 var1 = self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
1179 if (unlikely(var1 == NULL)) {
1180 if(catchStack.cursor >= 0){
1181 longjmp(catchStack.envs[catchStack.cursor], 1);
1182 }
1183 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1184 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1423);
1185 fatal_exit(1);
1186 }
1187 var = var1;
1188 RET_LABEL:;
1189 return var;
1190 }
1191 /* method model$MVirtualType$mproperty= for (self: MVirtualType, MVirtualTypeProp) */
1192 void nitc___nitc__MVirtualType___mproperty_61d(val* self, val* p0) {
1193 self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val = p0; /* _mproperty on <self:MVirtualType> */
1194 RET_LABEL:;
1195 }
1196 /* method model$MVirtualType$location for (self: MVirtualType): Location */
1197 val* nitc___nitc__MVirtualType___nitc__model_base__MEntity__location(val* self) {
1198 val* var /* : Location */;
1199 val* var1 /* : MVirtualTypeProp */;
1200 val* var3 /* : MVirtualTypeProp */;
1201 val* var4 /* : Location */;
1202 val* var6 /* : Location */;
1203 {
1204 { /* Inline model$MVirtualType$mproperty (self) on <self:MVirtualType> */
1205 var3 = self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
1206 if (unlikely(var3 == NULL)) {
1207 if(catchStack.cursor >= 0){
1208 longjmp(catchStack.envs[catchStack.cursor], 1);
1209 }
1210 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1211 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1423);
1212 fatal_exit(1);
1213 }
1214 var1 = var3;
1215 RET_LABEL2:(void)0;
1216 }
1217 }
1218 {
1219 { /* Inline model$MProperty$location (var1) on <var1:MVirtualTypeProp> */
1220 var6 = var1->attrs[COLOR_nitc__model__MProperty___location].val; /* _location on <var1:MVirtualTypeProp> */
1221 if (unlikely(var6 == NULL)) {
1222 if(catchStack.cursor >= 0){
1223 longjmp(catchStack.envs[catchStack.cursor], 1);
1224 }
1225 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1226 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2050);
1227 fatal_exit(1);
1228 }
1229 var4 = var6;
1230 RET_LABEL5:(void)0;
1231 }
1232 }
1233 var = var4;
1234 goto RET_LABEL;
1235 RET_LABEL:;
1236 return var;
1237 }
1238 /* method model$MVirtualType$model for (self: MVirtualType): Model */
1239 val* nitc___nitc__MVirtualType___nitc__model_base__MEntity__model(val* self) {
1240 val* var /* : Model */;
1241 val* var1 /* : MVirtualTypeProp */;
1242 val* var3 /* : MVirtualTypeProp */;
1243 val* var4 /* : MClassDef */;
1244 val* var6 /* : MClassDef */;
1245 val* var7 /* : MModule */;
1246 val* var9 /* : MModule */;
1247 val* var10 /* : Model */;
1248 val* var12 /* : Model */;
1249 {
1250 { /* Inline model$MVirtualType$mproperty (self) on <self:MVirtualType> */
1251 var3 = self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
1252 if (unlikely(var3 == NULL)) {
1253 if(catchStack.cursor >= 0){
1254 longjmp(catchStack.envs[catchStack.cursor], 1);
1255 }
1256 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1257 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1423);
1258 fatal_exit(1);
1259 }
1260 var1 = var3;
1261 RET_LABEL2:(void)0;
1262 }
1263 }
1264 {
1265 { /* Inline model$MProperty$intro_mclassdef (var1) on <var1:MVirtualTypeProp> */
1266 var6 = var1->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var1:MVirtualTypeProp> */
1267 if (unlikely(var6 == NULL)) {
1268 if(catchStack.cursor >= 0){
1269 longjmp(catchStack.envs[catchStack.cursor], 1);
1270 }
1271 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
1272 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2042);
1273 fatal_exit(1);
1274 }
1275 var4 = var6;
1276 RET_LABEL5:(void)0;
1277 }
1278 }
1279 {
1280 { /* Inline model$MClassDef$mmodule (var4) on <var4:MClassDef> */
1281 var9 = var4->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var4:MClassDef> */
1282 if (unlikely(var9 == NULL)) {
1283 if(catchStack.cursor >= 0){
1284 longjmp(catchStack.envs[catchStack.cursor], 1);
1285 }
1286 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1287 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
1288 fatal_exit(1);
1289 }
1290 var7 = var9;
1291 RET_LABEL8:(void)0;
1292 }
1293 }
1294 {
1295 { /* Inline mmodule$MModule$model (var7) on <var7:MModule> */
1296 var12 = var7->attrs[COLOR_nitc__mmodule__MModule___model].val; /* _model on <var7:MModule> */
1297 if (unlikely(var12 == NULL)) {
1298 if(catchStack.cursor >= 0){
1299 longjmp(catchStack.envs[catchStack.cursor], 1);
1300 }
1301 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
1302 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 77);
1303 fatal_exit(1);
1304 }
1305 var10 = var12;
1306 RET_LABEL11:(void)0;
1307 }
1308 }
1309 var = var10;
1310 goto RET_LABEL;
1311 RET_LABEL:;
1312 return var;
1313 }
1314 /* method model$MVirtualType$lookup_bound for (self: MVirtualType, MModule, MType): MType */
1315 val* nitc___nitc__MVirtualType___MType__lookup_bound(val* self, val* p0, val* p1) {
1316 val* var /* : MType */;
1317 val* var_mmodule /* var mmodule: MModule */;
1318 val* var_resolved_receiver /* var resolved_receiver: MType */;
1319 val* var1 /* : MVirtualTypeProp */;
1320 val* var3 /* : MVirtualTypeProp */;
1321 short int var4 /* : Bool */;
1322 short int var5 /* : Bool */;
1323 val* var6 /* : MErrorType */;
1324 val* var7 /* : Model */;
1325 val* var8 /* : MType */;
1326 val* var9 /* : MVirtualTypeDef */;
1327 val* var10 /* : nullable MType */;
1328 val* var12 /* : nullable MType */;
1329 val* var13 /* : MErrorType */;
1330 val* var14 /* : Model */;
1331 var_mmodule = p0;
1332 var_resolved_receiver = p1;
1333 {
1334 { /* Inline model$MVirtualType$mproperty (self) on <self:MVirtualType> */
1335 var3 = self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
1336 if (unlikely(var3 == NULL)) {
1337 if(catchStack.cursor >= 0){
1338 longjmp(catchStack.envs[catchStack.cursor], 1);
1339 }
1340 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1341 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1423);
1342 fatal_exit(1);
1343 }
1344 var1 = var3;
1345 RET_LABEL2:(void)0;
1346 }
1347 }
1348 {
1349 var4 = nitc___nitc__MType___has_mproperty(var_resolved_receiver, var_mmodule, var1);
1350 }
1351 var5 = !var4;
1352 if (var5){
1353 var6 = NEW_nitc__MErrorType(&type_nitc__MErrorType);
1354 {
1355 var7 = nitc___nitc__MVirtualType___nitc__model_base__MEntity__model(self);
1356 }
1357 {
1358 ((void(*)(val* self, val* p0))(var6->class->vft[COLOR_nitc__model__MErrorType__model_61d]))(var6, var7); /* model= on <var6:MErrorType>*/
1359 }
1360 {
1361 ((void(*)(val* self))(var6->class->vft[COLOR_core__kernel__Object__init]))(var6); /* init on <var6:MErrorType>*/
1362 }
1363 var = var6;
1364 goto RET_LABEL;
1365 } else {
1366 }
1367 {
1368 var9 = nitc___nitc__MVirtualType___lookup_single_definition(self, var_mmodule, var_resolved_receiver);
1369 }
1370 {
1371 { /* Inline model$MVirtualTypeDef$bound (var9) on <var9:MVirtualTypeDef> */
1372 var12 = var9->attrs[COLOR_nitc__model__MVirtualTypeDef___bound].val; /* _bound on <var9:MVirtualTypeDef> */
1373 var10 = var12;
1374 RET_LABEL11:(void)0;
1375 }
1376 }
1377 if (var10!=NULL) {
1378 var8 = var10;
1379 } else {
1380 var13 = NEW_nitc__MErrorType(&type_nitc__MErrorType);
1381 {
1382 var14 = nitc___nitc__MVirtualType___nitc__model_base__MEntity__model(self);
1383 }
1384 {
1385 ((void(*)(val* self, val* p0))(var13->class->vft[COLOR_nitc__model__MErrorType__model_61d]))(var13, var14); /* model= on <var13:MErrorType>*/
1386 }
1387 {
1388 ((void(*)(val* self))(var13->class->vft[COLOR_core__kernel__Object__init]))(var13); /* init on <var13:MErrorType>*/
1389 }
1390 var8 = var13;
1391 }
1392 var = var8;
1393 goto RET_LABEL;
1394 RET_LABEL:;
1395 return var;
1396 }
1397 /* method model$MVirtualType$lookup_single_definition for (self: MVirtualType, MModule, MType): MVirtualTypeDef */
1398 val* nitc___nitc__MVirtualType___lookup_single_definition(val* self, val* p0, val* p1) {
1399 val* var /* : MVirtualTypeDef */;
1400 val* var_mmodule /* var mmodule: MModule */;
1401 val* var_resolved_receiver /* var resolved_receiver: MType */;
1402 short int var1 /* : Bool */;
1403 short int var2 /* : Bool */;
1404 val* var3 /* : MVirtualTypeProp */;
1405 val* var5 /* : MVirtualTypeProp */;
1406 val* var6 /* : Array[MPropDef] */;
1407 val* var_props /* var props: Array[MVirtualTypeDef] */;
1408 short int var7 /* : Bool */;
1409 long var8 /* : Int */;
1410 long var10 /* : Int */;
1411 short int var11 /* : Bool */;
1412 short int var13 /* : Bool */;
1413 val* var14 /* : nullable Object */;
1414 val* var15 /* : ArraySet[MType] */;
1415 val* var_types /* var types: ArraySet[MType] */;
1416 val* var16 /* : nullable Object */;
1417 val* var_res /* var res: MVirtualTypeDef */;
1418 val* var_ /* var : Array[MVirtualTypeDef] */;
1419 val* var17 /* : IndexedIterator[nullable Object] */;
1420 val* var_18 /* var : IndexedIterator[MVirtualTypeDef] */;
1421 short int var19 /* : Bool */;
1422 val* var20 /* : nullable Object */;
1423 val* var_p /* var p: MVirtualTypeDef */;
1424 val* var21 /* : nullable MType */;
1425 val* var23 /* : nullable MType */;
1426 short int var24 /* : Bool */;
1427 short int var26 /* : Bool */;
1428 short int var27 /* : Bool */;
1429 long var28 /* : Int */;
1430 short int var29 /* : Bool */;
1431 short int var31 /* : Bool */;
1432 var_mmodule = p0;
1433 var_resolved_receiver = p1;
1434 {
1435 var1 = ((short int(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_resolved_receiver); /* need_anchor on <var_resolved_receiver:MType>*/
1436 }
1437 var2 = !var1;
1438 if (unlikely(!var2)) {
1439 if(catchStack.cursor >= 0){
1440 longjmp(catchStack.envs[catchStack.cursor], 1);
1441 }
1442 PRINT_ERROR("Runtime error: %s", "Assert failed");
1443 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1440);
1444 fatal_exit(1);
1445 }
1446 {
1447 { /* Inline model$MVirtualType$mproperty (self) on <self:MVirtualType> */
1448 var5 = self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
1449 if (unlikely(var5 == NULL)) {
1450 if(catchStack.cursor >= 0){
1451 longjmp(catchStack.envs[catchStack.cursor], 1);
1452 }
1453 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1454 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1423);
1455 fatal_exit(1);
1456 }
1457 var3 = var5;
1458 RET_LABEL4:(void)0;
1459 }
1460 }
1461 {
1462 var6 = nitc___nitc__MProperty___lookup_definitions(var3, var_mmodule, var_resolved_receiver);
1463 }
1464 var_props = var6;
1465 {
1466 var7 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_props);
1467 }
1468 if (var7){
1469 if(catchStack.cursor >= 0){
1470 longjmp(catchStack.envs[catchStack.cursor], 1);
1471 }
1472 PRINT_ERROR("Runtime error: %s", "Aborted");
1473 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1443);
1474 fatal_exit(1);
1475 } else {
1476 {
1477 { /* Inline array$AbstractArrayRead$length (var_props) on <var_props:Array[MVirtualTypeDef]> */
1478 var10 = var_props->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_props:Array[MVirtualTypeDef]> */
1479 var8 = var10;
1480 RET_LABEL9:(void)0;
1481 }
1482 }
1483 {
1484 { /* Inline kernel$Int$== (var8,1l) on <var8:Int> */
1485 var13 = var8 == 1l;
1486 var11 = var13;
1487 goto RET_LABEL12;
1488 RET_LABEL12:(void)0;
1489 }
1490 }
1491 if (var11){
1492 {
1493 var14 = core___core__SequenceRead___Collection__first(var_props);
1494 }
1495 var = var14;
1496 goto RET_LABEL;
1497 } else {
1498 }
1499 }
1500 var15 = NEW_core__ArraySet(&type_core__ArraySet__nitc__MType);
1501 {
1502 core___core__ArraySet___core__kernel__Object__init(var15); /* Direct call array$ArraySet$init on <var15:ArraySet[MType]>*/
1503 }
1504 var_types = var15;
1505 {
1506 var16 = core___core__SequenceRead___Collection__first(var_props);
1507 }
1508 var_res = var16;
1509 var_ = var_props;
1510 {
1511 var17 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
1512 }
1513 var_18 = var17;
1514 for(;;) {
1515 {
1516 var19 = ((short int(*)(val* self))((((long)var_18&3)?class_info[((long)var_18&3)]:var_18->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_18); /* is_ok on <var_18:IndexedIterator[MVirtualTypeDef]>*/
1517 }
1518 if (var19){
1519 } else {
1520 goto BREAK_label;
1521 }
1522 {
1523 var20 = ((val*(*)(val* self))((((long)var_18&3)?class_info[((long)var_18&3)]:var_18->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_18); /* item on <var_18:IndexedIterator[MVirtualTypeDef]>*/
1524 }
1525 var_p = var20;
1526 {
1527 { /* Inline model$MVirtualTypeDef$bound (var_p) on <var_p:MVirtualTypeDef> */
1528 var23 = var_p->attrs[COLOR_nitc__model__MVirtualTypeDef___bound].val; /* _bound on <var_p:MVirtualTypeDef> */
1529 var21 = var23;
1530 RET_LABEL22:(void)0;
1531 }
1532 }
1533 if (unlikely(var21 == NULL)) {
1534 if(catchStack.cursor >= 0){
1535 longjmp(catchStack.envs[catchStack.cursor], 1);
1536 }
1537 PRINT_ERROR("Runtime error: %s", "Cast failed");
1538 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1450);
1539 fatal_exit(1);
1540 }
1541 {
1542 core___core__ArraySet___core__abstract_collection__SimpleCollection__add(var_types, var21); /* Direct call array$ArraySet$add on <var_types:ArraySet[MType]>*/
1543 }
1544 {
1545 { /* Inline model$MVirtualTypeDef$is_fixed (var_res) on <var_res:MVirtualTypeDef> */
1546 var26 = var_res->attrs[COLOR_nitc__model__MVirtualTypeDef___is_fixed].s; /* _is_fixed on <var_res:MVirtualTypeDef> */
1547 var24 = var26;
1548 RET_LABEL25:(void)0;
1549 }
1550 }
1551 var27 = !var24;
1552 if (var27){
1553 var_res = var_p;
1554 } else {
1555 }
1556 {
1557 ((void(*)(val* self))((((long)var_18&3)?class_info[((long)var_18&3)]:var_18->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_18); /* next on <var_18:IndexedIterator[MVirtualTypeDef]>*/
1558 }
1559 }
1560 BREAK_label: (void)0;
1561 {
1562 ((void(*)(val* self))((((long)var_18&3)?class_info[((long)var_18&3)]:var_18->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_18); /* finish on <var_18:IndexedIterator[MVirtualTypeDef]>*/
1563 }
1564 {
1565 var28 = core___core__ArraySet___core__abstract_collection__Collection__length(var_types);
1566 }
1567 {
1568 { /* Inline kernel$Int$== (var28,1l) on <var28:Int> */
1569 var31 = var28 == 1l;
1570 var29 = var31;
1571 goto RET_LABEL30;
1572 RET_LABEL30:(void)0;
1573 }
1574 }
1575 if (var29){
1576 var = var_res;
1577 goto RET_LABEL;
1578 } else {
1579 }
1580 if(catchStack.cursor >= 0){
1581 longjmp(catchStack.envs[catchStack.cursor], 1);
1582 }
1583 PRINT_ERROR("Runtime error: %s", "Aborted");
1584 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1456);
1585 fatal_exit(1);
1586 RET_LABEL:;
1587 return var;
1588 }
1589 /* method model$MVirtualType$lookup_fixed for (self: MVirtualType, MModule, MType): MType */
1590 val* nitc___nitc__MVirtualType___MType__lookup_fixed(val* self, val* p0, val* p1) {
1591 val* var /* : MType */;
1592 val* var_mmodule /* var mmodule: MModule */;
1593 val* var_resolved_receiver /* var resolved_receiver: MType */;
1594 short int var1 /* : Bool */;
1595 short int var2 /* : Bool */;
1596 val* var3 /* : MType */;
1597 short int var4 /* : Bool */;
1598 int cltype;
1599 int idtype;
1600 val* var5 /* : MVirtualTypeDef */;
1601 val* var_prop /* var prop: MVirtualTypeDef */;
1602 val* var6 /* : nullable MType */;
1603 val* var8 /* : nullable MType */;
1604 val* var_res /* var res: nullable MType */;
1605 short int var9 /* : Bool */;
1606 short int var10 /* : Bool */;
1607 val* var_other /* var other: nullable Object */;
1608 short int var12 /* : Bool */;
1609 short int var14 /* : Bool */;
1610 val* var15 /* : MErrorType */;
1611 val* var16 /* : Model */;
1612 val* var17 /* : MType */;
1613 short int var18 /* : Bool */;
1614 short int var20 /* : Bool */;
1615 short int var21 /* : Bool */;
1616 short int var22 /* : Bool */;
1617 int cltype23;
1618 int idtype24;
1619 short int var_ /* var : Bool */;
1620 val* var25 /* : MClass */;
1621 val* var27 /* : MClass */;
1622 val* var28 /* : MClassKind */;
1623 val* var30 /* : MClassKind */;
1624 val* var31 /* : Sys */;
1625 val* var32 /* : MClassKind */;
1626 short int var33 /* : Bool */;
1627 short int var35 /* : Bool */;
1628 short int var37 /* : Bool */;
1629 val* var38 /* : MClass */;
1630 val* var40 /* : MClass */;
1631 val* var41 /* : MClassKind */;
1632 val* var43 /* : MClassKind */;
1633 val* var44 /* : Sys */;
1634 val* var45 /* : MClassKind */;
1635 short int var46 /* : Bool */;
1636 short int var48 /* : Bool */;
1637 short int var50 /* : Bool */;
1638 var_mmodule = p0;
1639 var_resolved_receiver = p1;
1640 {
1641 var1 = ((short int(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_resolved_receiver); /* need_anchor on <var_resolved_receiver:MType>*/
1642 }
1643 var2 = !var1;
1644 if (unlikely(!var2)) {
1645 if(catchStack.cursor >= 0){
1646 longjmp(catchStack.envs[catchStack.cursor], 1);
1647 }
1648 PRINT_ERROR("Runtime error: %s", "Assert failed");
1649 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1465);
1650 fatal_exit(1);
1651 }
1652 {
1653 var3 = ((val*(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nitc__model__MType__undecorate]))(var_resolved_receiver); /* undecorate on <var_resolved_receiver:MType>*/
1654 }
1655 var_resolved_receiver = var3;
1656 /* <var_resolved_receiver:MType> isa MClassType */
1657 cltype = type_nitc__MClassType.color;
1658 idtype = type_nitc__MClassType.id;
1659 if(cltype >= var_resolved_receiver->type->table_size) {
1660 var4 = 0;
1661 } else {
1662 var4 = var_resolved_receiver->type->type_table[cltype] == idtype;
1663 }
1664 if (unlikely(!var4)) {
1665 if(catchStack.cursor >= 0){
1666 longjmp(catchStack.envs[catchStack.cursor], 1);
1667 }
1668 PRINT_ERROR("Runtime error: %s", "Assert failed");
1669 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1467);
1670 fatal_exit(1);
1671 }
1672 {
1673 var5 = nitc___nitc__MVirtualType___lookup_single_definition(self, var_mmodule, var_resolved_receiver);
1674 }
1675 var_prop = var5;
1676 {
1677 { /* Inline model$MVirtualTypeDef$bound (var_prop) on <var_prop:MVirtualTypeDef> */
1678 var8 = var_prop->attrs[COLOR_nitc__model__MVirtualTypeDef___bound].val; /* _bound on <var_prop:MVirtualTypeDef> */
1679 var6 = var8;
1680 RET_LABEL7:(void)0;
1681 }
1682 }
1683 var_res = var6;
1684 if (var_res == NULL) {
1685 var9 = 1; /* is null */
1686 } else {
1687 var9 = 0; /* arg is null but recv is not */
1688 }
1689 if (0) {
1690 { /* Inline kernel$Object$== (var_res,((val*)NULL)) on <var_res:nullable MType> */
1691 var_other = ((val*)NULL);
1692 {
1693 { /* Inline kernel$Object$is_same_instance (var_res,var_other) on <var_res:nullable MType(MType)> */
1694 var14 = var_res == var_other;
1695 var12 = var14;
1696 goto RET_LABEL13;
1697 RET_LABEL13:(void)0;
1698 }
1699 }
1700 var10 = var12;
1701 goto RET_LABEL11;
1702 RET_LABEL11:(void)0;
1703 }
1704 var9 = var10;
1705 }
1706 if (var9){
1707 var15 = NEW_nitc__MErrorType(&type_nitc__MErrorType);
1708 {
1709 var16 = nitc___nitc__MVirtualType___nitc__model_base__MEntity__model(self);
1710 }
1711 {
1712 ((void(*)(val* self, val* p0))(var15->class->vft[COLOR_nitc__model__MErrorType__model_61d]))(var15, var16); /* model= on <var15:MErrorType>*/
1713 }
1714 {
1715 ((void(*)(val* self))(var15->class->vft[COLOR_core__kernel__Object__init]))(var15); /* init on <var15:MErrorType>*/
1716 }
1717 var = var15;
1718 goto RET_LABEL;
1719 } else {
1720 }
1721 {
1722 var17 = ((val*(*)(val* self, val* p0, val* p1))(var_res->class->vft[COLOR_nitc__model__MType__lookup_fixed]))(var_res, var_mmodule, var_resolved_receiver); /* lookup_fixed on <var_res:nullable MType(MType)>*/
1723 }
1724 var_res = var17;
1725 {
1726 { /* Inline model$MVirtualTypeDef$is_fixed (var_prop) on <var_prop:MVirtualTypeDef> */
1727 var20 = var_prop->attrs[COLOR_nitc__model__MVirtualTypeDef___is_fixed].s; /* _is_fixed on <var_prop:MVirtualTypeDef> */
1728 var18 = var20;
1729 RET_LABEL19:(void)0;
1730 }
1731 }
1732 if (var18){
1733 var = var_res;
1734 goto RET_LABEL;
1735 } else {
1736 }
1737 /* <var_res:nullable MType(MType)> isa MClassType */
1738 cltype23 = type_nitc__MClassType.color;
1739 idtype24 = type_nitc__MClassType.id;
1740 if(cltype23 >= var_res->type->table_size) {
1741 var22 = 0;
1742 } else {
1743 var22 = var_res->type->type_table[cltype23] == idtype24;
1744 }
1745 var_ = var22;
1746 if (var22){
1747 {
1748 { /* Inline model$MClassType$mclass (var_res) on <var_res:nullable MType(MClassType)> */
1749 var27 = var_res->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_res:nullable MType(MClassType)> */
1750 if (unlikely(var27 == NULL)) {
1751 if(catchStack.cursor >= 0){
1752 longjmp(catchStack.envs[catchStack.cursor], 1);
1753 }
1754 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1755 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
1756 fatal_exit(1);
1757 }
1758 var25 = var27;
1759 RET_LABEL26:(void)0;
1760 }
1761 }
1762 {
1763 { /* Inline model$MClass$kind (var25) on <var25:MClass> */
1764 var30 = var25->attrs[COLOR_nitc__model__MClass___kind].val; /* _kind on <var25:MClass> */
1765 if (unlikely(var30 == NULL)) {
1766 if(catchStack.cursor >= 0){
1767 longjmp(catchStack.envs[catchStack.cursor], 1);
1768 }
1769 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
1770 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 472);
1771 fatal_exit(1);
1772 }
1773 var28 = var30;
1774 RET_LABEL29:(void)0;
1775 }
1776 }
1777 var31 = glob_sys;
1778 {
1779 var32 = nitc__model___core__Sys___enum_kind(var31);
1780 }
1781 {
1782 { /* Inline kernel$Object$== (var28,var32) on <var28:MClassKind> */
1783 var_other = var32;
1784 {
1785 { /* Inline kernel$Object$is_same_instance (var28,var_other) on <var28:MClassKind> */
1786 var37 = var28 == var_other;
1787 var35 = var37;
1788 goto RET_LABEL36;
1789 RET_LABEL36:(void)0;
1790 }
1791 }
1792 var33 = var35;
1793 goto RET_LABEL34;
1794 RET_LABEL34:(void)0;
1795 }
1796 }
1797 var21 = var33;
1798 } else {
1799 var21 = var_;
1800 }
1801 if (var21){
1802 var = var_res;
1803 goto RET_LABEL;
1804 } else {
1805 }
1806 {
1807 { /* Inline model$MClassType$mclass (var_resolved_receiver) on <var_resolved_receiver:MType(MClassType)> */
1808 var40 = var_resolved_receiver->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_resolved_receiver:MType(MClassType)> */
1809 if (unlikely(var40 == NULL)) {
1810 if(catchStack.cursor >= 0){
1811 longjmp(catchStack.envs[catchStack.cursor], 1);
1812 }
1813 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1814 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
1815 fatal_exit(1);
1816 }
1817 var38 = var40;
1818 RET_LABEL39:(void)0;
1819 }
1820 }
1821 {
1822 { /* Inline model$MClass$kind (var38) on <var38:MClass> */
1823 var43 = var38->attrs[COLOR_nitc__model__MClass___kind].val; /* _kind on <var38:MClass> */
1824 if (unlikely(var43 == NULL)) {
1825 if(catchStack.cursor >= 0){
1826 longjmp(catchStack.envs[catchStack.cursor], 1);
1827 }
1828 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
1829 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 472);
1830 fatal_exit(1);
1831 }
1832 var41 = var43;
1833 RET_LABEL42:(void)0;
1834 }
1835 }
1836 var44 = glob_sys;
1837 {
1838 var45 = nitc__model___core__Sys___enum_kind(var44);
1839 }
1840 {
1841 { /* Inline kernel$Object$== (var41,var45) on <var41:MClassKind> */
1842 var_other = var45;
1843 {
1844 { /* Inline kernel$Object$is_same_instance (var41,var_other) on <var41:MClassKind> */
1845 var50 = var41 == var_other;
1846 var48 = var50;
1847 goto RET_LABEL49;
1848 RET_LABEL49:(void)0;
1849 }
1850 }
1851 var46 = var48;
1852 goto RET_LABEL47;
1853 RET_LABEL47:(void)0;
1854 }
1855 }
1856 if (var46){
1857 var = var_res;
1858 goto RET_LABEL;
1859 } else {
1860 }
1861 var = self;
1862 goto RET_LABEL;
1863 RET_LABEL:;
1864 return var;
1865 }
1866 /* method model$MVirtualType$resolve_for for (self: MVirtualType, MType, nullable MClassType, MModule, Bool): MType */
1867 val* nitc___nitc__MVirtualType___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
1868 val* var /* : MType */;
1869 val* var_mtype /* var mtype: MType */;
1870 val* var_anchor /* var anchor: nullable MClassType */;
1871 val* var_mmodule /* var mmodule: MModule */;
1872 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
1873 short int var1 /* : Bool */;
1874 short int var2 /* : Bool */;
1875 val* var3 /* : MVirtualTypeProp */;
1876 val* var5 /* : MVirtualTypeProp */;
1877 short int var6 /* : Bool */;
1878 short int var7 /* : Bool */;
1879 short int var8 /* : Bool */;
1880 short int var9 /* : Bool */;
1881 val* var_other /* var other: nullable Object */;
1882 short int var11 /* : Bool */;
1883 short int var12 /* : Bool */;
1884 val* var13 /* : MType */;
1885 val* var_resolved_receiver /* var resolved_receiver: nullable Object */;
1886 val* var14 /* : MType */;
1887 val* var_verbatim_bound /* var verbatim_bound: MType */;
1888 val* var15 /* : MType */;
1889 val* var_res /* var res: MType */;
1890 var_mtype = p0;
1891 var_anchor = p1;
1892 var_mmodule = p2;
1893 var_cleanup_virtual = p3;
1894 var1 = !var_cleanup_virtual;
1895 if (var1){
1896 var = self;
1897 goto RET_LABEL;
1898 } else {
1899 }
1900 {
1901 var2 = nitc___nitc__MVirtualType___MType__can_resolve_for(self, var_mtype, var_anchor, var_mmodule);
1902 }
1903 if (unlikely(!var2)) {
1904 if(catchStack.cursor >= 0){
1905 longjmp(catchStack.envs[catchStack.cursor], 1);
1906 }
1907 PRINT_ERROR("Runtime error: %s", "Assert failed");
1908 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1491);
1909 fatal_exit(1);
1910 }
1911 {
1912 { /* Inline model$MVirtualType$mproperty (self) on <self:MVirtualType> */
1913 var5 = self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
1914 if (unlikely(var5 == NULL)) {
1915 if(catchStack.cursor >= 0){
1916 longjmp(catchStack.envs[catchStack.cursor], 1);
1917 }
1918 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1919 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1423);
1920 fatal_exit(1);
1921 }
1922 var3 = var5;
1923 RET_LABEL4:(void)0;
1924 }
1925 }
1926 {
1927 var6 = nitc___nitc__MVirtualTypeProp___is_selftype(var3);
1928 }
1929 if (var6){
1930 var = var_mtype;
1931 goto RET_LABEL;
1932 } else {
1933 }
1934 {
1935 var7 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
1936 }
1937 if (var7){
1938 if (var_anchor == NULL) {
1939 var8 = 0; /* is null */
1940 } else {
1941 var8 = 1; /* arg is null and recv is not */
1942 }
1943 if (0) {
1944 { /* Inline kernel$Object$!= (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
1945 var_other = ((val*)NULL);
1946 {
1947 var11 = ((short int(*)(val* self, val* p0))(var_anchor->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_anchor, var_other); /* == on <var_anchor:nullable MClassType(MClassType)>*/
1948 }
1949 var12 = !var11;
1950 var9 = var12;
1951 goto RET_LABEL10;
1952 RET_LABEL10:(void)0;
1953 }
1954 var8 = var9;
1955 }
1956 if (unlikely(!var8)) {
1957 if(catchStack.cursor >= 0){
1958 longjmp(catchStack.envs[catchStack.cursor], 1);
1959 }
1960 PRINT_ERROR("Runtime error: %s", "Assert failed");
1961 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1501);
1962 fatal_exit(1);
1963 }
1964 {
1965 var13 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_mtype->class->vft[COLOR_nitc__model__MType__resolve_for]))(var_mtype, var_anchor, ((val*)NULL), var_mmodule, 1); /* resolve_for on <var_mtype:MType>*/
1966 }
1967 var_resolved_receiver = var13;
1968 } else {
1969 var_resolved_receiver = var_mtype;
1970 }
1971 {
1972 var14 = nitc___nitc__MVirtualType___MType__lookup_bound(self, var_mmodule, var_resolved_receiver);
1973 }
1974 var_verbatim_bound = var14;
1975 {
1976 var15 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_verbatim_bound->class->vft[COLOR_nitc__model__MType__resolve_for]))(var_verbatim_bound, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual); /* resolve_for on <var_verbatim_bound:MType>*/
1977 }
1978 var_res = var15;
1979 var = var_res;
1980 goto RET_LABEL;
1981 RET_LABEL:;
1982 return var;
1983 }
1984 /* method model$MVirtualType$can_resolve_for for (self: MVirtualType, MType, nullable MClassType, MModule): Bool */
1985 short int nitc___nitc__MVirtualType___MType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
1986 short int var /* : Bool */;
1987 val* var_mtype /* var mtype: MType */;
1988 val* var_anchor /* var anchor: nullable MClassType */;
1989 val* var_mmodule /* var mmodule: MModule */;
1990 short int var1 /* : Bool */;
1991 short int var2 /* : Bool */;
1992 short int var3 /* : Bool */;
1993 val* var_other /* var other: nullable Object */;
1994 short int var5 /* : Bool */;
1995 short int var6 /* : Bool */;
1996 val* var7 /* : MType */;
1997 val* var8 /* : MVirtualTypeProp */;
1998 val* var10 /* : MVirtualTypeProp */;
1999 short int var11 /* : Bool */;
2000 var_mtype = p0;
2001 var_anchor = p1;
2002 var_mmodule = p2;
2003 {
2004 var1 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
2005 }
2006 if (var1){
2007 if (var_anchor == NULL) {
2008 var2 = 0; /* is null */
2009 } else {
2010 var2 = 1; /* arg is null and recv is not */
2011 }
2012 if (0) {
2013 { /* Inline kernel$Object$!= (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
2014 var_other = ((val*)NULL);
2015 {
2016 var5 = ((short int(*)(val* self, val* p0))(var_anchor->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_anchor, var_other); /* == on <var_anchor:nullable MClassType(MClassType)>*/
2017 }
2018 var6 = !var5;
2019 var3 = var6;
2020 goto RET_LABEL4;
2021 RET_LABEL4:(void)0;
2022 }
2023 var2 = var3;
2024 }
2025 if (unlikely(!var2)) {
2026 if(catchStack.cursor >= 0){
2027 longjmp(catchStack.envs[catchStack.cursor], 1);
2028 }
2029 PRINT_ERROR("Runtime error: %s", "Assert failed");
2030 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1517);
2031 fatal_exit(1);
2032 }
2033 {
2034 var7 = ((val*(*)(val* self, val* p0, val* p1))(var_mtype->class->vft[COLOR_nitc__model__MType__anchor_to]))(var_mtype, var_mmodule, var_anchor); /* anchor_to on <var_mtype:MType>*/
2035 }
2036 var_mtype = var7;
2037 } else {
2038 }
2039 {
2040 { /* Inline model$MVirtualType$mproperty (self) on <self:MVirtualType> */
2041 var10 = self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
2042 if (unlikely(var10 == NULL)) {
2043 if(catchStack.cursor >= 0){
2044 longjmp(catchStack.envs[catchStack.cursor], 1);
2045 }
2046 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2047 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1423);
2048 fatal_exit(1);
2049 }
2050 var8 = var10;
2051 RET_LABEL9:(void)0;
2052 }
2053 }
2054 {
2055 var11 = nitc___nitc__MType___has_mproperty(var_mtype, var_mmodule, var8);
2056 }
2057 var = var11;
2058 goto RET_LABEL;
2059 RET_LABEL:;
2060 return var;
2061 }
2062 /* method model$MVirtualType$to_s for (self: MVirtualType): String */
2063 val* nitc___nitc__MVirtualType___core__abstract_text__Object__to_s(val* self) {
2064 val* var /* : String */;
2065 val* var1 /* : MVirtualTypeProp */;
2066 val* var3 /* : MVirtualTypeProp */;
2067 val* var4 /* : String */;
2068 {
2069 { /* Inline model$MVirtualType$mproperty (self) on <self:MVirtualType> */
2070 var3 = self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
2071 if (unlikely(var3 == NULL)) {
2072 if(catchStack.cursor >= 0){
2073 longjmp(catchStack.envs[catchStack.cursor], 1);
2074 }
2075 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2076 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1423);
2077 fatal_exit(1);
2078 }
2079 var1 = var3;
2080 RET_LABEL2:(void)0;
2081 }
2082 }
2083 {
2084 var4 = nitc___nitc__MProperty___core__abstract_text__Object__to_s(var1);
2085 }
2086 var = var4;
2087 goto RET_LABEL;
2088 RET_LABEL:;
2089 return var;
2090 }
2091 /* method model$MVirtualType$full_name for (self: MVirtualType): String */
2092 val* nitc___nitc__MVirtualType___nitc__model_base__MEntity__full_name(val* self) {
2093 val* var /* : String */;
2094 val* var1 /* : MVirtualTypeProp */;
2095 val* var3 /* : MVirtualTypeProp */;
2096 val* var4 /* : String */;
2097 {
2098 { /* Inline model$MVirtualType$mproperty (self) on <self:MVirtualType> */
2099 var3 = self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
2100 if (unlikely(var3 == NULL)) {
2101 if(catchStack.cursor >= 0){
2102 longjmp(catchStack.envs[catchStack.cursor], 1);
2103 }
2104 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2105 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1423);
2106 fatal_exit(1);
2107 }
2108 var1 = var3;
2109 RET_LABEL2:(void)0;
2110 }
2111 }
2112 {
2113 var4 = nitc___nitc__MProperty___nitc__model_base__MEntity__full_name(var1);
2114 }
2115 var = var4;
2116 goto RET_LABEL;
2117 RET_LABEL:;
2118 return var;
2119 }
2120 /* method model$MVirtualType$c_name for (self: MVirtualType): String */
2121 val* nitc___nitc__MVirtualType___nitc__model_base__MEntity__c_name(val* self) {
2122 val* var /* : String */;
2123 val* var1 /* : MVirtualTypeProp */;
2124 val* var3 /* : MVirtualTypeProp */;
2125 val* var4 /* : String */;
2126 {
2127 { /* Inline model$MVirtualType$mproperty (self) on <self:MVirtualType> */
2128 var3 = self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
2129 if (unlikely(var3 == NULL)) {
2130 if(catchStack.cursor >= 0){
2131 longjmp(catchStack.envs[catchStack.cursor], 1);
2132 }
2133 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2134 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1423);
2135 fatal_exit(1);
2136 }
2137 var1 = var3;
2138 RET_LABEL2:(void)0;
2139 }
2140 }
2141 {
2142 var4 = nitc___nitc__MProperty___nitc__model_base__MEntity__c_name(var1);
2143 }
2144 var = var4;
2145 goto RET_LABEL;
2146 RET_LABEL:;
2147 return var;
2148 }
2149 /* method model$MVirtualType$init for (self: MVirtualType) */
2150 void nitc___nitc__MVirtualType___core__kernel__Object__init(val* self) {
2151 {
2152 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MVirtualType___core__kernel__Object__init]))(self); /* init on <self:MVirtualType>*/
2153 }
2154 RET_LABEL:;
2155 }
2156 /* method model$MParameterType$mclass for (self: MParameterType): MClass */
2157 val* nitc___nitc__MParameterType___mclass(val* self) {
2158 val* var /* : MClass */;
2159 val* var1 /* : MClass */;
2160 var1 = self->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
2161 if (unlikely(var1 == NULL)) {
2162 if(catchStack.cursor >= 0){
2163 longjmp(catchStack.envs[catchStack.cursor], 1);
2164 }
2165 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2166 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1559);
2167 fatal_exit(1);
2168 }
2169 var = var1;
2170 RET_LABEL:;
2171 return var;
2172 }
2173 /* method model$MParameterType$mclass= for (self: MParameterType, MClass) */
2174 void nitc___nitc__MParameterType___mclass_61d(val* self, val* p0) {
2175 self->attrs[COLOR_nitc__model__MParameterType___mclass].val = p0; /* _mclass on <self:MParameterType> */
2176 RET_LABEL:;
2177 }
2178 /* method model$MParameterType$model for (self: MParameterType): Model */
2179 val* nitc___nitc__MParameterType___nitc__model_base__MEntity__model(val* self) {
2180 val* var /* : Model */;
2181 val* var1 /* : MClass */;
2182 val* var3 /* : MClass */;
2183 val* var4 /* : MModule */;
2184 val* var6 /* : MModule */;
2185 val* var7 /* : Model */;
2186 val* var9 /* : Model */;
2187 {
2188 { /* Inline model$MParameterType$mclass (self) on <self:MParameterType> */
2189 var3 = self->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
2190 if (unlikely(var3 == NULL)) {
2191 if(catchStack.cursor >= 0){
2192 longjmp(catchStack.envs[catchStack.cursor], 1);
2193 }
2194 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2195 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1559);
2196 fatal_exit(1);
2197 }
2198 var1 = var3;
2199 RET_LABEL2:(void)0;
2200 }
2201 }
2202 {
2203 { /* Inline model$MClass$intro_mmodule (var1) on <var1:MClass> */
2204 var6 = var1->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var1:MClass> */
2205 if (unlikely(var6 == NULL)) {
2206 if(catchStack.cursor >= 0){
2207 longjmp(catchStack.envs[catchStack.cursor], 1);
2208 }
2209 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
2210 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390);
2211 fatal_exit(1);
2212 }
2213 var4 = var6;
2214 RET_LABEL5:(void)0;
2215 }
2216 }
2217 {
2218 { /* Inline mmodule$MModule$model (var4) on <var4:MModule> */
2219 var9 = var4->attrs[COLOR_nitc__mmodule__MModule___model].val; /* _model on <var4:MModule> */
2220 if (unlikely(var9 == NULL)) {
2221 if(catchStack.cursor >= 0){
2222 longjmp(catchStack.envs[catchStack.cursor], 1);
2223 }
2224 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
2225 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 77);
2226 fatal_exit(1);
2227 }
2228 var7 = var9;
2229 RET_LABEL8:(void)0;
2230 }
2231 }
2232 var = var7;
2233 goto RET_LABEL;
2234 RET_LABEL:;
2235 return var;
2236 }
2237 /* method model$MParameterType$location for (self: MParameterType): Location */
2238 val* nitc___nitc__MParameterType___nitc__model_base__MEntity__location(val* self) {
2239 val* var /* : Location */;
2240 val* var1 /* : MClass */;
2241 val* var3 /* : MClass */;
2242 val* var4 /* : Location */;
2243 val* var6 /* : Location */;
2244 {
2245 { /* Inline model$MParameterType$mclass (self) on <self:MParameterType> */
2246 var3 = self->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
2247 if (unlikely(var3 == NULL)) {
2248 if(catchStack.cursor >= 0){
2249 longjmp(catchStack.envs[catchStack.cursor], 1);
2250 }
2251 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2252 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1559);
2253 fatal_exit(1);
2254 }
2255 var1 = var3;
2256 RET_LABEL2:(void)0;
2257 }
2258 }
2259 {
2260 { /* Inline model$MClass$location (var1) on <var1:MClass> */
2261 var6 = var1->attrs[COLOR_nitc__model__MClass___location].val; /* _location on <var1:MClass> */
2262 if (unlikely(var6 == NULL)) {
2263 if(catchStack.cursor >= 0){
2264 longjmp(catchStack.envs[catchStack.cursor], 1);
2265 }
2266 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
2267 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 400);
2268 fatal_exit(1);
2269 }
2270 var4 = var6;
2271 RET_LABEL5:(void)0;
2272 }
2273 }
2274 var = var4;
2275 goto RET_LABEL;
2276 RET_LABEL:;
2277 return var;
2278 }
2279 /* method model$MParameterType$rank for (self: MParameterType): Int */
2280 long nitc___nitc__MParameterType___rank(val* self) {
2281 long var /* : Int */;
2282 long var1 /* : Int */;
2283 var1 = self->attrs[COLOR_nitc__model__MParameterType___rank].l; /* _rank on <self:MParameterType> */
2284 var = var1;
2285 RET_LABEL:;
2286 return var;
2287 }
2288 /* method model$MParameterType$rank= for (self: MParameterType, Int) */
2289 void nitc___nitc__MParameterType___rank_61d(val* self, long p0) {
2290 self->attrs[COLOR_nitc__model__MParameterType___rank].l = p0; /* _rank on <self:MParameterType> */
2291 RET_LABEL:;
2292 }
2293 /* method model$MParameterType$name for (self: MParameterType): String */
2294 val* nitc___nitc__MParameterType___nitc__model_base__MEntity__name(val* self) {
2295 val* var /* : String */;
2296 val* var1 /* : String */;
2297 var1 = self->attrs[COLOR_nitc__model__MParameterType___name].val; /* _name on <self:MParameterType> */
2298 if (unlikely(var1 == NULL)) {
2299 if(catchStack.cursor >= 0){
2300 longjmp(catchStack.envs[catchStack.cursor], 1);
2301 }
2302 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2303 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1570);
2304 fatal_exit(1);
2305 }
2306 var = var1;
2307 RET_LABEL:;
2308 return var;
2309 }
2310 /* method model$MParameterType$name= for (self: MParameterType, String) */
2311 void nitc___nitc__MParameterType___name_61d(val* self, val* p0) {
2312 self->attrs[COLOR_nitc__model__MParameterType___name].val = p0; /* _name on <self:MParameterType> */
2313 RET_LABEL:;
2314 }
2315 /* method model$MParameterType$to_s for (self: MParameterType): String */
2316 val* nitc___nitc__MParameterType___core__abstract_text__Object__to_s(val* self) {
2317 val* var /* : String */;
2318 val* var1 /* : String */;
2319 val* var3 /* : String */;
2320 {
2321 { /* Inline model$MParameterType$name (self) on <self:MParameterType> */
2322 var3 = self->attrs[COLOR_nitc__model__MParameterType___name].val; /* _name on <self:MParameterType> */
2323 if (unlikely(var3 == NULL)) {
2324 if(catchStack.cursor >= 0){
2325 longjmp(catchStack.envs[catchStack.cursor], 1);
2326 }
2327 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2328 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1570);
2329 fatal_exit(1);
2330 }
2331 var1 = var3;
2332 RET_LABEL2:(void)0;
2333 }
2334 }
2335 var = var1;
2336 goto RET_LABEL;
2337 RET_LABEL:;
2338 return var;
2339 }
2340 /* method model$MParameterType$full_name for (self: MParameterType): String */
2341 val* nitc___nitc__MParameterType___nitc__model_base__MEntity__full_name(val* self) {
2342 val* var /* : String */;
2343 short int var1 /* : Bool */;
2344 val* var2 /* : String */;
2345 val* var3 /* : String */;
2346 val* var5 /* : NativeArray[String] */;
2347 static val* varonce;
2348 static val* varonce6;
2349 val* var7 /* : String */;
2350 char* var8 /* : CString */;
2351 val* var9 /* : String */;
2352 val* var10 /* : nullable Int */;
2353 val* var11 /* : nullable Int */;
2354 val* var12 /* : nullable Bool */;
2355 val* var13 /* : nullable Bool */;
2356 val* var14 /* : MClass */;
2357 val* var16 /* : MClass */;
2358 val* var17 /* : String */;
2359 val* var18 /* : String */;
2360 val* var20 /* : String */;
2361 val* var21 /* : String */;
2362 var1 = self->attrs[COLOR_nitc__model__MParameterType___full_name].val != NULL; /* _full_name on <self:MParameterType> */
2363 if(likely(var1)) {
2364 var2 = self->attrs[COLOR_nitc__model__MParameterType___full_name].val; /* _full_name on <self:MParameterType> */
2365 if (unlikely(var2 == NULL)) {
2366 if(catchStack.cursor >= 0){
2367 longjmp(catchStack.envs[catchStack.cursor], 1);
2368 }
2369 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_name");
2370 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1574);
2371 fatal_exit(1);
2372 }
2373 } else {
2374 {
2375 if (unlikely(varonce==NULL)) {
2376 var5 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
2377 if (likely(varonce6!=NULL)) {
2378 var7 = varonce6;
2379 } else {
2380 var8 = "::";
2381 var10 = (val*)(2l<<2|1);
2382 var11 = (val*)(2l<<2|1);
2383 var12 = (val*)((long)(0)<<2|3);
2384 var13 = (val*)((long)(0)<<2|3);
2385 var9 = core__flat___CString___to_s_unsafe(var8, var10, var11, var12, var13);
2386 var7 = var9;
2387 varonce6 = var7;
2388 }
2389 ((struct instance_core__NativeArray*)var5)->values[1]=var7;
2390 } else {
2391 var5 = varonce;
2392 varonce = NULL;
2393 }
2394 {
2395 { /* Inline model$MParameterType$mclass (self) on <self:MParameterType> */
2396 var16 = self->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
2397 if (unlikely(var16 == NULL)) {
2398 if(catchStack.cursor >= 0){
2399 longjmp(catchStack.envs[catchStack.cursor], 1);
2400 }
2401 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2402 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1559);
2403 fatal_exit(1);
2404 }
2405 var14 = var16;
2406 RET_LABEL15:(void)0;
2407 }
2408 }
2409 {
2410 var17 = nitc___nitc__MClass___nitc__model_base__MEntity__full_name(var14);
2411 }
2412 ((struct instance_core__NativeArray*)var5)->values[0]=var17;
2413 {
2414 { /* Inline model$MParameterType$name (self) on <self:MParameterType> */
2415 var20 = self->attrs[COLOR_nitc__model__MParameterType___name].val; /* _name on <self:MParameterType> */
2416 if (unlikely(var20 == NULL)) {
2417 if(catchStack.cursor >= 0){
2418 longjmp(catchStack.envs[catchStack.cursor], 1);
2419 }
2420 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2421 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1570);
2422 fatal_exit(1);
2423 }
2424 var18 = var20;
2425 RET_LABEL19:(void)0;
2426 }
2427 }
2428 ((struct instance_core__NativeArray*)var5)->values[2]=var18;
2429 {
2430 var21 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var5); /* native_to_s on <var5:NativeArray[String]>*/
2431 }
2432 varonce = var5;
2433 var3 = var21;
2434 goto RET_LABEL4;
2435 RET_LABEL4:(void)0;
2436 }
2437 self->attrs[COLOR_nitc__model__MParameterType___full_name].val = var3; /* _full_name on <self:MParameterType> */
2438 var2 = var3;
2439 }
2440 var = var2;
2441 RET_LABEL:;
2442 return var;
2443 }
2444 /* method model$MParameterType$c_name for (self: MParameterType): String */
2445 val* nitc___nitc__MParameterType___nitc__model_base__MEntity__c_name(val* self) {
2446 val* var /* : String */;
2447 short int var1 /* : Bool */;
2448 val* var2 /* : String */;
2449 val* var3 /* : String */;
2450 val* var5 /* : MClass */;
2451 val* var7 /* : MClass */;
2452 val* var8 /* : String */;
2453 static val* varonce;
2454 val* var9 /* : String */;
2455 char* var10 /* : CString */;
2456 val* var11 /* : String */;
2457 val* var12 /* : nullable Int */;
2458 val* var13 /* : nullable Int */;
2459 val* var14 /* : nullable Bool */;
2460 val* var15 /* : nullable Bool */;
2461 val* var16 /* : Text */;
2462 val* var18 /* : NativeArray[String] */;
2463 static val* varonce17;
2464 static val* varonce19;
2465 val* var20 /* : String */;
2466 char* var21 /* : CString */;
2467 val* var22 /* : String */;
2468 val* var23 /* : nullable Int */;
2469 val* var24 /* : nullable Int */;
2470 val* var25 /* : nullable Bool */;
2471 val* var26 /* : nullable Bool */;
2472 val* var27 /* : String */;
2473 val* var29 /* : String */;
2474 val* var30 /* : String */;
2475 val* var31 /* : String */;
2476 val* var32 /* : Text */;
2477 var1 = self->attrs[COLOR_nitc__model__MParameterType___c_name].val != NULL; /* _c_name on <self:MParameterType> */
2478 if(likely(var1)) {
2479 var2 = self->attrs[COLOR_nitc__model__MParameterType___c_name].val; /* _c_name on <self:MParameterType> */
2480 if (unlikely(var2 == NULL)) {
2481 if(catchStack.cursor >= 0){
2482 longjmp(catchStack.envs[catchStack.cursor], 1);
2483 }
2484 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_name");
2485 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1576);
2486 fatal_exit(1);
2487 }
2488 } else {
2489 {
2490 {
2491 { /* Inline model$MParameterType$mclass (self) on <self:MParameterType> */
2492 var7 = self->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
2493 if (unlikely(var7 == NULL)) {
2494 if(catchStack.cursor >= 0){
2495 longjmp(catchStack.envs[catchStack.cursor], 1);
2496 }
2497 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2498 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1559);
2499 fatal_exit(1);
2500 }
2501 var5 = var7;
2502 RET_LABEL6:(void)0;
2503 }
2504 }
2505 {
2506 var8 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var5);
2507 }
2508 if (likely(varonce!=NULL)) {
2509 var9 = varonce;
2510 } else {
2511 var10 = "__";
2512 var12 = (val*)(2l<<2|1);
2513 var13 = (val*)(2l<<2|1);
2514 var14 = (val*)((long)(0)<<2|3);
2515 var15 = (val*)((long)(0)<<2|3);
2516 var11 = core__flat___CString___to_s_unsafe(var10, var12, var13, var14, var15);
2517 var9 = var11;
2518 varonce = var9;
2519 }
2520 {
2521 var16 = ((val*(*)(val* self, val* p0))(var8->class->vft[COLOR_core__abstract_text__Text___43d]))(var8, var9); /* + on <var8:String>*/
2522 }
2523 if (unlikely(varonce17==NULL)) {
2524 var18 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
2525 if (likely(varonce19!=NULL)) {
2526 var20 = varonce19;
2527 } else {
2528 var21 = "#";
2529 var23 = (val*)(1l<<2|1);
2530 var24 = (val*)(1l<<2|1);
2531 var25 = (val*)((long)(0)<<2|3);
2532 var26 = (val*)((long)(0)<<2|3);
2533 var22 = core__flat___CString___to_s_unsafe(var21, var23, var24, var25, var26);
2534 var20 = var22;
2535 varonce19 = var20;
2536 }
2537 ((struct instance_core__NativeArray*)var18)->values[0]=var20;
2538 } else {
2539 var18 = varonce17;
2540 varonce17 = NULL;
2541 }
2542 {
2543 { /* Inline model$MParameterType$name (self) on <self:MParameterType> */
2544 var29 = self->attrs[COLOR_nitc__model__MParameterType___name].val; /* _name on <self:MParameterType> */
2545 if (unlikely(var29 == NULL)) {
2546 if(catchStack.cursor >= 0){
2547 longjmp(catchStack.envs[catchStack.cursor], 1);
2548 }
2549 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2550 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1570);
2551 fatal_exit(1);
2552 }
2553 var27 = var29;
2554 RET_LABEL28:(void)0;
2555 }
2556 }
2557 ((struct instance_core__NativeArray*)var18)->values[1]=var27;
2558 {
2559 var30 = ((val*(*)(val* self))(var18->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var18); /* native_to_s on <var18:NativeArray[String]>*/
2560 }
2561 varonce17 = var18;
2562 {
2563 var31 = core___core__Text___to_cmangle(var30);
2564 }
2565 {
2566 var32 = ((val*(*)(val* self, val* p0))(var16->class->vft[COLOR_core__abstract_text__Text___43d]))(var16, var31); /* + on <var16:Text(String)>*/
2567 }
2568 var3 = var32;
2569 goto RET_LABEL4;
2570 RET_LABEL4:(void)0;
2571 }
2572 self->attrs[COLOR_nitc__model__MParameterType___c_name].val = var3; /* _c_name on <self:MParameterType> */
2573 var2 = var3;
2574 }
2575 var = var2;
2576 RET_LABEL:;
2577 return var;
2578 }
2579 /* method model$MParameterType$lookup_bound for (self: MParameterType, MModule, MType): MType */
2580 val* nitc___nitc__MParameterType___MType__lookup_bound(val* self, val* p0, val* p1) {
2581 val* var /* : MType */;
2582 val* var_mmodule /* var mmodule: MModule */;
2583 val* var_resolved_receiver /* var resolved_receiver: MType */;
2584 short int var1 /* : Bool */;
2585 short int var2 /* : Bool */;
2586 val* var3 /* : MType */;
2587 short int var4 /* : Bool */;
2588 int cltype;
2589 int idtype;
2590 val* var5 /* : MClass */;
2591 val* var7 /* : MClass */;
2592 val* var_goalclass /* var goalclass: MClass */;
2593 val* var8 /* : MClass */;
2594 val* var10 /* : MClass */;
2595 short int var11 /* : Bool */;
2596 val* var_other /* var other: nullable Object */;
2597 short int var13 /* : Bool */;
2598 short int var15 /* : Bool */;
2599 val* var16 /* : Array[MType] */;
2600 long var17 /* : Int */;
2601 long var19 /* : Int */;
2602 val* var20 /* : nullable Object */;
2603 val* var21 /* : Set[MClassType] */;
2604 val* var_supertypes /* var supertypes: Set[MClassType] */;
2605 val* var_ /* var : Set[MClassType] */;
2606 val* var22 /* : Iterator[nullable Object] */;
2607 val* var_23 /* var : Iterator[MClassType] */;
2608 short int var24 /* : Bool */;
2609 val* var25 /* : nullable Object */;
2610 val* var_t /* var t: MClassType */;
2611 val* var26 /* : MClass */;
2612 val* var28 /* : MClass */;
2613 short int var29 /* : Bool */;
2614 short int var31 /* : Bool */;
2615 short int var33 /* : Bool */;
2616 val* var34 /* : Array[MType] */;
2617 long var35 /* : Int */;
2618 long var37 /* : Int */;
2619 val* var38 /* : nullable Object */;
2620 val* var_res /* var res: MType */;
2621 val* var39 /* : MErrorType */;
2622 val* var40 /* : Model */;
2623 var_mmodule = p0;
2624 var_resolved_receiver = p1;
2625 {
2626 var1 = ((short int(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_resolved_receiver); /* need_anchor on <var_resolved_receiver:MType>*/
2627 }
2628 var2 = !var1;
2629 if (unlikely(!var2)) {
2630 if(catchStack.cursor >= 0){
2631 longjmp(catchStack.envs[catchStack.cursor], 1);
2632 }
2633 PRINT_ERROR("Runtime error: %s", "Assert failed");
2634 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1580);
2635 fatal_exit(1);
2636 }
2637 {
2638 var3 = ((val*(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nitc__model__MType__undecorate]))(var_resolved_receiver); /* undecorate on <var_resolved_receiver:MType>*/
2639 }
2640 var_resolved_receiver = var3;
2641 /* <var_resolved_receiver:MType> isa MClassType */
2642 cltype = type_nitc__MClassType.color;
2643 idtype = type_nitc__MClassType.id;
2644 if(cltype >= var_resolved_receiver->type->table_size) {
2645 var4 = 0;
2646 } else {
2647 var4 = var_resolved_receiver->type->type_table[cltype] == idtype;
2648 }
2649 if (unlikely(!var4)) {
2650 if(catchStack.cursor >= 0){
2651 longjmp(catchStack.envs[catchStack.cursor], 1);
2652 }
2653 PRINT_ERROR("Runtime error: %s", "Assert failed");
2654 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1582);
2655 fatal_exit(1);
2656 }
2657 {
2658 { /* Inline model$MParameterType$mclass (self) on <self:MParameterType> */
2659 var7 = self->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
2660 if (unlikely(var7 == NULL)) {
2661 if(catchStack.cursor >= 0){
2662 longjmp(catchStack.envs[catchStack.cursor], 1);
2663 }
2664 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2665 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1559);
2666 fatal_exit(1);
2667 }
2668 var5 = var7;
2669 RET_LABEL6:(void)0;
2670 }
2671 }
2672 var_goalclass = var5;
2673 {
2674 { /* Inline model$MClassType$mclass (var_resolved_receiver) on <var_resolved_receiver:MType(MClassType)> */
2675 var10 = var_resolved_receiver->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_resolved_receiver:MType(MClassType)> */
2676 if (unlikely(var10 == NULL)) {
2677 if(catchStack.cursor >= 0){
2678 longjmp(catchStack.envs[catchStack.cursor], 1);
2679 }
2680 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2681 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
2682 fatal_exit(1);
2683 }
2684 var8 = var10;
2685 RET_LABEL9:(void)0;
2686 }
2687 }
2688 {
2689 { /* Inline kernel$Object$== (var8,var_goalclass) on <var8:MClass> */
2690 var_other = var_goalclass;
2691 {
2692 { /* Inline kernel$Object$is_same_instance (var8,var_other) on <var8:MClass> */
2693 var15 = var8 == var_other;
2694 var13 = var15;
2695 goto RET_LABEL14;
2696 RET_LABEL14:(void)0;
2697 }
2698 }
2699 var11 = var13;
2700 goto RET_LABEL12;
2701 RET_LABEL12:(void)0;
2702 }
2703 }
2704 if (var11){
2705 {
2706 var16 = ((val*(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nitc__model__MClassType__arguments]))(var_resolved_receiver); /* arguments on <var_resolved_receiver:MType(MClassType)>*/
2707 }
2708 {
2709 { /* Inline model$MParameterType$rank (self) on <self:MParameterType> */
2710 var19 = self->attrs[COLOR_nitc__model__MParameterType___rank].l; /* _rank on <self:MParameterType> */
2711 var17 = var19;
2712 RET_LABEL18:(void)0;
2713 }
2714 }
2715 {
2716 var20 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var16, var17);
2717 }
2718 var = var20;
2719 goto RET_LABEL;
2720 } else {
2721 }
2722 {
2723 var21 = nitc___nitc__MClassType___MType__collect_mtypes(var_resolved_receiver, var_mmodule);
2724 }
2725 var_supertypes = var21;
2726 var_ = var_supertypes;
2727 {
2728 var22 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:Set[MClassType]>*/
2729 }
2730 var_23 = var22;
2731 for(;;) {
2732 {
2733 var24 = ((short int(*)(val* self))((((long)var_23&3)?class_info[((long)var_23&3)]:var_23->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_23); /* is_ok on <var_23:Iterator[MClassType]>*/
2734 }
2735 if (var24){
2736 } else {
2737 goto BREAK_label;
2738 }
2739 {
2740 var25 = ((val*(*)(val* self))((((long)var_23&3)?class_info[((long)var_23&3)]:var_23->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_23); /* item on <var_23:Iterator[MClassType]>*/
2741 }
2742 var_t = var25;
2743 {
2744 { /* Inline model$MClassType$mclass (var_t) on <var_t:MClassType> */
2745 var28 = var_t->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_t:MClassType> */
2746 if (unlikely(var28 == NULL)) {
2747 if(catchStack.cursor >= 0){
2748 longjmp(catchStack.envs[catchStack.cursor], 1);
2749 }
2750 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2751 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
2752 fatal_exit(1);
2753 }
2754 var26 = var28;
2755 RET_LABEL27:(void)0;
2756 }
2757 }
2758 {
2759 { /* Inline kernel$Object$== (var26,var_goalclass) on <var26:MClass> */
2760 var_other = var_goalclass;
2761 {
2762 { /* Inline kernel$Object$is_same_instance (var26,var_other) on <var26:MClass> */
2763 var33 = var26 == var_other;
2764 var31 = var33;
2765 goto RET_LABEL32;
2766 RET_LABEL32:(void)0;
2767 }
2768 }
2769 var29 = var31;
2770 goto RET_LABEL30;
2771 RET_LABEL30:(void)0;
2772 }
2773 }
2774 if (var29){
2775 {
2776 var34 = ((val*(*)(val* self))(var_t->class->vft[COLOR_nitc__model__MClassType__arguments]))(var_t); /* arguments on <var_t:MClassType>*/
2777 }
2778 {
2779 { /* Inline model$MParameterType$rank (self) on <self:MParameterType> */
2780 var37 = self->attrs[COLOR_nitc__model__MParameterType___rank].l; /* _rank on <self:MParameterType> */
2781 var35 = var37;
2782 RET_LABEL36:(void)0;
2783 }
2784 }
2785 {
2786 var38 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var34, var35);
2787 }
2788 var_res = var38;
2789 var = var_res;
2790 goto RET_LABEL;
2791 } else {
2792 }
2793 {
2794 ((void(*)(val* self))((((long)var_23&3)?class_info[((long)var_23&3)]:var_23->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_23); /* next on <var_23:Iterator[MClassType]>*/
2795 }
2796 }
2797 BREAK_label: (void)0;
2798 {
2799 ((void(*)(val* self))((((long)var_23&3)?class_info[((long)var_23&3)]:var_23->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_23); /* finish on <var_23:Iterator[MClassType]>*/
2800 }
2801 var39 = NEW_nitc__MErrorType(&type_nitc__MErrorType);
2802 {
2803 var40 = nitc___nitc__MParameterType___nitc__model_base__MEntity__model(self);
2804 }
2805 {
2806 ((void(*)(val* self, val* p0))(var39->class->vft[COLOR_nitc__model__MErrorType__model_61d]))(var39, var40); /* model= on <var39:MErrorType>*/
2807 }
2808 {
2809 ((void(*)(val* self))(var39->class->vft[COLOR_core__kernel__Object__init]))(var39); /* init on <var39:MErrorType>*/
2810 }
2811 var = var39;
2812 goto RET_LABEL;
2813 RET_LABEL:;
2814 return var;
2815 }
2816 /* method model$MParameterType$lookup_fixed for (self: MParameterType, MModule, MType): MType */
2817 val* nitc___nitc__MParameterType___MType__lookup_fixed(val* self, val* p0, val* p1) {
2818 val* var /* : MType */;
2819 val* var_mmodule /* var mmodule: MModule */;
2820 val* var_resolved_receiver /* var resolved_receiver: MType */;
2821 short int var1 /* : Bool */;
2822 short int var2 /* : Bool */;
2823 val* var3 /* : MType */;
2824 short int var4 /* : Bool */;
2825 int cltype;
2826 int idtype;
2827 val* var5 /* : MClass */;
2828 val* var7 /* : MClass */;
2829 val* var8 /* : MClassType */;
2830 val* var10 /* : MClassType */;
2831 val* var11 /* : MType */;
2832 val* var_res /* var res: MType */;
2833 var_mmodule = p0;
2834 var_resolved_receiver = p1;
2835 {
2836 var1 = ((short int(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_resolved_receiver); /* need_anchor on <var_resolved_receiver:MType>*/
2837 }
2838 var2 = !var1;
2839 if (unlikely(!var2)) {
2840 if(catchStack.cursor >= 0){
2841 longjmp(catchStack.envs[catchStack.cursor], 1);
2842 }
2843 PRINT_ERROR("Runtime error: %s", "Assert failed");
2844 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1609);
2845 fatal_exit(1);
2846 }
2847 {
2848 var3 = ((val*(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nitc__model__MType__undecorate]))(var_resolved_receiver); /* undecorate on <var_resolved_receiver:MType>*/
2849 }
2850 var_resolved_receiver = var3;
2851 /* <var_resolved_receiver:MType> isa MClassType */
2852 cltype = type_nitc__MClassType.color;
2853 idtype = type_nitc__MClassType.id;
2854 if(cltype >= var_resolved_receiver->type->table_size) {
2855 var4 = 0;
2856 } else {
2857 var4 = var_resolved_receiver->type->type_table[cltype] == idtype;
2858 }
2859 if (unlikely(!var4)) {
2860 if(catchStack.cursor >= 0){
2861 longjmp(catchStack.envs[catchStack.cursor], 1);
2862 }
2863 PRINT_ERROR("Runtime error: %s", "Assert failed");
2864 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1611);
2865 fatal_exit(1);
2866 }
2867 {
2868 { /* Inline model$MClassType$mclass (var_resolved_receiver) on <var_resolved_receiver:MType(MClassType)> */
2869 var7 = var_resolved_receiver->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_resolved_receiver:MType(MClassType)> */
2870 if (unlikely(var7 == NULL)) {
2871 if(catchStack.cursor >= 0){
2872 longjmp(catchStack.envs[catchStack.cursor], 1);
2873 }
2874 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2875 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
2876 fatal_exit(1);
2877 }
2878 var5 = var7;
2879 RET_LABEL6:(void)0;
2880 }
2881 }
2882 {
2883 { /* Inline model$MClass$mclass_type (var5) on <var5:MClass> */
2884 var10 = var5->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var5:MClass> */
2885 if (unlikely(var10 == NULL)) {
2886 if(catchStack.cursor >= 0){
2887 longjmp(catchStack.envs[catchStack.cursor], 1);
2888 }
2889 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
2890 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
2891 fatal_exit(1);
2892 }
2893 var8 = var10;
2894 RET_LABEL9:(void)0;
2895 }
2896 }
2897 {
2898 var11 = nitc___nitc__MParameterType___MType__resolve_for(self, var8, var_resolved_receiver, var_mmodule, 0);
2899 }
2900 var_res = var11;
2901 var = var_res;
2902 goto RET_LABEL;
2903 RET_LABEL:;
2904 return var;
2905 }
2906 /* method model$MParameterType$resolve_for for (self: MParameterType, MType, nullable MClassType, MModule, Bool): MType */
2907 val* nitc___nitc__MParameterType___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
2908 val* var /* : MType */;
2909 val* var_mtype /* var mtype: MType */;
2910 val* var_anchor /* var anchor: nullable MClassType */;
2911 val* var_mmodule /* var mmodule: MModule */;
2912 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
2913 short int var1 /* : Bool */;
2914 short int var2 /* : Bool */;
2915 short int var3 /* : Bool */;
2916 int cltype;
2917 int idtype;
2918 short int var_ /* var : Bool */;
2919 val* var4 /* : MClass */;
2920 val* var6 /* : MClass */;
2921 val* var7 /* : MClass */;
2922 val* var9 /* : MClass */;
2923 short int var10 /* : Bool */;
2924 val* var_other /* var other: nullable Object */;
2925 short int var12 /* : Bool */;
2926 short int var14 /* : Bool */;
2927 val* var15 /* : Array[MType] */;
2928 val* var17 /* : Array[MType] */;
2929 long var18 /* : Int */;
2930 long var20 /* : Int */;
2931 val* var21 /* : nullable Object */;
2932 val* var_res /* var res: MType */;
2933 short int var22 /* : Bool */;
2934 short int var23 /* : Bool */;
2935 short int var24 /* : Bool */;
2936 val* var_other26 /* var other: nullable Object */;
2937 short int var27 /* : Bool */;
2938 short int var28 /* : Bool */;
2939 short int var_29 /* var : Bool */;
2940 short int var30 /* : Bool */;
2941 val* var31 /* : MType */;
2942 val* var_r2 /* var r2: MType */;
2943 short int var32 /* : Bool */;
2944 short int var33 /* : Bool */;
2945 int cltype34;
2946 int idtype35;
2947 short int var_36 /* var : Bool */;
2948 val* var37 /* : MClass */;
2949 val* var39 /* : MClass */;
2950 val* var40 /* : MClassKind */;
2951 val* var42 /* : MClassKind */;
2952 val* var43 /* : Sys */;
2953 val* var44 /* : MClassKind */;
2954 short int var45 /* : Bool */;
2955 short int var47 /* : Bool */;
2956 short int var49 /* : Bool */;
2957 short int var50 /* : Bool */;
2958 short int var51 /* : Bool */;
2959 short int var52 /* : Bool */;
2960 short int var54 /* : Bool */;
2961 short int var55 /* : Bool */;
2962 val* var56 /* : MClass */;
2963 val* var58 /* : MClass */;
2964 val* var59 /* : MClassType */;
2965 val* var61 /* : MClassType */;
2966 val* var62 /* : MType */;
2967 val* var_resolved_receiver /* var resolved_receiver: nullable Object */;
2968 short int var63 /* : Bool */;
2969 int cltype64;
2970 int idtype65;
2971 val* var66 /* : MType */;
2972 val* var68 /* : MType */;
2973 short int var69 /* : Bool */;
2974 int cltype70;
2975 int idtype71;
2976 short int var72 /* : Bool */;
2977 short int var73 /* : Bool */;
2978 short int var75 /* : Bool */;
2979 short int var76 /* : Bool */;
2980 val* var77 /* : MClass */;
2981 val* var79 /* : MClass */;
2982 val* var80 /* : MClass */;
2983 val* var82 /* : MClass */;
2984 short int var83 /* : Bool */;
2985 short int var85 /* : Bool */;
2986 short int var87 /* : Bool */;
2987 val* var88 /* : Array[MType] */;
2988 long var89 /* : Int */;
2989 long var91 /* : Int */;
2990 val* var92 /* : nullable Object */;
2991 short int var93 /* : Bool */;
2992 int cltype94;
2993 int idtype95;
2994 val* var96 /* : MType */;
2995 val* var98 /* : MType */;
2996 short int var99 /* : Bool */;
2997 int cltype100;
2998 int idtype101;
2999 val* var102 /* : MClass */;
3000 val* var104 /* : MClass */;
3001 val* var105 /* : MClass */;
3002 val* var107 /* : MClass */;
3003 short int var108 /* : Bool */;
3004 short int var110 /* : Bool */;
3005 short int var112 /* : Bool */;
3006 val* var113 /* : Array[MType] */;
3007 long var114 /* : Int */;
3008 long var116 /* : Int */;
3009 val* var117 /* : nullable Object */;
3010 val* var_res118 /* var res: MType */;
3011 short int var119 /* : Bool */;
3012 short int var120 /* : Bool */;
3013 short int var121 /* : Bool */;
3014 short int var123 /* : Bool */;
3015 short int var124 /* : Bool */;
3016 val* var125 /* : MType */;
3017 val* var126 /* : MType */;
3018 val* var_verbatim_bound /* var verbatim_bound: MType */;
3019 val* var127 /* : MType */;
3020 val* var_res128 /* var res: MType */;
3021 var_mtype = p0;
3022 var_anchor = p1;
3023 var_mmodule = p2;
3024 var_cleanup_virtual = p3;
3025 {
3026 var1 = nitc___nitc__MParameterType___MType__can_resolve_for(self, var_mtype, var_anchor, var_mmodule);
3027 }
3028 if (unlikely(!var1)) {
3029 if(catchStack.cursor >= 0){
3030 longjmp(catchStack.envs[catchStack.cursor], 1);
3031 }
3032 PRINT_ERROR("Runtime error: %s", "Assert failed");
3033 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1618);
3034 fatal_exit(1);
3035 }
3036 /* <var_mtype:MType> isa MGenericType */
3037 cltype = type_nitc__MGenericType.color;
3038 idtype = type_nitc__MGenericType.id;
3039 if(cltype >= var_mtype->type->table_size) {
3040 var3 = 0;
3041 } else {
3042 var3 = var_mtype->type->type_table[cltype] == idtype;
3043 }
3044 var_ = var3;
3045 if (var3){
3046 {
3047 { /* Inline model$MClassType$mclass (var_mtype) on <var_mtype:MType(MGenericType)> */
3048 var6 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:MType(MGenericType)> */
3049 if (unlikely(var6 == NULL)) {
3050 if(catchStack.cursor >= 0){
3051 longjmp(catchStack.envs[catchStack.cursor], 1);
3052 }
3053 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3054 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
3055 fatal_exit(1);
3056 }
3057 var4 = var6;
3058 RET_LABEL5:(void)0;
3059 }
3060 }
3061 {
3062 { /* Inline model$MParameterType$mclass (self) on <self:MParameterType> */
3063 var9 = self->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
3064 if (unlikely(var9 == NULL)) {
3065 if(catchStack.cursor >= 0){
3066 longjmp(catchStack.envs[catchStack.cursor], 1);
3067 }
3068 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3069 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1559);
3070 fatal_exit(1);
3071 }
3072 var7 = var9;
3073 RET_LABEL8:(void)0;
3074 }
3075 }
3076 {
3077 { /* Inline kernel$Object$== (var4,var7) on <var4:MClass> */
3078 var_other = var7;
3079 {
3080 { /* Inline kernel$Object$is_same_instance (var4,var_other) on <var4:MClass> */
3081 var14 = var4 == var_other;
3082 var12 = var14;
3083 goto RET_LABEL13;
3084 RET_LABEL13:(void)0;
3085 }
3086 }
3087 var10 = var12;
3088 goto RET_LABEL11;
3089 RET_LABEL11:(void)0;
3090 }
3091 }
3092 var2 = var10;
3093 } else {
3094 var2 = var_;
3095 }
3096 if (var2){
3097 {
3098 { /* Inline model$MGenericType$arguments (var_mtype) on <var_mtype:MType(MGenericType)> */
3099 var17 = var_mtype->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <var_mtype:MType(MGenericType)> */
3100 if (unlikely(var17 == NULL)) {
3101 if(catchStack.cursor >= 0){
3102 longjmp(catchStack.envs[catchStack.cursor], 1);
3103 }
3104 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
3105 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1305);
3106 fatal_exit(1);
3107 }
3108 var15 = var17;
3109 RET_LABEL16:(void)0;
3110 }
3111 }
3112 {
3113 { /* Inline model$MParameterType$rank (self) on <self:MParameterType> */
3114 var20 = self->attrs[COLOR_nitc__model__MParameterType___rank].l; /* _rank on <self:MParameterType> */
3115 var18 = var20;
3116 RET_LABEL19:(void)0;
3117 }
3118 }
3119 {
3120 var21 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var15, var18);
3121 }
3122 var_res = var21;
3123 if (var_anchor == NULL) {
3124 var23 = 0; /* is null */
3125 } else {
3126 var23 = 1; /* arg is null and recv is not */
3127 }
3128 if (0) {
3129 { /* Inline kernel$Object$!= (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
3130 var_other26 = ((val*)NULL);
3131 {
3132 var27 = ((short int(*)(val* self, val* p0))(var_anchor->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_anchor, var_other26); /* == on <var_anchor:nullable MClassType(MClassType)>*/
3133 }
3134 var28 = !var27;
3135 var24 = var28;
3136 goto RET_LABEL25;
3137 RET_LABEL25:(void)0;
3138 }
3139 var23 = var24;
3140 }
3141 var_29 = var23;
3142 if (var23){
3143 {
3144 var30 = ((short int(*)(val* self))(var_res->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_res); /* need_anchor on <var_res:MType>*/
3145 }
3146 var22 = var30;
3147 } else {
3148 var22 = var_29;
3149 }
3150 if (var22){
3151 {
3152 var31 = ((val*(*)(val* self, val* p0, val* p1))(var_res->class->vft[COLOR_nitc__model__MType__anchor_to]))(var_res, var_mmodule, var_anchor); /* anchor_to on <var_res:MType>*/
3153 }
3154 var_r2 = var31;
3155 /* <var_r2:MType> isa MClassType */
3156 cltype34 = type_nitc__MClassType.color;
3157 idtype35 = type_nitc__MClassType.id;
3158 if(cltype34 >= var_r2->type->table_size) {
3159 var33 = 0;
3160 } else {
3161 var33 = var_r2->type->type_table[cltype34] == idtype35;
3162 }
3163 var_36 = var33;
3164 if (var33){
3165 {
3166 { /* Inline model$MClassType$mclass (var_r2) on <var_r2:MType(MClassType)> */
3167 var39 = var_r2->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_r2:MType(MClassType)> */
3168 if (unlikely(var39 == NULL)) {
3169 if(catchStack.cursor >= 0){
3170 longjmp(catchStack.envs[catchStack.cursor], 1);
3171 }
3172 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3173 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
3174 fatal_exit(1);
3175 }
3176 var37 = var39;
3177 RET_LABEL38:(void)0;
3178 }
3179 }
3180 {
3181 { /* Inline model$MClass$kind (var37) on <var37:MClass> */
3182 var42 = var37->attrs[COLOR_nitc__model__MClass___kind].val; /* _kind on <var37:MClass> */
3183 if (unlikely(var42 == NULL)) {
3184 if(catchStack.cursor >= 0){
3185 longjmp(catchStack.envs[catchStack.cursor], 1);
3186 }
3187 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3188 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 472);
3189 fatal_exit(1);
3190 }
3191 var40 = var42;
3192 RET_LABEL41:(void)0;
3193 }
3194 }
3195 var43 = glob_sys;
3196 {
3197 var44 = nitc__model___core__Sys___enum_kind(var43);
3198 }
3199 {
3200 { /* Inline kernel$Object$== (var40,var44) on <var40:MClassKind> */
3201 var_other = var44;
3202 {
3203 { /* Inline kernel$Object$is_same_instance (var40,var_other) on <var40:MClassKind> */
3204 var49 = var40 == var_other;
3205 var47 = var49;
3206 goto RET_LABEL48;
3207 RET_LABEL48:(void)0;
3208 }
3209 }
3210 var45 = var47;
3211 goto RET_LABEL46;
3212 RET_LABEL46:(void)0;
3213 }
3214 }
3215 var32 = var45;
3216 } else {
3217 var32 = var_36;
3218 }
3219 if (var32){
3220 var = var_r2;
3221 goto RET_LABEL;
3222 } else {
3223 }
3224 } else {
3225 }
3226 var = var_res;
3227 goto RET_LABEL;
3228 } else {
3229 }
3230 {
3231 var50 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
3232 }
3233 if (var50){
3234 if (var_anchor == NULL) {
3235 var51 = 0; /* is null */
3236 } else {
3237 var51 = 1; /* arg is null and recv is not */
3238 }
3239 if (0) {
3240 { /* Inline kernel$Object$!= (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
3241 var_other26 = ((val*)NULL);
3242 {
3243 var54 = ((short int(*)(val* self, val* p0))(var_anchor->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_anchor, var_other26); /* == on <var_anchor:nullable MClassType(MClassType)>*/
3244 }
3245 var55 = !var54;
3246 var52 = var55;
3247 goto RET_LABEL53;
3248 RET_LABEL53:(void)0;
3249 }
3250 var51 = var52;
3251 }
3252 if (unlikely(!var51)) {
3253 if(catchStack.cursor >= 0){
3254 longjmp(catchStack.envs[catchStack.cursor], 1);
3255 }
3256 PRINT_ERROR("Runtime error: %s", "Assert failed");
3257 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1637);
3258 fatal_exit(1);
3259 }
3260 {
3261 { /* Inline model$MClassType$mclass (var_anchor) on <var_anchor:nullable MClassType(MClassType)> */
3262 var58 = var_anchor->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_anchor:nullable MClassType(MClassType)> */
3263 if (unlikely(var58 == NULL)) {
3264 if(catchStack.cursor >= 0){
3265 longjmp(catchStack.envs[catchStack.cursor], 1);
3266 }
3267 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3268 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
3269 fatal_exit(1);
3270 }
3271 var56 = var58;
3272 RET_LABEL57:(void)0;
3273 }
3274 }
3275 {
3276 { /* Inline model$MClass$mclass_type (var56) on <var56:MClass> */
3277 var61 = var56->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var56:MClass> */
3278 if (unlikely(var61 == NULL)) {
3279 if(catchStack.cursor >= 0){
3280 longjmp(catchStack.envs[catchStack.cursor], 1);
3281 }
3282 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
3283 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
3284 fatal_exit(1);
3285 }
3286 var59 = var61;
3287 RET_LABEL60:(void)0;
3288 }
3289 }
3290 {
3291 var62 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_mtype->class->vft[COLOR_nitc__model__MType__resolve_for]))(var_mtype, var59, var_anchor, var_mmodule, 1); /* resolve_for on <var_mtype:MType>*/
3292 }
3293 var_resolved_receiver = var62;
3294 } else {
3295 var_resolved_receiver = var_mtype;
3296 }
3297 /* <var_resolved_receiver:nullable Object(MType)> isa MNullableType */
3298 cltype64 = type_nitc__MNullableType.color;
3299 idtype65 = type_nitc__MNullableType.id;
3300 if(cltype64 >= var_resolved_receiver->type->table_size) {
3301 var63 = 0;
3302 } else {
3303 var63 = var_resolved_receiver->type->type_table[cltype64] == idtype65;
3304 }
3305 if (var63){
3306 {
3307 { /* Inline model$MProxyType$mtype (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MNullableType)> */
3308 var68 = var_resolved_receiver->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <var_resolved_receiver:nullable Object(MNullableType)> */
3309 if (unlikely(var68 == NULL)) {
3310 if(catchStack.cursor >= 0){
3311 longjmp(catchStack.envs[catchStack.cursor], 1);
3312 }
3313 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3314 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
3315 fatal_exit(1);
3316 }
3317 var66 = var68;
3318 RET_LABEL67:(void)0;
3319 }
3320 }
3321 var_resolved_receiver = var66;
3322 } else {
3323 }
3324 /* <var_resolved_receiver:nullable Object(MType)> isa MParameterType */
3325 cltype70 = type_nitc__MParameterType.color;
3326 idtype71 = type_nitc__MParameterType.id;
3327 if(cltype70 >= var_resolved_receiver->type->table_size) {
3328 var69 = 0;
3329 } else {
3330 var69 = var_resolved_receiver->type->type_table[cltype70] == idtype71;
3331 }
3332 if (var69){
3333 if (var_anchor == NULL) {
3334 var72 = 0; /* is null */
3335 } else {
3336 var72 = 1; /* arg is null and recv is not */
3337 }
3338 if (0) {
3339 { /* Inline kernel$Object$!= (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
3340 var_other26 = ((val*)NULL);
3341 {
3342 var75 = ((short int(*)(val* self, val* p0))(var_anchor->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_anchor, var_other26); /* == on <var_anchor:nullable MClassType(MClassType)>*/
3343 }
3344 var76 = !var75;
3345 var73 = var76;
3346 goto RET_LABEL74;
3347 RET_LABEL74:(void)0;
3348 }
3349 var72 = var73;
3350 }
3351 if (unlikely(!var72)) {
3352 if(catchStack.cursor >= 0){
3353 longjmp(catchStack.envs[catchStack.cursor], 1);
3354 }
3355 PRINT_ERROR("Runtime error: %s", "Assert failed");
3356 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1644);
3357 fatal_exit(1);
3358 }
3359 {
3360 { /* Inline model$MParameterType$mclass (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MParameterType)> */
3361 var79 = var_resolved_receiver->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <var_resolved_receiver:nullable Object(MParameterType)> */
3362 if (unlikely(var79 == NULL)) {
3363 if(catchStack.cursor >= 0){
3364 longjmp(catchStack.envs[catchStack.cursor], 1);
3365 }
3366 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3367 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1559);
3368 fatal_exit(1);
3369 }
3370 var77 = var79;
3371 RET_LABEL78:(void)0;
3372 }
3373 }
3374 {
3375 { /* Inline model$MClassType$mclass (var_anchor) on <var_anchor:nullable MClassType(MClassType)> */
3376 var82 = var_anchor->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_anchor:nullable MClassType(MClassType)> */
3377 if (unlikely(var82 == NULL)) {
3378 if(catchStack.cursor >= 0){
3379 longjmp(catchStack.envs[catchStack.cursor], 1);
3380 }
3381 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3382 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
3383 fatal_exit(1);
3384 }
3385 var80 = var82;
3386 RET_LABEL81:(void)0;
3387 }
3388 }
3389 {
3390 { /* Inline kernel$Object$== (var77,var80) on <var77:MClass> */
3391 var_other = var80;
3392 {
3393 { /* Inline kernel$Object$is_same_instance (var77,var_other) on <var77:MClass> */
3394 var87 = var77 == var_other;
3395 var85 = var87;
3396 goto RET_LABEL86;
3397 RET_LABEL86:(void)0;
3398 }
3399 }
3400 var83 = var85;
3401 goto RET_LABEL84;
3402 RET_LABEL84:(void)0;
3403 }
3404 }
3405 if (unlikely(!var83)) {
3406 if(catchStack.cursor >= 0){
3407 longjmp(catchStack.envs[catchStack.cursor], 1);
3408 }
3409 PRINT_ERROR("Runtime error: %s", "Assert failed");
3410 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1645);
3411 fatal_exit(1);
3412 }
3413 {
3414 var88 = ((val*(*)(val* self))(var_anchor->class->vft[COLOR_nitc__model__MClassType__arguments]))(var_anchor); /* arguments on <var_anchor:nullable MClassType(MClassType)>*/
3415 }
3416 {
3417 { /* Inline model$MParameterType$rank (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MParameterType)> */
3418 var91 = var_resolved_receiver->attrs[COLOR_nitc__model__MParameterType___rank].l; /* _rank on <var_resolved_receiver:nullable Object(MParameterType)> */
3419 var89 = var91;
3420 RET_LABEL90:(void)0;
3421 }
3422 }
3423 {
3424 var92 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var88, var89);
3425 }
3426 var_resolved_receiver = var92;
3427 /* <var_resolved_receiver:nullable Object(MType)> isa MNullableType */
3428 cltype94 = type_nitc__MNullableType.color;
3429 idtype95 = type_nitc__MNullableType.id;
3430 if(cltype94 >= var_resolved_receiver->type->table_size) {
3431 var93 = 0;
3432 } else {
3433 var93 = var_resolved_receiver->type->type_table[cltype94] == idtype95;
3434 }
3435 if (var93){
3436 {
3437 { /* Inline model$MProxyType$mtype (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MNullableType)> */
3438 var98 = var_resolved_receiver->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <var_resolved_receiver:nullable Object(MNullableType)> */
3439 if (unlikely(var98 == NULL)) {
3440 if(catchStack.cursor >= 0){
3441 longjmp(catchStack.envs[catchStack.cursor], 1);
3442 }
3443 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3444 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
3445 fatal_exit(1);
3446 }
3447 var96 = var98;
3448 RET_LABEL97:(void)0;
3449 }
3450 }
3451 var_resolved_receiver = var96;
3452 } else {
3453 }
3454 } else {
3455 }
3456 /* <var_resolved_receiver:nullable Object(MType)> isa MClassType */
3457 cltype100 = type_nitc__MClassType.color;
3458 idtype101 = type_nitc__MClassType.id;
3459 if(cltype100 >= var_resolved_receiver->type->table_size) {
3460 var99 = 0;
3461 } else {
3462 var99 = var_resolved_receiver->type->type_table[cltype100] == idtype101;
3463 }
3464 if (unlikely(!var99)) {
3465 if(catchStack.cursor >= 0){
3466 longjmp(catchStack.envs[catchStack.cursor], 1);
3467 }
3468 PRINT_ERROR("Runtime error: %s", "Assert failed");
3469 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1649);
3470 fatal_exit(1);
3471 }
3472 {
3473 { /* Inline model$MClassType$mclass (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MClassType)> */
3474 var104 = var_resolved_receiver->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_resolved_receiver:nullable Object(MClassType)> */
3475 if (unlikely(var104 == NULL)) {
3476 if(catchStack.cursor >= 0){
3477 longjmp(catchStack.envs[catchStack.cursor], 1);
3478 }
3479 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3480 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
3481 fatal_exit(1);
3482 }
3483 var102 = var104;
3484 RET_LABEL103:(void)0;
3485 }
3486 }
3487 {
3488 { /* Inline model$MParameterType$mclass (self) on <self:MParameterType> */
3489 var107 = self->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
3490 if (unlikely(var107 == NULL)) {
3491 if(catchStack.cursor >= 0){
3492 longjmp(catchStack.envs[catchStack.cursor], 1);
3493 }
3494 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3495 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1559);
3496 fatal_exit(1);
3497 }
3498 var105 = var107;
3499 RET_LABEL106:(void)0;
3500 }
3501 }
3502 {
3503 { /* Inline kernel$Object$== (var102,var105) on <var102:MClass> */
3504 var_other = var105;
3505 {
3506 { /* Inline kernel$Object$is_same_instance (var102,var_other) on <var102:MClass> */
3507 var112 = var102 == var_other;
3508 var110 = var112;
3509 goto RET_LABEL111;
3510 RET_LABEL111:(void)0;
3511 }
3512 }
3513 var108 = var110;
3514 goto RET_LABEL109;
3515 RET_LABEL109:(void)0;
3516 }
3517 }
3518 if (var108){
3519 {
3520 var113 = ((val*(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nitc__model__MClassType__arguments]))(var_resolved_receiver); /* arguments on <var_resolved_receiver:nullable Object(MClassType)>*/
3521 }
3522 {
3523 { /* Inline model$MParameterType$rank (self) on <self:MParameterType> */
3524 var116 = self->attrs[COLOR_nitc__model__MParameterType___rank].l; /* _rank on <self:MParameterType> */
3525 var114 = var116;
3526 RET_LABEL115:(void)0;
3527 }
3528 }
3529 {
3530 var117 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var113, var114);
3531 }
3532 var_res118 = var117;
3533 var = var_res118;
3534 goto RET_LABEL;
3535 } else {
3536 }
3537 {
3538 var119 = ((short int(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_resolved_receiver); /* need_anchor on <var_resolved_receiver:nullable Object(MClassType)>*/
3539 }
3540 if (var119){
3541 if (var_anchor == NULL) {
3542 var120 = 0; /* is null */
3543 } else {
3544 var120 = 1; /* arg is null and recv is not */
3545 }
3546 if (0) {
3547 { /* Inline kernel$Object$!= (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
3548 var_other26 = ((val*)NULL);
3549 {
3550 var123 = ((short int(*)(val* self, val* p0))(var_anchor->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_anchor, var_other26); /* == on <var_anchor:nullable MClassType(MClassType)>*/
3551 }
3552 var124 = !var123;
3553 var121 = var124;
3554 goto RET_LABEL122;
3555 RET_LABEL122:(void)0;
3556 }
3557 var120 = var121;
3558 }
3559 if (unlikely(!var120)) {
3560 if(catchStack.cursor >= 0){
3561 longjmp(catchStack.envs[catchStack.cursor], 1);
3562 }
3563 PRINT_ERROR("Runtime error: %s", "Assert failed");
3564 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1660);
3565 fatal_exit(1);
3566 }
3567 {
3568 var125 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_resolved_receiver->class->vft[COLOR_nitc__model__MType__resolve_for]))(var_resolved_receiver, var_anchor, ((val*)NULL), var_mmodule, 0); /* resolve_for on <var_resolved_receiver:nullable Object(MClassType)>*/
3569 }
3570 var_resolved_receiver = var125;
3571 } else {
3572 }
3573 {
3574 var126 = nitc___nitc__MParameterType___MType__lookup_bound(self, var_mmodule, var_resolved_receiver);
3575 }
3576 var_verbatim_bound = var126;
3577 {
3578 var127 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_verbatim_bound->class->vft[COLOR_nitc__model__MType__resolve_for]))(var_verbatim_bound, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual); /* resolve_for on <var_verbatim_bound:MType>*/
3579 }
3580 var_res128 = var127;
3581 var = var_res128;
3582 goto RET_LABEL;
3583 RET_LABEL:;
3584 return var;
3585 }
3586 /* method model$MParameterType$can_resolve_for for (self: MParameterType, MType, nullable MClassType, MModule): Bool */
3587 short int nitc___nitc__MParameterType___MType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
3588 short int var /* : Bool */;
3589 val* var_mtype /* var mtype: MType */;
3590 val* var_anchor /* var anchor: nullable MClassType */;
3591 val* var_mmodule /* var mmodule: MModule */;
3592 short int var1 /* : Bool */;
3593 short int var2 /* : Bool */;
3594 short int var3 /* : Bool */;
3595 val* var_other /* var other: nullable Object */;
3596 short int var5 /* : Bool */;
3597 short int var6 /* : Bool */;
3598 val* var7 /* : MType */;
3599 val* var8 /* : Set[MClassDef] */;
3600 val* var9 /* : MClass */;
3601 val* var11 /* : MClass */;
3602 val* var12 /* : MClassDef */;
3603 val* var14 /* : MClassDef */;
3604 short int var15 /* : Bool */;
3605 var_mtype = p0;
3606 var_anchor = p1;
3607 var_mmodule = p2;
3608 {
3609 var1 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
3610 }
3611 if (var1){
3612 if (var_anchor == NULL) {
3613 var2 = 0; /* is null */
3614 } else {
3615 var2 = 1; /* arg is null and recv is not */
3616 }
3617 if (0) {
3618 { /* Inline kernel$Object$!= (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
3619 var_other = ((val*)NULL);
3620 {
3621 var5 = ((short int(*)(val* self, val* p0))(var_anchor->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_anchor, var_other); /* == on <var_anchor:nullable MClassType(MClassType)>*/
3622 }
3623 var6 = !var5;
3624 var3 = var6;
3625 goto RET_LABEL4;
3626 RET_LABEL4:(void)0;
3627 }
3628 var2 = var3;
3629 }
3630 if (unlikely(!var2)) {
3631 if(catchStack.cursor >= 0){
3632 longjmp(catchStack.envs[catchStack.cursor], 1);
3633 }
3634 PRINT_ERROR("Runtime error: %s", "Assert failed");
3635 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1676);
3636 fatal_exit(1);
3637 }
3638 {
3639 var7 = ((val*(*)(val* self, val* p0, val* p1))(var_mtype->class->vft[COLOR_nitc__model__MType__anchor_to]))(var_mtype, var_mmodule, var_anchor); /* anchor_to on <var_mtype:MType>*/
3640 }
3641 var_mtype = var7;
3642 } else {
3643 }
3644 {
3645 var8 = ((val*(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_nitc__model__MType__collect_mclassdefs]))(var_mtype, var_mmodule); /* collect_mclassdefs on <var_mtype:MType>*/
3646 }
3647 {
3648 { /* Inline model$MParameterType$mclass (self) on <self:MParameterType> */
3649 var11 = self->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
3650 if (unlikely(var11 == NULL)) {
3651 if(catchStack.cursor >= 0){
3652 longjmp(catchStack.envs[catchStack.cursor], 1);
3653 }
3654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3655 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1559);
3656 fatal_exit(1);
3657 }
3658 var9 = var11;
3659 RET_LABEL10:(void)0;
3660 }
3661 }
3662 {
3663 { /* Inline model$MClass$intro (var9) on <var9:MClass> */
3664 var14 = var9->attrs[COLOR_nitc__model__MClass___intro].val; /* _intro on <var9:MClass> */
3665 if (unlikely(var14 == NULL)) {
3666 if(catchStack.cursor >= 0){
3667 longjmp(catchStack.envs[catchStack.cursor], 1);
3668 }
3669 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
3670 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 496);
3671 fatal_exit(1);
3672 }
3673 var12 = var14;
3674 RET_LABEL13:(void)0;
3675 }
3676 }
3677 {
3678 var15 = ((short int(*)(val* self, val* p0))((((long)var8&3)?class_info[((long)var8&3)]:var8->class)->vft[COLOR_core__abstract_collection__Collection__has]))(var8, var12); /* has on <var8:Set[MClassDef]>*/
3679 }
3680 var = var15;
3681 goto RET_LABEL;
3682 RET_LABEL:;
3683 return var;
3684 }
3685 /* method model$MParameterType$init for (self: MParameterType) */
3686 void nitc___nitc__MParameterType___core__kernel__Object__init(val* self) {
3687 {
3688 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MParameterType___core__kernel__Object__init]))(self); /* init on <self:MParameterType>*/
3689 }
3690 RET_LABEL:;
3691 }
3692 /* method model$MProxyType$mtype for (self: MProxyType): MType */
3693 val* nitc___nitc__MProxyType___mtype(val* self) {
3694 val* var /* : MType */;
3695 val* var1 /* : MType */;
3696 var1 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
3697 if (unlikely(var1 == NULL)) {
3698 if(catchStack.cursor >= 0){
3699 longjmp(catchStack.envs[catchStack.cursor], 1);
3700 }
3701 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3702 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
3703 fatal_exit(1);
3704 }
3705 var = var1;
3706 RET_LABEL:;
3707 return var;
3708 }
3709 /* method model$MProxyType$mtype= for (self: MProxyType, MType) */
3710 void nitc___nitc__MProxyType___mtype_61d(val* self, val* p0) {
3711 self->attrs[COLOR_nitc__model__MProxyType___mtype].val = p0; /* _mtype on <self:MProxyType> */
3712 RET_LABEL:;
3713 }
3714 /* method model$MProxyType$location for (self: MProxyType): Location */
3715 val* nitc___nitc__MProxyType___nitc__model_base__MEntity__location(val* self) {
3716 val* var /* : Location */;
3717 val* var1 /* : MType */;
3718 val* var3 /* : MType */;
3719 val* var4 /* : Location */;
3720 {
3721 { /* Inline model$MProxyType$mtype (self) on <self:MProxyType> */
3722 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
3723 if (unlikely(var3 == NULL)) {
3724 if(catchStack.cursor >= 0){
3725 longjmp(catchStack.envs[catchStack.cursor], 1);
3726 }
3727 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3728 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
3729 fatal_exit(1);
3730 }
3731 var1 = var3;
3732 RET_LABEL2:(void)0;
3733 }
3734 }
3735 {
3736 var4 = ((val*(*)(val* self))(var1->class->vft[COLOR_nitc__model_base__MEntity__location]))(var1); /* location on <var1:MType>*/
3737 }
3738 var = var4;
3739 goto RET_LABEL;
3740 RET_LABEL:;
3741 return var;
3742 }
3743 /* method model$MProxyType$model for (self: MProxyType): Model */
3744 val* nitc___nitc__MProxyType___nitc__model_base__MEntity__model(val* self) {
3745 val* var /* : Model */;
3746 val* var1 /* : MType */;
3747 val* var3 /* : MType */;
3748 val* var4 /* : Model */;
3749 {
3750 { /* Inline model$MProxyType$mtype (self) on <self:MProxyType> */
3751 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
3752 if (unlikely(var3 == NULL)) {
3753 if(catchStack.cursor >= 0){
3754 longjmp(catchStack.envs[catchStack.cursor], 1);
3755 }
3756 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3757 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
3758 fatal_exit(1);
3759 }
3760 var1 = var3;
3761 RET_LABEL2:(void)0;
3762 }
3763 }
3764 {
3765 var4 = ((val*(*)(val* self))(var1->class->vft[COLOR_nitc__model_base__MEntity__model]))(var1); /* model on <var1:MType>*/
3766 }
3767 var = var4;
3768 goto RET_LABEL;
3769 RET_LABEL:;
3770 return var;
3771 }
3772 /* method model$MProxyType$need_anchor for (self: MProxyType): Bool */
3773 short int nitc___nitc__MProxyType___MType__need_anchor(val* self) {
3774 short int var /* : Bool */;
3775 val* var1 /* : MType */;
3776 val* var3 /* : MType */;
3777 short int var4 /* : Bool */;
3778 {
3779 { /* Inline model$MProxyType$mtype (self) on <self:MProxyType> */
3780 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
3781 if (unlikely(var3 == NULL)) {
3782 if(catchStack.cursor >= 0){
3783 longjmp(catchStack.envs[catchStack.cursor], 1);
3784 }
3785 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3786 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
3787 fatal_exit(1);
3788 }
3789 var1 = var3;
3790 RET_LABEL2:(void)0;
3791 }
3792 }
3793 {
3794 var4 = ((short int(*)(val* self))(var1->class->vft[COLOR_nitc__model__MType__need_anchor]))(var1); /* need_anchor on <var1:MType>*/
3795 }
3796 var = var4;
3797 goto RET_LABEL;
3798 RET_LABEL:;
3799 return var;
3800 }
3801 /* method model$MProxyType$as_nullable for (self: MProxyType): MType */
3802 val* nitc___nitc__MProxyType___MType__as_nullable(val* self) {
3803 val* var /* : MType */;
3804 val* var1 /* : MType */;
3805 val* var3 /* : MType */;
3806 val* var4 /* : MType */;
3807 {
3808 { /* Inline model$MProxyType$mtype (self) on <self:MProxyType> */
3809 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
3810 if (unlikely(var3 == NULL)) {
3811 if(catchStack.cursor >= 0){
3812 longjmp(catchStack.envs[catchStack.cursor], 1);
3813 }
3814 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3815 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
3816 fatal_exit(1);
3817 }
3818 var1 = var3;
3819 RET_LABEL2:(void)0;
3820 }
3821 }
3822 {
3823 var4 = ((val*(*)(val* self))(var1->class->vft[COLOR_nitc__model__MType__as_nullable]))(var1); /* as_nullable on <var1:MType>*/
3824 }
3825 var = var4;
3826 goto RET_LABEL;
3827 RET_LABEL:;
3828 return var;
3829 }
3830 /* method model$MProxyType$as_notnull for (self: MProxyType): MType */
3831 val* nitc___nitc__MProxyType___MType__as_notnull(val* self) {
3832 val* var /* : MType */;
3833 val* var1 /* : MType */;
3834 val* var3 /* : MType */;
3835 val* var4 /* : MType */;
3836 {
3837 { /* Inline model$MProxyType$mtype (self) on <self:MProxyType> */
3838 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
3839 if (unlikely(var3 == NULL)) {
3840 if(catchStack.cursor >= 0){
3841 longjmp(catchStack.envs[catchStack.cursor], 1);
3842 }
3843 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3844 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
3845 fatal_exit(1);
3846 }
3847 var1 = var3;
3848 RET_LABEL2:(void)0;
3849 }
3850 }
3851 {
3852 var4 = ((val*(*)(val* self))(var1->class->vft[COLOR_nitc__model__MType__as_notnull]))(var1); /* as_notnull on <var1:MType>*/
3853 }
3854 var = var4;
3855 goto RET_LABEL;
3856 RET_LABEL:;
3857 return var;
3858 }
3859 /* method model$MProxyType$undecorate for (self: MProxyType): MType */
3860 val* nitc___nitc__MProxyType___MType__undecorate(val* self) {
3861 val* var /* : MType */;
3862 val* var1 /* : MType */;
3863 val* var3 /* : MType */;
3864 val* var4 /* : MType */;
3865 {
3866 { /* Inline model$MProxyType$mtype (self) on <self:MProxyType> */
3867 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
3868 if (unlikely(var3 == NULL)) {
3869 if(catchStack.cursor >= 0){
3870 longjmp(catchStack.envs[catchStack.cursor], 1);
3871 }
3872 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3873 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
3874 fatal_exit(1);
3875 }
3876 var1 = var3;
3877 RET_LABEL2:(void)0;
3878 }
3879 }
3880 {
3881 var4 = ((val*(*)(val* self))(var1->class->vft[COLOR_nitc__model__MType__undecorate]))(var1); /* undecorate on <var1:MType>*/
3882 }
3883 var = var4;
3884 goto RET_LABEL;
3885 RET_LABEL:;
3886 return var;
3887 }
3888 /* method model$MProxyType$resolve_for for (self: MProxyType, MType, nullable MClassType, MModule, Bool): MType */
3889 val* nitc___nitc__MProxyType___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
3890 val* var /* : MType */;
3891 val* var_mtype /* var mtype: MType */;
3892 val* var_anchor /* var anchor: nullable MClassType */;
3893 val* var_mmodule /* var mmodule: MModule */;
3894 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
3895 val* var1 /* : MType */;
3896 val* var3 /* : MType */;
3897 val* var4 /* : MType */;
3898 val* var_res /* var res: MType */;
3899 var_mtype = p0;
3900 var_anchor = p1;
3901 var_mmodule = p2;
3902 var_cleanup_virtual = p3;
3903 {
3904 { /* Inline model$MProxyType$mtype (self) on <self:MProxyType> */
3905 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
3906 if (unlikely(var3 == NULL)) {
3907 if(catchStack.cursor >= 0){
3908 longjmp(catchStack.envs[catchStack.cursor], 1);
3909 }
3910 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3911 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
3912 fatal_exit(1);
3913 }
3914 var1 = var3;
3915 RET_LABEL2:(void)0;
3916 }
3917 }
3918 {
3919 var4 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var1->class->vft[COLOR_nitc__model__MType__resolve_for]))(var1, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual); /* resolve_for on <var1:MType>*/
3920 }
3921 var_res = var4;
3922 var = var_res;
3923 goto RET_LABEL;
3924 RET_LABEL:;
3925 return var;
3926 }
3927 /* method model$MProxyType$can_resolve_for for (self: MProxyType, MType, nullable MClassType, MModule): Bool */
3928 short int nitc___nitc__MProxyType___MType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
3929 short int var /* : Bool */;
3930 val* var_mtype /* var mtype: MType */;
3931 val* var_anchor /* var anchor: nullable MClassType */;
3932 val* var_mmodule /* var mmodule: MModule */;
3933 val* var1 /* : MType */;
3934 val* var3 /* : MType */;
3935 short int var4 /* : Bool */;
3936 var_mtype = p0;
3937 var_anchor = p1;
3938 var_mmodule = p2;
3939 {
3940 { /* Inline model$MProxyType$mtype (self) on <self:MProxyType> */
3941 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
3942 if (unlikely(var3 == NULL)) {
3943 if(catchStack.cursor >= 0){
3944 longjmp(catchStack.envs[catchStack.cursor], 1);
3945 }
3946 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3947 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
3948 fatal_exit(1);
3949 }
3950 var1 = var3;
3951 RET_LABEL2:(void)0;
3952 }
3953 }
3954 {
3955 var4 = ((short int(*)(val* self, val* p0, val* p1, val* p2))(var1->class->vft[COLOR_nitc__model__MType__can_resolve_for]))(var1, var_mtype, var_anchor, var_mmodule); /* can_resolve_for on <var1:MType>*/
3956 }
3957 var = var4;
3958 goto RET_LABEL;
3959 RET_LABEL:;
3960 return var;
3961 }
3962 /* method model$MProxyType$is_ok for (self: MProxyType): Bool */
3963 short int nitc___nitc__MProxyType___MType__is_ok(val* self) {
3964 short int var /* : Bool */;
3965 val* var1 /* : MType */;
3966 val* var3 /* : MType */;
3967 short int var4 /* : Bool */;
3968 {
3969 { /* Inline model$MProxyType$mtype (self) on <self:MProxyType> */
3970 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
3971 if (unlikely(var3 == NULL)) {
3972 if(catchStack.cursor >= 0){
3973 longjmp(catchStack.envs[catchStack.cursor], 1);
3974 }
3975 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3976 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
3977 fatal_exit(1);
3978 }
3979 var1 = var3;
3980 RET_LABEL2:(void)0;
3981 }
3982 }
3983 {
3984 var4 = ((short int(*)(val* self))(var1->class->vft[COLOR_nitc__model__MType__is_ok]))(var1); /* is_ok on <var1:MType>*/
3985 }
3986 var = var4;
3987 goto RET_LABEL;
3988 RET_LABEL:;
3989 return var;
3990 }
3991 /* method model$MProxyType$is_legal_in for (self: MProxyType, MModule, nullable MClassType): Bool */
3992 short int nitc___nitc__MProxyType___MType__is_legal_in(val* self, val* p0, val* p1) {
3993 short int var /* : Bool */;
3994 val* var_mmodule /* var mmodule: MModule */;
3995 val* var_anchor /* var anchor: nullable MClassType */;
3996 val* var1 /* : MType */;
3997 val* var3 /* : MType */;
3998 short int var4 /* : Bool */;
3999 var_mmodule = p0;
4000 var_anchor = p1;
4001 {
4002 { /* Inline model$MProxyType$mtype (self) on <self:MProxyType> */
4003 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
4004 if (unlikely(var3 == NULL)) {
4005 if(catchStack.cursor >= 0){
4006 longjmp(catchStack.envs[catchStack.cursor], 1);
4007 }
4008 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4009 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
4010 fatal_exit(1);
4011 }
4012 var1 = var3;
4013 RET_LABEL2:(void)0;
4014 }
4015 }
4016 {
4017 var4 = ((short int(*)(val* self, val* p0, val* p1))(var1->class->vft[COLOR_nitc__model__MType__is_legal_in]))(var1, var_mmodule, var_anchor); /* is_legal_in on <var1:MType>*/
4018 }
4019 var = var4;
4020 goto RET_LABEL;
4021 RET_LABEL:;
4022 return var;
4023 }
4024 /* method model$MProxyType$lookup_fixed for (self: MProxyType, MModule, MType): MType */
4025 val* nitc___nitc__MProxyType___MType__lookup_fixed(val* self, val* p0, val* p1) {
4026 val* var /* : MType */;
4027 val* var_mmodule /* var mmodule: MModule */;
4028 val* var_resolved_receiver /* var resolved_receiver: MType */;
4029 val* var1 /* : MType */;
4030 val* var3 /* : MType */;
4031 val* var4 /* : MType */;
4032 val* var_t /* var t: MType */;
4033 var_mmodule = p0;
4034 var_resolved_receiver = p1;
4035 {
4036 { /* Inline model$MProxyType$mtype (self) on <self:MProxyType> */
4037 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
4038 if (unlikely(var3 == NULL)) {
4039 if(catchStack.cursor >= 0){
4040 longjmp(catchStack.envs[catchStack.cursor], 1);
4041 }
4042 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4043 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
4044 fatal_exit(1);
4045 }
4046 var1 = var3;
4047 RET_LABEL2:(void)0;
4048 }
4049 }
4050 {
4051 var4 = ((val*(*)(val* self, val* p0, val* p1))(var1->class->vft[COLOR_nitc__model__MType__lookup_fixed]))(var1, var_mmodule, var_resolved_receiver); /* lookup_fixed on <var1:MType>*/
4052 }
4053 var_t = var4;
4054 var = var_t;
4055 goto RET_LABEL;
4056 RET_LABEL:;
4057 return var;
4058 }
4059 /* method model$MProxyType$length for (self: MProxyType): Int */
4060 long nitc___nitc__MProxyType___MType__length(val* self) {
4061 long var /* : Int */;
4062 val* var1 /* : MType */;
4063 val* var3 /* : MType */;
4064 long var4 /* : Int */;
4065 {
4066 { /* Inline model$MProxyType$mtype (self) on <self:MProxyType> */
4067 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
4068 if (unlikely(var3 == NULL)) {
4069 if(catchStack.cursor >= 0){
4070 longjmp(catchStack.envs[catchStack.cursor], 1);
4071 }
4072 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4073 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
4074 fatal_exit(1);
4075 }
4076 var1 = var3;
4077 RET_LABEL2:(void)0;
4078 }
4079 }
4080 {
4081 var4 = ((long(*)(val* self))(var1->class->vft[COLOR_nitc__model__MType__length]))(var1); /* length on <var1:MType>*/
4082 }
4083 var = var4;
4084 goto RET_LABEL;
4085 RET_LABEL:;
4086 return var;
4087 }
4088 /* method model$MProxyType$collect_mclassdefs for (self: MProxyType, MModule): Set[MClassDef] */
4089 val* nitc___nitc__MProxyType___MType__collect_mclassdefs(val* self, val* p0) {
4090 val* var /* : Set[MClassDef] */;
4091 val* var_mmodule /* var mmodule: MModule */;
4092 short int var1 /* : Bool */;
4093 short int var2 /* : Bool */;
4094 val* var3 /* : MType */;
4095 val* var5 /* : MType */;
4096 val* var6 /* : Set[MClassDef] */;
4097 var_mmodule = p0;
4098 {
4099 var1 = nitc___nitc__MProxyType___MType__need_anchor(self);
4100 }
4101 var2 = !var1;
4102 if (unlikely(!var2)) {
4103 if(catchStack.cursor >= 0){
4104 longjmp(catchStack.envs[catchStack.cursor], 1);
4105 }
4106 PRINT_ERROR("Runtime error: %s", "Assert failed");
4107 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1726);
4108 fatal_exit(1);
4109 }
4110 {
4111 { /* Inline model$MProxyType$mtype (self) on <self:MProxyType> */
4112 var5 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
4113 if (unlikely(var5 == NULL)) {
4114 if(catchStack.cursor >= 0){
4115 longjmp(catchStack.envs[catchStack.cursor], 1);
4116 }
4117 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4118 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
4119 fatal_exit(1);
4120 }
4121 var3 = var5;
4122 RET_LABEL4:(void)0;
4123 }
4124 }
4125 {
4126 var6 = ((val*(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__model__MType__collect_mclassdefs]))(var3, var_mmodule); /* collect_mclassdefs on <var3:MType>*/
4127 }
4128 var = var6;
4129 goto RET_LABEL;
4130 RET_LABEL:;
4131 return var;
4132 }
4133 /* method model$MProxyType$collect_mclasses for (self: MProxyType, MModule): Set[MClass] */
4134 val* nitc___nitc__MProxyType___MType__collect_mclasses(val* self, val* p0) {
4135 val* var /* : Set[MClass] */;
4136 val* var_mmodule /* var mmodule: MModule */;
4137 short int var1 /* : Bool */;
4138 short int var2 /* : Bool */;
4139 val* var3 /* : MType */;
4140 val* var5 /* : MType */;
4141 val* var6 /* : Set[MClass] */;
4142 var_mmodule = p0;
4143 {
4144 var1 = nitc___nitc__MProxyType___MType__need_anchor(self);
4145 }
4146 var2 = !var1;
4147 if (unlikely(!var2)) {
4148 if(catchStack.cursor >= 0){
4149 longjmp(catchStack.envs[catchStack.cursor], 1);
4150 }
4151 PRINT_ERROR("Runtime error: %s", "Assert failed");
4152 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1732);
4153 fatal_exit(1);
4154 }
4155 {
4156 { /* Inline model$MProxyType$mtype (self) on <self:MProxyType> */
4157 var5 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
4158 if (unlikely(var5 == NULL)) {
4159 if(catchStack.cursor >= 0){
4160 longjmp(catchStack.envs[catchStack.cursor], 1);
4161 }
4162 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4163 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
4164 fatal_exit(1);
4165 }
4166 var3 = var5;
4167 RET_LABEL4:(void)0;
4168 }
4169 }
4170 {
4171 var6 = ((val*(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__model__MType__collect_mclasses]))(var3, var_mmodule); /* collect_mclasses on <var3:MType>*/
4172 }
4173 var = var6;
4174 goto RET_LABEL;
4175 RET_LABEL:;
4176 return var;
4177 }
4178 /* method model$MProxyType$collect_mtypes for (self: MProxyType, MModule): Set[MClassType] */
4179 val* nitc___nitc__MProxyType___MType__collect_mtypes(val* self, val* p0) {
4180 val* var /* : Set[MClassType] */;
4181 val* var_mmodule /* var mmodule: MModule */;
4182 short int var1 /* : Bool */;
4183 short int var2 /* : Bool */;
4184 val* var3 /* : MType */;
4185 val* var5 /* : MType */;
4186 val* var6 /* : Set[MClassType] */;
4187 var_mmodule = p0;
4188 {
4189 var1 = nitc___nitc__MProxyType___MType__need_anchor(self);
4190 }
4191 var2 = !var1;
4192 if (unlikely(!var2)) {
4193 if(catchStack.cursor >= 0){
4194 longjmp(catchStack.envs[catchStack.cursor], 1);
4195 }
4196 PRINT_ERROR("Runtime error: %s", "Assert failed");
4197 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1738);
4198 fatal_exit(1);
4199 }
4200 {
4201 { /* Inline model$MProxyType$mtype (self) on <self:MProxyType> */
4202 var5 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
4203 if (unlikely(var5 == NULL)) {
4204 if(catchStack.cursor >= 0){
4205 longjmp(catchStack.envs[catchStack.cursor], 1);
4206 }
4207 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4208 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
4209 fatal_exit(1);
4210 }
4211 var3 = var5;
4212 RET_LABEL4:(void)0;
4213 }
4214 }
4215 {
4216 var6 = ((val*(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__model__MType__collect_mtypes]))(var3, var_mmodule); /* collect_mtypes on <var3:MType>*/
4217 }
4218 var = var6;
4219 goto RET_LABEL;
4220 RET_LABEL:;
4221 return var;
4222 }
4223 /* method model$MProxyType$init for (self: MProxyType) */
4224 void nitc___nitc__MProxyType___core__kernel__Object__init(val* self) {
4225 {
4226 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MProxyType___core__kernel__Object__init]))(self); /* init on <self:MProxyType>*/
4227 }
4228 RET_LABEL:;
4229 }
4230 /* method model$MNullableType$init for (self: MNullableType) */
4231 void nitc___nitc__MNullableType___core__kernel__Object__init(val* self) {
4232 val* var /* : NativeArray[String] */;
4233 static val* varonce;
4234 static val* varonce1;
4235 val* var2 /* : String */;
4236 char* var3 /* : CString */;
4237 val* var4 /* : String */;
4238 val* var5 /* : nullable Int */;
4239 val* var6 /* : nullable Int */;
4240 val* var7 /* : nullable Bool */;
4241 val* var8 /* : nullable Bool */;
4242 val* var9 /* : MType */;
4243 val* var11 /* : MType */;
4244 val* var12 /* : String */;
4245 val* var13 /* : String */;
4246 {
4247 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MNullableType___core__kernel__Object__init]))(self); /* init on <self:MNullableType>*/
4248 }
4249 if (unlikely(varonce==NULL)) {
4250 var = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
4251 if (likely(varonce1!=NULL)) {
4252 var2 = varonce1;
4253 } else {
4254 var3 = "nullable ";
4255 var5 = (val*)(9l<<2|1);
4256 var6 = (val*)(9l<<2|1);
4257 var7 = (val*)((long)(0)<<2|3);
4258 var8 = (val*)((long)(0)<<2|3);
4259 var4 = core__flat___CString___to_s_unsafe(var3, var5, var6, var7, var8);
4260 var2 = var4;
4261 varonce1 = var2;
4262 }
4263 ((struct instance_core__NativeArray*)var)->values[0]=var2;
4264 } else {
4265 var = varonce;
4266 varonce = NULL;
4267 }
4268 {
4269 { /* Inline model$MProxyType$mtype (self) on <self:MNullableType> */
4270 var11 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MNullableType> */
4271 if (unlikely(var11 == NULL)) {
4272 if(catchStack.cursor >= 0){
4273 longjmp(catchStack.envs[catchStack.cursor], 1);
4274 }
4275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4276 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
4277 fatal_exit(1);
4278 }
4279 var9 = var11;
4280 RET_LABEL10:(void)0;
4281 }
4282 }
4283 {
4284 var12 = ((val*(*)(val* self))(var9->class->vft[COLOR_core__abstract_text__Object__to_s]))(var9); /* to_s on <var9:MType>*/
4285 }
4286 ((struct instance_core__NativeArray*)var)->values[1]=var12;
4287 {
4288 var13 = ((val*(*)(val* self))(var->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var); /* native_to_s on <var:NativeArray[String]>*/
4289 }
4290 varonce = var;
4291 {
4292 { /* Inline model$MNullableType$to_s= (self,var13) on <self:MNullableType> */
4293 self->attrs[COLOR_nitc__model__MNullableType___to_s].val = var13; /* _to_s on <self:MNullableType> */
4294 RET_LABEL14:(void)0;
4295 }
4296 }
4297 RET_LABEL:;
4298 }
4299 /* method model$MNullableType$to_s for (self: MNullableType): String */
4300 val* nitc___nitc__MNullableType___core__abstract_text__Object__to_s(val* self) {
4301 val* var /* : String */;
4302 val* var1 /* : String */;
4303 var1 = self->attrs[COLOR_nitc__model__MNullableType___to_s].val; /* _to_s on <self:MNullableType> */
4304 if (unlikely(var1 == NULL)) {
4305 if(catchStack.cursor >= 0){
4306 longjmp(catchStack.envs[catchStack.cursor], 1);
4307 }
4308 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
4309 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1752);
4310 fatal_exit(1);
4311 }
4312 var = var1;
4313 RET_LABEL:;
4314 return var;
4315 }
4316 /* method model$MNullableType$to_s= for (self: MNullableType, String) */
4317 void nitc___nitc__MNullableType___to_s_61d(val* self, val* p0) {
4318 self->attrs[COLOR_nitc__model__MNullableType___to_s].val = p0; /* _to_s on <self:MNullableType> */
4319 RET_LABEL:;
4320 }
4321 /* method model$MNullableType$full_name for (self: MNullableType): String */
4322 val* nitc___nitc__MNullableType___nitc__model_base__MEntity__full_name(val* self) {
4323 val* var /* : String */;
4324 short int var1 /* : Bool */;
4325 val* var2 /* : String */;
4326 val* var3 /* : String */;
4327 val* var5 /* : NativeArray[String] */;
4328 static val* varonce;
4329 static val* varonce6;
4330 val* var7 /* : String */;
4331 char* var8 /* : CString */;
4332 val* var9 /* : String */;
4333 val* var10 /* : nullable Int */;
4334 val* var11 /* : nullable Int */;
4335 val* var12 /* : nullable Bool */;
4336 val* var13 /* : nullable Bool */;
4337 val* var14 /* : MType */;
4338 val* var16 /* : MType */;
4339 val* var17 /* : String */;
4340 val* var18 /* : String */;
4341 var1 = self->attrs[COLOR_nitc__model__MNullableType___full_name].val != NULL; /* _full_name on <self:MNullableType> */
4342 if(likely(var1)) {
4343 var2 = self->attrs[COLOR_nitc__model__MNullableType___full_name].val; /* _full_name on <self:MNullableType> */
4344 if (unlikely(var2 == NULL)) {
4345 if(catchStack.cursor >= 0){
4346 longjmp(catchStack.envs[catchStack.cursor], 1);
4347 }
4348 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_name");
4349 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1754);
4350 fatal_exit(1);
4351 }
4352 } else {
4353 {
4354 if (unlikely(varonce==NULL)) {
4355 var5 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
4356 if (likely(varonce6!=NULL)) {
4357 var7 = varonce6;
4358 } else {
4359 var8 = "nullable ";
4360 var10 = (val*)(9l<<2|1);
4361 var11 = (val*)(9l<<2|1);
4362 var12 = (val*)((long)(0)<<2|3);
4363 var13 = (val*)((long)(0)<<2|3);
4364 var9 = core__flat___CString___to_s_unsafe(var8, var10, var11, var12, var13);
4365 var7 = var9;
4366 varonce6 = var7;
4367 }
4368 ((struct instance_core__NativeArray*)var5)->values[0]=var7;
4369 } else {
4370 var5 = varonce;
4371 varonce = NULL;
4372 }
4373 {
4374 { /* Inline model$MProxyType$mtype (self) on <self:MNullableType> */
4375 var16 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MNullableType> */
4376 if (unlikely(var16 == NULL)) {
4377 if(catchStack.cursor >= 0){
4378 longjmp(catchStack.envs[catchStack.cursor], 1);
4379 }
4380 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4381 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
4382 fatal_exit(1);
4383 }
4384 var14 = var16;
4385 RET_LABEL15:(void)0;
4386 }
4387 }
4388 {
4389 var17 = ((val*(*)(val* self))(var14->class->vft[COLOR_nitc__model_base__MEntity__full_name]))(var14); /* full_name on <var14:MType>*/
4390 }
4391 ((struct instance_core__NativeArray*)var5)->values[1]=var17;
4392 {
4393 var18 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var5); /* native_to_s on <var5:NativeArray[String]>*/
4394 }
4395 varonce = var5;
4396 var3 = var18;
4397 goto RET_LABEL4;
4398 RET_LABEL4:(void)0;
4399 }
4400 self->attrs[COLOR_nitc__model__MNullableType___full_name].val = var3; /* _full_name on <self:MNullableType> */
4401 var2 = var3;
4402 }
4403 var = var2;
4404 RET_LABEL:;
4405 return var;
4406 }
4407 /* method model$MNullableType$c_name for (self: MNullableType): String */
4408 val* nitc___nitc__MNullableType___nitc__model_base__MEntity__c_name(val* self) {
4409 val* var /* : String */;
4410 short int var1 /* : Bool */;
4411 val* var2 /* : String */;
4412 val* var3 /* : String */;
4413 val* var5 /* : NativeArray[String] */;
4414 static val* varonce;
4415 static val* varonce6;
4416 val* var7 /* : String */;
4417 char* var8 /* : CString */;
4418 val* var9 /* : String */;
4419 val* var10 /* : nullable Int */;
4420 val* var11 /* : nullable Int */;
4421 val* var12 /* : nullable Bool */;
4422 val* var13 /* : nullable Bool */;
4423 val* var14 /* : MType */;
4424 val* var16 /* : MType */;
4425 val* var17 /* : String */;
4426 val* var18 /* : String */;
4427 var1 = self->attrs[COLOR_nitc__model__MNullableType___c_name].val != NULL; /* _c_name on <self:MNullableType> */
4428 if(likely(var1)) {
4429 var2 = self->attrs[COLOR_nitc__model__MNullableType___c_name].val; /* _c_name on <self:MNullableType> */
4430 if (unlikely(var2 == NULL)) {
4431 if(catchStack.cursor >= 0){
4432 longjmp(catchStack.envs[catchStack.cursor], 1);
4433 }
4434 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_name");
4435 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1756);
4436 fatal_exit(1);
4437 }
4438 } else {
4439 {
4440 if (unlikely(varonce==NULL)) {
4441 var5 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
4442 if (likely(varonce6!=NULL)) {
4443 var7 = varonce6;
4444 } else {
4445 var8 = "nullable__";
4446 var10 = (val*)(10l<<2|1);
4447 var11 = (val*)(10l<<2|1);
4448 var12 = (val*)((long)(0)<<2|3);
4449 var13 = (val*)((long)(0)<<2|3);
4450 var9 = core__flat___CString___to_s_unsafe(var8, var10, var11, var12, var13);
4451 var7 = var9;
4452 varonce6 = var7;
4453 }
4454 ((struct instance_core__NativeArray*)var5)->values[0]=var7;
4455 } else {
4456 var5 = varonce;
4457 varonce = NULL;
4458 }
4459 {
4460 { /* Inline model$MProxyType$mtype (self) on <self:MNullableType> */
4461 var16 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MNullableType> */
4462 if (unlikely(var16 == NULL)) {
4463 if(catchStack.cursor >= 0){
4464 longjmp(catchStack.envs[catchStack.cursor], 1);
4465 }
4466 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4467 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
4468 fatal_exit(1);
4469 }
4470 var14 = var16;
4471 RET_LABEL15:(void)0;
4472 }
4473 }
4474 {
4475 var17 = ((val*(*)(val* self))(var14->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var14); /* c_name on <var14:MType>*/
4476 }
4477 ((struct instance_core__NativeArray*)var5)->values[1]=var17;
4478 {
4479 var18 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var5); /* native_to_s on <var5:NativeArray[String]>*/
4480 }
4481 varonce = var5;
4482 var3 = var18;
4483 goto RET_LABEL4;
4484 RET_LABEL4:(void)0;
4485 }
4486 self->attrs[COLOR_nitc__model__MNullableType___c_name].val = var3; /* _c_name on <self:MNullableType> */
4487 var2 = var3;
4488 }
4489 var = var2;
4490 RET_LABEL:;
4491 return var;
4492 }
4493 /* method model$MNullableType$as_nullable for (self: MNullableType): MType */
4494 val* nitc___nitc__MNullableType___MType__as_nullable(val* self) {
4495 val* var /* : MType */;
4496 var = self;
4497 goto RET_LABEL;
4498 RET_LABEL:;
4499 return var;
4500 }
4501 /* method model$MNullableType$resolve_for for (self: MNullableType, MType, nullable MClassType, MModule, Bool): MType */
4502 val* nitc___nitc__MNullableType___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
4503 val* var /* : MType */;
4504 val* var_mtype /* var mtype: MType */;
4505 val* var_anchor /* var anchor: nullable MClassType */;
4506 val* var_mmodule /* var mmodule: MModule */;
4507 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
4508 val* var1 /* : MType */;
4509 val* var_res /* var res: MType */;
4510 val* var2 /* : MType */;
4511 var_mtype = p0;
4512 var_anchor = p1;
4513 var_mmodule = p2;
4514 var_cleanup_virtual = p3;
4515 {
4516 var1 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(self->class->vft[COLOR_nitc___nitc__MNullableType___MType__resolve_for]))(self, p0, p1, p2, p3); /* resolve_for on <self:MNullableType>*/
4517 }
4518 var_res = var1;
4519 {
4520 var2 = ((val*(*)(val* self))(var_res->class->vft[COLOR_nitc__model__MType__as_nullable]))(var_res); /* as_nullable on <var_res:MType>*/
4521 }
4522 var = var2;
4523 goto RET_LABEL;
4524 RET_LABEL:;
4525 return var;
4526 }
4527 /* method model$MNullableType$lookup_fixed for (self: MNullableType, MModule, MType): MType */
4528 val* nitc___nitc__MNullableType___MType__lookup_fixed(val* self, val* p0, val* p1) {
4529 val* var /* : MType */;
4530 val* var_mmodule /* var mmodule: MModule */;
4531 val* var_resolved_receiver /* var resolved_receiver: MType */;
4532 val* var1 /* : MType */;
4533 val* var_t /* var t: MType */;
4534 val* var2 /* : MType */;
4535 val* var4 /* : MType */;
4536 short int var5 /* : Bool */;
4537 val* var_other /* var other: nullable Object */;
4538 short int var7 /* : Bool */;
4539 short int var9 /* : Bool */;
4540 val* var10 /* : MType */;
4541 var_mmodule = p0;
4542 var_resolved_receiver = p1;
4543 {
4544 var1 = ((val*(*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_nitc___nitc__MNullableType___MType__lookup_fixed]))(self, p0, p1); /* lookup_fixed on <self:MNullableType>*/
4545 }
4546 var_t = var1;
4547 {
4548 { /* Inline model$MProxyType$mtype (self) on <self:MNullableType> */
4549 var4 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MNullableType> */
4550 if (unlikely(var4 == NULL)) {
4551 if(catchStack.cursor >= 0){
4552 longjmp(catchStack.envs[catchStack.cursor], 1);
4553 }
4554 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4555 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
4556 fatal_exit(1);
4557 }
4558 var2 = var4;
4559 RET_LABEL3:(void)0;
4560 }
4561 }
4562 {
4563 { /* Inline kernel$Object$== (var_t,var2) on <var_t:MType> */
4564 var_other = var2;
4565 {
4566 { /* Inline kernel$Object$is_same_instance (var_t,var_other) on <var_t:MType> */
4567 var9 = var_t == var_other;
4568 var7 = var9;
4569 goto RET_LABEL8;
4570 RET_LABEL8:(void)0;
4571 }
4572 }
4573 var5 = var7;
4574 goto RET_LABEL6;
4575 RET_LABEL6:(void)0;
4576 }
4577 }
4578 if (var5){
4579 var = self;
4580 goto RET_LABEL;
4581 } else {
4582 }
4583 {
4584 var10 = ((val*(*)(val* self))(var_t->class->vft[COLOR_nitc__model__MType__as_nullable]))(var_t); /* as_nullable on <var_t:MType>*/
4585 }
4586 var = var10;
4587 goto RET_LABEL;
4588 RET_LABEL:;
4589 return var;
4590 }
4591 /* method model$MNotNullType$to_s for (self: MNotNullType): String */
4592 val* nitc___nitc__MNotNullType___core__abstract_text__Object__to_s(val* self) {
4593 val* var /* : String */;
4594 val* var1 /* : NativeArray[String] */;
4595 static val* varonce;
4596 static val* varonce2;
4597 val* var3 /* : String */;
4598 char* var4 /* : CString */;
4599 val* var5 /* : String */;
4600 val* var6 /* : nullable Int */;
4601 val* var7 /* : nullable Int */;
4602 val* var8 /* : nullable Bool */;
4603 val* var9 /* : nullable Bool */;
4604 val* var10 /* : MType */;
4605 val* var12 /* : MType */;
4606 val* var13 /* : String */;
4607 val* var14 /* : String */;
4608 if (unlikely(varonce==NULL)) {
4609 var1 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
4610 if (likely(varonce2!=NULL)) {
4611 var3 = varonce2;
4612 } else {
4613 var4 = "not null ";
4614 var6 = (val*)(9l<<2|1);
4615 var7 = (val*)(9l<<2|1);
4616 var8 = (val*)((long)(0)<<2|3);
4617 var9 = (val*)((long)(0)<<2|3);
4618 var5 = core__flat___CString___to_s_unsafe(var4, var6, var7, var8, var9);
4619 var3 = var5;
4620 varonce2 = var3;
4621 }
4622 ((struct instance_core__NativeArray*)var1)->values[0]=var3;
4623 } else {
4624 var1 = varonce;
4625 varonce = NULL;
4626 }
4627 {
4628 { /* Inline model$MProxyType$mtype (self) on <self:MNotNullType> */
4629 var12 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MNotNullType> */
4630 if (unlikely(var12 == NULL)) {
4631 if(catchStack.cursor >= 0){
4632 longjmp(catchStack.envs[catchStack.cursor], 1);
4633 }
4634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4635 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
4636 fatal_exit(1);
4637 }
4638 var10 = var12;
4639 RET_LABEL11:(void)0;
4640 }
4641 }
4642 {
4643 var13 = ((val*(*)(val* self))(var10->class->vft[COLOR_core__abstract_text__Object__to_s]))(var10); /* to_s on <var10:MType>*/
4644 }
4645 ((struct instance_core__NativeArray*)var1)->values[1]=var13;
4646 {
4647 var14 = ((val*(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
4648 }
4649 varonce = var1;
4650 var = var14;
4651 goto RET_LABEL;
4652 RET_LABEL:;
4653 return var;
4654 }
4655 /* method model$MNotNullType$full_name for (self: MNotNullType): String */
4656 val* nitc___nitc__MNotNullType___nitc__model_base__MEntity__full_name(val* self) {
4657 val* var /* : String */;
4658 short int var1 /* : Bool */;
4659 val* var2 /* : String */;
4660 val* var3 /* : String */;
4661 val* var5 /* : NativeArray[String] */;
4662 static val* varonce;
4663 static val* varonce6;
4664 val* var7 /* : String */;
4665 char* var8 /* : CString */;
4666 val* var9 /* : String */;
4667 val* var10 /* : nullable Int */;
4668 val* var11 /* : nullable Int */;
4669 val* var12 /* : nullable Bool */;
4670 val* var13 /* : nullable Bool */;
4671 val* var14 /* : MType */;
4672 val* var16 /* : MType */;
4673 val* var17 /* : String */;
4674 val* var18 /* : String */;
4675 var1 = self->attrs[COLOR_nitc__model__MNotNullType___full_name].val != NULL; /* _full_name on <self:MNotNullType> */
4676 if(likely(var1)) {
4677 var2 = self->attrs[COLOR_nitc__model__MNotNullType___full_name].val; /* _full_name on <self:MNotNullType> */
4678 if (unlikely(var2 == NULL)) {
4679 if(catchStack.cursor >= 0){
4680 longjmp(catchStack.envs[catchStack.cursor], 1);
4681 }
4682 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_name");
4683 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1781);
4684 fatal_exit(1);
4685 }
4686 } else {
4687 {
4688 if (unlikely(varonce==NULL)) {
4689 var5 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
4690 if (likely(varonce6!=NULL)) {
4691 var7 = varonce6;
4692 } else {
4693 var8 = "not null ";
4694 var10 = (val*)(9l<<2|1);
4695 var11 = (val*)(9l<<2|1);
4696 var12 = (val*)((long)(0)<<2|3);
4697 var13 = (val*)((long)(0)<<2|3);
4698 var9 = core__flat___CString___to_s_unsafe(var8, var10, var11, var12, var13);
4699 var7 = var9;
4700 varonce6 = var7;
4701 }
4702 ((struct instance_core__NativeArray*)var5)->values[0]=var7;
4703 } else {
4704 var5 = varonce;
4705 varonce = NULL;
4706 }
4707 {
4708 { /* Inline model$MProxyType$mtype (self) on <self:MNotNullType> */
4709 var16 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MNotNullType> */
4710 if (unlikely(var16 == NULL)) {
4711 if(catchStack.cursor >= 0){
4712 longjmp(catchStack.envs[catchStack.cursor], 1);
4713 }
4714 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4715 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
4716 fatal_exit(1);
4717 }
4718 var14 = var16;
4719 RET_LABEL15:(void)0;
4720 }
4721 }
4722 {
4723 var17 = ((val*(*)(val* self))(var14->class->vft[COLOR_nitc__model_base__MEntity__full_name]))(var14); /* full_name on <var14:MType>*/
4724 }
4725 ((struct instance_core__NativeArray*)var5)->values[1]=var17;
4726 {
4727 var18 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var5); /* native_to_s on <var5:NativeArray[String]>*/
4728 }
4729 varonce = var5;
4730 var3 = var18;
4731 goto RET_LABEL4;
4732 RET_LABEL4:(void)0;
4733 }
4734 self->attrs[COLOR_nitc__model__MNotNullType___full_name].val = var3; /* _full_name on <self:MNotNullType> */
4735 var2 = var3;
4736 }
4737 var = var2;
4738 RET_LABEL:;
4739 return var;
4740 }
4741 /* method model$MNotNullType$c_name for (self: MNotNullType): String */
4742 val* nitc___nitc__MNotNullType___nitc__model_base__MEntity__c_name(val* self) {
4743 val* var /* : String */;
4744 short int var1 /* : Bool */;
4745 val* var2 /* : String */;
4746 val* var3 /* : String */;
4747 val* var5 /* : NativeArray[String] */;
4748 static val* varonce;
4749 static val* varonce6;
4750 val* var7 /* : String */;
4751 char* var8 /* : CString */;
4752 val* var9 /* : String */;
4753 val* var10 /* : nullable Int */;
4754 val* var11 /* : nullable Int */;
4755 val* var12 /* : nullable Bool */;
4756 val* var13 /* : nullable Bool */;
4757 val* var14 /* : MType */;
4758 val* var16 /* : MType */;
4759 val* var17 /* : String */;
4760 val* var18 /* : String */;
4761 var1 = self->attrs[COLOR_nitc__model__MNotNullType___c_name].val != NULL; /* _c_name on <self:MNotNullType> */
4762 if(likely(var1)) {
4763 var2 = self->attrs[COLOR_nitc__model__MNotNullType___c_name].val; /* _c_name on <self:MNotNullType> */
4764 if (unlikely(var2 == NULL)) {
4765 if(catchStack.cursor >= 0){
4766 longjmp(catchStack.envs[catchStack.cursor], 1);
4767 }
4768 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_name");
4769 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1782);
4770 fatal_exit(1);
4771 }
4772 } else {
4773 {
4774 if (unlikely(varonce==NULL)) {
4775 var5 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
4776 if (likely(varonce6!=NULL)) {
4777 var7 = varonce6;
4778 } else {
4779 var8 = "notnull__";
4780 var10 = (val*)(9l<<2|1);
4781 var11 = (val*)(9l<<2|1);
4782 var12 = (val*)((long)(0)<<2|3);
4783 var13 = (val*)((long)(0)<<2|3);
4784 var9 = core__flat___CString___to_s_unsafe(var8, var10, var11, var12, var13);
4785 var7 = var9;
4786 varonce6 = var7;
4787 }
4788 ((struct instance_core__NativeArray*)var5)->values[0]=var7;
4789 } else {
4790 var5 = varonce;
4791 varonce = NULL;
4792 }
4793 {
4794 { /* Inline model$MProxyType$mtype (self) on <self:MNotNullType> */
4795 var16 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MNotNullType> */
4796 if (unlikely(var16 == NULL)) {
4797 if(catchStack.cursor >= 0){
4798 longjmp(catchStack.envs[catchStack.cursor], 1);
4799 }
4800 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4801 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
4802 fatal_exit(1);
4803 }
4804 var14 = var16;
4805 RET_LABEL15:(void)0;
4806 }
4807 }
4808 {
4809 var17 = ((val*(*)(val* self))(var14->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var14); /* c_name on <var14:MType>*/
4810 }
4811 ((struct instance_core__NativeArray*)var5)->values[1]=var17;
4812 {
4813 var18 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var5); /* native_to_s on <var5:NativeArray[String]>*/
4814 }
4815 varonce = var5;
4816 var3 = var18;
4817 goto RET_LABEL4;
4818 RET_LABEL4:(void)0;
4819 }
4820 self->attrs[COLOR_nitc__model__MNotNullType___c_name].val = var3; /* _c_name on <self:MNotNullType> */
4821 var2 = var3;
4822 }
4823 var = var2;
4824 RET_LABEL:;
4825 return var;
4826 }
4827 /* method model$MNotNullType$as_notnull for (self: MNotNullType): MType */
4828 val* nitc___nitc__MNotNullType___MType__as_notnull(val* self) {
4829 val* var /* : MType */;
4830 var = self;
4831 goto RET_LABEL;
4832 RET_LABEL:;
4833 return var;
4834 }
4835 /* method model$MNotNullType$resolve_for for (self: MNotNullType, MType, nullable MClassType, MModule, Bool): MType */
4836 val* nitc___nitc__MNotNullType___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
4837 val* var /* : MType */;
4838 val* var_mtype /* var mtype: MType */;
4839 val* var_anchor /* var anchor: nullable MClassType */;
4840 val* var_mmodule /* var mmodule: MModule */;
4841 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
4842 val* var1 /* : MType */;
4843 val* var_res /* var res: MType */;
4844 val* var2 /* : MType */;
4845 var_mtype = p0;
4846 var_anchor = p1;
4847 var_mmodule = p2;
4848 var_cleanup_virtual = p3;
4849 {
4850 var1 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(self->class->vft[COLOR_nitc___nitc__MNotNullType___MType__resolve_for]))(self, p0, p1, p2, p3); /* resolve_for on <self:MNotNullType>*/
4851 }
4852 var_res = var1;
4853 {
4854 var2 = ((val*(*)(val* self))(var_res->class->vft[COLOR_nitc__model__MType__as_notnull]))(var_res); /* as_notnull on <var_res:MType>*/
4855 }
4856 var = var2;
4857 goto RET_LABEL;
4858 RET_LABEL:;
4859 return var;
4860 }
4861 /* method model$MNotNullType$lookup_fixed for (self: MNotNullType, MModule, MType): MType */
4862 val* nitc___nitc__MNotNullType___MType__lookup_fixed(val* self, val* p0, val* p1) {
4863 val* var /* : MType */;
4864 val* var_mmodule /* var mmodule: MModule */;
4865 val* var_resolved_receiver /* var resolved_receiver: MType */;
4866 val* var1 /* : MType */;
4867 val* var_t /* var t: MType */;
4868 val* var2 /* : MType */;
4869 val* var4 /* : MType */;
4870 short int var5 /* : Bool */;
4871 val* var_other /* var other: nullable Object */;
4872 short int var7 /* : Bool */;
4873 short int var9 /* : Bool */;
4874 val* var10 /* : MType */;
4875 var_mmodule = p0;
4876 var_resolved_receiver = p1;
4877 {
4878 var1 = ((val*(*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_nitc___nitc__MNotNullType___MType__lookup_fixed]))(self, p0, p1); /* lookup_fixed on <self:MNotNullType>*/
4879 }
4880 var_t = var1;
4881 {
4882 { /* Inline model$MProxyType$mtype (self) on <self:MNotNullType> */
4883 var4 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MNotNullType> */
4884 if (unlikely(var4 == NULL)) {
4885 if(catchStack.cursor >= 0){
4886 longjmp(catchStack.envs[catchStack.cursor], 1);
4887 }
4888 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4889 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1689);
4890 fatal_exit(1);
4891 }
4892 var2 = var4;
4893 RET_LABEL3:(void)0;
4894 }
4895 }
4896 {
4897 { /* Inline kernel$Object$== (var_t,var2) on <var_t:MType> */
4898 var_other = var2;
4899 {
4900 { /* Inline kernel$Object$is_same_instance (var_t,var_other) on <var_t:MType> */
4901 var9 = var_t == var_other;
4902 var7 = var9;
4903 goto RET_LABEL8;
4904 RET_LABEL8:(void)0;
4905 }
4906 }
4907 var5 = var7;
4908 goto RET_LABEL6;
4909 RET_LABEL6:(void)0;
4910 }
4911 }
4912 if (var5){
4913 var = self;
4914 goto RET_LABEL;
4915 } else {
4916 }
4917 {
4918 var10 = ((val*(*)(val* self))(var_t->class->vft[COLOR_nitc__model__MType__as_notnull]))(var_t); /* as_notnull on <var_t:MType>*/
4919 }
4920 var = var10;
4921 goto RET_LABEL;
4922 RET_LABEL:;
4923 return var;
4924 }
4925 /* method model$MNullType$model for (self: MNullType): Model */
4926 val* nitc___nitc__MNullType___nitc__model_base__MEntity__model(val* self) {
4927 val* var /* : Model */;
4928 val* var1 /* : Model */;
4929 var1 = self->attrs[COLOR_nitc__model__MNullType___model].val; /* _model on <self:MNullType> */
4930 if (unlikely(var1 == NULL)) {
4931 if(catchStack.cursor >= 0){
4932 longjmp(catchStack.envs[catchStack.cursor], 1);
4933 }
4934 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
4935 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1806);
4936 fatal_exit(1);
4937 }
4938 var = var1;
4939 RET_LABEL:;
4940 return var;
4941 }
4942 /* method model$MNullType$model= for (self: MNullType, Model) */
4943 void nitc___nitc__MNullType___model_61d(val* self, val* p0) {
4944 self->attrs[COLOR_nitc__model__MNullType___model].val = p0; /* _model on <self:MNullType> */
4945 RET_LABEL:;
4946 }
4947 /* method model$MNullType$to_s for (self: MNullType): String */
4948 val* nitc___nitc__MNullType___core__abstract_text__Object__to_s(val* self) {
4949 val* var /* : String */;
4950 static val* varonce;
4951 val* var1 /* : String */;
4952 char* var2 /* : CString */;
4953 val* var3 /* : String */;
4954 val* var4 /* : nullable Int */;
4955 val* var5 /* : nullable Int */;
4956 val* var6 /* : nullable Bool */;
4957 val* var7 /* : nullable Bool */;
4958 if (likely(varonce!=NULL)) {
4959 var1 = varonce;
4960 } else {
4961 var2 = "null";
4962 var4 = (val*)(4l<<2|1);
4963 var5 = (val*)(4l<<2|1);
4964 var6 = (val*)((long)(0)<<2|3);
4965 var7 = (val*)((long)(0)<<2|3);
4966 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
4967 var1 = var3;
4968 varonce = var1;
4969 }
4970 var = var1;
4971 goto RET_LABEL;
4972 RET_LABEL:;
4973 return var;
4974 }
4975 /* method model$MNullType$full_name for (self: MNullType): String */
4976 val* nitc___nitc__MNullType___nitc__model_base__MEntity__full_name(val* self) {
4977 val* var /* : String */;
4978 static val* varonce;
4979 val* var1 /* : String */;
4980 char* var2 /* : CString */;
4981 val* var3 /* : String */;
4982 val* var4 /* : nullable Int */;
4983 val* var5 /* : nullable Int */;
4984 val* var6 /* : nullable Bool */;
4985 val* var7 /* : nullable Bool */;
4986 if (likely(varonce!=NULL)) {
4987 var1 = varonce;
4988 } else {
4989 var2 = "null";
4990 var4 = (val*)(4l<<2|1);
4991 var5 = (val*)(4l<<2|1);
4992 var6 = (val*)((long)(0)<<2|3);
4993 var7 = (val*)((long)(0)<<2|3);
4994 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
4995 var1 = var3;
4996 varonce = var1;
4997 }
4998 var = var1;
4999 goto RET_LABEL;
5000 RET_LABEL:;
5001 return var;
5002 }
5003 /* method model$MNullType$c_name for (self: MNullType): String */
5004 val* nitc___nitc__MNullType___nitc__model_base__MEntity__c_name(val* self) {
5005 val* var /* : String */;
5006 static val* varonce;
5007 val* var1 /* : String */;
5008 char* var2 /* : CString */;
5009 val* var3 /* : String */;
5010 val* var4 /* : nullable Int */;
5011 val* var5 /* : nullable Int */;
5012 val* var6 /* : nullable Bool */;
5013 val* var7 /* : nullable Bool */;
5014 if (likely(varonce!=NULL)) {
5015 var1 = varonce;
5016 } else {
5017 var2 = "null";
5018 var4 = (val*)(4l<<2|1);
5019 var5 = (val*)(4l<<2|1);
5020 var6 = (val*)((long)(0)<<2|3);
5021 var7 = (val*)((long)(0)<<2|3);
5022 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
5023 var1 = var3;
5024 varonce = var1;
5025 }
5026 var = var1;
5027 goto RET_LABEL;
5028 RET_LABEL:;
5029 return var;
5030 }
5031 /* method model$MNullType$as_nullable for (self: MNullType): MType */
5032 val* nitc___nitc__MNullType___MType__as_nullable(val* self) {
5033 val* var /* : MType */;
5034 var = self;
5035 goto RET_LABEL;
5036 RET_LABEL:;
5037 return var;
5038 }
5039 /* method model$MNullType$as_notnull for (self: MNullType): MType */
5040 val* nitc___nitc__MNullType___MType__as_notnull(val* self) {
5041 val* var /* : MType */;
5042 short int var1 /* : Bool */;
5043 val* var2 /* : MType */;
5044 val* var3 /* : MBottomType */;
5045 val* var4 /* : Model */;
5046 val* var6 /* : Model */;
5047 var1 = self->attrs[COLOR_nitc__model__MNullType___as_notnull].val != NULL; /* _as_notnull on <self:MNullType> */
5048 if(likely(var1)) {
5049 var2 = self->attrs[COLOR_nitc__model__MNullType___as_notnull].val; /* _as_notnull on <self:MNullType> */
5050 if (unlikely(var2 == NULL)) {
5051 if(catchStack.cursor >= 0){
5052 longjmp(catchStack.envs[catchStack.cursor], 1);
5053 }
5054 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _as_notnull");
5055 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1812);
5056 fatal_exit(1);
5057 }
5058 } else {
5059 var3 = NEW_nitc__MBottomType(&type_nitc__MBottomType);
5060 {
5061 { /* Inline model$MNullType$model (self) on <self:MNullType> */
5062 var6 = self->attrs[COLOR_nitc__model__MNullType___model].val; /* _model on <self:MNullType> */
5063 if (unlikely(var6 == NULL)) {
5064 if(catchStack.cursor >= 0){
5065 longjmp(catchStack.envs[catchStack.cursor], 1);
5066 }
5067 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
5068 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1806);
5069 fatal_exit(1);
5070 }
5071 var4 = var6;
5072 RET_LABEL5:(void)0;
5073 }
5074 }
5075 {
5076 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__model__MBottomType__model_61d]))(var3, var4); /* model= on <var3:MBottomType>*/
5077 }
5078 {
5079 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:MBottomType>*/
5080 }
5081 self->attrs[COLOR_nitc__model__MNullType___as_notnull].val = var3; /* _as_notnull on <self:MNullType> */
5082 var2 = var3;
5083 }
5084 var = var2;
5085 RET_LABEL:;
5086 return var;
5087 }
5088 /* method model$MNullType$need_anchor for (self: MNullType): Bool */
5089 short int nitc___nitc__MNullType___MType__need_anchor(val* self) {
5090 short int var /* : Bool */;
5091 var = 0;
5092 goto RET_LABEL;
5093 RET_LABEL:;
5094 return var;
5095 }
5096 /* method model$MNullType$resolve_for for (self: MNullType, MType, nullable MClassType, MModule, Bool): MType */
5097 val* nitc___nitc__MNullType___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
5098 val* var /* : MType */;
5099 val* var_mtype /* var mtype: MType */;
5100 val* var_anchor /* var anchor: nullable MClassType */;
5101 val* var_mmodule /* var mmodule: MModule */;
5102 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
5103 var_mtype = p0;
5104 var_anchor = p1;
5105 var_mmodule = p2;
5106 var_cleanup_virtual = p3;
5107 var = self;
5108 goto RET_LABEL;
5109 RET_LABEL:;
5110 return var;
5111 }
5112 /* method model$MNullType$can_resolve_for for (self: MNullType, MType, nullable MClassType, MModule): Bool */
5113 short int nitc___nitc__MNullType___MType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
5114 short int var /* : Bool */;
5115 val* var_mtype /* var mtype: MType */;
5116 val* var_anchor /* var anchor: nullable MClassType */;
5117 val* var_mmodule /* var mmodule: MModule */;
5118 var_mtype = p0;
5119 var_anchor = p1;
5120 var_mmodule = p2;
5121 var = 1;
5122 goto RET_LABEL;
5123 RET_LABEL:;
5124 return var;
5125 }
5126 /* method model$MNullType$collect_mclassdefs for (self: MNullType, MModule): Set[MClassDef] */
5127 val* nitc___nitc__MNullType___MType__collect_mclassdefs(val* self, val* p0) {
5128 val* var /* : Set[MClassDef] */;
5129 val* var_mmodule /* var mmodule: MModule */;
5130 val* var1 /* : HashSet[MClassDef] */;
5131 var_mmodule = p0;
5132 var1 = NEW_core__HashSet(&type_core__HashSet__nitc__MClassDef);
5133 {
5134 core___core__HashSet___core__kernel__Object__init(var1); /* Direct call hash_collection$HashSet$init on <var1:HashSet[MClassDef]>*/
5135 }
5136 var = var1;
5137 goto RET_LABEL;
5138 RET_LABEL:;
5139 return var;
5140 }
5141 /* method model$MNullType$collect_mclasses for (self: MNullType, MModule): Set[MClass] */
5142 val* nitc___nitc__MNullType___MType__collect_mclasses(val* self, val* p0) {
5143 val* var /* : Set[MClass] */;
5144 val* var_mmodule /* var mmodule: MModule */;
5145 val* var1 /* : HashSet[MClass] */;
5146 var_mmodule = p0;
5147 var1 = NEW_core__HashSet(&type_core__HashSet__nitc__MClass);
5148 {
5149 core___core__HashSet___core__kernel__Object__init(var1); /* Direct call hash_collection$HashSet$init on <var1:HashSet[MClass]>*/
5150 }
5151 var = var1;
5152 goto RET_LABEL;
5153 RET_LABEL:;
5154 return var;
5155 }
5156 /* method model$MNullType$collect_mtypes for (self: MNullType, MModule): Set[MClassType] */
5157 val* nitc___nitc__MNullType___MType__collect_mtypes(val* self, val* p0) {
5158 val* var /* : Set[MClassType] */;
5159 val* var_mmodule /* var mmodule: MModule */;
5160 val* var1 /* : HashSet[MClassType] */;
5161 var_mmodule = p0;
5162 var1 = NEW_core__HashSet(&type_core__HashSet__nitc__MClassType);
5163 {
5164 core___core__HashSet___core__kernel__Object__init(var1); /* Direct call hash_collection$HashSet$init on <var1:HashSet[MClassType]>*/
5165 }
5166 var = var1;
5167 goto RET_LABEL;
5168 RET_LABEL:;
5169 return var;
5170 }
5171 /* method model$MNullType$init for (self: MNullType) */
5172 void nitc___nitc__MNullType___core__kernel__Object__init(val* self) {
5173 {
5174 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MNullType___core__kernel__Object__init]))(self); /* init on <self:MNullType>*/
5175 }
5176 RET_LABEL:;
5177 }
5178 /* method model$MBottomType$model for (self: MBottomType): Model */
5179 val* nitc___nitc__MBottomType___nitc__model_base__MEntity__model(val* self) {
5180 val* var /* : Model */;
5181 val* var1 /* : Model */;
5182 var1 = self->attrs[COLOR_nitc__model__MBottomType___model].val; /* _model on <self:MBottomType> */
5183 if (unlikely(var1 == NULL)) {
5184 if(catchStack.cursor >= 0){
5185 longjmp(catchStack.envs[catchStack.cursor], 1);
5186 }
5187 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
5188 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1833);
5189 fatal_exit(1);
5190 }
5191 var = var1;
5192 RET_LABEL:;
5193 return var;
5194 }
5195 /* method model$MBottomType$model= for (self: MBottomType, Model) */
5196 void nitc___nitc__MBottomType___model_61d(val* self, val* p0) {
5197 self->attrs[COLOR_nitc__model__MBottomType___model].val = p0; /* _model on <self:MBottomType> */
5198 RET_LABEL:;
5199 }
5200 /* method model$MBottomType$to_s for (self: MBottomType): String */
5201 val* nitc___nitc__MBottomType___core__abstract_text__Object__to_s(val* self) {
5202 val* var /* : String */;
5203 static val* varonce;
5204 val* var1 /* : String */;
5205 char* var2 /* : CString */;
5206 val* var3 /* : String */;
5207 val* var4 /* : nullable Int */;
5208 val* var5 /* : nullable Int */;
5209 val* var6 /* : nullable Bool */;
5210 val* var7 /* : nullable Bool */;
5211 if (likely(varonce!=NULL)) {
5212 var1 = varonce;
5213 } else {
5214 var2 = "bottom";
5215 var4 = (val*)(6l<<2|1);
5216 var5 = (val*)(6l<<2|1);
5217 var6 = (val*)((long)(0)<<2|3);
5218 var7 = (val*)((long)(0)<<2|3);
5219 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
5220 var1 = var3;
5221 varonce = var1;
5222 }
5223 var = var1;
5224 goto RET_LABEL;
5225 RET_LABEL:;
5226 return var;
5227 }
5228 /* method model$MBottomType$full_name for (self: MBottomType): String */
5229 val* nitc___nitc__MBottomType___nitc__model_base__MEntity__full_name(val* self) {
5230 val* var /* : String */;
5231 static val* varonce;
5232 val* var1 /* : String */;
5233 char* var2 /* : CString */;
5234 val* var3 /* : String */;
5235 val* var4 /* : nullable Int */;
5236 val* var5 /* : nullable Int */;
5237 val* var6 /* : nullable Bool */;
5238 val* var7 /* : nullable Bool */;
5239 if (likely(varonce!=NULL)) {
5240 var1 = varonce;
5241 } else {
5242 var2 = "bottom";
5243 var4 = (val*)(6l<<2|1);
5244 var5 = (val*)(6l<<2|1);
5245 var6 = (val*)((long)(0)<<2|3);
5246 var7 = (val*)((long)(0)<<2|3);
5247 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
5248 var1 = var3;
5249 varonce = var1;
5250 }
5251 var = var1;
5252 goto RET_LABEL;
5253 RET_LABEL:;
5254 return var;
5255 }
5256 /* method model$MBottomType$c_name for (self: MBottomType): String */
5257 val* nitc___nitc__MBottomType___nitc__model_base__MEntity__c_name(val* self) {
5258 val* var /* : String */;
5259 static val* varonce;
5260 val* var1 /* : String */;
5261 char* var2 /* : CString */;
5262 val* var3 /* : String */;
5263 val* var4 /* : nullable Int */;
5264 val* var5 /* : nullable Int */;
5265 val* var6 /* : nullable Bool */;
5266 val* var7 /* : nullable Bool */;
5267 if (likely(varonce!=NULL)) {
5268 var1 = varonce;
5269 } else {
5270 var2 = "bottom";
5271 var4 = (val*)(6l<<2|1);
5272 var5 = (val*)(6l<<2|1);
5273 var6 = (val*)((long)(0)<<2|3);
5274 var7 = (val*)((long)(0)<<2|3);
5275 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
5276 var1 = var3;
5277 varonce = var1;
5278 }
5279 var = var1;
5280 goto RET_LABEL;
5281 RET_LABEL:;
5282 return var;
5283 }
5284 /* method model$MBottomType$as_nullable for (self: MBottomType): MType */
5285 val* nitc___nitc__MBottomType___MType__as_nullable(val* self) {
5286 val* var /* : MType */;
5287 val* var1 /* : Model */;
5288 val* var3 /* : Model */;
5289 val* var4 /* : MNullType */;
5290 val* var6 /* : MNullType */;
5291 {
5292 { /* Inline model$MBottomType$model (self) on <self:MBottomType> */
5293 var3 = self->attrs[COLOR_nitc__model__MBottomType___model].val; /* _model on <self:MBottomType> */
5294 if (unlikely(var3 == NULL)) {
5295 if(catchStack.cursor >= 0){
5296 longjmp(catchStack.envs[catchStack.cursor], 1);
5297 }
5298 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
5299 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1833);
5300 fatal_exit(1);
5301 }
5302 var1 = var3;
5303 RET_LABEL2:(void)0;
5304 }
5305 }
5306 {
5307 { /* Inline model$Model$null_type (var1) on <var1:Model> */
5308 var6 = var1->attrs[COLOR_nitc__model__Model___null_type].val; /* _null_type on <var1:Model> */
5309 if (unlikely(var6 == NULL)) {
5310 if(catchStack.cursor >= 0){
5311 longjmp(catchStack.envs[catchStack.cursor], 1);
5312 }
5313 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _null_type");
5314 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 103);
5315 fatal_exit(1);
5316 }
5317 var4 = var6;
5318 RET_LABEL5:(void)0;
5319 }
5320 }
5321 var = var4;
5322 goto RET_LABEL;
5323 RET_LABEL:;
5324 return var;
5325 }
5326 /* method model$MBottomType$as_notnull for (self: MBottomType): MType */
5327 val* nitc___nitc__MBottomType___MType__as_notnull(val* self) {
5328 val* var /* : MType */;
5329 var = self;
5330 goto RET_LABEL;
5331 RET_LABEL:;
5332 return var;
5333 }
5334 /* method model$MBottomType$need_anchor for (self: MBottomType): Bool */
5335 short int nitc___nitc__MBottomType___MType__need_anchor(val* self) {
5336 short int var /* : Bool */;
5337 var = 0;
5338 goto RET_LABEL;
5339 RET_LABEL:;
5340 return var;
5341 }
5342 /* method model$MBottomType$resolve_for for (self: MBottomType, MType, nullable MClassType, MModule, Bool): MType */
5343 val* nitc___nitc__MBottomType___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
5344 val* var /* : MType */;
5345 val* var_mtype /* var mtype: MType */;
5346 val* var_anchor /* var anchor: nullable MClassType */;
5347 val* var_mmodule /* var mmodule: MModule */;
5348 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
5349 var_mtype = p0;
5350 var_anchor = p1;
5351 var_mmodule = p2;
5352 var_cleanup_virtual = p3;
5353 var = self;
5354 goto RET_LABEL;
5355 RET_LABEL:;
5356 return var;
5357 }
5358 /* method model$MBottomType$can_resolve_for for (self: MBottomType, MType, nullable MClassType, MModule): Bool */
5359 short int nitc___nitc__MBottomType___MType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
5360 short int var /* : Bool */;
5361 val* var_mtype /* var mtype: MType */;
5362 val* var_anchor /* var anchor: nullable MClassType */;
5363 val* var_mmodule /* var mmodule: MModule */;
5364 var_mtype = p0;
5365 var_anchor = p1;
5366 var_mmodule = p2;
5367 var = 1;
5368 goto RET_LABEL;
5369 RET_LABEL:;
5370 return var;
5371 }
5372 /* method model$MBottomType$collect_mclassdefs for (self: MBottomType, MModule): Set[MClassDef] */
5373 val* nitc___nitc__MBottomType___MType__collect_mclassdefs(val* self, val* p0) {
5374 val* var /* : Set[MClassDef] */;
5375 val* var_mmodule /* var mmodule: MModule */;
5376 val* var1 /* : HashSet[MClassDef] */;
5377 var_mmodule = p0;
5378 var1 = NEW_core__HashSet(&type_core__HashSet__nitc__MClassDef);
5379 {
5380 core___core__HashSet___core__kernel__Object__init(var1); /* Direct call hash_collection$HashSet$init on <var1:HashSet[MClassDef]>*/
5381 }
5382 var = var1;
5383 goto RET_LABEL;
5384 RET_LABEL:;
5385 return var;
5386 }
5387 /* method model$MBottomType$collect_mclasses for (self: MBottomType, MModule): Set[MClass] */
5388 val* nitc___nitc__MBottomType___MType__collect_mclasses(val* self, val* p0) {
5389 val* var /* : Set[MClass] */;
5390 val* var_mmodule /* var mmodule: MModule */;
5391 val* var1 /* : HashSet[MClass] */;
5392 var_mmodule = p0;
5393 var1 = NEW_core__HashSet(&type_core__HashSet__nitc__MClass);
5394 {
5395 core___core__HashSet___core__kernel__Object__init(var1); /* Direct call hash_collection$HashSet$init on <var1:HashSet[MClass]>*/
5396 }
5397 var = var1;
5398 goto RET_LABEL;
5399 RET_LABEL:;
5400 return var;
5401 }
5402 /* method model$MBottomType$collect_mtypes for (self: MBottomType, MModule): Set[MClassType] */
5403 val* nitc___nitc__MBottomType___MType__collect_mtypes(val* self, val* p0) {
5404 val* var /* : Set[MClassType] */;
5405 val* var_mmodule /* var mmodule: MModule */;
5406 val* var1 /* : HashSet[MClassType] */;
5407 var_mmodule = p0;
5408 var1 = NEW_core__HashSet(&type_core__HashSet__nitc__MClassType);
5409 {
5410 core___core__HashSet___core__kernel__Object__init(var1); /* Direct call hash_collection$HashSet$init on <var1:HashSet[MClassType]>*/
5411 }
5412 var = var1;
5413 goto RET_LABEL;
5414 RET_LABEL:;
5415 return var;
5416 }
5417 /* method model$MBottomType$init for (self: MBottomType) */
5418 void nitc___nitc__MBottomType___core__kernel__Object__init(val* self) {
5419 {
5420 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MBottomType___core__kernel__Object__init]))(self); /* init on <self:MBottomType>*/
5421 }
5422 RET_LABEL:;
5423 }
5424 /* method model$MErrorType$model for (self: MErrorType): Model */
5425 val* nitc___nitc__MErrorType___nitc__model_base__MEntity__model(val* self) {
5426 val* var /* : Model */;
5427 val* var1 /* : Model */;
5428 var1 = self->attrs[COLOR_nitc__model__MErrorType___model].val; /* _model on <self:MErrorType> */
5429 if (unlikely(var1 == NULL)) {
5430 if(catchStack.cursor >= 0){
5431 longjmp(catchStack.envs[catchStack.cursor], 1);
5432 }
5433 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
5434 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1859);
5435 fatal_exit(1);
5436 }
5437 var = var1;
5438 RET_LABEL:;
5439 return var;
5440 }
5441 /* method model$MErrorType$model= for (self: MErrorType, Model) */
5442 void nitc___nitc__MErrorType___model_61d(val* self, val* p0) {
5443 self->attrs[COLOR_nitc__model__MErrorType___model].val = p0; /* _model on <self:MErrorType> */
5444 RET_LABEL:;
5445 }
5446 /* method model$MErrorType$to_s for (self: MErrorType): String */
5447 val* nitc___nitc__MErrorType___core__abstract_text__Object__to_s(val* self) {
5448 val* var /* : String */;
5449 static val* varonce;
5450 val* var1 /* : String */;
5451 char* var2 /* : CString */;
5452 val* var3 /* : String */;
5453 val* var4 /* : nullable Int */;
5454 val* var5 /* : nullable Int */;
5455 val* var6 /* : nullable Bool */;
5456 val* var7 /* : nullable Bool */;
5457 if (likely(varonce!=NULL)) {
5458 var1 = varonce;
5459 } else {
5460 var2 = "error";
5461 var4 = (val*)(5l<<2|1);
5462 var5 = (val*)(5l<<2|1);
5463 var6 = (val*)((long)(0)<<2|3);
5464 var7 = (val*)((long)(0)<<2|3);
5465 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
5466 var1 = var3;
5467 varonce = var1;
5468 }
5469 var = var1;
5470 goto RET_LABEL;
5471 RET_LABEL:;
5472 return var;
5473 }
5474 /* method model$MErrorType$full_name for (self: MErrorType): String */
5475 val* nitc___nitc__MErrorType___nitc__model_base__MEntity__full_name(val* self) {
5476 val* var /* : String */;
5477 static val* varonce;
5478 val* var1 /* : String */;
5479 char* var2 /* : CString */;
5480 val* var3 /* : String */;
5481 val* var4 /* : nullable Int */;
5482 val* var5 /* : nullable Int */;
5483 val* var6 /* : nullable Bool */;
5484 val* var7 /* : nullable Bool */;
5485 if (likely(varonce!=NULL)) {
5486 var1 = varonce;
5487 } else {
5488 var2 = "error";
5489 var4 = (val*)(5l<<2|1);
5490 var5 = (val*)(5l<<2|1);
5491 var6 = (val*)((long)(0)<<2|3);
5492 var7 = (val*)((long)(0)<<2|3);
5493 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
5494 var1 = var3;
5495 varonce = var1;
5496 }
5497 var = var1;
5498 goto RET_LABEL;
5499 RET_LABEL:;
5500 return var;
5501 }
5502 /* method model$MErrorType$c_name for (self: MErrorType): String */
5503 val* nitc___nitc__MErrorType___nitc__model_base__MEntity__c_name(val* self) {
5504 val* var /* : String */;
5505 static val* varonce;
5506 val* var1 /* : String */;
5507 char* var2 /* : CString */;
5508 val* var3 /* : String */;
5509 val* var4 /* : nullable Int */;
5510 val* var5 /* : nullable Int */;
5511 val* var6 /* : nullable Bool */;
5512 val* var7 /* : nullable Bool */;
5513 if (likely(varonce!=NULL)) {
5514 var1 = varonce;
5515 } else {
5516 var2 = "error";
5517 var4 = (val*)(5l<<2|1);
5518 var5 = (val*)(5l<<2|1);
5519 var6 = (val*)((long)(0)<<2|3);
5520 var7 = (val*)((long)(0)<<2|3);
5521 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
5522 var1 = var3;
5523 varonce = var1;
5524 }
5525 var = var1;
5526 goto RET_LABEL;
5527 RET_LABEL:;
5528 return var;
5529 }
5530 /* method model$MErrorType$need_anchor for (self: MErrorType): Bool */
5531 short int nitc___nitc__MErrorType___MType__need_anchor(val* self) {
5532 short int var /* : Bool */;
5533 var = 0;
5534 goto RET_LABEL;
5535 RET_LABEL:;
5536 return var;
5537 }
5538 /* method model$MErrorType$resolve_for for (self: MErrorType, MType, nullable MClassType, MModule, Bool): MType */
5539 val* nitc___nitc__MErrorType___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
5540 val* var /* : MType */;
5541 val* var_mtype /* var mtype: MType */;
5542 val* var_anchor /* var anchor: nullable MClassType */;
5543 val* var_mmodule /* var mmodule: MModule */;
5544 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
5545 var_mtype = p0;
5546 var_anchor = p1;
5547 var_mmodule = p2;
5548 var_cleanup_virtual = p3;
5549 var = self;
5550 goto RET_LABEL;
5551 RET_LABEL:;
5552 return var;
5553 }
5554 /* method model$MErrorType$can_resolve_for for (self: MErrorType, MType, nullable MClassType, MModule): Bool */
5555 short int nitc___nitc__MErrorType___MType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
5556 short int var /* : Bool */;
5557 val* var_mtype /* var mtype: MType */;
5558 val* var_anchor /* var anchor: nullable MClassType */;
5559 val* var_mmodule /* var mmodule: MModule */;
5560 var_mtype = p0;
5561 var_anchor = p1;
5562 var_mmodule = p2;
5563 var = 1;
5564 goto RET_LABEL;
5565 RET_LABEL:;
5566 return var;
5567 }
5568 /* method model$MErrorType$is_ok for (self: MErrorType): Bool */
5569 short int nitc___nitc__MErrorType___MType__is_ok(val* self) {
5570 short int var /* : Bool */;
5571 var = 0;
5572 goto RET_LABEL;
5573 RET_LABEL:;
5574 return var;
5575 }
5576 /* method model$MErrorType$collect_mclassdefs for (self: MErrorType, MModule): Set[MClassDef] */
5577 val* nitc___nitc__MErrorType___MType__collect_mclassdefs(val* self, val* p0) {
5578 val* var /* : Set[MClassDef] */;
5579 val* var_mmodule /* var mmodule: MModule */;
5580 val* var1 /* : HashSet[MClassDef] */;
5581 var_mmodule = p0;
5582 var1 = NEW_core__HashSet(&type_core__HashSet__nitc__MClassDef);
5583 {
5584 core___core__HashSet___core__kernel__Object__init(var1); /* Direct call hash_collection$HashSet$init on <var1:HashSet[MClassDef]>*/
5585 }
5586 var = var1;
5587 goto RET_LABEL;
5588 RET_LABEL:;
5589 return var;
5590 }
5591 /* method model$MErrorType$collect_mclasses for (self: MErrorType, MModule): Set[MClass] */
5592 val* nitc___nitc__MErrorType___MType__collect_mclasses(val* self, val* p0) {
5593 val* var /* : Set[MClass] */;
5594 val* var_mmodule /* var mmodule: MModule */;
5595 val* var1 /* : HashSet[MClass] */;
5596 var_mmodule = p0;
5597 var1 = NEW_core__HashSet(&type_core__HashSet__nitc__MClass);
5598 {
5599 core___core__HashSet___core__kernel__Object__init(var1); /* Direct call hash_collection$HashSet$init on <var1:HashSet[MClass]>*/
5600 }
5601 var = var1;
5602 goto RET_LABEL;
5603 RET_LABEL:;
5604 return var;
5605 }
5606 /* method model$MErrorType$collect_mtypes for (self: MErrorType, MModule): Set[MClassType] */
5607 val* nitc___nitc__MErrorType___MType__collect_mtypes(val* self, val* p0) {
5608 val* var /* : Set[MClassType] */;
5609 val* var_mmodule /* var mmodule: MModule */;
5610 val* var1 /* : HashSet[MClassType] */;
5611 var_mmodule = p0;
5612 var1 = NEW_core__HashSet(&type_core__HashSet__nitc__MClassType);
5613 {
5614 core___core__HashSet___core__kernel__Object__init(var1); /* Direct call hash_collection$HashSet$init on <var1:HashSet[MClassType]>*/
5615 }
5616 var = var1;
5617 goto RET_LABEL;
5618 RET_LABEL:;
5619 return var;
5620 }
5621 /* method model$MErrorType$init for (self: MErrorType) */
5622 void nitc___nitc__MErrorType___core__kernel__Object__init(val* self) {
5623 {
5624 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MErrorType___core__kernel__Object__init]))(self); /* init on <self:MErrorType>*/
5625 }
5626 RET_LABEL:;
5627 }
5628 /* method model$MSignature$mparameters for (self: MSignature): Array[MParameter] */
5629 val* nitc___nitc__MSignature___mparameters(val* self) {
5630 val* var /* : Array[MParameter] */;
5631 val* var1 /* : Array[MParameter] */;
5632 var1 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
5633 if (unlikely(var1 == NULL)) {
5634 if(catchStack.cursor >= 0){
5635 longjmp(catchStack.envs[catchStack.cursor], 1);
5636 }
5637 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
5638 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
5639 fatal_exit(1);
5640 }
5641 var = var1;
5642 RET_LABEL:;
5643 return var;
5644 }
5645 /* method model$MSignature$mparameters= for (self: MSignature, Array[MParameter]) */
5646 void nitc___nitc__MSignature___mparameters_61d(val* self, val* p0) {
5647 self->attrs[COLOR_nitc__model__MSignature___mparameters].val = p0; /* _mparameters on <self:MSignature> */
5648 RET_LABEL:;
5649 }
5650 /* method model$MSignature$mparameter_by_name for (self: MSignature, String): nullable MParameter */
5651 val* nitc___nitc__MSignature___mparameter_by_name(val* self, val* p0) {
5652 val* var /* : nullable MParameter */;
5653 val* var_name /* var name: String */;
5654 val* var1 /* : Array[MParameter] */;
5655 val* var3 /* : Array[MParameter] */;
5656 val* var_ /* var : Array[MParameter] */;
5657 val* var4 /* : IndexedIterator[nullable Object] */;
5658 val* var_5 /* var : IndexedIterator[MParameter] */;
5659 short int var6 /* : Bool */;
5660 val* var7 /* : nullable Object */;
5661 val* var_p /* var p: MParameter */;
5662 val* var8 /* : String */;
5663 val* var10 /* : String */;
5664 short int var11 /* : Bool */;
5665 var_name = p0;
5666 {
5667 { /* Inline model$MSignature$mparameters (self) on <self:MSignature> */
5668 var3 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
5669 if (unlikely(var3 == NULL)) {
5670 if(catchStack.cursor >= 0){
5671 longjmp(catchStack.envs[catchStack.cursor], 1);
5672 }
5673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
5674 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
5675 fatal_exit(1);
5676 }
5677 var1 = var3;
5678 RET_LABEL2:(void)0;
5679 }
5680 }
5681 var_ = var1;
5682 {
5683 var4 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
5684 }
5685 var_5 = var4;
5686 for(;;) {
5687 {
5688 var6 = ((short int(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_5); /* is_ok on <var_5:IndexedIterator[MParameter]>*/
5689 }
5690 if (var6){
5691 } else {
5692 goto BREAK_label;
5693 }
5694 {
5695 var7 = ((val*(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_5); /* item on <var_5:IndexedIterator[MParameter]>*/
5696 }
5697 var_p = var7;
5698 {
5699 { /* Inline model$MParameter$name (var_p) on <var_p:MParameter> */
5700 var10 = var_p->attrs[COLOR_nitc__model__MParameter___name].val; /* _name on <var_p:MParameter> */
5701 if (unlikely(var10 == NULL)) {
5702 if(catchStack.cursor >= 0){
5703 longjmp(catchStack.envs[catchStack.cursor], 1);
5704 }
5705 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5706 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1993);
5707 fatal_exit(1);
5708 }
5709 var8 = var10;
5710 RET_LABEL9:(void)0;
5711 }
5712 }
5713 {
5714 var11 = ((short int(*)(val* self, val* p0))(var8->class->vft[COLOR_core__kernel__Object___61d_61d]))(var8, var_name); /* == on <var8:String>*/
5715 }
5716 if (var11){
5717 var = var_p;
5718 goto RET_LABEL;
5719 } else {
5720 }
5721 {
5722 ((void(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_5); /* next on <var_5:IndexedIterator[MParameter]>*/
5723 }
5724 }
5725 BREAK_label: (void)0;
5726 {
5727 ((void(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_5); /* finish on <var_5:IndexedIterator[MParameter]>*/
5728 }
5729 var = ((val*)NULL);
5730 goto RET_LABEL;
5731 RET_LABEL:;
5732 return var;
5733 }
5734 /* method model$MSignature$return_mtype for (self: MSignature): nullable MType */
5735 val* nitc___nitc__MSignature___return_mtype(val* self) {
5736 val* var /* : nullable MType */;
5737 val* var1 /* : nullable MType */;
5738 var1 = self->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <self:MSignature> */
5739 var = var1;
5740 RET_LABEL:;
5741 return var;
5742 }
5743 /* method model$MSignature$return_mtype= for (self: MSignature, nullable MType) */
5744 void nitc___nitc__MSignature___return_mtype_61d(val* self, val* p0) {
5745 self->attrs[COLOR_nitc__model__MSignature___return_mtype].val = p0; /* _return_mtype on <self:MSignature> */
5746 RET_LABEL:;
5747 }
5748 /* method model$MSignature$length for (self: MSignature): Int */
5749 long nitc___nitc__MSignature___MType__length(val* self) {
5750 long var /* : Int */;
5751 long var_res /* var res: Int */;
5752 val* var1 /* : nullable MType */;
5753 val* var3 /* : nullable MType */;
5754 val* var_t /* var t: nullable MType */;
5755 short int var4 /* : Bool */;
5756 short int var5 /* : Bool */;
5757 val* var_other /* var other: nullable Object */;
5758 short int var7 /* : Bool */;
5759 short int var8 /* : Bool */;
5760 long var9 /* : Int */;
5761 long var10 /* : Int */;
5762 short int var12 /* : Bool */;
5763 int cltype;
5764 int idtype;
5765 const char* var_class_name;
5766 long var13 /* : Int */;
5767 val* var14 /* : Array[MParameter] */;
5768 val* var16 /* : Array[MParameter] */;
5769 val* var_ /* var : Array[MParameter] */;
5770 val* var17 /* : IndexedIterator[nullable Object] */;
5771 val* var_18 /* var : IndexedIterator[MParameter] */;
5772 short int var19 /* : Bool */;
5773 val* var20 /* : nullable Object */;
5774 val* var_p /* var p: MParameter */;
5775 val* var21 /* : MType */;
5776 val* var23 /* : MType */;
5777 long var24 /* : Int */;
5778 long var25 /* : Int */;
5779 short int var27 /* : Bool */;
5780 int cltype28;
5781 int idtype29;
5782 const char* var_class_name30;
5783 long var31 /* : Int */;
5784 var_res = 1l;
5785 {
5786 { /* Inline model$MSignature$return_mtype (self) on <self:MSignature> */
5787 var3 = self->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <self:MSignature> */
5788 var1 = var3;
5789 RET_LABEL2:(void)0;
5790 }
5791 }
5792 var_t = var1;
5793 if (var_t == NULL) {
5794 var4 = 0; /* is null */
5795 } else {
5796 var4 = 1; /* arg is null and recv is not */
5797 }
5798 if (0) {
5799 { /* Inline kernel$Object$!= (var_t,((val*)NULL)) on <var_t:nullable MType> */
5800 var_other = ((val*)NULL);
5801 {
5802 var7 = ((short int(*)(val* self, val* p0))(var_t->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_t, var_other); /* == on <var_t:nullable MType(MType)>*/
5803 }
5804 var8 = !var7;
5805 var5 = var8;
5806 goto RET_LABEL6;
5807 RET_LABEL6:(void)0;
5808 }
5809 var4 = var5;
5810 }
5811 if (var4){
5812 {
5813 var9 = ((long(*)(val* self))(var_t->class->vft[COLOR_nitc__model__MType__length]))(var_t); /* length on <var_t:nullable MType(MType)>*/
5814 }
5815 {
5816 { /* Inline kernel$Int$+ (var_res,var9) on <var_res:Int> */
5817 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
5818 /* <var9:Int> isa OTHER */
5819 var12 = 1; /* easy <var9:Int> isa OTHER*/
5820 if (unlikely(!var12)) {
5821 var_class_name = type_core__Int.name;
5822 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5823 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
5824 fatal_exit(1);
5825 }
5826 var13 = var_res + var9;
5827 var10 = var13;
5828 goto RET_LABEL11;
5829 RET_LABEL11:(void)0;
5830 }
5831 }
5832 var_res = var10;
5833 } else {
5834 }
5835 {
5836 { /* Inline model$MSignature$mparameters (self) on <self:MSignature> */
5837 var16 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
5838 if (unlikely(var16 == NULL)) {
5839 if(catchStack.cursor >= 0){
5840 longjmp(catchStack.envs[catchStack.cursor], 1);
5841 }
5842 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
5843 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
5844 fatal_exit(1);
5845 }
5846 var14 = var16;
5847 RET_LABEL15:(void)0;
5848 }
5849 }
5850 var_ = var14;
5851 {
5852 var17 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
5853 }
5854 var_18 = var17;
5855 for(;;) {
5856 {
5857 var19 = ((short int(*)(val* self))((((long)var_18&3)?class_info[((long)var_18&3)]:var_18->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_18); /* is_ok on <var_18:IndexedIterator[MParameter]>*/
5858 }
5859 if (var19){
5860 } else {
5861 goto BREAK_label;
5862 }
5863 {
5864 var20 = ((val*(*)(val* self))((((long)var_18&3)?class_info[((long)var_18&3)]:var_18->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_18); /* item on <var_18:IndexedIterator[MParameter]>*/
5865 }
5866 var_p = var20;
5867 {
5868 { /* Inline model$MParameter$mtype (var_p) on <var_p:MParameter> */
5869 var23 = var_p->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var_p:MParameter> */
5870 if (unlikely(var23 == NULL)) {
5871 if(catchStack.cursor >= 0){
5872 longjmp(catchStack.envs[catchStack.cursor], 1);
5873 }
5874 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
5875 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
5876 fatal_exit(1);
5877 }
5878 var21 = var23;
5879 RET_LABEL22:(void)0;
5880 }
5881 }
5882 {
5883 var24 = ((long(*)(val* self))(var21->class->vft[COLOR_nitc__model__MType__length]))(var21); /* length on <var21:MType>*/
5884 }
5885 {
5886 { /* Inline kernel$Int$+ (var_res,var24) on <var_res:Int> */
5887 /* Covariant cast for argument 0 (i) <var24:Int> isa OTHER */
5888 /* <var24:Int> isa OTHER */
5889 var27 = 1; /* easy <var24:Int> isa OTHER*/
5890 if (unlikely(!var27)) {
5891 var_class_name30 = type_core__Int.name;
5892 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
5893 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
5894 fatal_exit(1);
5895 }
5896 var31 = var_res + var24;
5897 var25 = var31;
5898 goto RET_LABEL26;
5899 RET_LABEL26:(void)0;
5900 }
5901 }
5902 var_res = var25;
5903 {
5904 ((void(*)(val* self))((((long)var_18&3)?class_info[((long)var_18&3)]:var_18->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_18); /* next on <var_18:IndexedIterator[MParameter]>*/
5905 }
5906 }
5907 BREAK_label: (void)0;
5908 {
5909 ((void(*)(val* self))((((long)var_18&3)?class_info[((long)var_18&3)]:var_18->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_18); /* finish on <var_18:IndexedIterator[MParameter]>*/
5910 }
5911 var = var_res;
5912 goto RET_LABEL;
5913 RET_LABEL:;
5914 return var;
5915 }
5916 /* method model$MSignature$init for (self: MSignature) */
5917 void nitc___nitc__MSignature___core__kernel__Object__init(val* self) {
5918 long var /* : Int */;
5919 long var2 /* : Int */;
5920 long var_vararg_rank /* var vararg_rank: Int */;
5921 long var_i /* var i: Int */;
5922 val* var3 /* : Array[MParameter] */;
5923 val* var5 /* : Array[MParameter] */;
5924 long var6 /* : Int */;
5925 long var8 /* : Int */;
5926 long var_ /* var : Int */;
5927 short int var9 /* : Bool */;
5928 short int var11 /* : Bool */;
5929 int cltype;
5930 int idtype;
5931 const char* var_class_name;
5932 short int var12 /* : Bool */;
5933 val* var13 /* : Array[MParameter] */;
5934 val* var15 /* : Array[MParameter] */;
5935 val* var16 /* : nullable Object */;
5936 val* var_parameter /* var parameter: MParameter */;
5937 short int var17 /* : Bool */;
5938 short int var19 /* : Bool */;
5939 short int var20 /* : Bool */;
5940 short int var22 /* : Bool */;
5941 int cltype23;
5942 int idtype24;
5943 const char* var_class_name25;
5944 short int var26 /* : Bool */;
5945 long var27 /* : Int */;
5946 long var29 /* : Int */;
5947 long var30 /* : Int */;
5948 {
5949 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MSignature___core__kernel__Object__init]))(self); /* init on <self:MSignature>*/
5950 }
5951 {
5952 { /* Inline kernel$Int$unary - (1l) on <1l:Int> */
5953 var2 = -1l;
5954 var = var2;
5955 goto RET_LABEL1;
5956 RET_LABEL1:(void)0;
5957 }
5958 }
5959 var_vararg_rank = var;
5960 var_i = 0l;
5961 {
5962 { /* Inline model$MSignature$mparameters (self) on <self:MSignature> */
5963 var5 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
5964 if (unlikely(var5 == NULL)) {
5965 if(catchStack.cursor >= 0){
5966 longjmp(catchStack.envs[catchStack.cursor], 1);
5967 }
5968 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
5969 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
5970 fatal_exit(1);
5971 }
5972 var3 = var5;
5973 RET_LABEL4:(void)0;
5974 }
5975 }
5976 {
5977 { /* Inline array$AbstractArrayRead$length (var3) on <var3:Array[MParameter]> */
5978 var8 = var3->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var3:Array[MParameter]> */
5979 var6 = var8;
5980 RET_LABEL7:(void)0;
5981 }
5982 }
5983 var_ = var6;
5984 for(;;) {
5985 {
5986 { /* Inline kernel$Int$< (var_i,var_) on <var_i:Int> */
5987 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
5988 /* <var_:Int> isa OTHER */
5989 var11 = 1; /* easy <var_:Int> isa OTHER*/
5990 if (unlikely(!var11)) {
5991 var_class_name = type_core__Int.name;
5992 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5993 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
5994 fatal_exit(1);
5995 }
5996 var12 = var_i < var_;
5997 var9 = var12;
5998 goto RET_LABEL10;
5999 RET_LABEL10:(void)0;
6000 }
6001 }
6002 if (var9){
6003 } else {
6004 goto BREAK_label;
6005 }
6006 {
6007 { /* Inline model$MSignature$mparameters (self) on <self:MSignature> */
6008 var15 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
6009 if (unlikely(var15 == NULL)) {
6010 if(catchStack.cursor >= 0){
6011 longjmp(catchStack.envs[catchStack.cursor], 1);
6012 }
6013 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6014 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
6015 fatal_exit(1);
6016 }
6017 var13 = var15;
6018 RET_LABEL14:(void)0;
6019 }
6020 }
6021 {
6022 var16 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var13, var_i);
6023 }
6024 var_parameter = var16;
6025 {
6026 { /* Inline model$MParameter$is_vararg (var_parameter) on <var_parameter:MParameter> */
6027 var19 = var_parameter->attrs[COLOR_nitc__model__MParameter___is_vararg].s; /* _is_vararg on <var_parameter:MParameter> */
6028 var17 = var19;
6029 RET_LABEL18:(void)0;
6030 }
6031 }
6032 if (var17){
6033 {
6034 { /* Inline kernel$Int$>= (var_vararg_rank,0l) on <var_vararg_rank:Int> */
6035 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
6036 /* <0l:Int> isa OTHER */
6037 var22 = 1; /* easy <0l:Int> isa OTHER*/
6038 if (unlikely(!var22)) {
6039 var_class_name25 = type_core__Int.name;
6040 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
6041 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
6042 fatal_exit(1);
6043 }
6044 var26 = var_vararg_rank >= 0l;
6045 var20 = var26;
6046 goto RET_LABEL21;
6047 RET_LABEL21:(void)0;
6048 }
6049 }
6050 if (var20){
6051 {
6052 { /* Inline kernel$Int$unary - (1l) on <1l:Int> */
6053 var29 = -1l;
6054 var27 = var29;
6055 goto RET_LABEL28;
6056 RET_LABEL28:(void)0;
6057 }
6058 }
6059 var_vararg_rank = var27;
6060 goto BREAK_label;
6061 } else {
6062 }
6063 var_vararg_rank = var_i;
6064 } else {
6065 }
6066 {
6067 var30 = core___core__Int___Discrete__successor(var_i, 1l);
6068 }
6069 var_i = var30;
6070 }
6071 BREAK_label: (void)0;
6072 {
6073 { /* Inline model$MSignature$vararg_rank= (self,var_vararg_rank) on <self:MSignature> */
6074 self->attrs[COLOR_nitc__model__MSignature___vararg_rank].l = var_vararg_rank; /* _vararg_rank on <self:MSignature> */
6075 RET_LABEL31:(void)0;
6076 }
6077 }
6078 RET_LABEL:;
6079 }
6080 /* method model$MSignature$vararg_rank for (self: MSignature): Int */
6081 long nitc___nitc__MSignature___vararg_rank(val* self) {
6082 long var /* : Int */;
6083 long var1 /* : Int */;
6084 var1 = self->attrs[COLOR_nitc__model__MSignature___vararg_rank].l; /* _vararg_rank on <self:MSignature> */
6085 var = var1;
6086 RET_LABEL:;
6087 return var;
6088 }
6089 /* method model$MSignature$vararg_rank= for (self: MSignature, Int) */
6090 void nitc___nitc__MSignature___vararg_rank_61d(val* self, long p0) {
6091 self->attrs[COLOR_nitc__model__MSignature___vararg_rank].l = p0; /* _vararg_rank on <self:MSignature> */
6092 RET_LABEL:;
6093 }
6094 /* method model$MSignature$arity for (self: MSignature): Int */
6095 long nitc___nitc__MSignature___arity(val* self) {
6096 long var /* : Int */;
6097 val* var1 /* : Array[MParameter] */;
6098 val* var3 /* : Array[MParameter] */;
6099 long var4 /* : Int */;
6100 long var6 /* : Int */;
6101 {
6102 { /* Inline model$MSignature$mparameters (self) on <self:MSignature> */
6103 var3 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
6104 if (unlikely(var3 == NULL)) {
6105 if(catchStack.cursor >= 0){
6106 longjmp(catchStack.envs[catchStack.cursor], 1);
6107 }
6108 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6109 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
6110 fatal_exit(1);
6111 }
6112 var1 = var3;
6113 RET_LABEL2:(void)0;
6114 }
6115 }
6116 {
6117 { /* Inline array$AbstractArrayRead$length (var1) on <var1:Array[MParameter]> */
6118 var6 = var1->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var1:Array[MParameter]> */
6119 var4 = var6;
6120 RET_LABEL5:(void)0;
6121 }
6122 }
6123 var = var4;
6124 goto RET_LABEL;
6125 RET_LABEL:;
6126 return var;
6127 }
6128 /* method model$MSignature$to_s for (self: MSignature): String */
6129 val* nitc___nitc__MSignature___core__abstract_text__Object__to_s(val* self) {
6130 val* var /* : String */;
6131 val* var1 /* : FlatBuffer */;
6132 val* var_b /* var b: FlatBuffer */;
6133 val* var3 /* : Array[MParameter] */;
6134 val* var5 /* : Array[MParameter] */;
6135 short int var6 /* : Bool */;
6136 short int var7 /* : Bool */;
6137 static val* varonce;
6138 val* var8 /* : String */;
6139 char* var9 /* : CString */;
6140 val* var10 /* : String */;
6141 val* var11 /* : nullable Int */;
6142 val* var12 /* : nullable Int */;
6143 val* var13 /* : nullable Bool */;
6144 val* var14 /* : nullable Bool */;
6145 long var_i /* var i: Int */;
6146 val* var15 /* : Array[MParameter] */;
6147 val* var17 /* : Array[MParameter] */;
6148 long var18 /* : Int */;
6149 long var20 /* : Int */;
6150 long var_ /* var : Int */;
6151 short int var21 /* : Bool */;
6152 short int var23 /* : Bool */;
6153 int cltype;
6154 int idtype;
6155 const char* var_class_name;
6156 short int var24 /* : Bool */;
6157 val* var25 /* : Array[MParameter] */;
6158 val* var27 /* : Array[MParameter] */;
6159 val* var28 /* : nullable Object */;
6160 val* var_mparameter /* var mparameter: MParameter */;
6161 short int var29 /* : Bool */;
6162 short int var31 /* : Bool */;
6163 int cltype32;
6164 int idtype33;
6165 const char* var_class_name34;
6166 short int var35 /* : Bool */;
6167 static val* varonce36;
6168 val* var37 /* : String */;
6169 char* var38 /* : CString */;
6170 val* var39 /* : String */;
6171 val* var40 /* : nullable Int */;
6172 val* var41 /* : nullable Int */;
6173 val* var42 /* : nullable Bool */;
6174 val* var43 /* : nullable Bool */;
6175 val* var44 /* : String */;
6176 val* var46 /* : String */;
6177 static val* varonce47;
6178 val* var48 /* : String */;
6179 char* var49 /* : CString */;
6180 val* var50 /* : String */;
6181 val* var51 /* : nullable Int */;
6182 val* var52 /* : nullable Int */;
6183 val* var53 /* : nullable Bool */;
6184 val* var54 /* : nullable Bool */;
6185 val* var55 /* : MType */;
6186 val* var57 /* : MType */;
6187 val* var58 /* : String */;
6188 short int var59 /* : Bool */;
6189 short int var61 /* : Bool */;
6190 static val* varonce62;
6191 val* var63 /* : String */;
6192 char* var64 /* : CString */;
6193 val* var65 /* : String */;
6194 val* var66 /* : nullable Int */;
6195 val* var67 /* : nullable Int */;
6196 val* var68 /* : nullable Bool */;
6197 val* var69 /* : nullable Bool */;
6198 long var70 /* : Int */;
6199 static val* varonce71;
6200 val* var72 /* : String */;
6201 char* var73 /* : CString */;
6202 val* var74 /* : String */;
6203 val* var75 /* : nullable Int */;
6204 val* var76 /* : nullable Int */;
6205 val* var77 /* : nullable Bool */;
6206 val* var78 /* : nullable Bool */;
6207 val* var79 /* : nullable MType */;
6208 val* var81 /* : nullable MType */;
6209 val* var_ret /* var ret: nullable MType */;
6210 short int var82 /* : Bool */;
6211 short int var83 /* : Bool */;
6212 val* var_other /* var other: nullable Object */;
6213 short int var85 /* : Bool */;
6214 short int var86 /* : Bool */;
6215 static val* varonce87;
6216 val* var88 /* : String */;
6217 char* var89 /* : CString */;
6218 val* var90 /* : String */;
6219 val* var91 /* : nullable Int */;
6220 val* var92 /* : nullable Int */;
6221 val* var93 /* : nullable Bool */;
6222 val* var94 /* : nullable Bool */;
6223 val* var95 /* : String */;
6224 val* var96 /* : String */;
6225 var1 = NEW_core__FlatBuffer(&type_core__FlatBuffer);
6226 {
6227 { /* Inline flat$FlatBuffer$init (var1) on <var1:FlatBuffer> */
6228 {
6229 ((void(*)(val* self))(var1->class->vft[COLOR_core___core__FlatBuffer___core__kernel__Object__init]))(var1); /* init on <var1:FlatBuffer>*/
6230 }
6231 RET_LABEL2:(void)0;
6232 }
6233 }
6234 var_b = var1;
6235 {
6236 { /* Inline model$MSignature$mparameters (self) on <self:MSignature> */
6237 var5 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
6238 if (unlikely(var5 == NULL)) {
6239 if(catchStack.cursor >= 0){
6240 longjmp(catchStack.envs[catchStack.cursor], 1);
6241 }
6242 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6243 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
6244 fatal_exit(1);
6245 }
6246 var3 = var5;
6247 RET_LABEL4:(void)0;
6248 }
6249 }
6250 {
6251 var6 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var3);
6252 }
6253 var7 = !var6;
6254 if (var7){
6255 if (likely(varonce!=NULL)) {
6256 var8 = varonce;
6257 } else {
6258 var9 = "(";
6259 var11 = (val*)(1l<<2|1);
6260 var12 = (val*)(1l<<2|1);
6261 var13 = (val*)((long)(0)<<2|3);
6262 var14 = (val*)((long)(0)<<2|3);
6263 var10 = core__flat___CString___to_s_unsafe(var9, var11, var12, var13, var14);
6264 var8 = var10;
6265 varonce = var8;
6266 }
6267 {
6268 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_b, var8); /* Direct call flat$FlatBuffer$append on <var_b:FlatBuffer>*/
6269 }
6270 var_i = 0l;
6271 {
6272 { /* Inline model$MSignature$mparameters (self) on <self:MSignature> */
6273 var17 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
6274 if (unlikely(var17 == NULL)) {
6275 if(catchStack.cursor >= 0){
6276 longjmp(catchStack.envs[catchStack.cursor], 1);
6277 }
6278 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6279 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
6280 fatal_exit(1);
6281 }
6282 var15 = var17;
6283 RET_LABEL16:(void)0;
6284 }
6285 }
6286 {
6287 { /* Inline array$AbstractArrayRead$length (var15) on <var15:Array[MParameter]> */
6288 var20 = var15->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var15:Array[MParameter]> */
6289 var18 = var20;
6290 RET_LABEL19:(void)0;
6291 }
6292 }
6293 var_ = var18;
6294 for(;;) {
6295 {
6296 { /* Inline kernel$Int$< (var_i,var_) on <var_i:Int> */
6297 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
6298 /* <var_:Int> isa OTHER */
6299 var23 = 1; /* easy <var_:Int> isa OTHER*/
6300 if (unlikely(!var23)) {
6301 var_class_name = type_core__Int.name;
6302 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6303 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
6304 fatal_exit(1);
6305 }
6306 var24 = var_i < var_;
6307 var21 = var24;
6308 goto RET_LABEL22;
6309 RET_LABEL22:(void)0;
6310 }
6311 }
6312 if (var21){
6313 } else {
6314 goto BREAK_label;
6315 }
6316 {
6317 { /* Inline model$MSignature$mparameters (self) on <self:MSignature> */
6318 var27 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
6319 if (unlikely(var27 == NULL)) {
6320 if(catchStack.cursor >= 0){
6321 longjmp(catchStack.envs[catchStack.cursor], 1);
6322 }
6323 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6324 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
6325 fatal_exit(1);
6326 }
6327 var25 = var27;
6328 RET_LABEL26:(void)0;
6329 }
6330 }
6331 {
6332 var28 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var25, var_i);
6333 }
6334 var_mparameter = var28;
6335 {
6336 { /* Inline kernel$Int$> (var_i,0l) on <var_i:Int> */
6337 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
6338 /* <0l:Int> isa OTHER */
6339 var31 = 1; /* easy <0l:Int> isa OTHER*/
6340 if (unlikely(!var31)) {
6341 var_class_name34 = type_core__Int.name;
6342 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
6343 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
6344 fatal_exit(1);
6345 }
6346 var35 = var_i > 0l;
6347 var29 = var35;
6348 goto RET_LABEL30;
6349 RET_LABEL30:(void)0;
6350 }
6351 }
6352 if (var29){
6353 if (likely(varonce36!=NULL)) {
6354 var37 = varonce36;
6355 } else {
6356 var38 = ", ";
6357 var40 = (val*)(2l<<2|1);
6358 var41 = (val*)(2l<<2|1);
6359 var42 = (val*)((long)(0)<<2|3);
6360 var43 = (val*)((long)(0)<<2|3);
6361 var39 = core__flat___CString___to_s_unsafe(var38, var40, var41, var42, var43);
6362 var37 = var39;
6363 varonce36 = var37;
6364 }
6365 {
6366 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_b, var37); /* Direct call flat$FlatBuffer$append on <var_b:FlatBuffer>*/
6367 }
6368 } else {
6369 }
6370 {
6371 { /* Inline model$MParameter$name (var_mparameter) on <var_mparameter:MParameter> */
6372 var46 = var_mparameter->attrs[COLOR_nitc__model__MParameter___name].val; /* _name on <var_mparameter:MParameter> */
6373 if (unlikely(var46 == NULL)) {
6374 if(catchStack.cursor >= 0){
6375 longjmp(catchStack.envs[catchStack.cursor], 1);
6376 }
6377 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6378 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1993);
6379 fatal_exit(1);
6380 }
6381 var44 = var46;
6382 RET_LABEL45:(void)0;
6383 }
6384 }
6385 {
6386 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_b, var44); /* Direct call flat$FlatBuffer$append on <var_b:FlatBuffer>*/
6387 }
6388 if (likely(varonce47!=NULL)) {
6389 var48 = varonce47;
6390 } else {
6391 var49 = ": ";
6392 var51 = (val*)(2l<<2|1);
6393 var52 = (val*)(2l<<2|1);
6394 var53 = (val*)((long)(0)<<2|3);
6395 var54 = (val*)((long)(0)<<2|3);
6396 var50 = core__flat___CString___to_s_unsafe(var49, var51, var52, var53, var54);
6397 var48 = var50;
6398 varonce47 = var48;
6399 }
6400 {
6401 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_b, var48); /* Direct call flat$FlatBuffer$append on <var_b:FlatBuffer>*/
6402 }
6403 {
6404 { /* Inline model$MParameter$mtype (var_mparameter) on <var_mparameter:MParameter> */
6405 var57 = var_mparameter->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var_mparameter:MParameter> */
6406 if (unlikely(var57 == NULL)) {
6407 if(catchStack.cursor >= 0){
6408 longjmp(catchStack.envs[catchStack.cursor], 1);
6409 }
6410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6411 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
6412 fatal_exit(1);
6413 }
6414 var55 = var57;
6415 RET_LABEL56:(void)0;
6416 }
6417 }
6418 {
6419 var58 = ((val*(*)(val* self))(var55->class->vft[COLOR_core__abstract_text__Object__to_s]))(var55); /* to_s on <var55:MType>*/
6420 }
6421 {
6422 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_b, var58); /* Direct call flat$FlatBuffer$append on <var_b:FlatBuffer>*/
6423 }
6424 {
6425 { /* Inline model$MParameter$is_vararg (var_mparameter) on <var_mparameter:MParameter> */
6426 var61 = var_mparameter->attrs[COLOR_nitc__model__MParameter___is_vararg].s; /* _is_vararg on <var_mparameter:MParameter> */
6427 var59 = var61;
6428 RET_LABEL60:(void)0;
6429 }
6430 }
6431 if (var59){
6432 if (likely(varonce62!=NULL)) {
6433 var63 = varonce62;
6434 } else {
6435 var64 = "...";
6436 var66 = (val*)(3l<<2|1);
6437 var67 = (val*)(3l<<2|1);
6438 var68 = (val*)((long)(0)<<2|3);
6439 var69 = (val*)((long)(0)<<2|3);
6440 var65 = core__flat___CString___to_s_unsafe(var64, var66, var67, var68, var69);
6441 var63 = var65;
6442 varonce62 = var63;
6443 }
6444 {
6445 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_b, var63); /* Direct call flat$FlatBuffer$append on <var_b:FlatBuffer>*/
6446 }
6447 } else {
6448 }
6449 {
6450 var70 = core___core__Int___Discrete__successor(var_i, 1l);
6451 }
6452 var_i = var70;
6453 }
6454 BREAK_label: (void)0;
6455 if (likely(varonce71!=NULL)) {
6456 var72 = varonce71;
6457 } else {
6458 var73 = ")";
6459 var75 = (val*)(1l<<2|1);
6460 var76 = (val*)(1l<<2|1);
6461 var77 = (val*)((long)(0)<<2|3);
6462 var78 = (val*)((long)(0)<<2|3);
6463 var74 = core__flat___CString___to_s_unsafe(var73, var75, var76, var77, var78);
6464 var72 = var74;
6465 varonce71 = var72;
6466 }
6467 {
6468 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_b, var72); /* Direct call flat$FlatBuffer$append on <var_b:FlatBuffer>*/
6469 }
6470 } else {
6471 }
6472 {
6473 { /* Inline model$MSignature$return_mtype (self) on <self:MSignature> */
6474 var81 = self->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <self:MSignature> */
6475 var79 = var81;
6476 RET_LABEL80:(void)0;
6477 }
6478 }
6479 var_ret = var79;
6480 if (var_ret == NULL) {
6481 var82 = 0; /* is null */
6482 } else {
6483 var82 = 1; /* arg is null and recv is not */
6484 }
6485 if (0) {
6486 { /* Inline kernel$Object$!= (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
6487 var_other = ((val*)NULL);
6488 {
6489 var85 = ((short int(*)(val* self, val* p0))(var_ret->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret, var_other); /* == on <var_ret:nullable MType(MType)>*/
6490 }
6491 var86 = !var85;
6492 var83 = var86;
6493 goto RET_LABEL84;
6494 RET_LABEL84:(void)0;
6495 }
6496 var82 = var83;
6497 }
6498 if (var82){
6499 if (likely(varonce87!=NULL)) {
6500 var88 = varonce87;
6501 } else {
6502 var89 = ": ";
6503 var91 = (val*)(2l<<2|1);
6504 var92 = (val*)(2l<<2|1);
6505 var93 = (val*)((long)(0)<<2|3);
6506 var94 = (val*)((long)(0)<<2|3);
6507 var90 = core__flat___CString___to_s_unsafe(var89, var91, var92, var93, var94);
6508 var88 = var90;
6509 varonce87 = var88;
6510 }
6511 {
6512 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_b, var88); /* Direct call flat$FlatBuffer$append on <var_b:FlatBuffer>*/
6513 }
6514 {
6515 var95 = ((val*(*)(val* self))(var_ret->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ret); /* to_s on <var_ret:nullable MType(MType)>*/
6516 }
6517 {
6518 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_b, var95); /* Direct call flat$FlatBuffer$append on <var_b:FlatBuffer>*/
6519 }
6520 } else {
6521 }
6522 {
6523 var96 = core___core__FlatBuffer___core__abstract_text__Object__to_s(var_b);
6524 }
6525 var = var96;
6526 goto RET_LABEL;
6527 RET_LABEL:;
6528 return var;
6529 }
6530 /* method model$MSignature$resolve_for for (self: MSignature, MType, nullable MClassType, MModule, Bool): MSignature */
6531 val* nitc___nitc__MSignature___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
6532 val* var /* : MSignature */;
6533 val* var_mtype /* var mtype: MType */;
6534 val* var_anchor /* var anchor: nullable MClassType */;
6535 val* var_mmodule /* var mmodule: MModule */;
6536 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
6537 val* var1 /* : Array[MParameter] */;
6538 val* var_params /* var params: Array[MParameter] */;
6539 val* var2 /* : Array[MParameter] */;
6540 val* var4 /* : Array[MParameter] */;
6541 val* var_ /* var : Array[MParameter] */;
6542 val* var5 /* : IndexedIterator[nullable Object] */;
6543 val* var_6 /* var : IndexedIterator[MParameter] */;
6544 short int var7 /* : Bool */;
6545 val* var8 /* : nullable Object */;
6546 val* var_p /* var p: MParameter */;
6547 val* var9 /* : MParameter */;
6548 val* var10 /* : nullable MType */;
6549 val* var12 /* : nullable MType */;
6550 val* var_ret /* var ret: nullable MType */;
6551 short int var13 /* : Bool */;
6552 short int var14 /* : Bool */;
6553 val* var_other /* var other: nullable Object */;
6554 short int var16 /* : Bool */;
6555 short int var17 /* : Bool */;
6556 val* var18 /* : MType */;
6557 val* var19 /* : MSignature */;
6558 val* var_res /* var res: MSignature */;
6559 var_mtype = p0;
6560 var_anchor = p1;
6561 var_mmodule = p2;
6562 var_cleanup_virtual = p3;
6563 var1 = NEW_core__Array(&type_core__Array__nitc__MParameter);
6564 {
6565 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[MParameter]>*/
6566 }
6567 var_params = var1;
6568 {
6569 { /* Inline model$MSignature$mparameters (self) on <self:MSignature> */
6570 var4 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
6571 if (unlikely(var4 == NULL)) {
6572 if(catchStack.cursor >= 0){
6573 longjmp(catchStack.envs[catchStack.cursor], 1);
6574 }
6575 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6576 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
6577 fatal_exit(1);
6578 }
6579 var2 = var4;
6580 RET_LABEL3:(void)0;
6581 }
6582 }
6583 var_ = var2;
6584 {
6585 var5 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
6586 }
6587 var_6 = var5;
6588 for(;;) {
6589 {
6590 var7 = ((short int(*)(val* self))((((long)var_6&3)?class_info[((long)var_6&3)]:var_6->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_6); /* is_ok on <var_6:IndexedIterator[MParameter]>*/
6591 }
6592 if (var7){
6593 } else {
6594 goto BREAK_label;
6595 }
6596 {
6597 var8 = ((val*(*)(val* self))((((long)var_6&3)?class_info[((long)var_6&3)]:var_6->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_6); /* item on <var_6:IndexedIterator[MParameter]>*/
6598 }
6599 var_p = var8;
6600 {
6601 var9 = nitc___nitc__MParameter___resolve_for(var_p, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual);
6602 }
6603 {
6604 core___core__Array___core__abstract_collection__SimpleCollection__add(var_params, var9); /* Direct call array$Array$add on <var_params:Array[MParameter]>*/
6605 }
6606 {
6607 ((void(*)(val* self))((((long)var_6&3)?class_info[((long)var_6&3)]:var_6->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_6); /* next on <var_6:IndexedIterator[MParameter]>*/
6608 }
6609 }
6610 BREAK_label: (void)0;
6611 {
6612 ((void(*)(val* self))((((long)var_6&3)?class_info[((long)var_6&3)]:var_6->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_6); /* finish on <var_6:IndexedIterator[MParameter]>*/
6613 }
6614 {
6615 { /* Inline model$MSignature$return_mtype (self) on <self:MSignature> */
6616 var12 = self->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <self:MSignature> */
6617 var10 = var12;
6618 RET_LABEL11:(void)0;
6619 }
6620 }
6621 var_ret = var10;
6622 if (var_ret == NULL) {
6623 var13 = 0; /* is null */
6624 } else {
6625 var13 = 1; /* arg is null and recv is not */
6626 }
6627 if (0) {
6628 { /* Inline kernel$Object$!= (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
6629 var_other = ((val*)NULL);
6630 {
6631 var16 = ((short int(*)(val* self, val* p0))(var_ret->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret, var_other); /* == on <var_ret:nullable MType(MType)>*/
6632 }
6633 var17 = !var16;
6634 var14 = var17;
6635 goto RET_LABEL15;
6636 RET_LABEL15:(void)0;
6637 }
6638 var13 = var14;
6639 }
6640 if (var13){
6641 {
6642 var18 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_ret->class->vft[COLOR_nitc__model__MType__resolve_for]))(var_ret, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual); /* resolve_for on <var_ret:nullable MType(MType)>*/
6643 }
6644 var_ret = var18;
6645 } else {
6646 }
6647 var19 = NEW_nitc__MSignature(&type_nitc__MSignature);
6648 {
6649 ((void(*)(val* self, val* p0))(var19->class->vft[COLOR_nitc__model__MSignature__mparameters_61d]))(var19, var_params); /* mparameters= on <var19:MSignature>*/
6650 }
6651 {
6652 ((void(*)(val* self, val* p0))(var19->class->vft[COLOR_nitc__model__MSignature__return_mtype_61d]))(var19, var_ret); /* return_mtype= on <var19:MSignature>*/
6653 }
6654 {
6655 ((void(*)(val* self))(var19->class->vft[COLOR_core__kernel__Object__init]))(var19); /* init on <var19:MSignature>*/
6656 }
6657 var_res = var19;
6658 var = var_res;
6659 goto RET_LABEL;
6660 RET_LABEL:;
6661 return var;
6662 }
6663 /* method model$MParameter$name for (self: MParameter): String */
6664 val* nitc___nitc__MParameter___nitc__model_base__MEntity__name(val* self) {
6665 val* var /* : String */;
6666 val* var1 /* : String */;
6667 var1 = self->attrs[COLOR_nitc__model__MParameter___name].val; /* _name on <self:MParameter> */
6668 if (unlikely(var1 == NULL)) {
6669 if(catchStack.cursor >= 0){
6670 longjmp(catchStack.envs[catchStack.cursor], 1);
6671 }
6672 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6673 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1993);
6674 fatal_exit(1);
6675 }
6676 var = var1;
6677 RET_LABEL:;
6678 return var;
6679 }
6680 /* method model$MParameter$name= for (self: MParameter, String) */
6681 void nitc___nitc__MParameter___name_61d(val* self, val* p0) {
6682 self->attrs[COLOR_nitc__model__MParameter___name].val = p0; /* _name on <self:MParameter> */
6683 RET_LABEL:;
6684 }
6685 /* method model$MParameter$mtype for (self: MParameter): MType */
6686 val* nitc___nitc__MParameter___mtype(val* self) {
6687 val* var /* : MType */;
6688 val* var1 /* : MType */;
6689 var1 = self->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <self:MParameter> */
6690 if (unlikely(var1 == NULL)) {
6691 if(catchStack.cursor >= 0){
6692 longjmp(catchStack.envs[catchStack.cursor], 1);
6693 }
6694 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6695 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
6696 fatal_exit(1);
6697 }
6698 var = var1;
6699 RET_LABEL:;
6700 return var;
6701 }
6702 /* method model$MParameter$mtype= for (self: MParameter, MType) */
6703 void nitc___nitc__MParameter___mtype_61d(val* self, val* p0) {
6704 self->attrs[COLOR_nitc__model__MParameter___mtype].val = p0; /* _mtype on <self:MParameter> */
6705 RET_LABEL:;
6706 }
6707 /* method model$MParameter$is_vararg for (self: MParameter): Bool */
6708 short int nitc___nitc__MParameter___is_vararg(val* self) {
6709 short int var /* : Bool */;
6710 short int var1 /* : Bool */;
6711 var1 = self->attrs[COLOR_nitc__model__MParameter___is_vararg].s; /* _is_vararg on <self:MParameter> */
6712 var = var1;
6713 RET_LABEL:;
6714 return var;
6715 }
6716 /* method model$MParameter$is_vararg= for (self: MParameter, Bool) */
6717 void nitc___nitc__MParameter___is_vararg_61d(val* self, short int p0) {
6718 self->attrs[COLOR_nitc__model__MParameter___is_vararg].s = p0; /* _is_vararg on <self:MParameter> */
6719 RET_LABEL:;
6720 }
6721 /* method model$MParameter$to_s for (self: MParameter): String */
6722 val* nitc___nitc__MParameter___core__abstract_text__Object__to_s(val* self) {
6723 val* var /* : String */;
6724 short int var1 /* : Bool */;
6725 short int var3 /* : Bool */;
6726 val* var4 /* : NativeArray[String] */;
6727 static val* varonce;
6728 static val* varonce5;
6729 val* var6 /* : String */;
6730 char* var7 /* : CString */;
6731 val* var8 /* : String */;
6732 val* var9 /* : nullable Int */;
6733 val* var10 /* : nullable Int */;
6734 val* var11 /* : nullable Bool */;
6735 val* var12 /* : nullable Bool */;
6736 static val* varonce13;
6737 val* var14 /* : String */;
6738 char* var15 /* : CString */;
6739 val* var16 /* : String */;
6740 val* var17 /* : nullable Int */;
6741 val* var18 /* : nullable Int */;
6742 val* var19 /* : nullable Bool */;
6743 val* var20 /* : nullable Bool */;
6744 val* var21 /* : String */;
6745 val* var23 /* : String */;
6746 val* var24 /* : MType */;
6747 val* var26 /* : MType */;
6748 val* var27 /* : String */;
6749 val* var28 /* : String */;
6750 val* var30 /* : NativeArray[String] */;
6751 static val* varonce29;
6752 static val* varonce31;
6753 val* var32 /* : String */;
6754 char* var33 /* : CString */;
6755 val* var34 /* : String */;
6756 val* var35 /* : nullable Int */;
6757 val* var36 /* : nullable Int */;
6758 val* var37 /* : nullable Bool */;
6759 val* var38 /* : nullable Bool */;
6760 val* var39 /* : String */;
6761 val* var41 /* : String */;
6762 val* var42 /* : MType */;
6763 val* var44 /* : MType */;
6764 val* var45 /* : String */;
6765 val* var46 /* : String */;
6766 {
6767 { /* Inline model$MParameter$is_vararg (self) on <self:MParameter> */
6768 var3 = self->attrs[COLOR_nitc__model__MParameter___is_vararg].s; /* _is_vararg on <self:MParameter> */
6769 var1 = var3;
6770 RET_LABEL2:(void)0;
6771 }
6772 }
6773 if (var1){
6774 if (unlikely(varonce==NULL)) {
6775 var4 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
6776 if (likely(varonce5!=NULL)) {
6777 var6 = varonce5;
6778 } else {
6779 var7 = ": ";
6780 var9 = (val*)(2l<<2|1);
6781 var10 = (val*)(2l<<2|1);
6782 var11 = (val*)((long)(0)<<2|3);
6783 var12 = (val*)((long)(0)<<2|3);
6784 var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12);
6785 var6 = var8;
6786 varonce5 = var6;
6787 }
6788 ((struct instance_core__NativeArray*)var4)->values[1]=var6;
6789 if (likely(varonce13!=NULL)) {
6790 var14 = varonce13;
6791 } else {
6792 var15 = "...";
6793 var17 = (val*)(3l<<2|1);
6794 var18 = (val*)(3l<<2|1);
6795 var19 = (val*)((long)(0)<<2|3);
6796 var20 = (val*)((long)(0)<<2|3);
6797 var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
6798 var14 = var16;
6799 varonce13 = var14;
6800 }
6801 ((struct instance_core__NativeArray*)var4)->values[3]=var14;
6802 } else {
6803 var4 = varonce;
6804 varonce = NULL;
6805 }
6806 {
6807 { /* Inline model$MParameter$name (self) on <self:MParameter> */
6808 var23 = self->attrs[COLOR_nitc__model__MParameter___name].val; /* _name on <self:MParameter> */
6809 if (unlikely(var23 == NULL)) {
6810 if(catchStack.cursor >= 0){
6811 longjmp(catchStack.envs[catchStack.cursor], 1);
6812 }
6813 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6814 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1993);
6815 fatal_exit(1);
6816 }
6817 var21 = var23;
6818 RET_LABEL22:(void)0;
6819 }
6820 }
6821 ((struct instance_core__NativeArray*)var4)->values[0]=var21;
6822 {
6823 { /* Inline model$MParameter$mtype (self) on <self:MParameter> */
6824 var26 = self->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <self:MParameter> */
6825 if (unlikely(var26 == NULL)) {
6826 if(catchStack.cursor >= 0){
6827 longjmp(catchStack.envs[catchStack.cursor], 1);
6828 }
6829 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6830 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
6831 fatal_exit(1);
6832 }
6833 var24 = var26;
6834 RET_LABEL25:(void)0;
6835 }
6836 }
6837 {
6838 var27 = ((val*(*)(val* self))(var24->class->vft[COLOR_core__abstract_text__Object__to_s]))(var24); /* to_s on <var24:MType>*/
6839 }
6840 ((struct instance_core__NativeArray*)var4)->values[2]=var27;
6841 {
6842 var28 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var4); /* native_to_s on <var4:NativeArray[String]>*/
6843 }
6844 varonce = var4;
6845 var = var28;
6846 goto RET_LABEL;
6847 } else {
6848 if (unlikely(varonce29==NULL)) {
6849 var30 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
6850 if (likely(varonce31!=NULL)) {
6851 var32 = varonce31;
6852 } else {
6853 var33 = ": ";
6854 var35 = (val*)(2l<<2|1);
6855 var36 = (val*)(2l<<2|1);
6856 var37 = (val*)((long)(0)<<2|3);
6857 var38 = (val*)((long)(0)<<2|3);
6858 var34 = core__flat___CString___to_s_unsafe(var33, var35, var36, var37, var38);
6859 var32 = var34;
6860 varonce31 = var32;
6861 }
6862 ((struct instance_core__NativeArray*)var30)->values[1]=var32;
6863 } else {
6864 var30 = varonce29;
6865 varonce29 = NULL;
6866 }
6867 {
6868 { /* Inline model$MParameter$name (self) on <self:MParameter> */
6869 var41 = self->attrs[COLOR_nitc__model__MParameter___name].val; /* _name on <self:MParameter> */
6870 if (unlikely(var41 == NULL)) {
6871 if(catchStack.cursor >= 0){
6872 longjmp(catchStack.envs[catchStack.cursor], 1);
6873 }
6874 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6875 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1993);
6876 fatal_exit(1);
6877 }
6878 var39 = var41;
6879 RET_LABEL40:(void)0;
6880 }
6881 }
6882 ((struct instance_core__NativeArray*)var30)->values[0]=var39;
6883 {
6884 { /* Inline model$MParameter$mtype (self) on <self:MParameter> */
6885 var44 = self->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <self:MParameter> */
6886 if (unlikely(var44 == NULL)) {
6887 if(catchStack.cursor >= 0){
6888 longjmp(catchStack.envs[catchStack.cursor], 1);
6889 }
6890 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6891 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
6892 fatal_exit(1);
6893 }
6894 var42 = var44;
6895 RET_LABEL43:(void)0;
6896 }
6897 }
6898 {
6899 var45 = ((val*(*)(val* self))(var42->class->vft[COLOR_core__abstract_text__Object__to_s]))(var42); /* to_s on <var42:MType>*/
6900 }
6901 ((struct instance_core__NativeArray*)var30)->values[2]=var45;
6902 {
6903 var46 = ((val*(*)(val* self))(var30->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var30); /* native_to_s on <var30:NativeArray[String]>*/
6904 }
6905 varonce29 = var30;
6906 var = var46;
6907 goto RET_LABEL;
6908 }
6909 RET_LABEL:;
6910 return var;
6911 }
6912 /* method model$MParameter$resolve_for for (self: MParameter, MType, nullable MClassType, MModule, Bool): MParameter */
6913 val* nitc___nitc__MParameter___resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
6914 val* var /* : MParameter */;
6915 val* var_mtype /* var mtype: MType */;
6916 val* var_anchor /* var anchor: nullable MClassType */;
6917 val* var_mmodule /* var mmodule: MModule */;
6918 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
6919 val* var1 /* : MType */;
6920 val* var3 /* : MType */;
6921 short int var4 /* : Bool */;
6922 short int var5 /* : Bool */;
6923 val* var6 /* : MType */;
6924 val* var8 /* : MType */;
6925 val* var9 /* : MType */;
6926 val* var_newtype /* var newtype: MType */;
6927 val* var10 /* : MParameter */;
6928 val* var11 /* : String */;
6929 val* var13 /* : String */;
6930 short int var14 /* : Bool */;
6931 short int var16 /* : Bool */;
6932 val* var_res /* var res: MParameter */;
6933 var_mtype = p0;
6934 var_anchor = p1;
6935 var_mmodule = p2;
6936 var_cleanup_virtual = p3;
6937 {
6938 { /* Inline model$MParameter$mtype (self) on <self:MParameter> */
6939 var3 = self->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <self:MParameter> */
6940 if (unlikely(var3 == NULL)) {
6941 if(catchStack.cursor >= 0){
6942 longjmp(catchStack.envs[catchStack.cursor], 1);
6943 }
6944 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6945 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
6946 fatal_exit(1);
6947 }
6948 var1 = var3;
6949 RET_LABEL2:(void)0;
6950 }
6951 }
6952 {
6953 var4 = ((short int(*)(val* self))(var1->class->vft[COLOR_nitc__model__MType__need_anchor]))(var1); /* need_anchor on <var1:MType>*/
6954 }
6955 var5 = !var4;
6956 if (var5){
6957 var = self;
6958 goto RET_LABEL;
6959 } else {
6960 }
6961 {
6962 { /* Inline model$MParameter$mtype (self) on <self:MParameter> */
6963 var8 = self->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <self:MParameter> */
6964 if (unlikely(var8 == NULL)) {
6965 if(catchStack.cursor >= 0){
6966 longjmp(catchStack.envs[catchStack.cursor], 1);
6967 }
6968 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6969 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
6970 fatal_exit(1);
6971 }
6972 var6 = var8;
6973 RET_LABEL7:(void)0;
6974 }
6975 }
6976 {
6977 var9 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var6->class->vft[COLOR_nitc__model__MType__resolve_for]))(var6, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual); /* resolve_for on <var6:MType>*/
6978 }
6979 var_newtype = var9;
6980 var10 = NEW_nitc__MParameter(&type_nitc__MParameter);
6981 {
6982 { /* Inline model$MParameter$name (self) on <self:MParameter> */
6983 var13 = self->attrs[COLOR_nitc__model__MParameter___name].val; /* _name on <self:MParameter> */
6984 if (unlikely(var13 == NULL)) {
6985 if(catchStack.cursor >= 0){
6986 longjmp(catchStack.envs[catchStack.cursor], 1);
6987 }
6988 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6989 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1993);
6990 fatal_exit(1);
6991 }
6992 var11 = var13;
6993 RET_LABEL12:(void)0;
6994 }
6995 }
6996 {
6997 { /* Inline model$MParameter$is_vararg (self) on <self:MParameter> */
6998 var16 = self->attrs[COLOR_nitc__model__MParameter___is_vararg].s; /* _is_vararg on <self:MParameter> */
6999 var14 = var16;
7000 RET_LABEL15:(void)0;
7001 }
7002 }
7003 {
7004 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__model__MParameter__name_61d]))(var10, var11); /* name= on <var10:MParameter>*/
7005 }
7006 {
7007 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__model__MParameter__mtype_61d]))(var10, var_newtype); /* mtype= on <var10:MParameter>*/
7008 }
7009 {
7010 ((void(*)(val* self, short int p0))(var10->class->vft[COLOR_nitc__model__MParameter__is_vararg_61d]))(var10, var14); /* is_vararg= on <var10:MParameter>*/
7011 }
7012 {
7013 ((void(*)(val* self))(var10->class->vft[COLOR_core__kernel__Object__init]))(var10); /* init on <var10:MParameter>*/
7014 }
7015 var_res = var10;
7016 var = var_res;
7017 goto RET_LABEL;
7018 RET_LABEL:;
7019 return var;
7020 }
7021 /* method model$MParameter$model for (self: MParameter): Model */
7022 val* nitc___nitc__MParameter___nitc__model_base__MEntity__model(val* self) {
7023 val* var /* : Model */;
7024 val* var1 /* : MType */;
7025 val* var3 /* : MType */;
7026 val* var4 /* : Model */;
7027 {
7028 { /* Inline model$MParameter$mtype (self) on <self:MParameter> */
7029 var3 = self->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <self:MParameter> */
7030 if (unlikely(var3 == NULL)) {
7031 if(catchStack.cursor >= 0){
7032 longjmp(catchStack.envs[catchStack.cursor], 1);
7033 }
7034 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7035 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
7036 fatal_exit(1);
7037 }
7038 var1 = var3;
7039 RET_LABEL2:(void)0;
7040 }
7041 }
7042 {
7043 var4 = ((val*(*)(val* self))(var1->class->vft[COLOR_nitc__model_base__MEntity__model]))(var1); /* model on <var1:MType>*/
7044 }
7045 var = var4;
7046 goto RET_LABEL;
7047 RET_LABEL:;
7048 return var;
7049 }
7050 /* method model$MParameter$init for (self: MParameter) */
7051 void nitc___nitc__MParameter___core__kernel__Object__init(val* self) {
7052 {
7053 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MParameter___core__kernel__Object__init]))(self); /* init on <self:MParameter>*/
7054 }
7055 RET_LABEL:;
7056 }
7057 /* method model$MProperty$intro_mclassdef for (self: MProperty): MClassDef */
7058 val* nitc___nitc__MProperty___intro_mclassdef(val* self) {
7059 val* var /* : MClassDef */;
7060 val* var1 /* : MClassDef */;
7061 var1 = self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
7062 if (unlikely(var1 == NULL)) {
7063 if(catchStack.cursor >= 0){
7064 longjmp(catchStack.envs[catchStack.cursor], 1);
7065 }
7066 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7067 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2042);
7068 fatal_exit(1);
7069 }
7070 var = var1;
7071 RET_LABEL:;
7072 return var;
7073 }
7074 /* method model$MProperty$intro_mclassdef= for (self: MProperty, MClassDef) */
7075 void nitc___nitc__MProperty___intro_mclassdef_61d(val* self, val* p0) {
7076 self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val = p0; /* _intro_mclassdef on <self:MProperty> */
7077 RET_LABEL:;
7078 }
7079 /* method model$MProperty$name for (self: MProperty): String */
7080 val* nitc___nitc__MProperty___nitc__model_base__MEntity__name(val* self) {
7081 val* var /* : String */;
7082 val* var1 /* : String */;
7083 var1 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MProperty> */
7084 if (unlikely(var1 == NULL)) {
7085 if(catchStack.cursor >= 0){
7086 longjmp(catchStack.envs[catchStack.cursor], 1);
7087 }
7088 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
7089 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
7090 fatal_exit(1);
7091 }
7092 var = var1;
7093 RET_LABEL:;
7094 return var;
7095 }
7096 /* method model$MProperty$name= for (self: MProperty, String) */
7097 void nitc___nitc__MProperty___name_61d(val* self, val* p0) {
7098 self->attrs[COLOR_nitc__model__MProperty___name].val = p0; /* _name on <self:MProperty> */
7099 RET_LABEL:;
7100 }
7101 /* method model$MProperty$location for (self: MProperty): Location */
7102 val* nitc___nitc__MProperty___nitc__model_base__MEntity__location(val* self) {
7103 val* var /* : Location */;
7104 val* var1 /* : Location */;
7105 var1 = self->attrs[COLOR_nitc__model__MProperty___location].val; /* _location on <self:MProperty> */
7106 if (unlikely(var1 == NULL)) {
7107 if(catchStack.cursor >= 0){
7108 longjmp(catchStack.envs[catchStack.cursor], 1);
7109 }
7110 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
7111 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2050);
7112 fatal_exit(1);
7113 }
7114 var = var1;
7115 RET_LABEL:;
7116 return var;
7117 }
7118 /* method model$MProperty$location= for (self: MProperty, Location) */
7119 void nitc___nitc__MProperty___location_61d(val* self, val* p0) {
7120 self->attrs[COLOR_nitc__model__MProperty___location].val = p0; /* _location on <self:MProperty> */
7121 RET_LABEL:;
7122 }
7123 /* method model$MProperty$full_name for (self: MProperty): String */
7124 val* nitc___nitc__MProperty___nitc__model_base__MEntity__full_name(val* self) {
7125 val* var /* : String */;
7126 short int var1 /* : Bool */;
7127 val* var2 /* : String */;
7128 val* var3 /* : String */;
7129 val* var5 /* : MClassDef */;
7130 val* var7 /* : MClassDef */;
7131 short int var8 /* : Bool */;
7132 val* var9 /* : NativeArray[String] */;
7133 static val* varonce;
7134 static val* varonce10;
7135 val* var11 /* : String */;
7136 char* var12 /* : CString */;
7137 val* var13 /* : String */;
7138 val* var14 /* : nullable Int */;
7139 val* var15 /* : nullable Int */;
7140 val* var16 /* : nullable Bool */;
7141 val* var17 /* : nullable Bool */;
7142 static val* varonce18;
7143 val* var19 /* : String */;
7144 char* var20 /* : CString */;
7145 val* var21 /* : String */;
7146 val* var22 /* : nullable Int */;
7147 val* var23 /* : nullable Int */;
7148 val* var24 /* : nullable Bool */;
7149 val* var25 /* : nullable Bool */;
7150 val* var26 /* : MClassDef */;
7151 val* var28 /* : MClassDef */;
7152 val* var29 /* : MModule */;
7153 val* var31 /* : MModule */;
7154 val* var32 /* : MVisibility */;
7155 val* var34 /* : MVisibility */;
7156 val* var35 /* : String */;
7157 val* var36 /* : MClassDef */;
7158 val* var38 /* : MClassDef */;
7159 val* var39 /* : MClass */;
7160 val* var41 /* : MClass */;
7161 val* var42 /* : String */;
7162 val* var44 /* : String */;
7163 val* var45 /* : String */;
7164 val* var47 /* : String */;
7165 val* var48 /* : String */;
7166 val* var50 /* : NativeArray[String] */;
7167 static val* varonce49;
7168 static val* varonce51;
7169 val* var52 /* : String */;
7170 char* var53 /* : CString */;
7171 val* var54 /* : String */;
7172 val* var55 /* : nullable Int */;
7173 val* var56 /* : nullable Int */;
7174 val* var57 /* : nullable Bool */;
7175 val* var58 /* : nullable Bool */;
7176 static val* varonce59;
7177 val* var60 /* : String */;
7178 char* var61 /* : CString */;
7179 val* var62 /* : String */;
7180 val* var63 /* : nullable Int */;
7181 val* var64 /* : nullable Int */;
7182 val* var65 /* : nullable Bool */;
7183 val* var66 /* : nullable Bool */;
7184 val* var67 /* : MClassDef */;
7185 val* var69 /* : MClassDef */;
7186 val* var70 /* : MModule */;
7187 val* var72 /* : MModule */;
7188 val* var73 /* : String */;
7189 val* var74 /* : MClassDef */;
7190 val* var76 /* : MClassDef */;
7191 val* var77 /* : MClass */;
7192 val* var79 /* : MClass */;
7193 val* var80 /* : String */;
7194 val* var82 /* : String */;
7195 val* var83 /* : String */;
7196 val* var85 /* : String */;
7197 val* var86 /* : String */;
7198 var1 = self->attrs[COLOR_nitc__model__MProperty___full_name].val != NULL; /* _full_name on <self:MProperty> */
7199 if(likely(var1)) {
7200 var2 = self->attrs[COLOR_nitc__model__MProperty___full_name].val; /* _full_name on <self:MProperty> */
7201 if (unlikely(var2 == NULL)) {
7202 if(catchStack.cursor >= 0){
7203 longjmp(catchStack.envs[catchStack.cursor], 1);
7204 }
7205 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_name");
7206 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2054);
7207 fatal_exit(1);
7208 }
7209 } else {
7210 {
7211 {
7212 { /* Inline model$MProperty$intro_mclassdef (self) on <self:MProperty> */
7213 var7 = self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
7214 if (unlikely(var7 == NULL)) {
7215 if(catchStack.cursor >= 0){
7216 longjmp(catchStack.envs[catchStack.cursor], 1);
7217 }
7218 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7219 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2042);
7220 fatal_exit(1);
7221 }
7222 var5 = var7;
7223 RET_LABEL6:(void)0;
7224 }
7225 }
7226 {
7227 var8 = nitc___nitc__MClassDef___is_intro(var5);
7228 }
7229 if (var8){
7230 if (unlikely(varonce==NULL)) {
7231 var9 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
7232 if (likely(varonce10!=NULL)) {
7233 var11 = varonce10;
7234 } else {
7235 var12 = "::";
7236 var14 = (val*)(2l<<2|1);
7237 var15 = (val*)(2l<<2|1);
7238 var16 = (val*)((long)(0)<<2|3);
7239 var17 = (val*)((long)(0)<<2|3);
7240 var13 = core__flat___CString___to_s_unsafe(var12, var14, var15, var16, var17);
7241 var11 = var13;
7242 varonce10 = var11;
7243 }
7244 ((struct instance_core__NativeArray*)var9)->values[1]=var11;
7245 if (likely(varonce18!=NULL)) {
7246 var19 = varonce18;
7247 } else {
7248 var20 = "::";
7249 var22 = (val*)(2l<<2|1);
7250 var23 = (val*)(2l<<2|1);
7251 var24 = (val*)((long)(0)<<2|3);
7252 var25 = (val*)((long)(0)<<2|3);
7253 var21 = core__flat___CString___to_s_unsafe(var20, var22, var23, var24, var25);
7254 var19 = var21;
7255 varonce18 = var19;
7256 }
7257 ((struct instance_core__NativeArray*)var9)->values[3]=var19;
7258 } else {
7259 var9 = varonce;
7260 varonce = NULL;
7261 }
7262 {
7263 { /* Inline model$MProperty$intro_mclassdef (self) on <self:MProperty> */
7264 var28 = self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
7265 if (unlikely(var28 == NULL)) {
7266 if(catchStack.cursor >= 0){
7267 longjmp(catchStack.envs[catchStack.cursor], 1);
7268 }
7269 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7270 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2042);
7271 fatal_exit(1);
7272 }
7273 var26 = var28;
7274 RET_LABEL27:(void)0;
7275 }
7276 }
7277 {
7278 { /* Inline model$MClassDef$mmodule (var26) on <var26:MClassDef> */
7279 var31 = var26->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var26:MClassDef> */
7280 if (unlikely(var31 == NULL)) {
7281 if(catchStack.cursor >= 0){
7282 longjmp(catchStack.envs[catchStack.cursor], 1);
7283 }
7284 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7285 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
7286 fatal_exit(1);
7287 }
7288 var29 = var31;
7289 RET_LABEL30:(void)0;
7290 }
7291 }
7292 {
7293 { /* Inline model$MProperty$visibility (self) on <self:MProperty> */
7294 var34 = self->attrs[COLOR_nitc__model__MProperty___visibility].val; /* _visibility on <self:MProperty> */
7295 if (unlikely(var34 == NULL)) {
7296 if(catchStack.cursor >= 0){
7297 longjmp(catchStack.envs[catchStack.cursor], 1);
7298 }
7299 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
7300 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2078);
7301 fatal_exit(1);
7302 }
7303 var32 = var34;
7304 RET_LABEL33:(void)0;
7305 }
7306 }
7307 {
7308 var35 = nitc___nitc__MModule___namespace_for(var29, var32);
7309 }
7310 ((struct instance_core__NativeArray*)var9)->values[0]=var35;
7311 {
7312 { /* Inline model$MProperty$intro_mclassdef (self) on <self:MProperty> */
7313 var38 = self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
7314 if (unlikely(var38 == NULL)) {
7315 if(catchStack.cursor >= 0){
7316 longjmp(catchStack.envs[catchStack.cursor], 1);
7317 }
7318 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7319 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2042);
7320 fatal_exit(1);
7321 }
7322 var36 = var38;
7323 RET_LABEL37:(void)0;
7324 }
7325 }
7326 {
7327 { /* Inline model$MClassDef$mclass (var36) on <var36:MClassDef> */
7328 var41 = var36->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var36:MClassDef> */
7329 if (unlikely(var41 == NULL)) {
7330 if(catchStack.cursor >= 0){
7331 longjmp(catchStack.envs[catchStack.cursor], 1);
7332 }
7333 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7334 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 591);
7335 fatal_exit(1);
7336 }
7337 var39 = var41;
7338 RET_LABEL40:(void)0;
7339 }
7340 }
7341 {
7342 { /* Inline model$MClass$name (var39) on <var39:MClass> */
7343 var44 = var39->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var39:MClass> */
7344 if (unlikely(var44 == NULL)) {
7345 if(catchStack.cursor >= 0){
7346 longjmp(catchStack.envs[catchStack.cursor], 1);
7347 }
7348 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
7349 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
7350 fatal_exit(1);
7351 }
7352 var42 = var44;
7353 RET_LABEL43:(void)0;
7354 }
7355 }
7356 ((struct instance_core__NativeArray*)var9)->values[2]=var42;
7357 {
7358 { /* Inline model$MProperty$name (self) on <self:MProperty> */
7359 var47 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MProperty> */
7360 if (unlikely(var47 == NULL)) {
7361 if(catchStack.cursor >= 0){
7362 longjmp(catchStack.envs[catchStack.cursor], 1);
7363 }
7364 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
7365 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
7366 fatal_exit(1);
7367 }
7368 var45 = var47;
7369 RET_LABEL46:(void)0;
7370 }
7371 }
7372 ((struct instance_core__NativeArray*)var9)->values[4]=var45;
7373 {
7374 var48 = ((val*(*)(val* self))(var9->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var9); /* native_to_s on <var9:NativeArray[String]>*/
7375 }
7376 varonce = var9;
7377 var3 = var48;
7378 goto RET_LABEL4;
7379 } else {
7380 if (unlikely(varonce49==NULL)) {
7381 var50 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
7382 if (likely(varonce51!=NULL)) {
7383 var52 = varonce51;
7384 } else {
7385 var53 = "::";
7386 var55 = (val*)(2l<<2|1);
7387 var56 = (val*)(2l<<2|1);
7388 var57 = (val*)((long)(0)<<2|3);
7389 var58 = (val*)((long)(0)<<2|3);
7390 var54 = core__flat___CString___to_s_unsafe(var53, var55, var56, var57, var58);
7391 var52 = var54;
7392 varonce51 = var52;
7393 }
7394 ((struct instance_core__NativeArray*)var50)->values[1]=var52;
7395 if (likely(varonce59!=NULL)) {
7396 var60 = varonce59;
7397 } else {
7398 var61 = "::";
7399 var63 = (val*)(2l<<2|1);
7400 var64 = (val*)(2l<<2|1);
7401 var65 = (val*)((long)(0)<<2|3);
7402 var66 = (val*)((long)(0)<<2|3);
7403 var62 = core__flat___CString___to_s_unsafe(var61, var63, var64, var65, var66);
7404 var60 = var62;
7405 varonce59 = var60;
7406 }
7407 ((struct instance_core__NativeArray*)var50)->values[3]=var60;
7408 } else {
7409 var50 = varonce49;
7410 varonce49 = NULL;
7411 }
7412 {
7413 { /* Inline model$MProperty$intro_mclassdef (self) on <self:MProperty> */
7414 var69 = self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
7415 if (unlikely(var69 == NULL)) {
7416 if(catchStack.cursor >= 0){
7417 longjmp(catchStack.envs[catchStack.cursor], 1);
7418 }
7419 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7420 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2042);
7421 fatal_exit(1);
7422 }
7423 var67 = var69;
7424 RET_LABEL68:(void)0;
7425 }
7426 }
7427 {
7428 { /* Inline model$MClassDef$mmodule (var67) on <var67:MClassDef> */
7429 var72 = var67->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var67:MClassDef> */
7430 if (unlikely(var72 == NULL)) {
7431 if(catchStack.cursor >= 0){
7432 longjmp(catchStack.envs[catchStack.cursor], 1);
7433 }
7434 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7435 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
7436 fatal_exit(1);
7437 }
7438 var70 = var72;
7439 RET_LABEL71:(void)0;
7440 }
7441 }
7442 {
7443 var73 = nitc___nitc__MModule___nitc__model_base__MEntity__full_name(var70);
7444 }
7445 ((struct instance_core__NativeArray*)var50)->values[0]=var73;
7446 {
7447 { /* Inline model$MProperty$intro_mclassdef (self) on <self:MProperty> */
7448 var76 = self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
7449 if (unlikely(var76 == NULL)) {
7450 if(catchStack.cursor >= 0){
7451 longjmp(catchStack.envs[catchStack.cursor], 1);
7452 }
7453 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7454 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2042);
7455 fatal_exit(1);
7456 }
7457 var74 = var76;
7458 RET_LABEL75:(void)0;
7459 }
7460 }
7461 {
7462 { /* Inline model$MClassDef$mclass (var74) on <var74:MClassDef> */
7463 var79 = var74->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var74:MClassDef> */
7464 if (unlikely(var79 == NULL)) {
7465 if(catchStack.cursor >= 0){
7466 longjmp(catchStack.envs[catchStack.cursor], 1);
7467 }
7468 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7469 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 591);
7470 fatal_exit(1);
7471 }
7472 var77 = var79;
7473 RET_LABEL78:(void)0;
7474 }
7475 }
7476 {
7477 { /* Inline model$MClass$name (var77) on <var77:MClass> */
7478 var82 = var77->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var77:MClass> */
7479 if (unlikely(var82 == NULL)) {
7480 if(catchStack.cursor >= 0){
7481 longjmp(catchStack.envs[catchStack.cursor], 1);
7482 }
7483 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
7484 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
7485 fatal_exit(1);
7486 }
7487 var80 = var82;
7488 RET_LABEL81:(void)0;
7489 }
7490 }
7491 ((struct instance_core__NativeArray*)var50)->values[2]=var80;
7492 {
7493 { /* Inline model$MProperty$name (self) on <self:MProperty> */
7494 var85 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MProperty> */
7495 if (unlikely(var85 == NULL)) {
7496 if(catchStack.cursor >= 0){
7497 longjmp(catchStack.envs[catchStack.cursor], 1);
7498 }
7499 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
7500 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
7501 fatal_exit(1);
7502 }
7503 var83 = var85;
7504 RET_LABEL84:(void)0;
7505 }
7506 }
7507 ((struct instance_core__NativeArray*)var50)->values[4]=var83;
7508 {
7509 var86 = ((val*(*)(val* self))(var50->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var50); /* native_to_s on <var50:NativeArray[String]>*/
7510 }
7511 varonce49 = var50;
7512 var3 = var86;
7513 goto RET_LABEL4;
7514 }
7515 RET_LABEL4:(void)0;
7516 }
7517 self->attrs[COLOR_nitc__model__MProperty___full_name].val = var3; /* _full_name on <self:MProperty> */
7518 var2 = var3;
7519 }
7520 var = var2;
7521 RET_LABEL:;
7522 return var;
7523 }
7524 /* method model$MProperty$c_name for (self: MProperty): String */
7525 val* nitc___nitc__MProperty___nitc__model_base__MEntity__c_name(val* self) {
7526 val* var /* : String */;
7527 short int var1 /* : Bool */;
7528 val* var2 /* : String */;
7529 val* var3 /* : String */;
7530 val* var5 /* : NativeArray[String] */;
7531 static val* varonce;
7532 static val* varonce6;
7533 val* var7 /* : String */;
7534 char* var8 /* : CString */;
7535 val* var9 /* : String */;
7536 val* var10 /* : nullable Int */;
7537 val* var11 /* : nullable Int */;
7538 val* var12 /* : nullable Bool */;
7539 val* var13 /* : nullable Bool */;
7540 static val* varonce14;
7541 val* var15 /* : String */;
7542 char* var16 /* : CString */;
7543 val* var17 /* : String */;
7544 val* var18 /* : nullable Int */;
7545 val* var19 /* : nullable Int */;
7546 val* var20 /* : nullable Bool */;
7547 val* var21 /* : nullable Bool */;
7548 val* var22 /* : MClassDef */;
7549 val* var24 /* : MClassDef */;
7550 val* var25 /* : MModule */;
7551 val* var27 /* : MModule */;
7552 val* var28 /* : String */;
7553 val* var29 /* : MClassDef */;
7554 val* var31 /* : MClassDef */;
7555 val* var32 /* : MClass */;
7556 val* var34 /* : MClass */;
7557 val* var35 /* : String */;
7558 val* var37 /* : String */;
7559 val* var38 /* : String */;
7560 val* var39 /* : String */;
7561 val* var41 /* : String */;
7562 val* var42 /* : String */;
7563 val* var43 /* : String */;
7564 var1 = self->attrs[COLOR_nitc__model__MProperty___c_name].val != NULL; /* _c_name on <self:MProperty> */
7565 if(likely(var1)) {
7566 var2 = self->attrs[COLOR_nitc__model__MProperty___c_name].val; /* _c_name on <self:MProperty> */
7567 if (unlikely(var2 == NULL)) {
7568 if(catchStack.cursor >= 0){
7569 longjmp(catchStack.envs[catchStack.cursor], 1);
7570 }
7571 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_name");
7572 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2073);
7573 fatal_exit(1);
7574 }
7575 } else {
7576 {
7577 if (unlikely(varonce==NULL)) {
7578 var5 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
7579 if (likely(varonce6!=NULL)) {
7580 var7 = varonce6;
7581 } else {
7582 var8 = "__";
7583 var10 = (val*)(2l<<2|1);
7584 var11 = (val*)(2l<<2|1);
7585 var12 = (val*)((long)(0)<<2|3);
7586 var13 = (val*)((long)(0)<<2|3);
7587 var9 = core__flat___CString___to_s_unsafe(var8, var10, var11, var12, var13);
7588 var7 = var9;
7589 varonce6 = var7;
7590 }
7591 ((struct instance_core__NativeArray*)var5)->values[1]=var7;
7592 if (likely(varonce14!=NULL)) {
7593 var15 = varonce14;
7594 } else {
7595 var16 = "__";
7596 var18 = (val*)(2l<<2|1);
7597 var19 = (val*)(2l<<2|1);
7598 var20 = (val*)((long)(0)<<2|3);
7599 var21 = (val*)((long)(0)<<2|3);
7600 var17 = core__flat___CString___to_s_unsafe(var16, var18, var19, var20, var21);
7601 var15 = var17;
7602 varonce14 = var15;
7603 }
7604 ((struct instance_core__NativeArray*)var5)->values[3]=var15;
7605 } else {
7606 var5 = varonce;
7607 varonce = NULL;
7608 }
7609 {
7610 { /* Inline model$MProperty$intro_mclassdef (self) on <self:MProperty> */
7611 var24 = self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
7612 if (unlikely(var24 == NULL)) {
7613 if(catchStack.cursor >= 0){
7614 longjmp(catchStack.envs[catchStack.cursor], 1);
7615 }
7616 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7617 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2042);
7618 fatal_exit(1);
7619 }
7620 var22 = var24;
7621 RET_LABEL23:(void)0;
7622 }
7623 }
7624 {
7625 { /* Inline model$MClassDef$mmodule (var22) on <var22:MClassDef> */
7626 var27 = var22->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var22:MClassDef> */
7627 if (unlikely(var27 == NULL)) {
7628 if(catchStack.cursor >= 0){
7629 longjmp(catchStack.envs[catchStack.cursor], 1);
7630 }
7631 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7632 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
7633 fatal_exit(1);
7634 }
7635 var25 = var27;
7636 RET_LABEL26:(void)0;
7637 }
7638 }
7639 {
7640 var28 = nitc___nitc__MModule___nitc__model_base__MEntity__c_name(var25);
7641 }
7642 ((struct instance_core__NativeArray*)var5)->values[0]=var28;
7643 {
7644 { /* Inline model$MProperty$intro_mclassdef (self) on <self:MProperty> */
7645 var31 = self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
7646 if (unlikely(var31 == NULL)) {
7647 if(catchStack.cursor >= 0){
7648 longjmp(catchStack.envs[catchStack.cursor], 1);
7649 }
7650 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7651 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2042);
7652 fatal_exit(1);
7653 }
7654 var29 = var31;
7655 RET_LABEL30:(void)0;
7656 }
7657 }
7658 {
7659 { /* Inline model$MClassDef$mclass (var29) on <var29:MClassDef> */
7660 var34 = var29->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var29:MClassDef> */
7661 if (unlikely(var34 == NULL)) {
7662 if(catchStack.cursor >= 0){
7663 longjmp(catchStack.envs[catchStack.cursor], 1);
7664 }
7665 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7666 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 591);
7667 fatal_exit(1);
7668 }
7669 var32 = var34;
7670 RET_LABEL33:(void)0;
7671 }
7672 }
7673 {
7674 { /* Inline model$MClass$name (var32) on <var32:MClass> */
7675 var37 = var32->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var32:MClass> */
7676 if (unlikely(var37 == NULL)) {
7677 if(catchStack.cursor >= 0){
7678 longjmp(catchStack.envs[catchStack.cursor], 1);
7679 }
7680 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
7681 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
7682 fatal_exit(1);
7683 }
7684 var35 = var37;
7685 RET_LABEL36:(void)0;
7686 }
7687 }
7688 {
7689 var38 = core___core__Text___to_cmangle(var35);
7690 }
7691 ((struct instance_core__NativeArray*)var5)->values[2]=var38;
7692 {
7693 { /* Inline model$MProperty$name (self) on <self:MProperty> */
7694 var41 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MProperty> */
7695 if (unlikely(var41 == NULL)) {
7696 if(catchStack.cursor >= 0){
7697 longjmp(catchStack.envs[catchStack.cursor], 1);
7698 }
7699 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
7700 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
7701 fatal_exit(1);
7702 }
7703 var39 = var41;
7704 RET_LABEL40:(void)0;
7705 }
7706 }
7707 {
7708 var42 = core___core__Text___to_cmangle(var39);
7709 }
7710 ((struct instance_core__NativeArray*)var5)->values[4]=var42;
7711 {
7712 var43 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var5); /* native_to_s on <var5:NativeArray[String]>*/
7713 }
7714 varonce = var5;
7715 var3 = var43;
7716 goto RET_LABEL4;
7717 RET_LABEL4:(void)0;
7718 }
7719 self->attrs[COLOR_nitc__model__MProperty___c_name].val = var3; /* _c_name on <self:MProperty> */
7720 var2 = var3;
7721 }
7722 var = var2;
7723 RET_LABEL:;
7724 return var;
7725 }
7726 /* method model$MProperty$visibility for (self: MProperty): MVisibility */
7727 val* nitc___nitc__MProperty___MEntity__visibility(val* self) {
7728 val* var /* : MVisibility */;
7729 val* var1 /* : MVisibility */;
7730 var1 = self->attrs[COLOR_nitc__model__MProperty___visibility].val; /* _visibility on <self:MProperty> */
7731 if (unlikely(var1 == NULL)) {
7732 if(catchStack.cursor >= 0){
7733 longjmp(catchStack.envs[catchStack.cursor], 1);
7734 }
7735 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
7736 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2078);
7737 fatal_exit(1);
7738 }
7739 var = var1;
7740 RET_LABEL:;
7741 return var;
7742 }
7743 /* method model$MProperty$visibility= for (self: MProperty, MVisibility) */
7744 void nitc___nitc__MProperty___visibility_61d(val* self, val* p0) {
7745 self->attrs[COLOR_nitc__model__MProperty___visibility].val = p0; /* _visibility on <self:MProperty> */
7746 RET_LABEL:;
7747 }
7748 /* method model$MProperty$is_autoinit for (self: MProperty): Bool */
7749 short int nitc___nitc__MProperty___is_autoinit(val* self) {
7750 short int var /* : Bool */;
7751 short int var1 /* : Bool */;
7752 var1 = self->attrs[COLOR_nitc__model__MProperty___is_autoinit].s; /* _is_autoinit on <self:MProperty> */
7753 var = var1;
7754 RET_LABEL:;
7755 return var;
7756 }
7757 /* method model$MProperty$is_autoinit= for (self: MProperty, Bool) */
7758 void nitc___nitc__MProperty___is_autoinit_61d(val* self, short int p0) {
7759 self->attrs[COLOR_nitc__model__MProperty___is_autoinit].s = p0; /* _is_autoinit on <self:MProperty> */
7760 RET_LABEL:;
7761 }
7762 /* method model$MProperty$init for (self: MProperty) */
7763 void nitc___nitc__MProperty___core__kernel__Object__init(val* self) {
7764 val* var /* : MClassDef */;
7765 val* var2 /* : MClassDef */;
7766 val* var3 /* : Array[MProperty] */;
7767 val* var5 /* : Array[MProperty] */;
7768 val* var6 /* : MClassDef */;
7769 val* var8 /* : MClassDef */;
7770 val* var9 /* : MModule */;
7771 val* var11 /* : MModule */;
7772 val* var12 /* : Model */;
7773 val* var14 /* : Model */;
7774 val* var_model /* var model: Model */;
7775 val* var15 /* : MultiHashMap[String, MProperty] */;
7776 val* var17 /* : MultiHashMap[String, MProperty] */;
7777 val* var18 /* : String */;
7778 val* var20 /* : String */;
7779 val* var21 /* : Array[MProperty] */;
7780 val* var23 /* : Array[MProperty] */;
7781 {
7782 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MProperty___core__kernel__Object__init]))(self); /* init on <self:MProperty>*/
7783 }
7784 {
7785 { /* Inline model$MProperty$intro_mclassdef (self) on <self:MProperty> */
7786 var2 = self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
7787 if (unlikely(var2 == NULL)) {
7788 if(catchStack.cursor >= 0){
7789 longjmp(catchStack.envs[catchStack.cursor], 1);
7790 }
7791 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7792 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2042);
7793 fatal_exit(1);
7794 }
7795 var = var2;
7796 RET_LABEL1:(void)0;
7797 }
7798 }
7799 {
7800 { /* Inline model$MClassDef$intro_mproperties (var) on <var:MClassDef> */
7801 var5 = var->attrs[COLOR_nitc__model__MClassDef___intro_mproperties].val; /* _intro_mproperties on <var:MClassDef> */
7802 if (unlikely(var5 == NULL)) {
7803 if(catchStack.cursor >= 0){
7804 longjmp(catchStack.envs[catchStack.cursor], 1);
7805 }
7806 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mproperties");
7807 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 720);
7808 fatal_exit(1);
7809 }
7810 var3 = var5;
7811 RET_LABEL4:(void)0;
7812 }
7813 }
7814 {
7815 core___core__Array___core__abstract_collection__SimpleCollection__add(var3, self); /* Direct call array$Array$add on <var3:Array[MProperty]>*/
7816 }
7817 {
7818 { /* Inline model$MProperty$intro_mclassdef (self) on <self:MProperty> */
7819 var8 = self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
7820 if (unlikely(var8 == NULL)) {
7821 if(catchStack.cursor >= 0){
7822 longjmp(catchStack.envs[catchStack.cursor], 1);
7823 }
7824 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7825 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2042);
7826 fatal_exit(1);
7827 }
7828 var6 = var8;
7829 RET_LABEL7:(void)0;
7830 }
7831 }
7832 {
7833 { /* Inline model$MClassDef$mmodule (var6) on <var6:MClassDef> */
7834 var11 = var6->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var6:MClassDef> */
7835 if (unlikely(var11 == NULL)) {
7836 if(catchStack.cursor >= 0){
7837 longjmp(catchStack.envs[catchStack.cursor], 1);
7838 }
7839 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7840 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
7841 fatal_exit(1);
7842 }
7843 var9 = var11;
7844 RET_LABEL10:(void)0;
7845 }
7846 }
7847 {
7848 { /* Inline mmodule$MModule$model (var9) on <var9:MModule> */
7849 var14 = var9->attrs[COLOR_nitc__mmodule__MModule___model].val; /* _model on <var9:MModule> */
7850 if (unlikely(var14 == NULL)) {
7851 if(catchStack.cursor >= 0){
7852 longjmp(catchStack.envs[catchStack.cursor], 1);
7853 }
7854 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
7855 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 77);
7856 fatal_exit(1);
7857 }
7858 var12 = var14;
7859 RET_LABEL13:(void)0;
7860 }
7861 }
7862 var_model = var12;
7863 {
7864 { /* Inline model$Model$mproperties_by_name (var_model) on <var_model:Model> */
7865 var17 = var_model->attrs[COLOR_nitc__model__Model___mproperties_by_name].val; /* _mproperties_by_name on <var_model:Model> */
7866 if (unlikely(var17 == NULL)) {
7867 if(catchStack.cursor >= 0){
7868 longjmp(catchStack.envs[catchStack.cursor], 1);
7869 }
7870 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperties_by_name");
7871 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 89);
7872 fatal_exit(1);
7873 }
7874 var15 = var17;
7875 RET_LABEL16:(void)0;
7876 }
7877 }
7878 {
7879 { /* Inline model$MProperty$name (self) on <self:MProperty> */
7880 var20 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MProperty> */
7881 if (unlikely(var20 == NULL)) {
7882 if(catchStack.cursor >= 0){
7883 longjmp(catchStack.envs[catchStack.cursor], 1);
7884 }
7885 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
7886 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
7887 fatal_exit(1);
7888 }
7889 var18 = var20;
7890 RET_LABEL19:(void)0;
7891 }
7892 }
7893 {
7894 more_collections___more_collections__MultiHashMap___add_one(var15, var18, self); /* Direct call more_collections$MultiHashMap$add_one on <var15:MultiHashMap[String, MProperty]>*/
7895 }
7896 {
7897 { /* Inline model$Model$mproperties (var_model) on <var_model:Model> */
7898 var23 = var_model->attrs[COLOR_nitc__model__Model___mproperties].val; /* _mproperties on <var_model:Model> */
7899 if (unlikely(var23 == NULL)) {
7900 if(catchStack.cursor >= 0){
7901 longjmp(catchStack.envs[catchStack.cursor], 1);
7902 }
7903 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperties");
7904 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 46);
7905 fatal_exit(1);
7906 }
7907 var21 = var23;
7908 RET_LABEL22:(void)0;
7909 }
7910 }
7911 {
7912 core___core__Array___core__abstract_collection__SimpleCollection__add(var21, self); /* Direct call array$Array$add on <var21:Array[MProperty]>*/
7913 }
7914 RET_LABEL:;
7915 }
7916 /* method model$MProperty$mpropdefs for (self: MProperty): Array[MPropDef] */
7917 val* nitc___nitc__MProperty___mpropdefs(val* self) {
7918 val* var /* : Array[MPropDef] */;
7919 val* var1 /* : Array[MPropDef] */;
7920 var1 = self->attrs[COLOR_nitc__model__MProperty___mpropdefs].val; /* _mpropdefs on <self:MProperty> */
7921 if (unlikely(var1 == NULL)) {
7922 if(catchStack.cursor >= 0){
7923 longjmp(catchStack.envs[catchStack.cursor], 1);
7924 }
7925 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
7926 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2092);
7927 fatal_exit(1);
7928 }
7929 var = var1;
7930 RET_LABEL:;
7931 return var;
7932 }
7933 /* method model$MProperty$intro for (self: MProperty): MPropDef */
7934 val* nitc___nitc__MProperty___intro(val* self) {
7935 val* var /* : MPropDef */;
7936 val* var1 /* : MPropDef */;
7937 var1 = self->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <self:MProperty> */
7938 if (unlikely(var1 == NULL)) {
7939 if(catchStack.cursor >= 0){
7940 longjmp(catchStack.envs[catchStack.cursor], 1);
7941 }
7942 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
7943 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
7944 fatal_exit(1);
7945 }
7946 var = var1;
7947 RET_LABEL:;
7948 return var;
7949 }
7950 /* method model$MProperty$intro= for (self: MProperty, MPropDef) */
7951 void nitc___nitc__MProperty___intro_61d(val* self, val* p0) {
7952 short int var /* : Bool */;
7953 int cltype;
7954 int idtype;
7955 const struct type* type_struct;
7956 const char* var_class_name;
7957 /* Covariant cast for argument 0 (intro) <p0:MPropDef> isa MPROPDEF */
7958 /* <p0:MPropDef> isa MPROPDEF */
7959 type_struct = self->type->resolution_table->types[COLOR_nitc__model__MProperty__MPROPDEF];
7960 cltype = type_struct->color;
7961 idtype = type_struct->id;
7962 if(cltype >= p0->type->table_size) {
7963 var = 0;
7964 } else {
7965 var = p0->type->type_table[cltype] == idtype;
7966 }
7967 if (unlikely(!var)) {
7968 var_class_name = p0 == NULL ? "null" : p0->type->name;
7969 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPDEF", var_class_name);
7970 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
7971 fatal_exit(1);
7972 }
7973 self->attrs[COLOR_nitc__model__MProperty___intro].val = p0; /* _intro on <self:MProperty> */
7974 RET_LABEL:;
7975 }
7976 /* method model$MProperty$model for (self: MProperty): Model */
7977 val* nitc___nitc__MProperty___nitc__model_base__MEntity__model(val* self) {
7978 val* var /* : Model */;
7979 val* var1 /* : MPropDef */;
7980 val* var3 /* : MPropDef */;
7981 val* var4 /* : Model */;
7982 {
7983 { /* Inline model$MProperty$intro (self) on <self:MProperty> */
7984 var3 = self->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <self:MProperty> */
7985 if (unlikely(var3 == NULL)) {
7986 if(catchStack.cursor >= 0){
7987 longjmp(catchStack.envs[catchStack.cursor], 1);
7988 }
7989 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
7990 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
7991 fatal_exit(1);
7992 }
7993 var1 = var3;
7994 RET_LABEL2:(void)0;
7995 }
7996 }
7997 {
7998 var4 = nitc___nitc__MPropDef___nitc__model_base__MEntity__model(var1);
7999 }
8000 var = var4;
8001 goto RET_LABEL;
8002 RET_LABEL:;
8003 return var;
8004 }
8005 /* method model$MProperty$to_s for (self: MProperty): String */
8006 val* nitc___nitc__MProperty___core__abstract_text__Object__to_s(val* self) {
8007 val* var /* : String */;
8008 val* var1 /* : String */;
8009 val* var3 /* : String */;
8010 {
8011 { /* Inline model$MProperty$name (self) on <self:MProperty> */
8012 var3 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MProperty> */
8013 if (unlikely(var3 == NULL)) {
8014 if(catchStack.cursor >= 0){
8015 longjmp(catchStack.envs[catchStack.cursor], 1);
8016 }
8017 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
8018 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
8019 fatal_exit(1);
8020 }
8021 var1 = var3;
8022 RET_LABEL2:(void)0;
8023 }
8024 }
8025 var = var1;
8026 goto RET_LABEL;
8027 RET_LABEL:;
8028 return var;
8029 }
8030 /* method model$MProperty$lookup_definitions for (self: MProperty, MModule, MType): Array[MPropDef] */
8031 val* nitc___nitc__MProperty___lookup_definitions(val* self, val* p0, val* p1) {
8032 val* var /* : Array[MPropDef] */;
8033 val* var_mmodule /* var mmodule: MModule */;
8034 val* var_mtype /* var mtype: MType */;
8035 short int var1 /* : Bool */;
8036 short int var2 /* : Bool */;
8037 val* var3 /* : MType */;
8038 val* var4 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
8039 val* var6 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
8040 val* var7 /* : nullable Object */;
8041 val* var_cache /* var cache: nullable Array[MPropDef] */;
8042 short int var8 /* : Bool */;
8043 short int var9 /* : Bool */;
8044 val* var_other /* var other: nullable Object */;
8045 short int var11 /* : Bool */;
8046 short int var12 /* : Bool */;
8047 val* var13 /* : Array[MPropDef] */;
8048 val* var_candidates /* var candidates: Array[MPropDef] */;
8049 val* var14 /* : Array[MPropDef] */;
8050 val* var16 /* : Array[MPropDef] */;
8051 val* var_mpropdefs /* var mpropdefs: Array[MPropDef] */;
8052 short int var17 /* : Bool */;
8053 long var18 /* : Int */;
8054 long var20 /* : Int */;
8055 short int var21 /* : Bool */;
8056 short int var23 /* : Bool */;
8057 int cltype;
8058 int idtype;
8059 const char* var_class_name;
8060 short int var24 /* : Bool */;
8061 short int var_ /* var : Bool */;
8062 long var25 /* : Int */;
8063 long var27 /* : Int */;
8064 val* var28 /* : Set[MClassDef] */;
8065 long var29 /* : Int */;
8066 short int var30 /* : Bool */;
8067 short int var32 /* : Bool */;
8068 int cltype33;
8069 int idtype34;
8070 const char* var_class_name35;
8071 short int var36 /* : Bool */;
8072 val* var_37 /* var : Array[MPropDef] */;
8073 val* var38 /* : IndexedIterator[nullable Object] */;
8074 val* var_39 /* var : IndexedIterator[MPropDef] */;
8075 short int var40 /* : Bool */;
8076 val* var41 /* : nullable Object */;
8077 val* var_mpropdef /* var mpropdef: MPropDef */;
8078 val* var42 /* : POSetElement[MModule] */;
8079 val* var44 /* : POSetElement[MModule] */;
8080 val* var45 /* : MClassDef */;
8081 val* var47 /* : MClassDef */;
8082 val* var48 /* : MModule */;
8083 val* var50 /* : MModule */;
8084 short int var51 /* : Bool */;
8085 short int var52 /* : Bool */;
8086 val* var54 /* : MClassDef */;
8087 val* var56 /* : MClassDef */;
8088 val* var57 /* : MClassType */;
8089 val* var59 /* : MClassType */;
8090 short int var60 /* : Bool */;
8091 short int var61 /* : Bool */;
8092 val* var62 /* : Set[MClassDef] */;
8093 val* var_63 /* var : Set[MClassDef] */;
8094 val* var64 /* : Iterator[nullable Object] */;
8095 val* var_65 /* var : Iterator[MClassDef] */;
8096 short int var66 /* : Bool */;
8097 val* var68 /* : nullable Object */;
8098 val* var_mclassdef /* var mclassdef: MClassDef */;
8099 val* var69 /* : HashMap[MProperty, MPropDef] */;
8100 val* var71 /* : HashMap[MProperty, MPropDef] */;
8101 val* var72 /* : nullable Object */;
8102 val* var_p /* var p: nullable MPropDef */;
8103 short int var73 /* : Bool */;
8104 short int var74 /* : Bool */;
8105 short int var76 /* : Bool */;
8106 short int var77 /* : Bool */;
8107 short int var78 /* : Bool */;
8108 int cltype79;
8109 int idtype80;
8110 const struct type* type_struct;
8111 const char* var_class_name81;
8112 long var82 /* : Int */;
8113 long var84 /* : Int */;
8114 short int var85 /* : Bool */;
8115 short int var87 /* : Bool */;
8116 int cltype88;
8117 int idtype89;
8118 const char* var_class_name90;
8119 short int var91 /* : Bool */;
8120 val* var92 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
8121 val* var94 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
8122 val* var95 /* : Array[MPropDef] */;
8123 var_mmodule = p0;
8124 var_mtype = p1;
8125 {
8126 var1 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
8127 }
8128 var2 = !var1;
8129 if (unlikely(!var2)) {
8130 if(catchStack.cursor >= 0){
8131 longjmp(catchStack.envs[catchStack.cursor], 1);
8132 }
8133 PRINT_ERROR("Runtime error: %s", "Assert failed");
8134 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2119);
8135 fatal_exit(1);
8136 }
8137 {
8138 var3 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__undecorate]))(var_mtype); /* undecorate on <var_mtype:MType>*/
8139 }
8140 var_mtype = var3;
8141 {
8142 { /* Inline model$MProperty$lookup_definitions_cache (self) on <self:MProperty> */
8143 var6 = self->attrs[COLOR_nitc__model__MProperty___lookup_definitions_cache].val; /* _lookup_definitions_cache on <self:MProperty> */
8144 if (unlikely(var6 == NULL)) {
8145 if(catchStack.cursor >= 0){
8146 longjmp(catchStack.envs[catchStack.cursor], 1);
8147 }
8148 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_definitions_cache");
8149 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2159);
8150 fatal_exit(1);
8151 }
8152 var4 = var6;
8153 RET_LABEL5:(void)0;
8154 }
8155 }
8156 {
8157 var7 = more_collections___more_collections__HashMap2____91d_93d(var4, var_mmodule, var_mtype);
8158 }
8159 var_cache = var7;
8160 if (var_cache == NULL) {
8161 var8 = 0; /* is null */
8162 } else {
8163 var8 = 1; /* arg is null and recv is not */
8164 }
8165 if (0) {
8166 { /* Inline kernel$Object$!= (var_cache,((val*)NULL)) on <var_cache:nullable Array[MPropDef]> */
8167 var_other = ((val*)NULL);
8168 {
8169 var11 = ((short int(*)(val* self, val* p0))(var_cache->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_cache, var_other); /* == on <var_cache:nullable Array[MPropDef](Array[MPropDef])>*/
8170 }
8171 var12 = !var11;
8172 var9 = var12;
8173 goto RET_LABEL10;
8174 RET_LABEL10:(void)0;
8175 }
8176 var8 = var9;
8177 }
8178 if (var8){
8179 var = var_cache;
8180 goto RET_LABEL;
8181 } else {
8182 }
8183 var13 = NEW_core__Array(self->type->resolution_table->types[COLOR_core__Array__nitc__model__MProperty__MPROPDEF]);
8184 {
8185 core___core__Array___core__kernel__Object__init(var13); /* Direct call array$Array$init on <var13:Array[MPropDef]>*/
8186 }
8187 var_candidates = var13;
8188 {
8189 { /* Inline model$MProperty$mpropdefs (self) on <self:MProperty> */
8190 var16 = self->attrs[COLOR_nitc__model__MProperty___mpropdefs].val; /* _mpropdefs on <self:MProperty> */
8191 if (unlikely(var16 == NULL)) {
8192 if(catchStack.cursor >= 0){
8193 longjmp(catchStack.envs[catchStack.cursor], 1);
8194 }
8195 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
8196 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2092);
8197 fatal_exit(1);
8198 }
8199 var14 = var16;
8200 RET_LABEL15:(void)0;
8201 }
8202 }
8203 var_mpropdefs = var14;
8204 {
8205 { /* Inline array$AbstractArrayRead$length (var_mpropdefs) on <var_mpropdefs:Array[MPropDef]> */
8206 var20 = var_mpropdefs->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_mpropdefs:Array[MPropDef]> */
8207 var18 = var20;
8208 RET_LABEL19:(void)0;
8209 }
8210 }
8211 {
8212 { /* Inline kernel$Int$<= (var18,1l) on <var18:Int> */
8213 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
8214 /* <1l:Int> isa OTHER */
8215 var23 = 1; /* easy <1l:Int> isa OTHER*/
8216 if (unlikely(!var23)) {
8217 var_class_name = type_core__Int.name;
8218 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
8219 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
8220 fatal_exit(1);
8221 }
8222 var24 = var18 <= 1l;
8223 var21 = var24;
8224 goto RET_LABEL22;
8225 RET_LABEL22:(void)0;
8226 }
8227 }
8228 var_ = var21;
8229 if (var21){
8230 var17 = var_;
8231 } else {
8232 {
8233 { /* Inline array$AbstractArrayRead$length (var_mpropdefs) on <var_mpropdefs:Array[MPropDef]> */
8234 var27 = var_mpropdefs->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_mpropdefs:Array[MPropDef]> */
8235 var25 = var27;
8236 RET_LABEL26:(void)0;
8237 }
8238 }
8239 {
8240 var28 = ((val*(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_nitc__model__MType__collect_mclassdefs]))(var_mtype, var_mmodule); /* collect_mclassdefs on <var_mtype:MType>*/
8241 }
8242 {
8243 var29 = ((long(*)(val* self))((((long)var28&3)?class_info[((long)var28&3)]:var28->class)->vft[COLOR_core__abstract_collection__Collection__length]))(var28); /* length on <var28:Set[MClassDef]>*/
8244 }
8245 {
8246 { /* Inline kernel$Int$< (var25,var29) on <var25:Int> */
8247 /* Covariant cast for argument 0 (i) <var29:Int> isa OTHER */
8248 /* <var29:Int> isa OTHER */
8249 var32 = 1; /* easy <var29:Int> isa OTHER*/
8250 if (unlikely(!var32)) {
8251 var_class_name35 = type_core__Int.name;
8252 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35);
8253 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
8254 fatal_exit(1);
8255 }
8256 var36 = var25 < var29;
8257 var30 = var36;
8258 goto RET_LABEL31;
8259 RET_LABEL31:(void)0;
8260 }
8261 }
8262 var17 = var30;
8263 }
8264 if (var17){
8265 var_37 = var_mpropdefs;
8266 {
8267 var38 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_37);
8268 }
8269 var_39 = var38;
8270 for(;;) {
8271 {
8272 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:IndexedIterator[MPropDef]>*/
8273 }
8274 if (var40){
8275 } else {
8276 goto BREAK_label;
8277 }
8278 {
8279 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:IndexedIterator[MPropDef]>*/
8280 }
8281 var_mpropdef = var41;
8282 {
8283 { /* Inline mmodule$MModule$in_importation (var_mmodule) on <var_mmodule:MModule> */
8284 var44 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
8285 if (unlikely(var44 == NULL)) {
8286 if(catchStack.cursor >= 0){
8287 longjmp(catchStack.envs[catchStack.cursor], 1);
8288 }
8289 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
8290 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
8291 fatal_exit(1);
8292 }
8293 var42 = var44;
8294 RET_LABEL43:(void)0;
8295 }
8296 }
8297 {
8298 { /* Inline model$MPropDef$mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
8299 var47 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
8300 if (unlikely(var47 == NULL)) {
8301 if(catchStack.cursor >= 0){
8302 longjmp(catchStack.envs[catchStack.cursor], 1);
8303 }
8304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
8305 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
8306 fatal_exit(1);
8307 }
8308 var45 = var47;
8309 RET_LABEL46:(void)0;
8310 }
8311 }
8312 {
8313 { /* Inline model$MClassDef$mmodule (var45) on <var45:MClassDef> */
8314 var50 = var45->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var45:MClassDef> */
8315 if (unlikely(var50 == NULL)) {
8316 if(catchStack.cursor >= 0){
8317 longjmp(catchStack.envs[catchStack.cursor], 1);
8318 }
8319 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
8320 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
8321 fatal_exit(1);
8322 }
8323 var48 = var50;
8324 RET_LABEL49:(void)0;
8325 }
8326 }
8327 {
8328 var51 = poset___poset__POSetElement____60d_61d(var42, var48);
8329 }
8330 var52 = !var51;
8331 if (var52){
8332 goto BREAK_label53;
8333 } else {
8334 }
8335 {
8336 { /* Inline model$MPropDef$mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
8337 var56 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
8338 if (unlikely(var56 == NULL)) {
8339 if(catchStack.cursor >= 0){
8340 longjmp(catchStack.envs[catchStack.cursor], 1);
8341 }
8342 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
8343 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
8344 fatal_exit(1);
8345 }
8346 var54 = var56;
8347 RET_LABEL55:(void)0;
8348 }
8349 }
8350 {
8351 { /* Inline model$MClassDef$bound_mtype (var54) on <var54:MClassDef> */
8352 var59 = var54->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var54:MClassDef> */
8353 if (unlikely(var59 == NULL)) {
8354 if(catchStack.cursor >= 0){
8355 longjmp(catchStack.envs[catchStack.cursor], 1);
8356 }
8357 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
8358 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
8359 fatal_exit(1);
8360 }
8361 var57 = var59;
8362 RET_LABEL58:(void)0;
8363 }
8364 }
8365 {
8366 var60 = nitc___nitc__MType___is_subtype(var_mtype, var_mmodule, ((val*)NULL), var57);
8367 }
8368 var61 = !var60;
8369 if (var61){
8370 goto BREAK_label53;
8371 } else {
8372 }
8373 {
8374 core___core__Array___core__abstract_collection__SimpleCollection__add(var_candidates, var_mpropdef); /* Direct call array$Array$add on <var_candidates:Array[MPropDef]>*/
8375 }
8376 BREAK_label53: (void)0;
8377 {
8378 ((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:IndexedIterator[MPropDef]>*/
8379 }
8380 }
8381 BREAK_label: (void)0;
8382 {
8383 ((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:IndexedIterator[MPropDef]>*/
8384 }
8385 } else {
8386 {
8387 var62 = ((val*(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_nitc__model__MType__collect_mclassdefs]))(var_mtype, var_mmodule); /* collect_mclassdefs on <var_mtype:MType>*/
8388 }
8389 var_63 = var62;
8390 {
8391 var64 = ((val*(*)(val* self))((((long)var_63&3)?class_info[((long)var_63&3)]:var_63->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_63); /* iterator on <var_63:Set[MClassDef]>*/
8392 }
8393 var_65 = var64;
8394 for(;;) {
8395 {
8396 var66 = ((short int(*)(val* self))((((long)var_65&3)?class_info[((long)var_65&3)]:var_65->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_65); /* is_ok on <var_65:Iterator[MClassDef]>*/
8397 }
8398 if (var66){
8399 } else {
8400 goto BREAK_label67;
8401 }
8402 {
8403 var68 = ((val*(*)(val* self))((((long)var_65&3)?class_info[((long)var_65&3)]:var_65->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_65); /* item on <var_65:Iterator[MClassDef]>*/
8404 }
8405 var_mclassdef = var68;
8406 {
8407 { /* Inline model$MClassDef$mpropdefs_by_property (var_mclassdef) on <var_mclassdef:MClassDef> */
8408 var71 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___mpropdefs_by_property].val; /* _mpropdefs_by_property on <var_mclassdef:MClassDef> */
8409 if (unlikely(var71 == NULL)) {
8410 if(catchStack.cursor >= 0){
8411 longjmp(catchStack.envs[catchStack.cursor], 1);
8412 }
8413 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs_by_property");
8414 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 726);
8415 fatal_exit(1);
8416 }
8417 var69 = var71;
8418 RET_LABEL70:(void)0;
8419 }
8420 }
8421 {
8422 var72 = core___core__HashMap___core__abstract_collection__MapRead__get_or_null(var69, self);
8423 }
8424 var_p = var72;
8425 if (var_p == NULL) {
8426 var73 = 0; /* is null */
8427 } else {
8428 var73 = 1; /* arg is null and recv is not */
8429 }
8430 if (0) {
8431 { /* Inline kernel$Object$!= (var_p,((val*)NULL)) on <var_p:nullable MPropDef> */
8432 var_other = ((val*)NULL);
8433 {
8434 var76 = ((short int(*)(val* self, val* p0))(var_p->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_p, var_other); /* == on <var_p:nullable MPropDef(MPropDef)>*/
8435 }
8436 var77 = !var76;
8437 var74 = var77;
8438 goto RET_LABEL75;
8439 RET_LABEL75:(void)0;
8440 }
8441 var73 = var74;
8442 }
8443 if (var73){
8444 /* <var_p:nullable MPropDef(MPropDef)> isa MPROPDEF */
8445 type_struct = self->type->resolution_table->types[COLOR_nitc__model__MProperty__MPROPDEF];
8446 cltype79 = type_struct->color;
8447 idtype80 = type_struct->id;
8448 if(cltype79 >= var_p->type->table_size) {
8449 var78 = 0;
8450 } else {
8451 var78 = var_p->type->type_table[cltype79] == idtype80;
8452 }
8453 if (unlikely(!var78)) {
8454 var_class_name81 = var_p == NULL ? "null" : var_p->type->name;
8455 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPDEF", var_class_name81);
8456 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2145);
8457 fatal_exit(1);
8458 }
8459 {
8460 core___core__Array___core__abstract_collection__SimpleCollection__add(var_candidates, var_p); /* Direct call array$Array$add on <var_candidates:Array[MPropDef]>*/
8461 }
8462 } else {
8463 }
8464 {
8465 ((void(*)(val* self))((((long)var_65&3)?class_info[((long)var_65&3)]:var_65->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_65); /* next on <var_65:Iterator[MClassDef]>*/
8466 }
8467 }
8468 BREAK_label67: (void)0;
8469 {
8470 ((void(*)(val* self))((((long)var_65&3)?class_info[((long)var_65&3)]:var_65->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_65); /* finish on <var_65:Iterator[MClassDef]>*/
8471 }
8472 }
8473 {
8474 { /* Inline array$AbstractArrayRead$length (var_candidates) on <var_candidates:Array[MPropDef]> */
8475 var84 = var_candidates->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_candidates:Array[MPropDef]> */
8476 var82 = var84;
8477 RET_LABEL83:(void)0;
8478 }
8479 }
8480 {
8481 { /* Inline kernel$Int$<= (var82,1l) on <var82:Int> */
8482 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
8483 /* <1l:Int> isa OTHER */
8484 var87 = 1; /* easy <1l:Int> isa OTHER*/
8485 if (unlikely(!var87)) {
8486 var_class_name90 = type_core__Int.name;
8487 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name90);
8488 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
8489 fatal_exit(1);
8490 }
8491 var91 = var82 <= 1l;
8492 var85 = var91;
8493 goto RET_LABEL86;
8494 RET_LABEL86:(void)0;
8495 }
8496 }
8497 if (var85){
8498 {
8499 { /* Inline model$MProperty$lookup_definitions_cache (self) on <self:MProperty> */
8500 var94 = self->attrs[COLOR_nitc__model__MProperty___lookup_definitions_cache].val; /* _lookup_definitions_cache on <self:MProperty> */
8501 if (unlikely(var94 == NULL)) {
8502 if(catchStack.cursor >= 0){
8503 longjmp(catchStack.envs[catchStack.cursor], 1);
8504 }
8505 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_definitions_cache");
8506 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2159);
8507 fatal_exit(1);
8508 }
8509 var92 = var94;
8510 RET_LABEL93:(void)0;
8511 }
8512 }
8513 {
8514 more_collections___more_collections__HashMap2____91d_93d_61d(var92, var_mmodule, var_mtype, var_candidates); /* Direct call more_collections$HashMap2$[]= on <var92:HashMap2[MModule, MType, Array[MPropDef]]>*/
8515 }
8516 var = var_candidates;
8517 goto RET_LABEL;
8518 } else {
8519 }
8520 {
8521 var95 = nitc___nitc__MProperty___select_most_specific(self, var_mmodule, var_candidates);
8522 }
8523 var = var95;
8524 goto RET_LABEL;
8525 RET_LABEL:;
8526 return var;
8527 }
8528 /* method model$MProperty$lookup_definitions_cache for (self: MProperty): HashMap2[MModule, MType, Array[MPropDef]] */
8529 val* nitc___nitc__MProperty___lookup_definitions_cache(val* self) {
8530 val* var /* : HashMap2[MModule, MType, Array[MPropDef]] */;
8531 val* var1 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
8532 var1 = self->attrs[COLOR_nitc__model__MProperty___lookup_definitions_cache].val; /* _lookup_definitions_cache on <self:MProperty> */
8533 if (unlikely(var1 == NULL)) {
8534 if(catchStack.cursor >= 0){
8535 longjmp(catchStack.envs[catchStack.cursor], 1);
8536 }
8537 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_definitions_cache");
8538 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2159);
8539 fatal_exit(1);
8540 }
8541 var = var1;
8542 RET_LABEL:;
8543 return var;
8544 }
8545 /* method model$MProperty$lookup_super_definitions for (self: MProperty, MModule, MType): Array[MPropDef] */
8546 val* nitc___nitc__MProperty___lookup_super_definitions(val* self, val* p0, val* p1) {
8547 val* var /* : Array[MPropDef] */;
8548 val* var_mmodule /* var mmodule: MModule */;
8549 val* var_mtype /* var mtype: MType */;
8550 short int var1 /* : Bool */;
8551 short int var2 /* : Bool */;
8552 val* var3 /* : MType */;
8553 val* var4 /* : Array[MPropDef] */;
8554 val* var_candidates /* var candidates: Array[MPropDef] */;
8555 val* var5 /* : Array[MPropDef] */;
8556 val* var7 /* : Array[MPropDef] */;
8557 val* var_ /* var : Array[MPropDef] */;
8558 val* var8 /* : IndexedIterator[nullable Object] */;
8559 val* var_9 /* var : IndexedIterator[MPropDef] */;
8560 short int var10 /* : Bool */;
8561 val* var11 /* : nullable Object */;
8562 val* var_mpropdef /* var mpropdef: MPropDef */;
8563 val* var12 /* : POSetElement[MModule] */;
8564 val* var14 /* : POSetElement[MModule] */;
8565 val* var15 /* : MClassDef */;
8566 val* var17 /* : MClassDef */;
8567 val* var18 /* : MModule */;
8568 val* var20 /* : MModule */;
8569 short int var21 /* : Bool */;
8570 short int var22 /* : Bool */;
8571 val* var24 /* : MClassDef */;
8572 val* var26 /* : MClassDef */;
8573 val* var27 /* : MClassType */;
8574 val* var29 /* : MClassType */;
8575 short int var30 /* : Bool */;
8576 short int var31 /* : Bool */;
8577 short int var32 /* : Bool */;
8578 val* var33 /* : MClassDef */;
8579 val* var35 /* : MClassDef */;
8580 val* var36 /* : MClassType */;
8581 val* var38 /* : MClassType */;
8582 short int var39 /* : Bool */;
8583 val* var_other /* var other: nullable Object */;
8584 short int var41 /* : Bool */;
8585 short int var43 /* : Bool */;
8586 short int var_44 /* var : Bool */;
8587 val* var45 /* : MClassDef */;
8588 val* var47 /* : MClassDef */;
8589 val* var48 /* : MModule */;
8590 val* var50 /* : MModule */;
8591 short int var51 /* : Bool */;
8592 short int var53 /* : Bool */;
8593 short int var55 /* : Bool */;
8594 long var56 /* : Int */;
8595 long var58 /* : Int */;
8596 short int var59 /* : Bool */;
8597 short int var61 /* : Bool */;
8598 int cltype;
8599 int idtype;
8600 const char* var_class_name;
8601 short int var62 /* : Bool */;
8602 val* var63 /* : Array[MPropDef] */;
8603 var_mmodule = p0;
8604 var_mtype = p1;
8605 {
8606 var1 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
8607 }
8608 var2 = !var1;
8609 if (unlikely(!var2)) {
8610 if(catchStack.cursor >= 0){
8611 longjmp(catchStack.envs[catchStack.cursor], 1);
8612 }
8613 PRINT_ERROR("Runtime error: %s", "Assert failed");
8614 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2172);
8615 fatal_exit(1);
8616 }
8617 {
8618 var3 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__undecorate]))(var_mtype); /* undecorate on <var_mtype:MType>*/
8619 }
8620 var_mtype = var3;
8621 var4 = NEW_core__Array(self->type->resolution_table->types[COLOR_core__Array__nitc__model__MProperty__MPROPDEF]);
8622 {
8623 core___core__Array___core__kernel__Object__init(var4); /* Direct call array$Array$init on <var4:Array[MPropDef]>*/
8624 }
8625 var_candidates = var4;
8626 {
8627 { /* Inline model$MProperty$mpropdefs (self) on <self:MProperty> */
8628 var7 = self->attrs[COLOR_nitc__model__MProperty___mpropdefs].val; /* _mpropdefs on <self:MProperty> */
8629 if (unlikely(var7 == NULL)) {
8630 if(catchStack.cursor >= 0){
8631 longjmp(catchStack.envs[catchStack.cursor], 1);
8632 }
8633 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
8634 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2092);
8635 fatal_exit(1);
8636 }
8637 var5 = var7;
8638 RET_LABEL6:(void)0;
8639 }
8640 }
8641 var_ = var5;
8642 {
8643 var8 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
8644 }
8645 var_9 = var8;
8646 for(;;) {
8647 {
8648 var10 = ((short int(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_9); /* is_ok on <var_9:IndexedIterator[MPropDef]>*/
8649 }
8650 if (var10){
8651 } else {
8652 goto BREAK_label;
8653 }
8654 {
8655 var11 = ((val*(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_9); /* item on <var_9:IndexedIterator[MPropDef]>*/
8656 }
8657 var_mpropdef = var11;
8658 {
8659 { /* Inline mmodule$MModule$in_importation (var_mmodule) on <var_mmodule:MModule> */
8660 var14 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
8661 if (unlikely(var14 == NULL)) {
8662 if(catchStack.cursor >= 0){
8663 longjmp(catchStack.envs[catchStack.cursor], 1);
8664 }
8665 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
8666 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
8667 fatal_exit(1);
8668 }
8669 var12 = var14;
8670 RET_LABEL13:(void)0;
8671 }
8672 }
8673 {
8674 { /* Inline model$MPropDef$mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
8675 var17 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
8676 if (unlikely(var17 == NULL)) {
8677 if(catchStack.cursor >= 0){
8678 longjmp(catchStack.envs[catchStack.cursor], 1);
8679 }
8680 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
8681 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
8682 fatal_exit(1);
8683 }
8684 var15 = var17;
8685 RET_LABEL16:(void)0;
8686 }
8687 }
8688 {
8689 { /* Inline model$MClassDef$mmodule (var15) on <var15:MClassDef> */
8690 var20 = var15->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var15:MClassDef> */
8691 if (unlikely(var20 == NULL)) {
8692 if(catchStack.cursor >= 0){
8693 longjmp(catchStack.envs[catchStack.cursor], 1);
8694 }
8695 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
8696 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
8697 fatal_exit(1);
8698 }
8699 var18 = var20;
8700 RET_LABEL19:(void)0;
8701 }
8702 }
8703 {
8704 var21 = poset___poset__POSetElement____60d_61d(var12, var18);
8705 }
8706 var22 = !var21;
8707 if (var22){
8708 goto BREAK_label23;
8709 } else {
8710 }
8711 {
8712 { /* Inline model$MPropDef$mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
8713 var26 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
8714 if (unlikely(var26 == NULL)) {
8715 if(catchStack.cursor >= 0){
8716 longjmp(catchStack.envs[catchStack.cursor], 1);
8717 }
8718 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
8719 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
8720 fatal_exit(1);
8721 }
8722 var24 = var26;
8723 RET_LABEL25:(void)0;
8724 }
8725 }
8726 {
8727 { /* Inline model$MClassDef$bound_mtype (var24) on <var24:MClassDef> */
8728 var29 = var24->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var24:MClassDef> */
8729 if (unlikely(var29 == NULL)) {
8730 if(catchStack.cursor >= 0){
8731 longjmp(catchStack.envs[catchStack.cursor], 1);
8732 }
8733 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
8734 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
8735 fatal_exit(1);
8736 }
8737 var27 = var29;
8738 RET_LABEL28:(void)0;
8739 }
8740 }
8741 {
8742 var30 = nitc___nitc__MType___is_subtype(var_mtype, var_mmodule, ((val*)NULL), var27);
8743 }
8744 var31 = !var30;
8745 if (var31){
8746 goto BREAK_label23;
8747 } else {
8748 }
8749 {
8750 { /* Inline model$MPropDef$mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
8751 var35 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
8752 if (unlikely(var35 == NULL)) {
8753 if(catchStack.cursor >= 0){
8754 longjmp(catchStack.envs[catchStack.cursor], 1);
8755 }
8756 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
8757 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
8758 fatal_exit(1);
8759 }
8760 var33 = var35;
8761 RET_LABEL34:(void)0;
8762 }
8763 }
8764 {
8765 { /* Inline model$MClassDef$bound_mtype (var33) on <var33:MClassDef> */
8766 var38 = var33->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var33:MClassDef> */
8767 if (unlikely(var38 == NULL)) {
8768 if(catchStack.cursor >= 0){
8769 longjmp(catchStack.envs[catchStack.cursor], 1);
8770 }
8771 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
8772 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
8773 fatal_exit(1);
8774 }
8775 var36 = var38;
8776 RET_LABEL37:(void)0;
8777 }
8778 }
8779 {
8780 { /* Inline kernel$Object$== (var_mtype,var36) on <var_mtype:MType> */
8781 var_other = var36;
8782 {
8783 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on <var_mtype:MType> */
8784 var43 = var_mtype == var_other;
8785 var41 = var43;
8786 goto RET_LABEL42;
8787 RET_LABEL42:(void)0;
8788 }
8789 }
8790 var39 = var41;
8791 goto RET_LABEL40;
8792 RET_LABEL40:(void)0;
8793 }
8794 }
8795 var_44 = var39;
8796 if (var39){
8797 {
8798 { /* Inline model$MPropDef$mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
8799 var47 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
8800 if (unlikely(var47 == NULL)) {
8801 if(catchStack.cursor >= 0){
8802 longjmp(catchStack.envs[catchStack.cursor], 1);
8803 }
8804 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
8805 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
8806 fatal_exit(1);
8807 }
8808 var45 = var47;
8809 RET_LABEL46:(void)0;
8810 }
8811 }
8812 {
8813 { /* Inline model$MClassDef$mmodule (var45) on <var45:MClassDef> */
8814 var50 = var45->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var45:MClassDef> */
8815 if (unlikely(var50 == NULL)) {
8816 if(catchStack.cursor >= 0){
8817 longjmp(catchStack.envs[catchStack.cursor], 1);
8818 }
8819 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
8820 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
8821 fatal_exit(1);
8822 }
8823 var48 = var50;
8824 RET_LABEL49:(void)0;
8825 }
8826 }
8827 {
8828 { /* Inline kernel$Object$== (var_mmodule,var48) on <var_mmodule:MModule> */
8829 var_other = var48;
8830 {
8831 { /* Inline kernel$Object$is_same_instance (var_mmodule,var_other) on <var_mmodule:MModule> */
8832 var55 = var_mmodule == var_other;
8833 var53 = var55;
8834 goto RET_LABEL54;
8835 RET_LABEL54:(void)0;
8836 }
8837 }
8838 var51 = var53;
8839 goto RET_LABEL52;
8840 RET_LABEL52:(void)0;
8841 }
8842 }
8843 var32 = var51;
8844 } else {
8845 var32 = var_44;
8846 }
8847 if (var32){
8848 goto BREAK_label23;
8849 } else {
8850 }
8851 {
8852 core___core__Array___core__abstract_collection__SimpleCollection__add(var_candidates, var_mpropdef); /* Direct call array$Array$add on <var_candidates:Array[MPropDef]>*/
8853 }
8854 BREAK_label23: (void)0;
8855 {
8856 ((void(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_9); /* next on <var_9:IndexedIterator[MPropDef]>*/
8857 }
8858 }
8859 BREAK_label: (void)0;
8860 {
8861 ((void(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_9); /* finish on <var_9:IndexedIterator[MPropDef]>*/
8862 }
8863 {
8864 { /* Inline array$AbstractArrayRead$length (var_candidates) on <var_candidates:Array[MPropDef]> */
8865 var58 = var_candidates->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_candidates:Array[MPropDef]> */
8866 var56 = var58;
8867 RET_LABEL57:(void)0;
8868 }
8869 }
8870 {
8871 { /* Inline kernel$Int$<= (var56,1l) on <var56:Int> */
8872 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
8873 /* <1l:Int> isa OTHER */
8874 var61 = 1; /* easy <1l:Int> isa OTHER*/
8875 if (unlikely(!var61)) {
8876 var_class_name = type_core__Int.name;
8877 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
8878 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
8879 fatal_exit(1);
8880 }
8881 var62 = var56 <= 1l;
8882 var59 = var62;
8883 goto RET_LABEL60;
8884 RET_LABEL60:(void)0;
8885 }
8886 }
8887 if (var59){
8888 var = var_candidates;
8889 goto RET_LABEL;
8890 } else {
8891 }
8892 {
8893 var63 = nitc___nitc__MProperty___select_most_specific(self, var_mmodule, var_candidates);
8894 }
8895 var = var63;
8896 goto RET_LABEL;
8897 RET_LABEL:;
8898 return var;
8899 }
8900 /* method model$MProperty$select_most_specific for (self: MProperty, MModule, Array[MPropDef]): Array[MPropDef] */
8901 val* nitc___nitc__MProperty___select_most_specific(val* self, val* p0, val* p1) {
8902 val* var /* : Array[MPropDef] */;
8903 short int var1 /* : Bool */;
8904 int cltype;
8905 int idtype;
8906 const struct type* type_struct;
8907 const char* var_class_name;
8908 val* var_mmodule /* var mmodule: MModule */;
8909 val* var_candidates /* var candidates: Array[MPropDef] */;
8910 val* var2 /* : Array[MPropDef] */;
8911 val* var_res /* var res: Array[MPropDef] */;
8912 val* var_ /* var : Array[MPropDef] */;
8913 val* var3 /* : IndexedIterator[nullable Object] */;
8914 val* var_4 /* var : IndexedIterator[MPropDef] */;
8915 short int var5 /* : Bool */;
8916 val* var6 /* : nullable Object */;
8917 val* var_pd1 /* var pd1: MPropDef */;
8918 val* var7 /* : MClassDef */;
8919 val* var9 /* : MClassDef */;
8920 val* var_cd1 /* var cd1: MClassDef */;
8921 val* var10 /* : MClass */;
8922 val* var12 /* : MClass */;
8923 val* var_c1 /* var c1: MClass */;
8924 short int var_keep /* var keep: Bool */;
8925 val* var_13 /* var : Array[MPropDef] */;
8926 val* var14 /* : IndexedIterator[nullable Object] */;
8927 val* var_15 /* var : IndexedIterator[MPropDef] */;
8928 short int var16 /* : Bool */;
8929 val* var18 /* : nullable Object */;
8930 val* var_pd2 /* var pd2: MPropDef */;
8931 short int var19 /* : Bool */;
8932 val* var_other /* var other: nullable Object */;
8933 short int var21 /* : Bool */;
8934 short int var23 /* : Bool */;
8935 val* var25 /* : MClassDef */;
8936 val* var27 /* : MClassDef */;
8937 val* var_cd2 /* var cd2: MClassDef */;
8938 val* var28 /* : MClass */;
8939 val* var30 /* : MClass */;
8940 val* var_c2 /* var c2: MClass */;
8941 val* var31 /* : MClassType */;
8942 val* var33 /* : MClassType */;
8943 val* var34 /* : MClassType */;
8944 val* var36 /* : MClassType */;
8945 short int var37 /* : Bool */;
8946 short int var39 /* : Bool */;
8947 short int var41 /* : Bool */;
8948 val* var42 /* : MModule */;
8949 val* var44 /* : MModule */;
8950 val* var45 /* : POSetElement[MModule] */;
8951 val* var47 /* : POSetElement[MModule] */;
8952 val* var48 /* : MModule */;
8953 val* var50 /* : MModule */;
8954 short int var51 /* : Bool */;
8955 short int var52 /* : Bool */;
8956 val* var53 /* : MClassType */;
8957 val* var55 /* : MClassType */;
8958 val* var56 /* : MClassType */;
8959 val* var58 /* : MClassType */;
8960 short int var59 /* : Bool */;
8961 short int var_60 /* var : Bool */;
8962 val* var61 /* : MClassType */;
8963 val* var63 /* : MClassType */;
8964 val* var64 /* : MClassType */;
8965 val* var66 /* : MClassType */;
8966 short int var67 /* : Bool */;
8967 val* var_other69 /* var other: nullable Object */;
8968 short int var70 /* : Bool */;
8969 short int var71 /* : Bool */;
8970 short int var72 /* : Bool */;
8971 val* var73 /* : Sys */;
8972 val* var74 /* : NativeArray[String] */;
8973 static val* varonce;
8974 static val* varonce75;
8975 val* var76 /* : String */;
8976 char* var77 /* : CString */;
8977 val* var78 /* : String */;
8978 val* var79 /* : nullable Int */;
8979 val* var80 /* : nullable Int */;
8980 val* var81 /* : nullable Bool */;
8981 val* var82 /* : nullable Bool */;
8982 static val* varonce83;
8983 val* var84 /* : String */;
8984 char* var85 /* : CString */;
8985 val* var86 /* : String */;
8986 val* var87 /* : nullable Int */;
8987 val* var88 /* : nullable Int */;
8988 val* var89 /* : nullable Bool */;
8989 val* var90 /* : nullable Bool */;
8990 val* var91 /* : String */;
8991 val* var92 /* : String */;
8992 /* Covariant cast for argument 1 (candidates) <p1:Array[MPropDef]> isa Array[MPROPDEF] */
8993 /* <p1:Array[MPropDef]> isa Array[MPROPDEF] */
8994 type_struct = self->type->resolution_table->types[COLOR_core__Array__nitc__model__MProperty__MPROPDEF];
8995 cltype = type_struct->color;
8996 idtype = type_struct->id;
8997 if(cltype >= p1->type->table_size) {
8998 var1 = 0;
8999 } else {
9000 var1 = p1->type->type_table[cltype] == idtype;
9001 }
9002 if (unlikely(!var1)) {
9003 var_class_name = p1 == NULL ? "null" : p1->type->name;
9004 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[MPROPDEF]", var_class_name);
9005 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2194);
9006 fatal_exit(1);
9007 }
9008 var_mmodule = p0;
9009 var_candidates = p1;
9010 var2 = NEW_core__Array(self->type->resolution_table->types[COLOR_core__Array__nitc__model__MProperty__MPROPDEF]);
9011 {
9012 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[MPropDef]>*/
9013 }
9014 var_res = var2;
9015 var_ = var_candidates;
9016 {
9017 var3 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
9018 }
9019 var_4 = var3;
9020 for(;;) {
9021 {
9022 var5 = ((short int(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_4); /* is_ok on <var_4:IndexedIterator[MPropDef]>*/
9023 }
9024 if (var5){
9025 } else {
9026 goto BREAK_label;
9027 }
9028 {
9029 var6 = ((val*(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_4); /* item on <var_4:IndexedIterator[MPropDef]>*/
9030 }
9031 var_pd1 = var6;
9032 {
9033 { /* Inline model$MPropDef$mclassdef (var_pd1) on <var_pd1:MPropDef> */
9034 var9 = var_pd1->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_pd1:MPropDef> */
9035 if (unlikely(var9 == NULL)) {
9036 if(catchStack.cursor >= 0){
9037 longjmp(catchStack.envs[catchStack.cursor], 1);
9038 }
9039 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
9040 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
9041 fatal_exit(1);
9042 }
9043 var7 = var9;
9044 RET_LABEL8:(void)0;
9045 }
9046 }
9047 var_cd1 = var7;
9048 {
9049 { /* Inline model$MClassDef$mclass (var_cd1) on <var_cd1:MClassDef> */
9050 var12 = var_cd1->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var_cd1:MClassDef> */
9051 if (unlikely(var12 == NULL)) {
9052 if(catchStack.cursor >= 0){
9053 longjmp(catchStack.envs[catchStack.cursor], 1);
9054 }
9055 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9056 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 591);
9057 fatal_exit(1);
9058 }
9059 var10 = var12;
9060 RET_LABEL11:(void)0;
9061 }
9062 }
9063 var_c1 = var10;
9064 var_keep = 1;
9065 var_13 = var_candidates;
9066 {
9067 var14 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_13);
9068 }
9069 var_15 = var14;
9070 for(;;) {
9071 {
9072 var16 = ((short int(*)(val* self))((((long)var_15&3)?class_info[((long)var_15&3)]:var_15->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_15); /* is_ok on <var_15:IndexedIterator[MPropDef]>*/
9073 }
9074 if (var16){
9075 } else {
9076 goto BREAK_label17;
9077 }
9078 {
9079 var18 = ((val*(*)(val* self))((((long)var_15&3)?class_info[((long)var_15&3)]:var_15->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_15); /* item on <var_15:IndexedIterator[MPropDef]>*/
9080 }
9081 var_pd2 = var18;
9082 {
9083 { /* Inline kernel$Object$== (var_pd2,var_pd1) on <var_pd2:MPropDef> */
9084 var_other = var_pd1;
9085 {
9086 { /* Inline kernel$Object$is_same_instance (var_pd2,var_other) on <var_pd2:MPropDef> */
9087 var23 = var_pd2 == var_other;
9088 var21 = var23;
9089 goto RET_LABEL22;
9090 RET_LABEL22:(void)0;
9091 }
9092 }
9093 var19 = var21;
9094 goto RET_LABEL20;
9095 RET_LABEL20:(void)0;
9096 }
9097 }
9098 if (var19){
9099 goto BREAK_label24;
9100 } else {
9101 }
9102 {
9103 { /* Inline model$MPropDef$mclassdef (var_pd2) on <var_pd2:MPropDef> */
9104 var27 = var_pd2->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_pd2:MPropDef> */
9105 if (unlikely(var27 == NULL)) {
9106 if(catchStack.cursor >= 0){
9107 longjmp(catchStack.envs[catchStack.cursor], 1);
9108 }
9109 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
9110 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
9111 fatal_exit(1);
9112 }
9113 var25 = var27;
9114 RET_LABEL26:(void)0;
9115 }
9116 }
9117 var_cd2 = var25;
9118 {
9119 { /* Inline model$MClassDef$mclass (var_cd2) on <var_cd2:MClassDef> */
9120 var30 = var_cd2->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var_cd2:MClassDef> */
9121 if (unlikely(var30 == NULL)) {
9122 if(catchStack.cursor >= 0){
9123 longjmp(catchStack.envs[catchStack.cursor], 1);
9124 }
9125 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9126 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 591);
9127 fatal_exit(1);
9128 }
9129 var28 = var30;
9130 RET_LABEL29:(void)0;
9131 }
9132 }
9133 var_c2 = var28;
9134 {
9135 { /* Inline model$MClass$mclass_type (var_c2) on <var_c2:MClass> */
9136 var33 = var_c2->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_c2:MClass> */
9137 if (unlikely(var33 == NULL)) {
9138 if(catchStack.cursor >= 0){
9139 longjmp(catchStack.envs[catchStack.cursor], 1);
9140 }
9141 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
9142 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
9143 fatal_exit(1);
9144 }
9145 var31 = var33;
9146 RET_LABEL32:(void)0;
9147 }
9148 }
9149 {
9150 { /* Inline model$MClass$mclass_type (var_c1) on <var_c1:MClass> */
9151 var36 = var_c1->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_c1:MClass> */
9152 if (unlikely(var36 == NULL)) {
9153 if(catchStack.cursor >= 0){
9154 longjmp(catchStack.envs[catchStack.cursor], 1);
9155 }
9156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
9157 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
9158 fatal_exit(1);
9159 }
9160 var34 = var36;
9161 RET_LABEL35:(void)0;
9162 }
9163 }
9164 {
9165 { /* Inline kernel$Object$== (var31,var34) on <var31:MClassType> */
9166 var_other = var34;
9167 {
9168 { /* Inline kernel$Object$is_same_instance (var31,var_other) on <var31:MClassType> */
9169 var41 = var31 == var_other;
9170 var39 = var41;
9171 goto RET_LABEL40;
9172 RET_LABEL40:(void)0;
9173 }
9174 }
9175 var37 = var39;
9176 goto RET_LABEL38;
9177 RET_LABEL38:(void)0;
9178 }
9179 }
9180 if (var37){
9181 {
9182 { /* Inline model$MClassDef$mmodule (var_cd2) on <var_cd2:MClassDef> */
9183 var44 = var_cd2->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var_cd2:MClassDef> */
9184 if (unlikely(var44 == NULL)) {
9185 if(catchStack.cursor >= 0){
9186 longjmp(catchStack.envs[catchStack.cursor], 1);
9187 }
9188 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
9189 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
9190 fatal_exit(1);
9191 }
9192 var42 = var44;
9193 RET_LABEL43:(void)0;
9194 }
9195 }
9196 {
9197 { /* Inline mmodule$MModule$in_importation (var42) on <var42:MModule> */
9198 var47 = var42->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var42:MModule> */
9199 if (unlikely(var47 == NULL)) {
9200 if(catchStack.cursor >= 0){
9201 longjmp(catchStack.envs[catchStack.cursor], 1);
9202 }
9203 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
9204 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
9205 fatal_exit(1);
9206 }
9207 var45 = var47;
9208 RET_LABEL46:(void)0;
9209 }
9210 }
9211 {
9212 { /* Inline model$MClassDef$mmodule (var_cd1) on <var_cd1:MClassDef> */
9213 var50 = var_cd1->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var_cd1:MClassDef> */
9214 if (unlikely(var50 == NULL)) {
9215 if(catchStack.cursor >= 0){
9216 longjmp(catchStack.envs[catchStack.cursor], 1);
9217 }
9218 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
9219 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
9220 fatal_exit(1);
9221 }
9222 var48 = var50;
9223 RET_LABEL49:(void)0;
9224 }
9225 }
9226 {
9227 var51 = poset___poset__POSetElement____60d(var45, var48);
9228 }
9229 if (var51){
9230 var_keep = 0;
9231 goto BREAK_label17;
9232 } else {
9233 }
9234 } else {
9235 {
9236 { /* Inline model$MClassDef$bound_mtype (var_cd2) on <var_cd2:MClassDef> */
9237 var55 = var_cd2->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_cd2:MClassDef> */
9238 if (unlikely(var55 == NULL)) {
9239 if(catchStack.cursor >= 0){
9240 longjmp(catchStack.envs[catchStack.cursor], 1);
9241 }
9242 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
9243 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
9244 fatal_exit(1);
9245 }
9246 var53 = var55;
9247 RET_LABEL54:(void)0;
9248 }
9249 }
9250 {
9251 { /* Inline model$MClassDef$bound_mtype (var_cd1) on <var_cd1:MClassDef> */
9252 var58 = var_cd1->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_cd1:MClassDef> */
9253 if (unlikely(var58 == NULL)) {
9254 if(catchStack.cursor >= 0){
9255 longjmp(catchStack.envs[catchStack.cursor], 1);
9256 }
9257 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
9258 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
9259 fatal_exit(1);
9260 }
9261 var56 = var58;
9262 RET_LABEL57:(void)0;
9263 }
9264 }
9265 {
9266 var59 = nitc___nitc__MType___is_subtype(var53, var_mmodule, ((val*)NULL), var56);
9267 }
9268 var_60 = var59;
9269 if (var59){
9270 {
9271 { /* Inline model$MClassDef$bound_mtype (var_cd2) on <var_cd2:MClassDef> */
9272 var63 = var_cd2->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_cd2:MClassDef> */
9273 if (unlikely(var63 == NULL)) {
9274 if(catchStack.cursor >= 0){
9275 longjmp(catchStack.envs[catchStack.cursor], 1);
9276 }
9277 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
9278 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
9279 fatal_exit(1);
9280 }
9281 var61 = var63;
9282 RET_LABEL62:(void)0;
9283 }
9284 }
9285 {
9286 { /* Inline model$MClassDef$bound_mtype (var_cd1) on <var_cd1:MClassDef> */
9287 var66 = var_cd1->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_cd1:MClassDef> */
9288 if (unlikely(var66 == NULL)) {
9289 if(catchStack.cursor >= 0){
9290 longjmp(catchStack.envs[catchStack.cursor], 1);
9291 }
9292 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
9293 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
9294 fatal_exit(1);
9295 }
9296 var64 = var66;
9297 RET_LABEL65:(void)0;
9298 }
9299 }
9300 {
9301 { /* Inline kernel$Object$!= (var61,var64) on <var61:MClassType> */
9302 var_other69 = var64;
9303 {
9304 var70 = ((short int(*)(val* self, val* p0))(var61->class->vft[COLOR_core__kernel__Object___61d_61d]))(var61, var_other69); /* == on <var61:MClassType>*/
9305 }
9306 var71 = !var70;
9307 var67 = var71;
9308 goto RET_LABEL68;
9309 RET_LABEL68:(void)0;
9310 }
9311 }
9312 var52 = var67;
9313 } else {
9314 var52 = var_60;
9315 }
9316 if (var52){
9317 var_keep = 0;
9318 goto BREAK_label17;
9319 } else {
9320 }
9321 }
9322 BREAK_label24: (void)0;
9323 {
9324 ((void(*)(val* self))((((long)var_15&3)?class_info[((long)var_15&3)]:var_15->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_15); /* next on <var_15:IndexedIterator[MPropDef]>*/
9325 }
9326 }
9327 BREAK_label17: (void)0;
9328 {
9329 ((void(*)(val* self))((((long)var_15&3)?class_info[((long)var_15&3)]:var_15->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_15); /* finish on <var_15:IndexedIterator[MPropDef]>*/
9330 }
9331 if (var_keep){
9332 {
9333 core___core__Array___core__abstract_collection__SimpleCollection__add(var_res, var_pd1); /* Direct call array$Array$add on <var_res:Array[MPropDef]>*/
9334 }
9335 } else {
9336 }
9337 {
9338 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_4); /* next on <var_4:IndexedIterator[MPropDef]>*/
9339 }
9340 }
9341 BREAK_label: (void)0;
9342 {
9343 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_4); /* finish on <var_4:IndexedIterator[MPropDef]>*/
9344 }
9345 {
9346 var72 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_res);
9347 }
9348 if (var72){
9349 var73 = glob_sys;
9350 if (unlikely(varonce==NULL)) {
9351 var74 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
9352 if (likely(varonce75!=NULL)) {
9353 var76 = varonce75;
9354 } else {
9355 var77 = "All lost! ";
9356 var79 = (val*)(10l<<2|1);
9357 var80 = (val*)(10l<<2|1);
9358 var81 = (val*)((long)(0)<<2|3);
9359 var82 = (val*)((long)(0)<<2|3);
9360 var78 = core__flat___CString___to_s_unsafe(var77, var79, var80, var81, var82);
9361 var76 = var78;
9362 varonce75 = var76;
9363 }
9364 ((struct instance_core__NativeArray*)var74)->values[0]=var76;
9365 } else {
9366 var74 = varonce;
9367 varonce = NULL;
9368 }
9369 if (likely(varonce83!=NULL)) {
9370 var84 = varonce83;
9371 } else {
9372 var85 = ", ";
9373 var87 = (val*)(2l<<2|1);
9374 var88 = (val*)(2l<<2|1);
9375 var89 = (val*)((long)(0)<<2|3);
9376 var90 = (val*)((long)(0)<<2|3);
9377 var86 = core__flat___CString___to_s_unsafe(var85, var87, var88, var89, var90);
9378 var84 = var86;
9379 varonce83 = var84;
9380 }
9381 {
9382 var91 = core__abstract_text___Collection___join(var_candidates, var84, ((val*)NULL));
9383 }
9384 ((struct instance_core__NativeArray*)var74)->values[1]=var91;
9385 {
9386 var92 = ((val*(*)(val* self))(var74->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var74); /* native_to_s on <var74:NativeArray[String]>*/
9387 }
9388 varonce = var74;
9389 {
9390 core__file___Sys___print_error(var73, var92); /* Direct call file$Sys$print_error on <var73:Sys>*/
9391 }
9392 } else {
9393 }
9394 var = var_res;
9395 goto RET_LABEL;
9396 RET_LABEL:;
9397 return var;
9398 }
9399 /* method model$MProperty$lookup_first_definition for (self: MProperty, MModule, MType): MPropDef */
9400 val* nitc___nitc__MProperty___lookup_first_definition(val* self, val* p0, val* p1) {
9401 val* var /* : MPropDef */;
9402 val* var_mmodule /* var mmodule: MModule */;
9403 val* var_mtype /* var mtype: MType */;
9404 val* var1 /* : Array[MPropDef] */;
9405 val* var2 /* : nullable Object */;
9406 var_mmodule = p0;
9407 var_mtype = p1;
9408 {
9409 var1 = nitc___nitc__MProperty___lookup_all_definitions(self, var_mmodule, var_mtype);
9410 }
9411 {
9412 var2 = core___core__SequenceRead___Collection__first(var1);
9413 }
9414 var = var2;
9415 goto RET_LABEL;
9416 RET_LABEL:;
9417 return var;
9418 }
9419 /* method model$MProperty$lookup_all_definitions for (self: MProperty, MModule, MType): Array[MPropDef] */
9420 val* nitc___nitc__MProperty___lookup_all_definitions(val* self, val* p0, val* p1) {
9421 val* var /* : Array[MPropDef] */;
9422 val* var_mmodule /* var mmodule: MModule */;
9423 val* var_mtype /* var mtype: MType */;
9424 val* var1 /* : MType */;
9425 val* var2 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
9426 val* var4 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
9427 val* var5 /* : nullable Object */;
9428 val* var_cache /* var cache: nullable Array[MPropDef] */;
9429 short int var6 /* : Bool */;
9430 short int var7 /* : Bool */;
9431 val* var_other /* var other: nullable Object */;
9432 short int var9 /* : Bool */;
9433 short int var10 /* : Bool */;
9434 short int var11 /* : Bool */;
9435 short int var12 /* : Bool */;
9436 short int var13 /* : Bool */;
9437 val* var14 /* : Array[MPropDef] */;
9438 val* var_candidates /* var candidates: Array[MPropDef] */;
9439 val* var15 /* : Array[MPropDef] */;
9440 val* var17 /* : Array[MPropDef] */;
9441 val* var_ /* var : Array[MPropDef] */;
9442 val* var18 /* : IndexedIterator[nullable Object] */;
9443 val* var_19 /* var : IndexedIterator[MPropDef] */;
9444 short int var20 /* : Bool */;
9445 val* var21 /* : nullable Object */;
9446 val* var_mpropdef /* var mpropdef: MPropDef */;
9447 val* var22 /* : POSetElement[MModule] */;
9448 val* var24 /* : POSetElement[MModule] */;
9449 val* var25 /* : MClassDef */;
9450 val* var27 /* : MClassDef */;
9451 val* var28 /* : MModule */;
9452 val* var30 /* : MModule */;
9453 short int var31 /* : Bool */;
9454 short int var32 /* : Bool */;
9455 val* var34 /* : MClassDef */;
9456 val* var36 /* : MClassDef */;
9457 val* var37 /* : MClassType */;
9458 val* var39 /* : MClassType */;
9459 short int var40 /* : Bool */;
9460 short int var41 /* : Bool */;
9461 long var42 /* : Int */;
9462 long var44 /* : Int */;
9463 short int var45 /* : Bool */;
9464 short int var47 /* : Bool */;
9465 int cltype;
9466 int idtype;
9467 const char* var_class_name;
9468 short int var48 /* : Bool */;
9469 val* var49 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
9470 val* var51 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
9471 val* var52 /* : Array[nullable Object] */;
9472 val* var53 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
9473 val* var55 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
9474 var_mmodule = p0;
9475 var_mtype = p1;
9476 {
9477 var1 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__undecorate]))(var_mtype); /* undecorate on <var_mtype:MType>*/
9478 }
9479 var_mtype = var1;
9480 {
9481 { /* Inline model$MProperty$lookup_all_definitions_cache (self) on <self:MProperty> */
9482 var4 = self->attrs[COLOR_nitc__model__MProperty___lookup_all_definitions_cache].val; /* _lookup_all_definitions_cache on <self:MProperty> */
9483 if (unlikely(var4 == NULL)) {
9484 if(catchStack.cursor >= 0){
9485 longjmp(catchStack.envs[catchStack.cursor], 1);
9486 }
9487 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_all_definitions_cache");
9488 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2282);
9489 fatal_exit(1);
9490 }
9491 var2 = var4;
9492 RET_LABEL3:(void)0;
9493 }
9494 }
9495 {
9496 var5 = more_collections___more_collections__HashMap2____91d_93d(var2, var_mmodule, var_mtype);
9497 }
9498 var_cache = var5;
9499 if (var_cache == NULL) {
9500 var6 = 0; /* is null */
9501 } else {
9502 var6 = 1; /* arg is null and recv is not */
9503 }
9504 if (0) {
9505 { /* Inline kernel$Object$!= (var_cache,((val*)NULL)) on <var_cache:nullable Array[MPropDef]> */
9506 var_other = ((val*)NULL);
9507 {
9508 var9 = ((short int(*)(val* self, val* p0))(var_cache->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_cache, var_other); /* == on <var_cache:nullable Array[MPropDef](Array[MPropDef])>*/
9509 }
9510 var10 = !var9;
9511 var7 = var10;
9512 goto RET_LABEL8;
9513 RET_LABEL8:(void)0;
9514 }
9515 var6 = var7;
9516 }
9517 if (var6){
9518 var = var_cache;
9519 goto RET_LABEL;
9520 } else {
9521 }
9522 {
9523 var11 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
9524 }
9525 var12 = !var11;
9526 if (unlikely(!var12)) {
9527 if(catchStack.cursor >= 0){
9528 longjmp(catchStack.envs[catchStack.cursor], 1);
9529 }
9530 PRINT_ERROR("Runtime error: %s", "Assert failed");
9531 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2256);
9532 fatal_exit(1);
9533 }
9534 {
9535 var13 = nitc___nitc__MType___has_mproperty(var_mtype, var_mmodule, self);
9536 }
9537 if (unlikely(!var13)) {
9538 if(catchStack.cursor >= 0){
9539 longjmp(catchStack.envs[catchStack.cursor], 1);
9540 }
9541 PRINT_ERROR("Runtime error: %s", "Assert failed");
9542 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2257);
9543 fatal_exit(1);
9544 }
9545 var14 = NEW_core__Array(self->type->resolution_table->types[COLOR_core__Array__nitc__model__MProperty__MPROPDEF]);
9546 {
9547 core___core__Array___core__kernel__Object__init(var14); /* Direct call array$Array$init on <var14:Array[MPropDef]>*/
9548 }
9549 var_candidates = var14;
9550 {
9551 { /* Inline model$MProperty$mpropdefs (self) on <self:MProperty> */
9552 var17 = self->attrs[COLOR_nitc__model__MProperty___mpropdefs].val; /* _mpropdefs on <self:MProperty> */
9553 if (unlikely(var17 == NULL)) {
9554 if(catchStack.cursor >= 0){
9555 longjmp(catchStack.envs[catchStack.cursor], 1);
9556 }
9557 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
9558 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2092);
9559 fatal_exit(1);
9560 }
9561 var15 = var17;
9562 RET_LABEL16:(void)0;
9563 }
9564 }
9565 var_ = var15;
9566 {
9567 var18 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
9568 }
9569 var_19 = var18;
9570 for(;;) {
9571 {
9572 var20 = ((short int(*)(val* self))((((long)var_19&3)?class_info[((long)var_19&3)]:var_19->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_19); /* is_ok on <var_19:IndexedIterator[MPropDef]>*/
9573 }
9574 if (var20){
9575 } else {
9576 goto BREAK_label;
9577 }
9578 {
9579 var21 = ((val*(*)(val* self))((((long)var_19&3)?class_info[((long)var_19&3)]:var_19->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_19); /* item on <var_19:IndexedIterator[MPropDef]>*/
9580 }
9581 var_mpropdef = var21;
9582 {
9583 { /* Inline mmodule$MModule$in_importation (var_mmodule) on <var_mmodule:MModule> */
9584 var24 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
9585 if (unlikely(var24 == NULL)) {
9586 if(catchStack.cursor >= 0){
9587 longjmp(catchStack.envs[catchStack.cursor], 1);
9588 }
9589 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
9590 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
9591 fatal_exit(1);
9592 }
9593 var22 = var24;
9594 RET_LABEL23:(void)0;
9595 }
9596 }
9597 {
9598 { /* Inline model$MPropDef$mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
9599 var27 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
9600 if (unlikely(var27 == NULL)) {
9601 if(catchStack.cursor >= 0){
9602 longjmp(catchStack.envs[catchStack.cursor], 1);
9603 }
9604 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
9605 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
9606 fatal_exit(1);
9607 }
9608 var25 = var27;
9609 RET_LABEL26:(void)0;
9610 }
9611 }
9612 {
9613 { /* Inline model$MClassDef$mmodule (var25) on <var25:MClassDef> */
9614 var30 = var25->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var25:MClassDef> */
9615 if (unlikely(var30 == NULL)) {
9616 if(catchStack.cursor >= 0){
9617 longjmp(catchStack.envs[catchStack.cursor], 1);
9618 }
9619 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
9620 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
9621 fatal_exit(1);
9622 }
9623 var28 = var30;
9624 RET_LABEL29:(void)0;
9625 }
9626 }
9627 {
9628 var31 = poset___poset__POSetElement____60d_61d(var22, var28);
9629 }
9630 var32 = !var31;
9631 if (var32){
9632 goto BREAK_label33;
9633 } else {
9634 }
9635 {
9636 { /* Inline model$MPropDef$mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
9637 var36 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
9638 if (unlikely(var36 == NULL)) {
9639 if(catchStack.cursor >= 0){
9640 longjmp(catchStack.envs[catchStack.cursor], 1);
9641 }
9642 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
9643 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
9644 fatal_exit(1);
9645 }
9646 var34 = var36;
9647 RET_LABEL35:(void)0;
9648 }
9649 }
9650 {
9651 { /* Inline model$MClassDef$bound_mtype (var34) on <var34:MClassDef> */
9652 var39 = var34->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var34:MClassDef> */
9653 if (unlikely(var39 == NULL)) {
9654 if(catchStack.cursor >= 0){
9655 longjmp(catchStack.envs[catchStack.cursor], 1);
9656 }
9657 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
9658 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
9659 fatal_exit(1);
9660 }
9661 var37 = var39;
9662 RET_LABEL38:(void)0;
9663 }
9664 }
9665 {
9666 var40 = nitc___nitc__MType___is_subtype(var_mtype, var_mmodule, ((val*)NULL), var37);
9667 }
9668 var41 = !var40;
9669 if (var41){
9670 goto BREAK_label33;
9671 } else {
9672 }
9673 {
9674 core___core__Array___core__abstract_collection__SimpleCollection__add(var_candidates, var_mpropdef); /* Direct call array$Array$add on <var_candidates:Array[MPropDef]>*/
9675 }
9676 BREAK_label33: (void)0;
9677 {
9678 ((void(*)(val* self))((((long)var_19&3)?class_info[((long)var_19&3)]:var_19->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_19); /* next on <var_19:IndexedIterator[MPropDef]>*/
9679 }
9680 }
9681 BREAK_label: (void)0;
9682 {
9683 ((void(*)(val* self))((((long)var_19&3)?class_info[((long)var_19&3)]:var_19->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_19); /* finish on <var_19:IndexedIterator[MPropDef]>*/
9684 }
9685 {
9686 { /* Inline array$AbstractArrayRead$length (var_candidates) on <var_candidates:Array[MPropDef]> */
9687 var44 = var_candidates->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_candidates:Array[MPropDef]> */
9688 var42 = var44;
9689 RET_LABEL43:(void)0;
9690 }
9691 }
9692 {
9693 { /* Inline kernel$Int$<= (var42,1l) on <var42:Int> */
9694 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
9695 /* <1l:Int> isa OTHER */
9696 var47 = 1; /* easy <1l:Int> isa OTHER*/
9697 if (unlikely(!var47)) {
9698 var_class_name = type_core__Int.name;
9699 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
9700 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
9701 fatal_exit(1);
9702 }
9703 var48 = var42 <= 1l;
9704 var45 = var48;
9705 goto RET_LABEL46;
9706 RET_LABEL46:(void)0;
9707 }
9708 }
9709 if (var45){
9710 {
9711 { /* Inline model$MProperty$lookup_all_definitions_cache (self) on <self:MProperty> */
9712 var51 = self->attrs[COLOR_nitc__model__MProperty___lookup_all_definitions_cache].val; /* _lookup_all_definitions_cache on <self:MProperty> */
9713 if (unlikely(var51 == NULL)) {
9714 if(catchStack.cursor >= 0){
9715 longjmp(catchStack.envs[catchStack.cursor], 1);
9716 }
9717 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_all_definitions_cache");
9718 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2282);
9719 fatal_exit(1);
9720 }
9721 var49 = var51;
9722 RET_LABEL50:(void)0;
9723 }
9724 }
9725 {
9726 more_collections___more_collections__HashMap2____91d_93d_61d(var49, var_mmodule, var_mtype, var_candidates); /* Direct call more_collections$HashMap2$[]= on <var49:HashMap2[MModule, MType, Array[MPropDef]]>*/
9727 }
9728 var = var_candidates;
9729 goto RET_LABEL;
9730 } else {
9731 }
9732 {
9733 nitc__model___MModule___linearize_mpropdefs(var_mmodule, var_candidates); /* Direct call model$MModule$linearize_mpropdefs on <var_mmodule:MModule>*/
9734 }
9735 {
9736 var52 = core___core__AbstractArrayRead___reversed(var_candidates);
9737 }
9738 var_candidates = var52;
9739 {
9740 { /* Inline model$MProperty$lookup_all_definitions_cache (self) on <self:MProperty> */
9741 var55 = self->attrs[COLOR_nitc__model__MProperty___lookup_all_definitions_cache].val; /* _lookup_all_definitions_cache on <self:MProperty> */
9742 if (unlikely(var55 == NULL)) {
9743 if(catchStack.cursor >= 0){
9744 longjmp(catchStack.envs[catchStack.cursor], 1);
9745 }
9746 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_all_definitions_cache");
9747 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2282);
9748 fatal_exit(1);
9749 }
9750 var53 = var55;
9751 RET_LABEL54:(void)0;
9752 }
9753 }
9754 {
9755 more_collections___more_collections__HashMap2____91d_93d_61d(var53, var_mmodule, var_mtype, var_candidates); /* Direct call more_collections$HashMap2$[]= on <var53:HashMap2[MModule, MType, Array[MPropDef]]>*/
9756 }
9757 var = var_candidates;
9758 goto RET_LABEL;
9759 RET_LABEL:;
9760 return var;
9761 }
9762 /* method model$MProperty$lookup_all_definitions_cache for (self: MProperty): HashMap2[MModule, MType, Array[MPropDef]] */
9763 val* nitc___nitc__MProperty___lookup_all_definitions_cache(val* self) {
9764 val* var /* : HashMap2[MModule, MType, Array[MPropDef]] */;
9765 val* var1 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
9766 var1 = self->attrs[COLOR_nitc__model__MProperty___lookup_all_definitions_cache].val; /* _lookup_all_definitions_cache on <self:MProperty> */
9767 if (unlikely(var1 == NULL)) {
9768 if(catchStack.cursor >= 0){
9769 longjmp(catchStack.envs[catchStack.cursor], 1);
9770 }
9771 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_all_definitions_cache");
9772 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2282);
9773 fatal_exit(1);
9774 }
9775 var = var1;
9776 RET_LABEL:;
9777 return var;
9778 }
9779 /* method model$MMethod$is_toplevel for (self: MMethod): Bool */
9780 short int nitc___nitc__MMethod___is_toplevel(val* self) {
9781 short int var /* : Bool */;
9782 short int var1 /* : Bool */;
9783 var1 = self->attrs[COLOR_nitc__model__MMethod___is_toplevel].s; /* _is_toplevel on <self:MMethod> */
9784 var = var1;
9785 RET_LABEL:;
9786 return var;
9787 }
9788 /* method model$MMethod$is_toplevel= for (self: MMethod, Bool) */
9789 void nitc___nitc__MMethod___is_toplevel_61d(val* self, short int p0) {
9790 self->attrs[COLOR_nitc__model__MMethod___is_toplevel].s = p0; /* _is_toplevel on <self:MMethod> */
9791 RET_LABEL:;
9792 }
9793 /* method model$MMethod$is_init for (self: MMethod): Bool */
9794 short int nitc___nitc__MMethod___is_init(val* self) {
9795 short int var /* : Bool */;
9796 short int var1 /* : Bool */;
9797 var1 = self->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <self:MMethod> */
9798 var = var1;
9799 RET_LABEL:;
9800 return var;
9801 }
9802 /* method model$MMethod$is_init= for (self: MMethod, Bool) */
9803 void nitc___nitc__MMethod___is_init_61d(val* self, short int p0) {
9804 self->attrs[COLOR_nitc__model__MMethod___is_init].s = p0; /* _is_init on <self:MMethod> */
9805 RET_LABEL:;
9806 }
9807 /* method model$MMethod$is_root_init for (self: MMethod): Bool */
9808 short int nitc___nitc__MMethod___is_root_init(val* self) {
9809 short int var /* : Bool */;
9810 short int var1 /* : Bool */;
9811 var1 = self->attrs[COLOR_nitc__model__MMethod___is_root_init].s; /* _is_root_init on <self:MMethod> */
9812 var = var1;
9813 RET_LABEL:;
9814 return var;
9815 }
9816 /* method model$MMethod$is_root_init= for (self: MMethod, Bool) */
9817 void nitc___nitc__MMethod___is_root_init_61d(val* self, short int p0) {
9818 self->attrs[COLOR_nitc__model__MMethod___is_root_init].s = p0; /* _is_root_init on <self:MMethod> */
9819 RET_LABEL:;
9820 }
9821 /* method model$MMethod$is_new for (self: MMethod): Bool */
9822 short int nitc___nitc__MMethod___is_new(val* self) {
9823 short int var /* : Bool */;
9824 short int var1 /* : Bool */;
9825 var1 = self->attrs[COLOR_nitc__model__MMethod___is_new].s; /* _is_new on <self:MMethod> */
9826 var = var1;
9827 RET_LABEL:;
9828 return var;
9829 }
9830 /* method model$MMethod$is_new= for (self: MMethod, Bool) */
9831 void nitc___nitc__MMethod___is_new_61d(val* self, short int p0) {
9832 self->attrs[COLOR_nitc__model__MMethod___is_new].s = p0; /* _is_new on <self:MMethod> */
9833 RET_LABEL:;
9834 }
9835 /* method model$MMethod$is_init_for for (self: MMethod, MClass): Bool */
9836 short int nitc___nitc__MMethod___is_init_for(val* self, val* p0) {
9837 short int var /* : Bool */;
9838 val* var_mclass /* var mclass: MClass */;
9839 short int var1 /* : Bool */;
9840 short int var3 /* : Bool */;
9841 var_mclass = p0;
9842 {
9843 { /* Inline model$MMethod$is_init (self) on <self:MMethod> */
9844 var3 = self->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <self:MMethod> */
9845 var1 = var3;
9846 RET_LABEL2:(void)0;
9847 }
9848 }
9849 var = var1;
9850 goto RET_LABEL;
9851 RET_LABEL:;
9852 return var;
9853 }
9854 /* method model$MMethod$is_null_safe for (self: MMethod): Bool */
9855 short int nitc___nitc__MMethod___is_null_safe(val* self) {
9856 short int var /* : Bool */;
9857 short int var1 /* : Bool */;
9858 short int var2 /* : Bool */;
9859 val* var3 /* : String */;
9860 val* var5 /* : String */;
9861 static val* varonce;
9862 val* var6 /* : String */;
9863 char* var7 /* : CString */;
9864 val* var8 /* : String */;
9865 val* var9 /* : nullable Int */;
9866 val* var10 /* : nullable Int */;
9867 val* var11 /* : nullable Bool */;
9868 val* var12 /* : nullable Bool */;
9869 short int var13 /* : Bool */;
9870 short int var_ /* var : Bool */;
9871 val* var14 /* : String */;
9872 val* var16 /* : String */;
9873 static val* varonce17;
9874 val* var18 /* : String */;
9875 char* var19 /* : CString */;
9876 val* var20 /* : String */;
9877 val* var21 /* : nullable Int */;
9878 val* var22 /* : nullable Int */;
9879 val* var23 /* : nullable Bool */;
9880 val* var24 /* : nullable Bool */;
9881 short int var25 /* : Bool */;
9882 short int var_26 /* var : Bool */;
9883 val* var27 /* : String */;
9884 val* var29 /* : String */;
9885 static val* varonce30;
9886 val* var31 /* : String */;
9887 char* var32 /* : CString */;
9888 val* var33 /* : String */;
9889 val* var34 /* : nullable Int */;
9890 val* var35 /* : nullable Int */;
9891 val* var36 /* : nullable Bool */;
9892 val* var37 /* : nullable Bool */;
9893 short int var38 /* : Bool */;
9894 {
9895 { /* Inline model$MProperty$name (self) on <self:MMethod> */
9896 var5 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MMethod> */
9897 if (unlikely(var5 == NULL)) {
9898 if(catchStack.cursor >= 0){
9899 longjmp(catchStack.envs[catchStack.cursor], 1);
9900 }
9901 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
9902 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
9903 fatal_exit(1);
9904 }
9905 var3 = var5;
9906 RET_LABEL4:(void)0;
9907 }
9908 }
9909 if (likely(varonce!=NULL)) {
9910 var6 = varonce;
9911 } else {
9912 var7 = "==";
9913 var9 = (val*)(2l<<2|1);
9914 var10 = (val*)(2l<<2|1);
9915 var11 = (val*)((long)(0)<<2|3);
9916 var12 = (val*)((long)(0)<<2|3);
9917 var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12);
9918 var6 = var8;
9919 varonce = var6;
9920 }
9921 {
9922 var13 = ((short int(*)(val* self, val* p0))(var3->class->vft[COLOR_core__kernel__Object___61d_61d]))(var3, var6); /* == on <var3:String>*/
9923 }
9924 var_ = var13;
9925 if (var13){
9926 var2 = var_;
9927 } else {
9928 {
9929 { /* Inline model$MProperty$name (self) on <self:MMethod> */
9930 var16 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MMethod> */
9931 if (unlikely(var16 == NULL)) {
9932 if(catchStack.cursor >= 0){
9933 longjmp(catchStack.envs[catchStack.cursor], 1);
9934 }
9935 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
9936 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
9937 fatal_exit(1);
9938 }
9939 var14 = var16;
9940 RET_LABEL15:(void)0;
9941 }
9942 }
9943 if (likely(varonce17!=NULL)) {
9944 var18 = varonce17;
9945 } else {
9946 var19 = "!=";
9947 var21 = (val*)(2l<<2|1);
9948 var22 = (val*)(2l<<2|1);
9949 var23 = (val*)((long)(0)<<2|3);
9950 var24 = (val*)((long)(0)<<2|3);
9951 var20 = core__flat___CString___to_s_unsafe(var19, var21, var22, var23, var24);
9952 var18 = var20;
9953 varonce17 = var18;
9954 }
9955 {
9956 var25 = ((short int(*)(val* self, val* p0))(var14->class->vft[COLOR_core__kernel__Object___61d_61d]))(var14, var18); /* == on <var14:String>*/
9957 }
9958 var2 = var25;
9959 }
9960 var_26 = var2;
9961 if (var2){
9962 var1 = var_26;
9963 } else {
9964 {
9965 { /* Inline model$MProperty$name (self) on <self:MMethod> */
9966 var29 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MMethod> */
9967 if (unlikely(var29 == NULL)) {
9968 if(catchStack.cursor >= 0){
9969 longjmp(catchStack.envs[catchStack.cursor], 1);
9970 }
9971 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
9972 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
9973 fatal_exit(1);
9974 }
9975 var27 = var29;
9976 RET_LABEL28:(void)0;
9977 }
9978 }
9979 if (likely(varonce30!=NULL)) {
9980 var31 = varonce30;
9981 } else {
9982 var32 = "is_same_instance";
9983 var34 = (val*)(16l<<2|1);
9984 var35 = (val*)(16l<<2|1);
9985 var36 = (val*)((long)(0)<<2|3);
9986 var37 = (val*)((long)(0)<<2|3);
9987 var33 = core__flat___CString___to_s_unsafe(var32, var34, var35, var36, var37);
9988 var31 = var33;
9989 varonce30 = var31;
9990 }
9991 {
9992 var38 = ((short int(*)(val* self, val* p0))(var27->class->vft[COLOR_core__kernel__Object___61d_61d]))(var27, var31); /* == on <var27:String>*/
9993 }
9994 var1 = var38;
9995 }
9996 var = var1;
9997 goto RET_LABEL;
9998 RET_LABEL:;
9999 return var;
10000 }