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