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