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