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