README: Update libgc's URL
[nit.git] / c_src / nitc__mmodule.sep.1.c
1 #include "nitc__mmodule.sep.0.h"
2 /* method mmodule#Model#mmodules for (self: Model): Array[MModule] */
3 val* nitc__mmodule___Model___mmodules(val* self) {
4 val* var /* : Array[MModule] */;
5 val* var1 /* : Array[MModule] */;
6 var1 = self->attrs[COLOR_nitc__mmodule__Model___mmodules].val; /* _mmodules on <self:Model> */
7 if (unlikely(var1 == NULL)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodules");
9 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 31);
10 fatal_exit(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method mmodule#Model#mmodule_importation_hierarchy for (self: Model): POSet[MModule] */
17 val* nitc__mmodule___Model___mmodule_importation_hierarchy(val* self) {
18 val* var /* : POSet[MModule] */;
19 val* var1 /* : POSet[MModule] */;
20 var1 = self->attrs[COLOR_nitc__mmodule__Model___mmodule_importation_hierarchy].val; /* _mmodule_importation_hierarchy on <self:Model> */
21 if (unlikely(var1 == NULL)) {
22 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule_importation_hierarchy");
23 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 34);
24 fatal_exit(1);
25 }
26 var = var1;
27 RET_LABEL:;
28 return var;
29 }
30 /* method mmodule#Model#mmodules_by_name for (self: Model): MultiHashMap[String, MModule] */
31 val* nitc__mmodule___Model___mmodules_by_name(val* self) {
32 val* var /* : MultiHashMap[String, MModule] */;
33 val* var1 /* : MultiHashMap[String, MModule] */;
34 var1 = self->attrs[COLOR_nitc__mmodule__Model___mmodules_by_name].val; /* _mmodules_by_name on <self:Model> */
35 if (unlikely(var1 == NULL)) {
36 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodules_by_name");
37 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 37);
38 fatal_exit(1);
39 }
40 var = var1;
41 RET_LABEL:;
42 return var;
43 }
44 /* method mmodule#Model#get_mmodules_by_name for (self: Model, String): nullable Array[MModule] */
45 val* nitc__mmodule___Model___get_mmodules_by_name(val* self, val* p0) {
46 val* var /* : nullable Array[MModule] */;
47 val* var_name /* var name: String */;
48 val* var1 /* : MultiHashMap[String, MModule] */;
49 val* var3 /* : MultiHashMap[String, MModule] */;
50 short int var4 /* : Bool */;
51 val* var5 /* : MultiHashMap[String, MModule] */;
52 val* var7 /* : MultiHashMap[String, MModule] */;
53 val* var8 /* : nullable Object */;
54 var_name = p0;
55 {
56 { /* Inline mmodule#Model#mmodules_by_name (self) on <self:Model> */
57 var3 = self->attrs[COLOR_nitc__mmodule__Model___mmodules_by_name].val; /* _mmodules_by_name on <self:Model> */
58 if (unlikely(var3 == NULL)) {
59 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodules_by_name");
60 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 37);
61 fatal_exit(1);
62 }
63 var1 = var3;
64 RET_LABEL2:(void)0;
65 }
66 }
67 {
68 var4 = core___core__HashMap___core__abstract_collection__MapRead__has_key(var1, var_name);
69 }
70 if (var4){
71 {
72 { /* Inline mmodule#Model#mmodules_by_name (self) on <self:Model> */
73 var7 = self->attrs[COLOR_nitc__mmodule__Model___mmodules_by_name].val; /* _mmodules_by_name on <self:Model> */
74 if (unlikely(var7 == NULL)) {
75 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodules_by_name");
76 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 37);
77 fatal_exit(1);
78 }
79 var5 = var7;
80 RET_LABEL6:(void)0;
81 }
82 }
83 {
84 var8 = core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var5, var_name);
85 }
86 var = var8;
87 goto RET_LABEL;
88 } else {
89 var = ((val*)NULL);
90 goto RET_LABEL;
91 }
92 RET_LABEL:;
93 return var;
94 }
95 /* method mmodule#MGroup#mmodules for (self: MGroup): Array[MModule] */
96 val* nitc__mmodule___MGroup___mmodules(val* self) {
97 val* var /* : Array[MModule] */;
98 val* var1 /* : Array[MModule] */;
99 var1 = self->attrs[COLOR_nitc__mmodule__MGroup___mmodules].val; /* _mmodules on <self:MGroup> */
100 if (unlikely(var1 == NULL)) {
101 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodules");
102 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 55);
103 fatal_exit(1);
104 }
105 var = var1;
106 RET_LABEL:;
107 return var;
108 }
109 /* method mmodule#MGroup#default_mmodule for (self: MGroup): nullable MModule */
110 val* nitc__mmodule___MGroup___default_mmodule(val* self) {
111 val* var /* : nullable MModule */;
112 val* var1 /* : nullable MModule */;
113 var1 = self->attrs[COLOR_nitc__mmodule__MGroup___default_mmodule].val; /* _default_mmodule on <self:MGroup> */
114 var = var1;
115 RET_LABEL:;
116 return var;
117 }
118 /* method mmodule#MGroup#default_mmodule= for (self: MGroup, nullable MModule) */
119 void nitc__mmodule___MGroup___default_mmodule_61d(val* self, val* p0) {
120 self->attrs[COLOR_nitc__mmodule__MGroup___default_mmodule].val = p0; /* _default_mmodule on <self:MGroup> */
121 RET_LABEL:;
122 }
123 /* method mmodule#MModule#model for (self: MModule): Model */
124 val* nitc___nitc__MModule___nitc__model_base__MEntity__model(val* self) {
125 val* var /* : Model */;
126 val* var1 /* : Model */;
127 var1 = self->attrs[COLOR_nitc__mmodule__MModule___model].val; /* _model on <self:MModule> */
128 if (unlikely(var1 == NULL)) {
129 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
130 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 78);
131 fatal_exit(1);
132 }
133 var = var1;
134 RET_LABEL:;
135 return var;
136 }
137 /* method mmodule#MModule#model= for (self: MModule, Model) */
138 void nitc___nitc__MModule___model_61d(val* self, val* p0) {
139 self->attrs[COLOR_nitc__mmodule__MModule___model].val = p0; /* _model on <self:MModule> */
140 RET_LABEL:;
141 }
142 /* method mmodule#MModule#mgroup for (self: MModule): nullable MGroup */
143 val* nitc___nitc__MModule___mgroup(val* self) {
144 val* var /* : nullable MGroup */;
145 val* var1 /* : nullable MGroup */;
146 var1 = self->attrs[COLOR_nitc__mmodule__MModule___mgroup].val; /* _mgroup on <self:MModule> */
147 var = var1;
148 RET_LABEL:;
149 return var;
150 }
151 /* method mmodule#MModule#mgroup= for (self: MModule, nullable MGroup) */
152 void nitc___nitc__MModule___mgroup_61d(val* self, val* p0) {
153 self->attrs[COLOR_nitc__mmodule__MModule___mgroup].val = p0; /* _mgroup on <self:MModule> */
154 RET_LABEL:;
155 }
156 /* method mmodule#MModule#filepath for (self: MModule): nullable String */
157 val* nitc___nitc__MModule___filepath(val* self) {
158 val* var /* : nullable String */;
159 val* var1 /* : nullable String */;
160 var1 = self->attrs[COLOR_nitc__mmodule__MModule___filepath].val; /* _filepath on <self:MModule> */
161 var = var1;
162 RET_LABEL:;
163 return var;
164 }
165 /* method mmodule#MModule#filepath= for (self: MModule, nullable String) */
166 void nitc___nitc__MModule___filepath_61d(val* self, val* p0) {
167 self->attrs[COLOR_nitc__mmodule__MModule___filepath].val = p0; /* _filepath on <self:MModule> */
168 RET_LABEL:;
169 }
170 /* method mmodule#MModule#mpackage for (self: MModule): nullable MPackage */
171 val* nitc___nitc__MModule___mpackage(val* self) {
172 val* var /* : nullable MPackage */;
173 val* var1 /* : nullable MGroup */;
174 val* var3 /* : nullable MGroup */;
175 val* var_g /* var g: nullable MGroup */;
176 short int var4 /* : Bool */;
177 short int var5 /* : Bool */;
178 val* var_other /* var other: nullable Object */;
179 short int var7 /* : Bool */;
180 short int var9 /* : Bool */;
181 val* var10 /* : MPackage */;
182 val* var12 /* : MPackage */;
183 {
184 { /* Inline mmodule#MModule#mgroup (self) on <self:MModule> */
185 var3 = self->attrs[COLOR_nitc__mmodule__MModule___mgroup].val; /* _mgroup on <self:MModule> */
186 var1 = var3;
187 RET_LABEL2:(void)0;
188 }
189 }
190 var_g = var1;
191 if (var_g == NULL) {
192 var4 = 1; /* is null */
193 } else {
194 var4 = 0; /* arg is null but recv is not */
195 }
196 if (0) {
197 { /* Inline kernel#Object#== (var_g,((val*)NULL)) on <var_g:nullable MGroup> */
198 var_other = ((val*)NULL);
199 {
200 { /* Inline kernel#Object#is_same_instance (var_g,var_other) on <var_g:nullable MGroup(MGroup)> */
201 var9 = var_g == var_other;
202 var7 = var9;
203 goto RET_LABEL8;
204 RET_LABEL8:(void)0;
205 }
206 }
207 var5 = var7;
208 goto RET_LABEL6;
209 RET_LABEL6:(void)0;
210 }
211 var4 = var5;
212 }
213 if (var4){
214 var = ((val*)NULL);
215 goto RET_LABEL;
216 } else {
217 {
218 { /* Inline mpackage#MGroup#mpackage (var_g) on <var_g:nullable MGroup(MGroup)> */
219 var12 = var_g->attrs[COLOR_nitc__mpackage__MGroup___mpackage].val; /* _mpackage on <var_g:nullable MGroup(MGroup)> */
220 if (unlikely(var12 == NULL)) {
221 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpackage");
222 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mpackage, 69);
223 fatal_exit(1);
224 }
225 var10 = var12;
226 RET_LABEL11:(void)0;
227 }
228 }
229 var = var10;
230 goto RET_LABEL;
231 }
232 RET_LABEL:;
233 return var;
234 }
235 /* method mmodule#MModule#name for (self: MModule): String */
236 val* nitc___nitc__MModule___nitc__model_base__MEntity__name(val* self) {
237 val* var /* : String */;
238 val* var1 /* : String */;
239 var1 = self->attrs[COLOR_nitc__mmodule__MModule___name].val; /* _name on <self:MModule> */
240 if (unlikely(var1 == NULL)) {
241 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
242 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 95);
243 fatal_exit(1);
244 }
245 var = var1;
246 RET_LABEL:;
247 return var;
248 }
249 /* method mmodule#MModule#name= for (self: MModule, String) */
250 void nitc___nitc__MModule___name_61d(val* self, val* p0) {
251 self->attrs[COLOR_nitc__mmodule__MModule___name].val = p0; /* _name on <self:MModule> */
252 RET_LABEL:;
253 }
254 /* method mmodule#MModule#location for (self: MModule): Location */
255 val* nitc___nitc__MModule___location(val* self) {
256 val* var /* : Location */;
257 val* var1 /* : Location */;
258 var1 = self->attrs[COLOR_nitc__mmodule__MModule___location].val; /* _location on <self:MModule> */
259 if (unlikely(var1 == NULL)) {
260 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
261 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 98);
262 fatal_exit(1);
263 }
264 var = var1;
265 RET_LABEL:;
266 return var;
267 }
268 /* method mmodule#MModule#location= for (self: MModule, Location) */
269 void nitc___nitc__MModule___location_61d(val* self, val* p0) {
270 self->attrs[COLOR_nitc__mmodule__MModule___location].val = p0; /* _location on <self:MModule> */
271 RET_LABEL:;
272 }
273 /* method mmodule#MModule#to_s for (self: MModule): String */
274 val* nitc___nitc__MModule___core__abstract_text__Object__to_s(val* self) {
275 val* var /* : String */;
276 val* var1 /* : String */;
277 val* var3 /* : String */;
278 {
279 { /* Inline mmodule#MModule#name (self) on <self:MModule> */
280 var3 = self->attrs[COLOR_nitc__mmodule__MModule___name].val; /* _name on <self:MModule> */
281 if (unlikely(var3 == NULL)) {
282 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
283 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 95);
284 fatal_exit(1);
285 }
286 var1 = var3;
287 RET_LABEL2:(void)0;
288 }
289 }
290 var = var1;
291 goto RET_LABEL;
292 RET_LABEL:;
293 return var;
294 }
295 /* method mmodule#MModule#in_importation for (self: MModule): POSetElement[MModule] */
296 val* nitc___nitc__MModule___in_importation(val* self) {
297 val* var /* : POSetElement[MModule] */;
298 val* var1 /* : POSetElement[MModule] */;
299 var1 = self->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <self:MModule> */
300 if (unlikely(var1 == NULL)) {
301 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
302 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 104);
303 fatal_exit(1);
304 }
305 var = var1;
306 RET_LABEL:;
307 return var;
308 }
309 /* method mmodule#MModule#in_importation= for (self: MModule, POSetElement[MModule]) */
310 void nitc___nitc__MModule___in_importation_61d(val* self, val* p0) {
311 self->attrs[COLOR_nitc__mmodule__MModule___in_importation].val = p0; /* _in_importation on <self:MModule> */
312 RET_LABEL:;
313 }
314 /* method mmodule#MModule#full_name for (self: MModule): String */
315 val* nitc___nitc__MModule___nitc__model_base__MEntity__full_name(val* self) {
316 val* var /* : String */;
317 short int var1 /* : Bool */;
318 val* var2 /* : String */;
319 val* var3 /* : String */;
320 val* var5 /* : nullable MGroup */;
321 val* var7 /* : nullable MGroup */;
322 val* var_mgroup /* var mgroup: nullable MGroup */;
323 short int var8 /* : Bool */;
324 short int var9 /* : Bool */;
325 short int var10 /* : Bool */;
326 val* var_other /* var other: nullable Object */;
327 short int var12 /* : Bool */;
328 short int var14 /* : Bool */;
329 short int var_ /* var : Bool */;
330 val* var15 /* : MPackage */;
331 val* var17 /* : MPackage */;
332 val* var18 /* : String */;
333 val* var20 /* : String */;
334 val* var21 /* : String */;
335 val* var23 /* : String */;
336 short int var24 /* : Bool */;
337 val* var25 /* : String */;
338 val* var27 /* : String */;
339 val* var28 /* : NativeArray[String] */;
340 static val* varonce;
341 static val* varonce29;
342 val* var30 /* : String */;
343 char* var31 /* : NativeString */;
344 val* var32 /* : String */;
345 val* var33 /* : MPackage */;
346 val* var35 /* : MPackage */;
347 val* var36 /* : String */;
348 val* var38 /* : String */;
349 val* var39 /* : String */;
350 val* var41 /* : String */;
351 val* var42 /* : String */;
352 var1 = self->attrs[COLOR_nitc__mmodule__MModule___full_name].val != NULL; /* _full_name on <self:MModule> */
353 if(likely(var1)) {
354 var2 = self->attrs[COLOR_nitc__mmodule__MModule___full_name].val; /* _full_name on <self:MModule> */
355 if (unlikely(var2 == NULL)) {
356 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_name");
357 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 107);
358 fatal_exit(1);
359 }
360 } else {
361 {
362 {
363 { /* Inline mmodule#MModule#mgroup (self) on <self:MModule> */
364 var7 = self->attrs[COLOR_nitc__mmodule__MModule___mgroup].val; /* _mgroup on <self:MModule> */
365 var5 = var7;
366 RET_LABEL6:(void)0;
367 }
368 }
369 var_mgroup = var5;
370 if (var_mgroup == NULL) {
371 var9 = 1; /* is null */
372 } else {
373 var9 = 0; /* arg is null but recv is not */
374 }
375 if (0) {
376 { /* Inline kernel#Object#== (var_mgroup,((val*)NULL)) on <var_mgroup:nullable MGroup> */
377 var_other = ((val*)NULL);
378 {
379 { /* Inline kernel#Object#is_same_instance (var_mgroup,var_other) on <var_mgroup:nullable MGroup(MGroup)> */
380 var14 = var_mgroup == var_other;
381 var12 = var14;
382 goto RET_LABEL13;
383 RET_LABEL13:(void)0;
384 }
385 }
386 var10 = var12;
387 goto RET_LABEL11;
388 RET_LABEL11:(void)0;
389 }
390 var9 = var10;
391 }
392 var_ = var9;
393 if (var9){
394 var8 = var_;
395 } else {
396 {
397 { /* Inline mpackage#MGroup#mpackage (var_mgroup) on <var_mgroup:nullable MGroup(MGroup)> */
398 var17 = var_mgroup->attrs[COLOR_nitc__mpackage__MGroup___mpackage].val; /* _mpackage on <var_mgroup:nullable MGroup(MGroup)> */
399 if (unlikely(var17 == NULL)) {
400 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpackage");
401 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mpackage, 69);
402 fatal_exit(1);
403 }
404 var15 = var17;
405 RET_LABEL16:(void)0;
406 }
407 }
408 {
409 { /* Inline mpackage#MPackage#name (var15) on <var15:MPackage> */
410 var20 = var15->attrs[COLOR_nitc__mpackage__MPackage___name].val; /* _name on <var15:MPackage> */
411 if (unlikely(var20 == NULL)) {
412 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
413 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mpackage, 27);
414 fatal_exit(1);
415 }
416 var18 = var20;
417 RET_LABEL19:(void)0;
418 }
419 }
420 {
421 { /* Inline mmodule#MModule#name (self) on <self:MModule> */
422 var23 = self->attrs[COLOR_nitc__mmodule__MModule___name].val; /* _name on <self:MModule> */
423 if (unlikely(var23 == NULL)) {
424 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
425 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 95);
426 fatal_exit(1);
427 }
428 var21 = var23;
429 RET_LABEL22:(void)0;
430 }
431 }
432 {
433 var24 = ((short int(*)(val* self, val* p0))(var18->class->vft[COLOR_core__kernel__Object___61d_61d]))(var18, var21); /* == on <var18:String>*/
434 }
435 var8 = var24;
436 }
437 if (var8){
438 {
439 { /* Inline mmodule#MModule#name (self) on <self:MModule> */
440 var27 = self->attrs[COLOR_nitc__mmodule__MModule___name].val; /* _name on <self:MModule> */
441 if (unlikely(var27 == NULL)) {
442 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
443 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 95);
444 fatal_exit(1);
445 }
446 var25 = var27;
447 RET_LABEL26:(void)0;
448 }
449 }
450 var3 = var25;
451 goto RET_LABEL4;
452 } else {
453 if (unlikely(varonce==NULL)) {
454 var28 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
455 if (likely(varonce29!=NULL)) {
456 var30 = varonce29;
457 } else {
458 var31 = "::";
459 var32 = core__flat___NativeString___to_s_full(var31, 2l, 2l);
460 var30 = var32;
461 varonce29 = var30;
462 }
463 ((struct instance_core__NativeArray*)var28)->values[1]=var30;
464 } else {
465 var28 = varonce;
466 varonce = NULL;
467 }
468 {
469 { /* Inline mpackage#MGroup#mpackage (var_mgroup) on <var_mgroup:nullable MGroup(MGroup)> */
470 var35 = var_mgroup->attrs[COLOR_nitc__mpackage__MGroup___mpackage].val; /* _mpackage on <var_mgroup:nullable MGroup(MGroup)> */
471 if (unlikely(var35 == NULL)) {
472 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpackage");
473 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mpackage, 69);
474 fatal_exit(1);
475 }
476 var33 = var35;
477 RET_LABEL34:(void)0;
478 }
479 }
480 {
481 { /* Inline mpackage#MPackage#name (var33) on <var33:MPackage> */
482 var38 = var33->attrs[COLOR_nitc__mpackage__MPackage___name].val; /* _name on <var33:MPackage> */
483 if (unlikely(var38 == NULL)) {
484 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
485 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mpackage, 27);
486 fatal_exit(1);
487 }
488 var36 = var38;
489 RET_LABEL37:(void)0;
490 }
491 }
492 ((struct instance_core__NativeArray*)var28)->values[0]=var36;
493 {
494 { /* Inline mmodule#MModule#name (self) on <self:MModule> */
495 var41 = self->attrs[COLOR_nitc__mmodule__MModule___name].val; /* _name on <self:MModule> */
496 if (unlikely(var41 == NULL)) {
497 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
498 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 95);
499 fatal_exit(1);
500 }
501 var39 = var41;
502 RET_LABEL40:(void)0;
503 }
504 }
505 ((struct instance_core__NativeArray*)var28)->values[2]=var39;
506 {
507 var42 = ((val*(*)(val* self))(var28->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var28); /* native_to_s on <var28:NativeArray[String]>*/
508 }
509 varonce = var28;
510 var3 = var42;
511 goto RET_LABEL4;
512 }
513 RET_LABEL4:(void)0;
514 }
515 self->attrs[COLOR_nitc__mmodule__MModule___full_name].val = var3; /* _full_name on <self:MModule> */
516 var2 = var3;
517 }
518 var = var2;
519 RET_LABEL:;
520 return var;
521 }
522 /* method mmodule#MModule#namespace_for for (self: MModule, MVisibility): String */
523 val* nitc___nitc__MModule___namespace_for(val* self, val* p0) {
524 val* var /* : String */;
525 val* var_v /* var v: MVisibility */;
526 val* var1 /* : Sys */;
527 val* var2 /* : MVisibility */;
528 short int var3 /* : Bool */;
529 val* var4 /* : String */;
530 val* var5 /* : nullable MGroup */;
531 val* var7 /* : nullable MGroup */;
532 val* var_mgroup /* var mgroup: nullable MGroup */;
533 short int var8 /* : Bool */;
534 short int var9 /* : Bool */;
535 val* var_other /* var other: nullable Object */;
536 short int var11 /* : Bool */;
537 short int var13 /* : Bool */;
538 val* var14 /* : String */;
539 val* var15 /* : MPackage */;
540 val* var17 /* : MPackage */;
541 val* var18 /* : String */;
542 var_v = p0;
543 var1 = glob_sys;
544 {
545 var2 = nitc__model_base___core__Sys___private_visibility(var1);
546 }
547 {
548 var3 = core___core__Comparable____60d_61d(var_v, var2);
549 }
550 if (var3){
551 {
552 var4 = nitc___nitc__MModule___nitc__model_base__MEntity__full_name(self);
553 }
554 var = var4;
555 goto RET_LABEL;
556 } else {
557 }
558 {
559 { /* Inline mmodule#MModule#mgroup (self) on <self:MModule> */
560 var7 = self->attrs[COLOR_nitc__mmodule__MModule___mgroup].val; /* _mgroup on <self:MModule> */
561 var5 = var7;
562 RET_LABEL6:(void)0;
563 }
564 }
565 var_mgroup = var5;
566 if (var_mgroup == NULL) {
567 var8 = 1; /* is null */
568 } else {
569 var8 = 0; /* arg is null but recv is not */
570 }
571 if (0) {
572 { /* Inline kernel#Object#== (var_mgroup,((val*)NULL)) on <var_mgroup:nullable MGroup> */
573 var_other = ((val*)NULL);
574 {
575 { /* Inline kernel#Object#is_same_instance (var_mgroup,var_other) on <var_mgroup:nullable MGroup(MGroup)> */
576 var13 = var_mgroup == var_other;
577 var11 = var13;
578 goto RET_LABEL12;
579 RET_LABEL12:(void)0;
580 }
581 }
582 var9 = var11;
583 goto RET_LABEL10;
584 RET_LABEL10:(void)0;
585 }
586 var8 = var9;
587 }
588 if (var8){
589 {
590 var14 = nitc___nitc__MModule___nitc__model_base__MEntity__full_name(self);
591 }
592 var = var14;
593 goto RET_LABEL;
594 } else {
595 {
596 { /* Inline mpackage#MGroup#mpackage (var_mgroup) on <var_mgroup:nullable MGroup(MGroup)> */
597 var17 = var_mgroup->attrs[COLOR_nitc__mpackage__MGroup___mpackage].val; /* _mpackage on <var_mgroup:nullable MGroup(MGroup)> */
598 if (unlikely(var17 == NULL)) {
599 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpackage");
600 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mpackage, 69);
601 fatal_exit(1);
602 }
603 var15 = var17;
604 RET_LABEL16:(void)0;
605 }
606 }
607 {
608 var18 = nitc___nitc__MPackage___nitc__model_base__MEntity__full_name(var15);
609 }
610 var = var18;
611 goto RET_LABEL;
612 }
613 RET_LABEL:;
614 return var;
615 }
616 /* method mmodule#MModule#c_name for (self: MModule): String */
617 val* nitc___nitc__MModule___nitc__model_base__MEntity__c_name(val* self) {
618 val* var /* : String */;
619 short int var1 /* : Bool */;
620 val* var2 /* : String */;
621 val* var3 /* : String */;
622 val* var5 /* : nullable MGroup */;
623 val* var7 /* : nullable MGroup */;
624 val* var_g /* var g: nullable MGroup */;
625 short int var8 /* : Bool */;
626 short int var9 /* : Bool */;
627 short int var10 /* : Bool */;
628 val* var_other /* var other: nullable Object */;
629 short int var12 /* : Bool */;
630 short int var13 /* : Bool */;
631 short int var_ /* var : Bool */;
632 val* var14 /* : MPackage */;
633 val* var16 /* : MPackage */;
634 val* var17 /* : String */;
635 val* var19 /* : String */;
636 val* var20 /* : String */;
637 val* var22 /* : String */;
638 short int var23 /* : Bool */;
639 short int var25 /* : Bool */;
640 short int var26 /* : Bool */;
641 val* var27 /* : MPackage */;
642 val* var29 /* : MPackage */;
643 val* var30 /* : String */;
644 val* var32 /* : String */;
645 val* var33 /* : String */;
646 static val* varonce;
647 val* var34 /* : String */;
648 char* var35 /* : NativeString */;
649 val* var36 /* : String */;
650 val* var37 /* : String */;
651 val* var38 /* : String */;
652 val* var40 /* : String */;
653 val* var41 /* : String */;
654 val* var42 /* : String */;
655 val* var_res /* var res: nullable Object */;
656 val* var43 /* : String */;
657 val* var45 /* : String */;
658 val* var46 /* : String */;
659 var1 = self->attrs[COLOR_nitc__mmodule__MModule___c_name].val != NULL; /* _c_name on <self:MModule> */
660 if(likely(var1)) {
661 var2 = self->attrs[COLOR_nitc__mmodule__MModule___c_name].val; /* _c_name on <self:MModule> */
662 if (unlikely(var2 == NULL)) {
663 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_name");
664 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 139);
665 fatal_exit(1);
666 }
667 } else {
668 {
669 {
670 { /* Inline mmodule#MModule#mgroup (self) on <self:MModule> */
671 var7 = self->attrs[COLOR_nitc__mmodule__MModule___mgroup].val; /* _mgroup on <self:MModule> */
672 var5 = var7;
673 RET_LABEL6:(void)0;
674 }
675 }
676 var_g = var5;
677 if (var_g == NULL) {
678 var9 = 0; /* is null */
679 } else {
680 var9 = 1; /* arg is null and recv is not */
681 }
682 if (0) {
683 { /* Inline kernel#Object#!= (var_g,((val*)NULL)) on <var_g:nullable MGroup> */
684 var_other = ((val*)NULL);
685 {
686 var12 = ((short int(*)(val* self, val* p0))(var_g->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_g, var_other); /* == on <var_g:nullable MGroup(MGroup)>*/
687 }
688 var13 = !var12;
689 var10 = var13;
690 goto RET_LABEL11;
691 RET_LABEL11:(void)0;
692 }
693 var9 = var10;
694 }
695 var_ = var9;
696 if (var9){
697 {
698 { /* Inline mpackage#MGroup#mpackage (var_g) on <var_g:nullable MGroup(MGroup)> */
699 var16 = var_g->attrs[COLOR_nitc__mpackage__MGroup___mpackage].val; /* _mpackage on <var_g:nullable MGroup(MGroup)> */
700 if (unlikely(var16 == NULL)) {
701 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpackage");
702 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mpackage, 69);
703 fatal_exit(1);
704 }
705 var14 = var16;
706 RET_LABEL15:(void)0;
707 }
708 }
709 {
710 { /* Inline mpackage#MPackage#name (var14) on <var14:MPackage> */
711 var19 = var14->attrs[COLOR_nitc__mpackage__MPackage___name].val; /* _name on <var14:MPackage> */
712 if (unlikely(var19 == NULL)) {
713 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
714 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mpackage, 27);
715 fatal_exit(1);
716 }
717 var17 = var19;
718 RET_LABEL18:(void)0;
719 }
720 }
721 {
722 { /* Inline mmodule#MModule#name (self) on <self:MModule> */
723 var22 = self->attrs[COLOR_nitc__mmodule__MModule___name].val; /* _name on <self:MModule> */
724 if (unlikely(var22 == NULL)) {
725 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
726 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 95);
727 fatal_exit(1);
728 }
729 var20 = var22;
730 RET_LABEL21:(void)0;
731 }
732 }
733 {
734 { /* Inline kernel#Object#!= (var17,var20) on <var17:String> */
735 var_other = var20;
736 {
737 var25 = ((short int(*)(val* self, val* p0))(var17->class->vft[COLOR_core__kernel__Object___61d_61d]))(var17, var_other); /* == on <var17:String>*/
738 }
739 var26 = !var25;
740 var23 = var26;
741 goto RET_LABEL24;
742 RET_LABEL24:(void)0;
743 }
744 }
745 var8 = var23;
746 } else {
747 var8 = var_;
748 }
749 if (var8){
750 {
751 { /* Inline mpackage#MGroup#mpackage (var_g) on <var_g:nullable MGroup(MGroup)> */
752 var29 = var_g->attrs[COLOR_nitc__mpackage__MGroup___mpackage].val; /* _mpackage on <var_g:nullable MGroup(MGroup)> */
753 if (unlikely(var29 == NULL)) {
754 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpackage");
755 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mpackage, 69);
756 fatal_exit(1);
757 }
758 var27 = var29;
759 RET_LABEL28:(void)0;
760 }
761 }
762 {
763 { /* Inline mpackage#MPackage#name (var27) on <var27:MPackage> */
764 var32 = var27->attrs[COLOR_nitc__mpackage__MPackage___name].val; /* _name on <var27:MPackage> */
765 if (unlikely(var32 == NULL)) {
766 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
767 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mpackage, 27);
768 fatal_exit(1);
769 }
770 var30 = var32;
771 RET_LABEL31:(void)0;
772 }
773 }
774 {
775 var33 = core___core__Text___to_cmangle(var30);
776 }
777 if (likely(varonce!=NULL)) {
778 var34 = varonce;
779 } else {
780 var35 = "__";
781 var36 = core__flat___NativeString___to_s_full(var35, 2l, 2l);
782 var34 = var36;
783 varonce = var34;
784 }
785 {
786 var37 = ((val*(*)(val* self, val* p0))(var33->class->vft[COLOR_core__abstract_text__String___43d]))(var33, var34); /* + on <var33:String>*/
787 }
788 {
789 { /* Inline mmodule#MModule#name (self) on <self:MModule> */
790 var40 = self->attrs[COLOR_nitc__mmodule__MModule___name].val; /* _name on <self:MModule> */
791 if (unlikely(var40 == NULL)) {
792 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
793 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 95);
794 fatal_exit(1);
795 }
796 var38 = var40;
797 RET_LABEL39:(void)0;
798 }
799 }
800 {
801 var41 = core___core__Text___to_cmangle(var38);
802 }
803 {
804 var42 = ((val*(*)(val* self, val* p0))(var37->class->vft[COLOR_core__abstract_text__String___43d]))(var37, var41); /* + on <var37:String>*/
805 }
806 var_res = var42;
807 } else {
808 {
809 { /* Inline mmodule#MModule#name (self) on <self:MModule> */
810 var45 = self->attrs[COLOR_nitc__mmodule__MModule___name].val; /* _name on <self:MModule> */
811 if (unlikely(var45 == NULL)) {
812 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
813 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 95);
814 fatal_exit(1);
815 }
816 var43 = var45;
817 RET_LABEL44:(void)0;
818 }
819 }
820 {
821 var46 = core___core__Text___to_cmangle(var43);
822 }
823 var_res = var46;
824 }
825 var3 = var_res;
826 goto RET_LABEL4;
827 RET_LABEL4:(void)0;
828 }
829 self->attrs[COLOR_nitc__mmodule__MModule___c_name].val = var3; /* _c_name on <self:MModule> */
830 var2 = var3;
831 }
832 var = var2;
833 RET_LABEL:;
834 return var;
835 }
836 /* method mmodule#MModule#c_namespace_for for (self: MModule, MVisibility): String */
837 val* nitc___nitc__MModule___c_namespace_for(val* self, val* p0) {
838 val* var /* : String */;
839 val* var_v /* var v: MVisibility */;
840 val* var1 /* : Sys */;
841 val* var2 /* : MVisibility */;
842 short int var3 /* : Bool */;
843 val* var4 /* : String */;
844 val* var5 /* : nullable MGroup */;
845 val* var7 /* : nullable MGroup */;
846 val* var_mgroup /* var mgroup: nullable MGroup */;
847 short int var8 /* : Bool */;
848 short int var9 /* : Bool */;
849 val* var_other /* var other: nullable Object */;
850 short int var11 /* : Bool */;
851 short int var13 /* : Bool */;
852 val* var14 /* : String */;
853 val* var15 /* : MPackage */;
854 val* var17 /* : MPackage */;
855 val* var18 /* : String */;
856 var_v = p0;
857 var1 = glob_sys;
858 {
859 var2 = nitc__model_base___core__Sys___private_visibility(var1);
860 }
861 {
862 var3 = core___core__Comparable____60d_61d(var_v, var2);
863 }
864 if (var3){
865 {
866 var4 = nitc___nitc__MModule___nitc__model_base__MEntity__c_name(self);
867 }
868 var = var4;
869 goto RET_LABEL;
870 } else {
871 }
872 {
873 { /* Inline mmodule#MModule#mgroup (self) on <self:MModule> */
874 var7 = self->attrs[COLOR_nitc__mmodule__MModule___mgroup].val; /* _mgroup on <self:MModule> */
875 var5 = var7;
876 RET_LABEL6:(void)0;
877 }
878 }
879 var_mgroup = var5;
880 if (var_mgroup == NULL) {
881 var8 = 1; /* is null */
882 } else {
883 var8 = 0; /* arg is null but recv is not */
884 }
885 if (0) {
886 { /* Inline kernel#Object#== (var_mgroup,((val*)NULL)) on <var_mgroup:nullable MGroup> */
887 var_other = ((val*)NULL);
888 {
889 { /* Inline kernel#Object#is_same_instance (var_mgroup,var_other) on <var_mgroup:nullable MGroup(MGroup)> */
890 var13 = var_mgroup == var_other;
891 var11 = var13;
892 goto RET_LABEL12;
893 RET_LABEL12:(void)0;
894 }
895 }
896 var9 = var11;
897 goto RET_LABEL10;
898 RET_LABEL10:(void)0;
899 }
900 var8 = var9;
901 }
902 if (var8){
903 {
904 var14 = nitc___nitc__MModule___nitc__model_base__MEntity__c_name(self);
905 }
906 var = var14;
907 goto RET_LABEL;
908 } else {
909 {
910 { /* Inline mpackage#MGroup#mpackage (var_mgroup) on <var_mgroup:nullable MGroup(MGroup)> */
911 var17 = var_mgroup->attrs[COLOR_nitc__mpackage__MGroup___mpackage].val; /* _mpackage on <var_mgroup:nullable MGroup(MGroup)> */
912 if (unlikely(var17 == NULL)) {
913 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpackage");
914 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mpackage, 69);
915 fatal_exit(1);
916 }
917 var15 = var17;
918 RET_LABEL16:(void)0;
919 }
920 }
921 {
922 var18 = nitc___nitc__MPackage___nitc__model_base__MEntity__c_name(var15);
923 }
924 var = var18;
925 goto RET_LABEL;
926 }
927 RET_LABEL:;
928 return var;
929 }
930 /* method mmodule#MModule#init for (self: MModule) */
931 void nitc___nitc__MModule___core__kernel__Object__init(val* self) {
932 val* var /* : Model */;
933 val* var2 /* : Model */;
934 val* var3 /* : MultiHashMap[String, MModule] */;
935 val* var5 /* : MultiHashMap[String, MModule] */;
936 val* var6 /* : String */;
937 val* var8 /* : String */;
938 val* var9 /* : Model */;
939 val* var11 /* : Model */;
940 val* var12 /* : Array[MModule] */;
941 val* var14 /* : Array[MModule] */;
942 val* var15 /* : nullable MGroup */;
943 val* var17 /* : nullable MGroup */;
944 val* var_mgroup /* var mgroup: nullable MGroup */;
945 short int var18 /* : Bool */;
946 short int var19 /* : Bool */;
947 val* var_other /* var other: nullable Object */;
948 short int var21 /* : Bool */;
949 short int var22 /* : Bool */;
950 val* var23 /* : Array[MModule] */;
951 val* var25 /* : Array[MModule] */;
952 val* var26 /* : String */;
953 val* var28 /* : String */;
954 val* var29 /* : String */;
955 val* var31 /* : String */;
956 short int var32 /* : Bool */;
957 val* var33 /* : nullable MModule */;
958 val* var35 /* : nullable MModule */;
959 short int var36 /* : Bool */;
960 short int var37 /* : Bool */;
961 val* var_other39 /* var other: nullable Object */;
962 short int var40 /* : Bool */;
963 short int var42 /* : Bool */;
964 val* var44 /* : Model */;
965 val* var46 /* : Model */;
966 val* var47 /* : POSet[MModule] */;
967 val* var49 /* : POSet[MModule] */;
968 val* var50 /* : POSetElement[nullable Object] */;
969 {
970 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MModule___core__kernel__Object__init]))(self); /* init on <self:MModule>*/
971 }
972 {
973 { /* Inline mmodule#MModule#model (self) on <self:MModule> */
974 var2 = self->attrs[COLOR_nitc__mmodule__MModule___model].val; /* _model on <self:MModule> */
975 if (unlikely(var2 == NULL)) {
976 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
977 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 78);
978 fatal_exit(1);
979 }
980 var = var2;
981 RET_LABEL1:(void)0;
982 }
983 }
984 {
985 { /* Inline mmodule#Model#mmodules_by_name (var) on <var:Model> */
986 var5 = var->attrs[COLOR_nitc__mmodule__Model___mmodules_by_name].val; /* _mmodules_by_name on <var:Model> */
987 if (unlikely(var5 == NULL)) {
988 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodules_by_name");
989 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 37);
990 fatal_exit(1);
991 }
992 var3 = var5;
993 RET_LABEL4:(void)0;
994 }
995 }
996 {
997 { /* Inline mmodule#MModule#name (self) on <self:MModule> */
998 var8 = self->attrs[COLOR_nitc__mmodule__MModule___name].val; /* _name on <self:MModule> */
999 if (unlikely(var8 == NULL)) {
1000 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1001 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 95);
1002 fatal_exit(1);
1003 }
1004 var6 = var8;
1005 RET_LABEL7:(void)0;
1006 }
1007 }
1008 {
1009 more_collections___more_collections__MultiHashMap___add_one(var3, var6, self); /* Direct call more_collections#MultiHashMap#add_one on <var3:MultiHashMap[String, MModule]>*/
1010 }
1011 {
1012 { /* Inline mmodule#MModule#model (self) on <self:MModule> */
1013 var11 = self->attrs[COLOR_nitc__mmodule__MModule___model].val; /* _model on <self:MModule> */
1014 if (unlikely(var11 == NULL)) {
1015 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
1016 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 78);
1017 fatal_exit(1);
1018 }
1019 var9 = var11;
1020 RET_LABEL10:(void)0;
1021 }
1022 }
1023 {
1024 { /* Inline mmodule#Model#mmodules (var9) on <var9:Model> */
1025 var14 = var9->attrs[COLOR_nitc__mmodule__Model___mmodules].val; /* _mmodules on <var9:Model> */
1026 if (unlikely(var14 == NULL)) {
1027 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodules");
1028 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 31);
1029 fatal_exit(1);
1030 }
1031 var12 = var14;
1032 RET_LABEL13:(void)0;
1033 }
1034 }
1035 {
1036 core___core__Array___core__abstract_collection__SimpleCollection__add(var12, self); /* Direct call array#Array#add on <var12:Array[MModule]>*/
1037 }
1038 {
1039 { /* Inline mmodule#MModule#mgroup (self) on <self:MModule> */
1040 var17 = self->attrs[COLOR_nitc__mmodule__MModule___mgroup].val; /* _mgroup on <self:MModule> */
1041 var15 = var17;
1042 RET_LABEL16:(void)0;
1043 }
1044 }
1045 var_mgroup = var15;
1046 if (var_mgroup == NULL) {
1047 var18 = 0; /* is null */
1048 } else {
1049 var18 = 1; /* arg is null and recv is not */
1050 }
1051 if (0) {
1052 { /* Inline kernel#Object#!= (var_mgroup,((val*)NULL)) on <var_mgroup:nullable MGroup> */
1053 var_other = ((val*)NULL);
1054 {
1055 var21 = ((short int(*)(val* self, val* p0))(var_mgroup->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mgroup, var_other); /* == on <var_mgroup:nullable MGroup(MGroup)>*/
1056 }
1057 var22 = !var21;
1058 var19 = var22;
1059 goto RET_LABEL20;
1060 RET_LABEL20:(void)0;
1061 }
1062 var18 = var19;
1063 }
1064 if (var18){
1065 {
1066 { /* Inline mmodule#MGroup#mmodules (var_mgroup) on <var_mgroup:nullable MGroup(MGroup)> */
1067 var25 = var_mgroup->attrs[COLOR_nitc__mmodule__MGroup___mmodules].val; /* _mmodules on <var_mgroup:nullable MGroup(MGroup)> */
1068 if (unlikely(var25 == NULL)) {
1069 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodules");
1070 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 55);
1071 fatal_exit(1);
1072 }
1073 var23 = var25;
1074 RET_LABEL24:(void)0;
1075 }
1076 }
1077 {
1078 core___core__Array___core__abstract_collection__SimpleCollection__add(var23, self); /* Direct call array#Array#add on <var23:Array[MModule]>*/
1079 }
1080 {
1081 { /* Inline mpackage#MGroup#name (var_mgroup) on <var_mgroup:nullable MGroup(MGroup)> */
1082 var28 = var_mgroup->attrs[COLOR_nitc__mpackage__MGroup___name].val; /* _name on <var_mgroup:nullable MGroup(MGroup)> */
1083 if (unlikely(var28 == NULL)) {
1084 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1085 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mpackage, 65);
1086 fatal_exit(1);
1087 }
1088 var26 = var28;
1089 RET_LABEL27:(void)0;
1090 }
1091 }
1092 {
1093 { /* Inline mmodule#MModule#name (self) on <self:MModule> */
1094 var31 = self->attrs[COLOR_nitc__mmodule__MModule___name].val; /* _name on <self:MModule> */
1095 if (unlikely(var31 == NULL)) {
1096 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1097 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 95);
1098 fatal_exit(1);
1099 }
1100 var29 = var31;
1101 RET_LABEL30:(void)0;
1102 }
1103 }
1104 {
1105 var32 = ((short int(*)(val* self, val* p0))(var26->class->vft[COLOR_core__kernel__Object___61d_61d]))(var26, var29); /* == on <var26:String>*/
1106 }
1107 if (var32){
1108 {
1109 { /* Inline mmodule#MGroup#default_mmodule (var_mgroup) on <var_mgroup:nullable MGroup(MGroup)> */
1110 var35 = var_mgroup->attrs[COLOR_nitc__mmodule__MGroup___default_mmodule].val; /* _default_mmodule on <var_mgroup:nullable MGroup(MGroup)> */
1111 var33 = var35;
1112 RET_LABEL34:(void)0;
1113 }
1114 }
1115 if (var33 == NULL) {
1116 var36 = 1; /* is null */
1117 } else {
1118 var36 = 0; /* arg is null but recv is not */
1119 }
1120 if (0) {
1121 { /* Inline kernel#Object#== (var33,((val*)NULL)) on <var33:nullable MModule> */
1122 var_other39 = ((val*)NULL);
1123 {
1124 { /* Inline kernel#Object#is_same_instance (var33,var_other39) on <var33:nullable MModule(MModule)> */
1125 var42 = var33 == var_other39;
1126 var40 = var42;
1127 goto RET_LABEL41;
1128 RET_LABEL41:(void)0;
1129 }
1130 }
1131 var37 = var40;
1132 goto RET_LABEL38;
1133 RET_LABEL38:(void)0;
1134 }
1135 var36 = var37;
1136 }
1137 if (unlikely(!var36)) {
1138 PRINT_ERROR("Runtime error: %s", "Assert failed");
1139 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 175);
1140 fatal_exit(1);
1141 }
1142 {
1143 { /* Inline mmodule#MGroup#default_mmodule= (var_mgroup,self) on <var_mgroup:nullable MGroup(MGroup)> */
1144 var_mgroup->attrs[COLOR_nitc__mmodule__MGroup___default_mmodule].val = self; /* _default_mmodule on <var_mgroup:nullable MGroup(MGroup)> */
1145 RET_LABEL43:(void)0;
1146 }
1147 }
1148 } else {
1149 }
1150 } else {
1151 }
1152 {
1153 { /* Inline mmodule#MModule#model (self) on <self:MModule> */
1154 var46 = self->attrs[COLOR_nitc__mmodule__MModule___model].val; /* _model on <self:MModule> */
1155 if (unlikely(var46 == NULL)) {
1156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
1157 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 78);
1158 fatal_exit(1);
1159 }
1160 var44 = var46;
1161 RET_LABEL45:(void)0;
1162 }
1163 }
1164 {
1165 { /* Inline mmodule#Model#mmodule_importation_hierarchy (var44) on <var44:Model> */
1166 var49 = var44->attrs[COLOR_nitc__mmodule__Model___mmodule_importation_hierarchy].val; /* _mmodule_importation_hierarchy on <var44:Model> */
1167 if (unlikely(var49 == NULL)) {
1168 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule_importation_hierarchy");
1169 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 34);
1170 fatal_exit(1);
1171 }
1172 var47 = var49;
1173 RET_LABEL48:(void)0;
1174 }
1175 }
1176 {
1177 var50 = poset___poset__POSet___add_node(var47, self);
1178 }
1179 {
1180 { /* Inline mmodule#MModule#in_importation= (self,var50) on <self:MModule> */
1181 self->attrs[COLOR_nitc__mmodule__MModule___in_importation].val = var50; /* _in_importation on <self:MModule> */
1182 RET_LABEL51:(void)0;
1183 }
1184 }
1185 RET_LABEL:;
1186 }
1187 /* method mmodule#MModule#set_imported_mmodules for (self: MModule, Array[MModule]) */
1188 void nitc___nitc__MModule___set_imported_mmodules(val* self, val* p0) {
1189 val* var_imported_mmodules /* var imported_mmodules: Array[MModule] */;
1190 val* var_ /* var : Array[MModule] */;
1191 val* var /* : IndexedIterator[nullable Object] */;
1192 val* var_1 /* var : IndexedIterator[MModule] */;
1193 short int var2 /* : Bool */;
1194 val* var3 /* : nullable Object */;
1195 val* var_m /* var m: MModule */;
1196 val* var4 /* : Model */;
1197 val* var6 /* : Model */;
1198 val* var7 /* : POSet[MModule] */;
1199 val* var9 /* : POSet[MModule] */;
1200 var_imported_mmodules = p0;
1201 var_ = var_imported_mmodules;
1202 {
1203 var = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
1204 }
1205 var_1 = var;
1206 for(;;) {
1207 {
1208 var2 = ((short int(*)(val* self))((((long)var_1&3)?class_info[((long)var_1&3)]:var_1->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_1); /* is_ok on <var_1:IndexedIterator[MModule]>*/
1209 }
1210 if (var2){
1211 } else {
1212 goto BREAK_label;
1213 }
1214 {
1215 var3 = ((val*(*)(val* self))((((long)var_1&3)?class_info[((long)var_1&3)]:var_1->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_1); /* item on <var_1:IndexedIterator[MModule]>*/
1216 }
1217 var_m = var3;
1218 {
1219 { /* Inline mmodule#MModule#model (self) on <self:MModule> */
1220 var6 = self->attrs[COLOR_nitc__mmodule__MModule___model].val; /* _model on <self:MModule> */
1221 if (unlikely(var6 == NULL)) {
1222 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
1223 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 78);
1224 fatal_exit(1);
1225 }
1226 var4 = var6;
1227 RET_LABEL5:(void)0;
1228 }
1229 }
1230 {
1231 { /* Inline mmodule#Model#mmodule_importation_hierarchy (var4) on <var4:Model> */
1232 var9 = var4->attrs[COLOR_nitc__mmodule__Model___mmodule_importation_hierarchy].val; /* _mmodule_importation_hierarchy on <var4:Model> */
1233 if (unlikely(var9 == NULL)) {
1234 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule_importation_hierarchy");
1235 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 34);
1236 fatal_exit(1);
1237 }
1238 var7 = var9;
1239 RET_LABEL8:(void)0;
1240 }
1241 }
1242 {
1243 poset___poset__POSet___add_edge(var7, self, var_m); /* Direct call poset#POSet#add_edge on <var7:POSet[MModule]>*/
1244 }
1245 {
1246 ((void(*)(val* self))((((long)var_1&3)?class_info[((long)var_1&3)]:var_1->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_1); /* next on <var_1:IndexedIterator[MModule]>*/
1247 }
1248 }
1249 BREAK_label: (void)0;
1250 {
1251 ((void(*)(val* self))((((long)var_1&3)?class_info[((long)var_1&3)]:var_1->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_1); /* finish on <var_1:IndexedIterator[MModule]>*/
1252 }
1253 RET_LABEL:;
1254 }
1255 /* method mmodule#MModule#intrude_mmodules for (self: MModule): HashSet[MModule] */
1256 val* nitc___nitc__MModule___intrude_mmodules(val* self) {
1257 val* var /* : HashSet[MModule] */;
1258 val* var1 /* : HashSet[MModule] */;
1259 var1 = self->attrs[COLOR_nitc__mmodule__MModule___intrude_mmodules].val; /* _intrude_mmodules on <self:MModule> */
1260 if (unlikely(var1 == NULL)) {
1261 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intrude_mmodules");
1262 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 191);
1263 fatal_exit(1);
1264 }
1265 var = var1;
1266 RET_LABEL:;
1267 return var;
1268 }
1269 /* method mmodule#MModule#public_mmodules for (self: MModule): HashSet[MModule] */
1270 val* nitc___nitc__MModule___public_mmodules(val* self) {
1271 val* var /* : HashSet[MModule] */;
1272 val* var1 /* : HashSet[MModule] */;
1273 var1 = self->attrs[COLOR_nitc__mmodule__MModule___public_mmodules].val; /* _public_mmodules on <self:MModule> */
1274 if (unlikely(var1 == NULL)) {
1275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _public_mmodules");
1276 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 192);
1277 fatal_exit(1);
1278 }
1279 var = var1;
1280 RET_LABEL:;
1281 return var;
1282 }
1283 /* method mmodule#MModule#private_mmodules for (self: MModule): HashSet[MModule] */
1284 val* nitc___nitc__MModule___private_mmodules(val* self) {
1285 val* var /* : HashSet[MModule] */;
1286 val* var1 /* : HashSet[MModule] */;
1287 var1 = self->attrs[COLOR_nitc__mmodule__MModule___private_mmodules].val; /* _private_mmodules on <self:MModule> */
1288 if (unlikely(var1 == NULL)) {
1289 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _private_mmodules");
1290 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 193);
1291 fatal_exit(1);
1292 }
1293 var = var1;
1294 RET_LABEL:;
1295 return var;
1296 }
1297 /* method mmodule#MModule#visibility_for for (self: MModule, MModule): MVisibility */
1298 val* nitc___nitc__MModule___visibility_for(val* self, val* p0) {
1299 val* var /* : MVisibility */;
1300 val* var_m /* var m: MModule */;
1301 short int var1 /* : Bool */;
1302 val* var_other /* var other: nullable Object */;
1303 short int var3 /* : Bool */;
1304 short int var5 /* : Bool */;
1305 val* var6 /* : Sys */;
1306 val* var7 /* : MVisibility */;
1307 val* var8 /* : HashSet[MModule] */;
1308 val* var10 /* : HashSet[MModule] */;
1309 short int var11 /* : Bool */;
1310 val* var12 /* : Sys */;
1311 val* var13 /* : MVisibility */;
1312 val* var14 /* : HashSet[MModule] */;
1313 val* var16 /* : HashSet[MModule] */;
1314 short int var17 /* : Bool */;
1315 val* var18 /* : Sys */;
1316 val* var19 /* : MVisibility */;
1317 val* var20 /* : HashSet[MModule] */;
1318 val* var22 /* : HashSet[MModule] */;
1319 short int var23 /* : Bool */;
1320 val* var24 /* : Sys */;
1321 val* var25 /* : MVisibility */;
1322 val* var26 /* : Sys */;
1323 val* var27 /* : MVisibility */;
1324 var_m = p0;
1325 {
1326 { /* Inline kernel#Object#== (var_m,self) on <var_m:MModule> */
1327 var_other = self;
1328 {
1329 { /* Inline kernel#Object#is_same_instance (var_m,var_other) on <var_m:MModule> */
1330 var5 = var_m == var_other;
1331 var3 = var5;
1332 goto RET_LABEL4;
1333 RET_LABEL4:(void)0;
1334 }
1335 }
1336 var1 = var3;
1337 goto RET_LABEL2;
1338 RET_LABEL2:(void)0;
1339 }
1340 }
1341 if (var1){
1342 var6 = glob_sys;
1343 {
1344 var7 = nitc__model_base___core__Sys___intrude_visibility(var6);
1345 }
1346 var = var7;
1347 goto RET_LABEL;
1348 } else {
1349 }
1350 {
1351 { /* Inline mmodule#MModule#intrude_mmodules (self) on <self:MModule> */
1352 var10 = self->attrs[COLOR_nitc__mmodule__MModule___intrude_mmodules].val; /* _intrude_mmodules on <self:MModule> */
1353 if (unlikely(var10 == NULL)) {
1354 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intrude_mmodules");
1355 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 191);
1356 fatal_exit(1);
1357 }
1358 var8 = var10;
1359 RET_LABEL9:(void)0;
1360 }
1361 }
1362 {
1363 var11 = core___core__HashSet___core__abstract_collection__Collection__has(var8, var_m);
1364 }
1365 if (var11){
1366 var12 = glob_sys;
1367 {
1368 var13 = nitc__model_base___core__Sys___intrude_visibility(var12);
1369 }
1370 var = var13;
1371 goto RET_LABEL;
1372 } else {
1373 }
1374 {
1375 { /* Inline mmodule#MModule#public_mmodules (self) on <self:MModule> */
1376 var16 = self->attrs[COLOR_nitc__mmodule__MModule___public_mmodules].val; /* _public_mmodules on <self:MModule> */
1377 if (unlikely(var16 == NULL)) {
1378 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _public_mmodules");
1379 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 192);
1380 fatal_exit(1);
1381 }
1382 var14 = var16;
1383 RET_LABEL15:(void)0;
1384 }
1385 }
1386 {
1387 var17 = core___core__HashSet___core__abstract_collection__Collection__has(var14, var_m);
1388 }
1389 if (var17){
1390 var18 = glob_sys;
1391 {
1392 var19 = nitc__model_base___core__Sys___public_visibility(var18);
1393 }
1394 var = var19;
1395 goto RET_LABEL;
1396 } else {
1397 }
1398 {
1399 { /* Inline mmodule#MModule#private_mmodules (self) on <self:MModule> */
1400 var22 = self->attrs[COLOR_nitc__mmodule__MModule___private_mmodules].val; /* _private_mmodules on <self:MModule> */
1401 if (unlikely(var22 == NULL)) {
1402 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _private_mmodules");
1403 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 193);
1404 fatal_exit(1);
1405 }
1406 var20 = var22;
1407 RET_LABEL21:(void)0;
1408 }
1409 }
1410 {
1411 var23 = core___core__HashSet___core__abstract_collection__Collection__has(var20, var_m);
1412 }
1413 if (var23){
1414 var24 = glob_sys;
1415 {
1416 var25 = nitc__model_base___core__Sys___private_visibility(var24);
1417 }
1418 var = var25;
1419 goto RET_LABEL;
1420 } else {
1421 }
1422 var26 = glob_sys;
1423 {
1424 var27 = nitc__model_base___core__Sys___none_visibility(var26);
1425 }
1426 var = var27;
1427 goto RET_LABEL;
1428 RET_LABEL:;
1429 return var;
1430 }
1431 /* method mmodule#MModule#set_visibility_for for (self: MModule, MModule, MVisibility) */
1432 void nitc___nitc__MModule___set_visibility_for(val* self, val* p0, val* p1) {
1433 val* var_m /* var m: MModule */;
1434 val* var_v /* var v: MVisibility */;
1435 val* var /* : Sys */;
1436 val* var1 /* : MVisibility */;
1437 short int var2 /* : Bool */;
1438 val* var_other /* var other: nullable Object */;
1439 short int var4 /* : Bool */;
1440 short int var6 /* : Bool */;
1441 val* var7 /* : HashSet[MModule] */;
1442 val* var9 /* : HashSet[MModule] */;
1443 val* var10 /* : HashSet[MModule] */;
1444 val* var12 /* : HashSet[MModule] */;
1445 val* var13 /* : HashSet[MModule] */;
1446 val* var15 /* : HashSet[MModule] */;
1447 val* var16 /* : HashSet[MModule] */;
1448 val* var18 /* : HashSet[MModule] */;
1449 val* var19 /* : HashSet[MModule] */;
1450 val* var21 /* : HashSet[MModule] */;
1451 val* var22 /* : HashSet[MModule] */;
1452 val* var24 /* : HashSet[MModule] */;
1453 val* var25 /* : HashSet[MModule] */;
1454 val* var27 /* : HashSet[MModule] */;
1455 val* var28 /* : Sys */;
1456 val* var29 /* : MVisibility */;
1457 short int var30 /* : Bool */;
1458 short int var32 /* : Bool */;
1459 short int var34 /* : Bool */;
1460 val* var35 /* : HashSet[MModule] */;
1461 val* var37 /* : HashSet[MModule] */;
1462 val* var38 /* : HashSet[MModule] */;
1463 val* var40 /* : HashSet[MModule] */;
1464 val* var41 /* : HashSet[MModule] */;
1465 val* var43 /* : HashSet[MModule] */;
1466 val* var44 /* : HashSet[MModule] */;
1467 val* var46 /* : HashSet[MModule] */;
1468 val* var47 /* : HashSet[MModule] */;
1469 val* var49 /* : HashSet[MModule] */;
1470 val* var50 /* : Sys */;
1471 val* var51 /* : MVisibility */;
1472 short int var52 /* : Bool */;
1473 short int var54 /* : Bool */;
1474 short int var56 /* : Bool */;
1475 val* var57 /* : HashSet[MModule] */;
1476 val* var59 /* : HashSet[MModule] */;
1477 val* var60 /* : HashSet[MModule] */;
1478 val* var62 /* : HashSet[MModule] */;
1479 val* var63 /* : HashSet[MModule] */;
1480 val* var65 /* : HashSet[MModule] */;
1481 val* var66 /* : HashSet[MModule] */;
1482 val* var68 /* : HashSet[MModule] */;
1483 val* var69 /* : HashSet[MModule] */;
1484 val* var71 /* : HashSet[MModule] */;
1485 val* var72 /* : Sys */;
1486 val* var73 /* : NativeArray[String] */;
1487 static val* varonce;
1488 static val* varonce74;
1489 val* var75 /* : String */;
1490 char* var76 /* : NativeString */;
1491 val* var77 /* : String */;
1492 static val* varonce78;
1493 val* var79 /* : String */;
1494 char* var80 /* : NativeString */;
1495 val* var81 /* : String */;
1496 val* var82 /* : String */;
1497 val* var83 /* : String */;
1498 val* var84 /* : String */;
1499 val* var85 /* : String */;
1500 var_m = p0;
1501 var_v = p1;
1502 var = glob_sys;
1503 {
1504 var1 = nitc__model_base___core__Sys___intrude_visibility(var);
1505 }
1506 {
1507 { /* Inline kernel#Object#== (var_v,var1) on <var_v:MVisibility> */
1508 var_other = var1;
1509 {
1510 { /* Inline kernel#Object#is_same_instance (var_v,var_other) on <var_v:MVisibility> */
1511 var6 = var_v == var_other;
1512 var4 = var6;
1513 goto RET_LABEL5;
1514 RET_LABEL5:(void)0;
1515 }
1516 }
1517 var2 = var4;
1518 goto RET_LABEL3;
1519 RET_LABEL3:(void)0;
1520 }
1521 }
1522 if (var2){
1523 {
1524 { /* Inline mmodule#MModule#intrude_mmodules (self) on <self:MModule> */
1525 var9 = self->attrs[COLOR_nitc__mmodule__MModule___intrude_mmodules].val; /* _intrude_mmodules on <self:MModule> */
1526 if (unlikely(var9 == NULL)) {
1527 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intrude_mmodules");
1528 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 191);
1529 fatal_exit(1);
1530 }
1531 var7 = var9;
1532 RET_LABEL8:(void)0;
1533 }
1534 }
1535 {
1536 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var7, var_m); /* Direct call hash_collection#HashSet#add on <var7:HashSet[MModule]>*/
1537 }
1538 {
1539 { /* Inline mmodule#MModule#intrude_mmodules (self) on <self:MModule> */
1540 var12 = self->attrs[COLOR_nitc__mmodule__MModule___intrude_mmodules].val; /* _intrude_mmodules on <self:MModule> */
1541 if (unlikely(var12 == NULL)) {
1542 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intrude_mmodules");
1543 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 191);
1544 fatal_exit(1);
1545 }
1546 var10 = var12;
1547 RET_LABEL11:(void)0;
1548 }
1549 }
1550 {
1551 { /* Inline mmodule#MModule#intrude_mmodules (var_m) on <var_m:MModule> */
1552 var15 = var_m->attrs[COLOR_nitc__mmodule__MModule___intrude_mmodules].val; /* _intrude_mmodules on <var_m:MModule> */
1553 if (unlikely(var15 == NULL)) {
1554 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intrude_mmodules");
1555 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 191);
1556 fatal_exit(1);
1557 }
1558 var13 = var15;
1559 RET_LABEL14:(void)0;
1560 }
1561 }
1562 {
1563 core___core__SimpleCollection___add_all(var10, var13); /* Direct call abstract_collection#SimpleCollection#add_all on <var10:HashSet[MModule]>*/
1564 }
1565 {
1566 { /* Inline mmodule#MModule#public_mmodules (self) on <self:MModule> */
1567 var18 = self->attrs[COLOR_nitc__mmodule__MModule___public_mmodules].val; /* _public_mmodules on <self:MModule> */
1568 if (unlikely(var18 == NULL)) {
1569 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _public_mmodules");
1570 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 192);
1571 fatal_exit(1);
1572 }
1573 var16 = var18;
1574 RET_LABEL17:(void)0;
1575 }
1576 }
1577 {
1578 { /* Inline mmodule#MModule#public_mmodules (var_m) on <var_m:MModule> */
1579 var21 = var_m->attrs[COLOR_nitc__mmodule__MModule___public_mmodules].val; /* _public_mmodules on <var_m:MModule> */
1580 if (unlikely(var21 == NULL)) {
1581 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _public_mmodules");
1582 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 192);
1583 fatal_exit(1);
1584 }
1585 var19 = var21;
1586 RET_LABEL20:(void)0;
1587 }
1588 }
1589 {
1590 core___core__SimpleCollection___add_all(var16, var19); /* Direct call abstract_collection#SimpleCollection#add_all on <var16:HashSet[MModule]>*/
1591 }
1592 {
1593 { /* Inline mmodule#MModule#private_mmodules (self) on <self:MModule> */
1594 var24 = self->attrs[COLOR_nitc__mmodule__MModule___private_mmodules].val; /* _private_mmodules on <self:MModule> */
1595 if (unlikely(var24 == NULL)) {
1596 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _private_mmodules");
1597 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 193);
1598 fatal_exit(1);
1599 }
1600 var22 = var24;
1601 RET_LABEL23:(void)0;
1602 }
1603 }
1604 {
1605 { /* Inline mmodule#MModule#private_mmodules (var_m) on <var_m:MModule> */
1606 var27 = var_m->attrs[COLOR_nitc__mmodule__MModule___private_mmodules].val; /* _private_mmodules on <var_m:MModule> */
1607 if (unlikely(var27 == NULL)) {
1608 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _private_mmodules");
1609 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 193);
1610 fatal_exit(1);
1611 }
1612 var25 = var27;
1613 RET_LABEL26:(void)0;
1614 }
1615 }
1616 {
1617 core___core__SimpleCollection___add_all(var22, var25); /* Direct call abstract_collection#SimpleCollection#add_all on <var22:HashSet[MModule]>*/
1618 }
1619 } else {
1620 var28 = glob_sys;
1621 {
1622 var29 = nitc__model_base___core__Sys___public_visibility(var28);
1623 }
1624 {
1625 { /* Inline kernel#Object#== (var_v,var29) on <var_v:MVisibility> */
1626 var_other = var29;
1627 {
1628 { /* Inline kernel#Object#is_same_instance (var_v,var_other) on <var_v:MVisibility> */
1629 var34 = var_v == var_other;
1630 var32 = var34;
1631 goto RET_LABEL33;
1632 RET_LABEL33:(void)0;
1633 }
1634 }
1635 var30 = var32;
1636 goto RET_LABEL31;
1637 RET_LABEL31:(void)0;
1638 }
1639 }
1640 if (var30){
1641 {
1642 { /* Inline mmodule#MModule#public_mmodules (self) on <self:MModule> */
1643 var37 = self->attrs[COLOR_nitc__mmodule__MModule___public_mmodules].val; /* _public_mmodules on <self:MModule> */
1644 if (unlikely(var37 == NULL)) {
1645 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _public_mmodules");
1646 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 192);
1647 fatal_exit(1);
1648 }
1649 var35 = var37;
1650 RET_LABEL36:(void)0;
1651 }
1652 }
1653 {
1654 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var35, var_m); /* Direct call hash_collection#HashSet#add on <var35:HashSet[MModule]>*/
1655 }
1656 {
1657 { /* Inline mmodule#MModule#public_mmodules (self) on <self:MModule> */
1658 var40 = self->attrs[COLOR_nitc__mmodule__MModule___public_mmodules].val; /* _public_mmodules on <self:MModule> */
1659 if (unlikely(var40 == NULL)) {
1660 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _public_mmodules");
1661 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 192);
1662 fatal_exit(1);
1663 }
1664 var38 = var40;
1665 RET_LABEL39:(void)0;
1666 }
1667 }
1668 {
1669 { /* Inline mmodule#MModule#intrude_mmodules (var_m) on <var_m:MModule> */
1670 var43 = var_m->attrs[COLOR_nitc__mmodule__MModule___intrude_mmodules].val; /* _intrude_mmodules on <var_m:MModule> */
1671 if (unlikely(var43 == NULL)) {
1672 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intrude_mmodules");
1673 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 191);
1674 fatal_exit(1);
1675 }
1676 var41 = var43;
1677 RET_LABEL42:(void)0;
1678 }
1679 }
1680 {
1681 core___core__SimpleCollection___add_all(var38, var41); /* Direct call abstract_collection#SimpleCollection#add_all on <var38:HashSet[MModule]>*/
1682 }
1683 {
1684 { /* Inline mmodule#MModule#public_mmodules (self) on <self:MModule> */
1685 var46 = self->attrs[COLOR_nitc__mmodule__MModule___public_mmodules].val; /* _public_mmodules on <self:MModule> */
1686 if (unlikely(var46 == NULL)) {
1687 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _public_mmodules");
1688 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 192);
1689 fatal_exit(1);
1690 }
1691 var44 = var46;
1692 RET_LABEL45:(void)0;
1693 }
1694 }
1695 {
1696 { /* Inline mmodule#MModule#public_mmodules (var_m) on <var_m:MModule> */
1697 var49 = var_m->attrs[COLOR_nitc__mmodule__MModule___public_mmodules].val; /* _public_mmodules on <var_m:MModule> */
1698 if (unlikely(var49 == NULL)) {
1699 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _public_mmodules");
1700 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 192);
1701 fatal_exit(1);
1702 }
1703 var47 = var49;
1704 RET_LABEL48:(void)0;
1705 }
1706 }
1707 {
1708 core___core__SimpleCollection___add_all(var44, var47); /* Direct call abstract_collection#SimpleCollection#add_all on <var44:HashSet[MModule]>*/
1709 }
1710 } else {
1711 var50 = glob_sys;
1712 {
1713 var51 = nitc__model_base___core__Sys___private_visibility(var50);
1714 }
1715 {
1716 { /* Inline kernel#Object#== (var_v,var51) on <var_v:MVisibility> */
1717 var_other = var51;
1718 {
1719 { /* Inline kernel#Object#is_same_instance (var_v,var_other) on <var_v:MVisibility> */
1720 var56 = var_v == var_other;
1721 var54 = var56;
1722 goto RET_LABEL55;
1723 RET_LABEL55:(void)0;
1724 }
1725 }
1726 var52 = var54;
1727 goto RET_LABEL53;
1728 RET_LABEL53:(void)0;
1729 }
1730 }
1731 if (var52){
1732 {
1733 { /* Inline mmodule#MModule#private_mmodules (self) on <self:MModule> */
1734 var59 = self->attrs[COLOR_nitc__mmodule__MModule___private_mmodules].val; /* _private_mmodules on <self:MModule> */
1735 if (unlikely(var59 == NULL)) {
1736 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _private_mmodules");
1737 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 193);
1738 fatal_exit(1);
1739 }
1740 var57 = var59;
1741 RET_LABEL58:(void)0;
1742 }
1743 }
1744 {
1745 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var57, var_m); /* Direct call hash_collection#HashSet#add on <var57:HashSet[MModule]>*/
1746 }
1747 {
1748 { /* Inline mmodule#MModule#private_mmodules (self) on <self:MModule> */
1749 var62 = self->attrs[COLOR_nitc__mmodule__MModule___private_mmodules].val; /* _private_mmodules on <self:MModule> */
1750 if (unlikely(var62 == NULL)) {
1751 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _private_mmodules");
1752 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 193);
1753 fatal_exit(1);
1754 }
1755 var60 = var62;
1756 RET_LABEL61:(void)0;
1757 }
1758 }
1759 {
1760 { /* Inline mmodule#MModule#intrude_mmodules (var_m) on <var_m:MModule> */
1761 var65 = var_m->attrs[COLOR_nitc__mmodule__MModule___intrude_mmodules].val; /* _intrude_mmodules on <var_m:MModule> */
1762 if (unlikely(var65 == NULL)) {
1763 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intrude_mmodules");
1764 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 191);
1765 fatal_exit(1);
1766 }
1767 var63 = var65;
1768 RET_LABEL64:(void)0;
1769 }
1770 }
1771 {
1772 core___core__SimpleCollection___add_all(var60, var63); /* Direct call abstract_collection#SimpleCollection#add_all on <var60:HashSet[MModule]>*/
1773 }
1774 {
1775 { /* Inline mmodule#MModule#private_mmodules (self) on <self:MModule> */
1776 var68 = self->attrs[COLOR_nitc__mmodule__MModule___private_mmodules].val; /* _private_mmodules on <self:MModule> */
1777 if (unlikely(var68 == NULL)) {
1778 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _private_mmodules");
1779 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 193);
1780 fatal_exit(1);
1781 }
1782 var66 = var68;
1783 RET_LABEL67:(void)0;
1784 }
1785 }
1786 {
1787 { /* Inline mmodule#MModule#public_mmodules (var_m) on <var_m:MModule> */
1788 var71 = var_m->attrs[COLOR_nitc__mmodule__MModule___public_mmodules].val; /* _public_mmodules on <var_m:MModule> */
1789 if (unlikely(var71 == NULL)) {
1790 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _public_mmodules");
1791 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 192);
1792 fatal_exit(1);
1793 }
1794 var69 = var71;
1795 RET_LABEL70:(void)0;
1796 }
1797 }
1798 {
1799 core___core__SimpleCollection___add_all(var66, var69); /* Direct call abstract_collection#SimpleCollection#add_all on <var66:HashSet[MModule]>*/
1800 }
1801 } else {
1802 var72 = glob_sys;
1803 if (unlikely(varonce==NULL)) {
1804 var73 = NEW_core__NativeArray(5l, &type_core__NativeArray__core__String);
1805 if (likely(varonce74!=NULL)) {
1806 var75 = varonce74;
1807 } else {
1808 var76 = " visibility for ";
1809 var77 = core__flat___NativeString___to_s_full(var76, 16l, 16l);
1810 var75 = var77;
1811 varonce74 = var75;
1812 }
1813 ((struct instance_core__NativeArray*)var73)->values[1]=var75;
1814 if (likely(varonce78!=NULL)) {
1815 var79 = varonce78;
1816 } else {
1817 var80 = " = ";
1818 var81 = core__flat___NativeString___to_s_full(var80, 3l, 3l);
1819 var79 = var81;
1820 varonce78 = var79;
1821 }
1822 ((struct instance_core__NativeArray*)var73)->values[3]=var79;
1823 } else {
1824 var73 = varonce;
1825 varonce = NULL;
1826 }
1827 {
1828 var82 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Object__to_s]))(self); /* to_s on <self:MModule>*/
1829 }
1830 ((struct instance_core__NativeArray*)var73)->values[0]=var82;
1831 {
1832 var83 = ((val*(*)(val* self))(var_m->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_m); /* to_s on <var_m:MModule>*/
1833 }
1834 ((struct instance_core__NativeArray*)var73)->values[2]=var83;
1835 {
1836 var84 = ((val*(*)(val* self))(var_v->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_v); /* to_s on <var_v:MVisibility>*/
1837 }
1838 ((struct instance_core__NativeArray*)var73)->values[4]=var84;
1839 {
1840 var85 = ((val*(*)(val* self))(var73->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var73); /* native_to_s on <var73:NativeArray[String]>*/
1841 }
1842 varonce = var73;
1843 {
1844 core__file___Sys___print(var72, var85); /* Direct call file#Sys#print on <var72:Sys>*/
1845 }
1846 PRINT_ERROR("Runtime error: %s", "Aborted");
1847 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 224);
1848 fatal_exit(1);
1849 }
1850 }
1851 }
1852 RET_LABEL:;
1853 }
1854 /* method mmodule#MModule#is_visible for (self: MModule, MModule, MVisibility): Bool */
1855 short int nitc___nitc__MModule___is_visible(val* self, val* p0, val* p1) {
1856 short int var /* : Bool */;
1857 val* var_intro_mmodule /* var intro_mmodule: MModule */;
1858 val* var_visibility /* var visibility: MVisibility */;
1859 val* var1 /* : MVisibility */;
1860 val* var_v /* var v: MVisibility */;
1861 val* var2 /* : Sys */;
1862 val* var3 /* : MVisibility */;
1863 short int var4 /* : Bool */;
1864 val* var_other /* var other: nullable Object */;
1865 short int var6 /* : Bool */;
1866 short int var8 /* : Bool */;
1867 val* var9 /* : Sys */;
1868 val* var10 /* : MVisibility */;
1869 short int var11 /* : Bool */;
1870 val* var12 /* : Sys */;
1871 val* var13 /* : MVisibility */;
1872 short int var14 /* : Bool */;
1873 short int var16 /* : Bool */;
1874 short int var18 /* : Bool */;
1875 val* var19 /* : Sys */;
1876 val* var20 /* : MVisibility */;
1877 short int var21 /* : Bool */;
1878 val* var22 /* : Sys */;
1879 val* var23 /* : MVisibility */;
1880 short int var24 /* : Bool */;
1881 short int var26 /* : Bool */;
1882 short int var28 /* : Bool */;
1883 val* var29 /* : Sys */;
1884 val* var30 /* : MVisibility */;
1885 short int var31 /* : Bool */;
1886 val* var32 /* : Sys */;
1887 val* var33 /* : MVisibility */;
1888 short int var34 /* : Bool */;
1889 short int var36 /* : Bool */;
1890 short int var38 /* : Bool */;
1891 var_intro_mmodule = p0;
1892 var_visibility = p1;
1893 {
1894 var1 = nitc___nitc__MModule___visibility_for(self, var_intro_mmodule);
1895 }
1896 var_v = var1;
1897 var2 = glob_sys;
1898 {
1899 var3 = nitc__model_base___core__Sys___intrude_visibility(var2);
1900 }
1901 {
1902 { /* Inline kernel#Object#== (var_v,var3) on <var_v:MVisibility> */
1903 var_other = var3;
1904 {
1905 { /* Inline kernel#Object#is_same_instance (var_v,var_other) on <var_v:MVisibility> */
1906 var8 = var_v == var_other;
1907 var6 = var8;
1908 goto RET_LABEL7;
1909 RET_LABEL7:(void)0;
1910 }
1911 }
1912 var4 = var6;
1913 goto RET_LABEL5;
1914 RET_LABEL5:(void)0;
1915 }
1916 }
1917 if (var4){
1918 var9 = glob_sys;
1919 {
1920 var10 = nitc__model_base___core__Sys___private_visibility(var9);
1921 }
1922 {
1923 var11 = core___core__Comparable____62d_61d(var_visibility, var10);
1924 }
1925 var = var11;
1926 goto RET_LABEL;
1927 } else {
1928 var12 = glob_sys;
1929 {
1930 var13 = nitc__model_base___core__Sys___public_visibility(var12);
1931 }
1932 {
1933 { /* Inline kernel#Object#== (var_v,var13) on <var_v:MVisibility> */
1934 var_other = var13;
1935 {
1936 { /* Inline kernel#Object#is_same_instance (var_v,var_other) on <var_v:MVisibility> */
1937 var18 = var_v == var_other;
1938 var16 = var18;
1939 goto RET_LABEL17;
1940 RET_LABEL17:(void)0;
1941 }
1942 }
1943 var14 = var16;
1944 goto RET_LABEL15;
1945 RET_LABEL15:(void)0;
1946 }
1947 }
1948 if (var14){
1949 var19 = glob_sys;
1950 {
1951 var20 = nitc__model_base___core__Sys___private_visibility(var19);
1952 }
1953 {
1954 var21 = core___core__Comparable____62d(var_visibility, var20);
1955 }
1956 var = var21;
1957 goto RET_LABEL;
1958 } else {
1959 var22 = glob_sys;
1960 {
1961 var23 = nitc__model_base___core__Sys___private_visibility(var22);
1962 }
1963 {
1964 { /* Inline kernel#Object#== (var_v,var23) on <var_v:MVisibility> */
1965 var_other = var23;
1966 {
1967 { /* Inline kernel#Object#is_same_instance (var_v,var_other) on <var_v:MVisibility> */
1968 var28 = var_v == var_other;
1969 var26 = var28;
1970 goto RET_LABEL27;
1971 RET_LABEL27:(void)0;
1972 }
1973 }
1974 var24 = var26;
1975 goto RET_LABEL25;
1976 RET_LABEL25:(void)0;
1977 }
1978 }
1979 if (var24){
1980 var29 = glob_sys;
1981 {
1982 var30 = nitc__model_base___core__Sys___private_visibility(var29);
1983 }
1984 {
1985 var31 = core___core__Comparable____62d(var_visibility, var30);
1986 }
1987 var = var31;
1988 goto RET_LABEL;
1989 } else {
1990 var32 = glob_sys;
1991 {
1992 var33 = nitc__model_base___core__Sys___none_visibility(var32);
1993 }
1994 {
1995 { /* Inline kernel#Object#== (var_v,var33) on <var_v:MVisibility> */
1996 var_other = var33;
1997 {
1998 { /* Inline kernel#Object#is_same_instance (var_v,var_other) on <var_v:MVisibility> */
1999 var38 = var_v == var_other;
2000 var36 = var38;
2001 goto RET_LABEL37;
2002 RET_LABEL37:(void)0;
2003 }
2004 }
2005 var34 = var36;
2006 goto RET_LABEL35;
2007 RET_LABEL35:(void)0;
2008 }
2009 }
2010 if (var34){
2011 var = 0;
2012 goto RET_LABEL;
2013 } else {
2014 PRINT_ERROR("Runtime error: %s", "Aborted");
2015 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 241);
2016 fatal_exit(1);
2017 }
2018 }
2019 }
2020 }
2021 RET_LABEL:;
2022 return var;
2023 }
2024 /* method mmodule#MModule#is_test_suite= for (self: MModule, Bool) */
2025 void nitc___nitc__MModule___is_test_suite_61d(val* self, short int p0) {
2026 self->attrs[COLOR_nitc__mmodule__MModule___is_test_suite].s = p0; /* _is_test_suite on <self:MModule> */
2027 RET_LABEL:;
2028 }
2029 /* method mmodule#MModule#first_real_mmodule for (self: MModule): MModule */
2030 val* nitc___nitc__MModule___first_real_mmodule(val* self) {
2031 val* var /* : MModule */;
2032 val* var_mmodule /* var mmodule: MModule */;
2033 short int var1 /* : Bool */;
2034 short int var3 /* : Bool */;
2035 val* var4 /* : POSetElement[MModule] */;
2036 val* var6 /* : POSetElement[MModule] */;
2037 val* var7 /* : Collection[nullable Object] */;
2038 val* var8 /* : nullable Object */;
2039 var_mmodule = self;
2040 for(;;) {
2041 {
2042 { /* Inline model_base#MEntity#is_fictive (var_mmodule) on <var_mmodule:MModule> */
2043 var3 = var_mmodule->attrs[COLOR_nitc__model_base__MEntity___is_fictive].s; /* _is_fictive on <var_mmodule:MModule> */
2044 var1 = var3;
2045 RET_LABEL2:(void)0;
2046 }
2047 }
2048 if (var1){
2049 {
2050 { /* Inline mmodule#MModule#in_importation (var_mmodule) on <var_mmodule:MModule> */
2051 var6 = var_mmodule->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
2052 if (unlikely(var6 == NULL)) {
2053 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
2054 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 104);
2055 fatal_exit(1);
2056 }
2057 var4 = var6;
2058 RET_LABEL5:(void)0;
2059 }
2060 }
2061 {
2062 var7 = poset___poset__POSetElement___direct_greaters(var4);
2063 }
2064 {
2065 var8 = ((val*(*)(val* self))((((long)var7&3)?class_info[((long)var7&3)]:var7->class)->vft[COLOR_core__abstract_collection__Collection__first]))(var7); /* first on <var7:Collection[nullable Object](Collection[MModule])>*/
2066 }
2067 var_mmodule = var8;
2068 } else {
2069 goto BREAK_label;
2070 }
2071 }
2072 BREAK_label: (void)0;
2073 var = var_mmodule;
2074 goto RET_LABEL;
2075 RET_LABEL:;
2076 return var;
2077 }