parser: remove last clorure-related classes
[nit.git] / c_src / model_base.sep.1.c
1 #include "model_base.sep.0.h"
2 /* method model_base#Model#mmodules for (self: Model): Array[MModule] */
3 val* model_base__Model__mmodules(val* self) {
4 val* var /* : Array[MModule] */;
5 val* var1 /* : Array[MModule] */;
6 var1 = self->attrs[COLOR_model_base__Model___64dmmodules].val; /* @mmodules on <self:Model> */
7 if (var1 == NULL) {
8 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodules", "src/model/model_base.nit", 26);
9 exit(1);
10 }
11 var = var1;
12 RET_LABEL:;
13 return var;
14 }
15 /* method model_base#Model#mmodules for (self: Object): Array[MModule] */
16 val* VIRTUAL_model_base__Model__mmodules(val* self) {
17 val* var /* : Array[MModule] */;
18 val* var1 /* : Array[MModule] */;
19 var1 = model_base__Model__mmodules(self);
20 var = var1;
21 RET_LABEL:;
22 return var;
23 }
24 /* method model_base#Model#mmodules= for (self: Model, Array[MModule]) */
25 void model_base__Model__mmodules_61d(val* self, val* p0) {
26 self->attrs[COLOR_model_base__Model___64dmmodules].val = p0; /* @mmodules on <self:Model> */
27 RET_LABEL:;
28 }
29 /* method model_base#Model#mmodules= for (self: Object, Array[MModule]) */
30 void VIRTUAL_model_base__Model__mmodules_61d(val* self, val* p0) {
31 model_base__Model__mmodules_61d(self, p0);
32 RET_LABEL:;
33 }
34 /* method model_base#Model#mmodule_nesting_hierarchy for (self: Model): POSet[MModule] */
35 val* model_base__Model__mmodule_nesting_hierarchy(val* self) {
36 val* var /* : POSet[MModule] */;
37 val* var1 /* : POSet[MModule] */;
38 var1 = self->attrs[COLOR_model_base__Model___64dmmodule_nesting_hierarchy].val; /* @mmodule_nesting_hierarchy on <self:Model> */
39 if (var1 == NULL) {
40 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule_nesting_hierarchy", "src/model/model_base.nit", 29);
41 exit(1);
42 }
43 var = var1;
44 RET_LABEL:;
45 return var;
46 }
47 /* method model_base#Model#mmodule_nesting_hierarchy for (self: Object): POSet[MModule] */
48 val* VIRTUAL_model_base__Model__mmodule_nesting_hierarchy(val* self) {
49 val* var /* : POSet[MModule] */;
50 val* var1 /* : POSet[MModule] */;
51 var1 = model_base__Model__mmodule_nesting_hierarchy(self);
52 var = var1;
53 RET_LABEL:;
54 return var;
55 }
56 /* method model_base#Model#mmodule_nesting_hierarchy= for (self: Model, POSet[MModule]) */
57 void model_base__Model__mmodule_nesting_hierarchy_61d(val* self, val* p0) {
58 self->attrs[COLOR_model_base__Model___64dmmodule_nesting_hierarchy].val = p0; /* @mmodule_nesting_hierarchy on <self:Model> */
59 RET_LABEL:;
60 }
61 /* method model_base#Model#mmodule_nesting_hierarchy= for (self: Object, POSet[MModule]) */
62 void VIRTUAL_model_base__Model__mmodule_nesting_hierarchy_61d(val* self, val* p0) {
63 model_base__Model__mmodule_nesting_hierarchy_61d(self, p0);
64 RET_LABEL:;
65 }
66 /* method model_base#Model#mmodule_importation_hierarchy for (self: Model): POSet[MModule] */
67 val* model_base__Model__mmodule_importation_hierarchy(val* self) {
68 val* var /* : POSet[MModule] */;
69 val* var1 /* : POSet[MModule] */;
70 var1 = self->attrs[COLOR_model_base__Model___64dmmodule_importation_hierarchy].val; /* @mmodule_importation_hierarchy on <self:Model> */
71 if (var1 == NULL) {
72 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule_importation_hierarchy", "src/model/model_base.nit", 33);
73 exit(1);
74 }
75 var = var1;
76 RET_LABEL:;
77 return var;
78 }
79 /* method model_base#Model#mmodule_importation_hierarchy for (self: Object): POSet[MModule] */
80 val* VIRTUAL_model_base__Model__mmodule_importation_hierarchy(val* self) {
81 val* var /* : POSet[MModule] */;
82 val* var1 /* : POSet[MModule] */;
83 var1 = model_base__Model__mmodule_importation_hierarchy(self);
84 var = var1;
85 RET_LABEL:;
86 return var;
87 }
88 /* method model_base#Model#mmodule_importation_hierarchy= for (self: Model, POSet[MModule]) */
89 void model_base__Model__mmodule_importation_hierarchy_61d(val* self, val* p0) {
90 self->attrs[COLOR_model_base__Model___64dmmodule_importation_hierarchy].val = p0; /* @mmodule_importation_hierarchy on <self:Model> */
91 RET_LABEL:;
92 }
93 /* method model_base#Model#mmodule_importation_hierarchy= for (self: Object, POSet[MModule]) */
94 void VIRTUAL_model_base__Model__mmodule_importation_hierarchy_61d(val* self, val* p0) {
95 model_base__Model__mmodule_importation_hierarchy_61d(self, p0);
96 RET_LABEL:;
97 }
98 /* method model_base#Model#mmodules_by_name for (self: Model): MultiHashMap[String, MModule] */
99 val* model_base__Model__mmodules_by_name(val* self) {
100 val* var /* : MultiHashMap[String, MModule] */;
101 val* var1 /* : MultiHashMap[String, MModule] */;
102 var1 = self->attrs[COLOR_model_base__Model___64dmmodules_by_name].val; /* @mmodules_by_name on <self:Model> */
103 if (var1 == NULL) {
104 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodules_by_name", "src/model/model_base.nit", 36);
105 exit(1);
106 }
107 var = var1;
108 RET_LABEL:;
109 return var;
110 }
111 /* method model_base#Model#mmodules_by_name for (self: Object): MultiHashMap[String, MModule] */
112 val* VIRTUAL_model_base__Model__mmodules_by_name(val* self) {
113 val* var /* : MultiHashMap[String, MModule] */;
114 val* var1 /* : MultiHashMap[String, MModule] */;
115 var1 = model_base__Model__mmodules_by_name(self);
116 var = var1;
117 RET_LABEL:;
118 return var;
119 }
120 /* method model_base#Model#mmodules_by_name= for (self: Model, MultiHashMap[String, MModule]) */
121 void model_base__Model__mmodules_by_name_61d(val* self, val* p0) {
122 self->attrs[COLOR_model_base__Model___64dmmodules_by_name].val = p0; /* @mmodules_by_name on <self:Model> */
123 RET_LABEL:;
124 }
125 /* method model_base#Model#mmodules_by_name= for (self: Object, MultiHashMap[String, MModule]) */
126 void VIRTUAL_model_base__Model__mmodules_by_name_61d(val* self, val* p0) {
127 model_base__Model__mmodules_by_name_61d(self, p0);
128 RET_LABEL:;
129 }
130 /* method model_base#Model#get_mmodules_by_name for (self: Model, String): nullable Array[MModule] */
131 val* model_base__Model__get_mmodules_by_name(val* self, val* p0) {
132 val* var /* : nullable Array[MModule] */;
133 val* var_name /* var name: String */;
134 val* var1 /* : MultiHashMap[String, MModule] */;
135 short int var2 /* : Bool */;
136 val* var3 /* : MultiHashMap[String, MModule] */;
137 val* var4 /* : nullable Object */;
138 val* var5 /* : null */;
139 var_name = p0;
140 var1 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Model__mmodules_by_name]))(self) /* mmodules_by_name on <self:Model>*/;
141 var2 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_abstract_collection__MapRead__has_key]))(var1, var_name) /* has_key on <var1:MultiHashMap[String, MModule]>*/;
142 if (var2){
143 var3 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Model__mmodules_by_name]))(self) /* mmodules_by_name on <self:Model>*/;
144 var4 = ((val* (*)(val*, val*))(var3->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var3, var_name) /* [] on <var3:MultiHashMap[String, MModule]>*/;
145 var = var4;
146 goto RET_LABEL;
147 } else {
148 var5 = NULL;
149 var = var5;
150 goto RET_LABEL;
151 }
152 RET_LABEL:;
153 return var;
154 }
155 /* method model_base#Model#get_mmodules_by_name for (self: Object, String): nullable Array[MModule] */
156 val* VIRTUAL_model_base__Model__get_mmodules_by_name(val* self, val* p0) {
157 val* var /* : nullable Array[MModule] */;
158 val* var1 /* : nullable Array[MModule] */;
159 var1 = model_base__Model__get_mmodules_by_name(self, p0);
160 var = var1;
161 RET_LABEL:;
162 return var;
163 }
164 /* method model_base#Model#init for (self: Model) */
165 void model_base__Model__init(val* self) {
166 RET_LABEL:;
167 }
168 /* method model_base#Model#init for (self: Object) */
169 void VIRTUAL_model_base__Model__init(val* self) {
170 model_base__Model__init(self);
171 RET_LABEL:;
172 }
173 /* method model_base#MModule#model for (self: MModule): Model */
174 val* model_base__MModule__model(val* self) {
175 val* var /* : Model */;
176 val* var1 /* : Model */;
177 var1 = self->attrs[COLOR_model_base__MModule___64dmodel].val; /* @model on <self:MModule> */
178 if (var1 == NULL) {
179 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @model", "src/model/model_base.nit", 56);
180 exit(1);
181 }
182 var = var1;
183 RET_LABEL:;
184 return var;
185 }
186 /* method model_base#MModule#model for (self: Object): Model */
187 val* VIRTUAL_model_base__MModule__model(val* self) {
188 val* var /* : Model */;
189 val* var1 /* : Model */;
190 var1 = model_base__MModule__model(self);
191 var = var1;
192 RET_LABEL:;
193 return var;
194 }
195 /* method model_base#MModule#model= for (self: MModule, Model) */
196 void model_base__MModule__model_61d(val* self, val* p0) {
197 self->attrs[COLOR_model_base__MModule___64dmodel].val = p0; /* @model on <self:MModule> */
198 RET_LABEL:;
199 }
200 /* method model_base#MModule#model= for (self: Object, Model) */
201 void VIRTUAL_model_base__MModule__model_61d(val* self, val* p0) {
202 model_base__MModule__model_61d(self, p0);
203 RET_LABEL:;
204 }
205 /* method model_base#MModule#direct_owner for (self: MModule): nullable MModule */
206 val* model_base__MModule__direct_owner(val* self) {
207 val* var /* : nullable MModule */;
208 val* var1 /* : nullable MModule */;
209 var1 = self->attrs[COLOR_model_base__MModule___64ddirect_owner].val; /* @direct_owner on <self:MModule> */
210 var = var1;
211 RET_LABEL:;
212 return var;
213 }
214 /* method model_base#MModule#direct_owner for (self: Object): nullable MModule */
215 val* VIRTUAL_model_base__MModule__direct_owner(val* self) {
216 val* var /* : nullable MModule */;
217 val* var1 /* : nullable MModule */;
218 var1 = model_base__MModule__direct_owner(self);
219 var = var1;
220 RET_LABEL:;
221 return var;
222 }
223 /* method model_base#MModule#direct_owner= for (self: MModule, nullable MModule) */
224 void model_base__MModule__direct_owner_61d(val* self, val* p0) {
225 self->attrs[COLOR_model_base__MModule___64ddirect_owner].val = p0; /* @direct_owner on <self:MModule> */
226 RET_LABEL:;
227 }
228 /* method model_base#MModule#direct_owner= for (self: Object, nullable MModule) */
229 void VIRTUAL_model_base__MModule__direct_owner_61d(val* self, val* p0) {
230 model_base__MModule__direct_owner_61d(self, p0);
231 RET_LABEL:;
232 }
233 /* method model_base#MModule#name for (self: MModule): String */
234 val* model_base__MModule__name(val* self) {
235 val* var /* : String */;
236 val* var1 /* : String */;
237 var1 = self->attrs[COLOR_model_base__MModule___64dname].val; /* @name on <self:MModule> */
238 if (var1 == NULL) {
239 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @name", "src/model/model_base.nit", 62);
240 exit(1);
241 }
242 var = var1;
243 RET_LABEL:;
244 return var;
245 }
246 /* method model_base#MModule#name for (self: Object): String */
247 val* VIRTUAL_model_base__MModule__name(val* self) {
248 val* var /* : String */;
249 val* var1 /* : String */;
250 var1 = model_base__MModule__name(self);
251 var = var1;
252 RET_LABEL:;
253 return var;
254 }
255 /* method model_base#MModule#name= for (self: MModule, String) */
256 void model_base__MModule__name_61d(val* self, val* p0) {
257 self->attrs[COLOR_model_base__MModule___64dname].val = p0; /* @name on <self:MModule> */
258 RET_LABEL:;
259 }
260 /* method model_base#MModule#name= for (self: Object, String) */
261 void VIRTUAL_model_base__MModule__name_61d(val* self, val* p0) {
262 model_base__MModule__name_61d(self, p0);
263 RET_LABEL:;
264 }
265 /* method model_base#MModule#location for (self: MModule): Location */
266 val* model_base__MModule__location(val* self) {
267 val* var /* : Location */;
268 val* var1 /* : Location */;
269 var1 = self->attrs[COLOR_model_base__MModule___64dlocation].val; /* @location on <self:MModule> */
270 if (var1 == NULL) {
271 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @location", "src/model/model_base.nit", 65);
272 exit(1);
273 }
274 var = var1;
275 RET_LABEL:;
276 return var;
277 }
278 /* method model_base#MModule#location for (self: Object): Location */
279 val* VIRTUAL_model_base__MModule__location(val* self) {
280 val* var /* : Location */;
281 val* var1 /* : Location */;
282 var1 = model_base__MModule__location(self);
283 var = var1;
284 RET_LABEL:;
285 return var;
286 }
287 /* method model_base#MModule#location= for (self: MModule, Location) */
288 void model_base__MModule__location_61d(val* self, val* p0) {
289 self->attrs[COLOR_model_base__MModule___64dlocation].val = p0; /* @location on <self:MModule> */
290 RET_LABEL:;
291 }
292 /* method model_base#MModule#location= for (self: Object, Location) */
293 void VIRTUAL_model_base__MModule__location_61d(val* self, val* p0) {
294 model_base__MModule__location_61d(self, p0);
295 RET_LABEL:;
296 }
297 /* method model_base#MModule#to_s for (self: MModule): String */
298 val* model_base__MModule__to_s(val* self) {
299 val* var /* : String */;
300 val* var1 /* : String */;
301 var1 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__name]))(self) /* name on <self:MModule>*/;
302 var = var1;
303 goto RET_LABEL;
304 RET_LABEL:;
305 return var;
306 }
307 /* method model_base#MModule#to_s for (self: Object): String */
308 val* VIRTUAL_model_base__MModule__to_s(val* self) {
309 val* var /* : String */;
310 val* var1 /* : String */;
311 var1 = model_base__MModule__to_s(self);
312 var = var1;
313 RET_LABEL:;
314 return var;
315 }
316 /* method model_base#MModule#in_nesting for (self: MModule): POSetElement[MModule] */
317 val* model_base__MModule__in_nesting(val* self) {
318 val* var /* : POSetElement[MModule] */;
319 val* var1 /* : POSetElement[MModule] */;
320 var1 = self->attrs[COLOR_model_base__MModule___64din_nesting].val; /* @in_nesting on <self:MModule> */
321 if (var1 == NULL) {
322 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @in_nesting", "src/model/model_base.nit", 71);
323 exit(1);
324 }
325 var = var1;
326 RET_LABEL:;
327 return var;
328 }
329 /* method model_base#MModule#in_nesting for (self: Object): POSetElement[MModule] */
330 val* VIRTUAL_model_base__MModule__in_nesting(val* self) {
331 val* var /* : POSetElement[MModule] */;
332 val* var1 /* : POSetElement[MModule] */;
333 var1 = model_base__MModule__in_nesting(self);
334 var = var1;
335 RET_LABEL:;
336 return var;
337 }
338 /* method model_base#MModule#in_nesting= for (self: MModule, POSetElement[MModule]) */
339 void model_base__MModule__in_nesting_61d(val* self, val* p0) {
340 self->attrs[COLOR_model_base__MModule___64din_nesting].val = p0; /* @in_nesting on <self:MModule> */
341 RET_LABEL:;
342 }
343 /* method model_base#MModule#in_nesting= for (self: Object, POSetElement[MModule]) */
344 void VIRTUAL_model_base__MModule__in_nesting_61d(val* self, val* p0) {
345 model_base__MModule__in_nesting_61d(self, p0);
346 RET_LABEL:;
347 }
348 /* method model_base#MModule#in_importation for (self: MModule): POSetElement[MModule] */
349 val* model_base__MModule__in_importation(val* self) {
350 val* var /* : POSetElement[MModule] */;
351 val* var1 /* : POSetElement[MModule] */;
352 var1 = self->attrs[COLOR_model_base__MModule___64din_importation].val; /* @in_importation on <self:MModule> */
353 if (var1 == NULL) {
354 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @in_importation", "src/model/model_base.nit", 74);
355 exit(1);
356 }
357 var = var1;
358 RET_LABEL:;
359 return var;
360 }
361 /* method model_base#MModule#in_importation for (self: Object): POSetElement[MModule] */
362 val* VIRTUAL_model_base__MModule__in_importation(val* self) {
363 val* var /* : POSetElement[MModule] */;
364 val* var1 /* : POSetElement[MModule] */;
365 var1 = model_base__MModule__in_importation(self);
366 var = var1;
367 RET_LABEL:;
368 return var;
369 }
370 /* method model_base#MModule#in_importation= for (self: MModule, POSetElement[MModule]) */
371 void model_base__MModule__in_importation_61d(val* self, val* p0) {
372 self->attrs[COLOR_model_base__MModule___64din_importation].val = p0; /* @in_importation on <self:MModule> */
373 RET_LABEL:;
374 }
375 /* method model_base#MModule#in_importation= for (self: Object, POSetElement[MModule]) */
376 void VIRTUAL_model_base__MModule__in_importation_61d(val* self, val* p0) {
377 model_base__MModule__in_importation_61d(self, p0);
378 RET_LABEL:;
379 }
380 /* method model_base#MModule#full_name for (self: MModule): String */
381 val* model_base__MModule__full_name(val* self) {
382 val* var /* : String */;
383 val* var1 /* : nullable MModule */;
384 val* var_owner /* var owner: nullable MModule */;
385 val* var2 /* : null */;
386 short int var3 /* : Bool */;
387 val* var4 /* : String */;
388 val* var5 /* : Array[Object] */;
389 long var6 /* : Int */;
390 val* var_ /* var : Array[Object] */;
391 static val* varonce;
392 val* var7 /* : String */;
393 char* var8 /* : NativeString */;
394 long var9 /* : Int */;
395 val* var10 /* : String */;
396 val* var11 /* : String */;
397 static val* varonce12;
398 val* var13 /* : String */;
399 char* var14 /* : NativeString */;
400 long var15 /* : Int */;
401 val* var16 /* : String */;
402 val* var17 /* : String */;
403 static val* varonce18;
404 val* var19 /* : String */;
405 char* var20 /* : NativeString */;
406 long var21 /* : Int */;
407 val* var22 /* : String */;
408 val* var23 /* : String */;
409 var1 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__public_owner]))(self) /* public_owner on <self:MModule>*/;
410 var_owner = var1;
411 var2 = NULL;
412 if (var_owner == NULL) {
413 var3 = 1; /* is null */
414 } else {
415 var3 = 0; /* arg is null but recv is not */
416 }
417 if (var3){
418 var4 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__name]))(self) /* name on <self:MModule>*/;
419 var = var4;
420 goto RET_LABEL;
421 } else {
422 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
423 var6 = 5;
424 ((void (*)(val*, long))(var5->class->vft[COLOR_array__Array__with_capacity]))(var5, var6) /* with_capacity on <var5:Array[Object]>*/;
425 CHECK_NEW_array__Array(var5);
426 var_ = var5;
427 if (varonce) {
428 var7 = varonce;
429 } else {
430 var8 = "";
431 var9 = 0;
432 var10 = string__NativeString__to_s_with_length(var8, var9);
433 var7 = var10;
434 varonce = var7;
435 }
436 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var7) /* add on <var_:Array[Object]>*/;
437 var11 = ((val* (*)(val*))(var_owner->class->vft[COLOR_model_base__MModule__full_name]))(var_owner) /* full_name on <var_owner:nullable MModule(MModule)>*/;
438 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var11) /* add on <var_:Array[Object]>*/;
439 if (varonce12) {
440 var13 = varonce12;
441 } else {
442 var14 = "::";
443 var15 = 2;
444 var16 = string__NativeString__to_s_with_length(var14, var15);
445 var13 = var16;
446 varonce12 = var13;
447 }
448 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var13) /* add on <var_:Array[Object]>*/;
449 var17 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__name]))(self) /* name on <self:MModule>*/;
450 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var17) /* add on <var_:Array[Object]>*/;
451 if (varonce18) {
452 var19 = varonce18;
453 } else {
454 var20 = "";
455 var21 = 0;
456 var22 = string__NativeString__to_s_with_length(var20, var21);
457 var19 = var22;
458 varonce18 = var19;
459 }
460 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var19) /* add on <var_:Array[Object]>*/;
461 var23 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
462 var = var23;
463 goto RET_LABEL;
464 }
465 RET_LABEL:;
466 return var;
467 }
468 /* method model_base#MModule#full_name for (self: Object): String */
469 val* VIRTUAL_model_base__MModule__full_name(val* self) {
470 val* var /* : String */;
471 val* var1 /* : String */;
472 var1 = model_base__MModule__full_name(self);
473 var = var1;
474 RET_LABEL:;
475 return var;
476 }
477 /* method model_base#MModule#init for (self: MModule, Model, nullable MModule, String, Location) */
478 void model_base__MModule__init(val* self, val* p0, val* p1, val* p2, val* p3) {
479 val* var_model /* var model: Model */;
480 val* var_direct_owner /* var direct_owner: nullable MModule */;
481 val* var_name /* var name: String */;
482 val* var_location /* var location: Location */;
483 val* var /* : MultiHashMap[String, MModule] */;
484 val* var1 /* : Array[MModule] */;
485 val* var2 /* : POSet[MModule] */;
486 val* var3 /* : POSetElement[Object] */;
487 val* var4 /* : null */;
488 short int var5 /* : Bool */;
489 val* var6 /* : POSet[MModule] */;
490 val* var7 /* : POSet[MModule] */;
491 val* var8 /* : POSetElement[Object] */;
492 var_model = p0;
493 var_direct_owner = p1;
494 var_name = p2;
495 var_location = p3;
496 ((void (*)(val*, val*))(self->class->vft[COLOR_model_base__MModule__model_61d]))(self, var_model) /* model= on <self:MModule>*/;
497 ((void (*)(val*, val*))(self->class->vft[COLOR_model_base__MModule__name_61d]))(self, var_name) /* name= on <self:MModule>*/;
498 ((void (*)(val*, val*))(self->class->vft[COLOR_model_base__MModule__location_61d]))(self, var_location) /* location= on <self:MModule>*/;
499 var = ((val* (*)(val*))(var_model->class->vft[COLOR_model_base__Model__mmodules_by_name]))(var_model) /* mmodules_by_name on <var_model:Model>*/;
500 ((void (*)(val*, val*, val*))(var->class->vft[COLOR_more_collections__MultiHashMap__add_one]))(var, var_name, self) /* add_one on <var:MultiHashMap[String, MModule]>*/;
501 var1 = ((val* (*)(val*))(var_model->class->vft[COLOR_model_base__Model__mmodules]))(var_model) /* mmodules on <var_model:Model>*/;
502 ((void (*)(val*, val*))(var1->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var1, self) /* add on <var1:Array[MModule]>*/;
503 var2 = ((val* (*)(val*))(var_model->class->vft[COLOR_model_base__Model__mmodule_nesting_hierarchy]))(var_model) /* mmodule_nesting_hierarchy on <var_model:Model>*/;
504 var3 = ((val* (*)(val*, val*))(var2->class->vft[COLOR_poset__POSet__add_node]))(var2, self) /* add_node on <var2:POSet[MModule]>*/;
505 ((void (*)(val*, val*))(self->class->vft[COLOR_model_base__MModule__in_nesting_61d]))(self, var3) /* in_nesting= on <self:MModule>*/;
506 ((void (*)(val*, val*))(self->class->vft[COLOR_model_base__MModule__direct_owner_61d]))(self, var_direct_owner) /* direct_owner= on <self:MModule>*/;
507 var4 = NULL;
508 if (var_direct_owner == NULL) {
509 var5 = 0; /* is null */
510 } else {
511 var5 = 1; /* arg is null and recv is not */
512 }
513 if (var5){
514 var6 = ((val* (*)(val*))(var_model->class->vft[COLOR_model_base__Model__mmodule_nesting_hierarchy]))(var_model) /* mmodule_nesting_hierarchy on <var_model:Model>*/;
515 ((void (*)(val*, val*, val*))(var6->class->vft[COLOR_poset__POSet__add_edge]))(var6, var_direct_owner, self) /* add_edge on <var6:POSet[MModule]>*/;
516 } else {
517 }
518 var7 = ((val* (*)(val*))(var_model->class->vft[COLOR_model_base__Model__mmodule_importation_hierarchy]))(var_model) /* mmodule_importation_hierarchy on <var_model:Model>*/;
519 var8 = ((val* (*)(val*, val*))(var7->class->vft[COLOR_poset__POSet__add_node]))(var7, self) /* add_node on <var7:POSet[MModule]>*/;
520 ((void (*)(val*, val*))(self->class->vft[COLOR_model_base__MModule__in_importation_61d]))(self, var8) /* in_importation= on <self:MModule>*/;
521 RET_LABEL:;
522 }
523 /* method model_base#MModule#init for (self: Object, Model, nullable MModule, String, Location) */
524 void VIRTUAL_model_base__MModule__init(val* self, val* p0, val* p1, val* p2, val* p3) {
525 model_base__MModule__init(self, p0, p1, p2, p3);
526 RET_LABEL:;
527 }
528 /* method model_base#MModule#set_imported_mmodules for (self: MModule, Array[MModule]) */
529 void model_base__MModule__set_imported_mmodules(val* self, val* p0) {
530 val* var_imported_mmodules /* var imported_mmodules: Array[MModule] */;
531 val* var /* : POSetElement[MModule] */;
532 val* var1 /* : Collection[Object] */;
533 short int var2 /* : Bool */;
534 val* var3 /* : Iterator[nullable Object] */;
535 short int var4 /* : Bool */;
536 val* var5 /* : nullable Object */;
537 val* var_m /* var m: MModule */;
538 val* var6 /* : Model */;
539 val* var7 /* : POSet[MModule] */;
540 var_imported_mmodules = p0;
541 var = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__in_importation]))(self) /* in_importation on <self:MModule>*/;
542 var1 = ((val* (*)(val*))(var->class->vft[COLOR_poset__POSetElement__direct_greaters]))(var) /* direct_greaters on <var:POSetElement[MModule]>*/;
543 var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var1) /* is_empty on <var1:Collection[Object](Collection[MModule])>*/;
544 if (!var2) {
545 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert \'unique_invocation\' failed", "src/model/model_base.nit", 111);
546 exit(1);
547 }
548 var3 = ((val* (*)(val*))(var_imported_mmodules->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_imported_mmodules) /* iterator on <var_imported_mmodules:Array[MModule]>*/;
549 for(;;) {
550 var4 = ((short int (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var3) /* is_ok on <var3:Iterator[nullable Object]>*/;
551 if(!var4) break;
552 var5 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__item]))(var3) /* item on <var3:Iterator[nullable Object]>*/;
553 var_m = var5;
554 var6 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__model]))(self) /* model on <self:MModule>*/;
555 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_model_base__Model__mmodule_importation_hierarchy]))(var6) /* mmodule_importation_hierarchy on <var6:Model>*/;
556 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_poset__POSet__add_edge]))(var7, self, var_m) /* add_edge on <var7:POSet[MModule]>*/;
557 CONTINUE_label: (void)0;
558 ((void (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__next]))(var3) /* next on <var3:Iterator[nullable Object]>*/;
559 }
560 BREAK_label: (void)0;
561 RET_LABEL:;
562 }
563 /* method model_base#MModule#set_imported_mmodules for (self: Object, Array[MModule]) */
564 void VIRTUAL_model_base__MModule__set_imported_mmodules(val* self, val* p0) {
565 model_base__MModule__set_imported_mmodules(self, p0);
566 RET_LABEL:;
567 }
568 /* method model_base#MModule#intrude_mmodules for (self: MModule): HashSet[MModule] */
569 val* model_base__MModule__intrude_mmodules(val* self) {
570 val* var /* : HashSet[MModule] */;
571 val* var1 /* : HashSet[MModule] */;
572 var1 = self->attrs[COLOR_model_base__MModule___64dintrude_mmodules].val; /* @intrude_mmodules on <self:MModule> */
573 if (var1 == NULL) {
574 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @intrude_mmodules", "src/model/model_base.nit", 117);
575 exit(1);
576 }
577 var = var1;
578 RET_LABEL:;
579 return var;
580 }
581 /* method model_base#MModule#intrude_mmodules for (self: Object): HashSet[MModule] */
582 val* VIRTUAL_model_base__MModule__intrude_mmodules(val* self) {
583 val* var /* : HashSet[MModule] */;
584 val* var1 /* : HashSet[MModule] */;
585 var1 = model_base__MModule__intrude_mmodules(self);
586 var = var1;
587 RET_LABEL:;
588 return var;
589 }
590 /* method model_base#MModule#intrude_mmodules= for (self: MModule, HashSet[MModule]) */
591 void model_base__MModule__intrude_mmodules_61d(val* self, val* p0) {
592 self->attrs[COLOR_model_base__MModule___64dintrude_mmodules].val = p0; /* @intrude_mmodules on <self:MModule> */
593 RET_LABEL:;
594 }
595 /* method model_base#MModule#intrude_mmodules= for (self: Object, HashSet[MModule]) */
596 void VIRTUAL_model_base__MModule__intrude_mmodules_61d(val* self, val* p0) {
597 model_base__MModule__intrude_mmodules_61d(self, p0);
598 RET_LABEL:;
599 }
600 /* method model_base#MModule#public_mmodules for (self: MModule): HashSet[MModule] */
601 val* model_base__MModule__public_mmodules(val* self) {
602 val* var /* : HashSet[MModule] */;
603 val* var1 /* : HashSet[MModule] */;
604 var1 = self->attrs[COLOR_model_base__MModule___64dpublic_mmodules].val; /* @public_mmodules on <self:MModule> */
605 if (var1 == NULL) {
606 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @public_mmodules", "src/model/model_base.nit", 118);
607 exit(1);
608 }
609 var = var1;
610 RET_LABEL:;
611 return var;
612 }
613 /* method model_base#MModule#public_mmodules for (self: Object): HashSet[MModule] */
614 val* VIRTUAL_model_base__MModule__public_mmodules(val* self) {
615 val* var /* : HashSet[MModule] */;
616 val* var1 /* : HashSet[MModule] */;
617 var1 = model_base__MModule__public_mmodules(self);
618 var = var1;
619 RET_LABEL:;
620 return var;
621 }
622 /* method model_base#MModule#public_mmodules= for (self: MModule, HashSet[MModule]) */
623 void model_base__MModule__public_mmodules_61d(val* self, val* p0) {
624 self->attrs[COLOR_model_base__MModule___64dpublic_mmodules].val = p0; /* @public_mmodules on <self:MModule> */
625 RET_LABEL:;
626 }
627 /* method model_base#MModule#public_mmodules= for (self: Object, HashSet[MModule]) */
628 void VIRTUAL_model_base__MModule__public_mmodules_61d(val* self, val* p0) {
629 model_base__MModule__public_mmodules_61d(self, p0);
630 RET_LABEL:;
631 }
632 /* method model_base#MModule#private_mmodules for (self: MModule): HashSet[MModule] */
633 val* model_base__MModule__private_mmodules(val* self) {
634 val* var /* : HashSet[MModule] */;
635 val* var1 /* : HashSet[MModule] */;
636 var1 = self->attrs[COLOR_model_base__MModule___64dprivate_mmodules].val; /* @private_mmodules on <self:MModule> */
637 if (var1 == NULL) {
638 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @private_mmodules", "src/model/model_base.nit", 119);
639 exit(1);
640 }
641 var = var1;
642 RET_LABEL:;
643 return var;
644 }
645 /* method model_base#MModule#private_mmodules for (self: Object): HashSet[MModule] */
646 val* VIRTUAL_model_base__MModule__private_mmodules(val* self) {
647 val* var /* : HashSet[MModule] */;
648 val* var1 /* : HashSet[MModule] */;
649 var1 = model_base__MModule__private_mmodules(self);
650 var = var1;
651 RET_LABEL:;
652 return var;
653 }
654 /* method model_base#MModule#private_mmodules= for (self: MModule, HashSet[MModule]) */
655 void model_base__MModule__private_mmodules_61d(val* self, val* p0) {
656 self->attrs[COLOR_model_base__MModule___64dprivate_mmodules].val = p0; /* @private_mmodules on <self:MModule> */
657 RET_LABEL:;
658 }
659 /* method model_base#MModule#private_mmodules= for (self: Object, HashSet[MModule]) */
660 void VIRTUAL_model_base__MModule__private_mmodules_61d(val* self, val* p0) {
661 model_base__MModule__private_mmodules_61d(self, p0);
662 RET_LABEL:;
663 }
664 /* method model_base#MModule#visibility_for for (self: MModule, MModule): MVisibility */
665 val* model_base__MModule__visibility_for(val* self, val* p0) {
666 val* var /* : MVisibility */;
667 val* var_m /* var m: MModule */;
668 short int var1 /* : Bool */;
669 val* var2 /* : MVisibility */;
670 val* var3 /* : HashSet[MModule] */;
671 short int var4 /* : Bool */;
672 val* var5 /* : MVisibility */;
673 val* var6 /* : HashSet[MModule] */;
674 short int var7 /* : Bool */;
675 val* var8 /* : MVisibility */;
676 val* var9 /* : HashSet[MModule] */;
677 short int var10 /* : Bool */;
678 val* var11 /* : MVisibility */;
679 val* var12 /* : MVisibility */;
680 var_m = p0;
681 var1 = ((short int (*)(val*, val*))(var_m->class->vft[COLOR_kernel__Object___61d_61d]))(var_m, self) /* == on <var_m:MModule>*/;
682 if (var1){
683 var2 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__intrude_visibility]))(self) /* intrude_visibility on <self:MModule>*/;
684 var = var2;
685 goto RET_LABEL;
686 } else {
687 }
688 var3 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__intrude_mmodules]))(self) /* intrude_mmodules on <self:MModule>*/;
689 var4 = ((short int (*)(val*, val*))(var3->class->vft[COLOR_abstract_collection__Collection__has]))(var3, var_m) /* has on <var3:HashSet[MModule]>*/;
690 if (var4){
691 var5 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__intrude_visibility]))(self) /* intrude_visibility on <self:MModule>*/;
692 var = var5;
693 goto RET_LABEL;
694 } else {
695 }
696 var6 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__public_mmodules]))(self) /* public_mmodules on <self:MModule>*/;
697 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__Collection__has]))(var6, var_m) /* has on <var6:HashSet[MModule]>*/;
698 if (var7){
699 var8 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__public_visibility]))(self) /* public_visibility on <self:MModule>*/;
700 var = var8;
701 goto RET_LABEL;
702 } else {
703 }
704 var9 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__private_mmodules]))(self) /* private_mmodules on <self:MModule>*/;
705 var10 = ((short int (*)(val*, val*))(var9->class->vft[COLOR_abstract_collection__Collection__has]))(var9, var_m) /* has on <var9:HashSet[MModule]>*/;
706 if (var10){
707 var11 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on <self:MModule>*/;
708 var = var11;
709 goto RET_LABEL;
710 } else {
711 }
712 var12 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__none_visibility]))(self) /* none_visibility on <self:MModule>*/;
713 var = var12;
714 goto RET_LABEL;
715 RET_LABEL:;
716 return var;
717 }
718 /* method model_base#MModule#visibility_for for (self: Object, MModule): MVisibility */
719 val* VIRTUAL_model_base__MModule__visibility_for(val* self, val* p0) {
720 val* var /* : MVisibility */;
721 val* var1 /* : MVisibility */;
722 var1 = model_base__MModule__visibility_for(self, p0);
723 var = var1;
724 RET_LABEL:;
725 return var;
726 }
727 /* method model_base#MModule#set_visibility_for for (self: MModule, MModule, MVisibility) */
728 void model_base__MModule__set_visibility_for(val* self, val* p0, val* p1) {
729 val* var_m /* var m: MModule */;
730 val* var_v /* var v: MVisibility */;
731 val* var /* : MVisibility */;
732 short int var1 /* : Bool */;
733 val* var2 /* : HashSet[MModule] */;
734 val* var3 /* : HashSet[MModule] */;
735 val* var4 /* : HashSet[MModule] */;
736 val* var5 /* : HashSet[MModule] */;
737 val* var6 /* : HashSet[MModule] */;
738 val* var7 /* : HashSet[MModule] */;
739 val* var8 /* : HashSet[MModule] */;
740 val* var9 /* : MVisibility */;
741 short int var10 /* : Bool */;
742 val* var11 /* : HashSet[MModule] */;
743 val* var12 /* : HashSet[MModule] */;
744 val* var13 /* : HashSet[MModule] */;
745 val* var14 /* : HashSet[MModule] */;
746 val* var15 /* : HashSet[MModule] */;
747 val* var16 /* : MVisibility */;
748 short int var17 /* : Bool */;
749 val* var18 /* : HashSet[MModule] */;
750 val* var19 /* : HashSet[MModule] */;
751 val* var20 /* : HashSet[MModule] */;
752 val* var21 /* : HashSet[MModule] */;
753 val* var22 /* : HashSet[MModule] */;
754 static val* varonce;
755 val* var23 /* : String */;
756 char* var24 /* : NativeString */;
757 long var25 /* : Int */;
758 val* var26 /* : String */;
759 static val* varonce27;
760 val* var28 /* : String */;
761 char* var29 /* : NativeString */;
762 long var30 /* : Int */;
763 val* var31 /* : String */;
764 val* var32 /* : Array[Object] */;
765 long var33 /* : Int */;
766 val* var34 /* : NativeArray[Object] */;
767 val* var35 /* : String */;
768 var_m = p0;
769 var_v = p1;
770 var = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__intrude_visibility]))(self) /* intrude_visibility on <self:MModule>*/;
771 var1 = ((short int (*)(val*, val*))(var_v->class->vft[COLOR_kernel__Object___61d_61d]))(var_v, var) /* == on <var_v:MVisibility>*/;
772 if (var1){
773 var2 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__intrude_mmodules]))(self) /* intrude_mmodules on <self:MModule>*/;
774 ((void (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var2, var_m) /* add on <var2:HashSet[MModule]>*/;
775 var3 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__intrude_mmodules]))(self) /* intrude_mmodules on <self:MModule>*/;
776 var4 = ((val* (*)(val*))(var_m->class->vft[COLOR_model_base__MModule__intrude_mmodules]))(var_m) /* intrude_mmodules on <var_m:MModule>*/;
777 ((void (*)(val*, val*))(var3->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var3, var4) /* add_all on <var3:HashSet[MModule]>*/;
778 var5 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__public_mmodules]))(self) /* public_mmodules on <self:MModule>*/;
779 var6 = ((val* (*)(val*))(var_m->class->vft[COLOR_model_base__MModule__public_mmodules]))(var_m) /* public_mmodules on <var_m:MModule>*/;
780 ((void (*)(val*, val*))(var5->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var5, var6) /* add_all on <var5:HashSet[MModule]>*/;
781 var7 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__private_mmodules]))(self) /* private_mmodules on <self:MModule>*/;
782 var8 = ((val* (*)(val*))(var_m->class->vft[COLOR_model_base__MModule__private_mmodules]))(var_m) /* private_mmodules on <var_m:MModule>*/;
783 ((void (*)(val*, val*))(var7->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var7, var8) /* add_all on <var7:HashSet[MModule]>*/;
784 } else {
785 var9 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__public_visibility]))(self) /* public_visibility on <self:MModule>*/;
786 var10 = ((short int (*)(val*, val*))(var_v->class->vft[COLOR_kernel__Object___61d_61d]))(var_v, var9) /* == on <var_v:MVisibility>*/;
787 if (var10){
788 var11 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__public_mmodules]))(self) /* public_mmodules on <self:MModule>*/;
789 ((void (*)(val*, val*))(var11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var11, var_m) /* add on <var11:HashSet[MModule]>*/;
790 var12 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__public_mmodules]))(self) /* public_mmodules on <self:MModule>*/;
791 var13 = ((val* (*)(val*))(var_m->class->vft[COLOR_model_base__MModule__intrude_mmodules]))(var_m) /* intrude_mmodules on <var_m:MModule>*/;
792 ((void (*)(val*, val*))(var12->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var12, var13) /* add_all on <var12:HashSet[MModule]>*/;
793 var14 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__public_mmodules]))(self) /* public_mmodules on <self:MModule>*/;
794 var15 = ((val* (*)(val*))(var_m->class->vft[COLOR_model_base__MModule__public_mmodules]))(var_m) /* public_mmodules on <var_m:MModule>*/;
795 ((void (*)(val*, val*))(var14->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var14, var15) /* add_all on <var14:HashSet[MModule]>*/;
796 } else {
797 var16 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on <self:MModule>*/;
798 var17 = ((short int (*)(val*, val*))(var_v->class->vft[COLOR_kernel__Object___61d_61d]))(var_v, var16) /* == on <var_v:MVisibility>*/;
799 if (var17){
800 var18 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__private_mmodules]))(self) /* private_mmodules on <self:MModule>*/;
801 ((void (*)(val*, val*))(var18->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var18, var_m) /* add on <var18:HashSet[MModule]>*/;
802 var19 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__private_mmodules]))(self) /* private_mmodules on <self:MModule>*/;
803 var20 = ((val* (*)(val*))(var_m->class->vft[COLOR_model_base__MModule__intrude_mmodules]))(var_m) /* intrude_mmodules on <var_m:MModule>*/;
804 ((void (*)(val*, val*))(var19->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var19, var20) /* add_all on <var19:HashSet[MModule]>*/;
805 var21 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__private_mmodules]))(self) /* private_mmodules on <self:MModule>*/;
806 var22 = ((val* (*)(val*))(var_m->class->vft[COLOR_model_base__MModule__public_mmodules]))(var_m) /* public_mmodules on <var_m:MModule>*/;
807 ((void (*)(val*, val*))(var21->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var21, var22) /* add_all on <var21:HashSet[MModule]>*/;
808 } else {
809 if (varonce) {
810 var23 = varonce;
811 } else {
812 var24 = " visibility for ";
813 var25 = 16;
814 var26 = string__NativeString__to_s_with_length(var24, var25);
815 var23 = var26;
816 varonce = var23;
817 }
818 if (varonce27) {
819 var28 = varonce27;
820 } else {
821 var29 = " = ";
822 var30 = 3;
823 var31 = string__NativeString__to_s_with_length(var29, var30);
824 var28 = var31;
825 varonce27 = var28;
826 }
827 var32 = NEW_array__Array(&type_array__Arraykernel__Object);
828 { /* var32 = array_instance Array[Object] */
829 var33 = 5;
830 var34 = NEW_array__NativeArray(var33, &type_array__NativeArraykernel__Object);
831 ((struct instance_array__NativeArray*)var34)->values[0] = (val*) self;
832 ((struct instance_array__NativeArray*)var34)->values[1] = (val*) var23;
833 ((struct instance_array__NativeArray*)var34)->values[2] = (val*) var_m;
834 ((struct instance_array__NativeArray*)var34)->values[3] = (val*) var28;
835 ((struct instance_array__NativeArray*)var34)->values[4] = (val*) var_v;
836 ((void (*)(val*, val*, long))(var32->class->vft[COLOR_array__Array__with_native]))(var32, var34, var33) /* with_native on <var32:Array[Object]>*/;
837 CHECK_NEW_array__Array(var32);
838 }
839 var35 = ((val* (*)(val*))(var32->class->vft[COLOR_string__Object__to_s]))(var32) /* to_s on <var32:Array[Object]>*/;
840 ((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var35) /* print on <self:MModule>*/;
841 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/model/model_base.nit", 150);
842 exit(1);
843 }
844 }
845 }
846 RET_LABEL:;
847 }
848 /* method model_base#MModule#set_visibility_for for (self: Object, MModule, MVisibility) */
849 void VIRTUAL_model_base__MModule__set_visibility_for(val* self, val* p0, val* p1) {
850 model_base__MModule__set_visibility_for(self, p0, p1);
851 RET_LABEL:;
852 }
853 /* method model_base#MModule#public_owner for (self: MModule): nullable MModule */
854 val* model_base__MModule__public_owner(val* self) {
855 val* var /* : nullable MModule */;
856 val* var1 /* : nullable MModule */;
857 val* var_res /* var res: nullable MModule */;
858 val* var_last /* var last: nullable MModule */;
859 val* var2 /* : null */;
860 short int var3 /* : Bool */;
861 val* var4 /* : MVisibility */;
862 val* var5 /* : MVisibility */;
863 short int var6 /* : Bool */;
864 val* var7 /* : nullable MModule */;
865 var1 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__direct_owner]))(self) /* direct_owner on <self:MModule>*/;
866 var_res = var1;
867 var_last = var_res;
868 for(;;) {
869 var2 = NULL;
870 if (var_last == NULL) {
871 var3 = 0; /* is null */
872 } else {
873 var3 = 1; /* arg is null and recv is not */
874 }
875 if (!var3) break;
876 var4 = ((val* (*)(val*, val*))(var_last->class->vft[COLOR_model_base__MModule__visibility_for]))(var_last, self) /* visibility_for on <var_last:nullable MModule(MModule)>*/;
877 var5 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__public_visibility]))(self) /* public_visibility on <self:MModule>*/;
878 var6 = ((short int (*)(val*, val*))(var4->class->vft[COLOR_kernel__Comparable___62d_61d]))(var4, var5) /* >= on <var4:MVisibility>*/;
879 if (var6){
880 var_res = var_last;
881 } else {
882 }
883 var7 = ((val* (*)(val*))(var_last->class->vft[COLOR_model_base__MModule__direct_owner]))(var_last) /* direct_owner on <var_last:nullable MModule(MModule)>*/;
884 var_last = var7;
885 CONTINUE_label: (void)0;
886 }
887 BREAK_label: (void)0;
888 var = var_res;
889 goto RET_LABEL;
890 RET_LABEL:;
891 return var;
892 }
893 /* method model_base#MModule#public_owner for (self: Object): nullable MModule */
894 val* VIRTUAL_model_base__MModule__public_owner(val* self) {
895 val* var /* : nullable MModule */;
896 val* var1 /* : nullable MModule */;
897 var1 = model_base__MModule__public_owner(self);
898 var = var1;
899 RET_LABEL:;
900 return var;
901 }
902 /* method model_base#MModule#is_visible for (self: MModule, MModule, MVisibility): Bool */
903 short int model_base__MModule__is_visible(val* self, val* p0, val* p1) {
904 short int var /* : Bool */;
905 val* var_intro_mmodule /* var intro_mmodule: MModule */;
906 val* var_visibility /* var visibility: MVisibility */;
907 val* var1 /* : MVisibility */;
908 val* var_v /* var v: MVisibility */;
909 val* var2 /* : MVisibility */;
910 short int var3 /* : Bool */;
911 val* var4 /* : MVisibility */;
912 short int var5 /* : Bool */;
913 val* var6 /* : MVisibility */;
914 short int var7 /* : Bool */;
915 val* var8 /* : MVisibility */;
916 short int var9 /* : Bool */;
917 val* var10 /* : MVisibility */;
918 short int var11 /* : Bool */;
919 val* var12 /* : MVisibility */;
920 short int var13 /* : Bool */;
921 val* var14 /* : MVisibility */;
922 short int var15 /* : Bool */;
923 short int var16 /* : Bool */;
924 var_intro_mmodule = p0;
925 var_visibility = p1;
926 var1 = ((val* (*)(val*, val*))(self->class->vft[COLOR_model_base__MModule__visibility_for]))(self, var_intro_mmodule) /* visibility_for on <self:MModule>*/;
927 var_v = var1;
928 var2 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__intrude_visibility]))(self) /* intrude_visibility on <self:MModule>*/;
929 var3 = ((short int (*)(val*, val*))(var_v->class->vft[COLOR_kernel__Object___61d_61d]))(var_v, var2) /* == on <var_v:MVisibility>*/;
930 if (var3){
931 var4 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on <self:MModule>*/;
932 var5 = ((short int (*)(val*, val*))(var_visibility->class->vft[COLOR_kernel__Comparable___62d_61d]))(var_visibility, var4) /* >= on <var_visibility:MVisibility>*/;
933 var = var5;
934 goto RET_LABEL;
935 } else {
936 var6 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__public_visibility]))(self) /* public_visibility on <self:MModule>*/;
937 var7 = ((short int (*)(val*, val*))(var_v->class->vft[COLOR_kernel__Object___61d_61d]))(var_v, var6) /* == on <var_v:MVisibility>*/;
938 if (var7){
939 var8 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on <self:MModule>*/;
940 var9 = ((short int (*)(val*, val*))(var_visibility->class->vft[COLOR_kernel__Comparable___62d]))(var_visibility, var8) /* > on <var_visibility:MVisibility>*/;
941 var = var9;
942 goto RET_LABEL;
943 } else {
944 var10 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on <self:MModule>*/;
945 var11 = ((short int (*)(val*, val*))(var_v->class->vft[COLOR_kernel__Object___61d_61d]))(var_v, var10) /* == on <var_v:MVisibility>*/;
946 if (var11){
947 var12 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on <self:MModule>*/;
948 var13 = ((short int (*)(val*, val*))(var_visibility->class->vft[COLOR_kernel__Comparable___62d]))(var_visibility, var12) /* > on <var_visibility:MVisibility>*/;
949 var = var13;
950 goto RET_LABEL;
951 } else {
952 var14 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__none_visibility]))(self) /* none_visibility on <self:MModule>*/;
953 var15 = ((short int (*)(val*, val*))(var_v->class->vft[COLOR_kernel__Object___61d_61d]))(var_v, var14) /* == on <var_v:MVisibility>*/;
954 if (var15){
955 var16 = 0;
956 var = var16;
957 goto RET_LABEL;
958 } else {
959 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/model/model_base.nit", 181);
960 exit(1);
961 }
962 }
963 }
964 }
965 RET_LABEL:;
966 return var;
967 }
968 /* method model_base#MModule#is_visible for (self: Object, MModule, MVisibility): Bool */
969 short int VIRTUAL_model_base__MModule__is_visible(val* self, val* p0, val* p1) {
970 short int var /* : Bool */;
971 short int var1 /* : Bool */;
972 var1 = model_base__MModule__is_visible(self, p0, p1);
973 var = var1;
974 RET_LABEL:;
975 return var;
976 }
977 /* method model_base#MVisibility#to_s for (self: MVisibility): String */
978 val* model_base__MVisibility__to_s(val* self) {
979 val* var /* : String */;
980 val* var1 /* : String */;
981 var1 = self->attrs[COLOR_model_base__MVisibility___64dto_s].val; /* @to_s on <self:MVisibility> */
982 if (var1 == NULL) {
983 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @to_s", "src/model/model_base.nit", 200);
984 exit(1);
985 }
986 var = var1;
987 RET_LABEL:;
988 return var;
989 }
990 /* method model_base#MVisibility#to_s for (self: Object): String */
991 val* VIRTUAL_model_base__MVisibility__to_s(val* self) {
992 val* var /* : String */;
993 val* var1 /* : String */;
994 var1 = model_base__MVisibility__to_s(self);
995 var = var1;
996 RET_LABEL:;
997 return var;
998 }
999 /* method model_base#MVisibility#to_s= for (self: MVisibility, String) */
1000 void model_base__MVisibility__to_s_61d(val* self, val* p0) {
1001 self->attrs[COLOR_model_base__MVisibility___64dto_s].val = p0; /* @to_s on <self:MVisibility> */
1002 RET_LABEL:;
1003 }
1004 /* method model_base#MVisibility#to_s= for (self: Object, String) */
1005 void VIRTUAL_model_base__MVisibility__to_s_61d(val* self, val* p0) {
1006 model_base__MVisibility__to_s_61d(self, p0);
1007 RET_LABEL:;
1008 }
1009 /* method model_base#MVisibility#level for (self: MVisibility): Int */
1010 long model_base__MVisibility__level(val* self) {
1011 long var /* : Int */;
1012 long var1 /* : Int */;
1013 var1 = self->attrs[COLOR_model_base__MVisibility___64dlevel].l; /* @level on <self:MVisibility> */
1014 var = var1;
1015 RET_LABEL:;
1016 return var;
1017 }
1018 /* method model_base#MVisibility#level for (self: Object): Int */
1019 long VIRTUAL_model_base__MVisibility__level(val* self) {
1020 long var /* : Int */;
1021 long var1 /* : Int */;
1022 var1 = model_base__MVisibility__level(self);
1023 var = var1;
1024 RET_LABEL:;
1025 return var;
1026 }
1027 /* method model_base#MVisibility#level= for (self: MVisibility, Int) */
1028 void model_base__MVisibility__level_61d(val* self, long p0) {
1029 self->attrs[COLOR_model_base__MVisibility___64dlevel].l = p0; /* @level on <self:MVisibility> */
1030 RET_LABEL:;
1031 }
1032 /* method model_base#MVisibility#level= for (self: Object, Int) */
1033 void VIRTUAL_model_base__MVisibility__level_61d(val* self, long p0) {
1034 model_base__MVisibility__level_61d(self, p0);
1035 RET_LABEL:;
1036 }
1037 /* method model_base#MVisibility#init for (self: MVisibility, String, Int) */
1038 void model_base__MVisibility__init(val* self, val* p0, long p1) {
1039 val* var_s /* var s: String */;
1040 long var_level /* var level: Int */;
1041 var_s = p0;
1042 var_level = p1;
1043 ((void (*)(val*, val*))(self->class->vft[COLOR_model_base__MVisibility__to_s_61d]))(self, var_s) /* to_s= on <self:MVisibility>*/;
1044 ((void (*)(val*, long))(self->class->vft[COLOR_model_base__MVisibility__level_61d]))(self, var_level) /* level= on <self:MVisibility>*/;
1045 RET_LABEL:;
1046 }
1047 /* method model_base#MVisibility#init for (self: Object, String, Int) */
1048 void VIRTUAL_model_base__MVisibility__init(val* self, val* p0, long p1) {
1049 model_base__MVisibility__init(self, p0, p1);
1050 RET_LABEL:;
1051 }
1052 /* method model_base#MVisibility#< for (self: MVisibility, MVisibility): Bool */
1053 short int model_base__MVisibility___60d(val* self, val* p0) {
1054 short int var /* : Bool */;
1055 short int var1 /* : Bool */;
1056 int cltype;
1057 int idtype;
1058 const struct type* type_struct;
1059 val* var_other /* var other: MVisibility */;
1060 long var2 /* : Int */;
1061 long var3 /* : Int */;
1062 short int var4 /* : Bool */;
1063 short int var6 /* : Bool */;
1064 int cltype7;
1065 int idtype8;
1066 short int var9 /* : Bool */;
1067 /* Covariant cast for argument 0 (other) <p0:MVisibility> isa OTHER */
1068 /* <p0:MVisibility> isa OTHER */
1069 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
1070 cltype = type_struct->color;
1071 idtype = type_struct->id;
1072 if(cltype >= p0->type->table_size) {
1073 var1 = 0;
1074 } else {
1075 var1 = p0->type->type_table[cltype] == idtype;
1076 }
1077 if (!var1) {
1078 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model_base.nit", 210);
1079 exit(1);
1080 }
1081 var_other = p0;
1082 var2 = ((long (*)(val*))(self->class->vft[COLOR_model_base__MVisibility__level]))(self) /* level on <self:MVisibility>*/;
1083 var3 = ((long (*)(val*))(var_other->class->vft[COLOR_model_base__MVisibility__level]))(var_other) /* level on <var_other:MVisibility>*/;
1084 { /* Inline kernel#Int#< (var2,var3) */
1085 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
1086 /* <var3:Int> isa OTHER */
1087 var6 = 1; /* easy <var3:Int> isa OTHER*/
1088 if (!var6) {
1089 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
1090 exit(1);
1091 }
1092 var9 = var2 < var3;
1093 var4 = var9;
1094 goto RET_LABEL5;
1095 RET_LABEL5:(void)0;
1096 }
1097 var = var4;
1098 goto RET_LABEL;
1099 RET_LABEL:;
1100 return var;
1101 }
1102 /* method model_base#MVisibility#< for (self: Object, Comparable): Bool */
1103 short int VIRTUAL_model_base__MVisibility___60d(val* self, val* p0) {
1104 short int var /* : Bool */;
1105 short int var1 /* : Bool */;
1106 var1 = model_base__MVisibility___60d(self, p0);
1107 var = var1;
1108 RET_LABEL:;
1109 return var;
1110 }
1111 /* method model_base#Object#intrude_visibility for (self: Object): MVisibility */
1112 val* model_base__Object__intrude_visibility(val* self) {
1113 val* var /* : MVisibility */;
1114 static val* varonce;
1115 static int varonce_guard;
1116 val* var1 /* : MVisibility */;
1117 val* var2 /* : MVisibility */;
1118 static val* varonce3;
1119 val* var4 /* : String */;
1120 char* var5 /* : NativeString */;
1121 long var6 /* : Int */;
1122 val* var7 /* : String */;
1123 long var8 /* : Int */;
1124 if (varonce_guard) {
1125 var1 = varonce;
1126 } else {
1127 var2 = NEW_model_base__MVisibility(&type_model_base__MVisibility);
1128 if (varonce3) {
1129 var4 = varonce3;
1130 } else {
1131 var5 = "intrude";
1132 var6 = 7;
1133 var7 = string__NativeString__to_s_with_length(var5, var6);
1134 var4 = var7;
1135 varonce3 = var4;
1136 }
1137 var8 = 4;
1138 ((void (*)(val*, val*, long))(var2->class->vft[COLOR_model_base__MVisibility__init]))(var2, var4, var8) /* init on <var2:MVisibility>*/;
1139 CHECK_NEW_model_base__MVisibility(var2);
1140 var1 = var2;
1141 varonce = var1;
1142 varonce_guard = 1;
1143 }
1144 var = var1;
1145 goto RET_LABEL;
1146 RET_LABEL:;
1147 return var;
1148 }
1149 /* method model_base#Object#intrude_visibility for (self: Object): MVisibility */
1150 val* VIRTUAL_model_base__Object__intrude_visibility(val* self) {
1151 val* var /* : MVisibility */;
1152 val* var1 /* : MVisibility */;
1153 var1 = model_base__Object__intrude_visibility(self);
1154 var = var1;
1155 RET_LABEL:;
1156 return var;
1157 }
1158 /* method model_base#Object#public_visibility for (self: Object): MVisibility */
1159 val* model_base__Object__public_visibility(val* self) {
1160 val* var /* : MVisibility */;
1161 static val* varonce;
1162 static int varonce_guard;
1163 val* var1 /* : MVisibility */;
1164 val* var2 /* : MVisibility */;
1165 static val* varonce3;
1166 val* var4 /* : String */;
1167 char* var5 /* : NativeString */;
1168 long var6 /* : Int */;
1169 val* var7 /* : String */;
1170 long var8 /* : Int */;
1171 if (varonce_guard) {
1172 var1 = varonce;
1173 } else {
1174 var2 = NEW_model_base__MVisibility(&type_model_base__MVisibility);
1175 if (varonce3) {
1176 var4 = varonce3;
1177 } else {
1178 var5 = "public";
1179 var6 = 6;
1180 var7 = string__NativeString__to_s_with_length(var5, var6);
1181 var4 = var7;
1182 varonce3 = var4;
1183 }
1184 var8 = 4;
1185 ((void (*)(val*, val*, long))(var2->class->vft[COLOR_model_base__MVisibility__init]))(var2, var4, var8) /* init on <var2:MVisibility>*/;
1186 CHECK_NEW_model_base__MVisibility(var2);
1187 var1 = var2;
1188 varonce = var1;
1189 varonce_guard = 1;
1190 }
1191 var = var1;
1192 goto RET_LABEL;
1193 RET_LABEL:;
1194 return var;
1195 }
1196 /* method model_base#Object#public_visibility for (self: Object): MVisibility */
1197 val* VIRTUAL_model_base__Object__public_visibility(val* self) {
1198 val* var /* : MVisibility */;
1199 val* var1 /* : MVisibility */;
1200 var1 = model_base__Object__public_visibility(self);
1201 var = var1;
1202 RET_LABEL:;
1203 return var;
1204 }
1205 /* method model_base#Object#protected_visibility for (self: Object): MVisibility */
1206 val* model_base__Object__protected_visibility(val* self) {
1207 val* var /* : MVisibility */;
1208 static val* varonce;
1209 static int varonce_guard;
1210 val* var1 /* : MVisibility */;
1211 val* var2 /* : MVisibility */;
1212 static val* varonce3;
1213 val* var4 /* : String */;
1214 char* var5 /* : NativeString */;
1215 long var6 /* : Int */;
1216 val* var7 /* : String */;
1217 long var8 /* : Int */;
1218 if (varonce_guard) {
1219 var1 = varonce;
1220 } else {
1221 var2 = NEW_model_base__MVisibility(&type_model_base__MVisibility);
1222 if (varonce3) {
1223 var4 = varonce3;
1224 } else {
1225 var5 = "protected";
1226 var6 = 9;
1227 var7 = string__NativeString__to_s_with_length(var5, var6);
1228 var4 = var7;
1229 varonce3 = var4;
1230 }
1231 var8 = 3;
1232 ((void (*)(val*, val*, long))(var2->class->vft[COLOR_model_base__MVisibility__init]))(var2, var4, var8) /* init on <var2:MVisibility>*/;
1233 CHECK_NEW_model_base__MVisibility(var2);
1234 var1 = var2;
1235 varonce = var1;
1236 varonce_guard = 1;
1237 }
1238 var = var1;
1239 goto RET_LABEL;
1240 RET_LABEL:;
1241 return var;
1242 }
1243 /* method model_base#Object#protected_visibility for (self: Object): MVisibility */
1244 val* VIRTUAL_model_base__Object__protected_visibility(val* self) {
1245 val* var /* : MVisibility */;
1246 val* var1 /* : MVisibility */;
1247 var1 = model_base__Object__protected_visibility(self);
1248 var = var1;
1249 RET_LABEL:;
1250 return var;
1251 }
1252 /* method model_base#Object#private_visibility for (self: Object): MVisibility */
1253 val* model_base__Object__private_visibility(val* self) {
1254 val* var /* : MVisibility */;
1255 static val* varonce;
1256 static int varonce_guard;
1257 val* var1 /* : MVisibility */;
1258 val* var2 /* : MVisibility */;
1259 static val* varonce3;
1260 val* var4 /* : String */;
1261 char* var5 /* : NativeString */;
1262 long var6 /* : Int */;
1263 val* var7 /* : String */;
1264 long var8 /* : Int */;
1265 if (varonce_guard) {
1266 var1 = varonce;
1267 } else {
1268 var2 = NEW_model_base__MVisibility(&type_model_base__MVisibility);
1269 if (varonce3) {
1270 var4 = varonce3;
1271 } else {
1272 var5 = "private";
1273 var6 = 7;
1274 var7 = string__NativeString__to_s_with_length(var5, var6);
1275 var4 = var7;
1276 varonce3 = var4;
1277 }
1278 var8 = 2;
1279 ((void (*)(val*, val*, long))(var2->class->vft[COLOR_model_base__MVisibility__init]))(var2, var4, var8) /* init on <var2:MVisibility>*/;
1280 CHECK_NEW_model_base__MVisibility(var2);
1281 var1 = var2;
1282 varonce = var1;
1283 varonce_guard = 1;
1284 }
1285 var = var1;
1286 goto RET_LABEL;
1287 RET_LABEL:;
1288 return var;
1289 }
1290 /* method model_base#Object#private_visibility for (self: Object): MVisibility */
1291 val* VIRTUAL_model_base__Object__private_visibility(val* self) {
1292 val* var /* : MVisibility */;
1293 val* var1 /* : MVisibility */;
1294 var1 = model_base__Object__private_visibility(self);
1295 var = var1;
1296 RET_LABEL:;
1297 return var;
1298 }
1299 /* method model_base#Object#none_visibility for (self: Object): MVisibility */
1300 val* model_base__Object__none_visibility(val* self) {
1301 val* var /* : MVisibility */;
1302 static val* varonce;
1303 static int varonce_guard;
1304 val* var1 /* : MVisibility */;
1305 val* var2 /* : MVisibility */;
1306 static val* varonce3;
1307 val* var4 /* : String */;
1308 char* var5 /* : NativeString */;
1309 long var6 /* : Int */;
1310 val* var7 /* : String */;
1311 long var8 /* : Int */;
1312 if (varonce_guard) {
1313 var1 = varonce;
1314 } else {
1315 var2 = NEW_model_base__MVisibility(&type_model_base__MVisibility);
1316 if (varonce3) {
1317 var4 = varonce3;
1318 } else {
1319 var5 = "none";
1320 var6 = 4;
1321 var7 = string__NativeString__to_s_with_length(var5, var6);
1322 var4 = var7;
1323 varonce3 = var4;
1324 }
1325 var8 = 2;
1326 ((void (*)(val*, val*, long))(var2->class->vft[COLOR_model_base__MVisibility__init]))(var2, var4, var8) /* init on <var2:MVisibility>*/;
1327 CHECK_NEW_model_base__MVisibility(var2);
1328 var1 = var2;
1329 varonce = var1;
1330 varonce_guard = 1;
1331 }
1332 var = var1;
1333 goto RET_LABEL;
1334 RET_LABEL:;
1335 return var;
1336 }
1337 /* method model_base#Object#none_visibility for (self: Object): MVisibility */
1338 val* VIRTUAL_model_base__Object__none_visibility(val* self) {
1339 val* var /* : MVisibility */;
1340 val* var1 /* : MVisibility */;
1341 var1 = model_base__Object__none_visibility(self);
1342 var = var1;
1343 RET_LABEL:;
1344 return var;
1345 }