mnit: intro the numbers module
[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___64dmmodules].val; /* @mmodules on <self:Model> */
7 if (var1 == NULL) {
8 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mmodules");
9 fprintf(stderr, " (%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 var1 = mmodule__Model__mmodules(self);
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method mmodule#Model#mmodules= for (self: Model, Array[MModule]) */
26 void mmodule__Model__mmodules_61d(val* self, val* p0) {
27 self->attrs[COLOR_mmodule__Model___64dmmodules].val = p0; /* @mmodules on <self:Model> */
28 RET_LABEL:;
29 }
30 /* method mmodule#Model#mmodules= for (self: Object, Array[MModule]) */
31 void VIRTUAL_mmodule__Model__mmodules_61d(val* self, val* p0) {
32 mmodule__Model__mmodules_61d(self, p0);
33 RET_LABEL:;
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___64dmmodule_nesting_hierarchy].val; /* @mmodule_nesting_hierarchy on <self:Model> */
40 if (var1 == NULL) {
41 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mmodule_nesting_hierarchy");
42 fprintf(stderr, " (%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 var1 = mmodule__Model__mmodule_nesting_hierarchy(self);
54 var = var1;
55 RET_LABEL:;
56 return var;
57 }
58 /* method mmodule#Model#mmodule_nesting_hierarchy= for (self: Model, POSet[MModule]) */
59 void mmodule__Model__mmodule_nesting_hierarchy_61d(val* self, val* p0) {
60 self->attrs[COLOR_mmodule__Model___64dmmodule_nesting_hierarchy].val = p0; /* @mmodule_nesting_hierarchy on <self:Model> */
61 RET_LABEL:;
62 }
63 /* method mmodule#Model#mmodule_nesting_hierarchy= for (self: Object, POSet[MModule]) */
64 void VIRTUAL_mmodule__Model__mmodule_nesting_hierarchy_61d(val* self, val* p0) {
65 mmodule__Model__mmodule_nesting_hierarchy_61d(self, p0);
66 RET_LABEL:;
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___64dmmodule_importation_hierarchy].val; /* @mmodule_importation_hierarchy on <self:Model> */
73 if (var1 == NULL) {
74 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mmodule_importation_hierarchy");
75 fprintf(stderr, " (%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 var1 = mmodule__Model__mmodule_importation_hierarchy(self);
87 var = var1;
88 RET_LABEL:;
89 return var;
90 }
91 /* method mmodule#Model#mmodule_importation_hierarchy= for (self: Model, POSet[MModule]) */
92 void mmodule__Model__mmodule_importation_hierarchy_61d(val* self, val* p0) {
93 self->attrs[COLOR_mmodule__Model___64dmmodule_importation_hierarchy].val = p0; /* @mmodule_importation_hierarchy on <self:Model> */
94 RET_LABEL:;
95 }
96 /* method mmodule#Model#mmodule_importation_hierarchy= for (self: Object, POSet[MModule]) */
97 void VIRTUAL_mmodule__Model__mmodule_importation_hierarchy_61d(val* self, val* p0) {
98 mmodule__Model__mmodule_importation_hierarchy_61d(self, p0);
99 RET_LABEL:;
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___64dmmodules_by_name].val; /* @mmodules_by_name on <self:Model> */
106 if (var1 == NULL) {
107 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mmodules_by_name");
108 fprintf(stderr, " (%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 var1 = mmodule__Model__mmodules_by_name(self);
120 var = var1;
121 RET_LABEL:;
122 return var;
123 }
124 /* method mmodule#Model#mmodules_by_name= for (self: Model, MultiHashMap[String, MModule]) */
125 void mmodule__Model__mmodules_by_name_61d(val* self, val* p0) {
126 self->attrs[COLOR_mmodule__Model___64dmmodules_by_name].val = p0; /* @mmodules_by_name on <self:Model> */
127 RET_LABEL:;
128 }
129 /* method mmodule#Model#mmodules_by_name= for (self: Object, MultiHashMap[String, MModule]) */
130 void VIRTUAL_mmodule__Model__mmodules_by_name_61d(val* self, val* p0) {
131 mmodule__Model__mmodules_by_name_61d(self, p0);
132 RET_LABEL:;
133 }
134 /* method mmodule#Model#get_mmodules_by_name for (self: Model, String): nullable Array[MModule] */
135 val* mmodule__Model__get_mmodules_by_name(val* self, val* p0) {
136 val* var /* : nullable Array[MModule] */;
137 val* var_name /* var name: String */;
138 val* var1 /* : MultiHashMap[String, MModule] */;
139 short int var2 /* : Bool */;
140 val* var3 /* : MultiHashMap[String, MModule] */;
141 val* var4 /* : nullable Object */;
142 val* var5 /* : null */;
143 var_name = p0;
144 var1 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__Model__mmodules_by_name]))(self) /* mmodules_by_name on <self:Model>*/;
145 var2 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_abstract_collection__MapRead__has_key]))(var1, var_name) /* has_key on <var1:MultiHashMap[String, MModule]>*/;
146 if (var2){
147 var3 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__Model__mmodules_by_name]))(self) /* mmodules_by_name on <self:Model>*/;
148 var4 = ((val* (*)(val*, val*))(var3->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var3, var_name) /* [] on <var3:MultiHashMap[String, MModule]>*/;
149 var = var4;
150 goto RET_LABEL;
151 } else {
152 var5 = NULL;
153 var = var5;
154 goto RET_LABEL;
155 }
156 RET_LABEL:;
157 return var;
158 }
159 /* method mmodule#Model#get_mmodules_by_name for (self: Object, String): nullable Array[MModule] */
160 val* VIRTUAL_mmodule__Model__get_mmodules_by_name(val* self, val* p0) {
161 val* var /* : nullable Array[MModule] */;
162 val* var1 /* : nullable Array[MModule] */;
163 var1 = mmodule__Model__get_mmodules_by_name(self, p0);
164 var = var1;
165 RET_LABEL:;
166 return var;
167 }
168 /* method mmodule#MGroup#mmodules for (self: MGroup): Array[MModule] */
169 val* mmodule__MGroup__mmodules(val* self) {
170 val* var /* : Array[MModule] */;
171 val* var1 /* : Array[MModule] */;
172 var1 = self->attrs[COLOR_mmodule__MGroup___64dmmodules].val; /* @mmodules on <self:MGroup> */
173 if (var1 == NULL) {
174 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mmodules");
175 fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 58);
176 show_backtrace(1);
177 }
178 var = var1;
179 RET_LABEL:;
180 return var;
181 }
182 /* method mmodule#MGroup#mmodules for (self: Object): Array[MModule] */
183 val* VIRTUAL_mmodule__MGroup__mmodules(val* self) {
184 val* var /* : Array[MModule] */;
185 val* var1 /* : Array[MModule] */;
186 var1 = mmodule__MGroup__mmodules(self);
187 var = var1;
188 RET_LABEL:;
189 return var;
190 }
191 /* method mmodule#MGroup#mmodules= for (self: MGroup, Array[MModule]) */
192 void mmodule__MGroup__mmodules_61d(val* self, val* p0) {
193 self->attrs[COLOR_mmodule__MGroup___64dmmodules].val = p0; /* @mmodules on <self:MGroup> */
194 RET_LABEL:;
195 }
196 /* method mmodule#MGroup#mmodules= for (self: Object, Array[MModule]) */
197 void VIRTUAL_mmodule__MGroup__mmodules_61d(val* self, val* p0) {
198 mmodule__MGroup__mmodules_61d(self, p0);
199 RET_LABEL:;
200 }
201 /* method mmodule#MModule#model for (self: MModule): Model */
202 val* mmodule__MModule__model(val* self) {
203 val* var /* : Model */;
204 val* var1 /* : Model */;
205 var1 = self->attrs[COLOR_mmodule__MModule___64dmodel].val; /* @model on <self:MModule> */
206 if (var1 == NULL) {
207 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @model");
208 fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 64);
209 show_backtrace(1);
210 }
211 var = var1;
212 RET_LABEL:;
213 return var;
214 }
215 /* method mmodule#MModule#model for (self: Object): Model */
216 val* VIRTUAL_mmodule__MModule__model(val* self) {
217 val* var /* : Model */;
218 val* var1 /* : Model */;
219 var1 = mmodule__MModule__model(self);
220 var = var1;
221 RET_LABEL:;
222 return var;
223 }
224 /* method mmodule#MModule#model= for (self: MModule, Model) */
225 void mmodule__MModule__model_61d(val* self, val* p0) {
226 self->attrs[COLOR_mmodule__MModule___64dmodel].val = p0; /* @model on <self:MModule> */
227 RET_LABEL:;
228 }
229 /* method mmodule#MModule#model= for (self: Object, Model) */
230 void VIRTUAL_mmodule__MModule__model_61d(val* self, val* p0) {
231 mmodule__MModule__model_61d(self, p0);
232 RET_LABEL:;
233 }
234 /* method mmodule#MModule#direct_owner for (self: MModule): nullable MModule */
235 val* mmodule__MModule__direct_owner(val* self) {
236 val* var /* : nullable MModule */;
237 val* var1 /* : nullable MModule */;
238 var1 = self->attrs[COLOR_mmodule__MModule___64ddirect_owner].val; /* @direct_owner on <self:MModule> */
239 var = var1;
240 RET_LABEL:;
241 return var;
242 }
243 /* method mmodule#MModule#direct_owner for (self: Object): nullable MModule */
244 val* VIRTUAL_mmodule__MModule__direct_owner(val* self) {
245 val* var /* : nullable MModule */;
246 val* var1 /* : nullable MModule */;
247 var1 = mmodule__MModule__direct_owner(self);
248 var = var1;
249 RET_LABEL:;
250 return var;
251 }
252 /* method mmodule#MModule#direct_owner= for (self: MModule, nullable MModule) */
253 void mmodule__MModule__direct_owner_61d(val* self, val* p0) {
254 self->attrs[COLOR_mmodule__MModule___64ddirect_owner].val = p0; /* @direct_owner on <self:MModule> */
255 RET_LABEL:;
256 }
257 /* method mmodule#MModule#direct_owner= for (self: Object, nullable MModule) */
258 void VIRTUAL_mmodule__MModule__direct_owner_61d(val* self, val* p0) {
259 mmodule__MModule__direct_owner_61d(self, p0);
260 RET_LABEL:;
261 }
262 /* method mmodule#MModule#mgroup for (self: MModule): nullable MGroup */
263 val* mmodule__MModule__mgroup(val* self) {
264 val* var /* : nullable MGroup */;
265 val* var1 /* : nullable MGroup */;
266 var1 = self->attrs[COLOR_mmodule__MModule___64dmgroup].val; /* @mgroup on <self:MModule> */
267 var = var1;
268 RET_LABEL:;
269 return var;
270 }
271 /* method mmodule#MModule#mgroup for (self: Object): nullable MGroup */
272 val* VIRTUAL_mmodule__MModule__mgroup(val* self) {
273 val* var /* : nullable MGroup */;
274 val* var1 /* : nullable MGroup */;
275 var1 = mmodule__MModule__mgroup(self);
276 var = var1;
277 RET_LABEL:;
278 return var;
279 }
280 /* method mmodule#MModule#mgroup= for (self: MModule, nullable MGroup) */
281 void mmodule__MModule__mgroup_61d(val* self, val* p0) {
282 self->attrs[COLOR_mmodule__MModule___64dmgroup].val = p0; /* @mgroup on <self:MModule> */
283 RET_LABEL:;
284 }
285 /* method mmodule#MModule#mgroup= for (self: Object, nullable MGroup) */
286 void VIRTUAL_mmodule__MModule__mgroup_61d(val* self, val* p0) {
287 mmodule__MModule__mgroup_61d(self, p0);
288 RET_LABEL:;
289 }
290 /* method mmodule#MModule#name for (self: MModule): String */
291 val* mmodule__MModule__name(val* self) {
292 val* var /* : String */;
293 val* var1 /* : String */;
294 var1 = self->attrs[COLOR_mmodule__MModule___64dname].val; /* @name on <self:MModule> */
295 if (var1 == NULL) {
296 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @name");
297 fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 76);
298 show_backtrace(1);
299 }
300 var = var1;
301 RET_LABEL:;
302 return var;
303 }
304 /* method mmodule#MModule#name for (self: Object): String */
305 val* VIRTUAL_mmodule__MModule__name(val* self) {
306 val* var /* : String */;
307 val* var1 /* : String */;
308 var1 = mmodule__MModule__name(self);
309 var = var1;
310 RET_LABEL:;
311 return var;
312 }
313 /* method mmodule#MModule#name= for (self: MModule, String) */
314 void mmodule__MModule__name_61d(val* self, val* p0) {
315 self->attrs[COLOR_mmodule__MModule___64dname].val = p0; /* @name on <self:MModule> */
316 RET_LABEL:;
317 }
318 /* method mmodule#MModule#name= for (self: Object, String) */
319 void VIRTUAL_mmodule__MModule__name_61d(val* self, val* p0) {
320 mmodule__MModule__name_61d(self, p0);
321 RET_LABEL:;
322 }
323 /* method mmodule#MModule#location for (self: MModule): Location */
324 val* mmodule__MModule__location(val* self) {
325 val* var /* : Location */;
326 val* var1 /* : Location */;
327 var1 = self->attrs[COLOR_mmodule__MModule___64dlocation].val; /* @location on <self:MModule> */
328 if (var1 == NULL) {
329 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @location");
330 fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 79);
331 show_backtrace(1);
332 }
333 var = var1;
334 RET_LABEL:;
335 return var;
336 }
337 /* method mmodule#MModule#location for (self: Object): Location */
338 val* VIRTUAL_mmodule__MModule__location(val* self) {
339 val* var /* : Location */;
340 val* var1 /* : Location */;
341 var1 = mmodule__MModule__location(self);
342 var = var1;
343 RET_LABEL:;
344 return var;
345 }
346 /* method mmodule#MModule#location= for (self: MModule, Location) */
347 void mmodule__MModule__location_61d(val* self, val* p0) {
348 self->attrs[COLOR_mmodule__MModule___64dlocation].val = p0; /* @location on <self:MModule> */
349 RET_LABEL:;
350 }
351 /* method mmodule#MModule#location= for (self: Object, Location) */
352 void VIRTUAL_mmodule__MModule__location_61d(val* self, val* p0) {
353 mmodule__MModule__location_61d(self, p0);
354 RET_LABEL:;
355 }
356 /* method mmodule#MModule#to_s for (self: MModule): String */
357 val* mmodule__MModule__to_s(val* self) {
358 val* var /* : String */;
359 val* var1 /* : String */;
360 var1 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__name]))(self) /* name on <self:MModule>*/;
361 var = var1;
362 goto RET_LABEL;
363 RET_LABEL:;
364 return var;
365 }
366 /* method mmodule#MModule#to_s for (self: Object): String */
367 val* VIRTUAL_mmodule__MModule__to_s(val* self) {
368 val* var /* : String */;
369 val* var1 /* : String */;
370 var1 = mmodule__MModule__to_s(self);
371 var = var1;
372 RET_LABEL:;
373 return var;
374 }
375 /* method mmodule#MModule#in_nesting for (self: MModule): POSetElement[MModule] */
376 val* mmodule__MModule__in_nesting(val* self) {
377 val* var /* : POSetElement[MModule] */;
378 val* var1 /* : POSetElement[MModule] */;
379 var1 = self->attrs[COLOR_mmodule__MModule___64din_nesting].val; /* @in_nesting on <self:MModule> */
380 if (var1 == NULL) {
381 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @in_nesting");
382 fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 85);
383 show_backtrace(1);
384 }
385 var = var1;
386 RET_LABEL:;
387 return var;
388 }
389 /* method mmodule#MModule#in_nesting for (self: Object): POSetElement[MModule] */
390 val* VIRTUAL_mmodule__MModule__in_nesting(val* self) {
391 val* var /* : POSetElement[MModule] */;
392 val* var1 /* : POSetElement[MModule] */;
393 var1 = mmodule__MModule__in_nesting(self);
394 var = var1;
395 RET_LABEL:;
396 return var;
397 }
398 /* method mmodule#MModule#in_nesting= for (self: MModule, POSetElement[MModule]) */
399 void mmodule__MModule__in_nesting_61d(val* self, val* p0) {
400 self->attrs[COLOR_mmodule__MModule___64din_nesting].val = p0; /* @in_nesting on <self:MModule> */
401 RET_LABEL:;
402 }
403 /* method mmodule#MModule#in_nesting= for (self: Object, POSetElement[MModule]) */
404 void VIRTUAL_mmodule__MModule__in_nesting_61d(val* self, val* p0) {
405 mmodule__MModule__in_nesting_61d(self, p0);
406 RET_LABEL:;
407 }
408 /* method mmodule#MModule#in_importation for (self: MModule): POSetElement[MModule] */
409 val* mmodule__MModule__in_importation(val* self) {
410 val* var /* : POSetElement[MModule] */;
411 val* var1 /* : POSetElement[MModule] */;
412 var1 = self->attrs[COLOR_mmodule__MModule___64din_importation].val; /* @in_importation on <self:MModule> */
413 if (var1 == NULL) {
414 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @in_importation");
415 fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 91);
416 show_backtrace(1);
417 }
418 var = var1;
419 RET_LABEL:;
420 return var;
421 }
422 /* method mmodule#MModule#in_importation for (self: Object): POSetElement[MModule] */
423 val* VIRTUAL_mmodule__MModule__in_importation(val* self) {
424 val* var /* : POSetElement[MModule] */;
425 val* var1 /* : POSetElement[MModule] */;
426 var1 = mmodule__MModule__in_importation(self);
427 var = var1;
428 RET_LABEL:;
429 return var;
430 }
431 /* method mmodule#MModule#in_importation= for (self: MModule, POSetElement[MModule]) */
432 void mmodule__MModule__in_importation_61d(val* self, val* p0) {
433 self->attrs[COLOR_mmodule__MModule___64din_importation].val = p0; /* @in_importation on <self:MModule> */
434 RET_LABEL:;
435 }
436 /* method mmodule#MModule#in_importation= for (self: Object, POSetElement[MModule]) */
437 void VIRTUAL_mmodule__MModule__in_importation_61d(val* self, val* p0) {
438 mmodule__MModule__in_importation_61d(self, p0);
439 RET_LABEL:;
440 }
441 /* method mmodule#MModule#full_name for (self: MModule): String */
442 val* mmodule__MModule__full_name(val* self) {
443 val* var /* : String */;
444 val* var1 /* : nullable MGroup */;
445 val* var_mgroup /* var mgroup: nullable MGroup */;
446 short int var2 /* : Bool */;
447 val* var3 /* : null */;
448 short int var4 /* : Bool */;
449 short int var_ /* var : Bool */;
450 val* var5 /* : MProject */;
451 val* var6 /* : String */;
452 val* var7 /* : String */;
453 short int var8 /* : Bool */;
454 val* var9 /* : String */;
455 val* var10 /* : Array[Object] */;
456 long var11 /* : Int */;
457 val* var_12 /* var : Array[Object] */;
458 static val* varonce;
459 val* var13 /* : String */;
460 char* var14 /* : NativeString */;
461 long var15 /* : Int */;
462 val* var16 /* : String */;
463 val* var17 /* : MProject */;
464 val* var18 /* : String */;
465 static val* varonce19;
466 val* var20 /* : String */;
467 char* var21 /* : NativeString */;
468 long var22 /* : Int */;
469 val* var23 /* : String */;
470 val* var24 /* : String */;
471 static val* varonce25;
472 val* var26 /* : String */;
473 char* var27 /* : NativeString */;
474 long var28 /* : Int */;
475 val* var29 /* : String */;
476 val* var30 /* : String */;
477 var1 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__mgroup]))(self) /* mgroup on <self:MModule>*/;
478 var_mgroup = var1;
479 var3 = NULL;
480 if (var_mgroup == NULL) {
481 var4 = 1; /* is null */
482 } else {
483 var4 = 0; /* arg is null but recv is not */
484 }
485 var_ = var4;
486 if (var4){
487 var2 = var_;
488 } else {
489 var5 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mproject__MGroup__mproject]))(var_mgroup) /* mproject on <var_mgroup:nullable MGroup(MGroup)>*/;
490 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_mproject__MProject__name]))(var5) /* name on <var5:MProject>*/;
491 var7 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__name]))(self) /* name on <self:MModule>*/;
492 var8 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_kernel__Object___61d_61d]))(var6, var7) /* == on <var6:String>*/;
493 var2 = var8;
494 }
495 if (var2){
496 var9 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__name]))(self) /* name on <self:MModule>*/;
497 var = var9;
498 goto RET_LABEL;
499 } else {
500 var10 = NEW_array__Array(&type_array__Arraykernel__Object);
501 var11 = 5;
502 ((void (*)(val*, long))(var10->class->vft[COLOR_array__Array__with_capacity]))(var10, var11) /* with_capacity on <var10:Array[Object]>*/;
503 var_12 = var10;
504 if (varonce) {
505 var13 = varonce;
506 } else {
507 var14 = "";
508 var15 = 0;
509 var16 = string__NativeString__to_s_with_length(var14, var15);
510 var13 = var16;
511 varonce = var13;
512 }
513 ((void (*)(val*, val*))(var_12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_12, var13) /* add on <var_12:Array[Object]>*/;
514 var17 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mproject__MGroup__mproject]))(var_mgroup) /* mproject on <var_mgroup:nullable MGroup(MGroup)>*/;
515 var18 = ((val* (*)(val*))(var17->class->vft[COLOR_mproject__MProject__name]))(var17) /* name on <var17:MProject>*/;
516 ((void (*)(val*, val*))(var_12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_12, var18) /* add on <var_12:Array[Object]>*/;
517 if (varonce19) {
518 var20 = varonce19;
519 } else {
520 var21 = "::";
521 var22 = 2;
522 var23 = string__NativeString__to_s_with_length(var21, var22);
523 var20 = var23;
524 varonce19 = var20;
525 }
526 ((void (*)(val*, val*))(var_12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_12, var20) /* add on <var_12:Array[Object]>*/;
527 var24 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__name]))(self) /* name on <self:MModule>*/;
528 ((void (*)(val*, val*))(var_12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_12, var24) /* add on <var_12:Array[Object]>*/;
529 if (varonce25) {
530 var26 = varonce25;
531 } else {
532 var27 = "";
533 var28 = 0;
534 var29 = string__NativeString__to_s_with_length(var27, var28);
535 var26 = var29;
536 varonce25 = var26;
537 }
538 ((void (*)(val*, val*))(var_12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_12, var26) /* add on <var_12:Array[Object]>*/;
539 var30 = ((val* (*)(val*))(var_12->class->vft[COLOR_string__Object__to_s]))(var_12) /* to_s on <var_12:Array[Object]>*/;
540 var = var30;
541 goto RET_LABEL;
542 }
543 RET_LABEL:;
544 return var;
545 }
546 /* method mmodule#MModule#full_name for (self: Object): String */
547 val* VIRTUAL_mmodule__MModule__full_name(val* self) {
548 val* var /* : String */;
549 val* var1 /* : String */;
550 var1 = mmodule__MModule__full_name(self);
551 var = var1;
552 RET_LABEL:;
553 return var;
554 }
555 /* method mmodule#MModule#init for (self: MModule, Model, nullable MGroup, String, Location) */
556 void mmodule__MModule__init(val* self, val* p0, val* p1, val* p2, val* p3) {
557 val* var_model /* var model: Model */;
558 val* var_mgroup /* var mgroup: nullable MGroup */;
559 val* var_name /* var name: String */;
560 val* var_location /* var location: Location */;
561 val* var /* : MultiHashMap[String, MModule] */;
562 val* var1 /* : Array[MModule] */;
563 val* var2 /* : POSet[MModule] */;
564 val* var3 /* : POSetElement[Object] */;
565 val* var4 /* : null */;
566 short int var5 /* : Bool */;
567 val* var6 /* : Array[MModule] */;
568 val* var7 /* : Array[MModule] */;
569 val* var8 /* : nullable Object */;
570 val* var_direct_owner /* var direct_owner: MModule */;
571 short int var9 /* : Bool */;
572 short int var10 /* : Bool */;
573 short int var11 /* : Bool */;
574 short int var_ /* var : Bool */;
575 val* var12 /* : nullable MGroup */;
576 val* var13 /* : null */;
577 short int var14 /* : Bool */;
578 short int var_15 /* var : Bool */;
579 val* var16 /* : nullable MGroup */;
580 val* var17 /* : Array[MModule] */;
581 short int var18 /* : Bool */;
582 short int var19 /* : Bool */;
583 val* var20 /* : nullable MGroup */;
584 val* var21 /* : Array[MModule] */;
585 val* var22 /* : nullable Object */;
586 short int var23 /* : Bool */;
587 val* var24 /* : POSet[MModule] */;
588 val* var25 /* : POSet[MModule] */;
589 val* var26 /* : POSetElement[Object] */;
590 var_model = p0;
591 var_mgroup = p1;
592 var_name = p2;
593 var_location = p3;
594 ((void (*)(val*, val*))(self->class->vft[COLOR_mmodule__MModule__model_61d]))(self, var_model) /* model= on <self:MModule>*/;
595 ((void (*)(val*, val*))(self->class->vft[COLOR_mmodule__MModule__name_61d]))(self, var_name) /* name= on <self:MModule>*/;
596 ((void (*)(val*, val*))(self->class->vft[COLOR_mmodule__MModule__location_61d]))(self, var_location) /* location= on <self:MModule>*/;
597 var = ((val* (*)(val*))(var_model->class->vft[COLOR_mmodule__Model__mmodules_by_name]))(var_model) /* mmodules_by_name on <var_model:Model>*/;
598 ((void (*)(val*, val*, val*))(var->class->vft[COLOR_more_collections__MultiHashMap__add_one]))(var, var_name, self) /* add_one on <var:MultiHashMap[String, MModule]>*/;
599 var1 = ((val* (*)(val*))(var_model->class->vft[COLOR_mmodule__Model__mmodules]))(var_model) /* mmodules on <var_model:Model>*/;
600 ((void (*)(val*, val*))(var1->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var1, self) /* add on <var1:Array[MModule]>*/;
601 var2 = ((val* (*)(val*))(var_model->class->vft[COLOR_mmodule__Model__mmodule_nesting_hierarchy]))(var_model) /* mmodule_nesting_hierarchy on <var_model:Model>*/;
602 var3 = ((val* (*)(val*, val*))(var2->class->vft[COLOR_poset__POSet__add_node]))(var2, self) /* add_node on <var2:POSet[MModule]>*/;
603 ((void (*)(val*, val*))(self->class->vft[COLOR_mmodule__MModule__in_nesting_61d]))(self, var3) /* in_nesting= on <self:MModule>*/;
604 ((void (*)(val*, val*))(self->class->vft[COLOR_mmodule__MModule__mgroup_61d]))(self, var_mgroup) /* mgroup= on <self:MModule>*/;
605 var4 = NULL;
606 if (var_mgroup == NULL) {
607 var5 = 0; /* is null */
608 } else {
609 var5 = 1; /* arg is null and recv is not */
610 }
611 if (var5){
612 var6 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mmodule__MGroup__mmodules]))(var_mgroup) /* mmodules on <var_mgroup:nullable MGroup(MGroup)>*/;
613 ((void (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var6, self) /* add on <var6:Array[MModule]>*/;
614 var7 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mmodule__MGroup__mmodules]))(var_mgroup) /* mmodules on <var_mgroup:nullable MGroup(MGroup)>*/;
615 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Collection__first]))(var7) /* first on <var7:Array[MModule]>*/;
616 var_direct_owner = var8;
617 var11 = ((short int (*)(val*, val*))(var_direct_owner->class->vft[COLOR_kernel__Object___61d_61d]))(var_direct_owner, self) /* == on <var_direct_owner:MModule>*/;
618 var_ = var11;
619 if (var11){
620 var12 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mproject__MGroup__parent]))(var_mgroup) /* parent on <var_mgroup:nullable MGroup(MGroup)>*/;
621 var13 = NULL;
622 if (var12 == NULL) {
623 var14 = 0; /* is null */
624 } else {
625 var14 = 1; /* arg is null and recv is not */
626 }
627 var10 = var14;
628 } else {
629 var10 = var_;
630 }
631 var_15 = var10;
632 if (var10){
633 var16 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mproject__MGroup__parent]))(var_mgroup) /* parent on <var_mgroup:nullable MGroup(MGroup)>*/;
634 if (var16 == NULL) {
635 fprintf(stderr, "Runtime error: %s", "Reciever is null");
636 fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 120);
637 show_backtrace(1);
638 } else {
639 var17 = ((val* (*)(val*))(var16->class->vft[COLOR_mmodule__MGroup__mmodules]))(var16) /* mmodules on <var16:nullable MGroup>*/;
640 }
641 var18 = ((short int (*)(val*))(var17->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var17) /* is_empty on <var17:Array[MModule]>*/;
642 var19 = !var18;
643 var9 = var19;
644 } else {
645 var9 = var_15;
646 }
647 if (var9){
648 var20 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mproject__MGroup__parent]))(var_mgroup) /* parent on <var_mgroup:nullable MGroup(MGroup)>*/;
649 if (var20 == NULL) {
650 fprintf(stderr, "Runtime error: %s", "Reciever is null");
651 fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 121);
652 show_backtrace(1);
653 } else {
654 var21 = ((val* (*)(val*))(var20->class->vft[COLOR_mmodule__MGroup__mmodules]))(var20) /* mmodules on <var20:nullable MGroup>*/;
655 }
656 var22 = ((val* (*)(val*))(var21->class->vft[COLOR_abstract_collection__Collection__first]))(var21) /* first on <var21:Array[MModule]>*/;
657 var_direct_owner = var22;
658 } else {
659 }
660 var23 = ((short int (*)(val*, val*))(var_direct_owner->class->vft[COLOR_kernel__Object___33d_61d]))(var_direct_owner, self) /* != on <var_direct_owner:MModule>*/;
661 if (var23){
662 ((void (*)(val*, val*))(self->class->vft[COLOR_mmodule__MModule__direct_owner_61d]))(self, var_direct_owner) /* direct_owner= on <self:MModule>*/;
663 var24 = ((val* (*)(val*))(var_model->class->vft[COLOR_mmodule__Model__mmodule_nesting_hierarchy]))(var_model) /* mmodule_nesting_hierarchy on <var_model:Model>*/;
664 ((void (*)(val*, val*, val*))(var24->class->vft[COLOR_poset__POSet__add_edge]))(var24, var_direct_owner, self) /* add_edge on <var24:POSet[MModule]>*/;
665 } else {
666 }
667 } else {
668 }
669 var25 = ((val* (*)(val*))(var_model->class->vft[COLOR_mmodule__Model__mmodule_importation_hierarchy]))(var_model) /* mmodule_importation_hierarchy on <var_model:Model>*/;
670 var26 = ((val* (*)(val*, val*))(var25->class->vft[COLOR_poset__POSet__add_node]))(var25, self) /* add_node on <var25:POSet[MModule]>*/;
671 ((void (*)(val*, val*))(self->class->vft[COLOR_mmodule__MModule__in_importation_61d]))(self, var26) /* in_importation= on <self:MModule>*/;
672 RET_LABEL:;
673 }
674 /* method mmodule#MModule#init for (self: Object, Model, nullable MGroup, String, Location) */
675 void VIRTUAL_mmodule__MModule__init(val* self, val* p0, val* p1, val* p2, val* p3) {
676 mmodule__MModule__init(self, p0, p1, p2, p3);
677 RET_LABEL:;
678 }
679 /* method mmodule#MModule#set_imported_mmodules for (self: MModule, Array[MModule]) */
680 void mmodule__MModule__set_imported_mmodules(val* self, val* p0) {
681 val* var_imported_mmodules /* var imported_mmodules: Array[MModule] */;
682 val* var /* : POSetElement[MModule] */;
683 val* var1 /* : Collection[Object] */;
684 short int var2 /* : Bool */;
685 val* var3 /* : Iterator[nullable Object] */;
686 short int var4 /* : Bool */;
687 val* var5 /* : nullable Object */;
688 val* var_m /* var m: MModule */;
689 val* var6 /* : Model */;
690 val* var7 /* : POSet[MModule] */;
691 var_imported_mmodules = p0;
692 var = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__in_importation]))(self) /* in_importation on <self:MModule>*/;
693 var1 = ((val* (*)(val*))(var->class->vft[COLOR_poset__POSetElement__direct_greaters]))(var) /* direct_greaters on <var:POSetElement[MModule]>*/;
694 var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var1) /* is_empty on <var1:Collection[Object](Collection[MModule])>*/;
695 if (!var2) {
696 fprintf(stderr, "Runtime error: %s", "Assert \'unique_invocation\' failed");
697 fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 136);
698 show_backtrace(1);
699 }
700 var3 = ((val* (*)(val*))(var_imported_mmodules->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_imported_mmodules) /* iterator on <var_imported_mmodules:Array[MModule]>*/;
701 for(;;) {
702 var4 = ((short int (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var3) /* is_ok on <var3:Iterator[nullable Object]>*/;
703 if(!var4) break;
704 var5 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__item]))(var3) /* item on <var3:Iterator[nullable Object]>*/;
705 var_m = var5;
706 var6 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__model]))(self) /* model on <self:MModule>*/;
707 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_mmodule__Model__mmodule_importation_hierarchy]))(var6) /* mmodule_importation_hierarchy on <var6:Model>*/;
708 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_poset__POSet__add_edge]))(var7, self, var_m) /* add_edge on <var7:POSet[MModule]>*/;
709 CONTINUE_label: (void)0;
710 ((void (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__next]))(var3) /* next on <var3:Iterator[nullable Object]>*/;
711 }
712 BREAK_label: (void)0;
713 RET_LABEL:;
714 }
715 /* method mmodule#MModule#set_imported_mmodules for (self: Object, Array[MModule]) */
716 void VIRTUAL_mmodule__MModule__set_imported_mmodules(val* self, val* p0) {
717 mmodule__MModule__set_imported_mmodules(self, p0);
718 RET_LABEL:;
719 }
720 /* method mmodule#MModule#intrude_mmodules for (self: MModule): HashSet[MModule] */
721 val* mmodule__MModule__intrude_mmodules(val* self) {
722 val* var /* : HashSet[MModule] */;
723 val* var1 /* : HashSet[MModule] */;
724 var1 = self->attrs[COLOR_mmodule__MModule___64dintrude_mmodules].val; /* @intrude_mmodules on <self:MModule> */
725 if (var1 == NULL) {
726 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @intrude_mmodules");
727 fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 142);
728 show_backtrace(1);
729 }
730 var = var1;
731 RET_LABEL:;
732 return var;
733 }
734 /* method mmodule#MModule#intrude_mmodules for (self: Object): HashSet[MModule] */
735 val* VIRTUAL_mmodule__MModule__intrude_mmodules(val* self) {
736 val* var /* : HashSet[MModule] */;
737 val* var1 /* : HashSet[MModule] */;
738 var1 = mmodule__MModule__intrude_mmodules(self);
739 var = var1;
740 RET_LABEL:;
741 return var;
742 }
743 /* method mmodule#MModule#intrude_mmodules= for (self: MModule, HashSet[MModule]) */
744 void mmodule__MModule__intrude_mmodules_61d(val* self, val* p0) {
745 self->attrs[COLOR_mmodule__MModule___64dintrude_mmodules].val = p0; /* @intrude_mmodules on <self:MModule> */
746 RET_LABEL:;
747 }
748 /* method mmodule#MModule#intrude_mmodules= for (self: Object, HashSet[MModule]) */
749 void VIRTUAL_mmodule__MModule__intrude_mmodules_61d(val* self, val* p0) {
750 mmodule__MModule__intrude_mmodules_61d(self, p0);
751 RET_LABEL:;
752 }
753 /* method mmodule#MModule#public_mmodules for (self: MModule): HashSet[MModule] */
754 val* mmodule__MModule__public_mmodules(val* self) {
755 val* var /* : HashSet[MModule] */;
756 val* var1 /* : HashSet[MModule] */;
757 var1 = self->attrs[COLOR_mmodule__MModule___64dpublic_mmodules].val; /* @public_mmodules on <self:MModule> */
758 if (var1 == NULL) {
759 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @public_mmodules");
760 fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 143);
761 show_backtrace(1);
762 }
763 var = var1;
764 RET_LABEL:;
765 return var;
766 }
767 /* method mmodule#MModule#public_mmodules for (self: Object): HashSet[MModule] */
768 val* VIRTUAL_mmodule__MModule__public_mmodules(val* self) {
769 val* var /* : HashSet[MModule] */;
770 val* var1 /* : HashSet[MModule] */;
771 var1 = mmodule__MModule__public_mmodules(self);
772 var = var1;
773 RET_LABEL:;
774 return var;
775 }
776 /* method mmodule#MModule#public_mmodules= for (self: MModule, HashSet[MModule]) */
777 void mmodule__MModule__public_mmodules_61d(val* self, val* p0) {
778 self->attrs[COLOR_mmodule__MModule___64dpublic_mmodules].val = p0; /* @public_mmodules on <self:MModule> */
779 RET_LABEL:;
780 }
781 /* method mmodule#MModule#public_mmodules= for (self: Object, HashSet[MModule]) */
782 void VIRTUAL_mmodule__MModule__public_mmodules_61d(val* self, val* p0) {
783 mmodule__MModule__public_mmodules_61d(self, p0);
784 RET_LABEL:;
785 }
786 /* method mmodule#MModule#private_mmodules for (self: MModule): HashSet[MModule] */
787 val* mmodule__MModule__private_mmodules(val* self) {
788 val* var /* : HashSet[MModule] */;
789 val* var1 /* : HashSet[MModule] */;
790 var1 = self->attrs[COLOR_mmodule__MModule___64dprivate_mmodules].val; /* @private_mmodules on <self:MModule> */
791 if (var1 == NULL) {
792 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @private_mmodules");
793 fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 144);
794 show_backtrace(1);
795 }
796 var = var1;
797 RET_LABEL:;
798 return var;
799 }
800 /* method mmodule#MModule#private_mmodules for (self: Object): HashSet[MModule] */
801 val* VIRTUAL_mmodule__MModule__private_mmodules(val* self) {
802 val* var /* : HashSet[MModule] */;
803 val* var1 /* : HashSet[MModule] */;
804 var1 = mmodule__MModule__private_mmodules(self);
805 var = var1;
806 RET_LABEL:;
807 return var;
808 }
809 /* method mmodule#MModule#private_mmodules= for (self: MModule, HashSet[MModule]) */
810 void mmodule__MModule__private_mmodules_61d(val* self, val* p0) {
811 self->attrs[COLOR_mmodule__MModule___64dprivate_mmodules].val = p0; /* @private_mmodules on <self:MModule> */
812 RET_LABEL:;
813 }
814 /* method mmodule#MModule#private_mmodules= for (self: Object, HashSet[MModule]) */
815 void VIRTUAL_mmodule__MModule__private_mmodules_61d(val* self, val* p0) {
816 mmodule__MModule__private_mmodules_61d(self, p0);
817 RET_LABEL:;
818 }
819 /* method mmodule#MModule#visibility_for for (self: MModule, MModule): MVisibility */
820 val* mmodule__MModule__visibility_for(val* self, val* p0) {
821 val* var /* : MVisibility */;
822 val* var_m /* var m: MModule */;
823 short int var1 /* : Bool */;
824 val* var2 /* : MVisibility */;
825 val* var3 /* : HashSet[MModule] */;
826 short int var4 /* : Bool */;
827 val* var5 /* : MVisibility */;
828 val* var6 /* : HashSet[MModule] */;
829 short int var7 /* : Bool */;
830 val* var8 /* : MVisibility */;
831 val* var9 /* : HashSet[MModule] */;
832 short int var10 /* : Bool */;
833 val* var11 /* : MVisibility */;
834 val* var12 /* : MVisibility */;
835 var_m = p0;
836 var1 = ((short int (*)(val*, val*))(var_m->class->vft[COLOR_kernel__Object___61d_61d]))(var_m, self) /* == on <var_m:MModule>*/;
837 if (var1){
838 var2 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__intrude_visibility]))(self) /* intrude_visibility on <self:MModule>*/;
839 var = var2;
840 goto RET_LABEL;
841 } else {
842 }
843 var3 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__intrude_mmodules]))(self) /* intrude_mmodules on <self:MModule>*/;
844 var4 = ((short int (*)(val*, val*))(var3->class->vft[COLOR_abstract_collection__Collection__has]))(var3, var_m) /* has on <var3:HashSet[MModule]>*/;
845 if (var4){
846 var5 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__intrude_visibility]))(self) /* intrude_visibility on <self:MModule>*/;
847 var = var5;
848 goto RET_LABEL;
849 } else {
850 }
851 var6 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__public_mmodules]))(self) /* public_mmodules on <self:MModule>*/;
852 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__Collection__has]))(var6, var_m) /* has on <var6:HashSet[MModule]>*/;
853 if (var7){
854 var8 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__public_visibility]))(self) /* public_visibility on <self:MModule>*/;
855 var = var8;
856 goto RET_LABEL;
857 } else {
858 }
859 var9 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__private_mmodules]))(self) /* private_mmodules on <self:MModule>*/;
860 var10 = ((short int (*)(val*, val*))(var9->class->vft[COLOR_abstract_collection__Collection__has]))(var9, var_m) /* has on <var9:HashSet[MModule]>*/;
861 if (var10){
862 var11 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on <self:MModule>*/;
863 var = var11;
864 goto RET_LABEL;
865 } else {
866 }
867 var12 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__none_visibility]))(self) /* none_visibility on <self:MModule>*/;
868 var = var12;
869 goto RET_LABEL;
870 RET_LABEL:;
871 return var;
872 }
873 /* method mmodule#MModule#visibility_for for (self: Object, MModule): MVisibility */
874 val* VIRTUAL_mmodule__MModule__visibility_for(val* self, val* p0) {
875 val* var /* : MVisibility */;
876 val* var1 /* : MVisibility */;
877 var1 = mmodule__MModule__visibility_for(self, p0);
878 var = var1;
879 RET_LABEL:;
880 return var;
881 }
882 /* method mmodule#MModule#set_visibility_for for (self: MModule, MModule, MVisibility) */
883 void mmodule__MModule__set_visibility_for(val* self, val* p0, val* p1) {
884 val* var_m /* var m: MModule */;
885 val* var_v /* var v: MVisibility */;
886 val* var /* : MVisibility */;
887 short int var1 /* : Bool */;
888 val* var2 /* : HashSet[MModule] */;
889 val* var3 /* : HashSet[MModule] */;
890 val* var4 /* : HashSet[MModule] */;
891 val* var5 /* : HashSet[MModule] */;
892 val* var6 /* : HashSet[MModule] */;
893 val* var7 /* : HashSet[MModule] */;
894 val* var8 /* : HashSet[MModule] */;
895 val* var9 /* : MVisibility */;
896 short int var10 /* : Bool */;
897 val* var11 /* : HashSet[MModule] */;
898 val* var12 /* : HashSet[MModule] */;
899 val* var13 /* : HashSet[MModule] */;
900 val* var14 /* : HashSet[MModule] */;
901 val* var15 /* : HashSet[MModule] */;
902 val* var16 /* : MVisibility */;
903 short int var17 /* : Bool */;
904 val* var18 /* : HashSet[MModule] */;
905 val* var19 /* : HashSet[MModule] */;
906 val* var20 /* : HashSet[MModule] */;
907 val* var21 /* : HashSet[MModule] */;
908 val* var22 /* : HashSet[MModule] */;
909 static val* varonce;
910 val* var23 /* : String */;
911 char* var24 /* : NativeString */;
912 long var25 /* : Int */;
913 val* var26 /* : String */;
914 static val* varonce27;
915 val* var28 /* : String */;
916 char* var29 /* : NativeString */;
917 long var30 /* : Int */;
918 val* var31 /* : String */;
919 val* var32 /* : Array[Object] */;
920 long var33 /* : Int */;
921 val* var34 /* : NativeArray[Object] */;
922 val* var35 /* : String */;
923 var_m = p0;
924 var_v = p1;
925 var = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__intrude_visibility]))(self) /* intrude_visibility on <self:MModule>*/;
926 var1 = ((short int (*)(val*, val*))(var_v->class->vft[COLOR_kernel__Object___61d_61d]))(var_v, var) /* == on <var_v:MVisibility>*/;
927 if (var1){
928 var2 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__intrude_mmodules]))(self) /* intrude_mmodules on <self:MModule>*/;
929 ((void (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var2, var_m) /* add on <var2:HashSet[MModule]>*/;
930 var3 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__intrude_mmodules]))(self) /* intrude_mmodules on <self:MModule>*/;
931 var4 = ((val* (*)(val*))(var_m->class->vft[COLOR_mmodule__MModule__intrude_mmodules]))(var_m) /* intrude_mmodules on <var_m:MModule>*/;
932 ((void (*)(val*, val*))(var3->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var3, var4) /* add_all on <var3:HashSet[MModule]>*/;
933 var5 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__public_mmodules]))(self) /* public_mmodules on <self:MModule>*/;
934 var6 = ((val* (*)(val*))(var_m->class->vft[COLOR_mmodule__MModule__public_mmodules]))(var_m) /* public_mmodules on <var_m:MModule>*/;
935 ((void (*)(val*, val*))(var5->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var5, var6) /* add_all on <var5:HashSet[MModule]>*/;
936 var7 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__private_mmodules]))(self) /* private_mmodules on <self:MModule>*/;
937 var8 = ((val* (*)(val*))(var_m->class->vft[COLOR_mmodule__MModule__private_mmodules]))(var_m) /* private_mmodules on <var_m:MModule>*/;
938 ((void (*)(val*, val*))(var7->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var7, var8) /* add_all on <var7:HashSet[MModule]>*/;
939 } else {
940 var9 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__public_visibility]))(self) /* public_visibility on <self:MModule>*/;
941 var10 = ((short int (*)(val*, val*))(var_v->class->vft[COLOR_kernel__Object___61d_61d]))(var_v, var9) /* == on <var_v:MVisibility>*/;
942 if (var10){
943 var11 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__public_mmodules]))(self) /* public_mmodules on <self:MModule>*/;
944 ((void (*)(val*, val*))(var11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var11, var_m) /* add on <var11:HashSet[MModule]>*/;
945 var12 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__public_mmodules]))(self) /* public_mmodules on <self:MModule>*/;
946 var13 = ((val* (*)(val*))(var_m->class->vft[COLOR_mmodule__MModule__intrude_mmodules]))(var_m) /* intrude_mmodules on <var_m:MModule>*/;
947 ((void (*)(val*, val*))(var12->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var12, var13) /* add_all on <var12:HashSet[MModule]>*/;
948 var14 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__public_mmodules]))(self) /* public_mmodules on <self:MModule>*/;
949 var15 = ((val* (*)(val*))(var_m->class->vft[COLOR_mmodule__MModule__public_mmodules]))(var_m) /* public_mmodules on <var_m:MModule>*/;
950 ((void (*)(val*, val*))(var14->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var14, var15) /* add_all on <var14:HashSet[MModule]>*/;
951 } else {
952 var16 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on <self:MModule>*/;
953 var17 = ((short int (*)(val*, val*))(var_v->class->vft[COLOR_kernel__Object___61d_61d]))(var_v, var16) /* == on <var_v:MVisibility>*/;
954 if (var17){
955 var18 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__private_mmodules]))(self) /* private_mmodules on <self:MModule>*/;
956 ((void (*)(val*, val*))(var18->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var18, var_m) /* add on <var18:HashSet[MModule]>*/;
957 var19 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__private_mmodules]))(self) /* private_mmodules on <self:MModule>*/;
958 var20 = ((val* (*)(val*))(var_m->class->vft[COLOR_mmodule__MModule__intrude_mmodules]))(var_m) /* intrude_mmodules on <var_m:MModule>*/;
959 ((void (*)(val*, val*))(var19->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var19, var20) /* add_all on <var19:HashSet[MModule]>*/;
960 var21 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__private_mmodules]))(self) /* private_mmodules on <self:MModule>*/;
961 var22 = ((val* (*)(val*))(var_m->class->vft[COLOR_mmodule__MModule__public_mmodules]))(var_m) /* public_mmodules on <var_m:MModule>*/;
962 ((void (*)(val*, val*))(var21->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var21, var22) /* add_all on <var21:HashSet[MModule]>*/;
963 } else {
964 if (varonce) {
965 var23 = varonce;
966 } else {
967 var24 = " visibility for ";
968 var25 = 16;
969 var26 = string__NativeString__to_s_with_length(var24, var25);
970 var23 = var26;
971 varonce = var23;
972 }
973 if (varonce27) {
974 var28 = varonce27;
975 } else {
976 var29 = " = ";
977 var30 = 3;
978 var31 = string__NativeString__to_s_with_length(var29, var30);
979 var28 = var31;
980 varonce27 = var28;
981 }
982 var32 = NEW_array__Array(&type_array__Arraykernel__Object);
983 { /* var32 = array_instance Array[Object] */
984 var33 = 5;
985 var34 = NEW_array__NativeArray(var33, &type_array__NativeArraykernel__Object);
986 ((struct instance_array__NativeArray*)var34)->values[0] = (val*) self;
987 ((struct instance_array__NativeArray*)var34)->values[1] = (val*) var23;
988 ((struct instance_array__NativeArray*)var34)->values[2] = (val*) var_m;
989 ((struct instance_array__NativeArray*)var34)->values[3] = (val*) var28;
990 ((struct instance_array__NativeArray*)var34)->values[4] = (val*) var_v;
991 ((void (*)(val*, val*, long))(var32->class->vft[COLOR_array__Array__with_native]))(var32, var34, var33) /* with_native on <var32:Array[Object]>*/;
992 }
993 var35 = ((val* (*)(val*))(var32->class->vft[COLOR_string__Object__to_s]))(var32) /* to_s on <var32:Array[Object]>*/;
994 ((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var35) /* print on <self:MModule>*/;
995 fprintf(stderr, "Runtime error: %s", "Aborted");
996 fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 175);
997 show_backtrace(1);
998 }
999 }
1000 }
1001 RET_LABEL:;
1002 }
1003 /* method mmodule#MModule#set_visibility_for for (self: Object, MModule, MVisibility) */
1004 void VIRTUAL_mmodule__MModule__set_visibility_for(val* self, val* p0, val* p1) {
1005 mmodule__MModule__set_visibility_for(self, p0, p1);
1006 RET_LABEL:;
1007 }
1008 /* method mmodule#MModule#public_owner for (self: MModule): nullable MModule */
1009 val* mmodule__MModule__public_owner(val* self) {
1010 val* var /* : nullable MModule */;
1011 val* var1 /* : nullable MGroup */;
1012 val* var_mgroup /* var mgroup: nullable MGroup */;
1013 val* var2 /* : null */;
1014 short int var3 /* : Bool */;
1015 val* var4 /* : null */;
1016 val* var5 /* : MProject */;
1017 val* var6 /* : nullable MGroup */;
1018 val* var7 /* : Array[MModule] */;
1019 short int var8 /* : Bool */;
1020 val* var9 /* : null */;
1021 val* var10 /* : Array[MModule] */;
1022 val* var11 /* : nullable Object */;
1023 val* var_res /* var res: MModule */;
1024 short int var12 /* : Bool */;
1025 val* var13 /* : null */;
1026 var1 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__mgroup]))(self) /* mgroup on <self:MModule>*/;
1027 var_mgroup = var1;
1028 var2 = NULL;
1029 if (var_mgroup == NULL) {
1030 var3 = 1; /* is null */
1031 } else {
1032 var3 = 0; /* arg is null but recv is not */
1033 }
1034 if (var3){
1035 var4 = NULL;
1036 var = var4;
1037 goto RET_LABEL;
1038 } else {
1039 }
1040 var5 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mproject__MGroup__mproject]))(var_mgroup) /* mproject on <var_mgroup:nullable MGroup(MGroup)>*/;
1041 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_mproject__MProject__root]))(var5) /* root on <var5:MProject>*/;
1042 var_mgroup = var6;
1043 if (var_mgroup == NULL) {
1044 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1045 fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 185);
1046 show_backtrace(1);
1047 } else {
1048 var7 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mmodule__MGroup__mmodules]))(var_mgroup) /* mmodules on <var_mgroup:nullable MGroup>*/;
1049 }
1050 var8 = ((short int (*)(val*))(var7->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var7) /* is_empty on <var7:Array[MModule]>*/;
1051 if (var8){
1052 var9 = NULL;
1053 var = var9;
1054 goto RET_LABEL;
1055 } else {
1056 }
1057 if (var_mgroup == NULL) {
1058 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1059 fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 186);
1060 show_backtrace(1);
1061 } else {
1062 var10 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mmodule__MGroup__mmodules]))(var_mgroup) /* mmodules on <var_mgroup:nullable MGroup>*/;
1063 }
1064 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Collection__first]))(var10) /* first on <var10:Array[MModule]>*/;
1065 var_res = var11;
1066 var12 = ((short int (*)(val*, val*))(var_res->class->vft[COLOR_kernel__Object___61d_61d]))(var_res, self) /* == on <var_res:MModule>*/;
1067 if (var12){
1068 var13 = NULL;
1069 var = var13;
1070 goto RET_LABEL;
1071 } else {
1072 }
1073 var = var_res;
1074 goto RET_LABEL;
1075 RET_LABEL:;
1076 return var;
1077 }
1078 /* method mmodule#MModule#public_owner for (self: Object): nullable MModule */
1079 val* VIRTUAL_mmodule__MModule__public_owner(val* self) {
1080 val* var /* : nullable MModule */;
1081 val* var1 /* : nullable MModule */;
1082 var1 = mmodule__MModule__public_owner(self);
1083 var = var1;
1084 RET_LABEL:;
1085 return var;
1086 }
1087 /* method mmodule#MModule#is_visible for (self: MModule, MModule, MVisibility): Bool */
1088 short int mmodule__MModule__is_visible(val* self, val* p0, val* p1) {
1089 short int var /* : Bool */;
1090 val* var_intro_mmodule /* var intro_mmodule: MModule */;
1091 val* var_visibility /* var visibility: MVisibility */;
1092 val* var1 /* : MVisibility */;
1093 val* var_v /* var v: MVisibility */;
1094 val* var2 /* : MVisibility */;
1095 short int var3 /* : Bool */;
1096 val* var4 /* : MVisibility */;
1097 short int var5 /* : Bool */;
1098 val* var6 /* : MVisibility */;
1099 short int var7 /* : Bool */;
1100 val* var8 /* : MVisibility */;
1101 short int var9 /* : Bool */;
1102 val* var10 /* : MVisibility */;
1103 short int var11 /* : Bool */;
1104 val* var12 /* : MVisibility */;
1105 short int var13 /* : Bool */;
1106 val* var14 /* : MVisibility */;
1107 short int var15 /* : Bool */;
1108 short int var16 /* : Bool */;
1109 var_intro_mmodule = p0;
1110 var_visibility = p1;
1111 var1 = ((val* (*)(val*, val*))(self->class->vft[COLOR_mmodule__MModule__visibility_for]))(self, var_intro_mmodule) /* visibility_for on <self:MModule>*/;
1112 var_v = var1;
1113 var2 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__intrude_visibility]))(self) /* intrude_visibility on <self:MModule>*/;
1114 var3 = ((short int (*)(val*, val*))(var_v->class->vft[COLOR_kernel__Object___61d_61d]))(var_v, var2) /* == on <var_v:MVisibility>*/;
1115 if (var3){
1116 var4 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on <self:MModule>*/;
1117 var5 = ((short int (*)(val*, val*))(var_visibility->class->vft[COLOR_kernel__Comparable___62d_61d]))(var_visibility, var4) /* >= on <var_visibility:MVisibility>*/;
1118 var = var5;
1119 goto RET_LABEL;
1120 } else {
1121 var6 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__public_visibility]))(self) /* public_visibility on <self:MModule>*/;
1122 var7 = ((short int (*)(val*, val*))(var_v->class->vft[COLOR_kernel__Object___61d_61d]))(var_v, var6) /* == on <var_v:MVisibility>*/;
1123 if (var7){
1124 var8 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on <self:MModule>*/;
1125 var9 = ((short int (*)(val*, val*))(var_visibility->class->vft[COLOR_kernel__Comparable___62d]))(var_visibility, var8) /* > on <var_visibility:MVisibility>*/;
1126 var = var9;
1127 goto RET_LABEL;
1128 } else {
1129 var10 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on <self:MModule>*/;
1130 var11 = ((short int (*)(val*, val*))(var_v->class->vft[COLOR_kernel__Object___61d_61d]))(var_v, var10) /* == on <var_v:MVisibility>*/;
1131 if (var11){
1132 var12 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on <self:MModule>*/;
1133 var13 = ((short int (*)(val*, val*))(var_visibility->class->vft[COLOR_kernel__Comparable___62d]))(var_visibility, var12) /* > on <var_visibility:MVisibility>*/;
1134 var = var13;
1135 goto RET_LABEL;
1136 } else {
1137 var14 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__none_visibility]))(self) /* none_visibility on <self:MModule>*/;
1138 var15 = ((short int (*)(val*, val*))(var_v->class->vft[COLOR_kernel__Object___61d_61d]))(var_v, var14) /* == on <var_v:MVisibility>*/;
1139 if (var15){
1140 var16 = 0;
1141 var = var16;
1142 goto RET_LABEL;
1143 } else {
1144 fprintf(stderr, "Runtime error: %s", "Aborted");
1145 fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 204);
1146 show_backtrace(1);
1147 }
1148 }
1149 }
1150 }
1151 RET_LABEL:;
1152 return var;
1153 }
1154 /* method mmodule#MModule#is_visible for (self: Object, MModule, MVisibility): Bool */
1155 short int VIRTUAL_mmodule__MModule__is_visible(val* self, val* p0, val* p1) {
1156 short int var /* : Bool */;
1157 short int var1 /* : Bool */;
1158 var1 = mmodule__MModule__is_visible(self, p0, p1);
1159 var = var1;
1160 RET_LABEL:;
1161 return var;
1162 }