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