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