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