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