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