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