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