misc/vim: do not show the preview window when using the omnifunc
[nit.git] / c_src / nitc__model.sep.2.c
1 #include "nitc__model.sep.0.h"
2 /* method model#MVirtualType#full_name for (self: MVirtualType): String */
3 val* nitc___nitc__MVirtualType___nitc__model_base__MEntity__full_name(val* self) {
4 val* var /* : String */;
5 val* var1 /* : MVirtualTypeProp */;
6 val* var3 /* : MVirtualTypeProp */;
7 val* var4 /* : String */;
8 {
9 { /* Inline model#MVirtualType#mproperty (self) on <self:MVirtualType> */
10 var3 = self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
11 if (unlikely(var3 == NULL)) {
12 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
13 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1369);
14 fatal_exit(1);
15 }
16 var1 = var3;
17 RET_LABEL2:(void)0;
18 }
19 }
20 {
21 var4 = nitc___nitc__MProperty___nitc__model_base__MEntity__full_name(var1);
22 }
23 var = var4;
24 goto RET_LABEL;
25 RET_LABEL:;
26 return var;
27 }
28 /* method model#MVirtualType#c_name for (self: MVirtualType): String */
29 val* nitc___nitc__MVirtualType___nitc__model_base__MEntity__c_name(val* self) {
30 val* var /* : String */;
31 val* var1 /* : MVirtualTypeProp */;
32 val* var3 /* : MVirtualTypeProp */;
33 val* var4 /* : String */;
34 {
35 { /* Inline model#MVirtualType#mproperty (self) on <self:MVirtualType> */
36 var3 = self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
37 if (unlikely(var3 == NULL)) {
38 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
39 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1369);
40 fatal_exit(1);
41 }
42 var1 = var3;
43 RET_LABEL2:(void)0;
44 }
45 }
46 {
47 var4 = nitc___nitc__MProperty___nitc__model_base__MEntity__c_name(var1);
48 }
49 var = var4;
50 goto RET_LABEL;
51 RET_LABEL:;
52 return var;
53 }
54 /* method model#MVirtualType#init for (self: MVirtualType) */
55 void nitc___nitc__MVirtualType___core__kernel__Object__init(val* self) {
56 {
57 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MVirtualType___core__kernel__Object__init]))(self); /* init on <self:MVirtualType>*/
58 }
59 RET_LABEL:;
60 }
61 /* method model#MParameterType#mclass for (self: MParameterType): MClass */
62 val* nitc___nitc__MParameterType___mclass(val* self) {
63 val* var /* : MClass */;
64 val* var1 /* : MClass */;
65 var1 = self->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
66 if (unlikely(var1 == NULL)) {
67 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
68 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1498);
69 fatal_exit(1);
70 }
71 var = var1;
72 RET_LABEL:;
73 return var;
74 }
75 /* method model#MParameterType#mclass= for (self: MParameterType, MClass) */
76 void nitc___nitc__MParameterType___mclass_61d(val* self, val* p0) {
77 self->attrs[COLOR_nitc__model__MParameterType___mclass].val = p0; /* _mclass on <self:MParameterType> */
78 RET_LABEL:;
79 }
80 /* method model#MParameterType#model for (self: MParameterType): Model */
81 val* nitc___nitc__MParameterType___nitc__model_base__MEntity__model(val* self) {
82 val* var /* : Model */;
83 val* var1 /* : MClass */;
84 val* var3 /* : MClass */;
85 val* var4 /* : MModule */;
86 val* var6 /* : MModule */;
87 val* var7 /* : Model */;
88 val* var9 /* : Model */;
89 {
90 { /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
91 var3 = self->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
92 if (unlikely(var3 == NULL)) {
93 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
94 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1498);
95 fatal_exit(1);
96 }
97 var1 = var3;
98 RET_LABEL2:(void)0;
99 }
100 }
101 {
102 { /* Inline model#MClass#intro_mmodule (var1) on <var1:MClass> */
103 var6 = var1->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var1:MClass> */
104 if (unlikely(var6 == NULL)) {
105 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
106 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 380);
107 fatal_exit(1);
108 }
109 var4 = var6;
110 RET_LABEL5:(void)0;
111 }
112 }
113 {
114 { /* Inline mmodule#MModule#model (var4) on <var4:MModule> */
115 var9 = var4->attrs[COLOR_nitc__mmodule__MModule___model].val; /* _model on <var4:MModule> */
116 if (unlikely(var9 == NULL)) {
117 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
118 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 78);
119 fatal_exit(1);
120 }
121 var7 = var9;
122 RET_LABEL8:(void)0;
123 }
124 }
125 var = var7;
126 goto RET_LABEL;
127 RET_LABEL:;
128 return var;
129 }
130 /* method model#MParameterType#rank for (self: MParameterType): Int */
131 long nitc___nitc__MParameterType___rank(val* self) {
132 long var /* : Int */;
133 long var1 /* : Int */;
134 var1 = self->attrs[COLOR_nitc__model__MParameterType___rank].l; /* _rank on <self:MParameterType> */
135 var = var1;
136 RET_LABEL:;
137 return var;
138 }
139 /* method model#MParameterType#rank= for (self: MParameterType, Int) */
140 void nitc___nitc__MParameterType___rank_61d(val* self, long p0) {
141 self->attrs[COLOR_nitc__model__MParameterType___rank].l = p0; /* _rank on <self:MParameterType> */
142 RET_LABEL:;
143 }
144 /* method model#MParameterType#name for (self: MParameterType): String */
145 val* nitc___nitc__MParameterType___nitc__model_base__MEntity__name(val* self) {
146 val* var /* : String */;
147 val* var1 /* : String */;
148 var1 = self->attrs[COLOR_nitc__model__MParameterType___name].val; /* _name on <self:MParameterType> */
149 if (unlikely(var1 == NULL)) {
150 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
151 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1507);
152 fatal_exit(1);
153 }
154 var = var1;
155 RET_LABEL:;
156 return var;
157 }
158 /* method model#MParameterType#name= for (self: MParameterType, String) */
159 void nitc___nitc__MParameterType___name_61d(val* self, val* p0) {
160 self->attrs[COLOR_nitc__model__MParameterType___name].val = p0; /* _name on <self:MParameterType> */
161 RET_LABEL:;
162 }
163 /* method model#MParameterType#to_s for (self: MParameterType): String */
164 val* nitc___nitc__MParameterType___core__abstract_text__Object__to_s(val* self) {
165 val* var /* : String */;
166 val* var1 /* : String */;
167 val* var3 /* : String */;
168 {
169 { /* Inline model#MParameterType#name (self) on <self:MParameterType> */
170 var3 = self->attrs[COLOR_nitc__model__MParameterType___name].val; /* _name on <self:MParameterType> */
171 if (unlikely(var3 == NULL)) {
172 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
173 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1507);
174 fatal_exit(1);
175 }
176 var1 = var3;
177 RET_LABEL2:(void)0;
178 }
179 }
180 var = var1;
181 goto RET_LABEL;
182 RET_LABEL:;
183 return var;
184 }
185 /* method model#MParameterType#full_name for (self: MParameterType): String */
186 val* nitc___nitc__MParameterType___nitc__model_base__MEntity__full_name(val* self) {
187 val* var /* : String */;
188 short int var1 /* : Bool */;
189 val* var2 /* : String */;
190 val* var3 /* : String */;
191 val* var5 /* : NativeArray[String] */;
192 static val* varonce;
193 static val* varonce6;
194 val* var7 /* : String */;
195 char* var8 /* : NativeString */;
196 val* var9 /* : String */;
197 val* var10 /* : MClass */;
198 val* var12 /* : MClass */;
199 val* var13 /* : String */;
200 val* var14 /* : String */;
201 val* var16 /* : String */;
202 val* var17 /* : String */;
203 var1 = self->attrs[COLOR_nitc__model__MParameterType___full_name].val != NULL; /* _full_name on <self:MParameterType> */
204 if(likely(var1)) {
205 var2 = self->attrs[COLOR_nitc__model__MParameterType___full_name].val; /* _full_name on <self:MParameterType> */
206 if (unlikely(var2 == NULL)) {
207 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_name");
208 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1511);
209 fatal_exit(1);
210 }
211 } else {
212 {
213 if (unlikely(varonce==NULL)) {
214 var5 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
215 if (likely(varonce6!=NULL)) {
216 var7 = varonce6;
217 } else {
218 var8 = "::";
219 var9 = core__flat___NativeString___to_s_full(var8, 2l, 2l);
220 var7 = var9;
221 varonce6 = var7;
222 }
223 ((struct instance_core__NativeArray*)var5)->values[1]=var7;
224 } else {
225 var5 = varonce;
226 varonce = NULL;
227 }
228 {
229 { /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
230 var12 = self->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
231 if (unlikely(var12 == NULL)) {
232 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
233 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1498);
234 fatal_exit(1);
235 }
236 var10 = var12;
237 RET_LABEL11:(void)0;
238 }
239 }
240 {
241 var13 = nitc___nitc__MClass___nitc__model_base__MEntity__full_name(var10);
242 }
243 ((struct instance_core__NativeArray*)var5)->values[0]=var13;
244 {
245 { /* Inline model#MParameterType#name (self) on <self:MParameterType> */
246 var16 = self->attrs[COLOR_nitc__model__MParameterType___name].val; /* _name on <self:MParameterType> */
247 if (unlikely(var16 == NULL)) {
248 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
249 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1507);
250 fatal_exit(1);
251 }
252 var14 = var16;
253 RET_LABEL15:(void)0;
254 }
255 }
256 ((struct instance_core__NativeArray*)var5)->values[2]=var14;
257 {
258 var17 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var5); /* native_to_s on <var5:NativeArray[String]>*/
259 }
260 varonce = var5;
261 var3 = var17;
262 goto RET_LABEL4;
263 RET_LABEL4:(void)0;
264 }
265 self->attrs[COLOR_nitc__model__MParameterType___full_name].val = var3; /* _full_name on <self:MParameterType> */
266 var2 = var3;
267 }
268 var = var2;
269 RET_LABEL:;
270 return var;
271 }
272 /* method model#MParameterType#c_name for (self: MParameterType): String */
273 val* nitc___nitc__MParameterType___nitc__model_base__MEntity__c_name(val* self) {
274 val* var /* : String */;
275 short int var1 /* : Bool */;
276 val* var2 /* : String */;
277 val* var3 /* : String */;
278 val* var5 /* : MClass */;
279 val* var7 /* : MClass */;
280 val* var8 /* : String */;
281 static val* varonce;
282 val* var9 /* : String */;
283 char* var10 /* : NativeString */;
284 val* var11 /* : String */;
285 val* var12 /* : String */;
286 val* var14 /* : NativeArray[String] */;
287 static val* varonce13;
288 static val* varonce15;
289 val* var16 /* : String */;
290 char* var17 /* : NativeString */;
291 val* var18 /* : String */;
292 val* var19 /* : String */;
293 val* var21 /* : String */;
294 val* var22 /* : String */;
295 val* var23 /* : String */;
296 val* var24 /* : String */;
297 var1 = self->attrs[COLOR_nitc__model__MParameterType___c_name].val != NULL; /* _c_name on <self:MParameterType> */
298 if(likely(var1)) {
299 var2 = self->attrs[COLOR_nitc__model__MParameterType___c_name].val; /* _c_name on <self:MParameterType> */
300 if (unlikely(var2 == NULL)) {
301 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_name");
302 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1513);
303 fatal_exit(1);
304 }
305 } else {
306 {
307 {
308 { /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
309 var7 = self->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
310 if (unlikely(var7 == NULL)) {
311 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
312 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1498);
313 fatal_exit(1);
314 }
315 var5 = var7;
316 RET_LABEL6:(void)0;
317 }
318 }
319 {
320 var8 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var5);
321 }
322 if (likely(varonce!=NULL)) {
323 var9 = varonce;
324 } else {
325 var10 = "__";
326 var11 = core__flat___NativeString___to_s_full(var10, 2l, 2l);
327 var9 = var11;
328 varonce = var9;
329 }
330 {
331 var12 = ((val*(*)(val* self, val* p0))(var8->class->vft[COLOR_core__abstract_text__String___43d]))(var8, var9); /* + on <var8:String>*/
332 }
333 if (unlikely(varonce13==NULL)) {
334 var14 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
335 if (likely(varonce15!=NULL)) {
336 var16 = varonce15;
337 } else {
338 var17 = "#";
339 var18 = core__flat___NativeString___to_s_full(var17, 1l, 1l);
340 var16 = var18;
341 varonce15 = var16;
342 }
343 ((struct instance_core__NativeArray*)var14)->values[0]=var16;
344 } else {
345 var14 = varonce13;
346 varonce13 = NULL;
347 }
348 {
349 { /* Inline model#MParameterType#name (self) on <self:MParameterType> */
350 var21 = self->attrs[COLOR_nitc__model__MParameterType___name].val; /* _name on <self:MParameterType> */
351 if (unlikely(var21 == NULL)) {
352 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
353 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1507);
354 fatal_exit(1);
355 }
356 var19 = var21;
357 RET_LABEL20:(void)0;
358 }
359 }
360 ((struct instance_core__NativeArray*)var14)->values[1]=var19;
361 {
362 var22 = ((val*(*)(val* self))(var14->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var14); /* native_to_s on <var14:NativeArray[String]>*/
363 }
364 varonce13 = var14;
365 {
366 var23 = core___core__Text___to_cmangle(var22);
367 }
368 {
369 var24 = ((val*(*)(val* self, val* p0))(var12->class->vft[COLOR_core__abstract_text__String___43d]))(var12, var23); /* + on <var12:String>*/
370 }
371 var3 = var24;
372 goto RET_LABEL4;
373 RET_LABEL4:(void)0;
374 }
375 self->attrs[COLOR_nitc__model__MParameterType___c_name].val = var3; /* _c_name on <self:MParameterType> */
376 var2 = var3;
377 }
378 var = var2;
379 RET_LABEL:;
380 return var;
381 }
382 /* method model#MParameterType#lookup_bound for (self: MParameterType, MModule, MType): MType */
383 val* nitc___nitc__MParameterType___MType__lookup_bound(val* self, val* p0, val* p1) {
384 val* var /* : MType */;
385 val* var_mmodule /* var mmodule: MModule */;
386 val* var_resolved_receiver /* var resolved_receiver: MType */;
387 short int var1 /* : Bool */;
388 short int var2 /* : Bool */;
389 val* var3 /* : MType */;
390 short int var4 /* : Bool */;
391 int cltype;
392 int idtype;
393 val* var5 /* : MClass */;
394 val* var7 /* : MClass */;
395 val* var_goalclass /* var goalclass: MClass */;
396 val* var8 /* : MClass */;
397 val* var10 /* : MClass */;
398 short int var11 /* : Bool */;
399 val* var_other /* var other: nullable Object */;
400 short int var13 /* : Bool */;
401 short int var15 /* : Bool */;
402 val* var16 /* : Array[MType] */;
403 long var17 /* : Int */;
404 long var19 /* : Int */;
405 val* var20 /* : nullable Object */;
406 val* var21 /* : Set[MClassType] */;
407 val* var_supertypes /* var supertypes: Set[MClassType] */;
408 val* var_ /* var : Set[MClassType] */;
409 val* var22 /* : Iterator[nullable Object] */;
410 val* var_23 /* var : Iterator[MClassType] */;
411 short int var24 /* : Bool */;
412 val* var25 /* : nullable Object */;
413 val* var_t /* var t: MClassType */;
414 val* var26 /* : MClass */;
415 val* var28 /* : MClass */;
416 short int var29 /* : Bool */;
417 short int var31 /* : Bool */;
418 short int var33 /* : Bool */;
419 val* var34 /* : Array[MType] */;
420 long var35 /* : Int */;
421 long var37 /* : Int */;
422 val* var38 /* : nullable Object */;
423 val* var_res /* var res: MType */;
424 var_mmodule = p0;
425 var_resolved_receiver = p1;
426 {
427 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>*/
428 }
429 var2 = !var1;
430 if (unlikely(!var2)) {
431 PRINT_ERROR("Runtime error: %s", "Assert failed");
432 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1517);
433 fatal_exit(1);
434 }
435 {
436 var3 = ((val*(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nitc__model__MType__undecorate]))(var_resolved_receiver); /* undecorate on <var_resolved_receiver:MType>*/
437 }
438 var_resolved_receiver = var3;
439 /* <var_resolved_receiver:MType> isa MClassType */
440 cltype = type_nitc__MClassType.color;
441 idtype = type_nitc__MClassType.id;
442 if(cltype >= var_resolved_receiver->type->table_size) {
443 var4 = 0;
444 } else {
445 var4 = var_resolved_receiver->type->type_table[cltype] == idtype;
446 }
447 if (unlikely(!var4)) {
448 PRINT_ERROR("Runtime error: %s", "Assert failed");
449 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1519);
450 fatal_exit(1);
451 }
452 {
453 { /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
454 var7 = self->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
455 if (unlikely(var7 == NULL)) {
456 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
457 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1498);
458 fatal_exit(1);
459 }
460 var5 = var7;
461 RET_LABEL6:(void)0;
462 }
463 }
464 var_goalclass = var5;
465 {
466 { /* Inline model#MClassType#mclass (var_resolved_receiver) on <var_resolved_receiver:MType(MClassType)> */
467 var10 = var_resolved_receiver->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_resolved_receiver:MType(MClassType)> */
468 if (unlikely(var10 == NULL)) {
469 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
470 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
471 fatal_exit(1);
472 }
473 var8 = var10;
474 RET_LABEL9:(void)0;
475 }
476 }
477 {
478 { /* Inline kernel#Object#== (var8,var_goalclass) on <var8:MClass> */
479 var_other = var_goalclass;
480 {
481 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:MClass> */
482 var15 = var8 == var_other;
483 var13 = var15;
484 goto RET_LABEL14;
485 RET_LABEL14:(void)0;
486 }
487 }
488 var11 = var13;
489 goto RET_LABEL12;
490 RET_LABEL12:(void)0;
491 }
492 }
493 if (var11){
494 {
495 var16 = ((val*(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nitc__model__MClassType__arguments]))(var_resolved_receiver); /* arguments on <var_resolved_receiver:MType(MClassType)>*/
496 }
497 {
498 { /* Inline model#MParameterType#rank (self) on <self:MParameterType> */
499 var19 = self->attrs[COLOR_nitc__model__MParameterType___rank].l; /* _rank on <self:MParameterType> */
500 var17 = var19;
501 RET_LABEL18:(void)0;
502 }
503 }
504 {
505 var20 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var16, var17);
506 }
507 var = var20;
508 goto RET_LABEL;
509 } else {
510 }
511 {
512 var21 = nitc___nitc__MClassType___MType__collect_mtypes(var_resolved_receiver, var_mmodule);
513 }
514 var_supertypes = var21;
515 var_ = var_supertypes;
516 {
517 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]>*/
518 }
519 var_23 = var22;
520 for(;;) {
521 {
522 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]>*/
523 }
524 if (var24){
525 } else {
526 goto BREAK_label;
527 }
528 {
529 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]>*/
530 }
531 var_t = var25;
532 {
533 { /* Inline model#MClassType#mclass (var_t) on <var_t:MClassType> */
534 var28 = var_t->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_t:MClassType> */
535 if (unlikely(var28 == NULL)) {
536 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
537 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
538 fatal_exit(1);
539 }
540 var26 = var28;
541 RET_LABEL27:(void)0;
542 }
543 }
544 {
545 { /* Inline kernel#Object#== (var26,var_goalclass) on <var26:MClass> */
546 var_other = var_goalclass;
547 {
548 { /* Inline kernel#Object#is_same_instance (var26,var_other) on <var26:MClass> */
549 var33 = var26 == var_other;
550 var31 = var33;
551 goto RET_LABEL32;
552 RET_LABEL32:(void)0;
553 }
554 }
555 var29 = var31;
556 goto RET_LABEL30;
557 RET_LABEL30:(void)0;
558 }
559 }
560 if (var29){
561 {
562 var34 = ((val*(*)(val* self))(var_t->class->vft[COLOR_nitc__model__MClassType__arguments]))(var_t); /* arguments on <var_t:MClassType>*/
563 }
564 {
565 { /* Inline model#MParameterType#rank (self) on <self:MParameterType> */
566 var37 = self->attrs[COLOR_nitc__model__MParameterType___rank].l; /* _rank on <self:MParameterType> */
567 var35 = var37;
568 RET_LABEL36:(void)0;
569 }
570 }
571 {
572 var38 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var34, var35);
573 }
574 var_res = var38;
575 var = var_res;
576 goto RET_LABEL;
577 } else {
578 }
579 {
580 ((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]>*/
581 }
582 }
583 BREAK_label: (void)0;
584 {
585 ((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]>*/
586 }
587 PRINT_ERROR("Runtime error: %s", "Aborted");
588 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1533);
589 fatal_exit(1);
590 RET_LABEL:;
591 return var;
592 }
593 /* method model#MParameterType#lookup_fixed for (self: MParameterType, MModule, MType): MType */
594 val* nitc___nitc__MParameterType___MType__lookup_fixed(val* self, val* p0, val* p1) {
595 val* var /* : MType */;
596 val* var_mmodule /* var mmodule: MModule */;
597 val* var_resolved_receiver /* var resolved_receiver: MType */;
598 short int var1 /* : Bool */;
599 short int var2 /* : Bool */;
600 val* var3 /* : MType */;
601 short int var4 /* : Bool */;
602 int cltype;
603 int idtype;
604 val* var5 /* : MClass */;
605 val* var7 /* : MClass */;
606 val* var8 /* : MClassType */;
607 val* var10 /* : MClassType */;
608 val* var11 /* : MType */;
609 val* var_res /* var res: MType */;
610 var_mmodule = p0;
611 var_resolved_receiver = p1;
612 {
613 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>*/
614 }
615 var2 = !var1;
616 if (unlikely(!var2)) {
617 PRINT_ERROR("Runtime error: %s", "Assert failed");
618 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1545);
619 fatal_exit(1);
620 }
621 {
622 var3 = ((val*(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nitc__model__MType__undecorate]))(var_resolved_receiver); /* undecorate on <var_resolved_receiver:MType>*/
623 }
624 var_resolved_receiver = var3;
625 /* <var_resolved_receiver:MType> isa MClassType */
626 cltype = type_nitc__MClassType.color;
627 idtype = type_nitc__MClassType.id;
628 if(cltype >= var_resolved_receiver->type->table_size) {
629 var4 = 0;
630 } else {
631 var4 = var_resolved_receiver->type->type_table[cltype] == idtype;
632 }
633 if (unlikely(!var4)) {
634 PRINT_ERROR("Runtime error: %s", "Assert failed");
635 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1547);
636 fatal_exit(1);
637 }
638 {
639 { /* Inline model#MClassType#mclass (var_resolved_receiver) on <var_resolved_receiver:MType(MClassType)> */
640 var7 = var_resolved_receiver->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_resolved_receiver:MType(MClassType)> */
641 if (unlikely(var7 == NULL)) {
642 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
643 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
644 fatal_exit(1);
645 }
646 var5 = var7;
647 RET_LABEL6:(void)0;
648 }
649 }
650 {
651 { /* Inline model#MClass#mclass_type (var5) on <var5:MClass> */
652 var10 = var5->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var5:MClass> */
653 if (unlikely(var10 == NULL)) {
654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
655 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 507);
656 fatal_exit(1);
657 }
658 var8 = var10;
659 RET_LABEL9:(void)0;
660 }
661 }
662 {
663 var11 = nitc___nitc__MParameterType___MType__resolve_for(self, var8, var_resolved_receiver, var_mmodule, 0);
664 }
665 var_res = var11;
666 var = var_res;
667 goto RET_LABEL;
668 RET_LABEL:;
669 return var;
670 }
671 /* method model#MParameterType#resolve_for for (self: MParameterType, MType, nullable MClassType, MModule, Bool): MType */
672 val* nitc___nitc__MParameterType___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
673 val* var /* : MType */;
674 val* var_mtype /* var mtype: MType */;
675 val* var_anchor /* var anchor: nullable MClassType */;
676 val* var_mmodule /* var mmodule: MModule */;
677 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
678 short int var1 /* : Bool */;
679 short int var2 /* : Bool */;
680 short int var3 /* : Bool */;
681 int cltype;
682 int idtype;
683 short int var_ /* var : Bool */;
684 val* var4 /* : MClass */;
685 val* var6 /* : MClass */;
686 val* var7 /* : MClass */;
687 val* var9 /* : MClass */;
688 short int var10 /* : Bool */;
689 val* var_other /* var other: nullable Object */;
690 short int var12 /* : Bool */;
691 short int var14 /* : Bool */;
692 val* var15 /* : Array[MType] */;
693 val* var17 /* : Array[MType] */;
694 long var18 /* : Int */;
695 long var20 /* : Int */;
696 val* var21 /* : nullable Object */;
697 val* var_res /* var res: MType */;
698 short int var22 /* : Bool */;
699 short int var23 /* : Bool */;
700 short int var24 /* : Bool */;
701 val* var_other26 /* var other: nullable Object */;
702 short int var27 /* : Bool */;
703 short int var28 /* : Bool */;
704 short int var_29 /* var : Bool */;
705 short int var30 /* : Bool */;
706 val* var31 /* : MType */;
707 val* var_r2 /* var r2: MType */;
708 short int var32 /* : Bool */;
709 short int var33 /* : Bool */;
710 int cltype34;
711 int idtype35;
712 short int var_36 /* var : Bool */;
713 val* var37 /* : MClass */;
714 val* var39 /* : MClass */;
715 val* var40 /* : MClassKind */;
716 val* var42 /* : MClassKind */;
717 val* var43 /* : Sys */;
718 val* var44 /* : MClassKind */;
719 short int var45 /* : Bool */;
720 short int var47 /* : Bool */;
721 short int var49 /* : Bool */;
722 short int var50 /* : Bool */;
723 short int var51 /* : Bool */;
724 short int var52 /* : Bool */;
725 short int var54 /* : Bool */;
726 short int var55 /* : Bool */;
727 val* var56 /* : MClass */;
728 val* var58 /* : MClass */;
729 val* var59 /* : MClassType */;
730 val* var61 /* : MClassType */;
731 val* var62 /* : MType */;
732 val* var_resolved_receiver /* var resolved_receiver: nullable Object */;
733 short int var63 /* : Bool */;
734 int cltype64;
735 int idtype65;
736 val* var66 /* : MType */;
737 val* var68 /* : MType */;
738 short int var69 /* : Bool */;
739 int cltype70;
740 int idtype71;
741 short int var72 /* : Bool */;
742 short int var73 /* : Bool */;
743 short int var75 /* : Bool */;
744 short int var76 /* : Bool */;
745 val* var77 /* : MClass */;
746 val* var79 /* : MClass */;
747 val* var80 /* : MClass */;
748 val* var82 /* : MClass */;
749 short int var83 /* : Bool */;
750 short int var85 /* : Bool */;
751 short int var87 /* : Bool */;
752 val* var88 /* : Array[MType] */;
753 long var89 /* : Int */;
754 long var91 /* : Int */;
755 val* var92 /* : nullable Object */;
756 short int var93 /* : Bool */;
757 int cltype94;
758 int idtype95;
759 val* var96 /* : MType */;
760 val* var98 /* : MType */;
761 short int var99 /* : Bool */;
762 int cltype100;
763 int idtype101;
764 val* var102 /* : MClass */;
765 val* var104 /* : MClass */;
766 val* var105 /* : MClass */;
767 val* var107 /* : MClass */;
768 short int var108 /* : Bool */;
769 short int var110 /* : Bool */;
770 short int var112 /* : Bool */;
771 val* var113 /* : Array[MType] */;
772 long var114 /* : Int */;
773 long var116 /* : Int */;
774 val* var117 /* : nullable Object */;
775 val* var_res118 /* var res: MType */;
776 short int var119 /* : Bool */;
777 short int var120 /* : Bool */;
778 short int var121 /* : Bool */;
779 short int var123 /* : Bool */;
780 short int var124 /* : Bool */;
781 val* var125 /* : MType */;
782 val* var126 /* : MType */;
783 val* var_verbatim_bound /* var verbatim_bound: MType */;
784 val* var127 /* : MType */;
785 val* var_res128 /* var res: MType */;
786 var_mtype = p0;
787 var_anchor = p1;
788 var_mmodule = p2;
789 var_cleanup_virtual = p3;
790 {
791 var1 = nitc___nitc__MParameterType___MType__can_resolve_for(self, var_mtype, var_anchor, var_mmodule);
792 }
793 if (unlikely(!var1)) {
794 PRINT_ERROR("Runtime error: %s", "Assert failed");
795 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1554);
796 fatal_exit(1);
797 }
798 /* <var_mtype:MType> isa MGenericType */
799 cltype = type_nitc__MGenericType.color;
800 idtype = type_nitc__MGenericType.id;
801 if(cltype >= var_mtype->type->table_size) {
802 var3 = 0;
803 } else {
804 var3 = var_mtype->type->type_table[cltype] == idtype;
805 }
806 var_ = var3;
807 if (var3){
808 {
809 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MGenericType)> */
810 var6 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:MType(MGenericType)> */
811 if (unlikely(var6 == NULL)) {
812 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
813 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
814 fatal_exit(1);
815 }
816 var4 = var6;
817 RET_LABEL5:(void)0;
818 }
819 }
820 {
821 { /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
822 var9 = self->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
823 if (unlikely(var9 == NULL)) {
824 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
825 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1498);
826 fatal_exit(1);
827 }
828 var7 = var9;
829 RET_LABEL8:(void)0;
830 }
831 }
832 {
833 { /* Inline kernel#Object#== (var4,var7) on <var4:MClass> */
834 var_other = var7;
835 {
836 { /* Inline kernel#Object#is_same_instance (var4,var_other) on <var4:MClass> */
837 var14 = var4 == var_other;
838 var12 = var14;
839 goto RET_LABEL13;
840 RET_LABEL13:(void)0;
841 }
842 }
843 var10 = var12;
844 goto RET_LABEL11;
845 RET_LABEL11:(void)0;
846 }
847 }
848 var2 = var10;
849 } else {
850 var2 = var_;
851 }
852 if (var2){
853 {
854 { /* Inline model#MGenericType#arguments (var_mtype) on <var_mtype:MType(MGenericType)> */
855 var17 = var_mtype->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <var_mtype:MType(MGenericType)> */
856 if (unlikely(var17 == NULL)) {
857 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
858 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1269);
859 fatal_exit(1);
860 }
861 var15 = var17;
862 RET_LABEL16:(void)0;
863 }
864 }
865 {
866 { /* Inline model#MParameterType#rank (self) on <self:MParameterType> */
867 var20 = self->attrs[COLOR_nitc__model__MParameterType___rank].l; /* _rank on <self:MParameterType> */
868 var18 = var20;
869 RET_LABEL19:(void)0;
870 }
871 }
872 {
873 var21 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var15, var18);
874 }
875 var_res = var21;
876 if (var_anchor == NULL) {
877 var23 = 0; /* is null */
878 } else {
879 var23 = 1; /* arg is null and recv is not */
880 }
881 if (0) {
882 { /* Inline kernel#Object#!= (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
883 var_other26 = ((val*)NULL);
884 {
885 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)>*/
886 }
887 var28 = !var27;
888 var24 = var28;
889 goto RET_LABEL25;
890 RET_LABEL25:(void)0;
891 }
892 var23 = var24;
893 }
894 var_29 = var23;
895 if (var23){
896 {
897 var30 = ((short int(*)(val* self))(var_res->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_res); /* need_anchor on <var_res:MType>*/
898 }
899 var22 = var30;
900 } else {
901 var22 = var_29;
902 }
903 if (var22){
904 {
905 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>*/
906 }
907 var_r2 = var31;
908 /* <var_r2:MType> isa MClassType */
909 cltype34 = type_nitc__MClassType.color;
910 idtype35 = type_nitc__MClassType.id;
911 if(cltype34 >= var_r2->type->table_size) {
912 var33 = 0;
913 } else {
914 var33 = var_r2->type->type_table[cltype34] == idtype35;
915 }
916 var_36 = var33;
917 if (var33){
918 {
919 { /* Inline model#MClassType#mclass (var_r2) on <var_r2:MType(MClassType)> */
920 var39 = var_r2->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_r2:MType(MClassType)> */
921 if (unlikely(var39 == NULL)) {
922 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
923 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
924 fatal_exit(1);
925 }
926 var37 = var39;
927 RET_LABEL38:(void)0;
928 }
929 }
930 {
931 { /* Inline model#MClass#kind (var37) on <var37:MClass> */
932 var42 = var37->attrs[COLOR_nitc__model__MClass___kind].val; /* _kind on <var37:MClass> */
933 if (unlikely(var42 == NULL)) {
934 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
935 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 459);
936 fatal_exit(1);
937 }
938 var40 = var42;
939 RET_LABEL41:(void)0;
940 }
941 }
942 var43 = glob_sys;
943 {
944 var44 = nitc__model___core__Sys___enum_kind(var43);
945 }
946 {
947 { /* Inline kernel#Object#== (var40,var44) on <var40:MClassKind> */
948 var_other = var44;
949 {
950 { /* Inline kernel#Object#is_same_instance (var40,var_other) on <var40:MClassKind> */
951 var49 = var40 == var_other;
952 var47 = var49;
953 goto RET_LABEL48;
954 RET_LABEL48:(void)0;
955 }
956 }
957 var45 = var47;
958 goto RET_LABEL46;
959 RET_LABEL46:(void)0;
960 }
961 }
962 var32 = var45;
963 } else {
964 var32 = var_36;
965 }
966 if (var32){
967 var = var_r2;
968 goto RET_LABEL;
969 } else {
970 }
971 } else {
972 }
973 var = var_res;
974 goto RET_LABEL;
975 } else {
976 }
977 {
978 var50 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
979 }
980 if (var50){
981 if (var_anchor == NULL) {
982 var51 = 0; /* is null */
983 } else {
984 var51 = 1; /* arg is null and recv is not */
985 }
986 if (0) {
987 { /* Inline kernel#Object#!= (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
988 var_other26 = ((val*)NULL);
989 {
990 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)>*/
991 }
992 var55 = !var54;
993 var52 = var55;
994 goto RET_LABEL53;
995 RET_LABEL53:(void)0;
996 }
997 var51 = var52;
998 }
999 if (unlikely(!var51)) {
1000 PRINT_ERROR("Runtime error: %s", "Assert failed");
1001 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1573);
1002 fatal_exit(1);
1003 }
1004 {
1005 { /* Inline model#MClassType#mclass (var_anchor) on <var_anchor:nullable MClassType(MClassType)> */
1006 var58 = var_anchor->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_anchor:nullable MClassType(MClassType)> */
1007 if (unlikely(var58 == NULL)) {
1008 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1009 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
1010 fatal_exit(1);
1011 }
1012 var56 = var58;
1013 RET_LABEL57:(void)0;
1014 }
1015 }
1016 {
1017 { /* Inline model#MClass#mclass_type (var56) on <var56:MClass> */
1018 var61 = var56->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var56:MClass> */
1019 if (unlikely(var61 == NULL)) {
1020 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
1021 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 507);
1022 fatal_exit(1);
1023 }
1024 var59 = var61;
1025 RET_LABEL60:(void)0;
1026 }
1027 }
1028 {
1029 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>*/
1030 }
1031 var_resolved_receiver = var62;
1032 } else {
1033 var_resolved_receiver = var_mtype;
1034 }
1035 /* <var_resolved_receiver:nullable Object(MType)> isa MNullableType */
1036 cltype64 = type_nitc__MNullableType.color;
1037 idtype65 = type_nitc__MNullableType.id;
1038 if(cltype64 >= var_resolved_receiver->type->table_size) {
1039 var63 = 0;
1040 } else {
1041 var63 = var_resolved_receiver->type->type_table[cltype64] == idtype65;
1042 }
1043 if (var63){
1044 {
1045 { /* Inline model#MProxyType#mtype (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MNullableType)> */
1046 var68 = var_resolved_receiver->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <var_resolved_receiver:nullable Object(MNullableType)> */
1047 if (unlikely(var68 == NULL)) {
1048 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1049 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
1050 fatal_exit(1);
1051 }
1052 var66 = var68;
1053 RET_LABEL67:(void)0;
1054 }
1055 }
1056 var_resolved_receiver = var66;
1057 } else {
1058 }
1059 /* <var_resolved_receiver:nullable Object(MType)> isa MParameterType */
1060 cltype70 = type_nitc__MParameterType.color;
1061 idtype71 = type_nitc__MParameterType.id;
1062 if(cltype70 >= var_resolved_receiver->type->table_size) {
1063 var69 = 0;
1064 } else {
1065 var69 = var_resolved_receiver->type->type_table[cltype70] == idtype71;
1066 }
1067 if (var69){
1068 if (var_anchor == NULL) {
1069 var72 = 0; /* is null */
1070 } else {
1071 var72 = 1; /* arg is null and recv is not */
1072 }
1073 if (0) {
1074 { /* Inline kernel#Object#!= (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
1075 var_other26 = ((val*)NULL);
1076 {
1077 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)>*/
1078 }
1079 var76 = !var75;
1080 var73 = var76;
1081 goto RET_LABEL74;
1082 RET_LABEL74:(void)0;
1083 }
1084 var72 = var73;
1085 }
1086 if (unlikely(!var72)) {
1087 PRINT_ERROR("Runtime error: %s", "Assert failed");
1088 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1580);
1089 fatal_exit(1);
1090 }
1091 {
1092 { /* Inline model#MParameterType#mclass (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MParameterType)> */
1093 var79 = var_resolved_receiver->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <var_resolved_receiver:nullable Object(MParameterType)> */
1094 if (unlikely(var79 == NULL)) {
1095 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1096 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1498);
1097 fatal_exit(1);
1098 }
1099 var77 = var79;
1100 RET_LABEL78:(void)0;
1101 }
1102 }
1103 {
1104 { /* Inline model#MClassType#mclass (var_anchor) on <var_anchor:nullable MClassType(MClassType)> */
1105 var82 = var_anchor->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_anchor:nullable MClassType(MClassType)> */
1106 if (unlikely(var82 == NULL)) {
1107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1108 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
1109 fatal_exit(1);
1110 }
1111 var80 = var82;
1112 RET_LABEL81:(void)0;
1113 }
1114 }
1115 {
1116 { /* Inline kernel#Object#== (var77,var80) on <var77:MClass> */
1117 var_other = var80;
1118 {
1119 { /* Inline kernel#Object#is_same_instance (var77,var_other) on <var77:MClass> */
1120 var87 = var77 == var_other;
1121 var85 = var87;
1122 goto RET_LABEL86;
1123 RET_LABEL86:(void)0;
1124 }
1125 }
1126 var83 = var85;
1127 goto RET_LABEL84;
1128 RET_LABEL84:(void)0;
1129 }
1130 }
1131 if (unlikely(!var83)) {
1132 PRINT_ERROR("Runtime error: %s", "Assert failed");
1133 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1581);
1134 fatal_exit(1);
1135 }
1136 {
1137 var88 = ((val*(*)(val* self))(var_anchor->class->vft[COLOR_nitc__model__MClassType__arguments]))(var_anchor); /* arguments on <var_anchor:nullable MClassType(MClassType)>*/
1138 }
1139 {
1140 { /* Inline model#MParameterType#rank (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MParameterType)> */
1141 var91 = var_resolved_receiver->attrs[COLOR_nitc__model__MParameterType___rank].l; /* _rank on <var_resolved_receiver:nullable Object(MParameterType)> */
1142 var89 = var91;
1143 RET_LABEL90:(void)0;
1144 }
1145 }
1146 {
1147 var92 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var88, var89);
1148 }
1149 var_resolved_receiver = var92;
1150 /* <var_resolved_receiver:nullable Object(MType)> isa MNullableType */
1151 cltype94 = type_nitc__MNullableType.color;
1152 idtype95 = type_nitc__MNullableType.id;
1153 if(cltype94 >= var_resolved_receiver->type->table_size) {
1154 var93 = 0;
1155 } else {
1156 var93 = var_resolved_receiver->type->type_table[cltype94] == idtype95;
1157 }
1158 if (var93){
1159 {
1160 { /* Inline model#MProxyType#mtype (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MNullableType)> */
1161 var98 = var_resolved_receiver->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <var_resolved_receiver:nullable Object(MNullableType)> */
1162 if (unlikely(var98 == NULL)) {
1163 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1164 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
1165 fatal_exit(1);
1166 }
1167 var96 = var98;
1168 RET_LABEL97:(void)0;
1169 }
1170 }
1171 var_resolved_receiver = var96;
1172 } else {
1173 }
1174 } else {
1175 }
1176 /* <var_resolved_receiver:nullable Object(MType)> isa MClassType */
1177 cltype100 = type_nitc__MClassType.color;
1178 idtype101 = type_nitc__MClassType.id;
1179 if(cltype100 >= var_resolved_receiver->type->table_size) {
1180 var99 = 0;
1181 } else {
1182 var99 = var_resolved_receiver->type->type_table[cltype100] == idtype101;
1183 }
1184 if (unlikely(!var99)) {
1185 PRINT_ERROR("Runtime error: %s", "Assert failed");
1186 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1585);
1187 fatal_exit(1);
1188 }
1189 {
1190 { /* Inline model#MClassType#mclass (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MClassType)> */
1191 var104 = var_resolved_receiver->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_resolved_receiver:nullable Object(MClassType)> */
1192 if (unlikely(var104 == NULL)) {
1193 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1194 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
1195 fatal_exit(1);
1196 }
1197 var102 = var104;
1198 RET_LABEL103:(void)0;
1199 }
1200 }
1201 {
1202 { /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
1203 var107 = self->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
1204 if (unlikely(var107 == NULL)) {
1205 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1206 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1498);
1207 fatal_exit(1);
1208 }
1209 var105 = var107;
1210 RET_LABEL106:(void)0;
1211 }
1212 }
1213 {
1214 { /* Inline kernel#Object#== (var102,var105) on <var102:MClass> */
1215 var_other = var105;
1216 {
1217 { /* Inline kernel#Object#is_same_instance (var102,var_other) on <var102:MClass> */
1218 var112 = var102 == var_other;
1219 var110 = var112;
1220 goto RET_LABEL111;
1221 RET_LABEL111:(void)0;
1222 }
1223 }
1224 var108 = var110;
1225 goto RET_LABEL109;
1226 RET_LABEL109:(void)0;
1227 }
1228 }
1229 if (var108){
1230 {
1231 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)>*/
1232 }
1233 {
1234 { /* Inline model#MParameterType#rank (self) on <self:MParameterType> */
1235 var116 = self->attrs[COLOR_nitc__model__MParameterType___rank].l; /* _rank on <self:MParameterType> */
1236 var114 = var116;
1237 RET_LABEL115:(void)0;
1238 }
1239 }
1240 {
1241 var117 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var113, var114);
1242 }
1243 var_res118 = var117;
1244 var = var_res118;
1245 goto RET_LABEL;
1246 } else {
1247 }
1248 {
1249 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)>*/
1250 }
1251 if (var119){
1252 if (var_anchor == NULL) {
1253 var120 = 0; /* is null */
1254 } else {
1255 var120 = 1; /* arg is null and recv is not */
1256 }
1257 if (0) {
1258 { /* Inline kernel#Object#!= (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
1259 var_other26 = ((val*)NULL);
1260 {
1261 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)>*/
1262 }
1263 var124 = !var123;
1264 var121 = var124;
1265 goto RET_LABEL122;
1266 RET_LABEL122:(void)0;
1267 }
1268 var120 = var121;
1269 }
1270 if (unlikely(!var120)) {
1271 PRINT_ERROR("Runtime error: %s", "Assert failed");
1272 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1596);
1273 fatal_exit(1);
1274 }
1275 {
1276 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)>*/
1277 }
1278 var_resolved_receiver = var125;
1279 } else {
1280 }
1281 {
1282 var126 = nitc___nitc__MParameterType___MType__lookup_bound(self, var_mmodule, var_resolved_receiver);
1283 }
1284 var_verbatim_bound = var126;
1285 {
1286 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>*/
1287 }
1288 var_res128 = var127;
1289 var = var_res128;
1290 goto RET_LABEL;
1291 RET_LABEL:;
1292 return var;
1293 }
1294 /* method model#MParameterType#can_resolve_for for (self: MParameterType, MType, nullable MClassType, MModule): Bool */
1295 short int nitc___nitc__MParameterType___MType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
1296 short int var /* : Bool */;
1297 val* var_mtype /* var mtype: MType */;
1298 val* var_anchor /* var anchor: nullable MClassType */;
1299 val* var_mmodule /* var mmodule: MModule */;
1300 short int var1 /* : Bool */;
1301 short int var2 /* : Bool */;
1302 short int var3 /* : Bool */;
1303 val* var_other /* var other: nullable Object */;
1304 short int var5 /* : Bool */;
1305 short int var6 /* : Bool */;
1306 val* var7 /* : MType */;
1307 val* var8 /* : Set[MClassDef] */;
1308 val* var9 /* : MClass */;
1309 val* var11 /* : MClass */;
1310 val* var12 /* : MClassDef */;
1311 val* var14 /* : MClassDef */;
1312 short int var15 /* : Bool */;
1313 var_mtype = p0;
1314 var_anchor = p1;
1315 var_mmodule = p2;
1316 {
1317 var1 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
1318 }
1319 if (var1){
1320 if (var_anchor == NULL) {
1321 var2 = 0; /* is null */
1322 } else {
1323 var2 = 1; /* arg is null and recv is not */
1324 }
1325 if (0) {
1326 { /* Inline kernel#Object#!= (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
1327 var_other = ((val*)NULL);
1328 {
1329 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)>*/
1330 }
1331 var6 = !var5;
1332 var3 = var6;
1333 goto RET_LABEL4;
1334 RET_LABEL4:(void)0;
1335 }
1336 var2 = var3;
1337 }
1338 if (unlikely(!var2)) {
1339 PRINT_ERROR("Runtime error: %s", "Assert failed");
1340 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1612);
1341 fatal_exit(1);
1342 }
1343 {
1344 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>*/
1345 }
1346 var_mtype = var7;
1347 } else {
1348 }
1349 {
1350 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>*/
1351 }
1352 {
1353 { /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
1354 var11 = self->attrs[COLOR_nitc__model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
1355 if (unlikely(var11 == NULL)) {
1356 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1357 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1498);
1358 fatal_exit(1);
1359 }
1360 var9 = var11;
1361 RET_LABEL10:(void)0;
1362 }
1363 }
1364 {
1365 { /* Inline model#MClass#intro (var9) on <var9:MClass> */
1366 var14 = var9->attrs[COLOR_nitc__model__MClass___intro].val; /* _intro on <var9:MClass> */
1367 if (unlikely(var14 == NULL)) {
1368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
1369 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 483);
1370 fatal_exit(1);
1371 }
1372 var12 = var14;
1373 RET_LABEL13:(void)0;
1374 }
1375 }
1376 {
1377 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]>*/
1378 }
1379 var = var15;
1380 goto RET_LABEL;
1381 RET_LABEL:;
1382 return var;
1383 }
1384 /* method model#MParameterType#init for (self: MParameterType) */
1385 void nitc___nitc__MParameterType___core__kernel__Object__init(val* self) {
1386 {
1387 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MParameterType___core__kernel__Object__init]))(self); /* init on <self:MParameterType>*/
1388 }
1389 RET_LABEL:;
1390 }
1391 /* method model#MProxyType#mtype for (self: MProxyType): MType */
1392 val* nitc___nitc__MProxyType___mtype(val* self) {
1393 val* var /* : MType */;
1394 val* var1 /* : MType */;
1395 var1 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
1396 if (unlikely(var1 == NULL)) {
1397 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1398 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
1399 fatal_exit(1);
1400 }
1401 var = var1;
1402 RET_LABEL:;
1403 return var;
1404 }
1405 /* method model#MProxyType#mtype= for (self: MProxyType, MType) */
1406 void nitc___nitc__MProxyType___mtype_61d(val* self, val* p0) {
1407 self->attrs[COLOR_nitc__model__MProxyType___mtype].val = p0; /* _mtype on <self:MProxyType> */
1408 RET_LABEL:;
1409 }
1410 /* method model#MProxyType#model for (self: MProxyType): Model */
1411 val* nitc___nitc__MProxyType___nitc__model_base__MEntity__model(val* self) {
1412 val* var /* : Model */;
1413 val* var1 /* : MType */;
1414 val* var3 /* : MType */;
1415 val* var4 /* : Model */;
1416 {
1417 { /* Inline model#MProxyType#mtype (self) on <self:MProxyType> */
1418 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
1419 if (unlikely(var3 == NULL)) {
1420 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1421 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
1422 fatal_exit(1);
1423 }
1424 var1 = var3;
1425 RET_LABEL2:(void)0;
1426 }
1427 }
1428 {
1429 var4 = ((val*(*)(val* self))(var1->class->vft[COLOR_nitc__model_base__MEntity__model]))(var1); /* model on <var1:MType>*/
1430 }
1431 var = var4;
1432 goto RET_LABEL;
1433 RET_LABEL:;
1434 return var;
1435 }
1436 /* method model#MProxyType#need_anchor for (self: MProxyType): Bool */
1437 short int nitc___nitc__MProxyType___MType__need_anchor(val* self) {
1438 short int var /* : Bool */;
1439 val* var1 /* : MType */;
1440 val* var3 /* : MType */;
1441 short int var4 /* : Bool */;
1442 {
1443 { /* Inline model#MProxyType#mtype (self) on <self:MProxyType> */
1444 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
1445 if (unlikely(var3 == NULL)) {
1446 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1447 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
1448 fatal_exit(1);
1449 }
1450 var1 = var3;
1451 RET_LABEL2:(void)0;
1452 }
1453 }
1454 {
1455 var4 = ((short int(*)(val* self))(var1->class->vft[COLOR_nitc__model__MType__need_anchor]))(var1); /* need_anchor on <var1:MType>*/
1456 }
1457 var = var4;
1458 goto RET_LABEL;
1459 RET_LABEL:;
1460 return var;
1461 }
1462 /* method model#MProxyType#as_nullable for (self: MProxyType): MType */
1463 val* nitc___nitc__MProxyType___MType__as_nullable(val* self) {
1464 val* var /* : MType */;
1465 val* var1 /* : MType */;
1466 val* var3 /* : MType */;
1467 val* var4 /* : MType */;
1468 {
1469 { /* Inline model#MProxyType#mtype (self) on <self:MProxyType> */
1470 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
1471 if (unlikely(var3 == NULL)) {
1472 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1473 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
1474 fatal_exit(1);
1475 }
1476 var1 = var3;
1477 RET_LABEL2:(void)0;
1478 }
1479 }
1480 {
1481 var4 = ((val*(*)(val* self))(var1->class->vft[COLOR_nitc__model__MType__as_nullable]))(var1); /* as_nullable on <var1:MType>*/
1482 }
1483 var = var4;
1484 goto RET_LABEL;
1485 RET_LABEL:;
1486 return var;
1487 }
1488 /* method model#MProxyType#as_notnull for (self: MProxyType): MType */
1489 val* nitc___nitc__MProxyType___MType__as_notnull(val* self) {
1490 val* var /* : MType */;
1491 val* var1 /* : MType */;
1492 val* var3 /* : MType */;
1493 val* var4 /* : MType */;
1494 {
1495 { /* Inline model#MProxyType#mtype (self) on <self:MProxyType> */
1496 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
1497 if (unlikely(var3 == NULL)) {
1498 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1499 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
1500 fatal_exit(1);
1501 }
1502 var1 = var3;
1503 RET_LABEL2:(void)0;
1504 }
1505 }
1506 {
1507 var4 = ((val*(*)(val* self))(var1->class->vft[COLOR_nitc__model__MType__as_notnull]))(var1); /* as_notnull on <var1:MType>*/
1508 }
1509 var = var4;
1510 goto RET_LABEL;
1511 RET_LABEL:;
1512 return var;
1513 }
1514 /* method model#MProxyType#undecorate for (self: MProxyType): MType */
1515 val* nitc___nitc__MProxyType___MType__undecorate(val* self) {
1516 val* var /* : MType */;
1517 val* var1 /* : MType */;
1518 val* var3 /* : MType */;
1519 val* var4 /* : MType */;
1520 {
1521 { /* Inline model#MProxyType#mtype (self) on <self:MProxyType> */
1522 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
1523 if (unlikely(var3 == NULL)) {
1524 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1525 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
1526 fatal_exit(1);
1527 }
1528 var1 = var3;
1529 RET_LABEL2:(void)0;
1530 }
1531 }
1532 {
1533 var4 = ((val*(*)(val* self))(var1->class->vft[COLOR_nitc__model__MType__undecorate]))(var1); /* undecorate on <var1:MType>*/
1534 }
1535 var = var4;
1536 goto RET_LABEL;
1537 RET_LABEL:;
1538 return var;
1539 }
1540 /* method model#MProxyType#resolve_for for (self: MProxyType, MType, nullable MClassType, MModule, Bool): MType */
1541 val* nitc___nitc__MProxyType___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
1542 val* var /* : MType */;
1543 val* var_mtype /* var mtype: MType */;
1544 val* var_anchor /* var anchor: nullable MClassType */;
1545 val* var_mmodule /* var mmodule: MModule */;
1546 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
1547 val* var1 /* : MType */;
1548 val* var3 /* : MType */;
1549 val* var4 /* : MType */;
1550 val* var_res /* var res: MType */;
1551 var_mtype = p0;
1552 var_anchor = p1;
1553 var_mmodule = p2;
1554 var_cleanup_virtual = p3;
1555 {
1556 { /* Inline model#MProxyType#mtype (self) on <self:MProxyType> */
1557 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
1558 if (unlikely(var3 == NULL)) {
1559 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1560 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
1561 fatal_exit(1);
1562 }
1563 var1 = var3;
1564 RET_LABEL2:(void)0;
1565 }
1566 }
1567 {
1568 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>*/
1569 }
1570 var_res = var4;
1571 var = var_res;
1572 goto RET_LABEL;
1573 RET_LABEL:;
1574 return var;
1575 }
1576 /* method model#MProxyType#can_resolve_for for (self: MProxyType, MType, nullable MClassType, MModule): Bool */
1577 short int nitc___nitc__MProxyType___MType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
1578 short int var /* : Bool */;
1579 val* var_mtype /* var mtype: MType */;
1580 val* var_anchor /* var anchor: nullable MClassType */;
1581 val* var_mmodule /* var mmodule: MModule */;
1582 val* var1 /* : MType */;
1583 val* var3 /* : MType */;
1584 short int var4 /* : Bool */;
1585 var_mtype = p0;
1586 var_anchor = p1;
1587 var_mmodule = p2;
1588 {
1589 { /* Inline model#MProxyType#mtype (self) on <self:MProxyType> */
1590 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
1591 if (unlikely(var3 == NULL)) {
1592 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1593 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
1594 fatal_exit(1);
1595 }
1596 var1 = var3;
1597 RET_LABEL2:(void)0;
1598 }
1599 }
1600 {
1601 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>*/
1602 }
1603 var = var4;
1604 goto RET_LABEL;
1605 RET_LABEL:;
1606 return var;
1607 }
1608 /* method model#MProxyType#lookup_fixed for (self: MProxyType, MModule, MType): MType */
1609 val* nitc___nitc__MProxyType___MType__lookup_fixed(val* self, val* p0, val* p1) {
1610 val* var /* : MType */;
1611 val* var_mmodule /* var mmodule: MModule */;
1612 val* var_resolved_receiver /* var resolved_receiver: MType */;
1613 val* var1 /* : MType */;
1614 val* var3 /* : MType */;
1615 val* var4 /* : MType */;
1616 val* var_t /* var t: MType */;
1617 var_mmodule = p0;
1618 var_resolved_receiver = p1;
1619 {
1620 { /* Inline model#MProxyType#mtype (self) on <self:MProxyType> */
1621 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
1622 if (unlikely(var3 == NULL)) {
1623 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1624 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
1625 fatal_exit(1);
1626 }
1627 var1 = var3;
1628 RET_LABEL2:(void)0;
1629 }
1630 }
1631 {
1632 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>*/
1633 }
1634 var_t = var4;
1635 var = var_t;
1636 goto RET_LABEL;
1637 RET_LABEL:;
1638 return var;
1639 }
1640 /* method model#MProxyType#length for (self: MProxyType): Int */
1641 long nitc___nitc__MProxyType___MType__length(val* self) {
1642 long var /* : Int */;
1643 val* var1 /* : MType */;
1644 val* var3 /* : MType */;
1645 long var4 /* : Int */;
1646 {
1647 { /* Inline model#MProxyType#mtype (self) on <self:MProxyType> */
1648 var3 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
1649 if (unlikely(var3 == NULL)) {
1650 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1651 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
1652 fatal_exit(1);
1653 }
1654 var1 = var3;
1655 RET_LABEL2:(void)0;
1656 }
1657 }
1658 {
1659 var4 = ((long(*)(val* self))(var1->class->vft[COLOR_nitc__model__MType__length]))(var1); /* length on <var1:MType>*/
1660 }
1661 var = var4;
1662 goto RET_LABEL;
1663 RET_LABEL:;
1664 return var;
1665 }
1666 /* method model#MProxyType#collect_mclassdefs for (self: MProxyType, MModule): Set[MClassDef] */
1667 val* nitc___nitc__MProxyType___MType__collect_mclassdefs(val* self, val* p0) {
1668 val* var /* : Set[MClassDef] */;
1669 val* var_mmodule /* var mmodule: MModule */;
1670 short int var1 /* : Bool */;
1671 short int var2 /* : Bool */;
1672 val* var3 /* : MType */;
1673 val* var5 /* : MType */;
1674 val* var6 /* : Set[MClassDef] */;
1675 var_mmodule = p0;
1676 {
1677 var1 = nitc___nitc__MProxyType___MType__need_anchor(self);
1678 }
1679 var2 = !var1;
1680 if (unlikely(!var2)) {
1681 PRINT_ERROR("Runtime error: %s", "Assert failed");
1682 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1656);
1683 fatal_exit(1);
1684 }
1685 {
1686 { /* Inline model#MProxyType#mtype (self) on <self:MProxyType> */
1687 var5 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
1688 if (unlikely(var5 == NULL)) {
1689 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1690 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
1691 fatal_exit(1);
1692 }
1693 var3 = var5;
1694 RET_LABEL4:(void)0;
1695 }
1696 }
1697 {
1698 var6 = ((val*(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__model__MType__collect_mclassdefs]))(var3, var_mmodule); /* collect_mclassdefs on <var3:MType>*/
1699 }
1700 var = var6;
1701 goto RET_LABEL;
1702 RET_LABEL:;
1703 return var;
1704 }
1705 /* method model#MProxyType#collect_mclasses for (self: MProxyType, MModule): Set[MClass] */
1706 val* nitc___nitc__MProxyType___MType__collect_mclasses(val* self, val* p0) {
1707 val* var /* : Set[MClass] */;
1708 val* var_mmodule /* var mmodule: MModule */;
1709 short int var1 /* : Bool */;
1710 short int var2 /* : Bool */;
1711 val* var3 /* : MType */;
1712 val* var5 /* : MType */;
1713 val* var6 /* : Set[MClass] */;
1714 var_mmodule = p0;
1715 {
1716 var1 = nitc___nitc__MProxyType___MType__need_anchor(self);
1717 }
1718 var2 = !var1;
1719 if (unlikely(!var2)) {
1720 PRINT_ERROR("Runtime error: %s", "Assert failed");
1721 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1662);
1722 fatal_exit(1);
1723 }
1724 {
1725 { /* Inline model#MProxyType#mtype (self) on <self:MProxyType> */
1726 var5 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
1727 if (unlikely(var5 == NULL)) {
1728 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1729 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
1730 fatal_exit(1);
1731 }
1732 var3 = var5;
1733 RET_LABEL4:(void)0;
1734 }
1735 }
1736 {
1737 var6 = ((val*(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__model__MType__collect_mclasses]))(var3, var_mmodule); /* collect_mclasses on <var3:MType>*/
1738 }
1739 var = var6;
1740 goto RET_LABEL;
1741 RET_LABEL:;
1742 return var;
1743 }
1744 /* method model#MProxyType#collect_mtypes for (self: MProxyType, MModule): Set[MClassType] */
1745 val* nitc___nitc__MProxyType___MType__collect_mtypes(val* self, val* p0) {
1746 val* var /* : Set[MClassType] */;
1747 val* var_mmodule /* var mmodule: MModule */;
1748 short int var1 /* : Bool */;
1749 short int var2 /* : Bool */;
1750 val* var3 /* : MType */;
1751 val* var5 /* : MType */;
1752 val* var6 /* : Set[MClassType] */;
1753 var_mmodule = p0;
1754 {
1755 var1 = nitc___nitc__MProxyType___MType__need_anchor(self);
1756 }
1757 var2 = !var1;
1758 if (unlikely(!var2)) {
1759 PRINT_ERROR("Runtime error: %s", "Assert failed");
1760 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1668);
1761 fatal_exit(1);
1762 }
1763 {
1764 { /* Inline model#MProxyType#mtype (self) on <self:MProxyType> */
1765 var5 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MProxyType> */
1766 if (unlikely(var5 == NULL)) {
1767 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1768 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
1769 fatal_exit(1);
1770 }
1771 var3 = var5;
1772 RET_LABEL4:(void)0;
1773 }
1774 }
1775 {
1776 var6 = ((val*(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__model__MType__collect_mtypes]))(var3, var_mmodule); /* collect_mtypes on <var3:MType>*/
1777 }
1778 var = var6;
1779 goto RET_LABEL;
1780 RET_LABEL:;
1781 return var;
1782 }
1783 /* method model#MProxyType#init for (self: MProxyType) */
1784 void nitc___nitc__MProxyType___core__kernel__Object__init(val* self) {
1785 {
1786 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MProxyType___core__kernel__Object__init]))(self); /* init on <self:MProxyType>*/
1787 }
1788 RET_LABEL:;
1789 }
1790 /* method model#MNullableType#init for (self: MNullableType) */
1791 void nitc___nitc__MNullableType___core__kernel__Object__init(val* self) {
1792 val* var /* : NativeArray[String] */;
1793 static val* varonce;
1794 static val* varonce1;
1795 val* var2 /* : String */;
1796 char* var3 /* : NativeString */;
1797 val* var4 /* : String */;
1798 val* var5 /* : MType */;
1799 val* var7 /* : MType */;
1800 val* var8 /* : String */;
1801 val* var9 /* : String */;
1802 {
1803 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MNullableType___core__kernel__Object__init]))(self); /* init on <self:MNullableType>*/
1804 }
1805 if (unlikely(varonce==NULL)) {
1806 var = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
1807 if (likely(varonce1!=NULL)) {
1808 var2 = varonce1;
1809 } else {
1810 var3 = "nullable ";
1811 var4 = core__flat___NativeString___to_s_full(var3, 9l, 9l);
1812 var2 = var4;
1813 varonce1 = var2;
1814 }
1815 ((struct instance_core__NativeArray*)var)->values[0]=var2;
1816 } else {
1817 var = varonce;
1818 varonce = NULL;
1819 }
1820 {
1821 { /* Inline model#MProxyType#mtype (self) on <self:MNullableType> */
1822 var7 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MNullableType> */
1823 if (unlikely(var7 == NULL)) {
1824 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1825 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
1826 fatal_exit(1);
1827 }
1828 var5 = var7;
1829 RET_LABEL6:(void)0;
1830 }
1831 }
1832 {
1833 var8 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__Object__to_s]))(var5); /* to_s on <var5:MType>*/
1834 }
1835 ((struct instance_core__NativeArray*)var)->values[1]=var8;
1836 {
1837 var9 = ((val*(*)(val* self))(var->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var); /* native_to_s on <var:NativeArray[String]>*/
1838 }
1839 varonce = var;
1840 {
1841 { /* Inline model#MNullableType#to_s= (self,var9) on <self:MNullableType> */
1842 self->attrs[COLOR_nitc__model__MNullableType___to_s].val = var9; /* _to_s on <self:MNullableType> */
1843 RET_LABEL10:(void)0;
1844 }
1845 }
1846 RET_LABEL:;
1847 }
1848 /* method model#MNullableType#to_s for (self: MNullableType): String */
1849 val* nitc___nitc__MNullableType___core__abstract_text__Object__to_s(val* self) {
1850 val* var /* : String */;
1851 val* var1 /* : String */;
1852 var1 = self->attrs[COLOR_nitc__model__MNullableType___to_s].val; /* _to_s on <self:MNullableType> */
1853 if (unlikely(var1 == NULL)) {
1854 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
1855 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1682);
1856 fatal_exit(1);
1857 }
1858 var = var1;
1859 RET_LABEL:;
1860 return var;
1861 }
1862 /* method model#MNullableType#to_s= for (self: MNullableType, String) */
1863 void nitc___nitc__MNullableType___to_s_61d(val* self, val* p0) {
1864 self->attrs[COLOR_nitc__model__MNullableType___to_s].val = p0; /* _to_s on <self:MNullableType> */
1865 RET_LABEL:;
1866 }
1867 /* method model#MNullableType#full_name for (self: MNullableType): String */
1868 val* nitc___nitc__MNullableType___nitc__model_base__MEntity__full_name(val* self) {
1869 val* var /* : String */;
1870 short int var1 /* : Bool */;
1871 val* var2 /* : String */;
1872 val* var3 /* : String */;
1873 val* var5 /* : NativeArray[String] */;
1874 static val* varonce;
1875 static val* varonce6;
1876 val* var7 /* : String */;
1877 char* var8 /* : NativeString */;
1878 val* var9 /* : String */;
1879 val* var10 /* : MType */;
1880 val* var12 /* : MType */;
1881 val* var13 /* : String */;
1882 val* var14 /* : String */;
1883 var1 = self->attrs[COLOR_nitc__model__MNullableType___full_name].val != NULL; /* _full_name on <self:MNullableType> */
1884 if(likely(var1)) {
1885 var2 = self->attrs[COLOR_nitc__model__MNullableType___full_name].val; /* _full_name on <self:MNullableType> */
1886 if (unlikely(var2 == NULL)) {
1887 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_name");
1888 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1684);
1889 fatal_exit(1);
1890 }
1891 } else {
1892 {
1893 if (unlikely(varonce==NULL)) {
1894 var5 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
1895 if (likely(varonce6!=NULL)) {
1896 var7 = varonce6;
1897 } else {
1898 var8 = "nullable ";
1899 var9 = core__flat___NativeString___to_s_full(var8, 9l, 9l);
1900 var7 = var9;
1901 varonce6 = var7;
1902 }
1903 ((struct instance_core__NativeArray*)var5)->values[0]=var7;
1904 } else {
1905 var5 = varonce;
1906 varonce = NULL;
1907 }
1908 {
1909 { /* Inline model#MProxyType#mtype (self) on <self:MNullableType> */
1910 var12 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MNullableType> */
1911 if (unlikely(var12 == NULL)) {
1912 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1913 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
1914 fatal_exit(1);
1915 }
1916 var10 = var12;
1917 RET_LABEL11:(void)0;
1918 }
1919 }
1920 {
1921 var13 = ((val*(*)(val* self))(var10->class->vft[COLOR_nitc__model_base__MEntity__full_name]))(var10); /* full_name on <var10:MType>*/
1922 }
1923 ((struct instance_core__NativeArray*)var5)->values[1]=var13;
1924 {
1925 var14 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var5); /* native_to_s on <var5:NativeArray[String]>*/
1926 }
1927 varonce = var5;
1928 var3 = var14;
1929 goto RET_LABEL4;
1930 RET_LABEL4:(void)0;
1931 }
1932 self->attrs[COLOR_nitc__model__MNullableType___full_name].val = var3; /* _full_name on <self:MNullableType> */
1933 var2 = var3;
1934 }
1935 var = var2;
1936 RET_LABEL:;
1937 return var;
1938 }
1939 /* method model#MNullableType#c_name for (self: MNullableType): String */
1940 val* nitc___nitc__MNullableType___nitc__model_base__MEntity__c_name(val* self) {
1941 val* var /* : String */;
1942 short int var1 /* : Bool */;
1943 val* var2 /* : String */;
1944 val* var3 /* : String */;
1945 val* var5 /* : NativeArray[String] */;
1946 static val* varonce;
1947 static val* varonce6;
1948 val* var7 /* : String */;
1949 char* var8 /* : NativeString */;
1950 val* var9 /* : String */;
1951 val* var10 /* : MType */;
1952 val* var12 /* : MType */;
1953 val* var13 /* : String */;
1954 val* var14 /* : String */;
1955 var1 = self->attrs[COLOR_nitc__model__MNullableType___c_name].val != NULL; /* _c_name on <self:MNullableType> */
1956 if(likely(var1)) {
1957 var2 = self->attrs[COLOR_nitc__model__MNullableType___c_name].val; /* _c_name on <self:MNullableType> */
1958 if (unlikely(var2 == NULL)) {
1959 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_name");
1960 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1686);
1961 fatal_exit(1);
1962 }
1963 } else {
1964 {
1965 if (unlikely(varonce==NULL)) {
1966 var5 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
1967 if (likely(varonce6!=NULL)) {
1968 var7 = varonce6;
1969 } else {
1970 var8 = "nullable__";
1971 var9 = core__flat___NativeString___to_s_full(var8, 10l, 10l);
1972 var7 = var9;
1973 varonce6 = var7;
1974 }
1975 ((struct instance_core__NativeArray*)var5)->values[0]=var7;
1976 } else {
1977 var5 = varonce;
1978 varonce = NULL;
1979 }
1980 {
1981 { /* Inline model#MProxyType#mtype (self) on <self:MNullableType> */
1982 var12 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MNullableType> */
1983 if (unlikely(var12 == NULL)) {
1984 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1985 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
1986 fatal_exit(1);
1987 }
1988 var10 = var12;
1989 RET_LABEL11:(void)0;
1990 }
1991 }
1992 {
1993 var13 = ((val*(*)(val* self))(var10->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var10); /* c_name on <var10:MType>*/
1994 }
1995 ((struct instance_core__NativeArray*)var5)->values[1]=var13;
1996 {
1997 var14 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var5); /* native_to_s on <var5:NativeArray[String]>*/
1998 }
1999 varonce = var5;
2000 var3 = var14;
2001 goto RET_LABEL4;
2002 RET_LABEL4:(void)0;
2003 }
2004 self->attrs[COLOR_nitc__model__MNullableType___c_name].val = var3; /* _c_name on <self:MNullableType> */
2005 var2 = var3;
2006 }
2007 var = var2;
2008 RET_LABEL:;
2009 return var;
2010 }
2011 /* method model#MNullableType#as_nullable for (self: MNullableType): MType */
2012 val* nitc___nitc__MNullableType___MType__as_nullable(val* self) {
2013 val* var /* : MType */;
2014 var = self;
2015 goto RET_LABEL;
2016 RET_LABEL:;
2017 return var;
2018 }
2019 /* method model#MNullableType#resolve_for for (self: MNullableType, MType, nullable MClassType, MModule, Bool): MType */
2020 val* nitc___nitc__MNullableType___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
2021 val* var /* : MType */;
2022 val* var_mtype /* var mtype: MType */;
2023 val* var_anchor /* var anchor: nullable MClassType */;
2024 val* var_mmodule /* var mmodule: MModule */;
2025 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
2026 val* var1 /* : MType */;
2027 val* var_res /* var res: MType */;
2028 val* var2 /* : MType */;
2029 var_mtype = p0;
2030 var_anchor = p1;
2031 var_mmodule = p2;
2032 var_cleanup_virtual = p3;
2033 {
2034 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>*/
2035 }
2036 var_res = var1;
2037 {
2038 var2 = ((val*(*)(val* self))(var_res->class->vft[COLOR_nitc__model__MType__as_nullable]))(var_res); /* as_nullable on <var_res:MType>*/
2039 }
2040 var = var2;
2041 goto RET_LABEL;
2042 RET_LABEL:;
2043 return var;
2044 }
2045 /* method model#MNullableType#lookup_fixed for (self: MNullableType, MModule, MType): MType */
2046 val* nitc___nitc__MNullableType___MType__lookup_fixed(val* self, val* p0, val* p1) {
2047 val* var /* : MType */;
2048 val* var_mmodule /* var mmodule: MModule */;
2049 val* var_resolved_receiver /* var resolved_receiver: MType */;
2050 val* var1 /* : MType */;
2051 val* var_t /* var t: MType */;
2052 val* var2 /* : MType */;
2053 val* var4 /* : MType */;
2054 short int var5 /* : Bool */;
2055 val* var_other /* var other: nullable Object */;
2056 short int var7 /* : Bool */;
2057 short int var9 /* : Bool */;
2058 val* var10 /* : MType */;
2059 var_mmodule = p0;
2060 var_resolved_receiver = p1;
2061 {
2062 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>*/
2063 }
2064 var_t = var1;
2065 {
2066 { /* Inline model#MProxyType#mtype (self) on <self:MNullableType> */
2067 var4 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MNullableType> */
2068 if (unlikely(var4 == NULL)) {
2069 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2070 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
2071 fatal_exit(1);
2072 }
2073 var2 = var4;
2074 RET_LABEL3:(void)0;
2075 }
2076 }
2077 {
2078 { /* Inline kernel#Object#== (var_t,var2) on <var_t:MType> */
2079 var_other = var2;
2080 {
2081 { /* Inline kernel#Object#is_same_instance (var_t,var_other) on <var_t:MType> */
2082 var9 = var_t == var_other;
2083 var7 = var9;
2084 goto RET_LABEL8;
2085 RET_LABEL8:(void)0;
2086 }
2087 }
2088 var5 = var7;
2089 goto RET_LABEL6;
2090 RET_LABEL6:(void)0;
2091 }
2092 }
2093 if (var5){
2094 var = self;
2095 goto RET_LABEL;
2096 } else {
2097 }
2098 {
2099 var10 = ((val*(*)(val* self))(var_t->class->vft[COLOR_nitc__model__MType__as_nullable]))(var_t); /* as_nullable on <var_t:MType>*/
2100 }
2101 var = var10;
2102 goto RET_LABEL;
2103 RET_LABEL:;
2104 return var;
2105 }
2106 /* method model#MNotNullType#to_s for (self: MNotNullType): String */
2107 val* nitc___nitc__MNotNullType___core__abstract_text__Object__to_s(val* self) {
2108 val* var /* : String */;
2109 val* var1 /* : NativeArray[String] */;
2110 static val* varonce;
2111 static val* varonce2;
2112 val* var3 /* : String */;
2113 char* var4 /* : NativeString */;
2114 val* var5 /* : String */;
2115 val* var6 /* : MType */;
2116 val* var8 /* : MType */;
2117 val* var9 /* : String */;
2118 val* var10 /* : String */;
2119 if (unlikely(varonce==NULL)) {
2120 var1 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
2121 if (likely(varonce2!=NULL)) {
2122 var3 = varonce2;
2123 } else {
2124 var4 = "not null ";
2125 var5 = core__flat___NativeString___to_s_full(var4, 9l, 9l);
2126 var3 = var5;
2127 varonce2 = var3;
2128 }
2129 ((struct instance_core__NativeArray*)var1)->values[0]=var3;
2130 } else {
2131 var1 = varonce;
2132 varonce = NULL;
2133 }
2134 {
2135 { /* Inline model#MProxyType#mtype (self) on <self:MNotNullType> */
2136 var8 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MNotNullType> */
2137 if (unlikely(var8 == NULL)) {
2138 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2139 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
2140 fatal_exit(1);
2141 }
2142 var6 = var8;
2143 RET_LABEL7:(void)0;
2144 }
2145 }
2146 {
2147 var9 = ((val*(*)(val* self))(var6->class->vft[COLOR_core__abstract_text__Object__to_s]))(var6); /* to_s on <var6:MType>*/
2148 }
2149 ((struct instance_core__NativeArray*)var1)->values[1]=var9;
2150 {
2151 var10 = ((val*(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
2152 }
2153 varonce = var1;
2154 var = var10;
2155 goto RET_LABEL;
2156 RET_LABEL:;
2157 return var;
2158 }
2159 /* method model#MNotNullType#full_name for (self: MNotNullType): String */
2160 val* nitc___nitc__MNotNullType___nitc__model_base__MEntity__full_name(val* self) {
2161 val* var /* : String */;
2162 short int var1 /* : Bool */;
2163 val* var2 /* : String */;
2164 val* var3 /* : String */;
2165 val* var5 /* : NativeArray[String] */;
2166 static val* varonce;
2167 static val* varonce6;
2168 val* var7 /* : String */;
2169 char* var8 /* : NativeString */;
2170 val* var9 /* : String */;
2171 val* var10 /* : MType */;
2172 val* var12 /* : MType */;
2173 val* var13 /* : String */;
2174 val* var14 /* : String */;
2175 var1 = self->attrs[COLOR_nitc__model__MNotNullType___full_name].val != NULL; /* _full_name on <self:MNotNullType> */
2176 if(likely(var1)) {
2177 var2 = self->attrs[COLOR_nitc__model__MNotNullType___full_name].val; /* _full_name on <self:MNotNullType> */
2178 if (unlikely(var2 == NULL)) {
2179 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_name");
2180 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1711);
2181 fatal_exit(1);
2182 }
2183 } else {
2184 {
2185 if (unlikely(varonce==NULL)) {
2186 var5 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
2187 if (likely(varonce6!=NULL)) {
2188 var7 = varonce6;
2189 } else {
2190 var8 = "not null ";
2191 var9 = core__flat___NativeString___to_s_full(var8, 9l, 9l);
2192 var7 = var9;
2193 varonce6 = var7;
2194 }
2195 ((struct instance_core__NativeArray*)var5)->values[0]=var7;
2196 } else {
2197 var5 = varonce;
2198 varonce = NULL;
2199 }
2200 {
2201 { /* Inline model#MProxyType#mtype (self) on <self:MNotNullType> */
2202 var12 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MNotNullType> */
2203 if (unlikely(var12 == NULL)) {
2204 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2205 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
2206 fatal_exit(1);
2207 }
2208 var10 = var12;
2209 RET_LABEL11:(void)0;
2210 }
2211 }
2212 {
2213 var13 = ((val*(*)(val* self))(var10->class->vft[COLOR_nitc__model_base__MEntity__full_name]))(var10); /* full_name on <var10:MType>*/
2214 }
2215 ((struct instance_core__NativeArray*)var5)->values[1]=var13;
2216 {
2217 var14 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var5); /* native_to_s on <var5:NativeArray[String]>*/
2218 }
2219 varonce = var5;
2220 var3 = var14;
2221 goto RET_LABEL4;
2222 RET_LABEL4:(void)0;
2223 }
2224 self->attrs[COLOR_nitc__model__MNotNullType___full_name].val = var3; /* _full_name on <self:MNotNullType> */
2225 var2 = var3;
2226 }
2227 var = var2;
2228 RET_LABEL:;
2229 return var;
2230 }
2231 /* method model#MNotNullType#c_name for (self: MNotNullType): String */
2232 val* nitc___nitc__MNotNullType___nitc__model_base__MEntity__c_name(val* self) {
2233 val* var /* : String */;
2234 short int var1 /* : Bool */;
2235 val* var2 /* : String */;
2236 val* var3 /* : String */;
2237 val* var5 /* : NativeArray[String] */;
2238 static val* varonce;
2239 static val* varonce6;
2240 val* var7 /* : String */;
2241 char* var8 /* : NativeString */;
2242 val* var9 /* : String */;
2243 val* var10 /* : MType */;
2244 val* var12 /* : MType */;
2245 val* var13 /* : String */;
2246 val* var14 /* : String */;
2247 var1 = self->attrs[COLOR_nitc__model__MNotNullType___c_name].val != NULL; /* _c_name on <self:MNotNullType> */
2248 if(likely(var1)) {
2249 var2 = self->attrs[COLOR_nitc__model__MNotNullType___c_name].val; /* _c_name on <self:MNotNullType> */
2250 if (unlikely(var2 == NULL)) {
2251 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_name");
2252 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1712);
2253 fatal_exit(1);
2254 }
2255 } else {
2256 {
2257 if (unlikely(varonce==NULL)) {
2258 var5 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
2259 if (likely(varonce6!=NULL)) {
2260 var7 = varonce6;
2261 } else {
2262 var8 = "notnull__";
2263 var9 = core__flat___NativeString___to_s_full(var8, 9l, 9l);
2264 var7 = var9;
2265 varonce6 = var7;
2266 }
2267 ((struct instance_core__NativeArray*)var5)->values[0]=var7;
2268 } else {
2269 var5 = varonce;
2270 varonce = NULL;
2271 }
2272 {
2273 { /* Inline model#MProxyType#mtype (self) on <self:MNotNullType> */
2274 var12 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MNotNullType> */
2275 if (unlikely(var12 == NULL)) {
2276 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2277 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
2278 fatal_exit(1);
2279 }
2280 var10 = var12;
2281 RET_LABEL11:(void)0;
2282 }
2283 }
2284 {
2285 var13 = ((val*(*)(val* self))(var10->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var10); /* c_name on <var10:MType>*/
2286 }
2287 ((struct instance_core__NativeArray*)var5)->values[1]=var13;
2288 {
2289 var14 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var5); /* native_to_s on <var5:NativeArray[String]>*/
2290 }
2291 varonce = var5;
2292 var3 = var14;
2293 goto RET_LABEL4;
2294 RET_LABEL4:(void)0;
2295 }
2296 self->attrs[COLOR_nitc__model__MNotNullType___c_name].val = var3; /* _c_name on <self:MNotNullType> */
2297 var2 = var3;
2298 }
2299 var = var2;
2300 RET_LABEL:;
2301 return var;
2302 }
2303 /* method model#MNotNullType#as_notnull for (self: MNotNullType): MType */
2304 val* nitc___nitc__MNotNullType___MType__as_notnull(val* self) {
2305 val* var /* : MType */;
2306 var = self;
2307 goto RET_LABEL;
2308 RET_LABEL:;
2309 return var;
2310 }
2311 /* method model#MNotNullType#resolve_for for (self: MNotNullType, MType, nullable MClassType, MModule, Bool): MType */
2312 val* nitc___nitc__MNotNullType___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
2313 val* var /* : MType */;
2314 val* var_mtype /* var mtype: MType */;
2315 val* var_anchor /* var anchor: nullable MClassType */;
2316 val* var_mmodule /* var mmodule: MModule */;
2317 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
2318 val* var1 /* : MType */;
2319 val* var_res /* var res: MType */;
2320 val* var2 /* : MType */;
2321 var_mtype = p0;
2322 var_anchor = p1;
2323 var_mmodule = p2;
2324 var_cleanup_virtual = p3;
2325 {
2326 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>*/
2327 }
2328 var_res = var1;
2329 {
2330 var2 = ((val*(*)(val* self))(var_res->class->vft[COLOR_nitc__model__MType__as_notnull]))(var_res); /* as_notnull on <var_res:MType>*/
2331 }
2332 var = var2;
2333 goto RET_LABEL;
2334 RET_LABEL:;
2335 return var;
2336 }
2337 /* method model#MNotNullType#lookup_fixed for (self: MNotNullType, MModule, MType): MType */
2338 val* nitc___nitc__MNotNullType___MType__lookup_fixed(val* self, val* p0, val* p1) {
2339 val* var /* : MType */;
2340 val* var_mmodule /* var mmodule: MModule */;
2341 val* var_resolved_receiver /* var resolved_receiver: MType */;
2342 val* var1 /* : MType */;
2343 val* var_t /* var t: MType */;
2344 val* var2 /* : MType */;
2345 val* var4 /* : MType */;
2346 short int var5 /* : Bool */;
2347 val* var_other /* var other: nullable Object */;
2348 short int var7 /* : Bool */;
2349 short int var9 /* : Bool */;
2350 val* var10 /* : MType */;
2351 var_mmodule = p0;
2352 var_resolved_receiver = p1;
2353 {
2354 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>*/
2355 }
2356 var_t = var1;
2357 {
2358 { /* Inline model#MProxyType#mtype (self) on <self:MNotNullType> */
2359 var4 = self->attrs[COLOR_nitc__model__MProxyType___mtype].val; /* _mtype on <self:MNotNullType> */
2360 if (unlikely(var4 == NULL)) {
2361 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2362 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1625);
2363 fatal_exit(1);
2364 }
2365 var2 = var4;
2366 RET_LABEL3:(void)0;
2367 }
2368 }
2369 {
2370 { /* Inline kernel#Object#== (var_t,var2) on <var_t:MType> */
2371 var_other = var2;
2372 {
2373 { /* Inline kernel#Object#is_same_instance (var_t,var_other) on <var_t:MType> */
2374 var9 = var_t == var_other;
2375 var7 = var9;
2376 goto RET_LABEL8;
2377 RET_LABEL8:(void)0;
2378 }
2379 }
2380 var5 = var7;
2381 goto RET_LABEL6;
2382 RET_LABEL6:(void)0;
2383 }
2384 }
2385 if (var5){
2386 var = self;
2387 goto RET_LABEL;
2388 } else {
2389 }
2390 {
2391 var10 = ((val*(*)(val* self))(var_t->class->vft[COLOR_nitc__model__MType__as_notnull]))(var_t); /* as_notnull on <var_t:MType>*/
2392 }
2393 var = var10;
2394 goto RET_LABEL;
2395 RET_LABEL:;
2396 return var;
2397 }
2398 /* method model#MNullType#model for (self: MNullType): Model */
2399 val* nitc___nitc__MNullType___nitc__model_base__MEntity__model(val* self) {
2400 val* var /* : Model */;
2401 val* var1 /* : Model */;
2402 var1 = self->attrs[COLOR_nitc__model__MNullType___model].val; /* _model on <self:MNullType> */
2403 if (unlikely(var1 == NULL)) {
2404 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
2405 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1736);
2406 fatal_exit(1);
2407 }
2408 var = var1;
2409 RET_LABEL:;
2410 return var;
2411 }
2412 /* method model#MNullType#model= for (self: MNullType, Model) */
2413 void nitc___nitc__MNullType___model_61d(val* self, val* p0) {
2414 self->attrs[COLOR_nitc__model__MNullType___model].val = p0; /* _model on <self:MNullType> */
2415 RET_LABEL:;
2416 }
2417 /* method model#MNullType#to_s for (self: MNullType): String */
2418 val* nitc___nitc__MNullType___core__abstract_text__Object__to_s(val* self) {
2419 val* var /* : String */;
2420 static val* varonce;
2421 val* var1 /* : String */;
2422 char* var2 /* : NativeString */;
2423 val* var3 /* : String */;
2424 if (likely(varonce!=NULL)) {
2425 var1 = varonce;
2426 } else {
2427 var2 = "null";
2428 var3 = core__flat___NativeString___to_s_full(var2, 4l, 4l);
2429 var1 = var3;
2430 varonce = var1;
2431 }
2432 var = var1;
2433 goto RET_LABEL;
2434 RET_LABEL:;
2435 return var;
2436 }
2437 /* method model#MNullType#full_name for (self: MNullType): String */
2438 val* nitc___nitc__MNullType___nitc__model_base__MEntity__full_name(val* self) {
2439 val* var /* : String */;
2440 static val* varonce;
2441 val* var1 /* : String */;
2442 char* var2 /* : NativeString */;
2443 val* var3 /* : String */;
2444 if (likely(varonce!=NULL)) {
2445 var1 = varonce;
2446 } else {
2447 var2 = "null";
2448 var3 = core__flat___NativeString___to_s_full(var2, 4l, 4l);
2449 var1 = var3;
2450 varonce = var1;
2451 }
2452 var = var1;
2453 goto RET_LABEL;
2454 RET_LABEL:;
2455 return var;
2456 }
2457 /* method model#MNullType#c_name for (self: MNullType): String */
2458 val* nitc___nitc__MNullType___nitc__model_base__MEntity__c_name(val* self) {
2459 val* var /* : String */;
2460 static val* varonce;
2461 val* var1 /* : String */;
2462 char* var2 /* : NativeString */;
2463 val* var3 /* : String */;
2464 if (likely(varonce!=NULL)) {
2465 var1 = varonce;
2466 } else {
2467 var2 = "null";
2468 var3 = core__flat___NativeString___to_s_full(var2, 4l, 4l);
2469 var1 = var3;
2470 varonce = var1;
2471 }
2472 var = var1;
2473 goto RET_LABEL;
2474 RET_LABEL:;
2475 return var;
2476 }
2477 /* method model#MNullType#as_nullable for (self: MNullType): MType */
2478 val* nitc___nitc__MNullType___MType__as_nullable(val* self) {
2479 val* var /* : MType */;
2480 var = self;
2481 goto RET_LABEL;
2482 RET_LABEL:;
2483 return var;
2484 }
2485 /* method model#MNullType#as_notnull for (self: MNullType): MType */
2486 val* nitc___nitc__MNullType___MType__as_notnull(val* self) {
2487 val* var /* : MType */;
2488 short int var1 /* : Bool */;
2489 val* var2 /* : MType */;
2490 val* var3 /* : MBottomType */;
2491 val* var4 /* : Model */;
2492 val* var6 /* : Model */;
2493 var1 = self->attrs[COLOR_nitc__model__MNullType___as_notnull].val != NULL; /* _as_notnull on <self:MNullType> */
2494 if(likely(var1)) {
2495 var2 = self->attrs[COLOR_nitc__model__MNullType___as_notnull].val; /* _as_notnull on <self:MNullType> */
2496 if (unlikely(var2 == NULL)) {
2497 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _as_notnull");
2498 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1742);
2499 fatal_exit(1);
2500 }
2501 } else {
2502 var3 = NEW_nitc__MBottomType(&type_nitc__MBottomType);
2503 {
2504 { /* Inline model#MNullType#model (self) on <self:MNullType> */
2505 var6 = self->attrs[COLOR_nitc__model__MNullType___model].val; /* _model on <self:MNullType> */
2506 if (unlikely(var6 == NULL)) {
2507 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
2508 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1736);
2509 fatal_exit(1);
2510 }
2511 var4 = var6;
2512 RET_LABEL5:(void)0;
2513 }
2514 }
2515 {
2516 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__model__MBottomType__model_61d]))(var3, var4); /* model= on <var3:MBottomType>*/
2517 }
2518 {
2519 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:MBottomType>*/
2520 }
2521 self->attrs[COLOR_nitc__model__MNullType___as_notnull].val = var3; /* _as_notnull on <self:MNullType> */
2522 var2 = var3;
2523 }
2524 var = var2;
2525 RET_LABEL:;
2526 return var;
2527 }
2528 /* method model#MNullType#need_anchor for (self: MNullType): Bool */
2529 short int nitc___nitc__MNullType___MType__need_anchor(val* self) {
2530 short int var /* : Bool */;
2531 var = 0;
2532 goto RET_LABEL;
2533 RET_LABEL:;
2534 return var;
2535 }
2536 /* method model#MNullType#resolve_for for (self: MNullType, MType, nullable MClassType, MModule, Bool): MType */
2537 val* nitc___nitc__MNullType___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
2538 val* var /* : MType */;
2539 val* var_mtype /* var mtype: MType */;
2540 val* var_anchor /* var anchor: nullable MClassType */;
2541 val* var_mmodule /* var mmodule: MModule */;
2542 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
2543 var_mtype = p0;
2544 var_anchor = p1;
2545 var_mmodule = p2;
2546 var_cleanup_virtual = p3;
2547 var = self;
2548 goto RET_LABEL;
2549 RET_LABEL:;
2550 return var;
2551 }
2552 /* method model#MNullType#can_resolve_for for (self: MNullType, MType, nullable MClassType, MModule): Bool */
2553 short int nitc___nitc__MNullType___MType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
2554 short int var /* : Bool */;
2555 val* var_mtype /* var mtype: MType */;
2556 val* var_anchor /* var anchor: nullable MClassType */;
2557 val* var_mmodule /* var mmodule: MModule */;
2558 var_mtype = p0;
2559 var_anchor = p1;
2560 var_mmodule = p2;
2561 var = 1;
2562 goto RET_LABEL;
2563 RET_LABEL:;
2564 return var;
2565 }
2566 /* method model#MNullType#collect_mclassdefs for (self: MNullType, MModule): Set[MClassDef] */
2567 val* nitc___nitc__MNullType___MType__collect_mclassdefs(val* self, val* p0) {
2568 val* var /* : Set[MClassDef] */;
2569 val* var_mmodule /* var mmodule: MModule */;
2570 val* var1 /* : HashSet[MClassDef] */;
2571 var_mmodule = p0;
2572 var1 = NEW_core__HashSet(&type_core__HashSet__nitc__MClassDef);
2573 {
2574 core___core__HashSet___core__kernel__Object__init(var1); /* Direct call hash_collection#HashSet#init on <var1:HashSet[MClassDef]>*/
2575 }
2576 var = var1;
2577 goto RET_LABEL;
2578 RET_LABEL:;
2579 return var;
2580 }
2581 /* method model#MNullType#collect_mclasses for (self: MNullType, MModule): Set[MClass] */
2582 val* nitc___nitc__MNullType___MType__collect_mclasses(val* self, val* p0) {
2583 val* var /* : Set[MClass] */;
2584 val* var_mmodule /* var mmodule: MModule */;
2585 val* var1 /* : HashSet[MClass] */;
2586 var_mmodule = p0;
2587 var1 = NEW_core__HashSet(&type_core__HashSet__nitc__MClass);
2588 {
2589 core___core__HashSet___core__kernel__Object__init(var1); /* Direct call hash_collection#HashSet#init on <var1:HashSet[MClass]>*/
2590 }
2591 var = var1;
2592 goto RET_LABEL;
2593 RET_LABEL:;
2594 return var;
2595 }
2596 /* method model#MNullType#collect_mtypes for (self: MNullType, MModule): Set[MClassType] */
2597 val* nitc___nitc__MNullType___MType__collect_mtypes(val* self, val* p0) {
2598 val* var /* : Set[MClassType] */;
2599 val* var_mmodule /* var mmodule: MModule */;
2600 val* var1 /* : HashSet[MClassType] */;
2601 var_mmodule = p0;
2602 var1 = NEW_core__HashSet(&type_core__HashSet__nitc__MClassType);
2603 {
2604 core___core__HashSet___core__kernel__Object__init(var1); /* Direct call hash_collection#HashSet#init on <var1:HashSet[MClassType]>*/
2605 }
2606 var = var1;
2607 goto RET_LABEL;
2608 RET_LABEL:;
2609 return var;
2610 }
2611 /* method model#MNullType#init for (self: MNullType) */
2612 void nitc___nitc__MNullType___core__kernel__Object__init(val* self) {
2613 {
2614 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MNullType___core__kernel__Object__init]))(self); /* init on <self:MNullType>*/
2615 }
2616 RET_LABEL:;
2617 }
2618 /* method model#MBottomType#model for (self: MBottomType): Model */
2619 val* nitc___nitc__MBottomType___nitc__model_base__MEntity__model(val* self) {
2620 val* var /* : Model */;
2621 val* var1 /* : Model */;
2622 var1 = self->attrs[COLOR_nitc__model__MBottomType___model].val; /* _model on <self:MBottomType> */
2623 if (unlikely(var1 == NULL)) {
2624 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
2625 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1762);
2626 fatal_exit(1);
2627 }
2628 var = var1;
2629 RET_LABEL:;
2630 return var;
2631 }
2632 /* method model#MBottomType#model= for (self: MBottomType, Model) */
2633 void nitc___nitc__MBottomType___model_61d(val* self, val* p0) {
2634 self->attrs[COLOR_nitc__model__MBottomType___model].val = p0; /* _model on <self:MBottomType> */
2635 RET_LABEL:;
2636 }
2637 /* method model#MBottomType#to_s for (self: MBottomType): String */
2638 val* nitc___nitc__MBottomType___core__abstract_text__Object__to_s(val* self) {
2639 val* var /* : String */;
2640 static val* varonce;
2641 val* var1 /* : String */;
2642 char* var2 /* : NativeString */;
2643 val* var3 /* : String */;
2644 if (likely(varonce!=NULL)) {
2645 var1 = varonce;
2646 } else {
2647 var2 = "bottom";
2648 var3 = core__flat___NativeString___to_s_full(var2, 6l, 6l);
2649 var1 = var3;
2650 varonce = var1;
2651 }
2652 var = var1;
2653 goto RET_LABEL;
2654 RET_LABEL:;
2655 return var;
2656 }
2657 /* method model#MBottomType#full_name for (self: MBottomType): String */
2658 val* nitc___nitc__MBottomType___nitc__model_base__MEntity__full_name(val* self) {
2659 val* var /* : String */;
2660 static val* varonce;
2661 val* var1 /* : String */;
2662 char* var2 /* : NativeString */;
2663 val* var3 /* : String */;
2664 if (likely(varonce!=NULL)) {
2665 var1 = varonce;
2666 } else {
2667 var2 = "bottom";
2668 var3 = core__flat___NativeString___to_s_full(var2, 6l, 6l);
2669 var1 = var3;
2670 varonce = var1;
2671 }
2672 var = var1;
2673 goto RET_LABEL;
2674 RET_LABEL:;
2675 return var;
2676 }
2677 /* method model#MBottomType#c_name for (self: MBottomType): String */
2678 val* nitc___nitc__MBottomType___nitc__model_base__MEntity__c_name(val* self) {
2679 val* var /* : String */;
2680 static val* varonce;
2681 val* var1 /* : String */;
2682 char* var2 /* : NativeString */;
2683 val* var3 /* : String */;
2684 if (likely(varonce!=NULL)) {
2685 var1 = varonce;
2686 } else {
2687 var2 = "bottom";
2688 var3 = core__flat___NativeString___to_s_full(var2, 6l, 6l);
2689 var1 = var3;
2690 varonce = var1;
2691 }
2692 var = var1;
2693 goto RET_LABEL;
2694 RET_LABEL:;
2695 return var;
2696 }
2697 /* method model#MBottomType#as_nullable for (self: MBottomType): MType */
2698 val* nitc___nitc__MBottomType___MType__as_nullable(val* self) {
2699 val* var /* : MType */;
2700 val* var1 /* : Model */;
2701 val* var3 /* : Model */;
2702 val* var4 /* : MNullType */;
2703 val* var6 /* : MNullType */;
2704 {
2705 { /* Inline model#MBottomType#model (self) on <self:MBottomType> */
2706 var3 = self->attrs[COLOR_nitc__model__MBottomType___model].val; /* _model on <self:MBottomType> */
2707 if (unlikely(var3 == NULL)) {
2708 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
2709 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1762);
2710 fatal_exit(1);
2711 }
2712 var1 = var3;
2713 RET_LABEL2:(void)0;
2714 }
2715 }
2716 {
2717 { /* Inline model#Model#null_type (var1) on <var1:Model> */
2718 var6 = var1->attrs[COLOR_nitc__model__Model___null_type].val; /* _null_type on <var1:Model> */
2719 if (unlikely(var6 == NULL)) {
2720 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _null_type");
2721 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 94);
2722 fatal_exit(1);
2723 }
2724 var4 = var6;
2725 RET_LABEL5:(void)0;
2726 }
2727 }
2728 var = var4;
2729 goto RET_LABEL;
2730 RET_LABEL:;
2731 return var;
2732 }
2733 /* method model#MBottomType#as_notnull for (self: MBottomType): MType */
2734 val* nitc___nitc__MBottomType___MType__as_notnull(val* self) {
2735 val* var /* : MType */;
2736 var = self;
2737 goto RET_LABEL;
2738 RET_LABEL:;
2739 return var;
2740 }
2741 /* method model#MBottomType#need_anchor for (self: MBottomType): Bool */
2742 short int nitc___nitc__MBottomType___MType__need_anchor(val* self) {
2743 short int var /* : Bool */;
2744 var = 0;
2745 goto RET_LABEL;
2746 RET_LABEL:;
2747 return var;
2748 }
2749 /* method model#MBottomType#resolve_for for (self: MBottomType, MType, nullable MClassType, MModule, Bool): MType */
2750 val* nitc___nitc__MBottomType___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
2751 val* var /* : MType */;
2752 val* var_mtype /* var mtype: MType */;
2753 val* var_anchor /* var anchor: nullable MClassType */;
2754 val* var_mmodule /* var mmodule: MModule */;
2755 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
2756 var_mtype = p0;
2757 var_anchor = p1;
2758 var_mmodule = p2;
2759 var_cleanup_virtual = p3;
2760 var = self;
2761 goto RET_LABEL;
2762 RET_LABEL:;
2763 return var;
2764 }
2765 /* method model#MBottomType#can_resolve_for for (self: MBottomType, MType, nullable MClassType, MModule): Bool */
2766 short int nitc___nitc__MBottomType___MType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
2767 short int var /* : Bool */;
2768 val* var_mtype /* var mtype: MType */;
2769 val* var_anchor /* var anchor: nullable MClassType */;
2770 val* var_mmodule /* var mmodule: MModule */;
2771 var_mtype = p0;
2772 var_anchor = p1;
2773 var_mmodule = p2;
2774 var = 1;
2775 goto RET_LABEL;
2776 RET_LABEL:;
2777 return var;
2778 }
2779 /* method model#MBottomType#collect_mclassdefs for (self: MBottomType, MModule): Set[MClassDef] */
2780 val* nitc___nitc__MBottomType___MType__collect_mclassdefs(val* self, val* p0) {
2781 val* var /* : Set[MClassDef] */;
2782 val* var_mmodule /* var mmodule: MModule */;
2783 val* var1 /* : HashSet[MClassDef] */;
2784 var_mmodule = p0;
2785 var1 = NEW_core__HashSet(&type_core__HashSet__nitc__MClassDef);
2786 {
2787 core___core__HashSet___core__kernel__Object__init(var1); /* Direct call hash_collection#HashSet#init on <var1:HashSet[MClassDef]>*/
2788 }
2789 var = var1;
2790 goto RET_LABEL;
2791 RET_LABEL:;
2792 return var;
2793 }
2794 /* method model#MBottomType#collect_mclasses for (self: MBottomType, MModule): Set[MClass] */
2795 val* nitc___nitc__MBottomType___MType__collect_mclasses(val* self, val* p0) {
2796 val* var /* : Set[MClass] */;
2797 val* var_mmodule /* var mmodule: MModule */;
2798 val* var1 /* : HashSet[MClass] */;
2799 var_mmodule = p0;
2800 var1 = NEW_core__HashSet(&type_core__HashSet__nitc__MClass);
2801 {
2802 core___core__HashSet___core__kernel__Object__init(var1); /* Direct call hash_collection#HashSet#init on <var1:HashSet[MClass]>*/
2803 }
2804 var = var1;
2805 goto RET_LABEL;
2806 RET_LABEL:;
2807 return var;
2808 }
2809 /* method model#MBottomType#collect_mtypes for (self: MBottomType, MModule): Set[MClassType] */
2810 val* nitc___nitc__MBottomType___MType__collect_mtypes(val* self, val* p0) {
2811 val* var /* : Set[MClassType] */;
2812 val* var_mmodule /* var mmodule: MModule */;
2813 val* var1 /* : HashSet[MClassType] */;
2814 var_mmodule = p0;
2815 var1 = NEW_core__HashSet(&type_core__HashSet__nitc__MClassType);
2816 {
2817 core___core__HashSet___core__kernel__Object__init(var1); /* Direct call hash_collection#HashSet#init on <var1:HashSet[MClassType]>*/
2818 }
2819 var = var1;
2820 goto RET_LABEL;
2821 RET_LABEL:;
2822 return var;
2823 }
2824 /* method model#MBottomType#init for (self: MBottomType) */
2825 void nitc___nitc__MBottomType___core__kernel__Object__init(val* self) {
2826 {
2827 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MBottomType___core__kernel__Object__init]))(self); /* init on <self:MBottomType>*/
2828 }
2829 RET_LABEL:;
2830 }
2831 /* method model#MSignature#mparameters for (self: MSignature): Array[MParameter] */
2832 val* nitc___nitc__MSignature___mparameters(val* self) {
2833 val* var /* : Array[MParameter] */;
2834 val* var1 /* : Array[MParameter] */;
2835 var1 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
2836 if (unlikely(var1 == NULL)) {
2837 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2838 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1783);
2839 fatal_exit(1);
2840 }
2841 var = var1;
2842 RET_LABEL:;
2843 return var;
2844 }
2845 /* method model#MSignature#mparameters= for (self: MSignature, Array[MParameter]) */
2846 void nitc___nitc__MSignature___mparameters_61d(val* self, val* p0) {
2847 self->attrs[COLOR_nitc__model__MSignature___mparameters].val = p0; /* _mparameters on <self:MSignature> */
2848 RET_LABEL:;
2849 }
2850 /* method model#MSignature#mparameter_by_name for (self: MSignature, String): nullable MParameter */
2851 val* nitc___nitc__MSignature___mparameter_by_name(val* self, val* p0) {
2852 val* var /* : nullable MParameter */;
2853 val* var_name /* var name: String */;
2854 val* var1 /* : Array[MParameter] */;
2855 val* var3 /* : Array[MParameter] */;
2856 val* var_ /* var : Array[MParameter] */;
2857 val* var4 /* : IndexedIterator[nullable Object] */;
2858 val* var_5 /* var : IndexedIterator[MParameter] */;
2859 short int var6 /* : Bool */;
2860 val* var7 /* : nullable Object */;
2861 val* var_p /* var p: MParameter */;
2862 val* var8 /* : String */;
2863 val* var10 /* : String */;
2864 short int var11 /* : Bool */;
2865 var_name = p0;
2866 {
2867 { /* Inline model#MSignature#mparameters (self) on <self:MSignature> */
2868 var3 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
2869 if (unlikely(var3 == NULL)) {
2870 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2871 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1783);
2872 fatal_exit(1);
2873 }
2874 var1 = var3;
2875 RET_LABEL2:(void)0;
2876 }
2877 }
2878 var_ = var1;
2879 {
2880 var4 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
2881 }
2882 var_5 = var4;
2883 for(;;) {
2884 {
2885 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]>*/
2886 }
2887 if (var6){
2888 } else {
2889 goto BREAK_label;
2890 }
2891 {
2892 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]>*/
2893 }
2894 var_p = var7;
2895 {
2896 { /* Inline model#MParameter#name (var_p) on <var_p:MParameter> */
2897 var10 = var_p->attrs[COLOR_nitc__model__MParameter___name].val; /* _name on <var_p:MParameter> */
2898 if (unlikely(var10 == NULL)) {
2899 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2900 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1897);
2901 fatal_exit(1);
2902 }
2903 var8 = var10;
2904 RET_LABEL9:(void)0;
2905 }
2906 }
2907 {
2908 var11 = ((short int(*)(val* self, val* p0))(var8->class->vft[COLOR_core__kernel__Object___61d_61d]))(var8, var_name); /* == on <var8:String>*/
2909 }
2910 if (var11){
2911 var = var_p;
2912 goto RET_LABEL;
2913 } else {
2914 }
2915 {
2916 ((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]>*/
2917 }
2918 }
2919 BREAK_label: (void)0;
2920 {
2921 ((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]>*/
2922 }
2923 var = ((val*)NULL);
2924 goto RET_LABEL;
2925 RET_LABEL:;
2926 return var;
2927 }
2928 /* method model#MSignature#return_mtype for (self: MSignature): nullable MType */
2929 val* nitc___nitc__MSignature___return_mtype(val* self) {
2930 val* var /* : nullable MType */;
2931 val* var1 /* : nullable MType */;
2932 var1 = self->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <self:MSignature> */
2933 var = var1;
2934 RET_LABEL:;
2935 return var;
2936 }
2937 /* method model#MSignature#return_mtype= for (self: MSignature, nullable MType) */
2938 void nitc___nitc__MSignature___return_mtype_61d(val* self, val* p0) {
2939 self->attrs[COLOR_nitc__model__MSignature___return_mtype].val = p0; /* _return_mtype on <self:MSignature> */
2940 RET_LABEL:;
2941 }
2942 /* method model#MSignature#length for (self: MSignature): Int */
2943 long nitc___nitc__MSignature___MType__length(val* self) {
2944 long var /* : Int */;
2945 long var_res /* var res: Int */;
2946 val* var1 /* : nullable MType */;
2947 val* var3 /* : nullable MType */;
2948 val* var_t /* var t: nullable MType */;
2949 short int var4 /* : Bool */;
2950 short int var5 /* : Bool */;
2951 val* var_other /* var other: nullable Object */;
2952 short int var7 /* : Bool */;
2953 short int var8 /* : Bool */;
2954 long var9 /* : Int */;
2955 long var10 /* : Int */;
2956 short int var12 /* : Bool */;
2957 int cltype;
2958 int idtype;
2959 const char* var_class_name;
2960 long var13 /* : Int */;
2961 val* var14 /* : Array[MParameter] */;
2962 val* var16 /* : Array[MParameter] */;
2963 val* var_ /* var : Array[MParameter] */;
2964 val* var17 /* : IndexedIterator[nullable Object] */;
2965 val* var_18 /* var : IndexedIterator[MParameter] */;
2966 short int var19 /* : Bool */;
2967 val* var20 /* : nullable Object */;
2968 val* var_p /* var p: MParameter */;
2969 val* var21 /* : MType */;
2970 val* var23 /* : MType */;
2971 long var24 /* : Int */;
2972 long var25 /* : Int */;
2973 short int var27 /* : Bool */;
2974 int cltype28;
2975 int idtype29;
2976 const char* var_class_name30;
2977 long var31 /* : Int */;
2978 var_res = 1l;
2979 {
2980 { /* Inline model#MSignature#return_mtype (self) on <self:MSignature> */
2981 var3 = self->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <self:MSignature> */
2982 var1 = var3;
2983 RET_LABEL2:(void)0;
2984 }
2985 }
2986 var_t = var1;
2987 if (var_t == NULL) {
2988 var4 = 0; /* is null */
2989 } else {
2990 var4 = 1; /* arg is null and recv is not */
2991 }
2992 if (0) {
2993 { /* Inline kernel#Object#!= (var_t,((val*)NULL)) on <var_t:nullable MType> */
2994 var_other = ((val*)NULL);
2995 {
2996 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)>*/
2997 }
2998 var8 = !var7;
2999 var5 = var8;
3000 goto RET_LABEL6;
3001 RET_LABEL6:(void)0;
3002 }
3003 var4 = var5;
3004 }
3005 if (var4){
3006 {
3007 var9 = ((long(*)(val* self))(var_t->class->vft[COLOR_nitc__model__MType__length]))(var_t); /* length on <var_t:nullable MType(MType)>*/
3008 }
3009 {
3010 { /* Inline kernel#Int#+ (var_res,var9) on <var_res:Int> */
3011 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
3012 /* <var9:Int> isa OTHER */
3013 var12 = 1; /* easy <var9:Int> isa OTHER*/
3014 if (unlikely(!var12)) {
3015 var_class_name = type_core__Int.name;
3016 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3017 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3018 fatal_exit(1);
3019 }
3020 var13 = var_res + var9;
3021 var10 = var13;
3022 goto RET_LABEL11;
3023 RET_LABEL11:(void)0;
3024 }
3025 }
3026 var_res = var10;
3027 } else {
3028 }
3029 {
3030 { /* Inline model#MSignature#mparameters (self) on <self:MSignature> */
3031 var16 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
3032 if (unlikely(var16 == NULL)) {
3033 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
3034 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1783);
3035 fatal_exit(1);
3036 }
3037 var14 = var16;
3038 RET_LABEL15:(void)0;
3039 }
3040 }
3041 var_ = var14;
3042 {
3043 var17 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
3044 }
3045 var_18 = var17;
3046 for(;;) {
3047 {
3048 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]>*/
3049 }
3050 if (var19){
3051 } else {
3052 goto BREAK_label;
3053 }
3054 {
3055 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]>*/
3056 }
3057 var_p = var20;
3058 {
3059 { /* Inline model#MParameter#mtype (var_p) on <var_p:MParameter> */
3060 var23 = var_p->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var_p:MParameter> */
3061 if (unlikely(var23 == NULL)) {
3062 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3063 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1900);
3064 fatal_exit(1);
3065 }
3066 var21 = var23;
3067 RET_LABEL22:(void)0;
3068 }
3069 }
3070 {
3071 var24 = ((long(*)(val* self))(var21->class->vft[COLOR_nitc__model__MType__length]))(var21); /* length on <var21:MType>*/
3072 }
3073 {
3074 { /* Inline kernel#Int#+ (var_res,var24) on <var_res:Int> */
3075 /* Covariant cast for argument 0 (i) <var24:Int> isa OTHER */
3076 /* <var24:Int> isa OTHER */
3077 var27 = 1; /* easy <var24:Int> isa OTHER*/
3078 if (unlikely(!var27)) {
3079 var_class_name30 = type_core__Int.name;
3080 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
3081 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3082 fatal_exit(1);
3083 }
3084 var31 = var_res + var24;
3085 var25 = var31;
3086 goto RET_LABEL26;
3087 RET_LABEL26:(void)0;
3088 }
3089 }
3090 var_res = var25;
3091 {
3092 ((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]>*/
3093 }
3094 }
3095 BREAK_label: (void)0;
3096 {
3097 ((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]>*/
3098 }
3099 var = var_res;
3100 goto RET_LABEL;
3101 RET_LABEL:;
3102 return var;
3103 }
3104 /* method model#MSignature#init for (self: MSignature) */
3105 void nitc___nitc__MSignature___core__kernel__Object__init(val* self) {
3106 long var /* : Int */;
3107 long var2 /* : Int */;
3108 long var_vararg_rank /* var vararg_rank: Int */;
3109 long var_i /* var i: Int */;
3110 val* var3 /* : Array[MParameter] */;
3111 val* var5 /* : Array[MParameter] */;
3112 long var6 /* : Int */;
3113 long var8 /* : Int */;
3114 long var_ /* var : Int */;
3115 short int var9 /* : Bool */;
3116 short int var11 /* : Bool */;
3117 int cltype;
3118 int idtype;
3119 const char* var_class_name;
3120 short int var12 /* : Bool */;
3121 val* var13 /* : Array[MParameter] */;
3122 val* var15 /* : Array[MParameter] */;
3123 val* var16 /* : nullable Object */;
3124 val* var_parameter /* var parameter: MParameter */;
3125 short int var17 /* : Bool */;
3126 short int var19 /* : Bool */;
3127 short int var20 /* : Bool */;
3128 short int var22 /* : Bool */;
3129 int cltype23;
3130 int idtype24;
3131 const char* var_class_name25;
3132 short int var26 /* : Bool */;
3133 long var27 /* : Int */;
3134 long var29 /* : Int */;
3135 long var30 /* : Int */;
3136 {
3137 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MSignature___core__kernel__Object__init]))(self); /* init on <self:MSignature>*/
3138 }
3139 {
3140 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
3141 var2 = -1l;
3142 var = var2;
3143 goto RET_LABEL1;
3144 RET_LABEL1:(void)0;
3145 }
3146 }
3147 var_vararg_rank = var;
3148 var_i = 0l;
3149 {
3150 { /* Inline model#MSignature#mparameters (self) on <self:MSignature> */
3151 var5 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
3152 if (unlikely(var5 == NULL)) {
3153 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
3154 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1783);
3155 fatal_exit(1);
3156 }
3157 var3 = var5;
3158 RET_LABEL4:(void)0;
3159 }
3160 }
3161 {
3162 { /* Inline array#AbstractArrayRead#length (var3) on <var3:Array[MParameter]> */
3163 var8 = var3->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var3:Array[MParameter]> */
3164 var6 = var8;
3165 RET_LABEL7:(void)0;
3166 }
3167 }
3168 var_ = var6;
3169 for(;;) {
3170 {
3171 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
3172 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
3173 /* <var_:Int> isa OTHER */
3174 var11 = 1; /* easy <var_:Int> isa OTHER*/
3175 if (unlikely(!var11)) {
3176 var_class_name = type_core__Int.name;
3177 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3178 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3179 fatal_exit(1);
3180 }
3181 var12 = var_i < var_;
3182 var9 = var12;
3183 goto RET_LABEL10;
3184 RET_LABEL10:(void)0;
3185 }
3186 }
3187 if (var9){
3188 } else {
3189 goto BREAK_label;
3190 }
3191 {
3192 { /* Inline model#MSignature#mparameters (self) on <self:MSignature> */
3193 var15 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
3194 if (unlikely(var15 == NULL)) {
3195 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
3196 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1783);
3197 fatal_exit(1);
3198 }
3199 var13 = var15;
3200 RET_LABEL14:(void)0;
3201 }
3202 }
3203 {
3204 var16 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var13, var_i);
3205 }
3206 var_parameter = var16;
3207 {
3208 { /* Inline model#MParameter#is_vararg (var_parameter) on <var_parameter:MParameter> */
3209 var19 = var_parameter->attrs[COLOR_nitc__model__MParameter___is_vararg].s; /* _is_vararg on <var_parameter:MParameter> */
3210 var17 = var19;
3211 RET_LABEL18:(void)0;
3212 }
3213 }
3214 if (var17){
3215 {
3216 { /* Inline kernel#Int#>= (var_vararg_rank,0l) on <var_vararg_rank:Int> */
3217 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3218 /* <0l:Int> isa OTHER */
3219 var22 = 1; /* easy <0l:Int> isa OTHER*/
3220 if (unlikely(!var22)) {
3221 var_class_name25 = type_core__Int.name;
3222 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
3223 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
3224 fatal_exit(1);
3225 }
3226 var26 = var_vararg_rank >= 0l;
3227 var20 = var26;
3228 goto RET_LABEL21;
3229 RET_LABEL21:(void)0;
3230 }
3231 }
3232 if (var20){
3233 {
3234 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
3235 var29 = -1l;
3236 var27 = var29;
3237 goto RET_LABEL28;
3238 RET_LABEL28:(void)0;
3239 }
3240 }
3241 var_vararg_rank = var27;
3242 goto BREAK_label;
3243 } else {
3244 }
3245 var_vararg_rank = var_i;
3246 } else {
3247 }
3248 {
3249 var30 = core___core__Int___Discrete__successor(var_i, 1l);
3250 }
3251 var_i = var30;
3252 }
3253 BREAK_label: (void)0;
3254 {
3255 { /* Inline model#MSignature#vararg_rank= (self,var_vararg_rank) on <self:MSignature> */
3256 self->attrs[COLOR_nitc__model__MSignature___vararg_rank].l = var_vararg_rank; /* _vararg_rank on <self:MSignature> */
3257 RET_LABEL31:(void)0;
3258 }
3259 }
3260 RET_LABEL:;
3261 }
3262 /* method model#MSignature#vararg_rank for (self: MSignature): Int */
3263 long nitc___nitc__MSignature___vararg_rank(val* self) {
3264 long var /* : Int */;
3265 long var1 /* : Int */;
3266 var1 = self->attrs[COLOR_nitc__model__MSignature___vararg_rank].l; /* _vararg_rank on <self:MSignature> */
3267 var = var1;
3268 RET_LABEL:;
3269 return var;
3270 }
3271 /* method model#MSignature#vararg_rank= for (self: MSignature, Int) */
3272 void nitc___nitc__MSignature___vararg_rank_61d(val* self, long p0) {
3273 self->attrs[COLOR_nitc__model__MSignature___vararg_rank].l = p0; /* _vararg_rank on <self:MSignature> */
3274 RET_LABEL:;
3275 }
3276 /* method model#MSignature#arity for (self: MSignature): Int */
3277 long nitc___nitc__MSignature___arity(val* self) {
3278 long var /* : Int */;
3279 val* var1 /* : Array[MParameter] */;
3280 val* var3 /* : Array[MParameter] */;
3281 long var4 /* : Int */;
3282 long var6 /* : Int */;
3283 {
3284 { /* Inline model#MSignature#mparameters (self) on <self:MSignature> */
3285 var3 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
3286 if (unlikely(var3 == NULL)) {
3287 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
3288 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1783);
3289 fatal_exit(1);
3290 }
3291 var1 = var3;
3292 RET_LABEL2:(void)0;
3293 }
3294 }
3295 {
3296 { /* Inline array#AbstractArrayRead#length (var1) on <var1:Array[MParameter]> */
3297 var6 = var1->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var1:Array[MParameter]> */
3298 var4 = var6;
3299 RET_LABEL5:(void)0;
3300 }
3301 }
3302 var = var4;
3303 goto RET_LABEL;
3304 RET_LABEL:;
3305 return var;
3306 }
3307 /* method model#MSignature#to_s for (self: MSignature): String */
3308 val* nitc___nitc__MSignature___core__abstract_text__Object__to_s(val* self) {
3309 val* var /* : String */;
3310 val* var1 /* : FlatBuffer */;
3311 val* var_b /* var b: FlatBuffer */;
3312 val* var3 /* : Array[MParameter] */;
3313 val* var5 /* : Array[MParameter] */;
3314 short int var6 /* : Bool */;
3315 short int var7 /* : Bool */;
3316 static val* varonce;
3317 val* var8 /* : String */;
3318 char* var9 /* : NativeString */;
3319 val* var10 /* : String */;
3320 long var_i /* var i: Int */;
3321 val* var11 /* : Array[MParameter] */;
3322 val* var13 /* : Array[MParameter] */;
3323 long var14 /* : Int */;
3324 long var16 /* : Int */;
3325 long var_ /* var : Int */;
3326 short int var17 /* : Bool */;
3327 short int var19 /* : Bool */;
3328 int cltype;
3329 int idtype;
3330 const char* var_class_name;
3331 short int var20 /* : Bool */;
3332 val* var21 /* : Array[MParameter] */;
3333 val* var23 /* : Array[MParameter] */;
3334 val* var24 /* : nullable Object */;
3335 val* var_mparameter /* var mparameter: MParameter */;
3336 short int var25 /* : Bool */;
3337 short int var27 /* : Bool */;
3338 int cltype28;
3339 int idtype29;
3340 const char* var_class_name30;
3341 short int var31 /* : Bool */;
3342 static val* varonce32;
3343 val* var33 /* : String */;
3344 char* var34 /* : NativeString */;
3345 val* var35 /* : String */;
3346 val* var36 /* : String */;
3347 val* var38 /* : String */;
3348 static val* varonce39;
3349 val* var40 /* : String */;
3350 char* var41 /* : NativeString */;
3351 val* var42 /* : String */;
3352 val* var43 /* : MType */;
3353 val* var45 /* : MType */;
3354 val* var46 /* : String */;
3355 short int var47 /* : Bool */;
3356 short int var49 /* : Bool */;
3357 static val* varonce50;
3358 val* var51 /* : String */;
3359 char* var52 /* : NativeString */;
3360 val* var53 /* : String */;
3361 long var54 /* : Int */;
3362 static val* varonce55;
3363 val* var56 /* : String */;
3364 char* var57 /* : NativeString */;
3365 val* var58 /* : String */;
3366 val* var59 /* : nullable MType */;
3367 val* var61 /* : nullable MType */;
3368 val* var_ret /* var ret: nullable MType */;
3369 short int var62 /* : Bool */;
3370 short int var63 /* : Bool */;
3371 val* var_other /* var other: nullable Object */;
3372 short int var65 /* : Bool */;
3373 short int var66 /* : Bool */;
3374 static val* varonce67;
3375 val* var68 /* : String */;
3376 char* var69 /* : NativeString */;
3377 val* var70 /* : String */;
3378 val* var71 /* : String */;
3379 val* var72 /* : String */;
3380 var1 = NEW_core__FlatBuffer(&type_core__FlatBuffer);
3381 {
3382 { /* Inline flat#FlatBuffer#init (var1) on <var1:FlatBuffer> */
3383 {
3384 ((void(*)(val* self))(var1->class->vft[COLOR_core___core__FlatBuffer___core__kernel__Object__init]))(var1); /* init on <var1:FlatBuffer>*/
3385 }
3386 RET_LABEL2:(void)0;
3387 }
3388 }
3389 var_b = var1;
3390 {
3391 { /* Inline model#MSignature#mparameters (self) on <self:MSignature> */
3392 var5 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
3393 if (unlikely(var5 == NULL)) {
3394 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
3395 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1783);
3396 fatal_exit(1);
3397 }
3398 var3 = var5;
3399 RET_LABEL4:(void)0;
3400 }
3401 }
3402 {
3403 var6 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var3);
3404 }
3405 var7 = !var6;
3406 if (var7){
3407 if (likely(varonce!=NULL)) {
3408 var8 = varonce;
3409 } else {
3410 var9 = "(";
3411 var10 = core__flat___NativeString___to_s_full(var9, 1l, 1l);
3412 var8 = var10;
3413 varonce = var8;
3414 }
3415 {
3416 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_b, var8); /* Direct call flat#FlatBuffer#append on <var_b:FlatBuffer>*/
3417 }
3418 var_i = 0l;
3419 {
3420 { /* Inline model#MSignature#mparameters (self) on <self:MSignature> */
3421 var13 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
3422 if (unlikely(var13 == NULL)) {
3423 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
3424 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1783);
3425 fatal_exit(1);
3426 }
3427 var11 = var13;
3428 RET_LABEL12:(void)0;
3429 }
3430 }
3431 {
3432 { /* Inline array#AbstractArrayRead#length (var11) on <var11:Array[MParameter]> */
3433 var16 = var11->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var11:Array[MParameter]> */
3434 var14 = var16;
3435 RET_LABEL15:(void)0;
3436 }
3437 }
3438 var_ = var14;
3439 for(;;) {
3440 {
3441 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
3442 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
3443 /* <var_:Int> isa OTHER */
3444 var19 = 1; /* easy <var_:Int> isa OTHER*/
3445 if (unlikely(!var19)) {
3446 var_class_name = type_core__Int.name;
3447 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3448 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3449 fatal_exit(1);
3450 }
3451 var20 = var_i < var_;
3452 var17 = var20;
3453 goto RET_LABEL18;
3454 RET_LABEL18:(void)0;
3455 }
3456 }
3457 if (var17){
3458 } else {
3459 goto BREAK_label;
3460 }
3461 {
3462 { /* Inline model#MSignature#mparameters (self) on <self:MSignature> */
3463 var23 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
3464 if (unlikely(var23 == NULL)) {
3465 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
3466 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1783);
3467 fatal_exit(1);
3468 }
3469 var21 = var23;
3470 RET_LABEL22:(void)0;
3471 }
3472 }
3473 {
3474 var24 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var21, var_i);
3475 }
3476 var_mparameter = var24;
3477 {
3478 { /* Inline kernel#Int#> (var_i,0l) on <var_i:Int> */
3479 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3480 /* <0l:Int> isa OTHER */
3481 var27 = 1; /* easy <0l:Int> isa OTHER*/
3482 if (unlikely(!var27)) {
3483 var_class_name30 = type_core__Int.name;
3484 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
3485 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
3486 fatal_exit(1);
3487 }
3488 var31 = var_i > 0l;
3489 var25 = var31;
3490 goto RET_LABEL26;
3491 RET_LABEL26:(void)0;
3492 }
3493 }
3494 if (var25){
3495 if (likely(varonce32!=NULL)) {
3496 var33 = varonce32;
3497 } else {
3498 var34 = ", ";
3499 var35 = core__flat___NativeString___to_s_full(var34, 2l, 2l);
3500 var33 = var35;
3501 varonce32 = var33;
3502 }
3503 {
3504 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_b, var33); /* Direct call flat#FlatBuffer#append on <var_b:FlatBuffer>*/
3505 }
3506 } else {
3507 }
3508 {
3509 { /* Inline model#MParameter#name (var_mparameter) on <var_mparameter:MParameter> */
3510 var38 = var_mparameter->attrs[COLOR_nitc__model__MParameter___name].val; /* _name on <var_mparameter:MParameter> */
3511 if (unlikely(var38 == NULL)) {
3512 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3513 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1897);
3514 fatal_exit(1);
3515 }
3516 var36 = var38;
3517 RET_LABEL37:(void)0;
3518 }
3519 }
3520 {
3521 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_b, var36); /* Direct call flat#FlatBuffer#append on <var_b:FlatBuffer>*/
3522 }
3523 if (likely(varonce39!=NULL)) {
3524 var40 = varonce39;
3525 } else {
3526 var41 = ": ";
3527 var42 = core__flat___NativeString___to_s_full(var41, 2l, 2l);
3528 var40 = var42;
3529 varonce39 = var40;
3530 }
3531 {
3532 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_b, var40); /* Direct call flat#FlatBuffer#append on <var_b:FlatBuffer>*/
3533 }
3534 {
3535 { /* Inline model#MParameter#mtype (var_mparameter) on <var_mparameter:MParameter> */
3536 var45 = var_mparameter->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var_mparameter:MParameter> */
3537 if (unlikely(var45 == NULL)) {
3538 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3539 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1900);
3540 fatal_exit(1);
3541 }
3542 var43 = var45;
3543 RET_LABEL44:(void)0;
3544 }
3545 }
3546 {
3547 var46 = ((val*(*)(val* self))(var43->class->vft[COLOR_core__abstract_text__Object__to_s]))(var43); /* to_s on <var43:MType>*/
3548 }
3549 {
3550 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_b, var46); /* Direct call flat#FlatBuffer#append on <var_b:FlatBuffer>*/
3551 }
3552 {
3553 { /* Inline model#MParameter#is_vararg (var_mparameter) on <var_mparameter:MParameter> */
3554 var49 = var_mparameter->attrs[COLOR_nitc__model__MParameter___is_vararg].s; /* _is_vararg on <var_mparameter:MParameter> */
3555 var47 = var49;
3556 RET_LABEL48:(void)0;
3557 }
3558 }
3559 if (var47){
3560 if (likely(varonce50!=NULL)) {
3561 var51 = varonce50;
3562 } else {
3563 var52 = "...";
3564 var53 = core__flat___NativeString___to_s_full(var52, 3l, 3l);
3565 var51 = var53;
3566 varonce50 = var51;
3567 }
3568 {
3569 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_b, var51); /* Direct call flat#FlatBuffer#append on <var_b:FlatBuffer>*/
3570 }
3571 } else {
3572 }
3573 {
3574 var54 = core___core__Int___Discrete__successor(var_i, 1l);
3575 }
3576 var_i = var54;
3577 }
3578 BREAK_label: (void)0;
3579 if (likely(varonce55!=NULL)) {
3580 var56 = varonce55;
3581 } else {
3582 var57 = ")";
3583 var58 = core__flat___NativeString___to_s_full(var57, 1l, 1l);
3584 var56 = var58;
3585 varonce55 = var56;
3586 }
3587 {
3588 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_b, var56); /* Direct call flat#FlatBuffer#append on <var_b:FlatBuffer>*/
3589 }
3590 } else {
3591 }
3592 {
3593 { /* Inline model#MSignature#return_mtype (self) on <self:MSignature> */
3594 var61 = self->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <self:MSignature> */
3595 var59 = var61;
3596 RET_LABEL60:(void)0;
3597 }
3598 }
3599 var_ret = var59;
3600 if (var_ret == NULL) {
3601 var62 = 0; /* is null */
3602 } else {
3603 var62 = 1; /* arg is null and recv is not */
3604 }
3605 if (0) {
3606 { /* Inline kernel#Object#!= (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
3607 var_other = ((val*)NULL);
3608 {
3609 var65 = ((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)>*/
3610 }
3611 var66 = !var65;
3612 var63 = var66;
3613 goto RET_LABEL64;
3614 RET_LABEL64:(void)0;
3615 }
3616 var62 = var63;
3617 }
3618 if (var62){
3619 if (likely(varonce67!=NULL)) {
3620 var68 = varonce67;
3621 } else {
3622 var69 = ": ";
3623 var70 = core__flat___NativeString___to_s_full(var69, 2l, 2l);
3624 var68 = var70;
3625 varonce67 = var68;
3626 }
3627 {
3628 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_b, var68); /* Direct call flat#FlatBuffer#append on <var_b:FlatBuffer>*/
3629 }
3630 {
3631 var71 = ((val*(*)(val* self))(var_ret->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ret); /* to_s on <var_ret:nullable MType(MType)>*/
3632 }
3633 {
3634 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_b, var71); /* Direct call flat#FlatBuffer#append on <var_b:FlatBuffer>*/
3635 }
3636 } else {
3637 }
3638 {
3639 var72 = core___core__FlatBuffer___core__abstract_text__Object__to_s(var_b);
3640 }
3641 var = var72;
3642 goto RET_LABEL;
3643 RET_LABEL:;
3644 return var;
3645 }
3646 /* method model#MSignature#resolve_for for (self: MSignature, MType, nullable MClassType, MModule, Bool): MSignature */
3647 val* nitc___nitc__MSignature___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
3648 val* var /* : MSignature */;
3649 val* var_mtype /* var mtype: MType */;
3650 val* var_anchor /* var anchor: nullable MClassType */;
3651 val* var_mmodule /* var mmodule: MModule */;
3652 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
3653 val* var1 /* : Array[MParameter] */;
3654 val* var_params /* var params: Array[MParameter] */;
3655 val* var2 /* : Array[MParameter] */;
3656 val* var4 /* : Array[MParameter] */;
3657 val* var_ /* var : Array[MParameter] */;
3658 val* var5 /* : IndexedIterator[nullable Object] */;
3659 val* var_6 /* var : IndexedIterator[MParameter] */;
3660 short int var7 /* : Bool */;
3661 val* var8 /* : nullable Object */;
3662 val* var_p /* var p: MParameter */;
3663 val* var9 /* : MParameter */;
3664 val* var10 /* : nullable MType */;
3665 val* var12 /* : nullable MType */;
3666 val* var_ret /* var ret: nullable MType */;
3667 short int var13 /* : Bool */;
3668 short int var14 /* : Bool */;
3669 val* var_other /* var other: nullable Object */;
3670 short int var16 /* : Bool */;
3671 short int var17 /* : Bool */;
3672 val* var18 /* : MType */;
3673 val* var19 /* : MSignature */;
3674 val* var_res /* var res: MSignature */;
3675 var_mtype = p0;
3676 var_anchor = p1;
3677 var_mmodule = p2;
3678 var_cleanup_virtual = p3;
3679 var1 = NEW_core__Array(&type_core__Array__nitc__MParameter);
3680 {
3681 core___core__Array___core__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[MParameter]>*/
3682 }
3683 var_params = var1;
3684 {
3685 { /* Inline model#MSignature#mparameters (self) on <self:MSignature> */
3686 var4 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
3687 if (unlikely(var4 == NULL)) {
3688 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
3689 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1783);
3690 fatal_exit(1);
3691 }
3692 var2 = var4;
3693 RET_LABEL3:(void)0;
3694 }
3695 }
3696 var_ = var2;
3697 {
3698 var5 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
3699 }
3700 var_6 = var5;
3701 for(;;) {
3702 {
3703 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]>*/
3704 }
3705 if (var7){
3706 } else {
3707 goto BREAK_label;
3708 }
3709 {
3710 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]>*/
3711 }
3712 var_p = var8;
3713 {
3714 var9 = nitc___nitc__MParameter___resolve_for(var_p, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual);
3715 }
3716 {
3717 core___core__Array___core__abstract_collection__SimpleCollection__add(var_params, var9); /* Direct call array#Array#add on <var_params:Array[MParameter]>*/
3718 }
3719 {
3720 ((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]>*/
3721 }
3722 }
3723 BREAK_label: (void)0;
3724 {
3725 ((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]>*/
3726 }
3727 {
3728 { /* Inline model#MSignature#return_mtype (self) on <self:MSignature> */
3729 var12 = self->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <self:MSignature> */
3730 var10 = var12;
3731 RET_LABEL11:(void)0;
3732 }
3733 }
3734 var_ret = var10;
3735 if (var_ret == NULL) {
3736 var13 = 0; /* is null */
3737 } else {
3738 var13 = 1; /* arg is null and recv is not */
3739 }
3740 if (0) {
3741 { /* Inline kernel#Object#!= (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
3742 var_other = ((val*)NULL);
3743 {
3744 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)>*/
3745 }
3746 var17 = !var16;
3747 var14 = var17;
3748 goto RET_LABEL15;
3749 RET_LABEL15:(void)0;
3750 }
3751 var13 = var14;
3752 }
3753 if (var13){
3754 {
3755 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)>*/
3756 }
3757 var_ret = var18;
3758 } else {
3759 }
3760 var19 = NEW_nitc__MSignature(&type_nitc__MSignature);
3761 {
3762 ((void(*)(val* self, val* p0))(var19->class->vft[COLOR_nitc__model__MSignature__mparameters_61d]))(var19, var_params); /* mparameters= on <var19:MSignature>*/
3763 }
3764 {
3765 ((void(*)(val* self, val* p0))(var19->class->vft[COLOR_nitc__model__MSignature__return_mtype_61d]))(var19, var_ret); /* return_mtype= on <var19:MSignature>*/
3766 }
3767 {
3768 ((void(*)(val* self))(var19->class->vft[COLOR_core__kernel__Object__init]))(var19); /* init on <var19:MSignature>*/
3769 }
3770 var_res = var19;
3771 var = var_res;
3772 goto RET_LABEL;
3773 RET_LABEL:;
3774 return var;
3775 }
3776 /* method model#MParameter#name for (self: MParameter): String */
3777 val* nitc___nitc__MParameter___nitc__model_base__MEntity__name(val* self) {
3778 val* var /* : String */;
3779 val* var1 /* : String */;
3780 var1 = self->attrs[COLOR_nitc__model__MParameter___name].val; /* _name on <self:MParameter> */
3781 if (unlikely(var1 == NULL)) {
3782 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3783 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1897);
3784 fatal_exit(1);
3785 }
3786 var = var1;
3787 RET_LABEL:;
3788 return var;
3789 }
3790 /* method model#MParameter#name= for (self: MParameter, String) */
3791 void nitc___nitc__MParameter___name_61d(val* self, val* p0) {
3792 self->attrs[COLOR_nitc__model__MParameter___name].val = p0; /* _name on <self:MParameter> */
3793 RET_LABEL:;
3794 }
3795 /* method model#MParameter#mtype for (self: MParameter): MType */
3796 val* nitc___nitc__MParameter___mtype(val* self) {
3797 val* var /* : MType */;
3798 val* var1 /* : MType */;
3799 var1 = self->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <self:MParameter> */
3800 if (unlikely(var1 == NULL)) {
3801 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3802 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1900);
3803 fatal_exit(1);
3804 }
3805 var = var1;
3806 RET_LABEL:;
3807 return var;
3808 }
3809 /* method model#MParameter#mtype= for (self: MParameter, MType) */
3810 void nitc___nitc__MParameter___mtype_61d(val* self, val* p0) {
3811 self->attrs[COLOR_nitc__model__MParameter___mtype].val = p0; /* _mtype on <self:MParameter> */
3812 RET_LABEL:;
3813 }
3814 /* method model#MParameter#is_vararg for (self: MParameter): Bool */
3815 short int nitc___nitc__MParameter___is_vararg(val* self) {
3816 short int var /* : Bool */;
3817 short int var1 /* : Bool */;
3818 var1 = self->attrs[COLOR_nitc__model__MParameter___is_vararg].s; /* _is_vararg on <self:MParameter> */
3819 var = var1;
3820 RET_LABEL:;
3821 return var;
3822 }
3823 /* method model#MParameter#is_vararg= for (self: MParameter, Bool) */
3824 void nitc___nitc__MParameter___is_vararg_61d(val* self, short int p0) {
3825 self->attrs[COLOR_nitc__model__MParameter___is_vararg].s = p0; /* _is_vararg on <self:MParameter> */
3826 RET_LABEL:;
3827 }
3828 /* method model#MParameter#to_s for (self: MParameter): String */
3829 val* nitc___nitc__MParameter___core__abstract_text__Object__to_s(val* self) {
3830 val* var /* : String */;
3831 short int var1 /* : Bool */;
3832 short int var3 /* : Bool */;
3833 val* var4 /* : NativeArray[String] */;
3834 static val* varonce;
3835 static val* varonce5;
3836 val* var6 /* : String */;
3837 char* var7 /* : NativeString */;
3838 val* var8 /* : String */;
3839 static val* varonce9;
3840 val* var10 /* : String */;
3841 char* var11 /* : NativeString */;
3842 val* var12 /* : String */;
3843 val* var13 /* : String */;
3844 val* var15 /* : String */;
3845 val* var16 /* : MType */;
3846 val* var18 /* : MType */;
3847 val* var19 /* : String */;
3848 val* var20 /* : String */;
3849 val* var22 /* : NativeArray[String] */;
3850 static val* varonce21;
3851 static val* varonce23;
3852 val* var24 /* : String */;
3853 char* var25 /* : NativeString */;
3854 val* var26 /* : String */;
3855 val* var27 /* : String */;
3856 val* var29 /* : String */;
3857 val* var30 /* : MType */;
3858 val* var32 /* : MType */;
3859 val* var33 /* : String */;
3860 val* var34 /* : String */;
3861 {
3862 { /* Inline model#MParameter#is_vararg (self) on <self:MParameter> */
3863 var3 = self->attrs[COLOR_nitc__model__MParameter___is_vararg].s; /* _is_vararg on <self:MParameter> */
3864 var1 = var3;
3865 RET_LABEL2:(void)0;
3866 }
3867 }
3868 if (var1){
3869 if (unlikely(varonce==NULL)) {
3870 var4 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
3871 if (likely(varonce5!=NULL)) {
3872 var6 = varonce5;
3873 } else {
3874 var7 = ": ";
3875 var8 = core__flat___NativeString___to_s_full(var7, 2l, 2l);
3876 var6 = var8;
3877 varonce5 = var6;
3878 }
3879 ((struct instance_core__NativeArray*)var4)->values[1]=var6;
3880 if (likely(varonce9!=NULL)) {
3881 var10 = varonce9;
3882 } else {
3883 var11 = "...";
3884 var12 = core__flat___NativeString___to_s_full(var11, 3l, 3l);
3885 var10 = var12;
3886 varonce9 = var10;
3887 }
3888 ((struct instance_core__NativeArray*)var4)->values[3]=var10;
3889 } else {
3890 var4 = varonce;
3891 varonce = NULL;
3892 }
3893 {
3894 { /* Inline model#MParameter#name (self) on <self:MParameter> */
3895 var15 = self->attrs[COLOR_nitc__model__MParameter___name].val; /* _name on <self:MParameter> */
3896 if (unlikely(var15 == NULL)) {
3897 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3898 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1897);
3899 fatal_exit(1);
3900 }
3901 var13 = var15;
3902 RET_LABEL14:(void)0;
3903 }
3904 }
3905 ((struct instance_core__NativeArray*)var4)->values[0]=var13;
3906 {
3907 { /* Inline model#MParameter#mtype (self) on <self:MParameter> */
3908 var18 = self->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <self:MParameter> */
3909 if (unlikely(var18 == NULL)) {
3910 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3911 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1900);
3912 fatal_exit(1);
3913 }
3914 var16 = var18;
3915 RET_LABEL17:(void)0;
3916 }
3917 }
3918 {
3919 var19 = ((val*(*)(val* self))(var16->class->vft[COLOR_core__abstract_text__Object__to_s]))(var16); /* to_s on <var16:MType>*/
3920 }
3921 ((struct instance_core__NativeArray*)var4)->values[2]=var19;
3922 {
3923 var20 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var4); /* native_to_s on <var4:NativeArray[String]>*/
3924 }
3925 varonce = var4;
3926 var = var20;
3927 goto RET_LABEL;
3928 } else {
3929 if (unlikely(varonce21==NULL)) {
3930 var22 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
3931 if (likely(varonce23!=NULL)) {
3932 var24 = varonce23;
3933 } else {
3934 var25 = ": ";
3935 var26 = core__flat___NativeString___to_s_full(var25, 2l, 2l);
3936 var24 = var26;
3937 varonce23 = var24;
3938 }
3939 ((struct instance_core__NativeArray*)var22)->values[1]=var24;
3940 } else {
3941 var22 = varonce21;
3942 varonce21 = NULL;
3943 }
3944 {
3945 { /* Inline model#MParameter#name (self) on <self:MParameter> */
3946 var29 = self->attrs[COLOR_nitc__model__MParameter___name].val; /* _name on <self:MParameter> */
3947 if (unlikely(var29 == NULL)) {
3948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3949 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1897);
3950 fatal_exit(1);
3951 }
3952 var27 = var29;
3953 RET_LABEL28:(void)0;
3954 }
3955 }
3956 ((struct instance_core__NativeArray*)var22)->values[0]=var27;
3957 {
3958 { /* Inline model#MParameter#mtype (self) on <self:MParameter> */
3959 var32 = self->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <self:MParameter> */
3960 if (unlikely(var32 == NULL)) {
3961 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3962 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1900);
3963 fatal_exit(1);
3964 }
3965 var30 = var32;
3966 RET_LABEL31:(void)0;
3967 }
3968 }
3969 {
3970 var33 = ((val*(*)(val* self))(var30->class->vft[COLOR_core__abstract_text__Object__to_s]))(var30); /* to_s on <var30:MType>*/
3971 }
3972 ((struct instance_core__NativeArray*)var22)->values[2]=var33;
3973 {
3974 var34 = ((val*(*)(val* self))(var22->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var22); /* native_to_s on <var22:NativeArray[String]>*/
3975 }
3976 varonce21 = var22;
3977 var = var34;
3978 goto RET_LABEL;
3979 }
3980 RET_LABEL:;
3981 return var;
3982 }
3983 /* method model#MParameter#resolve_for for (self: MParameter, MType, nullable MClassType, MModule, Bool): MParameter */
3984 val* nitc___nitc__MParameter___resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
3985 val* var /* : MParameter */;
3986 val* var_mtype /* var mtype: MType */;
3987 val* var_anchor /* var anchor: nullable MClassType */;
3988 val* var_mmodule /* var mmodule: MModule */;
3989 short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
3990 val* var1 /* : MType */;
3991 val* var3 /* : MType */;
3992 short int var4 /* : Bool */;
3993 short int var5 /* : Bool */;
3994 val* var6 /* : MType */;
3995 val* var8 /* : MType */;
3996 val* var9 /* : MType */;
3997 val* var_newtype /* var newtype: MType */;
3998 val* var10 /* : MParameter */;
3999 val* var11 /* : String */;
4000 val* var13 /* : String */;
4001 short int var14 /* : Bool */;
4002 short int var16 /* : Bool */;
4003 val* var_res /* var res: MParameter */;
4004 var_mtype = p0;
4005 var_anchor = p1;
4006 var_mmodule = p2;
4007 var_cleanup_virtual = p3;
4008 {
4009 { /* Inline model#MParameter#mtype (self) on <self:MParameter> */
4010 var3 = self->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <self:MParameter> */
4011 if (unlikely(var3 == NULL)) {
4012 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4013 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1900);
4014 fatal_exit(1);
4015 }
4016 var1 = var3;
4017 RET_LABEL2:(void)0;
4018 }
4019 }
4020 {
4021 var4 = ((short int(*)(val* self))(var1->class->vft[COLOR_nitc__model__MType__need_anchor]))(var1); /* need_anchor on <var1:MType>*/
4022 }
4023 var5 = !var4;
4024 if (var5){
4025 var = self;
4026 goto RET_LABEL;
4027 } else {
4028 }
4029 {
4030 { /* Inline model#MParameter#mtype (self) on <self:MParameter> */
4031 var8 = self->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <self:MParameter> */
4032 if (unlikely(var8 == NULL)) {
4033 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4034 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1900);
4035 fatal_exit(1);
4036 }
4037 var6 = var8;
4038 RET_LABEL7:(void)0;
4039 }
4040 }
4041 {
4042 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>*/
4043 }
4044 var_newtype = var9;
4045 var10 = NEW_nitc__MParameter(&type_nitc__MParameter);
4046 {
4047 { /* Inline model#MParameter#name (self) on <self:MParameter> */
4048 var13 = self->attrs[COLOR_nitc__model__MParameter___name].val; /* _name on <self:MParameter> */
4049 if (unlikely(var13 == NULL)) {
4050 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4051 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1897);
4052 fatal_exit(1);
4053 }
4054 var11 = var13;
4055 RET_LABEL12:(void)0;
4056 }
4057 }
4058 {
4059 { /* Inline model#MParameter#is_vararg (self) on <self:MParameter> */
4060 var16 = self->attrs[COLOR_nitc__model__MParameter___is_vararg].s; /* _is_vararg on <self:MParameter> */
4061 var14 = var16;
4062 RET_LABEL15:(void)0;
4063 }
4064 }
4065 {
4066 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__model__MParameter__name_61d]))(var10, var11); /* name= on <var10:MParameter>*/
4067 }
4068 {
4069 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__model__MParameter__mtype_61d]))(var10, var_newtype); /* mtype= on <var10:MParameter>*/
4070 }
4071 {
4072 ((void(*)(val* self, short int p0))(var10->class->vft[COLOR_nitc__model__MParameter__is_vararg_61d]))(var10, var14); /* is_vararg= on <var10:MParameter>*/
4073 }
4074 {
4075 ((void(*)(val* self))(var10->class->vft[COLOR_core__kernel__Object__init]))(var10); /* init on <var10:MParameter>*/
4076 }
4077 var_res = var10;
4078 var = var_res;
4079 goto RET_LABEL;
4080 RET_LABEL:;
4081 return var;
4082 }
4083 /* method model#MParameter#model for (self: MParameter): Model */
4084 val* nitc___nitc__MParameter___nitc__model_base__MEntity__model(val* self) {
4085 val* var /* : Model */;
4086 val* var1 /* : MType */;
4087 val* var3 /* : MType */;
4088 val* var4 /* : Model */;
4089 {
4090 { /* Inline model#MParameter#mtype (self) on <self:MParameter> */
4091 var3 = self->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <self:MParameter> */
4092 if (unlikely(var3 == NULL)) {
4093 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4094 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1900);
4095 fatal_exit(1);
4096 }
4097 var1 = var3;
4098 RET_LABEL2:(void)0;
4099 }
4100 }
4101 {
4102 var4 = ((val*(*)(val* self))(var1->class->vft[COLOR_nitc__model_base__MEntity__model]))(var1); /* model on <var1:MType>*/
4103 }
4104 var = var4;
4105 goto RET_LABEL;
4106 RET_LABEL:;
4107 return var;
4108 }
4109 /* method model#MParameter#init for (self: MParameter) */
4110 void nitc___nitc__MParameter___core__kernel__Object__init(val* self) {
4111 {
4112 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MParameter___core__kernel__Object__init]))(self); /* init on <self:MParameter>*/
4113 }
4114 RET_LABEL:;
4115 }
4116 /* method model#MProperty#intro_mclassdef for (self: MProperty): MClassDef */
4117 val* nitc___nitc__MProperty___intro_mclassdef(val* self) {
4118 val* var /* : MClassDef */;
4119 val* var1 /* : MClassDef */;
4120 var1 = self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
4121 if (unlikely(var1 == NULL)) {
4122 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
4123 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
4124 fatal_exit(1);
4125 }
4126 var = var1;
4127 RET_LABEL:;
4128 return var;
4129 }
4130 /* method model#MProperty#intro_mclassdef= for (self: MProperty, MClassDef) */
4131 void nitc___nitc__MProperty___intro_mclassdef_61d(val* self, val* p0) {
4132 self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val = p0; /* _intro_mclassdef on <self:MProperty> */
4133 RET_LABEL:;
4134 }
4135 /* method model#MProperty#name for (self: MProperty): String */
4136 val* nitc___nitc__MProperty___nitc__model_base__MEntity__name(val* self) {
4137 val* var /* : String */;
4138 val* var1 /* : String */;
4139 var1 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MProperty> */
4140 if (unlikely(var1 == NULL)) {
4141 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4142 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1951);
4143 fatal_exit(1);
4144 }
4145 var = var1;
4146 RET_LABEL:;
4147 return var;
4148 }
4149 /* method model#MProperty#name= for (self: MProperty, String) */
4150 void nitc___nitc__MProperty___name_61d(val* self, val* p0) {
4151 self->attrs[COLOR_nitc__model__MProperty___name].val = p0; /* _name on <self:MProperty> */
4152 RET_LABEL:;
4153 }
4154 /* method model#MProperty#full_name for (self: MProperty): String */
4155 val* nitc___nitc__MProperty___nitc__model_base__MEntity__full_name(val* self) {
4156 val* var /* : String */;
4157 short int var1 /* : Bool */;
4158 val* var2 /* : String */;
4159 val* var3 /* : String */;
4160 val* var5 /* : NativeArray[String] */;
4161 static val* varonce;
4162 static val* varonce6;
4163 val* var7 /* : String */;
4164 char* var8 /* : NativeString */;
4165 val* var9 /* : String */;
4166 static val* varonce10;
4167 val* var11 /* : String */;
4168 char* var12 /* : NativeString */;
4169 val* var13 /* : String */;
4170 val* var14 /* : MClassDef */;
4171 val* var16 /* : MClassDef */;
4172 val* var17 /* : MModule */;
4173 val* var19 /* : MModule */;
4174 val* var20 /* : MVisibility */;
4175 val* var22 /* : MVisibility */;
4176 val* var23 /* : String */;
4177 val* var24 /* : MClassDef */;
4178 val* var26 /* : MClassDef */;
4179 val* var27 /* : MClass */;
4180 val* var29 /* : MClass */;
4181 val* var30 /* : String */;
4182 val* var32 /* : String */;
4183 val* var33 /* : String */;
4184 val* var35 /* : String */;
4185 val* var36 /* : String */;
4186 var1 = self->attrs[COLOR_nitc__model__MProperty___full_name].val != NULL; /* _full_name on <self:MProperty> */
4187 if(likely(var1)) {
4188 var2 = self->attrs[COLOR_nitc__model__MProperty___full_name].val; /* _full_name on <self:MProperty> */
4189 if (unlikely(var2 == NULL)) {
4190 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_name");
4191 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1954);
4192 fatal_exit(1);
4193 }
4194 } else {
4195 {
4196 if (unlikely(varonce==NULL)) {
4197 var5 = NEW_core__NativeArray(5l, &type_core__NativeArray__core__String);
4198 if (likely(varonce6!=NULL)) {
4199 var7 = varonce6;
4200 } else {
4201 var8 = "::";
4202 var9 = core__flat___NativeString___to_s_full(var8, 2l, 2l);
4203 var7 = var9;
4204 varonce6 = var7;
4205 }
4206 ((struct instance_core__NativeArray*)var5)->values[1]=var7;
4207 if (likely(varonce10!=NULL)) {
4208 var11 = varonce10;
4209 } else {
4210 var12 = "::";
4211 var13 = core__flat___NativeString___to_s_full(var12, 2l, 2l);
4212 var11 = var13;
4213 varonce10 = var11;
4214 }
4215 ((struct instance_core__NativeArray*)var5)->values[3]=var11;
4216 } else {
4217 var5 = varonce;
4218 varonce = NULL;
4219 }
4220 {
4221 { /* Inline model#MProperty#intro_mclassdef (self) on <self:MProperty> */
4222 var16 = self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
4223 if (unlikely(var16 == NULL)) {
4224 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
4225 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
4226 fatal_exit(1);
4227 }
4228 var14 = var16;
4229 RET_LABEL15:(void)0;
4230 }
4231 }
4232 {
4233 { /* Inline model#MClassDef#mmodule (var14) on <var14:MClassDef> */
4234 var19 = var14->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var14:MClassDef> */
4235 if (unlikely(var19 == NULL)) {
4236 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4237 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
4238 fatal_exit(1);
4239 }
4240 var17 = var19;
4241 RET_LABEL18:(void)0;
4242 }
4243 }
4244 {
4245 { /* Inline model#MProperty#visibility (self) on <self:MProperty> */
4246 var22 = self->attrs[COLOR_nitc__model__MProperty___visibility].val; /* _visibility on <self:MProperty> */
4247 if (unlikely(var22 == NULL)) {
4248 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
4249 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1967);
4250 fatal_exit(1);
4251 }
4252 var20 = var22;
4253 RET_LABEL21:(void)0;
4254 }
4255 }
4256 {
4257 var23 = nitc___nitc__MModule___namespace_for(var17, var20);
4258 }
4259 ((struct instance_core__NativeArray*)var5)->values[0]=var23;
4260 {
4261 { /* Inline model#MProperty#intro_mclassdef (self) on <self:MProperty> */
4262 var26 = self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
4263 if (unlikely(var26 == NULL)) {
4264 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
4265 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
4266 fatal_exit(1);
4267 }
4268 var24 = var26;
4269 RET_LABEL25:(void)0;
4270 }
4271 }
4272 {
4273 { /* Inline model#MClassDef#mclass (var24) on <var24:MClassDef> */
4274 var29 = var24->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var24:MClassDef> */
4275 if (unlikely(var29 == NULL)) {
4276 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4277 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
4278 fatal_exit(1);
4279 }
4280 var27 = var29;
4281 RET_LABEL28:(void)0;
4282 }
4283 }
4284 {
4285 { /* Inline model#MClass#name (var27) on <var27:MClass> */
4286 var32 = var27->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var27:MClass> */
4287 if (unlikely(var32 == NULL)) {
4288 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4289 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 385);
4290 fatal_exit(1);
4291 }
4292 var30 = var32;
4293 RET_LABEL31:(void)0;
4294 }
4295 }
4296 ((struct instance_core__NativeArray*)var5)->values[2]=var30;
4297 {
4298 { /* Inline model#MProperty#name (self) on <self:MProperty> */
4299 var35 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MProperty> */
4300 if (unlikely(var35 == NULL)) {
4301 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4302 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1951);
4303 fatal_exit(1);
4304 }
4305 var33 = var35;
4306 RET_LABEL34:(void)0;
4307 }
4308 }
4309 ((struct instance_core__NativeArray*)var5)->values[4]=var33;
4310 {
4311 var36 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var5); /* native_to_s on <var5:NativeArray[String]>*/
4312 }
4313 varonce = var5;
4314 var3 = var36;
4315 goto RET_LABEL4;
4316 RET_LABEL4:(void)0;
4317 }
4318 self->attrs[COLOR_nitc__model__MProperty___full_name].val = var3; /* _full_name on <self:MProperty> */
4319 var2 = var3;
4320 }
4321 var = var2;
4322 RET_LABEL:;
4323 return var;
4324 }
4325 /* method model#MProperty#c_name for (self: MProperty): String */
4326 val* nitc___nitc__MProperty___nitc__model_base__MEntity__c_name(val* self) {
4327 val* var /* : String */;
4328 short int var1 /* : Bool */;
4329 val* var2 /* : String */;
4330 val* var3 /* : String */;
4331 val* var5 /* : NativeArray[String] */;
4332 static val* varonce;
4333 static val* varonce6;
4334 val* var7 /* : String */;
4335 char* var8 /* : NativeString */;
4336 val* var9 /* : String */;
4337 static val* varonce10;
4338 val* var11 /* : String */;
4339 char* var12 /* : NativeString */;
4340 val* var13 /* : String */;
4341 val* var14 /* : MClassDef */;
4342 val* var16 /* : MClassDef */;
4343 val* var17 /* : MModule */;
4344 val* var19 /* : MModule */;
4345 val* var20 /* : String */;
4346 val* var21 /* : MClassDef */;
4347 val* var23 /* : MClassDef */;
4348 val* var24 /* : MClass */;
4349 val* var26 /* : MClass */;
4350 val* var27 /* : String */;
4351 val* var29 /* : String */;
4352 val* var30 /* : String */;
4353 val* var31 /* : String */;
4354 val* var33 /* : String */;
4355 val* var34 /* : String */;
4356 val* var35 /* : String */;
4357 var1 = self->attrs[COLOR_nitc__model__MProperty___c_name].val != NULL; /* _c_name on <self:MProperty> */
4358 if(likely(var1)) {
4359 var2 = self->attrs[COLOR_nitc__model__MProperty___c_name].val; /* _c_name on <self:MProperty> */
4360 if (unlikely(var2 == NULL)) {
4361 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_name");
4362 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1962);
4363 fatal_exit(1);
4364 }
4365 } else {
4366 {
4367 if (unlikely(varonce==NULL)) {
4368 var5 = NEW_core__NativeArray(5l, &type_core__NativeArray__core__String);
4369 if (likely(varonce6!=NULL)) {
4370 var7 = varonce6;
4371 } else {
4372 var8 = "__";
4373 var9 = core__flat___NativeString___to_s_full(var8, 2l, 2l);
4374 var7 = var9;
4375 varonce6 = var7;
4376 }
4377 ((struct instance_core__NativeArray*)var5)->values[1]=var7;
4378 if (likely(varonce10!=NULL)) {
4379 var11 = varonce10;
4380 } else {
4381 var12 = "__";
4382 var13 = core__flat___NativeString___to_s_full(var12, 2l, 2l);
4383 var11 = var13;
4384 varonce10 = var11;
4385 }
4386 ((struct instance_core__NativeArray*)var5)->values[3]=var11;
4387 } else {
4388 var5 = varonce;
4389 varonce = NULL;
4390 }
4391 {
4392 { /* Inline model#MProperty#intro_mclassdef (self) on <self:MProperty> */
4393 var16 = self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
4394 if (unlikely(var16 == NULL)) {
4395 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
4396 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
4397 fatal_exit(1);
4398 }
4399 var14 = var16;
4400 RET_LABEL15:(void)0;
4401 }
4402 }
4403 {
4404 { /* Inline model#MClassDef#mmodule (var14) on <var14:MClassDef> */
4405 var19 = var14->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var14:MClassDef> */
4406 if (unlikely(var19 == NULL)) {
4407 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4408 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
4409 fatal_exit(1);
4410 }
4411 var17 = var19;
4412 RET_LABEL18:(void)0;
4413 }
4414 }
4415 {
4416 var20 = nitc___nitc__MModule___nitc__model_base__MEntity__c_name(var17);
4417 }
4418 ((struct instance_core__NativeArray*)var5)->values[0]=var20;
4419 {
4420 { /* Inline model#MProperty#intro_mclassdef (self) on <self:MProperty> */
4421 var23 = self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
4422 if (unlikely(var23 == NULL)) {
4423 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
4424 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
4425 fatal_exit(1);
4426 }
4427 var21 = var23;
4428 RET_LABEL22:(void)0;
4429 }
4430 }
4431 {
4432 { /* Inline model#MClassDef#mclass (var21) on <var21:MClassDef> */
4433 var26 = var21->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var21:MClassDef> */
4434 if (unlikely(var26 == NULL)) {
4435 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4436 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
4437 fatal_exit(1);
4438 }
4439 var24 = var26;
4440 RET_LABEL25:(void)0;
4441 }
4442 }
4443 {
4444 { /* Inline model#MClass#name (var24) on <var24:MClass> */
4445 var29 = var24->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var24:MClass> */
4446 if (unlikely(var29 == NULL)) {
4447 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4448 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 385);
4449 fatal_exit(1);
4450 }
4451 var27 = var29;
4452 RET_LABEL28:(void)0;
4453 }
4454 }
4455 {
4456 var30 = core___core__Text___to_cmangle(var27);
4457 }
4458 ((struct instance_core__NativeArray*)var5)->values[2]=var30;
4459 {
4460 { /* Inline model#MProperty#name (self) on <self:MProperty> */
4461 var33 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MProperty> */
4462 if (unlikely(var33 == NULL)) {
4463 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4464 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1951);
4465 fatal_exit(1);
4466 }
4467 var31 = var33;
4468 RET_LABEL32:(void)0;
4469 }
4470 }
4471 {
4472 var34 = core___core__Text___to_cmangle(var31);
4473 }
4474 ((struct instance_core__NativeArray*)var5)->values[4]=var34;
4475 {
4476 var35 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var5); /* native_to_s on <var5:NativeArray[String]>*/
4477 }
4478 varonce = var5;
4479 var3 = var35;
4480 goto RET_LABEL4;
4481 RET_LABEL4:(void)0;
4482 }
4483 self->attrs[COLOR_nitc__model__MProperty___c_name].val = var3; /* _c_name on <self:MProperty> */
4484 var2 = var3;
4485 }
4486 var = var2;
4487 RET_LABEL:;
4488 return var;
4489 }
4490 /* method model#MProperty#visibility for (self: MProperty): MVisibility */
4491 val* nitc___nitc__MProperty___visibility(val* self) {
4492 val* var /* : MVisibility */;
4493 val* var1 /* : MVisibility */;
4494 var1 = self->attrs[COLOR_nitc__model__MProperty___visibility].val; /* _visibility on <self:MProperty> */
4495 if (unlikely(var1 == NULL)) {
4496 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
4497 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1967);
4498 fatal_exit(1);
4499 }
4500 var = var1;
4501 RET_LABEL:;
4502 return var;
4503 }
4504 /* method model#MProperty#visibility= for (self: MProperty, MVisibility) */
4505 void nitc___nitc__MProperty___visibility_61d(val* self, val* p0) {
4506 self->attrs[COLOR_nitc__model__MProperty___visibility].val = p0; /* _visibility on <self:MProperty> */
4507 RET_LABEL:;
4508 }
4509 /* method model#MProperty#is_autoinit for (self: MProperty): Bool */
4510 short int nitc___nitc__MProperty___is_autoinit(val* self) {
4511 short int var /* : Bool */;
4512 short int var1 /* : Bool */;
4513 var1 = self->attrs[COLOR_nitc__model__MProperty___is_autoinit].s; /* _is_autoinit on <self:MProperty> */
4514 var = var1;
4515 RET_LABEL:;
4516 return var;
4517 }
4518 /* method model#MProperty#is_autoinit= for (self: MProperty, Bool) */
4519 void nitc___nitc__MProperty___is_autoinit_61d(val* self, short int p0) {
4520 self->attrs[COLOR_nitc__model__MProperty___is_autoinit].s = p0; /* _is_autoinit on <self:MProperty> */
4521 RET_LABEL:;
4522 }
4523 /* method model#MProperty#init for (self: MProperty) */
4524 void nitc___nitc__MProperty___core__kernel__Object__init(val* self) {
4525 val* var /* : MClassDef */;
4526 val* var2 /* : MClassDef */;
4527 val* var3 /* : Array[MProperty] */;
4528 val* var5 /* : Array[MProperty] */;
4529 val* var6 /* : MClassDef */;
4530 val* var8 /* : MClassDef */;
4531 val* var9 /* : MModule */;
4532 val* var11 /* : MModule */;
4533 val* var12 /* : Model */;
4534 val* var14 /* : Model */;
4535 val* var_model /* var model: Model */;
4536 val* var15 /* : MultiHashMap[String, MProperty] */;
4537 val* var17 /* : MultiHashMap[String, MProperty] */;
4538 val* var18 /* : String */;
4539 val* var20 /* : String */;
4540 val* var21 /* : Array[MProperty] */;
4541 val* var23 /* : Array[MProperty] */;
4542 {
4543 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MProperty___core__kernel__Object__init]))(self); /* init on <self:MProperty>*/
4544 }
4545 {
4546 { /* Inline model#MProperty#intro_mclassdef (self) on <self:MProperty> */
4547 var2 = self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
4548 if (unlikely(var2 == NULL)) {
4549 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
4550 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
4551 fatal_exit(1);
4552 }
4553 var = var2;
4554 RET_LABEL1:(void)0;
4555 }
4556 }
4557 {
4558 { /* Inline model#MClassDef#intro_mproperties (var) on <var:MClassDef> */
4559 var5 = var->attrs[COLOR_nitc__model__MClassDef___intro_mproperties].val; /* _intro_mproperties on <var:MClassDef> */
4560 if (unlikely(var5 == NULL)) {
4561 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mproperties");
4562 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 704);
4563 fatal_exit(1);
4564 }
4565 var3 = var5;
4566 RET_LABEL4:(void)0;
4567 }
4568 }
4569 {
4570 core___core__Array___core__abstract_collection__SimpleCollection__add(var3, self); /* Direct call array#Array#add on <var3:Array[MProperty]>*/
4571 }
4572 {
4573 { /* Inline model#MProperty#intro_mclassdef (self) on <self:MProperty> */
4574 var8 = self->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
4575 if (unlikely(var8 == NULL)) {
4576 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
4577 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
4578 fatal_exit(1);
4579 }
4580 var6 = var8;
4581 RET_LABEL7:(void)0;
4582 }
4583 }
4584 {
4585 { /* Inline model#MClassDef#mmodule (var6) on <var6:MClassDef> */
4586 var11 = var6->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var6:MClassDef> */
4587 if (unlikely(var11 == NULL)) {
4588 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4589 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
4590 fatal_exit(1);
4591 }
4592 var9 = var11;
4593 RET_LABEL10:(void)0;
4594 }
4595 }
4596 {
4597 { /* Inline mmodule#MModule#model (var9) on <var9:MModule> */
4598 var14 = var9->attrs[COLOR_nitc__mmodule__MModule___model].val; /* _model on <var9:MModule> */
4599 if (unlikely(var14 == NULL)) {
4600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
4601 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 78);
4602 fatal_exit(1);
4603 }
4604 var12 = var14;
4605 RET_LABEL13:(void)0;
4606 }
4607 }
4608 var_model = var12;
4609 {
4610 { /* Inline model#Model#mproperties_by_name (var_model) on <var_model:Model> */
4611 var17 = var_model->attrs[COLOR_nitc__model__Model___mproperties_by_name].val; /* _mproperties_by_name on <var_model:Model> */
4612 if (unlikely(var17 == NULL)) {
4613 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperties_by_name");
4614 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 80);
4615 fatal_exit(1);
4616 }
4617 var15 = var17;
4618 RET_LABEL16:(void)0;
4619 }
4620 }
4621 {
4622 { /* Inline model#MProperty#name (self) on <self:MProperty> */
4623 var20 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MProperty> */
4624 if (unlikely(var20 == NULL)) {
4625 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4626 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1951);
4627 fatal_exit(1);
4628 }
4629 var18 = var20;
4630 RET_LABEL19:(void)0;
4631 }
4632 }
4633 {
4634 more_collections___more_collections__MultiHashMap___add_one(var15, var18, self); /* Direct call more_collections#MultiHashMap#add_one on <var15:MultiHashMap[String, MProperty]>*/
4635 }
4636 {
4637 { /* Inline model#Model#mproperties (var_model) on <var_model:Model> */
4638 var23 = var_model->attrs[COLOR_nitc__model__Model___mproperties].val; /* _mproperties on <var_model:Model> */
4639 if (unlikely(var23 == NULL)) {
4640 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperties");
4641 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 37);
4642 fatal_exit(1);
4643 }
4644 var21 = var23;
4645 RET_LABEL22:(void)0;
4646 }
4647 }
4648 {
4649 core___core__Array___core__abstract_collection__SimpleCollection__add(var21, self); /* Direct call array#Array#add on <var21:Array[MProperty]>*/
4650 }
4651 RET_LABEL:;
4652 }
4653 /* method model#MProperty#mpropdefs for (self: MProperty): Array[MPropDef] */
4654 val* nitc___nitc__MProperty___mpropdefs(val* self) {
4655 val* var /* : Array[MPropDef] */;
4656 val* var1 /* : Array[MPropDef] */;
4657 var1 = self->attrs[COLOR_nitc__model__MProperty___mpropdefs].val; /* _mpropdefs on <self:MProperty> */
4658 if (unlikely(var1 == NULL)) {
4659 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
4660 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1981);
4661 fatal_exit(1);
4662 }
4663 var = var1;
4664 RET_LABEL:;
4665 return var;
4666 }
4667 /* method model#MProperty#intro for (self: MProperty): MPropDef */
4668 val* nitc___nitc__MProperty___intro(val* self) {
4669 val* var /* : MPropDef */;
4670 val* var1 /* : MPropDef */;
4671 var1 = self->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <self:MProperty> */
4672 if (unlikely(var1 == NULL)) {
4673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4674 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1986);
4675 fatal_exit(1);
4676 }
4677 var = var1;
4678 RET_LABEL:;
4679 return var;
4680 }
4681 /* method model#MProperty#intro= for (self: MProperty, MPropDef) */
4682 void nitc___nitc__MProperty___intro_61d(val* self, val* p0) {
4683 short int var /* : Bool */;
4684 int cltype;
4685 int idtype;
4686 const struct type* type_struct;
4687 const char* var_class_name;
4688 /* Covariant cast for argument 0 (intro) <p0:MPropDef> isa MPROPDEF */
4689 /* <p0:MPropDef> isa MPROPDEF */
4690 type_struct = self->type->resolution_table->types[COLOR_nitc__model__MProperty__MPROPDEF];
4691 cltype = type_struct->color;
4692 idtype = type_struct->id;
4693 if(cltype >= p0->type->table_size) {
4694 var = 0;
4695 } else {
4696 var = p0->type->type_table[cltype] == idtype;
4697 }
4698 if (unlikely(!var)) {
4699 var_class_name = p0 == NULL ? "null" : p0->type->name;
4700 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPDEF", var_class_name);
4701 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1986);
4702 fatal_exit(1);
4703 }
4704 self->attrs[COLOR_nitc__model__MProperty___intro].val = p0; /* _intro on <self:MProperty> */
4705 RET_LABEL:;
4706 }
4707 /* method model#MProperty#model for (self: MProperty): Model */
4708 val* nitc___nitc__MProperty___nitc__model_base__MEntity__model(val* self) {
4709 val* var /* : Model */;
4710 val* var1 /* : MPropDef */;
4711 val* var3 /* : MPropDef */;
4712 val* var4 /* : Model */;
4713 {
4714 { /* Inline model#MProperty#intro (self) on <self:MProperty> */
4715 var3 = self->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <self:MProperty> */
4716 if (unlikely(var3 == NULL)) {
4717 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4718 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1986);
4719 fatal_exit(1);
4720 }
4721 var1 = var3;
4722 RET_LABEL2:(void)0;
4723 }
4724 }
4725 {
4726 var4 = nitc___nitc__MPropDef___nitc__model_base__MEntity__model(var1);
4727 }
4728 var = var4;
4729 goto RET_LABEL;
4730 RET_LABEL:;
4731 return var;
4732 }
4733 /* method model#MProperty#to_s for (self: MProperty): String */
4734 val* nitc___nitc__MProperty___core__abstract_text__Object__to_s(val* self) {
4735 val* var /* : String */;
4736 val* var1 /* : String */;
4737 val* var3 /* : String */;
4738 {
4739 { /* Inline model#MProperty#name (self) on <self:MProperty> */
4740 var3 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MProperty> */
4741 if (unlikely(var3 == NULL)) {
4742 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4743 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1951);
4744 fatal_exit(1);
4745 }
4746 var1 = var3;
4747 RET_LABEL2:(void)0;
4748 }
4749 }
4750 var = var1;
4751 goto RET_LABEL;
4752 RET_LABEL:;
4753 return var;
4754 }
4755 /* method model#MProperty#lookup_definitions for (self: MProperty, MModule, MType): Array[MPropDef] */
4756 val* nitc___nitc__MProperty___lookup_definitions(val* self, val* p0, val* p1) {
4757 val* var /* : Array[MPropDef] */;
4758 val* var_mmodule /* var mmodule: MModule */;
4759 val* var_mtype /* var mtype: MType */;
4760 short int var1 /* : Bool */;
4761 short int var2 /* : Bool */;
4762 val* var3 /* : MType */;
4763 val* var4 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
4764 val* var6 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
4765 val* var7 /* : nullable Object */;
4766 val* var_cache /* var cache: nullable Array[MPropDef] */;
4767 short int var8 /* : Bool */;
4768 short int var9 /* : Bool */;
4769 val* var_other /* var other: nullable Object */;
4770 short int var11 /* : Bool */;
4771 short int var12 /* : Bool */;
4772 val* var13 /* : Array[MPropDef] */;
4773 val* var_candidates /* var candidates: Array[MPropDef] */;
4774 val* var14 /* : Array[MPropDef] */;
4775 val* var16 /* : Array[MPropDef] */;
4776 val* var_ /* var : Array[MPropDef] */;
4777 val* var17 /* : IndexedIterator[nullable Object] */;
4778 val* var_18 /* var : IndexedIterator[MPropDef] */;
4779 short int var19 /* : Bool */;
4780 val* var20 /* : nullable Object */;
4781 val* var_mpropdef /* var mpropdef: MPropDef */;
4782 val* var21 /* : POSetElement[MModule] */;
4783 val* var23 /* : POSetElement[MModule] */;
4784 val* var24 /* : MClassDef */;
4785 val* var26 /* : MClassDef */;
4786 val* var27 /* : MModule */;
4787 val* var29 /* : MModule */;
4788 short int var30 /* : Bool */;
4789 short int var31 /* : Bool */;
4790 val* var33 /* : MClassDef */;
4791 val* var35 /* : MClassDef */;
4792 val* var36 /* : MClassType */;
4793 val* var38 /* : MClassType */;
4794 short int var39 /* : Bool */;
4795 short int var40 /* : Bool */;
4796 long var41 /* : Int */;
4797 long var43 /* : Int */;
4798 short int var44 /* : Bool */;
4799 short int var46 /* : Bool */;
4800 int cltype;
4801 int idtype;
4802 const char* var_class_name;
4803 short int var47 /* : Bool */;
4804 val* var48 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
4805 val* var50 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
4806 val* var51 /* : Array[MPropDef] */;
4807 var_mmodule = p0;
4808 var_mtype = p1;
4809 {
4810 var1 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
4811 }
4812 var2 = !var1;
4813 if (unlikely(!var2)) {
4814 PRINT_ERROR("Runtime error: %s", "Assert failed");
4815 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2008);
4816 fatal_exit(1);
4817 }
4818 {
4819 var3 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__undecorate]))(var_mtype); /* undecorate on <var_mtype:MType>*/
4820 }
4821 var_mtype = var3;
4822 {
4823 { /* Inline model#MProperty#lookup_definitions_cache (self) on <self:MProperty> */
4824 var6 = self->attrs[COLOR_nitc__model__MProperty___lookup_definitions_cache].val; /* _lookup_definitions_cache on <self:MProperty> */
4825 if (unlikely(var6 == NULL)) {
4826 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_definitions_cache");
4827 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2035);
4828 fatal_exit(1);
4829 }
4830 var4 = var6;
4831 RET_LABEL5:(void)0;
4832 }
4833 }
4834 {
4835 var7 = more_collections___more_collections__HashMap2____91d_93d(var4, var_mmodule, var_mtype);
4836 }
4837 var_cache = var7;
4838 if (var_cache == NULL) {
4839 var8 = 0; /* is null */
4840 } else {
4841 var8 = 1; /* arg is null and recv is not */
4842 }
4843 if (0) {
4844 { /* Inline kernel#Object#!= (var_cache,((val*)NULL)) on <var_cache:nullable Array[MPropDef]> */
4845 var_other = ((val*)NULL);
4846 {
4847 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])>*/
4848 }
4849 var12 = !var11;
4850 var9 = var12;
4851 goto RET_LABEL10;
4852 RET_LABEL10:(void)0;
4853 }
4854 var8 = var9;
4855 }
4856 if (var8){
4857 var = var_cache;
4858 goto RET_LABEL;
4859 } else {
4860 }
4861 var13 = NEW_core__Array(self->type->resolution_table->types[COLOR_core__Array__nitc__model__MProperty__MPROPDEF]);
4862 {
4863 core___core__Array___core__kernel__Object__init(var13); /* Direct call array#Array#init on <var13:Array[MPropDef]>*/
4864 }
4865 var_candidates = var13;
4866 {
4867 { /* Inline model#MProperty#mpropdefs (self) on <self:MProperty> */
4868 var16 = self->attrs[COLOR_nitc__model__MProperty___mpropdefs].val; /* _mpropdefs on <self:MProperty> */
4869 if (unlikely(var16 == NULL)) {
4870 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
4871 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1981);
4872 fatal_exit(1);
4873 }
4874 var14 = var16;
4875 RET_LABEL15:(void)0;
4876 }
4877 }
4878 var_ = var14;
4879 {
4880 var17 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
4881 }
4882 var_18 = var17;
4883 for(;;) {
4884 {
4885 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[MPropDef]>*/
4886 }
4887 if (var19){
4888 } else {
4889 goto BREAK_label;
4890 }
4891 {
4892 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[MPropDef]>*/
4893 }
4894 var_mpropdef = var20;
4895 {
4896 { /* Inline mmodule#MModule#in_importation (var_mmodule) on <var_mmodule:MModule> */
4897 var23 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
4898 if (unlikely(var23 == NULL)) {
4899 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
4900 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 104);
4901 fatal_exit(1);
4902 }
4903 var21 = var23;
4904 RET_LABEL22:(void)0;
4905 }
4906 }
4907 {
4908 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
4909 var26 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
4910 if (unlikely(var26 == NULL)) {
4911 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
4912 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
4913 fatal_exit(1);
4914 }
4915 var24 = var26;
4916 RET_LABEL25:(void)0;
4917 }
4918 }
4919 {
4920 { /* Inline model#MClassDef#mmodule (var24) on <var24:MClassDef> */
4921 var29 = var24->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var24:MClassDef> */
4922 if (unlikely(var29 == NULL)) {
4923 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4924 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
4925 fatal_exit(1);
4926 }
4927 var27 = var29;
4928 RET_LABEL28:(void)0;
4929 }
4930 }
4931 {
4932 var30 = poset___poset__POSetElement____60d_61d(var21, var27);
4933 }
4934 var31 = !var30;
4935 if (var31){
4936 goto BREAK_label32;
4937 } else {
4938 }
4939 {
4940 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
4941 var35 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
4942 if (unlikely(var35 == NULL)) {
4943 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
4944 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
4945 fatal_exit(1);
4946 }
4947 var33 = var35;
4948 RET_LABEL34:(void)0;
4949 }
4950 }
4951 {
4952 { /* Inline model#MClassDef#bound_mtype (var33) on <var33:MClassDef> */
4953 var38 = var33->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var33:MClassDef> */
4954 if (unlikely(var38 == NULL)) {
4955 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4956 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 579);
4957 fatal_exit(1);
4958 }
4959 var36 = var38;
4960 RET_LABEL37:(void)0;
4961 }
4962 }
4963 {
4964 var39 = nitc___nitc__MType___is_subtype(var_mtype, var_mmodule, ((val*)NULL), var36);
4965 }
4966 var40 = !var39;
4967 if (var40){
4968 goto BREAK_label32;
4969 } else {
4970 }
4971 {
4972 core___core__Array___core__abstract_collection__SimpleCollection__add(var_candidates, var_mpropdef); /* Direct call array#Array#add on <var_candidates:Array[MPropDef]>*/
4973 }
4974 BREAK_label32: (void)0;
4975 {
4976 ((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[MPropDef]>*/
4977 }
4978 }
4979 BREAK_label: (void)0;
4980 {
4981 ((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[MPropDef]>*/
4982 }
4983 {
4984 { /* Inline array#AbstractArrayRead#length (var_candidates) on <var_candidates:Array[MPropDef]> */
4985 var43 = var_candidates->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_candidates:Array[MPropDef]> */
4986 var41 = var43;
4987 RET_LABEL42:(void)0;
4988 }
4989 }
4990 {
4991 { /* Inline kernel#Int#<= (var41,1l) on <var41:Int> */
4992 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4993 /* <1l:Int> isa OTHER */
4994 var46 = 1; /* easy <1l:Int> isa OTHER*/
4995 if (unlikely(!var46)) {
4996 var_class_name = type_core__Int.name;
4997 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4998 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
4999 fatal_exit(1);
5000 }
5001 var47 = var41 <= 1l;
5002 var44 = var47;
5003 goto RET_LABEL45;
5004 RET_LABEL45:(void)0;
5005 }
5006 }
5007 if (var44){
5008 {
5009 { /* Inline model#MProperty#lookup_definitions_cache (self) on <self:MProperty> */
5010 var50 = self->attrs[COLOR_nitc__model__MProperty___lookup_definitions_cache].val; /* _lookup_definitions_cache on <self:MProperty> */
5011 if (unlikely(var50 == NULL)) {
5012 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_definitions_cache");
5013 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2035);
5014 fatal_exit(1);
5015 }
5016 var48 = var50;
5017 RET_LABEL49:(void)0;
5018 }
5019 }
5020 {
5021 more_collections___more_collections__HashMap2____91d_93d_61d(var48, var_mmodule, var_mtype, var_candidates); /* Direct call more_collections#HashMap2#[]= on <var48:HashMap2[MModule, MType, Array[MPropDef]]>*/
5022 }
5023 var = var_candidates;
5024 goto RET_LABEL;
5025 } else {
5026 }
5027 {
5028 var51 = nitc___nitc__MProperty___select_most_specific(self, var_mmodule, var_candidates);
5029 }
5030 var = var51;
5031 goto RET_LABEL;
5032 RET_LABEL:;
5033 return var;
5034 }
5035 /* method model#MProperty#lookup_definitions_cache for (self: MProperty): HashMap2[MModule, MType, Array[MPropDef]] */
5036 val* nitc___nitc__MProperty___lookup_definitions_cache(val* self) {
5037 val* var /* : HashMap2[MModule, MType, Array[MPropDef]] */;
5038 val* var1 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
5039 var1 = self->attrs[COLOR_nitc__model__MProperty___lookup_definitions_cache].val; /* _lookup_definitions_cache on <self:MProperty> */
5040 if (unlikely(var1 == NULL)) {
5041 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_definitions_cache");
5042 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2035);
5043 fatal_exit(1);
5044 }
5045 var = var1;
5046 RET_LABEL:;
5047 return var;
5048 }
5049 /* method model#MProperty#lookup_super_definitions for (self: MProperty, MModule, MType): Array[MPropDef] */
5050 val* nitc___nitc__MProperty___lookup_super_definitions(val* self, val* p0, val* p1) {
5051 val* var /* : Array[MPropDef] */;
5052 val* var_mmodule /* var mmodule: MModule */;
5053 val* var_mtype /* var mtype: MType */;
5054 short int var1 /* : Bool */;
5055 short int var2 /* : Bool */;
5056 val* var3 /* : MType */;
5057 val* var4 /* : Array[MPropDef] */;
5058 val* var_candidates /* var candidates: Array[MPropDef] */;
5059 val* var5 /* : Array[MPropDef] */;
5060 val* var7 /* : Array[MPropDef] */;
5061 val* var_ /* var : Array[MPropDef] */;
5062 val* var8 /* : IndexedIterator[nullable Object] */;
5063 val* var_9 /* var : IndexedIterator[MPropDef] */;
5064 short int var10 /* : Bool */;
5065 val* var11 /* : nullable Object */;
5066 val* var_mpropdef /* var mpropdef: MPropDef */;
5067 val* var12 /* : POSetElement[MModule] */;
5068 val* var14 /* : POSetElement[MModule] */;
5069 val* var15 /* : MClassDef */;
5070 val* var17 /* : MClassDef */;
5071 val* var18 /* : MModule */;
5072 val* var20 /* : MModule */;
5073 short int var21 /* : Bool */;
5074 short int var22 /* : Bool */;
5075 val* var24 /* : MClassDef */;
5076 val* var26 /* : MClassDef */;
5077 val* var27 /* : MClassType */;
5078 val* var29 /* : MClassType */;
5079 short int var30 /* : Bool */;
5080 short int var31 /* : Bool */;
5081 short int var32 /* : Bool */;
5082 val* var33 /* : MClassDef */;
5083 val* var35 /* : MClassDef */;
5084 val* var36 /* : MClassType */;
5085 val* var38 /* : MClassType */;
5086 short int var39 /* : Bool */;
5087 val* var_other /* var other: nullable Object */;
5088 short int var41 /* : Bool */;
5089 short int var43 /* : Bool */;
5090 short int var_44 /* var : Bool */;
5091 val* var45 /* : MClassDef */;
5092 val* var47 /* : MClassDef */;
5093 val* var48 /* : MModule */;
5094 val* var50 /* : MModule */;
5095 short int var51 /* : Bool */;
5096 short int var53 /* : Bool */;
5097 short int var55 /* : Bool */;
5098 long var56 /* : Int */;
5099 long var58 /* : Int */;
5100 short int var59 /* : Bool */;
5101 short int var61 /* : Bool */;
5102 int cltype;
5103 int idtype;
5104 const char* var_class_name;
5105 short int var62 /* : Bool */;
5106 val* var63 /* : Array[MPropDef] */;
5107 var_mmodule = p0;
5108 var_mtype = p1;
5109 {
5110 var1 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
5111 }
5112 var2 = !var1;
5113 if (unlikely(!var2)) {
5114 PRINT_ERROR("Runtime error: %s", "Assert failed");
5115 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2048);
5116 fatal_exit(1);
5117 }
5118 {
5119 var3 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__undecorate]))(var_mtype); /* undecorate on <var_mtype:MType>*/
5120 }
5121 var_mtype = var3;
5122 var4 = NEW_core__Array(self->type->resolution_table->types[COLOR_core__Array__nitc__model__MProperty__MPROPDEF]);
5123 {
5124 core___core__Array___core__kernel__Object__init(var4); /* Direct call array#Array#init on <var4:Array[MPropDef]>*/
5125 }
5126 var_candidates = var4;
5127 {
5128 { /* Inline model#MProperty#mpropdefs (self) on <self:MProperty> */
5129 var7 = self->attrs[COLOR_nitc__model__MProperty___mpropdefs].val; /* _mpropdefs on <self:MProperty> */
5130 if (unlikely(var7 == NULL)) {
5131 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
5132 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1981);
5133 fatal_exit(1);
5134 }
5135 var5 = var7;
5136 RET_LABEL6:(void)0;
5137 }
5138 }
5139 var_ = var5;
5140 {
5141 var8 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
5142 }
5143 var_9 = var8;
5144 for(;;) {
5145 {
5146 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]>*/
5147 }
5148 if (var10){
5149 } else {
5150 goto BREAK_label;
5151 }
5152 {
5153 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]>*/
5154 }
5155 var_mpropdef = var11;
5156 {
5157 { /* Inline mmodule#MModule#in_importation (var_mmodule) on <var_mmodule:MModule> */
5158 var14 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
5159 if (unlikely(var14 == NULL)) {
5160 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
5161 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 104);
5162 fatal_exit(1);
5163 }
5164 var12 = var14;
5165 RET_LABEL13:(void)0;
5166 }
5167 }
5168 {
5169 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
5170 var17 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
5171 if (unlikely(var17 == NULL)) {
5172 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5173 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
5174 fatal_exit(1);
5175 }
5176 var15 = var17;
5177 RET_LABEL16:(void)0;
5178 }
5179 }
5180 {
5181 { /* Inline model#MClassDef#mmodule (var15) on <var15:MClassDef> */
5182 var20 = var15->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var15:MClassDef> */
5183 if (unlikely(var20 == NULL)) {
5184 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
5185 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
5186 fatal_exit(1);
5187 }
5188 var18 = var20;
5189 RET_LABEL19:(void)0;
5190 }
5191 }
5192 {
5193 var21 = poset___poset__POSetElement____60d_61d(var12, var18);
5194 }
5195 var22 = !var21;
5196 if (var22){
5197 goto BREAK_label23;
5198 } else {
5199 }
5200 {
5201 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
5202 var26 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
5203 if (unlikely(var26 == NULL)) {
5204 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5205 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
5206 fatal_exit(1);
5207 }
5208 var24 = var26;
5209 RET_LABEL25:(void)0;
5210 }
5211 }
5212 {
5213 { /* Inline model#MClassDef#bound_mtype (var24) on <var24:MClassDef> */
5214 var29 = var24->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var24:MClassDef> */
5215 if (unlikely(var29 == NULL)) {
5216 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5217 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 579);
5218 fatal_exit(1);
5219 }
5220 var27 = var29;
5221 RET_LABEL28:(void)0;
5222 }
5223 }
5224 {
5225 var30 = nitc___nitc__MType___is_subtype(var_mtype, var_mmodule, ((val*)NULL), var27);
5226 }
5227 var31 = !var30;
5228 if (var31){
5229 goto BREAK_label23;
5230 } else {
5231 }
5232 {
5233 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
5234 var35 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
5235 if (unlikely(var35 == NULL)) {
5236 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5237 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
5238 fatal_exit(1);
5239 }
5240 var33 = var35;
5241 RET_LABEL34:(void)0;
5242 }
5243 }
5244 {
5245 { /* Inline model#MClassDef#bound_mtype (var33) on <var33:MClassDef> */
5246 var38 = var33->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var33:MClassDef> */
5247 if (unlikely(var38 == NULL)) {
5248 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5249 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 579);
5250 fatal_exit(1);
5251 }
5252 var36 = var38;
5253 RET_LABEL37:(void)0;
5254 }
5255 }
5256 {
5257 { /* Inline kernel#Object#== (var_mtype,var36) on <var_mtype:MType> */
5258 var_other = var36;
5259 {
5260 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:MType> */
5261 var43 = var_mtype == var_other;
5262 var41 = var43;
5263 goto RET_LABEL42;
5264 RET_LABEL42:(void)0;
5265 }
5266 }
5267 var39 = var41;
5268 goto RET_LABEL40;
5269 RET_LABEL40:(void)0;
5270 }
5271 }
5272 var_44 = var39;
5273 if (var39){
5274 {
5275 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
5276 var47 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
5277 if (unlikely(var47 == NULL)) {
5278 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5279 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
5280 fatal_exit(1);
5281 }
5282 var45 = var47;
5283 RET_LABEL46:(void)0;
5284 }
5285 }
5286 {
5287 { /* Inline model#MClassDef#mmodule (var45) on <var45:MClassDef> */
5288 var50 = var45->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var45:MClassDef> */
5289 if (unlikely(var50 == NULL)) {
5290 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
5291 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
5292 fatal_exit(1);
5293 }
5294 var48 = var50;
5295 RET_LABEL49:(void)0;
5296 }
5297 }
5298 {
5299 { /* Inline kernel#Object#== (var_mmodule,var48) on <var_mmodule:MModule> */
5300 var_other = var48;
5301 {
5302 { /* Inline kernel#Object#is_same_instance (var_mmodule,var_other) on <var_mmodule:MModule> */
5303 var55 = var_mmodule == var_other;
5304 var53 = var55;
5305 goto RET_LABEL54;
5306 RET_LABEL54:(void)0;
5307 }
5308 }
5309 var51 = var53;
5310 goto RET_LABEL52;
5311 RET_LABEL52:(void)0;
5312 }
5313 }
5314 var32 = var51;
5315 } else {
5316 var32 = var_44;
5317 }
5318 if (var32){
5319 goto BREAK_label23;
5320 } else {
5321 }
5322 {
5323 core___core__Array___core__abstract_collection__SimpleCollection__add(var_candidates, var_mpropdef); /* Direct call array#Array#add on <var_candidates:Array[MPropDef]>*/
5324 }
5325 BREAK_label23: (void)0;
5326 {
5327 ((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]>*/
5328 }
5329 }
5330 BREAK_label: (void)0;
5331 {
5332 ((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]>*/
5333 }
5334 {
5335 { /* Inline array#AbstractArrayRead#length (var_candidates) on <var_candidates:Array[MPropDef]> */
5336 var58 = var_candidates->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_candidates:Array[MPropDef]> */
5337 var56 = var58;
5338 RET_LABEL57:(void)0;
5339 }
5340 }
5341 {
5342 { /* Inline kernel#Int#<= (var56,1l) on <var56:Int> */
5343 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5344 /* <1l:Int> isa OTHER */
5345 var61 = 1; /* easy <1l:Int> isa OTHER*/
5346 if (unlikely(!var61)) {
5347 var_class_name = type_core__Int.name;
5348 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5349 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
5350 fatal_exit(1);
5351 }
5352 var62 = var56 <= 1l;
5353 var59 = var62;
5354 goto RET_LABEL60;
5355 RET_LABEL60:(void)0;
5356 }
5357 }
5358 if (var59){
5359 var = var_candidates;
5360 goto RET_LABEL;
5361 } else {
5362 }
5363 {
5364 var63 = nitc___nitc__MProperty___select_most_specific(self, var_mmodule, var_candidates);
5365 }
5366 var = var63;
5367 goto RET_LABEL;
5368 RET_LABEL:;
5369 return var;
5370 }
5371 /* method model#MProperty#select_most_specific for (self: MProperty, MModule, Array[MPropDef]): Array[MPropDef] */
5372 val* nitc___nitc__MProperty___select_most_specific(val* self, val* p0, val* p1) {
5373 val* var /* : Array[MPropDef] */;
5374 short int var1 /* : Bool */;
5375 int cltype;
5376 int idtype;
5377 const struct type* type_struct;
5378 const char* var_class_name;
5379 val* var_mmodule /* var mmodule: MModule */;
5380 val* var_candidates /* var candidates: Array[MPropDef] */;
5381 val* var2 /* : Array[MPropDef] */;
5382 val* var_res /* var res: Array[MPropDef] */;
5383 val* var_ /* var : Array[MPropDef] */;
5384 val* var3 /* : IndexedIterator[nullable Object] */;
5385 val* var_4 /* var : IndexedIterator[MPropDef] */;
5386 short int var5 /* : Bool */;
5387 val* var6 /* : nullable Object */;
5388 val* var_pd1 /* var pd1: MPropDef */;
5389 val* var7 /* : MClassDef */;
5390 val* var9 /* : MClassDef */;
5391 val* var_cd1 /* var cd1: MClassDef */;
5392 val* var10 /* : MClass */;
5393 val* var12 /* : MClass */;
5394 val* var_c1 /* var c1: MClass */;
5395 short int var_keep /* var keep: Bool */;
5396 val* var_13 /* var : Array[MPropDef] */;
5397 val* var14 /* : IndexedIterator[nullable Object] */;
5398 val* var_15 /* var : IndexedIterator[MPropDef] */;
5399 short int var16 /* : Bool */;
5400 val* var18 /* : nullable Object */;
5401 val* var_pd2 /* var pd2: MPropDef */;
5402 short int var19 /* : Bool */;
5403 val* var_other /* var other: nullable Object */;
5404 short int var21 /* : Bool */;
5405 short int var23 /* : Bool */;
5406 val* var25 /* : MClassDef */;
5407 val* var27 /* : MClassDef */;
5408 val* var_cd2 /* var cd2: MClassDef */;
5409 val* var28 /* : MClass */;
5410 val* var30 /* : MClass */;
5411 val* var_c2 /* var c2: MClass */;
5412 val* var31 /* : MClassType */;
5413 val* var33 /* : MClassType */;
5414 val* var34 /* : MClassType */;
5415 val* var36 /* : MClassType */;
5416 short int var37 /* : Bool */;
5417 short int var39 /* : Bool */;
5418 short int var41 /* : Bool */;
5419 val* var42 /* : MModule */;
5420 val* var44 /* : MModule */;
5421 val* var45 /* : POSetElement[MModule] */;
5422 val* var47 /* : POSetElement[MModule] */;
5423 val* var48 /* : MModule */;
5424 val* var50 /* : MModule */;
5425 short int var51 /* : Bool */;
5426 short int var52 /* : Bool */;
5427 val* var53 /* : MClassType */;
5428 val* var55 /* : MClassType */;
5429 val* var56 /* : MClassType */;
5430 val* var58 /* : MClassType */;
5431 short int var59 /* : Bool */;
5432 short int var_60 /* var : Bool */;
5433 val* var61 /* : MClassType */;
5434 val* var63 /* : MClassType */;
5435 val* var64 /* : MClassType */;
5436 val* var66 /* : MClassType */;
5437 short int var67 /* : Bool */;
5438 val* var_other69 /* var other: nullable Object */;
5439 short int var70 /* : Bool */;
5440 short int var71 /* : Bool */;
5441 short int var72 /* : Bool */;
5442 val* var73 /* : Sys */;
5443 val* var74 /* : NativeArray[String] */;
5444 static val* varonce;
5445 static val* varonce75;
5446 val* var76 /* : String */;
5447 char* var77 /* : NativeString */;
5448 val* var78 /* : String */;
5449 static val* varonce79;
5450 val* var80 /* : String */;
5451 char* var81 /* : NativeString */;
5452 val* var82 /* : String */;
5453 val* var83 /* : String */;
5454 val* var84 /* : String */;
5455 /* Covariant cast for argument 1 (candidates) <p1:Array[MPropDef]> isa Array[MPROPDEF] */
5456 /* <p1:Array[MPropDef]> isa Array[MPROPDEF] */
5457 type_struct = self->type->resolution_table->types[COLOR_core__Array__nitc__model__MProperty__MPROPDEF];
5458 cltype = type_struct->color;
5459 idtype = type_struct->id;
5460 if(cltype >= p1->type->table_size) {
5461 var1 = 0;
5462 } else {
5463 var1 = p1->type->type_table[cltype] == idtype;
5464 }
5465 if (unlikely(!var1)) {
5466 var_class_name = p1 == NULL ? "null" : p1->type->name;
5467 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[MPROPDEF]", var_class_name);
5468 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2070);
5469 fatal_exit(1);
5470 }
5471 var_mmodule = p0;
5472 var_candidates = p1;
5473 var2 = NEW_core__Array(self->type->resolution_table->types[COLOR_core__Array__nitc__model__MProperty__MPROPDEF]);
5474 {
5475 core___core__Array___core__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[MPropDef]>*/
5476 }
5477 var_res = var2;
5478 var_ = var_candidates;
5479 {
5480 var3 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
5481 }
5482 var_4 = var3;
5483 for(;;) {
5484 {
5485 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]>*/
5486 }
5487 if (var5){
5488 } else {
5489 goto BREAK_label;
5490 }
5491 {
5492 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]>*/
5493 }
5494 var_pd1 = var6;
5495 {
5496 { /* Inline model#MPropDef#mclassdef (var_pd1) on <var_pd1:MPropDef> */
5497 var9 = var_pd1->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_pd1:MPropDef> */
5498 if (unlikely(var9 == NULL)) {
5499 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5500 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
5501 fatal_exit(1);
5502 }
5503 var7 = var9;
5504 RET_LABEL8:(void)0;
5505 }
5506 }
5507 var_cd1 = var7;
5508 {
5509 { /* Inline model#MClassDef#mclass (var_cd1) on <var_cd1:MClassDef> */
5510 var12 = var_cd1->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var_cd1:MClassDef> */
5511 if (unlikely(var12 == NULL)) {
5512 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5513 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
5514 fatal_exit(1);
5515 }
5516 var10 = var12;
5517 RET_LABEL11:(void)0;
5518 }
5519 }
5520 var_c1 = var10;
5521 var_keep = 1;
5522 var_13 = var_candidates;
5523 {
5524 var14 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_13);
5525 }
5526 var_15 = var14;
5527 for(;;) {
5528 {
5529 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]>*/
5530 }
5531 if (var16){
5532 } else {
5533 goto BREAK_label17;
5534 }
5535 {
5536 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]>*/
5537 }
5538 var_pd2 = var18;
5539 {
5540 { /* Inline kernel#Object#== (var_pd2,var_pd1) on <var_pd2:MPropDef> */
5541 var_other = var_pd1;
5542 {
5543 { /* Inline kernel#Object#is_same_instance (var_pd2,var_other) on <var_pd2:MPropDef> */
5544 var23 = var_pd2 == var_other;
5545 var21 = var23;
5546 goto RET_LABEL22;
5547 RET_LABEL22:(void)0;
5548 }
5549 }
5550 var19 = var21;
5551 goto RET_LABEL20;
5552 RET_LABEL20:(void)0;
5553 }
5554 }
5555 if (var19){
5556 goto BREAK_label24;
5557 } else {
5558 }
5559 {
5560 { /* Inline model#MPropDef#mclassdef (var_pd2) on <var_pd2:MPropDef> */
5561 var27 = var_pd2->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_pd2:MPropDef> */
5562 if (unlikely(var27 == NULL)) {
5563 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5564 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
5565 fatal_exit(1);
5566 }
5567 var25 = var27;
5568 RET_LABEL26:(void)0;
5569 }
5570 }
5571 var_cd2 = var25;
5572 {
5573 { /* Inline model#MClassDef#mclass (var_cd2) on <var_cd2:MClassDef> */
5574 var30 = var_cd2->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var_cd2:MClassDef> */
5575 if (unlikely(var30 == NULL)) {
5576 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5577 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
5578 fatal_exit(1);
5579 }
5580 var28 = var30;
5581 RET_LABEL29:(void)0;
5582 }
5583 }
5584 var_c2 = var28;
5585 {
5586 { /* Inline model#MClass#mclass_type (var_c2) on <var_c2:MClass> */
5587 var33 = var_c2->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_c2:MClass> */
5588 if (unlikely(var33 == NULL)) {
5589 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
5590 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 507);
5591 fatal_exit(1);
5592 }
5593 var31 = var33;
5594 RET_LABEL32:(void)0;
5595 }
5596 }
5597 {
5598 { /* Inline model#MClass#mclass_type (var_c1) on <var_c1:MClass> */
5599 var36 = var_c1->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_c1:MClass> */
5600 if (unlikely(var36 == NULL)) {
5601 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
5602 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 507);
5603 fatal_exit(1);
5604 }
5605 var34 = var36;
5606 RET_LABEL35:(void)0;
5607 }
5608 }
5609 {
5610 { /* Inline kernel#Object#== (var31,var34) on <var31:MClassType> */
5611 var_other = var34;
5612 {
5613 { /* Inline kernel#Object#is_same_instance (var31,var_other) on <var31:MClassType> */
5614 var41 = var31 == var_other;
5615 var39 = var41;
5616 goto RET_LABEL40;
5617 RET_LABEL40:(void)0;
5618 }
5619 }
5620 var37 = var39;
5621 goto RET_LABEL38;
5622 RET_LABEL38:(void)0;
5623 }
5624 }
5625 if (var37){
5626 {
5627 { /* Inline model#MClassDef#mmodule (var_cd2) on <var_cd2:MClassDef> */
5628 var44 = var_cd2->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var_cd2:MClassDef> */
5629 if (unlikely(var44 == NULL)) {
5630 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
5631 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
5632 fatal_exit(1);
5633 }
5634 var42 = var44;
5635 RET_LABEL43:(void)0;
5636 }
5637 }
5638 {
5639 { /* Inline mmodule#MModule#in_importation (var42) on <var42:MModule> */
5640 var47 = var42->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var42:MModule> */
5641 if (unlikely(var47 == NULL)) {
5642 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
5643 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 104);
5644 fatal_exit(1);
5645 }
5646 var45 = var47;
5647 RET_LABEL46:(void)0;
5648 }
5649 }
5650 {
5651 { /* Inline model#MClassDef#mmodule (var_cd1) on <var_cd1:MClassDef> */
5652 var50 = var_cd1->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var_cd1:MClassDef> */
5653 if (unlikely(var50 == NULL)) {
5654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
5655 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
5656 fatal_exit(1);
5657 }
5658 var48 = var50;
5659 RET_LABEL49:(void)0;
5660 }
5661 }
5662 {
5663 var51 = poset___poset__POSetElement____60d(var45, var48);
5664 }
5665 if (var51){
5666 var_keep = 0;
5667 goto BREAK_label17;
5668 } else {
5669 }
5670 } else {
5671 {
5672 { /* Inline model#MClassDef#bound_mtype (var_cd2) on <var_cd2:MClassDef> */
5673 var55 = var_cd2->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_cd2:MClassDef> */
5674 if (unlikely(var55 == NULL)) {
5675 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5676 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 579);
5677 fatal_exit(1);
5678 }
5679 var53 = var55;
5680 RET_LABEL54:(void)0;
5681 }
5682 }
5683 {
5684 { /* Inline model#MClassDef#bound_mtype (var_cd1) on <var_cd1:MClassDef> */
5685 var58 = var_cd1->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_cd1:MClassDef> */
5686 if (unlikely(var58 == NULL)) {
5687 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5688 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 579);
5689 fatal_exit(1);
5690 }
5691 var56 = var58;
5692 RET_LABEL57:(void)0;
5693 }
5694 }
5695 {
5696 var59 = nitc___nitc__MType___is_subtype(var53, var_mmodule, ((val*)NULL), var56);
5697 }
5698 var_60 = var59;
5699 if (var59){
5700 {
5701 { /* Inline model#MClassDef#bound_mtype (var_cd2) on <var_cd2:MClassDef> */
5702 var63 = var_cd2->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_cd2:MClassDef> */
5703 if (unlikely(var63 == NULL)) {
5704 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5705 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 579);
5706 fatal_exit(1);
5707 }
5708 var61 = var63;
5709 RET_LABEL62:(void)0;
5710 }
5711 }
5712 {
5713 { /* Inline model#MClassDef#bound_mtype (var_cd1) on <var_cd1:MClassDef> */
5714 var66 = var_cd1->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_cd1:MClassDef> */
5715 if (unlikely(var66 == NULL)) {
5716 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5717 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 579);
5718 fatal_exit(1);
5719 }
5720 var64 = var66;
5721 RET_LABEL65:(void)0;
5722 }
5723 }
5724 {
5725 { /* Inline kernel#Object#!= (var61,var64) on <var61:MClassType> */
5726 var_other69 = var64;
5727 {
5728 var70 = ((short int(*)(val* self, val* p0))(var61->class->vft[COLOR_core__kernel__Object___61d_61d]))(var61, var_other69); /* == on <var61:MClassType>*/
5729 }
5730 var71 = !var70;
5731 var67 = var71;
5732 goto RET_LABEL68;
5733 RET_LABEL68:(void)0;
5734 }
5735 }
5736 var52 = var67;
5737 } else {
5738 var52 = var_60;
5739 }
5740 if (var52){
5741 var_keep = 0;
5742 goto BREAK_label17;
5743 } else {
5744 }
5745 }
5746 BREAK_label24: (void)0;
5747 {
5748 ((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]>*/
5749 }
5750 }
5751 BREAK_label17: (void)0;
5752 {
5753 ((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]>*/
5754 }
5755 if (var_keep){
5756 {
5757 core___core__Array___core__abstract_collection__SimpleCollection__add(var_res, var_pd1); /* Direct call array#Array#add on <var_res:Array[MPropDef]>*/
5758 }
5759 } else {
5760 }
5761 {
5762 ((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]>*/
5763 }
5764 }
5765 BREAK_label: (void)0;
5766 {
5767 ((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]>*/
5768 }
5769 {
5770 var72 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_res);
5771 }
5772 if (var72){
5773 var73 = glob_sys;
5774 if (unlikely(varonce==NULL)) {
5775 var74 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
5776 if (likely(varonce75!=NULL)) {
5777 var76 = varonce75;
5778 } else {
5779 var77 = "All lost! ";
5780 var78 = core__flat___NativeString___to_s_full(var77, 10l, 10l);
5781 var76 = var78;
5782 varonce75 = var76;
5783 }
5784 ((struct instance_core__NativeArray*)var74)->values[0]=var76;
5785 } else {
5786 var74 = varonce;
5787 varonce = NULL;
5788 }
5789 if (likely(varonce79!=NULL)) {
5790 var80 = varonce79;
5791 } else {
5792 var81 = ", ";
5793 var82 = core__flat___NativeString___to_s_full(var81, 2l, 2l);
5794 var80 = var82;
5795 varonce79 = var80;
5796 }
5797 {
5798 var83 = core__abstract_text___Collection___join(var_candidates, var80);
5799 }
5800 ((struct instance_core__NativeArray*)var74)->values[1]=var83;
5801 {
5802 var84 = ((val*(*)(val* self))(var74->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var74); /* native_to_s on <var74:NativeArray[String]>*/
5803 }
5804 varonce = var74;
5805 {
5806 core__file___Sys___print(var73, var84); /* Direct call file#Sys#print on <var73:Sys>*/
5807 }
5808 } else {
5809 }
5810 var = var_res;
5811 goto RET_LABEL;
5812 RET_LABEL:;
5813 return var;
5814 }
5815 /* method model#MProperty#lookup_first_definition for (self: MProperty, MModule, MType): MPropDef */
5816 val* nitc___nitc__MProperty___lookup_first_definition(val* self, val* p0, val* p1) {
5817 val* var /* : MPropDef */;
5818 val* var_mmodule /* var mmodule: MModule */;
5819 val* var_mtype /* var mtype: MType */;
5820 val* var1 /* : Array[MPropDef] */;
5821 val* var2 /* : nullable Object */;
5822 var_mmodule = p0;
5823 var_mtype = p1;
5824 {
5825 var1 = nitc___nitc__MProperty___lookup_all_definitions(self, var_mmodule, var_mtype);
5826 }
5827 {
5828 var2 = core___core__SequenceRead___Collection__first(var1);
5829 }
5830 var = var2;
5831 goto RET_LABEL;
5832 RET_LABEL:;
5833 return var;
5834 }
5835 /* method model#MProperty#lookup_all_definitions for (self: MProperty, MModule, MType): Array[MPropDef] */
5836 val* nitc___nitc__MProperty___lookup_all_definitions(val* self, val* p0, val* p1) {
5837 val* var /* : Array[MPropDef] */;
5838 val* var_mmodule /* var mmodule: MModule */;
5839 val* var_mtype /* var mtype: MType */;
5840 val* var1 /* : MType */;
5841 val* var2 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
5842 val* var4 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
5843 val* var5 /* : nullable Object */;
5844 val* var_cache /* var cache: nullable Array[MPropDef] */;
5845 short int var6 /* : Bool */;
5846 short int var7 /* : Bool */;
5847 val* var_other /* var other: nullable Object */;
5848 short int var9 /* : Bool */;
5849 short int var10 /* : Bool */;
5850 short int var11 /* : Bool */;
5851 short int var12 /* : Bool */;
5852 short int var13 /* : Bool */;
5853 val* var14 /* : Array[MPropDef] */;
5854 val* var_candidates /* var candidates: Array[MPropDef] */;
5855 val* var15 /* : Array[MPropDef] */;
5856 val* var17 /* : Array[MPropDef] */;
5857 val* var_ /* var : Array[MPropDef] */;
5858 val* var18 /* : IndexedIterator[nullable Object] */;
5859 val* var_19 /* var : IndexedIterator[MPropDef] */;
5860 short int var20 /* : Bool */;
5861 val* var21 /* : nullable Object */;
5862 val* var_mpropdef /* var mpropdef: MPropDef */;
5863 val* var22 /* : POSetElement[MModule] */;
5864 val* var24 /* : POSetElement[MModule] */;
5865 val* var25 /* : MClassDef */;
5866 val* var27 /* : MClassDef */;
5867 val* var28 /* : MModule */;
5868 val* var30 /* : MModule */;
5869 short int var31 /* : Bool */;
5870 short int var32 /* : Bool */;
5871 val* var34 /* : MClassDef */;
5872 val* var36 /* : MClassDef */;
5873 val* var37 /* : MClassType */;
5874 val* var39 /* : MClassType */;
5875 short int var40 /* : Bool */;
5876 short int var41 /* : Bool */;
5877 long var42 /* : Int */;
5878 long var44 /* : Int */;
5879 short int var45 /* : Bool */;
5880 short int var47 /* : Bool */;
5881 int cltype;
5882 int idtype;
5883 const char* var_class_name;
5884 short int var48 /* : Bool */;
5885 val* var49 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
5886 val* var51 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
5887 val* var52 /* : Array[nullable Object] */;
5888 val* var53 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
5889 val* var55 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
5890 var_mmodule = p0;
5891 var_mtype = p1;
5892 {
5893 var1 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__undecorate]))(var_mtype); /* undecorate on <var_mtype:MType>*/
5894 }
5895 var_mtype = var1;
5896 {
5897 { /* Inline model#MProperty#lookup_all_definitions_cache (self) on <self:MProperty> */
5898 var4 = self->attrs[COLOR_nitc__model__MProperty___lookup_all_definitions_cache].val; /* _lookup_all_definitions_cache on <self:MProperty> */
5899 if (unlikely(var4 == NULL)) {
5900 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_all_definitions_cache");
5901 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2158);
5902 fatal_exit(1);
5903 }
5904 var2 = var4;
5905 RET_LABEL3:(void)0;
5906 }
5907 }
5908 {
5909 var5 = more_collections___more_collections__HashMap2____91d_93d(var2, var_mmodule, var_mtype);
5910 }
5911 var_cache = var5;
5912 if (var_cache == NULL) {
5913 var6 = 0; /* is null */
5914 } else {
5915 var6 = 1; /* arg is null and recv is not */
5916 }
5917 if (0) {
5918 { /* Inline kernel#Object#!= (var_cache,((val*)NULL)) on <var_cache:nullable Array[MPropDef]> */
5919 var_other = ((val*)NULL);
5920 {
5921 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])>*/
5922 }
5923 var10 = !var9;
5924 var7 = var10;
5925 goto RET_LABEL8;
5926 RET_LABEL8:(void)0;
5927 }
5928 var6 = var7;
5929 }
5930 if (var6){
5931 var = var_cache;
5932 goto RET_LABEL;
5933 } else {
5934 }
5935 {
5936 var11 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
5937 }
5938 var12 = !var11;
5939 if (unlikely(!var12)) {
5940 PRINT_ERROR("Runtime error: %s", "Assert failed");
5941 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2132);
5942 fatal_exit(1);
5943 }
5944 {
5945 var13 = nitc___nitc__MType___has_mproperty(var_mtype, var_mmodule, self);
5946 }
5947 if (unlikely(!var13)) {
5948 PRINT_ERROR("Runtime error: %s", "Assert failed");
5949 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2133);
5950 fatal_exit(1);
5951 }
5952 var14 = NEW_core__Array(self->type->resolution_table->types[COLOR_core__Array__nitc__model__MProperty__MPROPDEF]);
5953 {
5954 core___core__Array___core__kernel__Object__init(var14); /* Direct call array#Array#init on <var14:Array[MPropDef]>*/
5955 }
5956 var_candidates = var14;
5957 {
5958 { /* Inline model#MProperty#mpropdefs (self) on <self:MProperty> */
5959 var17 = self->attrs[COLOR_nitc__model__MProperty___mpropdefs].val; /* _mpropdefs on <self:MProperty> */
5960 if (unlikely(var17 == NULL)) {
5961 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
5962 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1981);
5963 fatal_exit(1);
5964 }
5965 var15 = var17;
5966 RET_LABEL16:(void)0;
5967 }
5968 }
5969 var_ = var15;
5970 {
5971 var18 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
5972 }
5973 var_19 = var18;
5974 for(;;) {
5975 {
5976 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]>*/
5977 }
5978 if (var20){
5979 } else {
5980 goto BREAK_label;
5981 }
5982 {
5983 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]>*/
5984 }
5985 var_mpropdef = var21;
5986 {
5987 { /* Inline mmodule#MModule#in_importation (var_mmodule) on <var_mmodule:MModule> */
5988 var24 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
5989 if (unlikely(var24 == NULL)) {
5990 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
5991 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 104);
5992 fatal_exit(1);
5993 }
5994 var22 = var24;
5995 RET_LABEL23:(void)0;
5996 }
5997 }
5998 {
5999 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
6000 var27 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
6001 if (unlikely(var27 == NULL)) {
6002 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
6003 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
6004 fatal_exit(1);
6005 }
6006 var25 = var27;
6007 RET_LABEL26:(void)0;
6008 }
6009 }
6010 {
6011 { /* Inline model#MClassDef#mmodule (var25) on <var25:MClassDef> */
6012 var30 = var25->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var25:MClassDef> */
6013 if (unlikely(var30 == NULL)) {
6014 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
6015 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
6016 fatal_exit(1);
6017 }
6018 var28 = var30;
6019 RET_LABEL29:(void)0;
6020 }
6021 }
6022 {
6023 var31 = poset___poset__POSetElement____60d_61d(var22, var28);
6024 }
6025 var32 = !var31;
6026 if (var32){
6027 goto BREAK_label33;
6028 } else {
6029 }
6030 {
6031 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
6032 var36 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
6033 if (unlikely(var36 == NULL)) {
6034 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
6035 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
6036 fatal_exit(1);
6037 }
6038 var34 = var36;
6039 RET_LABEL35:(void)0;
6040 }
6041 }
6042 {
6043 { /* Inline model#MClassDef#bound_mtype (var34) on <var34:MClassDef> */
6044 var39 = var34->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var34:MClassDef> */
6045 if (unlikely(var39 == NULL)) {
6046 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
6047 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 579);
6048 fatal_exit(1);
6049 }
6050 var37 = var39;
6051 RET_LABEL38:(void)0;
6052 }
6053 }
6054 {
6055 var40 = nitc___nitc__MType___is_subtype(var_mtype, var_mmodule, ((val*)NULL), var37);
6056 }
6057 var41 = !var40;
6058 if (var41){
6059 goto BREAK_label33;
6060 } else {
6061 }
6062 {
6063 core___core__Array___core__abstract_collection__SimpleCollection__add(var_candidates, var_mpropdef); /* Direct call array#Array#add on <var_candidates:Array[MPropDef]>*/
6064 }
6065 BREAK_label33: (void)0;
6066 {
6067 ((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]>*/
6068 }
6069 }
6070 BREAK_label: (void)0;
6071 {
6072 ((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]>*/
6073 }
6074 {
6075 { /* Inline array#AbstractArrayRead#length (var_candidates) on <var_candidates:Array[MPropDef]> */
6076 var44 = var_candidates->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_candidates:Array[MPropDef]> */
6077 var42 = var44;
6078 RET_LABEL43:(void)0;
6079 }
6080 }
6081 {
6082 { /* Inline kernel#Int#<= (var42,1l) on <var42:Int> */
6083 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6084 /* <1l:Int> isa OTHER */
6085 var47 = 1; /* easy <1l:Int> isa OTHER*/
6086 if (unlikely(!var47)) {
6087 var_class_name = type_core__Int.name;
6088 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6089 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
6090 fatal_exit(1);
6091 }
6092 var48 = var42 <= 1l;
6093 var45 = var48;
6094 goto RET_LABEL46;
6095 RET_LABEL46:(void)0;
6096 }
6097 }
6098 if (var45){
6099 {
6100 { /* Inline model#MProperty#lookup_all_definitions_cache (self) on <self:MProperty> */
6101 var51 = self->attrs[COLOR_nitc__model__MProperty___lookup_all_definitions_cache].val; /* _lookup_all_definitions_cache on <self:MProperty> */
6102 if (unlikely(var51 == NULL)) {
6103 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_all_definitions_cache");
6104 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2158);
6105 fatal_exit(1);
6106 }
6107 var49 = var51;
6108 RET_LABEL50:(void)0;
6109 }
6110 }
6111 {
6112 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]]>*/
6113 }
6114 var = var_candidates;
6115 goto RET_LABEL;
6116 } else {
6117 }
6118 {
6119 nitc__model___MModule___linearize_mpropdefs(var_mmodule, var_candidates); /* Direct call model#MModule#linearize_mpropdefs on <var_mmodule:MModule>*/
6120 }
6121 {
6122 var52 = core___core__AbstractArrayRead___reversed(var_candidates);
6123 }
6124 var_candidates = var52;
6125 {
6126 { /* Inline model#MProperty#lookup_all_definitions_cache (self) on <self:MProperty> */
6127 var55 = self->attrs[COLOR_nitc__model__MProperty___lookup_all_definitions_cache].val; /* _lookup_all_definitions_cache on <self:MProperty> */
6128 if (unlikely(var55 == NULL)) {
6129 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_all_definitions_cache");
6130 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2158);
6131 fatal_exit(1);
6132 }
6133 var53 = var55;
6134 RET_LABEL54:(void)0;
6135 }
6136 }
6137 {
6138 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]]>*/
6139 }
6140 var = var_candidates;
6141 goto RET_LABEL;
6142 RET_LABEL:;
6143 return var;
6144 }
6145 /* method model#MProperty#lookup_all_definitions_cache for (self: MProperty): HashMap2[MModule, MType, Array[MPropDef]] */
6146 val* nitc___nitc__MProperty___lookup_all_definitions_cache(val* self) {
6147 val* var /* : HashMap2[MModule, MType, Array[MPropDef]] */;
6148 val* var1 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
6149 var1 = self->attrs[COLOR_nitc__model__MProperty___lookup_all_definitions_cache].val; /* _lookup_all_definitions_cache on <self:MProperty> */
6150 if (unlikely(var1 == NULL)) {
6151 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_all_definitions_cache");
6152 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2158);
6153 fatal_exit(1);
6154 }
6155 var = var1;
6156 RET_LABEL:;
6157 return var;
6158 }
6159 /* method model#MMethod#is_toplevel for (self: MMethod): Bool */
6160 short int nitc___nitc__MMethod___is_toplevel(val* self) {
6161 short int var /* : Bool */;
6162 short int var1 /* : Bool */;
6163 var1 = self->attrs[COLOR_nitc__model__MMethod___is_toplevel].s; /* _is_toplevel on <self:MMethod> */
6164 var = var1;
6165 RET_LABEL:;
6166 return var;
6167 }
6168 /* method model#MMethod#is_toplevel= for (self: MMethod, Bool) */
6169 void nitc___nitc__MMethod___is_toplevel_61d(val* self, short int p0) {
6170 self->attrs[COLOR_nitc__model__MMethod___is_toplevel].s = p0; /* _is_toplevel on <self:MMethod> */
6171 RET_LABEL:;
6172 }
6173 /* method model#MMethod#is_init for (self: MMethod): Bool */
6174 short int nitc___nitc__MMethod___is_init(val* self) {
6175 short int var /* : Bool */;
6176 short int var1 /* : Bool */;
6177 var1 = self->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <self:MMethod> */
6178 var = var1;
6179 RET_LABEL:;
6180 return var;
6181 }
6182 /* method model#MMethod#is_init= for (self: MMethod, Bool) */
6183 void nitc___nitc__MMethod___is_init_61d(val* self, short int p0) {
6184 self->attrs[COLOR_nitc__model__MMethod___is_init].s = p0; /* _is_init on <self:MMethod> */
6185 RET_LABEL:;
6186 }
6187 /* method model#MMethod#is_root_init for (self: MMethod): Bool */
6188 short int nitc___nitc__MMethod___is_root_init(val* self) {
6189 short int var /* : Bool */;
6190 short int var1 /* : Bool */;
6191 var1 = self->attrs[COLOR_nitc__model__MMethod___is_root_init].s; /* _is_root_init on <self:MMethod> */
6192 var = var1;
6193 RET_LABEL:;
6194 return var;
6195 }
6196 /* method model#MMethod#is_root_init= for (self: MMethod, Bool) */
6197 void nitc___nitc__MMethod___is_root_init_61d(val* self, short int p0) {
6198 self->attrs[COLOR_nitc__model__MMethod___is_root_init].s = p0; /* _is_root_init on <self:MMethod> */
6199 RET_LABEL:;
6200 }
6201 /* method model#MMethod#is_new for (self: MMethod): Bool */
6202 short int nitc___nitc__MMethod___is_new(val* self) {
6203 short int var /* : Bool */;
6204 short int var1 /* : Bool */;
6205 var1 = self->attrs[COLOR_nitc__model__MMethod___is_new].s; /* _is_new on <self:MMethod> */
6206 var = var1;
6207 RET_LABEL:;
6208 return var;
6209 }
6210 /* method model#MMethod#is_new= for (self: MMethod, Bool) */
6211 void nitc___nitc__MMethod___is_new_61d(val* self, short int p0) {
6212 self->attrs[COLOR_nitc__model__MMethod___is_new].s = p0; /* _is_new on <self:MMethod> */
6213 RET_LABEL:;
6214 }
6215 /* method model#MMethod#is_init_for for (self: MMethod, MClass): Bool */
6216 short int nitc___nitc__MMethod___is_init_for(val* self, val* p0) {
6217 short int var /* : Bool */;
6218 val* var_mclass /* var mclass: MClass */;
6219 short int var1 /* : Bool */;
6220 short int var3 /* : Bool */;
6221 var_mclass = p0;
6222 {
6223 { /* Inline model#MMethod#is_init (self) on <self:MMethod> */
6224 var3 = self->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <self:MMethod> */
6225 var1 = var3;
6226 RET_LABEL2:(void)0;
6227 }
6228 }
6229 var = var1;
6230 goto RET_LABEL;
6231 RET_LABEL:;
6232 return var;
6233 }
6234 /* method model#MMethod#is_null_safe for (self: MMethod): Bool */
6235 short int nitc___nitc__MMethod___is_null_safe(val* self) {
6236 short int var /* : Bool */;
6237 short int var1 /* : Bool */;
6238 short int var2 /* : Bool */;
6239 val* var3 /* : String */;
6240 val* var5 /* : String */;
6241 static val* varonce;
6242 val* var6 /* : String */;
6243 char* var7 /* : NativeString */;
6244 val* var8 /* : String */;
6245 short int var9 /* : Bool */;
6246 short int var_ /* var : Bool */;
6247 val* var10 /* : String */;
6248 val* var12 /* : String */;
6249 static val* varonce13;
6250 val* var14 /* : String */;
6251 char* var15 /* : NativeString */;
6252 val* var16 /* : String */;
6253 short int var17 /* : Bool */;
6254 short int var_18 /* var : Bool */;
6255 val* var19 /* : String */;
6256 val* var21 /* : String */;
6257 static val* varonce22;
6258 val* var23 /* : String */;
6259 char* var24 /* : NativeString */;
6260 val* var25 /* : String */;
6261 short int var26 /* : Bool */;
6262 {
6263 { /* Inline model#MProperty#name (self) on <self:MMethod> */
6264 var5 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MMethod> */
6265 if (unlikely(var5 == NULL)) {
6266 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6267 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1951);
6268 fatal_exit(1);
6269 }
6270 var3 = var5;
6271 RET_LABEL4:(void)0;
6272 }
6273 }
6274 if (likely(varonce!=NULL)) {
6275 var6 = varonce;
6276 } else {
6277 var7 = "==";
6278 var8 = core__flat___NativeString___to_s_full(var7, 2l, 2l);
6279 var6 = var8;
6280 varonce = var6;
6281 }
6282 {
6283 var9 = ((short int(*)(val* self, val* p0))(var3->class->vft[COLOR_core__kernel__Object___61d_61d]))(var3, var6); /* == on <var3:String>*/
6284 }
6285 var_ = var9;
6286 if (var9){
6287 var2 = var_;
6288 } else {
6289 {
6290 { /* Inline model#MProperty#name (self) on <self:MMethod> */
6291 var12 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MMethod> */
6292 if (unlikely(var12 == NULL)) {
6293 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6294 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1951);
6295 fatal_exit(1);
6296 }
6297 var10 = var12;
6298 RET_LABEL11:(void)0;
6299 }
6300 }
6301 if (likely(varonce13!=NULL)) {
6302 var14 = varonce13;
6303 } else {
6304 var15 = "!=";
6305 var16 = core__flat___NativeString___to_s_full(var15, 2l, 2l);
6306 var14 = var16;
6307 varonce13 = var14;
6308 }
6309 {
6310 var17 = ((short int(*)(val* self, val* p0))(var10->class->vft[COLOR_core__kernel__Object___61d_61d]))(var10, var14); /* == on <var10:String>*/
6311 }
6312 var2 = var17;
6313 }
6314 var_18 = var2;
6315 if (var2){
6316 var1 = var_18;
6317 } else {
6318 {
6319 { /* Inline model#MProperty#name (self) on <self:MMethod> */
6320 var21 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MMethod> */
6321 if (unlikely(var21 == NULL)) {
6322 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6323 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1951);
6324 fatal_exit(1);
6325 }
6326 var19 = var21;
6327 RET_LABEL20:(void)0;
6328 }
6329 }
6330 if (likely(varonce22!=NULL)) {
6331 var23 = varonce22;
6332 } else {
6333 var24 = "is_same_instance";
6334 var25 = core__flat___NativeString___to_s_full(var24, 16l, 16l);
6335 var23 = var25;
6336 varonce22 = var23;
6337 }
6338 {
6339 var26 = ((short int(*)(val* self, val* p0))(var19->class->vft[COLOR_core__kernel__Object___61d_61d]))(var19, var23); /* == on <var19:String>*/
6340 }
6341 var1 = var26;
6342 }
6343 var = var1;
6344 goto RET_LABEL;
6345 RET_LABEL:;
6346 return var;
6347 }
6348 /* method model#MVirtualTypeProp#mvirtualtype for (self: MVirtualTypeProp): MVirtualType */
6349 val* nitc___nitc__MVirtualTypeProp___mvirtualtype(val* self) {
6350 val* var /* : MVirtualType */;
6351 val* var1 /* : MVirtualType */;
6352 var1 = self->attrs[COLOR_nitc__model__MVirtualTypeProp___mvirtualtype].val; /* _mvirtualtype on <self:MVirtualTypeProp> */
6353 if (unlikely(var1 == NULL)) {
6354 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mvirtualtype");
6355 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2209);
6356 fatal_exit(1);
6357 }
6358 var = var1;
6359 RET_LABEL:;
6360 return var;
6361 }
6362 /* method model#MPropDef#mclassdef for (self: MPropDef): MClassDef */
6363 val* nitc___nitc__MPropDef___mclassdef(val* self) {
6364 val* var /* : MClassDef */;
6365 val* var1 /* : MClassDef */;
6366 var1 = self->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <self:MPropDef> */
6367 if (unlikely(var1 == NULL)) {
6368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
6369 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
6370 fatal_exit(1);
6371 }
6372 var = var1;
6373 RET_LABEL:;
6374 return var;
6375 }
6376 /* method model#MPropDef#mclassdef= for (self: MPropDef, MClassDef) */
6377 void nitc___nitc__MPropDef___mclassdef_61d(val* self, val* p0) {
6378 self->attrs[COLOR_nitc__model__MPropDef___mclassdef].val = p0; /* _mclassdef on <self:MPropDef> */
6379 RET_LABEL:;
6380 }
6381 /* method model#MPropDef#mproperty for (self: MPropDef): MProperty */
6382 val* nitc___nitc__MPropDef___mproperty(val* self) {
6383 val* var /* : MProperty */;
6384 val* var1 /* : MProperty */;
6385 var1 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
6386 if (unlikely(var1 == NULL)) {
6387 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6388 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
6389 fatal_exit(1);
6390 }
6391 var = var1;
6392 RET_LABEL:;
6393 return var;
6394 }
6395 /* method model#MPropDef#mproperty= for (self: MPropDef, MProperty) */
6396 void nitc___nitc__MPropDef___mproperty_61d(val* self, val* p0) {
6397 short int var /* : Bool */;
6398 int cltype;
6399 int idtype;
6400 const struct type* type_struct;
6401 const char* var_class_name;
6402 /* Covariant cast for argument 0 (mproperty) <p0:MProperty> isa MPROPERTY */
6403 /* <p0:MProperty> isa MPROPERTY */
6404 type_struct = self->type->resolution_table->types[COLOR_nitc__model__MPropDef__MPROPERTY];
6405 cltype = type_struct->color;
6406 idtype = type_struct->id;
6407 if(cltype >= p0->type->table_size) {
6408 var = 0;
6409 } else {
6410 var = p0->type->type_table[cltype] == idtype;
6411 }
6412 if (unlikely(!var)) {
6413 var_class_name = p0 == NULL ? "null" : p0->type->name;
6414 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name);
6415 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
6416 fatal_exit(1);
6417 }
6418 self->attrs[COLOR_nitc__model__MPropDef___mproperty].val = p0; /* _mproperty on <self:MPropDef> */
6419 RET_LABEL:;
6420 }
6421 /* method model#MPropDef#location for (self: MPropDef): Location */
6422 val* nitc___nitc__MPropDef___location(val* self) {
6423 val* var /* : Location */;
6424 val* var1 /* : Location */;
6425 var1 = self->attrs[COLOR_nitc__model__MPropDef___location].val; /* _location on <self:MPropDef> */
6426 if (unlikely(var1 == NULL)) {
6427 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
6428 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2233);
6429 fatal_exit(1);
6430 }
6431 var = var1;
6432 RET_LABEL:;
6433 return var;
6434 }
6435 /* method model#MPropDef#location= for (self: MPropDef, Location) */
6436 void nitc___nitc__MPropDef___location_61d(val* self, val* p0) {
6437 self->attrs[COLOR_nitc__model__MPropDef___location].val = p0; /* _location on <self:MPropDef> */
6438 RET_LABEL:;
6439 }
6440 /* method model#MPropDef#init for (self: MPropDef) */
6441 void nitc___nitc__MPropDef___core__kernel__Object__init(val* self) {
6442 val* var /* : MClassDef */;
6443 val* var2 /* : MClassDef */;
6444 val* var3 /* : Array[MPropDef] */;
6445 val* var5 /* : Array[MPropDef] */;
6446 val* var6 /* : MProperty */;
6447 val* var8 /* : MProperty */;
6448 val* var9 /* : Array[MPropDef] */;
6449 val* var11 /* : Array[MPropDef] */;
6450 val* var12 /* : MProperty */;
6451 val* var14 /* : MProperty */;
6452 val* var15 /* : MClassDef */;
6453 val* var17 /* : MClassDef */;
6454 val* var18 /* : MClassDef */;
6455 val* var20 /* : MClassDef */;
6456 short int var21 /* : Bool */;
6457 val* var_other /* var other: nullable Object */;
6458 short int var23 /* : Bool */;
6459 short int var25 /* : Bool */;
6460 val* var26 /* : MProperty */;
6461 val* var28 /* : MProperty */;
6462 short int var29 /* : Bool */;
6463 short int var30 /* : Bool */;
6464 val* var31 /* : MProperty */;
6465 val* var33 /* : MProperty */;
6466 short int var35 /* : Bool */;
6467 int cltype;
6468 int idtype;
6469 const struct type* type_struct;
6470 const char* var_class_name;
6471 val* var36 /* : NativeArray[String] */;
6472 static val* varonce;
6473 static val* varonce37;
6474 val* var38 /* : String */;
6475 char* var39 /* : NativeString */;
6476 val* var40 /* : String */;
6477 val* var41 /* : MClassDef */;
6478 val* var43 /* : MClassDef */;
6479 val* var44 /* : String */;
6480 val* var45 /* : MProperty */;
6481 val* var47 /* : MProperty */;
6482 val* var48 /* : String */;
6483 val* var49 /* : String */;
6484 {
6485 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MPropDef___core__kernel__Object__init]))(self); /* init on <self:MPropDef>*/
6486 }
6487 {
6488 { /* Inline model#MPropDef#mclassdef (self) on <self:MPropDef> */
6489 var2 = self->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <self:MPropDef> */
6490 if (unlikely(var2 == NULL)) {
6491 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
6492 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
6493 fatal_exit(1);
6494 }
6495 var = var2;
6496 RET_LABEL1:(void)0;
6497 }
6498 }
6499 {
6500 { /* Inline model#MClassDef#mpropdefs (var) on <var:MClassDef> */
6501 var5 = var->attrs[COLOR_nitc__model__MClassDef___mpropdefs].val; /* _mpropdefs on <var:MClassDef> */
6502 if (unlikely(var5 == NULL)) {
6503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
6504 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 707);
6505 fatal_exit(1);
6506 }
6507 var3 = var5;
6508 RET_LABEL4:(void)0;
6509 }
6510 }
6511 {
6512 core___core__Array___core__abstract_collection__SimpleCollection__add(var3, self); /* Direct call array#Array#add on <var3:Array[MPropDef]>*/
6513 }
6514 {
6515 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
6516 var8 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
6517 if (unlikely(var8 == NULL)) {
6518 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6519 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
6520 fatal_exit(1);
6521 }
6522 var6 = var8;
6523 RET_LABEL7:(void)0;
6524 }
6525 }
6526 {
6527 { /* Inline model#MProperty#mpropdefs (var6) on <var6:MProperty> */
6528 var11 = var6->attrs[COLOR_nitc__model__MProperty___mpropdefs].val; /* _mpropdefs on <var6:MProperty> */
6529 if (unlikely(var11 == NULL)) {
6530 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
6531 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1981);
6532 fatal_exit(1);
6533 }
6534 var9 = var11;
6535 RET_LABEL10:(void)0;
6536 }
6537 }
6538 {
6539 core___core__Array___core__abstract_collection__SimpleCollection__add(var9, self); /* Direct call array#Array#add on <var9:Array[MPropDef]>*/
6540 }
6541 {
6542 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
6543 var14 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
6544 if (unlikely(var14 == NULL)) {
6545 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6546 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
6547 fatal_exit(1);
6548 }
6549 var12 = var14;
6550 RET_LABEL13:(void)0;
6551 }
6552 }
6553 {
6554 { /* Inline model#MProperty#intro_mclassdef (var12) on <var12:MProperty> */
6555 var17 = var12->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var12:MProperty> */
6556 if (unlikely(var17 == NULL)) {
6557 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
6558 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
6559 fatal_exit(1);
6560 }
6561 var15 = var17;
6562 RET_LABEL16:(void)0;
6563 }
6564 }
6565 {
6566 { /* Inline model#MPropDef#mclassdef (self) on <self:MPropDef> */
6567 var20 = self->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <self:MPropDef> */
6568 if (unlikely(var20 == NULL)) {
6569 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
6570 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
6571 fatal_exit(1);
6572 }
6573 var18 = var20;
6574 RET_LABEL19:(void)0;
6575 }
6576 }
6577 {
6578 { /* Inline kernel#Object#== (var15,var18) on <var15:MClassDef> */
6579 var_other = var18;
6580 {
6581 { /* Inline kernel#Object#is_same_instance (var15,var_other) on <var15:MClassDef> */
6582 var25 = var15 == var_other;
6583 var23 = var25;
6584 goto RET_LABEL24;
6585 RET_LABEL24:(void)0;
6586 }
6587 }
6588 var21 = var23;
6589 goto RET_LABEL22;
6590 RET_LABEL22:(void)0;
6591 }
6592 }
6593 if (var21){
6594 {
6595 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
6596 var28 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
6597 if (unlikely(var28 == NULL)) {
6598 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6599 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
6600 fatal_exit(1);
6601 }
6602 var26 = var28;
6603 RET_LABEL27:(void)0;
6604 }
6605 }
6606 var29 = var26->attrs[COLOR_nitc__model__MProperty___intro].val != NULL; /* _intro on <var26:MProperty> */
6607 var30 = !var29;
6608 if (unlikely(!var30)) {
6609 PRINT_ERROR("Runtime error: %s", "Assert failed");
6610 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2241);
6611 fatal_exit(1);
6612 }
6613 {
6614 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
6615 var33 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
6616 if (unlikely(var33 == NULL)) {
6617 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6618 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
6619 fatal_exit(1);
6620 }
6621 var31 = var33;
6622 RET_LABEL32:(void)0;
6623 }
6624 }
6625 {
6626 { /* Inline model#MProperty#intro= (var31,self) on <var31:MProperty> */
6627 /* Covariant cast for argument 0 (intro) <self:MPropDef> isa MPROPDEF */
6628 /* <self:MPropDef> isa MPROPDEF */
6629 type_struct = var31->type->resolution_table->types[COLOR_nitc__model__MProperty__MPROPDEF];
6630 cltype = type_struct->color;
6631 idtype = type_struct->id;
6632 if(cltype >= self->type->table_size) {
6633 var35 = 0;
6634 } else {
6635 var35 = self->type->type_table[cltype] == idtype;
6636 }
6637 if (unlikely(!var35)) {
6638 var_class_name = self == NULL ? "null" : self->type->name;
6639 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPDEF", var_class_name);
6640 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1986);
6641 fatal_exit(1);
6642 }
6643 var31->attrs[COLOR_nitc__model__MProperty___intro].val = self; /* _intro on <var31:MProperty> */
6644 RET_LABEL34:(void)0;
6645 }
6646 }
6647 } else {
6648 }
6649 if (unlikely(varonce==NULL)) {
6650 var36 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
6651 if (likely(varonce37!=NULL)) {
6652 var38 = varonce37;
6653 } else {
6654 var39 = "#";
6655 var40 = core__flat___NativeString___to_s_full(var39, 1l, 1l);
6656 var38 = var40;
6657 varonce37 = var38;
6658 }
6659 ((struct instance_core__NativeArray*)var36)->values[1]=var38;
6660 } else {
6661 var36 = varonce;
6662 varonce = NULL;
6663 }
6664 {
6665 { /* Inline model#MPropDef#mclassdef (self) on <self:MPropDef> */
6666 var43 = self->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <self:MPropDef> */
6667 if (unlikely(var43 == NULL)) {
6668 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
6669 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
6670 fatal_exit(1);
6671 }
6672 var41 = var43;
6673 RET_LABEL42:(void)0;
6674 }
6675 }
6676 {
6677 var44 = ((val*(*)(val* self))(var41->class->vft[COLOR_core__abstract_text__Object__to_s]))(var41); /* to_s on <var41:MClassDef>*/
6678 }
6679 ((struct instance_core__NativeArray*)var36)->values[0]=var44;
6680 {
6681 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
6682 var47 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
6683 if (unlikely(var47 == NULL)) {
6684 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6685 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
6686 fatal_exit(1);
6687 }
6688 var45 = var47;
6689 RET_LABEL46:(void)0;
6690 }
6691 }
6692 {
6693 var48 = ((val*(*)(val* self))(var45->class->vft[COLOR_core__abstract_text__Object__to_s]))(var45); /* to_s on <var45:MProperty>*/
6694 }
6695 ((struct instance_core__NativeArray*)var36)->values[2]=var48;
6696 {
6697 var49 = ((val*(*)(val* self))(var36->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var36); /* native_to_s on <var36:NativeArray[String]>*/
6698 }
6699 varonce = var36;
6700 {
6701 { /* Inline model#MPropDef#to_s= (self,var49) on <self:MPropDef> */
6702 self->attrs[COLOR_nitc__model__MPropDef___to_s].val = var49; /* _to_s on <self:MPropDef> */
6703 RET_LABEL50:(void)0;
6704 }
6705 }
6706 RET_LABEL:;
6707 }
6708 /* method model#MPropDef#name for (self: MPropDef): String */
6709 val* nitc___nitc__MPropDef___nitc__model_base__MEntity__name(val* self) {
6710 val* var /* : String */;
6711 val* var1 /* : MProperty */;
6712 val* var3 /* : MProperty */;
6713 val* var4 /* : String */;
6714 val* var6 /* : String */;
6715 {
6716 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
6717 var3 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
6718 if (unlikely(var3 == NULL)) {
6719 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6720 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
6721 fatal_exit(1);
6722 }
6723 var1 = var3;
6724 RET_LABEL2:(void)0;
6725 }
6726 }
6727 {
6728 { /* Inline model#MProperty#name (var1) on <var1:MProperty> */
6729 var6 = var1->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <var1:MProperty> */
6730 if (unlikely(var6 == NULL)) {
6731 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6732 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1951);
6733 fatal_exit(1);
6734 }
6735 var4 = var6;
6736 RET_LABEL5:(void)0;
6737 }
6738 }
6739 var = var4;
6740 goto RET_LABEL;
6741 RET_LABEL:;
6742 return var;
6743 }
6744 /* method model#MPropDef#full_name for (self: MPropDef): String */
6745 val* nitc___nitc__MPropDef___nitc__model_base__MEntity__full_name(val* self) {
6746 val* var /* : String */;
6747 short int var1 /* : Bool */;
6748 val* var2 /* : String */;
6749 val* var3 /* : String */;
6750 val* var5 /* : FlatBuffer */;
6751 val* var_res /* var res: FlatBuffer */;
6752 val* var7 /* : MClassDef */;
6753 val* var9 /* : MClassDef */;
6754 val* var10 /* : String */;
6755 static val* varonce;
6756 val* var11 /* : String */;
6757 char* var12 /* : NativeString */;
6758 val* var13 /* : String */;
6759 val* var14 /* : MClassDef */;
6760 val* var16 /* : MClassDef */;
6761 val* var17 /* : MClass */;
6762 val* var19 /* : MClass */;
6763 val* var20 /* : MProperty */;
6764 val* var22 /* : MProperty */;
6765 val* var23 /* : MClassDef */;
6766 val* var25 /* : MClassDef */;
6767 val* var26 /* : MClass */;
6768 val* var28 /* : MClass */;
6769 short int var29 /* : Bool */;
6770 val* var_other /* var other: nullable Object */;
6771 short int var31 /* : Bool */;
6772 short int var33 /* : Bool */;
6773 val* var34 /* : String */;
6774 val* var35 /* : MClassDef */;
6775 val* var37 /* : MClassDef */;
6776 val* var38 /* : MModule */;
6777 val* var40 /* : MModule */;
6778 val* var41 /* : nullable MPackage */;
6779 val* var42 /* : MProperty */;
6780 val* var44 /* : MProperty */;
6781 val* var45 /* : MClassDef */;
6782 val* var47 /* : MClassDef */;
6783 val* var48 /* : MModule */;
6784 val* var50 /* : MModule */;
6785 val* var51 /* : nullable MPackage */;
6786 short int var52 /* : Bool */;
6787 short int var53 /* : Bool */;
6788 val* var_other55 /* var other: nullable Object */;
6789 short int var56 /* : Bool */;
6790 short int var57 /* : Bool */;
6791 val* var58 /* : MProperty */;
6792 val* var60 /* : MProperty */;
6793 val* var61 /* : MClassDef */;
6794 val* var63 /* : MClassDef */;
6795 val* var64 /* : MModule */;
6796 val* var66 /* : MModule */;
6797 val* var67 /* : String */;
6798 static val* varonce68;
6799 val* var69 /* : String */;
6800 char* var70 /* : NativeString */;
6801 val* var71 /* : String */;
6802 val* var72 /* : MProperty */;
6803 val* var74 /* : MProperty */;
6804 val* var75 /* : MVisibility */;
6805 val* var77 /* : MVisibility */;
6806 val* var78 /* : Sys */;
6807 val* var79 /* : MVisibility */;
6808 short int var80 /* : Bool */;
6809 val* var81 /* : MClassDef */;
6810 val* var83 /* : MClassDef */;
6811 val* var84 /* : MModule */;
6812 val* var86 /* : MModule */;
6813 val* var87 /* : MClassDef */;
6814 val* var89 /* : MClassDef */;
6815 val* var90 /* : MClass */;
6816 val* var92 /* : MClass */;
6817 val* var93 /* : MVisibility */;
6818 val* var95 /* : MVisibility */;
6819 val* var96 /* : String */;
6820 val* var97 /* : MProperty */;
6821 val* var99 /* : MProperty */;
6822 val* var100 /* : MClassDef */;
6823 val* var102 /* : MClassDef */;
6824 val* var103 /* : MModule */;
6825 val* var105 /* : MModule */;
6826 val* var106 /* : nullable MPackage */;
6827 short int var107 /* : Bool */;
6828 short int var109 /* : Bool */;
6829 short int var110 /* : Bool */;
6830 static val* varonce111;
6831 val* var112 /* : String */;
6832 char* var113 /* : NativeString */;
6833 val* var114 /* : String */;
6834 val* var115 /* : MProperty */;
6835 val* var117 /* : MProperty */;
6836 val* var118 /* : MClassDef */;
6837 val* var120 /* : MClassDef */;
6838 val* var121 /* : MModule */;
6839 val* var123 /* : MModule */;
6840 val* var124 /* : String */;
6841 val* var126 /* : String */;
6842 static val* varonce127;
6843 val* var128 /* : String */;
6844 char* var129 /* : NativeString */;
6845 val* var130 /* : String */;
6846 val* var131 /* : MClassDef */;
6847 val* var133 /* : MClassDef */;
6848 val* var134 /* : MClass */;
6849 val* var136 /* : MClass */;
6850 val* var137 /* : MProperty */;
6851 val* var139 /* : MProperty */;
6852 val* var140 /* : MClassDef */;
6853 val* var142 /* : MClassDef */;
6854 val* var143 /* : MClass */;
6855 val* var145 /* : MClass */;
6856 short int var146 /* : Bool */;
6857 short int var148 /* : Bool */;
6858 short int var149 /* : Bool */;
6859 val* var150 /* : MProperty */;
6860 val* var152 /* : MProperty */;
6861 val* var153 /* : MClassDef */;
6862 val* var155 /* : MClassDef */;
6863 val* var156 /* : String */;
6864 static val* varonce157;
6865 val* var158 /* : String */;
6866 char* var159 /* : NativeString */;
6867 val* var160 /* : String */;
6868 val* var161 /* : MProperty */;
6869 val* var163 /* : MProperty */;
6870 val* var164 /* : String */;
6871 val* var166 /* : String */;
6872 val* var167 /* : String */;
6873 var1 = self->attrs[COLOR_nitc__model__MPropDef___full_name].val != NULL; /* _full_name on <self:MPropDef> */
6874 if(likely(var1)) {
6875 var2 = self->attrs[COLOR_nitc__model__MPropDef___full_name].val; /* _full_name on <self:MPropDef> */
6876 if (unlikely(var2 == NULL)) {
6877 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_name");
6878 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2250);
6879 fatal_exit(1);
6880 }
6881 } else {
6882 {
6883 var5 = NEW_core__FlatBuffer(&type_core__FlatBuffer);
6884 {
6885 { /* Inline flat#FlatBuffer#init (var5) on <var5:FlatBuffer> */
6886 {
6887 ((void(*)(val* self))(var5->class->vft[COLOR_core___core__FlatBuffer___core__kernel__Object__init]))(var5); /* init on <var5:FlatBuffer>*/
6888 }
6889 RET_LABEL6:(void)0;
6890 }
6891 }
6892 var_res = var5;
6893 {
6894 { /* Inline model#MPropDef#mclassdef (self) on <self:MPropDef> */
6895 var9 = self->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <self:MPropDef> */
6896 if (unlikely(var9 == NULL)) {
6897 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
6898 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
6899 fatal_exit(1);
6900 }
6901 var7 = var9;
6902 RET_LABEL8:(void)0;
6903 }
6904 }
6905 {
6906 var10 = nitc___nitc__MClassDef___nitc__model_base__MEntity__full_name(var7);
6907 }
6908 {
6909 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var10); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
6910 }
6911 if (likely(varonce!=NULL)) {
6912 var11 = varonce;
6913 } else {
6914 var12 = "#";
6915 var13 = core__flat___NativeString___to_s_full(var12, 1l, 1l);
6916 var11 = var13;
6917 varonce = var11;
6918 }
6919 {
6920 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var11); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
6921 }
6922 {
6923 { /* Inline model#MPropDef#mclassdef (self) on <self:MPropDef> */
6924 var16 = self->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <self:MPropDef> */
6925 if (unlikely(var16 == NULL)) {
6926 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
6927 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
6928 fatal_exit(1);
6929 }
6930 var14 = var16;
6931 RET_LABEL15:(void)0;
6932 }
6933 }
6934 {
6935 { /* Inline model#MClassDef#mclass (var14) on <var14:MClassDef> */
6936 var19 = var14->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var14:MClassDef> */
6937 if (unlikely(var19 == NULL)) {
6938 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6939 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
6940 fatal_exit(1);
6941 }
6942 var17 = var19;
6943 RET_LABEL18:(void)0;
6944 }
6945 }
6946 {
6947 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
6948 var22 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
6949 if (unlikely(var22 == NULL)) {
6950 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6951 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
6952 fatal_exit(1);
6953 }
6954 var20 = var22;
6955 RET_LABEL21:(void)0;
6956 }
6957 }
6958 {
6959 { /* Inline model#MProperty#intro_mclassdef (var20) on <var20:MProperty> */
6960 var25 = var20->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var20:MProperty> */
6961 if (unlikely(var25 == NULL)) {
6962 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
6963 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
6964 fatal_exit(1);
6965 }
6966 var23 = var25;
6967 RET_LABEL24:(void)0;
6968 }
6969 }
6970 {
6971 { /* Inline model#MClassDef#mclass (var23) on <var23:MClassDef> */
6972 var28 = var23->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var23:MClassDef> */
6973 if (unlikely(var28 == NULL)) {
6974 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6975 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
6976 fatal_exit(1);
6977 }
6978 var26 = var28;
6979 RET_LABEL27:(void)0;
6980 }
6981 }
6982 {
6983 { /* Inline kernel#Object#== (var17,var26) on <var17:MClass> */
6984 var_other = var26;
6985 {
6986 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:MClass> */
6987 var33 = var17 == var_other;
6988 var31 = var33;
6989 goto RET_LABEL32;
6990 RET_LABEL32:(void)0;
6991 }
6992 }
6993 var29 = var31;
6994 goto RET_LABEL30;
6995 RET_LABEL30:(void)0;
6996 }
6997 }
6998 if (var29){
6999 {
7000 var34 = nitc___nitc__MPropDef___nitc__model_base__MEntity__name(self);
7001 }
7002 {
7003 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var34); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
7004 }
7005 } else {
7006 {
7007 { /* Inline model#MPropDef#mclassdef (self) on <self:MPropDef> */
7008 var37 = self->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <self:MPropDef> */
7009 if (unlikely(var37 == NULL)) {
7010 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
7011 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
7012 fatal_exit(1);
7013 }
7014 var35 = var37;
7015 RET_LABEL36:(void)0;
7016 }
7017 }
7018 {
7019 { /* Inline model#MClassDef#mmodule (var35) on <var35:MClassDef> */
7020 var40 = var35->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var35:MClassDef> */
7021 if (unlikely(var40 == NULL)) {
7022 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7023 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
7024 fatal_exit(1);
7025 }
7026 var38 = var40;
7027 RET_LABEL39:(void)0;
7028 }
7029 }
7030 {
7031 var41 = nitc___nitc__MModule___mpackage(var38);
7032 }
7033 {
7034 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
7035 var44 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
7036 if (unlikely(var44 == NULL)) {
7037 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7038 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
7039 fatal_exit(1);
7040 }
7041 var42 = var44;
7042 RET_LABEL43:(void)0;
7043 }
7044 }
7045 {
7046 { /* Inline model#MProperty#intro_mclassdef (var42) on <var42:MProperty> */
7047 var47 = var42->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var42:MProperty> */
7048 if (unlikely(var47 == NULL)) {
7049 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7050 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
7051 fatal_exit(1);
7052 }
7053 var45 = var47;
7054 RET_LABEL46:(void)0;
7055 }
7056 }
7057 {
7058 { /* Inline model#MClassDef#mmodule (var45) on <var45:MClassDef> */
7059 var50 = var45->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var45:MClassDef> */
7060 if (unlikely(var50 == NULL)) {
7061 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7062 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
7063 fatal_exit(1);
7064 }
7065 var48 = var50;
7066 RET_LABEL49:(void)0;
7067 }
7068 }
7069 {
7070 var51 = nitc___nitc__MModule___mpackage(var48);
7071 }
7072 if (var41 == NULL) {
7073 var52 = (var51 != NULL);
7074 } else {
7075 { /* Inline kernel#Object#!= (var41,var51) on <var41:nullable MPackage> */
7076 var_other55 = var51;
7077 {
7078 var56 = ((short int(*)(val* self, val* p0))(var41->class->vft[COLOR_core__kernel__Object___61d_61d]))(var41, var_other55); /* == on <var41:nullable MPackage(MPackage)>*/
7079 }
7080 var57 = !var56;
7081 var53 = var57;
7082 goto RET_LABEL54;
7083 RET_LABEL54:(void)0;
7084 }
7085 var52 = var53;
7086 }
7087 if (var52){
7088 {
7089 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
7090 var60 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
7091 if (unlikely(var60 == NULL)) {
7092 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7093 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
7094 fatal_exit(1);
7095 }
7096 var58 = var60;
7097 RET_LABEL59:(void)0;
7098 }
7099 }
7100 {
7101 { /* Inline model#MProperty#intro_mclassdef (var58) on <var58:MProperty> */
7102 var63 = var58->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var58:MProperty> */
7103 if (unlikely(var63 == NULL)) {
7104 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7105 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
7106 fatal_exit(1);
7107 }
7108 var61 = var63;
7109 RET_LABEL62:(void)0;
7110 }
7111 }
7112 {
7113 { /* Inline model#MClassDef#mmodule (var61) on <var61:MClassDef> */
7114 var66 = var61->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var61:MClassDef> */
7115 if (unlikely(var66 == NULL)) {
7116 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7117 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
7118 fatal_exit(1);
7119 }
7120 var64 = var66;
7121 RET_LABEL65:(void)0;
7122 }
7123 }
7124 {
7125 var67 = nitc___nitc__MModule___nitc__model_base__MEntity__full_name(var64);
7126 }
7127 {
7128 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var67); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
7129 }
7130 if (likely(varonce68!=NULL)) {
7131 var69 = varonce68;
7132 } else {
7133 var70 = "::";
7134 var71 = core__flat___NativeString___to_s_full(var70, 2l, 2l);
7135 var69 = var71;
7136 varonce68 = var69;
7137 }
7138 {
7139 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var69); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
7140 }
7141 } else {
7142 {
7143 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
7144 var74 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
7145 if (unlikely(var74 == NULL)) {
7146 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7147 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
7148 fatal_exit(1);
7149 }
7150 var72 = var74;
7151 RET_LABEL73:(void)0;
7152 }
7153 }
7154 {
7155 { /* Inline model#MProperty#visibility (var72) on <var72:MProperty> */
7156 var77 = var72->attrs[COLOR_nitc__model__MProperty___visibility].val; /* _visibility on <var72:MProperty> */
7157 if (unlikely(var77 == NULL)) {
7158 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
7159 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1967);
7160 fatal_exit(1);
7161 }
7162 var75 = var77;
7163 RET_LABEL76:(void)0;
7164 }
7165 }
7166 var78 = glob_sys;
7167 {
7168 var79 = nitc__model_base___core__Sys___private_visibility(var78);
7169 }
7170 {
7171 var80 = core___core__Comparable____60d_61d(var75, var79);
7172 }
7173 if (var80){
7174 {
7175 { /* Inline model#MPropDef#mclassdef (self) on <self:MPropDef> */
7176 var83 = self->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <self:MPropDef> */
7177 if (unlikely(var83 == NULL)) {
7178 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
7179 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
7180 fatal_exit(1);
7181 }
7182 var81 = var83;
7183 RET_LABEL82:(void)0;
7184 }
7185 }
7186 {
7187 { /* Inline model#MClassDef#mmodule (var81) on <var81:MClassDef> */
7188 var86 = var81->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var81:MClassDef> */
7189 if (unlikely(var86 == NULL)) {
7190 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7191 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
7192 fatal_exit(1);
7193 }
7194 var84 = var86;
7195 RET_LABEL85:(void)0;
7196 }
7197 }
7198 {
7199 { /* Inline model#MPropDef#mclassdef (self) on <self:MPropDef> */
7200 var89 = self->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <self:MPropDef> */
7201 if (unlikely(var89 == NULL)) {
7202 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
7203 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
7204 fatal_exit(1);
7205 }
7206 var87 = var89;
7207 RET_LABEL88:(void)0;
7208 }
7209 }
7210 {
7211 { /* Inline model#MClassDef#mclass (var87) on <var87:MClassDef> */
7212 var92 = var87->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var87:MClassDef> */
7213 if (unlikely(var92 == NULL)) {
7214 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7215 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
7216 fatal_exit(1);
7217 }
7218 var90 = var92;
7219 RET_LABEL91:(void)0;
7220 }
7221 }
7222 {
7223 { /* Inline model#MClass#visibility (var90) on <var90:MClass> */
7224 var95 = var90->attrs[COLOR_nitc__model__MClass___visibility].val; /* _visibility on <var90:MClass> */
7225 if (unlikely(var95 == NULL)) {
7226 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
7227 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 463);
7228 fatal_exit(1);
7229 }
7230 var93 = var95;
7231 RET_LABEL94:(void)0;
7232 }
7233 }
7234 {
7235 var96 = nitc___nitc__MModule___namespace_for(var84, var93);
7236 }
7237 {
7238 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
7239 var99 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
7240 if (unlikely(var99 == NULL)) {
7241 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7242 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
7243 fatal_exit(1);
7244 }
7245 var97 = var99;
7246 RET_LABEL98:(void)0;
7247 }
7248 }
7249 {
7250 { /* Inline model#MProperty#intro_mclassdef (var97) on <var97:MProperty> */
7251 var102 = var97->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var97:MProperty> */
7252 if (unlikely(var102 == NULL)) {
7253 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7254 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
7255 fatal_exit(1);
7256 }
7257 var100 = var102;
7258 RET_LABEL101:(void)0;
7259 }
7260 }
7261 {
7262 { /* Inline model#MClassDef#mmodule (var100) on <var100:MClassDef> */
7263 var105 = var100->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var100:MClassDef> */
7264 if (unlikely(var105 == NULL)) {
7265 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7266 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
7267 fatal_exit(1);
7268 }
7269 var103 = var105;
7270 RET_LABEL104:(void)0;
7271 }
7272 }
7273 {
7274 var106 = nitc___nitc__MModule___mpackage(var103);
7275 }
7276 {
7277 { /* Inline kernel#Object#!= (var96,var106) on <var96:String> */
7278 var_other55 = var106;
7279 {
7280 var109 = ((short int(*)(val* self, val* p0))(var96->class->vft[COLOR_core__kernel__Object___61d_61d]))(var96, var_other55); /* == on <var96:String>*/
7281 }
7282 var110 = !var109;
7283 var107 = var110;
7284 goto RET_LABEL108;
7285 RET_LABEL108:(void)0;
7286 }
7287 }
7288 if (var107){
7289 if (likely(varonce111!=NULL)) {
7290 var112 = varonce111;
7291 } else {
7292 var113 = "::";
7293 var114 = core__flat___NativeString___to_s_full(var113, 2l, 2l);
7294 var112 = var114;
7295 varonce111 = var112;
7296 }
7297 {
7298 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var112); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
7299 }
7300 {
7301 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
7302 var117 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
7303 if (unlikely(var117 == NULL)) {
7304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7305 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
7306 fatal_exit(1);
7307 }
7308 var115 = var117;
7309 RET_LABEL116:(void)0;
7310 }
7311 }
7312 {
7313 { /* Inline model#MProperty#intro_mclassdef (var115) on <var115:MProperty> */
7314 var120 = var115->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var115:MProperty> */
7315 if (unlikely(var120 == NULL)) {
7316 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7317 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
7318 fatal_exit(1);
7319 }
7320 var118 = var120;
7321 RET_LABEL119:(void)0;
7322 }
7323 }
7324 {
7325 { /* Inline model#MClassDef#mmodule (var118) on <var118:MClassDef> */
7326 var123 = var118->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var118:MClassDef> */
7327 if (unlikely(var123 == NULL)) {
7328 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7329 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
7330 fatal_exit(1);
7331 }
7332 var121 = var123;
7333 RET_LABEL122:(void)0;
7334 }
7335 }
7336 {
7337 { /* Inline mmodule#MModule#name (var121) on <var121:MModule> */
7338 var126 = var121->attrs[COLOR_nitc__mmodule__MModule___name].val; /* _name on <var121:MModule> */
7339 if (unlikely(var126 == NULL)) {
7340 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
7341 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 95);
7342 fatal_exit(1);
7343 }
7344 var124 = var126;
7345 RET_LABEL125:(void)0;
7346 }
7347 }
7348 {
7349 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var124); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
7350 }
7351 if (likely(varonce127!=NULL)) {
7352 var128 = varonce127;
7353 } else {
7354 var129 = "::";
7355 var130 = core__flat___NativeString___to_s_full(var129, 2l, 2l);
7356 var128 = var130;
7357 varonce127 = var128;
7358 }
7359 {
7360 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var128); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
7361 }
7362 } else {
7363 }
7364 } else {
7365 }
7366 }
7367 {
7368 { /* Inline model#MPropDef#mclassdef (self) on <self:MPropDef> */
7369 var133 = self->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <self:MPropDef> */
7370 if (unlikely(var133 == NULL)) {
7371 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
7372 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
7373 fatal_exit(1);
7374 }
7375 var131 = var133;
7376 RET_LABEL132:(void)0;
7377 }
7378 }
7379 {
7380 { /* Inline model#MClassDef#mclass (var131) on <var131:MClassDef> */
7381 var136 = var131->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var131:MClassDef> */
7382 if (unlikely(var136 == NULL)) {
7383 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7384 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
7385 fatal_exit(1);
7386 }
7387 var134 = var136;
7388 RET_LABEL135:(void)0;
7389 }
7390 }
7391 {
7392 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
7393 var139 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
7394 if (unlikely(var139 == NULL)) {
7395 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7396 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
7397 fatal_exit(1);
7398 }
7399 var137 = var139;
7400 RET_LABEL138:(void)0;
7401 }
7402 }
7403 {
7404 { /* Inline model#MProperty#intro_mclassdef (var137) on <var137:MProperty> */
7405 var142 = var137->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var137:MProperty> */
7406 if (unlikely(var142 == NULL)) {
7407 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7408 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
7409 fatal_exit(1);
7410 }
7411 var140 = var142;
7412 RET_LABEL141:(void)0;
7413 }
7414 }
7415 {
7416 { /* Inline model#MClassDef#mclass (var140) on <var140:MClassDef> */
7417 var145 = var140->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var140:MClassDef> */
7418 if (unlikely(var145 == NULL)) {
7419 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7420 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
7421 fatal_exit(1);
7422 }
7423 var143 = var145;
7424 RET_LABEL144:(void)0;
7425 }
7426 }
7427 {
7428 { /* Inline kernel#Object#!= (var134,var143) on <var134:MClass> */
7429 var_other55 = var143;
7430 {
7431 var148 = ((short int(*)(val* self, val* p0))(var134->class->vft[COLOR_core__kernel__Object___61d_61d]))(var134, var_other55); /* == on <var134:MClass>*/
7432 }
7433 var149 = !var148;
7434 var146 = var149;
7435 goto RET_LABEL147;
7436 RET_LABEL147:(void)0;
7437 }
7438 }
7439 if (var146){
7440 {
7441 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
7442 var152 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
7443 if (unlikely(var152 == NULL)) {
7444 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7445 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
7446 fatal_exit(1);
7447 }
7448 var150 = var152;
7449 RET_LABEL151:(void)0;
7450 }
7451 }
7452 {
7453 { /* Inline model#MProperty#intro_mclassdef (var150) on <var150:MProperty> */
7454 var155 = var150->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var150:MProperty> */
7455 if (unlikely(var155 == NULL)) {
7456 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7457 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
7458 fatal_exit(1);
7459 }
7460 var153 = var155;
7461 RET_LABEL154:(void)0;
7462 }
7463 }
7464 {
7465 var156 = nitc___nitc__MClassDef___nitc__model_base__MEntity__name(var153);
7466 }
7467 {
7468 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var156); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
7469 }
7470 if (likely(varonce157!=NULL)) {
7471 var158 = varonce157;
7472 } else {
7473 var159 = "::";
7474 var160 = core__flat___NativeString___to_s_full(var159, 2l, 2l);
7475 var158 = var160;
7476 varonce157 = var158;
7477 }
7478 {
7479 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var158); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
7480 }
7481 } else {
7482 }
7483 {
7484 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
7485 var163 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
7486 if (unlikely(var163 == NULL)) {
7487 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7488 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
7489 fatal_exit(1);
7490 }
7491 var161 = var163;
7492 RET_LABEL162:(void)0;
7493 }
7494 }
7495 {
7496 { /* Inline model#MProperty#name (var161) on <var161:MProperty> */
7497 var166 = var161->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <var161:MProperty> */
7498 if (unlikely(var166 == NULL)) {
7499 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
7500 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1951);
7501 fatal_exit(1);
7502 }
7503 var164 = var166;
7504 RET_LABEL165:(void)0;
7505 }
7506 }
7507 {
7508 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var164); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
7509 }
7510 }
7511 {
7512 var167 = core___core__FlatBuffer___core__abstract_text__Object__to_s(var_res);
7513 }
7514 var3 = var167;
7515 goto RET_LABEL4;
7516 RET_LABEL4:(void)0;
7517 }
7518 self->attrs[COLOR_nitc__model__MPropDef___full_name].val = var3; /* _full_name on <self:MPropDef> */
7519 var2 = var3;
7520 }
7521 var = var2;
7522 RET_LABEL:;
7523 return var;
7524 }
7525 /* method model#MPropDef#c_name for (self: MPropDef): String */
7526 val* nitc___nitc__MPropDef___nitc__model_base__MEntity__c_name(val* self) {
7527 val* var /* : String */;
7528 short int var1 /* : Bool */;
7529 val* var2 /* : String */;
7530 val* var3 /* : String */;
7531 val* var5 /* : FlatBuffer */;
7532 val* var_res /* var res: FlatBuffer */;
7533 val* var7 /* : MClassDef */;
7534 val* var9 /* : MClassDef */;
7535 val* var10 /* : String */;
7536 static val* varonce;
7537 val* var11 /* : String */;
7538 char* var12 /* : NativeString */;
7539 val* var13 /* : String */;
7540 val* var14 /* : MClassDef */;
7541 val* var16 /* : MClassDef */;
7542 val* var17 /* : MClass */;
7543 val* var19 /* : MClass */;
7544 val* var20 /* : MProperty */;
7545 val* var22 /* : MProperty */;
7546 val* var23 /* : MClassDef */;
7547 val* var25 /* : MClassDef */;
7548 val* var26 /* : MClass */;
7549 val* var28 /* : MClass */;
7550 short int var29 /* : Bool */;
7551 val* var_other /* var other: nullable Object */;
7552 short int var31 /* : Bool */;
7553 short int var33 /* : Bool */;
7554 val* var34 /* : String */;
7555 val* var35 /* : String */;
7556 val* var36 /* : MClassDef */;
7557 val* var38 /* : MClassDef */;
7558 val* var39 /* : MModule */;
7559 val* var41 /* : MModule */;
7560 val* var42 /* : MProperty */;
7561 val* var44 /* : MProperty */;
7562 val* var45 /* : MClassDef */;
7563 val* var47 /* : MClassDef */;
7564 val* var48 /* : MModule */;
7565 val* var50 /* : MModule */;
7566 short int var51 /* : Bool */;
7567 val* var_other53 /* var other: nullable Object */;
7568 short int var54 /* : Bool */;
7569 short int var55 /* : Bool */;
7570 val* var56 /* : MProperty */;
7571 val* var58 /* : MProperty */;
7572 val* var59 /* : MClassDef */;
7573 val* var61 /* : MClassDef */;
7574 val* var62 /* : MModule */;
7575 val* var64 /* : MModule */;
7576 val* var65 /* : String */;
7577 static val* varonce66;
7578 val* var67 /* : String */;
7579 char* var68 /* : NativeString */;
7580 val* var69 /* : String */;
7581 val* var70 /* : MClassDef */;
7582 val* var72 /* : MClassDef */;
7583 val* var73 /* : MClass */;
7584 val* var75 /* : MClass */;
7585 val* var76 /* : MProperty */;
7586 val* var78 /* : MProperty */;
7587 val* var79 /* : MClassDef */;
7588 val* var81 /* : MClassDef */;
7589 val* var82 /* : MClass */;
7590 val* var84 /* : MClass */;
7591 short int var85 /* : Bool */;
7592 short int var87 /* : Bool */;
7593 short int var88 /* : Bool */;
7594 val* var89 /* : MProperty */;
7595 val* var91 /* : MProperty */;
7596 val* var92 /* : MClassDef */;
7597 val* var94 /* : MClassDef */;
7598 val* var95 /* : String */;
7599 val* var96 /* : String */;
7600 static val* varonce97;
7601 val* var98 /* : String */;
7602 char* var99 /* : NativeString */;
7603 val* var100 /* : String */;
7604 val* var101 /* : MProperty */;
7605 val* var103 /* : MProperty */;
7606 val* var104 /* : String */;
7607 val* var106 /* : String */;
7608 val* var107 /* : String */;
7609 val* var108 /* : String */;
7610 var1 = self->attrs[COLOR_nitc__model__MPropDef___c_name].val != NULL; /* _c_name on <self:MPropDef> */
7611 if(likely(var1)) {
7612 var2 = self->attrs[COLOR_nitc__model__MPropDef___c_name].val; /* _c_name on <self:MPropDef> */
7613 if (unlikely(var2 == NULL)) {
7614 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_name");
7615 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2299);
7616 fatal_exit(1);
7617 }
7618 } else {
7619 {
7620 var5 = NEW_core__FlatBuffer(&type_core__FlatBuffer);
7621 {
7622 { /* Inline flat#FlatBuffer#init (var5) on <var5:FlatBuffer> */
7623 {
7624 ((void(*)(val* self))(var5->class->vft[COLOR_core___core__FlatBuffer___core__kernel__Object__init]))(var5); /* init on <var5:FlatBuffer>*/
7625 }
7626 RET_LABEL6:(void)0;
7627 }
7628 }
7629 var_res = var5;
7630 {
7631 { /* Inline model#MPropDef#mclassdef (self) on <self:MPropDef> */
7632 var9 = self->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <self:MPropDef> */
7633 if (unlikely(var9 == NULL)) {
7634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
7635 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
7636 fatal_exit(1);
7637 }
7638 var7 = var9;
7639 RET_LABEL8:(void)0;
7640 }
7641 }
7642 {
7643 var10 = nitc___nitc__MClassDef___nitc__model_base__MEntity__c_name(var7);
7644 }
7645 {
7646 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var10); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
7647 }
7648 if (likely(varonce!=NULL)) {
7649 var11 = varonce;
7650 } else {
7651 var12 = "___";
7652 var13 = core__flat___NativeString___to_s_full(var12, 3l, 3l);
7653 var11 = var13;
7654 varonce = var11;
7655 }
7656 {
7657 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var11); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
7658 }
7659 {
7660 { /* Inline model#MPropDef#mclassdef (self) on <self:MPropDef> */
7661 var16 = self->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <self:MPropDef> */
7662 if (unlikely(var16 == NULL)) {
7663 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
7664 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
7665 fatal_exit(1);
7666 }
7667 var14 = var16;
7668 RET_LABEL15:(void)0;
7669 }
7670 }
7671 {
7672 { /* Inline model#MClassDef#mclass (var14) on <var14:MClassDef> */
7673 var19 = var14->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var14:MClassDef> */
7674 if (unlikely(var19 == NULL)) {
7675 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7676 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
7677 fatal_exit(1);
7678 }
7679 var17 = var19;
7680 RET_LABEL18:(void)0;
7681 }
7682 }
7683 {
7684 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
7685 var22 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
7686 if (unlikely(var22 == NULL)) {
7687 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7688 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
7689 fatal_exit(1);
7690 }
7691 var20 = var22;
7692 RET_LABEL21:(void)0;
7693 }
7694 }
7695 {
7696 { /* Inline model#MProperty#intro_mclassdef (var20) on <var20:MProperty> */
7697 var25 = var20->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var20:MProperty> */
7698 if (unlikely(var25 == NULL)) {
7699 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7700 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
7701 fatal_exit(1);
7702 }
7703 var23 = var25;
7704 RET_LABEL24:(void)0;
7705 }
7706 }
7707 {
7708 { /* Inline model#MClassDef#mclass (var23) on <var23:MClassDef> */
7709 var28 = var23->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var23:MClassDef> */
7710 if (unlikely(var28 == NULL)) {
7711 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7712 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
7713 fatal_exit(1);
7714 }
7715 var26 = var28;
7716 RET_LABEL27:(void)0;
7717 }
7718 }
7719 {
7720 { /* Inline kernel#Object#== (var17,var26) on <var17:MClass> */
7721 var_other = var26;
7722 {
7723 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:MClass> */
7724 var33 = var17 == var_other;
7725 var31 = var33;
7726 goto RET_LABEL32;
7727 RET_LABEL32:(void)0;
7728 }
7729 }
7730 var29 = var31;
7731 goto RET_LABEL30;
7732 RET_LABEL30:(void)0;
7733 }
7734 }
7735 if (var29){
7736 {
7737 var34 = nitc___nitc__MPropDef___nitc__model_base__MEntity__name(self);
7738 }
7739 {
7740 var35 = core___core__Text___to_cmangle(var34);
7741 }
7742 {
7743 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var35); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
7744 }
7745 } else {
7746 {
7747 { /* Inline model#MPropDef#mclassdef (self) on <self:MPropDef> */
7748 var38 = self->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <self:MPropDef> */
7749 if (unlikely(var38 == NULL)) {
7750 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
7751 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
7752 fatal_exit(1);
7753 }
7754 var36 = var38;
7755 RET_LABEL37:(void)0;
7756 }
7757 }
7758 {
7759 { /* Inline model#MClassDef#mmodule (var36) on <var36:MClassDef> */
7760 var41 = var36->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var36:MClassDef> */
7761 if (unlikely(var41 == NULL)) {
7762 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7763 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
7764 fatal_exit(1);
7765 }
7766 var39 = var41;
7767 RET_LABEL40:(void)0;
7768 }
7769 }
7770 {
7771 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
7772 var44 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
7773 if (unlikely(var44 == NULL)) {
7774 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7775 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
7776 fatal_exit(1);
7777 }
7778 var42 = var44;
7779 RET_LABEL43:(void)0;
7780 }
7781 }
7782 {
7783 { /* Inline model#MProperty#intro_mclassdef (var42) on <var42:MProperty> */
7784 var47 = var42->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var42:MProperty> */
7785 if (unlikely(var47 == NULL)) {
7786 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7787 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
7788 fatal_exit(1);
7789 }
7790 var45 = var47;
7791 RET_LABEL46:(void)0;
7792 }
7793 }
7794 {
7795 { /* Inline model#MClassDef#mmodule (var45) on <var45:MClassDef> */
7796 var50 = var45->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var45:MClassDef> */
7797 if (unlikely(var50 == NULL)) {
7798 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7799 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
7800 fatal_exit(1);
7801 }
7802 var48 = var50;
7803 RET_LABEL49:(void)0;
7804 }
7805 }
7806 {
7807 { /* Inline kernel#Object#!= (var39,var48) on <var39:MModule> */
7808 var_other53 = var48;
7809 {
7810 var54 = ((short int(*)(val* self, val* p0))(var39->class->vft[COLOR_core__kernel__Object___61d_61d]))(var39, var_other53); /* == on <var39:MModule>*/
7811 }
7812 var55 = !var54;
7813 var51 = var55;
7814 goto RET_LABEL52;
7815 RET_LABEL52:(void)0;
7816 }
7817 }
7818 if (var51){
7819 {
7820 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
7821 var58 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
7822 if (unlikely(var58 == NULL)) {
7823 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7824 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
7825 fatal_exit(1);
7826 }
7827 var56 = var58;
7828 RET_LABEL57:(void)0;
7829 }
7830 }
7831 {
7832 { /* Inline model#MProperty#intro_mclassdef (var56) on <var56:MProperty> */
7833 var61 = var56->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var56:MProperty> */
7834 if (unlikely(var61 == NULL)) {
7835 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7836 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
7837 fatal_exit(1);
7838 }
7839 var59 = var61;
7840 RET_LABEL60:(void)0;
7841 }
7842 }
7843 {
7844 { /* Inline model#MClassDef#mmodule (var59) on <var59:MClassDef> */
7845 var64 = var59->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var59:MClassDef> */
7846 if (unlikely(var64 == NULL)) {
7847 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7848 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
7849 fatal_exit(1);
7850 }
7851 var62 = var64;
7852 RET_LABEL63:(void)0;
7853 }
7854 }
7855 {
7856 var65 = nitc___nitc__MModule___nitc__model_base__MEntity__c_name(var62);
7857 }
7858 {
7859 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var65); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
7860 }
7861 if (likely(varonce66!=NULL)) {
7862 var67 = varonce66;
7863 } else {
7864 var68 = "__";
7865 var69 = core__flat___NativeString___to_s_full(var68, 2l, 2l);
7866 var67 = var69;
7867 varonce66 = var67;
7868 }
7869 {
7870 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var67); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
7871 }
7872 } else {
7873 }
7874 {
7875 { /* Inline model#MPropDef#mclassdef (self) on <self:MPropDef> */
7876 var72 = self->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <self:MPropDef> */
7877 if (unlikely(var72 == NULL)) {
7878 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
7879 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
7880 fatal_exit(1);
7881 }
7882 var70 = var72;
7883 RET_LABEL71:(void)0;
7884 }
7885 }
7886 {
7887 { /* Inline model#MClassDef#mclass (var70) on <var70:MClassDef> */
7888 var75 = var70->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var70:MClassDef> */
7889 if (unlikely(var75 == NULL)) {
7890 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7891 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
7892 fatal_exit(1);
7893 }
7894 var73 = var75;
7895 RET_LABEL74:(void)0;
7896 }
7897 }
7898 {
7899 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
7900 var78 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
7901 if (unlikely(var78 == NULL)) {
7902 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7903 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
7904 fatal_exit(1);
7905 }
7906 var76 = var78;
7907 RET_LABEL77:(void)0;
7908 }
7909 }
7910 {
7911 { /* Inline model#MProperty#intro_mclassdef (var76) on <var76:MProperty> */
7912 var81 = var76->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var76:MProperty> */
7913 if (unlikely(var81 == NULL)) {
7914 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7915 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
7916 fatal_exit(1);
7917 }
7918 var79 = var81;
7919 RET_LABEL80:(void)0;
7920 }
7921 }
7922 {
7923 { /* Inline model#MClassDef#mclass (var79) on <var79:MClassDef> */
7924 var84 = var79->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var79:MClassDef> */
7925 if (unlikely(var84 == NULL)) {
7926 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7927 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 576);
7928 fatal_exit(1);
7929 }
7930 var82 = var84;
7931 RET_LABEL83:(void)0;
7932 }
7933 }
7934 {
7935 { /* Inline kernel#Object#!= (var73,var82) on <var73:MClass> */
7936 var_other53 = var82;
7937 {
7938 var87 = ((short int(*)(val* self, val* p0))(var73->class->vft[COLOR_core__kernel__Object___61d_61d]))(var73, var_other53); /* == on <var73:MClass>*/
7939 }
7940 var88 = !var87;
7941 var85 = var88;
7942 goto RET_LABEL86;
7943 RET_LABEL86:(void)0;
7944 }
7945 }
7946 if (var85){
7947 {
7948 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
7949 var91 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
7950 if (unlikely(var91 == NULL)) {
7951 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7952 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
7953 fatal_exit(1);
7954 }
7955 var89 = var91;
7956 RET_LABEL90:(void)0;
7957 }
7958 }
7959 {
7960 { /* Inline model#MProperty#intro_mclassdef (var89) on <var89:MProperty> */
7961 var94 = var89->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var89:MProperty> */
7962 if (unlikely(var94 == NULL)) {
7963 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7964 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
7965 fatal_exit(1);
7966 }
7967 var92 = var94;
7968 RET_LABEL93:(void)0;
7969 }
7970 }
7971 {
7972 var95 = nitc___nitc__MClassDef___nitc__model_base__MEntity__name(var92);
7973 }
7974 {
7975 var96 = core___core__Text___to_cmangle(var95);
7976 }
7977 {
7978 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var96); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
7979 }
7980 if (likely(varonce97!=NULL)) {
7981 var98 = varonce97;
7982 } else {
7983 var99 = "__";
7984 var100 = core__flat___NativeString___to_s_full(var99, 2l, 2l);
7985 var98 = var100;
7986 varonce97 = var98;
7987 }
7988 {
7989 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var98); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
7990 }
7991 } else {
7992 }
7993 {
7994 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
7995 var103 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
7996 if (unlikely(var103 == NULL)) {
7997 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7998 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
7999 fatal_exit(1);
8000 }
8001 var101 = var103;
8002 RET_LABEL102:(void)0;
8003 }
8004 }
8005 {
8006 { /* Inline model#MProperty#name (var101) on <var101:MProperty> */
8007 var106 = var101->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <var101:MProperty> */
8008 if (unlikely(var106 == NULL)) {
8009 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
8010 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1951);
8011 fatal_exit(1);
8012 }
8013 var104 = var106;
8014 RET_LABEL105:(void)0;
8015 }
8016 }
8017 {
8018 var107 = core___core__Text___to_cmangle(var104);
8019 }
8020 {
8021 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_res, var107); /* Direct call flat#FlatBuffer#append on <var_res:FlatBuffer>*/
8022 }
8023 }
8024 {
8025 var108 = core___core__FlatBuffer___core__abstract_text__Object__to_s(var_res);
8026 }
8027 var3 = var108;
8028 goto RET_LABEL4;
8029 RET_LABEL4:(void)0;
8030 }
8031 self->attrs[COLOR_nitc__model__MPropDef___c_name].val = var3; /* _c_name on <self:MPropDef> */
8032 var2 = var3;
8033 }
8034 var = var2;
8035 RET_LABEL:;
8036 return var;
8037 }
8038 /* method model#MPropDef#model for (self: MPropDef): Model */
8039 val* nitc___nitc__MPropDef___nitc__model_base__MEntity__model(val* self) {
8040 val* var /* : Model */;
8041 val* var1 /* : MClassDef */;
8042 val* var3 /* : MClassDef */;
8043 val* var4 /* : Model */;
8044 {
8045 { /* Inline model#MPropDef#mclassdef (self) on <self:MPropDef> */
8046 var3 = self->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <self:MPropDef> */
8047 if (unlikely(var3 == NULL)) {
8048 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
8049 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
8050 fatal_exit(1);
8051 }
8052 var1 = var3;
8053 RET_LABEL2:(void)0;
8054 }
8055 }
8056 {
8057 var4 = nitc___nitc__MClassDef___nitc__model_base__MEntity__model(var1);
8058 }
8059 var = var4;
8060 goto RET_LABEL;
8061 RET_LABEL:;
8062 return var;
8063 }
8064 /* method model#MPropDef#to_s for (self: MPropDef): String */
8065 val* nitc___nitc__MPropDef___core__abstract_text__Object__to_s(val* self) {
8066 val* var /* : String */;
8067 val* var1 /* : String */;
8068 var1 = self->attrs[COLOR_nitc__model__MPropDef___to_s].val; /* _to_s on <self:MPropDef> */
8069 if (unlikely(var1 == NULL)) {
8070 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
8071 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2321);
8072 fatal_exit(1);
8073 }
8074 var = var1;
8075 RET_LABEL:;
8076 return var;
8077 }
8078 /* method model#MPropDef#to_s= for (self: MPropDef, String) */
8079 void nitc___nitc__MPropDef___to_s_61d(val* self, val* p0) {
8080 self->attrs[COLOR_nitc__model__MPropDef___to_s].val = p0; /* _to_s on <self:MPropDef> */
8081 RET_LABEL:;
8082 }
8083 /* method model#MPropDef#is_intro for (self: MPropDef): Bool */
8084 short int nitc___nitc__MPropDef___is_intro(val* self) {
8085 short int var /* : Bool */;
8086 short int var1 /* : Bool */;
8087 val* var2 /* : MProperty */;
8088 val* var4 /* : MProperty */;
8089 short int var5 /* : Bool */;
8090 short int var_ /* var : Bool */;
8091 val* var6 /* : MProperty */;
8092 val* var8 /* : MProperty */;
8093 val* var9 /* : MPropDef */;
8094 val* var11 /* : MPropDef */;
8095 short int var12 /* : Bool */;
8096 val* var_other /* var other: nullable Object */;
8097 short int var14 /* : Bool */;
8098 short int var16 /* : Bool */;
8099 {
8100 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
8101 var4 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
8102 if (unlikely(var4 == NULL)) {
8103 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
8104 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
8105 fatal_exit(1);
8106 }
8107 var2 = var4;
8108 RET_LABEL3:(void)0;
8109 }
8110 }
8111 var5 = var2->attrs[COLOR_nitc__model__MProperty___intro].val != NULL; /* _intro on <var2:MProperty> */
8112 var_ = var5;
8113 if (var5){
8114 {
8115 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
8116 var8 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
8117 if (unlikely(var8 == NULL)) {
8118 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
8119 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
8120 fatal_exit(1);
8121 }
8122 var6 = var8;
8123 RET_LABEL7:(void)0;
8124 }
8125 }
8126 {
8127 { /* Inline model#MProperty#intro (var6) on <var6:MProperty> */
8128 var11 = var6->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var6:MProperty> */
8129 if (unlikely(var11 == NULL)) {
8130 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
8131 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1986);
8132 fatal_exit(1);
8133 }
8134 var9 = var11;
8135 RET_LABEL10:(void)0;
8136 }
8137 }
8138 {
8139 { /* Inline kernel#Object#== (var9,self) on <var9:MPropDef> */
8140 var_other = self;
8141 {
8142 { /* Inline kernel#Object#is_same_instance (var9,var_other) on <var9:MPropDef> */
8143 var16 = var9 == var_other;
8144 var14 = var16;
8145 goto RET_LABEL15;
8146 RET_LABEL15:(void)0;
8147 }
8148 }
8149 var12 = var14;
8150 goto RET_LABEL13;
8151 RET_LABEL13:(void)0;
8152 }
8153 }
8154 var1 = var12;
8155 } else {
8156 var1 = var_;
8157 }
8158 var = var1;
8159 goto RET_LABEL;
8160 RET_LABEL:;
8161 return var;
8162 }
8163 /* method model#MPropDef#lookup_next_definition for (self: MPropDef, MModule, MType): MPropDef */
8164 val* nitc___nitc__MPropDef___lookup_next_definition(val* self, val* p0, val* p1) {
8165 val* var /* : MPropDef */;
8166 val* var_mmodule /* var mmodule: MModule */;
8167 val* var_mtype /* var mtype: MType */;
8168 short int var1 /* : Bool */;
8169 short int var2 /* : Bool */;
8170 val* var3 /* : MProperty */;
8171 val* var5 /* : MProperty */;
8172 val* var6 /* : Array[MPropDef] */;
8173 val* var_mpropdefs /* var mpropdefs: Array[MPropDef] */;
8174 val* var7 /* : IndexedIterator[nullable Object] */;
8175 val* var_i /* var i: IndexedIterator[MPropDef] */;
8176 short int var8 /* : Bool */;
8177 short int var9 /* : Bool */;
8178 short int var_ /* var : Bool */;
8179 val* var10 /* : nullable Object */;
8180 short int var11 /* : Bool */;
8181 val* var_other /* var other: nullable Object */;
8182 short int var13 /* : Bool */;
8183 short int var14 /* : Bool */;
8184 short int var15 /* : Bool */;
8185 short int var16 /* : Bool */;
8186 val* var17 /* : nullable Object */;
8187 short int var18 /* : Bool */;
8188 int cltype;
8189 int idtype;
8190 const struct type* type_struct;
8191 const char* var_class_name;
8192 var_mmodule = p0;
8193 var_mtype = p1;
8194 {
8195 var1 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
8196 }
8197 var2 = !var1;
8198 if (unlikely(!var2)) {
8199 PRINT_ERROR("Runtime error: %s", "Assert failed");
8200 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2335);
8201 fatal_exit(1);
8202 }
8203 {
8204 { /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
8205 var5 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
8206 if (unlikely(var5 == NULL)) {
8207 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
8208 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
8209 fatal_exit(1);
8210 }
8211 var3 = var5;
8212 RET_LABEL4:(void)0;
8213 }
8214 }
8215 {
8216 var6 = nitc___nitc__MProperty___lookup_all_definitions(var3, var_mmodule, var_mtype);
8217 }
8218 var_mpropdefs = var6;
8219 {
8220 var7 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_mpropdefs);
8221 }
8222 var_i = var7;
8223 for(;;) {
8224 {
8225 var9 = ((short int(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_i); /* is_ok on <var_i:IndexedIterator[MPropDef]>*/
8226 }
8227 var_ = var9;
8228 if (var9){
8229 {
8230 var10 = ((val*(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_i); /* item on <var_i:IndexedIterator[MPropDef]>*/
8231 }
8232 {
8233 { /* Inline kernel#Object#!= (var10,self) on <var10:nullable Object(MPropDef)> */
8234 var_other = self;
8235 {
8236 var13 = ((short int(*)(val* self, val* p0))(var10->class->vft[COLOR_core__kernel__Object___61d_61d]))(var10, var_other); /* == on <var10:nullable Object(MPropDef)>*/
8237 }
8238 var14 = !var13;
8239 var11 = var14;
8240 goto RET_LABEL12;
8241 RET_LABEL12:(void)0;
8242 }
8243 }
8244 var8 = var11;
8245 } else {
8246 var8 = var_;
8247 }
8248 if (var8){
8249 {
8250 ((void(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_i); /* next on <var_i:IndexedIterator[MPropDef]>*/
8251 }
8252 } else {
8253 goto BREAK_label;
8254 }
8255 }
8256 BREAK_label: (void)0;
8257 {
8258 var15 = ((short int(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_i); /* is_ok on <var_i:IndexedIterator[MPropDef]>*/
8259 }
8260 if (unlikely(!var15)) {
8261 PRINT_ERROR("Runtime error: %s", "Assert \'has_property\' failed");
8262 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2340);
8263 fatal_exit(1);
8264 }
8265 {
8266 ((void(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_i); /* next on <var_i:IndexedIterator[MPropDef]>*/
8267 }
8268 {
8269 var16 = ((short int(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_i); /* is_ok on <var_i:IndexedIterator[MPropDef]>*/
8270 }
8271 if (unlikely(!var16)) {
8272 PRINT_ERROR("Runtime error: %s", "Assert \'has_next_property\' failed");
8273 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2342);
8274 fatal_exit(1);
8275 }
8276 {
8277 var17 = ((val*(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_i); /* item on <var_i:IndexedIterator[MPropDef]>*/
8278 }
8279 /* <var17:nullable Object(MPropDef)> isa MPROPDEF */
8280 type_struct = self->type->resolution_table->types[COLOR_nitc__model__MPropDef__MPROPDEF];
8281 cltype = type_struct->color;
8282 idtype = type_struct->id;
8283 if(cltype >= var17->type->table_size) {
8284 var18 = 0;
8285 } else {
8286 var18 = var17->type->type_table[cltype] == idtype;
8287 }
8288 if (unlikely(!var18)) {
8289 var_class_name = var17 == NULL ? "null" : var17->type->name;
8290 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPDEF", var_class_name);
8291 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2343);
8292 fatal_exit(1);
8293 }
8294 var = var17;
8295 goto RET_LABEL;
8296 RET_LABEL:;
8297 return var;
8298 }
8299 /* method model#MMethodDef#msignature for (self: MMethodDef): nullable MSignature */
8300 val* nitc___nitc__MMethodDef___msignature(val* self) {
8301 val* var /* : nullable MSignature */;
8302 val* var1 /* : nullable MSignature */;
8303 var1 = self->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <self:MMethodDef> */
8304 var = var1;
8305 RET_LABEL:;
8306 return var;
8307 }
8308 /* method model#MMethodDef#msignature= for (self: MMethodDef, nullable MSignature) */
8309 void nitc___nitc__MMethodDef___msignature_61d(val* self, val* p0) {
8310 self->attrs[COLOR_nitc__model__MMethodDef___msignature].val = p0; /* _msignature on <self:MMethodDef> */
8311 RET_LABEL:;
8312 }
8313 /* method model#MMethodDef#new_msignature for (self: MMethodDef): nullable MSignature */
8314 val* nitc___nitc__MMethodDef___new_msignature(val* self) {
8315 val* var /* : nullable MSignature */;
8316 val* var1 /* : nullable MSignature */;
8317 var1 = self->attrs[COLOR_nitc__model__MMethodDef___new_msignature].val; /* _new_msignature on <self:MMethodDef> */
8318 var = var1;
8319 RET_LABEL:;
8320 return var;
8321 }
8322 /* method model#MMethodDef#new_msignature= for (self: MMethodDef, nullable MSignature) */
8323 void nitc___nitc__MMethodDef___new_msignature_61d(val* self, val* p0) {
8324 self->attrs[COLOR_nitc__model__MMethodDef___new_msignature].val = p0; /* _new_msignature on <self:MMethodDef> */
8325 RET_LABEL:;
8326 }
8327 /* method model#MMethodDef#initializers for (self: MMethodDef): Array[MProperty] */
8328 val* nitc___nitc__MMethodDef___initializers(val* self) {
8329 val* var /* : Array[MProperty] */;
8330 val* var1 /* : Array[MProperty] */;
8331 var1 = self->attrs[COLOR_nitc__model__MMethodDef___initializers].val; /* _initializers on <self:MMethodDef> */
8332 if (unlikely(var1 == NULL)) {
8333 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
8334 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2363);
8335 fatal_exit(1);
8336 }
8337 var = var1;
8338 RET_LABEL:;
8339 return var;
8340 }
8341 /* method model#MMethodDef#is_abstract for (self: MMethodDef): Bool */
8342 short int nitc___nitc__MMethodDef___is_abstract(val* self) {
8343 short int var /* : Bool */;
8344 short int var1 /* : Bool */;
8345 var1 = self->attrs[COLOR_nitc__model__MMethodDef___is_abstract].s; /* _is_abstract on <self:MMethodDef> */
8346 var = var1;
8347 RET_LABEL:;
8348 return var;
8349 }
8350 /* method model#MMethodDef#is_abstract= for (self: MMethodDef, Bool) */
8351 void nitc___nitc__MMethodDef___is_abstract_61d(val* self, short int p0) {
8352 self->attrs[COLOR_nitc__model__MMethodDef___is_abstract].s = p0; /* _is_abstract on <self:MMethodDef> */
8353 RET_LABEL:;
8354 }
8355 /* method model#MMethodDef#is_intern for (self: MMethodDef): Bool */
8356 short int nitc___nitc__MMethodDef___is_intern(val* self) {
8357 short int var /* : Bool */;
8358 short int var1 /* : Bool */;
8359 var1 = self->attrs[COLOR_nitc__model__MMethodDef___is_intern].s; /* _is_intern on <self:MMethodDef> */
8360 var = var1;
8361 RET_LABEL:;
8362 return var;
8363 }
8364 /* method model#MMethodDef#is_intern= for (self: MMethodDef, Bool) */
8365 void nitc___nitc__MMethodDef___is_intern_61d(val* self, short int p0) {
8366 self->attrs[COLOR_nitc__model__MMethodDef___is_intern].s = p0; /* _is_intern on <self:MMethodDef> */
8367 RET_LABEL:;
8368 }
8369 /* method model#MMethodDef#is_extern for (self: MMethodDef): Bool */
8370 short int nitc___nitc__MMethodDef___is_extern(val* self) {
8371 short int var /* : Bool */;
8372 short int var1 /* : Bool */;
8373 var1 = self->attrs[COLOR_nitc__model__MMethodDef___is_extern].s; /* _is_extern on <self:MMethodDef> */
8374 var = var1;
8375 RET_LABEL:;
8376 return var;
8377 }
8378 /* method model#MMethodDef#is_extern= for (self: MMethodDef, Bool) */
8379 void nitc___nitc__MMethodDef___is_extern_61d(val* self, short int p0) {
8380 self->attrs[COLOR_nitc__model__MMethodDef___is_extern].s = p0; /* _is_extern on <self:MMethodDef> */
8381 RET_LABEL:;
8382 }
8383 /* method model#MMethodDef#constant_value for (self: MMethodDef): nullable Object */
8384 val* nitc___nitc__MMethodDef___constant_value(val* self) {
8385 val* var /* : nullable Object */;
8386 val* var1 /* : nullable Object */;
8387 var1 = self->attrs[COLOR_nitc__model__MMethodDef___constant_value].val; /* _constant_value on <self:MMethodDef> */
8388 var = var1;
8389 RET_LABEL:;
8390 return var;
8391 }
8392 /* method model#MMethodDef#constant_value= for (self: MMethodDef, nullable Object) */
8393 void nitc___nitc__MMethodDef___constant_value_61d(val* self, val* p0) {
8394 self->attrs[COLOR_nitc__model__MMethodDef___constant_value].val = p0; /* _constant_value on <self:MMethodDef> */
8395 RET_LABEL:;
8396 }
8397 /* method model#MAttributeDef#static_mtype for (self: MAttributeDef): nullable MType */
8398 val* nitc___nitc__MAttributeDef___static_mtype(val* self) {
8399 val* var /* : nullable MType */;
8400 val* var1 /* : nullable MType */;
8401 var1 = self->attrs[COLOR_nitc__model__MAttributeDef___static_mtype].val; /* _static_mtype on <self:MAttributeDef> */
8402 var = var1;
8403 RET_LABEL:;
8404 return var;
8405 }
8406 /* method model#MAttributeDef#static_mtype= for (self: MAttributeDef, nullable MType) */
8407 void nitc___nitc__MAttributeDef___static_mtype_61d(val* self, val* p0) {
8408 self->attrs[COLOR_nitc__model__MAttributeDef___static_mtype].val = p0; /* _static_mtype on <self:MAttributeDef> */
8409 RET_LABEL:;
8410 }
8411 /* method model#MVirtualTypeDef#bound for (self: MVirtualTypeDef): nullable MType */
8412 val* nitc___nitc__MVirtualTypeDef___bound(val* self) {
8413 val* var /* : nullable MType */;
8414 val* var1 /* : nullable MType */;
8415 var1 = self->attrs[COLOR_nitc__model__MVirtualTypeDef___bound].val; /* _bound on <self:MVirtualTypeDef> */
8416 var = var1;
8417 RET_LABEL:;
8418 return var;
8419 }
8420 /* method model#MVirtualTypeDef#bound= for (self: MVirtualTypeDef, nullable MType) */
8421 void nitc___nitc__MVirtualTypeDef___bound_61d(val* self, val* p0) {
8422 self->attrs[COLOR_nitc__model__MVirtualTypeDef___bound].val = p0; /* _bound on <self:MVirtualTypeDef> */
8423 RET_LABEL:;
8424 }
8425 /* method model#MVirtualTypeDef#is_fixed for (self: MVirtualTypeDef): Bool */
8426 short int nitc___nitc__MVirtualTypeDef___is_fixed(val* self) {
8427 short int var /* : Bool */;
8428 short int var1 /* : Bool */;
8429 var1 = self->attrs[COLOR_nitc__model__MVirtualTypeDef___is_fixed].s; /* _is_fixed on <self:MVirtualTypeDef> */
8430 var = var1;
8431 RET_LABEL:;
8432 return var;
8433 }
8434 /* method model#MVirtualTypeDef#is_fixed= for (self: MVirtualTypeDef, Bool) */
8435 void nitc___nitc__MVirtualTypeDef___is_fixed_61d(val* self, short int p0) {
8436 self->attrs[COLOR_nitc__model__MVirtualTypeDef___is_fixed].s = p0; /* _is_fixed on <self:MVirtualTypeDef> */
8437 RET_LABEL:;
8438 }
8439 /* method model#MClassKind#to_s for (self: MClassKind): String */
8440 val* nitc___nitc__MClassKind___core__abstract_text__Object__to_s(val* self) {
8441 val* var /* : String */;
8442 val* var1 /* : String */;
8443 var1 = self->attrs[COLOR_nitc__model__MClassKind___to_s].val; /* _to_s on <self:MClassKind> */
8444 if (unlikely(var1 == NULL)) {
8445 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
8446 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2426);
8447 fatal_exit(1);
8448 }
8449 var = var1;
8450 RET_LABEL:;
8451 return var;
8452 }
8453 /* method model#MClassKind#to_s= for (self: MClassKind, String) */
8454 void nitc___nitc__MClassKind___to_s_61d(val* self, val* p0) {
8455 self->attrs[COLOR_nitc__model__MClassKind___to_s].val = p0; /* _to_s on <self:MClassKind> */
8456 RET_LABEL:;
8457 }
8458 /* method model#MClassKind#need_init for (self: MClassKind): Bool */
8459 short int nitc___nitc__MClassKind___need_init(val* self) {
8460 short int var /* : Bool */;
8461 short int var1 /* : Bool */;
8462 var1 = self->attrs[COLOR_nitc__model__MClassKind___need_init].s; /* _need_init on <self:MClassKind> */
8463 var = var1;
8464 RET_LABEL:;
8465 return var;
8466 }
8467 /* method model#MClassKind#need_init= for (self: MClassKind, Bool) */
8468 void nitc___nitc__MClassKind___need_init_61d(val* self, short int p0) {
8469 self->attrs[COLOR_nitc__model__MClassKind___need_init].s = p0; /* _need_init on <self:MClassKind> */
8470 RET_LABEL:;
8471 }
8472 /* method model#MClassKind#can_specialize for (self: MClassKind, MClassKind): Bool */
8473 short int nitc___nitc__MClassKind___can_specialize(val* self, val* p0) {
8474 short int var /* : Bool */;
8475 val* var_other /* var other: MClassKind */;
8476 val* var1 /* : Sys */;
8477 val* var2 /* : MClassKind */;
8478 short int var3 /* : Bool */;
8479 val* var_other5 /* var other: nullable Object */;
8480 short int var6 /* : Bool */;
8481 short int var8 /* : Bool */;
8482 short int var9 /* : Bool */;
8483 val* var10 /* : Sys */;
8484 val* var11 /* : MClassKind */;
8485 short int var12 /* : Bool */;
8486 short int var14 /* : Bool */;
8487 short int var16 /* : Bool */;
8488 short int var_ /* var : Bool */;
8489 val* var17 /* : Sys */;
8490 val* var18 /* : MClassKind */;
8491 short int var19 /* : Bool */;
8492 short int var21 /* : Bool */;
8493 short int var23 /* : Bool */;
8494 val* var24 /* : Sys */;
8495 val* var25 /* : MClassKind */;
8496 short int var26 /* : Bool */;
8497 short int var28 /* : Bool */;
8498 short int var30 /* : Bool */;
8499 short int var31 /* : Bool */;
8500 short int var33 /* : Bool */;
8501 short int var35 /* : Bool */;
8502 short int var36 /* : Bool */;
8503 val* var37 /* : Sys */;
8504 val* var38 /* : MClassKind */;
8505 short int var39 /* : Bool */;
8506 short int var41 /* : Bool */;
8507 short int var43 /* : Bool */;
8508 short int var_44 /* var : Bool */;
8509 val* var45 /* : Sys */;
8510 val* var46 /* : MClassKind */;
8511 short int var47 /* : Bool */;
8512 short int var49 /* : Bool */;
8513 short int var51 /* : Bool */;
8514 var_other = p0;
8515 var1 = glob_sys;
8516 {
8517 var2 = nitc__model___core__Sys___interface_kind(var1);
8518 }
8519 {
8520 { /* Inline kernel#Object#== (var_other,var2) on <var_other:MClassKind> */
8521 var_other5 = var2;
8522 {
8523 { /* Inline kernel#Object#is_same_instance (var_other,var_other5) on <var_other:MClassKind> */
8524 var8 = var_other == var_other5;
8525 var6 = var8;
8526 goto RET_LABEL7;
8527 RET_LABEL7:(void)0;
8528 }
8529 }
8530 var3 = var6;
8531 goto RET_LABEL4;
8532 RET_LABEL4:(void)0;
8533 }
8534 }
8535 if (var3){
8536 var = 1;
8537 goto RET_LABEL;
8538 } else {
8539 }
8540 var10 = glob_sys;
8541 {
8542 var11 = nitc__model___core__Sys___interface_kind(var10);
8543 }
8544 {
8545 { /* Inline kernel#Object#== (self,var11) on <self:MClassKind> */
8546 var_other5 = var11;
8547 {
8548 { /* Inline kernel#Object#is_same_instance (self,var_other5) on <self:MClassKind> */
8549 var16 = self == var_other5;
8550 var14 = var16;
8551 goto RET_LABEL15;
8552 RET_LABEL15:(void)0;
8553 }
8554 }
8555 var12 = var14;
8556 goto RET_LABEL13;
8557 RET_LABEL13:(void)0;
8558 }
8559 }
8560 var_ = var12;
8561 if (var12){
8562 var9 = var_;
8563 } else {
8564 var17 = glob_sys;
8565 {
8566 var18 = nitc__model___core__Sys___enum_kind(var17);
8567 }
8568 {
8569 { /* Inline kernel#Object#== (self,var18) on <self:MClassKind> */
8570 var_other5 = var18;
8571 {
8572 { /* Inline kernel#Object#is_same_instance (self,var_other5) on <self:MClassKind> */
8573 var23 = self == var_other5;
8574 var21 = var23;
8575 goto RET_LABEL22;
8576 RET_LABEL22:(void)0;
8577 }
8578 }
8579 var19 = var21;
8580 goto RET_LABEL20;
8581 RET_LABEL20:(void)0;
8582 }
8583 }
8584 var9 = var19;
8585 }
8586 if (var9){
8587 var = 0;
8588 goto RET_LABEL;
8589 } else {
8590 var24 = glob_sys;
8591 {
8592 var25 = nitc__model___core__Sys___extern_kind(var24);
8593 }
8594 {
8595 { /* Inline kernel#Object#== (self,var25) on <self:MClassKind> */
8596 var_other5 = var25;
8597 {
8598 { /* Inline kernel#Object#is_same_instance (self,var_other5) on <self:MClassKind> */
8599 var30 = self == var_other5;
8600 var28 = var30;
8601 goto RET_LABEL29;
8602 RET_LABEL29:(void)0;
8603 }
8604 }
8605 var26 = var28;
8606 goto RET_LABEL27;
8607 RET_LABEL27:(void)0;
8608 }
8609 }
8610 if (var26){
8611 {
8612 { /* Inline kernel#Object#== (self,var_other) on <self:MClassKind> */
8613 var_other5 = var_other;
8614 {
8615 { /* Inline kernel#Object#is_same_instance (self,var_other5) on <self:MClassKind> */
8616 var35 = self == var_other5;
8617 var33 = var35;
8618 goto RET_LABEL34;
8619 RET_LABEL34:(void)0;
8620 }
8621 }
8622 var31 = var33;
8623 goto RET_LABEL32;
8624 RET_LABEL32:(void)0;
8625 }
8626 }
8627 var = var31;
8628 goto RET_LABEL;
8629 } else {
8630 var37 = glob_sys;
8631 {
8632 var38 = nitc__model___core__Sys___enum_kind(var37);
8633 }
8634 {
8635 { /* Inline kernel#Object#== (var_other,var38) on <var_other:MClassKind> */
8636 var_other5 = var38;
8637 {
8638 { /* Inline kernel#Object#is_same_instance (var_other,var_other5) on <var_other:MClassKind> */
8639 var43 = var_other == var_other5;
8640 var41 = var43;
8641 goto RET_LABEL42;
8642 RET_LABEL42:(void)0;
8643 }
8644 }
8645 var39 = var41;
8646 goto RET_LABEL40;
8647 RET_LABEL40:(void)0;
8648 }
8649 }
8650 var_44 = var39;
8651 if (var39){
8652 var36 = var_44;
8653 } else {
8654 var45 = glob_sys;
8655 {
8656 var46 = nitc__model___core__Sys___extern_kind(var45);
8657 }
8658 {
8659 { /* Inline kernel#Object#== (var_other,var46) on <var_other:MClassKind> */
8660 var_other5 = var46;
8661 {
8662 { /* Inline kernel#Object#is_same_instance (var_other,var_other5) on <var_other:MClassKind> */
8663 var51 = var_other == var_other5;
8664 var49 = var51;
8665 goto RET_LABEL50;
8666 RET_LABEL50:(void)0;
8667 }
8668 }
8669 var47 = var49;
8670 goto RET_LABEL48;
8671 RET_LABEL48:(void)0;
8672 }
8673 }
8674 var36 = var47;
8675 }
8676 if (var36){
8677 var = 0;
8678 goto RET_LABEL;
8679 } else {
8680 }
8681 }
8682 }
8683 var = 1;
8684 goto RET_LABEL;
8685 RET_LABEL:;
8686 return var;
8687 }
8688 /* method model#MClassKind#init for (self: MClassKind) */
8689 void nitc___nitc__MClassKind___core__kernel__Object__init(val* self) {
8690 {
8691 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MClassKind___core__kernel__Object__init]))(self); /* init on <self:MClassKind>*/
8692 }
8693 RET_LABEL:;
8694 }
8695 /* method model#Sys#abstract_kind for (self: Sys): MClassKind */
8696 val* nitc__model___core__Sys___abstract_kind(val* self) {
8697 val* var /* : MClassKind */;
8698 static val* varonce;
8699 static int varonce_guard;
8700 val* var1 /* : MClassKind */;
8701 val* var2 /* : MClassKind */;
8702 static val* varonce3;
8703 val* var4 /* : String */;
8704 char* var5 /* : NativeString */;
8705 val* var6 /* : String */;
8706 if (likely(varonce_guard)) {
8707 var1 = varonce;
8708 } else {
8709 var2 = NEW_nitc__MClassKind(&type_nitc__MClassKind);
8710 if (likely(varonce3!=NULL)) {
8711 var4 = varonce3;
8712 } else {
8713 var5 = "abstract class";
8714 var6 = core__flat___NativeString___to_s_full(var5, 14l, 14l);
8715 var4 = var6;
8716 varonce3 = var4;
8717 }
8718 {
8719 ((void(*)(val* self, val* p0))(var2->class->vft[COLOR_nitc__model__MClassKind__to_s_61d]))(var2, var4); /* to_s= on <var2:MClassKind>*/
8720 }
8721 {
8722 ((void(*)(val* self, short int p0))(var2->class->vft[COLOR_nitc__model__MClassKind__need_init_61d]))(var2, 1); /* need_init= on <var2:MClassKind>*/
8723 }
8724 {
8725 ((void(*)(val* self))(var2->class->vft[COLOR_core__kernel__Object__init]))(var2); /* init on <var2:MClassKind>*/
8726 }
8727 var1 = var2;
8728 varonce = var1;
8729 varonce_guard = 1;
8730 }
8731 var = var1;
8732 goto RET_LABEL;
8733 RET_LABEL:;
8734 return var;
8735 }
8736 /* method model#Sys#concrete_kind for (self: Sys): MClassKind */
8737 val* nitc__model___core__Sys___concrete_kind(val* self) {
8738 val* var /* : MClassKind */;
8739 static val* varonce;
8740 static int varonce_guard;
8741 val* var1 /* : MClassKind */;
8742 val* var2 /* : MClassKind */;
8743 static val* varonce3;
8744 val* var4 /* : String */;
8745 char* var5 /* : NativeString */;
8746 val* var6 /* : String */;
8747 if (likely(varonce_guard)) {
8748 var1 = varonce;
8749 } else {
8750 var2 = NEW_nitc__MClassKind(&type_nitc__MClassKind);
8751 if (likely(varonce3!=NULL)) {
8752 var4 = varonce3;
8753 } else {
8754 var5 = "class";
8755 var6 = core__flat___NativeString___to_s_full(var5, 5l, 5l);
8756 var4 = var6;
8757 varonce3 = var4;
8758 }
8759 {
8760 ((void(*)(val* self, val* p0))(var2->class->vft[COLOR_nitc__model__MClassKind__to_s_61d]))(var2, var4); /* to_s= on <var2:MClassKind>*/
8761 }
8762 {
8763 ((void(*)(val* self, short int p0))(var2->class->vft[COLOR_nitc__model__MClassKind__need_init_61d]))(var2, 1); /* need_init= on <var2:MClassKind>*/
8764 }
8765 {
8766 ((void(*)(val* self))(var2->class->vft[COLOR_core__kernel__Object__init]))(var2); /* init on <var2:MClassKind>*/
8767 }
8768 var1 = var2;
8769 varonce = var1;
8770 varonce_guard = 1;
8771 }
8772 var = var1;
8773 goto RET_LABEL;
8774 RET_LABEL:;
8775 return var;
8776 }
8777 /* method model#Sys#interface_kind for (self: Sys): MClassKind */
8778 val* nitc__model___core__Sys___interface_kind(val* self) {
8779 val* var /* : MClassKind */;
8780 static val* varonce;
8781 static int varonce_guard;
8782 val* var1 /* : MClassKind */;
8783 val* var2 /* : MClassKind */;
8784 static val* varonce3;
8785 val* var4 /* : String */;
8786 char* var5 /* : NativeString */;
8787 val* var6 /* : String */;
8788 if (likely(varonce_guard)) {
8789 var1 = varonce;
8790 } else {
8791 var2 = NEW_nitc__MClassKind(&type_nitc__MClassKind);
8792 if (likely(varonce3!=NULL)) {
8793 var4 = varonce3;
8794 } else {
8795 var5 = "interface";
8796 var6 = core__flat___NativeString___to_s_full(var5, 9l, 9l);
8797 var4 = var6;
8798 varonce3 = var4;
8799 }
8800 {
8801 ((void(*)(val* self, val* p0))(var2->class->vft[COLOR_nitc__model__MClassKind__to_s_61d]))(var2, var4); /* to_s= on <var2:MClassKind>*/
8802 }
8803 {
8804 ((void(*)(val* self, short int p0))(var2->class->vft[COLOR_nitc__model__MClassKind__need_init_61d]))(var2, 0); /* need_init= on <var2:MClassKind>*/
8805 }
8806 {
8807 ((void(*)(val* self))(var2->class->vft[COLOR_core__kernel__Object__init]))(var2); /* init on <var2:MClassKind>*/
8808 }
8809 var1 = var2;
8810 varonce = var1;
8811 varonce_guard = 1;
8812 }
8813 var = var1;
8814 goto RET_LABEL;
8815 RET_LABEL:;
8816 return var;
8817 }
8818 /* method model#Sys#enum_kind for (self: Sys): MClassKind */
8819 val* nitc__model___core__Sys___enum_kind(val* self) {
8820 val* var /* : MClassKind */;
8821 static val* varonce;
8822 static int varonce_guard;
8823 val* var1 /* : MClassKind */;
8824 val* var2 /* : MClassKind */;
8825 static val* varonce3;
8826 val* var4 /* : String */;
8827 char* var5 /* : NativeString */;
8828 val* var6 /* : String */;
8829 if (likely(varonce_guard)) {
8830 var1 = varonce;
8831 } else {
8832 var2 = NEW_nitc__MClassKind(&type_nitc__MClassKind);
8833 if (likely(varonce3!=NULL)) {
8834 var4 = varonce3;
8835 } else {
8836 var5 = "enum";
8837 var6 = core__flat___NativeString___to_s_full(var5, 4l, 4l);
8838 var4 = var6;
8839 varonce3 = var4;
8840 }
8841 {
8842 ((void(*)(val* self, val* p0))(var2->class->vft[COLOR_nitc__model__MClassKind__to_s_61d]))(var2, var4); /* to_s= on <var2:MClassKind>*/
8843 }
8844 {
8845 ((void(*)(val* self, short int p0))(var2->class->vft[COLOR_nitc__model__MClassKind__need_init_61d]))(var2, 0); /* need_init= on <var2:MClassKind>*/
8846 }
8847 {
8848 ((void(*)(val* self))(var2->class->vft[COLOR_core__kernel__Object__init]))(var2); /* init on <var2:MClassKind>*/
8849 }
8850 var1 = var2;
8851 varonce = var1;
8852 varonce_guard = 1;
8853 }
8854 var = var1;
8855 goto RET_LABEL;
8856 RET_LABEL:;
8857 return var;
8858 }
8859 /* method model#Sys#extern_kind for (self: Sys): MClassKind */
8860 val* nitc__model___core__Sys___extern_kind(val* self) {
8861 val* var /* : MClassKind */;
8862 static val* varonce;
8863 static int varonce_guard;
8864 val* var1 /* : MClassKind */;
8865 val* var2 /* : MClassKind */;
8866 static val* varonce3;
8867 val* var4 /* : String */;
8868 char* var5 /* : NativeString */;
8869 val* var6 /* : String */;
8870 if (likely(varonce_guard)) {
8871 var1 = varonce;
8872 } else {
8873 var2 = NEW_nitc__MClassKind(&type_nitc__MClassKind);
8874 if (likely(varonce3!=NULL)) {
8875 var4 = varonce3;
8876 } else {
8877 var5 = "extern class";
8878 var6 = core__flat___NativeString___to_s_full(var5, 12l, 12l);
8879 var4 = var6;
8880 varonce3 = var4;
8881 }
8882 {
8883 ((void(*)(val* self, val* p0))(var2->class->vft[COLOR_nitc__model__MClassKind__to_s_61d]))(var2, var4); /* to_s= on <var2:MClassKind>*/
8884 }
8885 {
8886 ((void(*)(val* self, short int p0))(var2->class->vft[COLOR_nitc__model__MClassKind__need_init_61d]))(var2, 0); /* need_init= on <var2:MClassKind>*/
8887 }
8888 {
8889 ((void(*)(val* self))(var2->class->vft[COLOR_core__kernel__Object__init]))(var2); /* init on <var2:MClassKind>*/
8890 }
8891 var1 = var2;
8892 varonce = var1;
8893 varonce_guard = 1;
8894 }
8895 var = var1;
8896 goto RET_LABEL;
8897 RET_LABEL:;
8898 return var;
8899 }