1 /* This C file is generated by NIT to compile module metamodel___inheritance. */
2 #include "metamodel___inheritance._sep.h"
3 static const char LOCATE_metamodel___inheritance___MMContext___handle_property_conflict
[] = "inheritance::MMContext::handle_property_conflict";
4 void metamodel___inheritance___MMContext___handle_property_conflict(val_t p0
, val_t p1
, val_t p2
){
5 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
10 static val_t once_value_1
; /* Once value */
11 static val_t once_value_2
; /* Once value */
12 static val_t once_value_3
; /* Once value */
13 static val_t once_value_4
; /* Once value */
14 static val_t once_value_5
; /* Once value */
15 static val_t once_value_6
; /* Once value */
16 static val_t once_value_7
; /* Once value */
17 static val_t once_value_9
; /* Once value */
18 static val_t once_value_10
; /* Once value */
19 static val_t once_value_11
; /* Once value */
20 static val_t once_value_12
; /* Once value */
21 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
22 fra
.me
.file
= LOCATE_metamodel___inheritance
;
24 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMContext___handle_property_conflict
;
27 fra
.me
.nitni_local_ref_head
= NULL
;
28 fra
.me
.REG
[0] = NIT_NULL
;
29 fra
.me
.REG
[1] = NIT_NULL
;
30 fra
.me
.REG
[2] = NIT_NULL
;
31 fra
.me
.REG
[3] = NIT_NULL
;
32 fra
.me
.REG
[4] = NIT_NULL
;
33 fra
.me
.REG
[5] = NIT_NULL
;
34 fra
.me
.REG
[6] = NIT_NULL
;
38 /* metamodel/inheritance.nit:28 */
39 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
40 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
41 if (UNTAG_Bool(REGB0
)) {
42 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 28);
44 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
45 /* metamodel/inheritance.nit:29 */
46 fra
.me
.REG
[4] = CALL_standard___file___Object___stderr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
48 fra
.me
.REG
[5] = BOX_NativeString("Fatal error: inherit_local_property error\n");
50 fra
.me
.REG
[5] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[5], REGB0
);
51 once_value_1
= fra
.me
.REG
[5];
52 register_static_object(&once_value_1
);
53 } else fra
.me
.REG
[5] = once_value_1
;
54 fra
.me
.REG
[5] = fra
.me
.REG
[5];
55 CALL_standard___stream___OStream___write(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
56 /* metamodel/inheritance.nit:30 */
58 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
60 fra
.me
.REG
[4] = BOX_NativeString("------- ");
62 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
63 once_value_2
= fra
.me
.REG
[4];
64 register_static_object(&once_value_2
);
65 } else fra
.me
.REG
[4] = once_value_2
;
66 fra
.me
.REG
[4] = fra
.me
.REG
[4];
67 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
68 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
69 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
70 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
72 fra
.me
.REG
[4] = BOX_NativeString("::");
74 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB0
);
75 once_value_3
= fra
.me
.REG
[4];
76 register_static_object(&once_value_3
);
77 } else fra
.me
.REG
[4] = once_value_3
;
78 fra
.me
.REG
[4] = fra
.me
.REG
[4];
79 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
80 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
81 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
83 fra
.me
.REG
[1] = BOX_NativeString(" ");
85 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
86 once_value_4
= fra
.me
.REG
[1];
87 register_static_object(&once_value_4
);
88 } else fra
.me
.REG
[1] = once_value_4
;
89 fra
.me
.REG
[1] = fra
.me
.REG
[1];
90 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
91 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
92 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
93 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
95 fra
.me
.REG
[1] = BOX_NativeString("");
97 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
98 once_value_5
= fra
.me
.REG
[1];
99 register_static_object(&once_value_5
);
100 } else fra
.me
.REG
[1] = once_value_5
;
101 fra
.me
.REG
[1] = fra
.me
.REG
[1];
102 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
103 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
104 CALL_standard___file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
105 /* ../lib/standard/collection/array.nit:269 */
107 /* ../lib/standard/collection/array.nit:270 */
108 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
109 if (UNTAG_Bool(REGB1
)) {
111 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
113 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
114 /* ../lib/standard/collection/array.nit:271 */
115 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[2]);
116 /* ../lib/standard/collection/array.nit:272 */
118 /* ../lib/standard/collection/array.nit:24 */
119 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
120 if (UNTAG_Bool(REGB1
)) {
122 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
124 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
125 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
126 if (UNTAG_Bool(REGB2
)) {
128 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
130 /* ../lib/standard/kernel.nit:235 */
131 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
132 /* ../lib/standard/collection/array.nit:272 */
133 if (UNTAG_Bool(REGB1
)) {
134 /* ../lib/standard/collection/array.nit:273 */
135 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
136 if (UNTAG_Bool(REGB1
)) {
137 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
139 /* ../lib/standard/collection/array.nit:718 */
140 fra
.me
.REG
[1] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
141 /* metamodel/inheritance.nit:32 */
143 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
145 fra
.me
.REG
[6] = BOX_NativeString(" ");
147 fra
.me
.REG
[6] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[6], REGB1
);
148 once_value_6
= fra
.me
.REG
[6];
149 register_static_object(&once_value_6
);
150 } else fra
.me
.REG
[6] = once_value_6
;
151 fra
.me
.REG
[6] = fra
.me
.REG
[6];
152 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
153 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
154 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
156 fra
.me
.REG
[1] = BOX_NativeString("");
158 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB1
);
159 once_value_7
= fra
.me
.REG
[1];
160 register_static_object(&once_value_7
);
161 } else fra
.me
.REG
[1] = once_value_7
;
162 fra
.me
.REG
[1] = fra
.me
.REG
[1];
163 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
164 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
165 CALL_standard___file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
166 /* ../lib/standard/collection/array.nit:274 */
168 /* ../lib/standard/kernel.nit:238 */
169 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
170 /* ../lib/standard/collection/array.nit:274 */
173 /* ../lib/standard/collection/array.nit:272 */
178 /* metamodel/inheritance.nit:34 */
180 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
182 fra
.me
.REG
[2] = BOX_NativeString("------- ");
184 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
185 once_value_9
= fra
.me
.REG
[2];
186 register_static_object(&once_value_9
);
187 } else fra
.me
.REG
[2] = once_value_9
;
188 fra
.me
.REG
[2] = fra
.me
.REG
[2];
189 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
190 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___property_hierarchy(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
191 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
192 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
193 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
194 if (!once_value_10
) {
195 fra
.me
.REG
[2] = BOX_NativeString("");
197 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
198 once_value_10
= fra
.me
.REG
[2];
199 register_static_object(&once_value_10
);
200 } else fra
.me
.REG
[2] = once_value_10
;
201 fra
.me
.REG
[2] = fra
.me
.REG
[2];
202 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
203 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
204 CALL_standard___file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
205 /* metamodel/inheritance.nit:35 */
207 fra
.me
.REG
[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
208 if (!once_value_11
) {
209 fra
.me
.REG
[2] = BOX_NativeString("------- ");
211 fra
.me
.REG
[2] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[2], REGB0
);
212 once_value_11
= fra
.me
.REG
[2];
213 register_static_object(&once_value_11
);
214 } else fra
.me
.REG
[2] = once_value_11
;
215 fra
.me
.REG
[2] = fra
.me
.REG
[2];
216 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[2]);
217 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___property_hierarchy(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
218 fra
.me
.REG
[3] = CALL_metamodel___partial_order___PartialOrder___to_dot(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
219 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
220 if (!once_value_12
) {
221 fra
.me
.REG
[3] = BOX_NativeString("");
223 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
224 once_value_12
= fra
.me
.REG
[3];
225 register_static_object(&once_value_12
);
226 } else fra
.me
.REG
[3] = once_value_12
;
227 fra
.me
.REG
[3] = fra
.me
.REG
[3];
228 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
229 fra
.me
.REG
[5] = CALL_standard___string___Object___to_s(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
230 CALL_standard___file___Object___print(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[5]);
231 /* metamodel/inheritance.nit:36 */
233 CALL_standard___kernel___Object___exit(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
234 stack_frame_head
= fra
.me
.prev
;
237 static const char LOCATE_metamodel___inheritance___MMModule___type_any
[] = "inheritance::MMModule::type_any";
238 val_t
metamodel___inheritance___MMModule___type_any(val_t p0
){
239 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
242 static val_t once_value_1
; /* Once value */
243 static val_t once_value_2
; /* Once value */
244 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
245 fra
.me
.file
= LOCATE_metamodel___inheritance
;
247 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMModule___type_any
;
248 fra
.me
.has_broke
= 0;
250 fra
.me
.nitni_local_ref_head
= NULL
;
251 fra
.me
.REG
[0] = NIT_NULL
;
252 fra
.me
.REG
[1] = NIT_NULL
;
254 /* metamodel/inheritance.nit:44 */
257 fra
.me
.REG
[1] = BOX_NativeString("Object");
259 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
260 once_value_2
= fra
.me
.REG
[1];
261 register_static_object(&once_value_2
);
262 } else fra
.me
.REG
[1] = once_value_2
;
263 fra
.me
.REG
[1] = fra
.me
.REG
[1];
264 fra
.me
.REG
[1] = CALL_symbol___String___to_symbol(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
265 once_value_1
= fra
.me
.REG
[1];
266 register_static_object(&once_value_1
);
267 } else fra
.me
.REG
[1] = once_value_1
;
268 fra
.me
.REG
[1] = fra
.me
.REG
[1];
269 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
270 /* metamodel/inheritance.nit:45 */
271 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
274 stack_frame_head
= fra
.me
.prev
;
275 return fra
.me
.REG
[1];
277 static const char LOCATE_metamodel___inheritance___MMModule___type_any_extern
[] = "inheritance::MMModule::type_any_extern";
278 val_t
metamodel___inheritance___MMModule___type_any_extern(val_t p0
){
279 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
282 static val_t once_value_1
; /* Once value */
283 static val_t once_value_2
; /* Once value */
284 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
285 fra
.me
.file
= LOCATE_metamodel___inheritance
;
287 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMModule___type_any_extern
;
288 fra
.me
.has_broke
= 0;
290 fra
.me
.nitni_local_ref_head
= NULL
;
291 fra
.me
.REG
[0] = NIT_NULL
;
292 fra
.me
.REG
[1] = NIT_NULL
;
294 /* metamodel/inheritance.nit:51 */
297 fra
.me
.REG
[1] = BOX_NativeString("Pointer");
299 fra
.me
.REG
[1] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[1], REGB0
);
300 once_value_2
= fra
.me
.REG
[1];
301 register_static_object(&once_value_2
);
302 } else fra
.me
.REG
[1] = once_value_2
;
303 fra
.me
.REG
[1] = fra
.me
.REG
[1];
304 fra
.me
.REG
[1] = CALL_symbol___String___to_symbol(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
305 once_value_1
= fra
.me
.REG
[1];
306 register_static_object(&once_value_1
);
307 } else fra
.me
.REG
[1] = once_value_1
;
308 fra
.me
.REG
[1] = fra
.me
.REG
[1];
309 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
310 /* metamodel/inheritance.nit:52 */
311 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
314 stack_frame_head
= fra
.me
.prev
;
315 return fra
.me
.REG
[1];
317 static const char LOCATE_metamodel___inheritance___MMModule___import_global_classes
[] = "inheritance::MMModule::import_global_classes";
318 void metamodel___inheritance___MMModule___import_global_classes(val_t p0
){
319 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
324 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
325 fra
.me
.file
= LOCATE_metamodel___inheritance
;
327 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMModule___import_global_classes
;
328 fra
.me
.has_broke
= 0;
330 fra
.me
.nitni_local_ref_head
= NULL
;
331 fra
.me
.REG
[0] = NIT_NULL
;
332 fra
.me
.REG
[1] = NIT_NULL
;
333 fra
.me
.REG
[2] = NIT_NULL
;
334 fra
.me
.REG
[3] = NIT_NULL
;
336 /* metamodel/inheritance.nit:58 */
337 fra
.me
.REG
[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
338 /* metamodel/inheritance.nit:59 */
339 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
340 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
341 if (UNTAG_Bool(REGB0
)) {
343 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
344 if (UNTAG_Bool(REGB1
)) {
348 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
352 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
353 if (UNTAG_Bool(REGB0
)) {
355 nit_abort("Assert failed", NULL
, LOCATE_metamodel___inheritance
, 59);
357 /* metamodel/inheritance.nit:60 */
358 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
359 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
360 if (UNTAG_Bool(REGB0
)) {
361 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 60);
363 fra
.me
.REG
[1] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
364 /* ../lib/standard/collection/array.nit:269 */
366 /* ../lib/standard/collection/array.nit:270 */
367 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
368 if (UNTAG_Bool(REGB1
)) {
370 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
372 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
373 /* ../lib/standard/collection/array.nit:271 */
374 fra
.me
.REG
[2] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[1]);
375 /* ../lib/standard/collection/array.nit:272 */
377 /* ../lib/standard/collection/array.nit:24 */
378 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
379 if (UNTAG_Bool(REGB1
)) {
381 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
383 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
384 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
385 if (UNTAG_Bool(REGB2
)) {
387 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
389 /* ../lib/standard/kernel.nit:235 */
390 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
391 /* ../lib/standard/collection/array.nit:272 */
392 if (UNTAG_Bool(REGB1
)) {
393 /* ../lib/standard/collection/array.nit:273 */
394 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
395 if (UNTAG_Bool(REGB1
)) {
396 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
398 /* ../lib/standard/collection/array.nit:718 */
399 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB0
)];
400 /* metamodel/inheritance.nit:61 */
401 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMModule___global_classes(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
402 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[3])(fra
.me
.REG
[3], (&(fra
.me
)), ((fun_t
)OC_metamodel___inheritance___MMModule___import_global_classes_1
));
403 /* ../lib/standard/collection/array.nit:274 */
405 /* ../lib/standard/kernel.nit:238 */
406 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
407 /* ../lib/standard/collection/array.nit:274 */
410 /* ../lib/standard/collection/array.nit:272 */
415 stack_frame_head
= fra
.me
.prev
;
418 void OC_metamodel___inheritance___MMModule___import_global_classes_1(struct stack_frame_t
*closctx
, val_t p0
){
419 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
422 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
423 fra
.me
.file
= LOCATE_metamodel___inheritance
;
425 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMModule___import_global_classes
;
426 fra
.me
.has_broke
= 0;
428 fra
.me
.nitni_local_ref_head
= NULL
;
429 fra
.me
.REG
[0] = NIT_NULL
;
430 fra
.me
.REG
[1] = NIT_NULL
;
431 fra
.me
.REG
[2] = NIT_NULL
;
433 /* metamodel/inheritance.nit:62 */
434 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMModule___global_classes(closctx
->REG
[0])(closctx
->REG
[0]);
435 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
436 if (UNTAG_Bool(REGB0
)) {
439 /* metamodel/inheritance.nit:63 */
440 REGB0
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____global_classes(closctx
->REG
[0])!=NIT_NULL
);
441 if (UNTAG_Bool(REGB0
)) {
443 nit_abort("Uninitialized attribute %s", "_global_classes", LOCATE_metamodel___inheritance
, 63);
445 fra
.me
.REG
[1] = ATTR_metamodel___abstractmetamodel___MMModule____global_classes(closctx
->REG
[0]);
446 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
447 /* metamodel/inheritance.nit:64 */
448 REGB0
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____global_class_by_name(closctx
->REG
[0])!=NIT_NULL
);
449 if (UNTAG_Bool(REGB0
)) {
451 nit_abort("Uninitialized attribute %s", "_global_class_by_name", LOCATE_metamodel___inheritance
, 64);
453 fra
.me
.REG
[1] = ATTR_metamodel___abstractmetamodel___MMModule____global_class_by_name(closctx
->REG
[0]);
454 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMGlobalClass___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
455 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2], fra
.me
.REG
[0]);
457 stack_frame_head
= fra
.me
.prev
;
460 static const char LOCATE_metamodel___inheritance___MMModule___import_local_classes
[] = "inheritance::MMModule::import_local_classes";
461 void metamodel___inheritance___MMModule___import_local_classes(val_t p0
){
462 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
465 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
466 fra
.me
.file
= LOCATE_metamodel___inheritance
;
468 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMModule___import_local_classes
;
469 fra
.me
.has_broke
= 0;
471 fra
.me
.nitni_local_ref_head
= NULL
;
472 fra
.me
.REG
[0] = NIT_NULL
;
473 fra
.me
.REG
[1] = NIT_NULL
;
475 /* metamodel/inheritance.nit:73 */
476 REGB0
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____global_classes(fra
.me
.REG
[0])!=NIT_NULL
);
477 if (UNTAG_Bool(REGB0
)) {
479 nit_abort("Uninitialized attribute %s", "_global_classes", LOCATE_metamodel___inheritance
, 73);
481 fra
.me
.REG
[1] = ATTR_metamodel___abstractmetamodel___MMModule____global_classes(fra
.me
.REG
[0]);
482 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[1])(fra
.me
.REG
[1], (&(fra
.me
)), ((fun_t
)OC_metamodel___inheritance___MMModule___import_local_classes_1
));
483 stack_frame_head
= fra
.me
.prev
;
486 void OC_metamodel___inheritance___MMModule___import_local_classes_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
487 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
491 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
492 fra
.me
.file
= LOCATE_metamodel___inheritance
;
494 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMModule___import_local_classes
;
495 fra
.me
.has_broke
= 0;
497 fra
.me
.nitni_local_ref_head
= NULL
;
498 fra
.me
.REG
[0] = NIT_NULL
;
499 fra
.me
.REG
[1] = NIT_NULL
;
500 fra
.me
.closure_ctx
= closctx_param
;
501 fra
.me
.closure_funs
= CREG
;
504 /* metamodel/inheritance.nit:74 */
505 REGB0
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMModule____local_class_by_global(closctx
->REG
[0])!=NIT_NULL
);
506 if (UNTAG_Bool(REGB0
)) {
508 nit_abort("Uninitialized attribute %s", "_local_class_by_global", LOCATE_metamodel___inheritance
, 74);
510 fra
.me
.REG
[1] = ATTR_metamodel___abstractmetamodel___MMModule____local_class_by_global(closctx
->REG
[0]);
511 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
512 if (UNTAG_Bool(REGB0
)) {
515 /* metamodel/inheritance.nit:75 */
516 fra
.me
.REG
[0] = NEW_MMImplicitLocalClass_metamodel___inheritance___MMImplicitLocalClass___init(closctx
->REG
[0], fra
.me
.REG
[0]);
518 stack_frame_head
= fra
.me
.prev
;
521 static const char LOCATE_metamodel___inheritance___MMLocalClass___compute_super_classes
[] = "inheritance::MMLocalClass::compute_super_classes";
522 void metamodel___inheritance___MMLocalClass___compute_super_classes(val_t p0
){
523 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
527 static val_t once_value_2
; /* Once value */
528 static val_t once_value_3
; /* Once value */
529 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
530 fra
.me
.file
= LOCATE_metamodel___inheritance
;
532 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___compute_super_classes
;
533 fra
.me
.has_broke
= 0;
535 fra
.me
.nitni_local_ref_head
= NULL
;
536 fra
.me
.REG
[0] = NIT_NULL
;
537 fra
.me
.REG
[1] = NIT_NULL
;
538 fra
.me
.REG
[2] = NIT_NULL
;
539 fra
.me
.REG
[3] = NIT_NULL
;
541 /* metamodel/inheritance.nit:91 */
542 REGB0
= CALL_metamodel___inheritance___MMLocalClass___computed_super_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
543 if (UNTAG_Bool(REGB0
)) {
544 /* metamodel/inheritance.nit:93 */
547 /* metamodel/inheritance.nit:94 */
548 REGB0
= TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____computing_super(fra
.me
.REG
[0])!=NIT_NULL
);
549 if (UNTAG_Bool(REGB0
)) {
551 nit_abort("Uninitialized attribute %s", "_computing_super", LOCATE_metamodel___inheritance
, 94);
553 REGB0
= ATTR_metamodel___inheritance___MMLocalClass____computing_super(fra
.me
.REG
[0]);
554 if (UNTAG_Bool(REGB0
)) {
555 /* metamodel/inheritance.nit:95 */
556 fra
.me
.REG
[1] = CALL_standard___file___Object___stderr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
558 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
560 fra
.me
.REG
[3] = BOX_NativeString("Fatal error: Inheritance loop for class ");
562 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
563 once_value_2
= fra
.me
.REG
[3];
564 register_static_object(&once_value_2
);
565 } else fra
.me
.REG
[3] = once_value_2
;
566 fra
.me
.REG
[3] = fra
.me
.REG
[3];
567 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
568 fra
.me
.REG
[3] = CALL_standard___string___Object___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
569 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
571 fra
.me
.REG
[3] = BOX_NativeString("\n");
573 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
574 once_value_3
= fra
.me
.REG
[3];
575 register_static_object(&once_value_3
);
576 } else fra
.me
.REG
[3] = once_value_3
;
577 fra
.me
.REG
[3] = fra
.me
.REG
[3];
578 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
579 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
580 CALL_standard___stream___OStream___write(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
581 /* metamodel/inheritance.nit:96 */
583 CALL_standard___kernel___Object___exit(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB0
);
586 /* metamodel/inheritance.nit:98 */
588 ATTR_metamodel___inheritance___MMLocalClass____computing_super(fra
.me
.REG
[0]) = REGB0
;
589 /* metamodel/inheritance.nit:100 */
590 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
591 /* metamodel/inheritance.nit:101 */
592 CALL_metamodel___inheritance___MMLocalClass___add_explicit_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
593 /* metamodel/inheritance.nit:102 */
594 CALL_metamodel___inheritance___MMLocalClass___add_super_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
595 /* metamodel/inheritance.nit:103 */
596 CALL_metamodel___inheritance___MMLocalClass___add_default_any_class(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
597 /* metamodel/inheritance.nit:104 */
598 CALL_metamodel___inheritance___MMLocalClass___compute_super_parents(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
599 /* metamodel/inheritance.nit:105 */
600 fra
.me
.REG
[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
601 /* metamodel/inheritance.nit:106 */
602 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
603 /* metamodel/inheritance.nit:107 */
604 fra
.me
.REG
[1] = CALL_standard___collection___array___Collection___to_a(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
605 /* metamodel/inheritance.nit:108 */
606 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
607 CALL_metamodel___abstractmetamodel___MMModule___set_supers_class(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[1]);
608 /* metamodel/inheritance.nit:109 */
609 fra
.me
.REG
[1] = ATTR_metamodel___abstractmetamodel___MMLocalClass____crhe(fra
.me
.REG
[0]);
610 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
611 if (UNTAG_Bool(REGB0
)) {
613 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
614 if (UNTAG_Bool(REGB1
)) {
618 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
622 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
623 if (UNTAG_Bool(REGB0
)) {
625 nit_abort("Assert failed", NULL
, LOCATE_metamodel___inheritance
, 109);
627 /* metamodel/inheritance.nit:110 */
628 fra
.me
.REG
[1] = ATTR_metamodel___abstractmetamodel___MMLocalClass____cshe(fra
.me
.REG
[0]);
629 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
630 if (UNTAG_Bool(REGB0
)) {
632 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
633 if (UNTAG_Bool(REGB1
)) {
637 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
641 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
642 if (UNTAG_Bool(REGB0
)) {
644 nit_abort("Assert failed", NULL
, LOCATE_metamodel___inheritance
, 110);
646 /* metamodel/inheritance.nit:111 */
648 ATTR_metamodel___inheritance___MMLocalClass____computing_super(fra
.me
.REG
[0]) = REGB0
;
650 stack_frame_head
= fra
.me
.prev
;
653 static const char LOCATE_metamodel___inheritance___MMLocalClass___compute_ancestors
[] = "inheritance::MMLocalClass::compute_ancestors";
654 void metamodel___inheritance___MMLocalClass___compute_ancestors(val_t p0
){
655 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
658 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
659 fra
.me
.file
= LOCATE_metamodel___inheritance
;
661 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___compute_ancestors
;
662 fra
.me
.has_broke
= 0;
664 fra
.me
.nitni_local_ref_head
= NULL
;
665 fra
.me
.REG
[0] = NIT_NULL
;
666 fra
.me
.REG
[1] = NIT_NULL
;
667 fra
.me
.REG
[2] = NIT_NULL
;
669 /* metamodel/inheritance.nit:117 */
670 REGB0
= CALL_metamodel___inheritance___MMLocalClass___computed_super_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
671 if (UNTAG_Bool(REGB0
)) {
673 nit_abort("Assert failed", NULL
, LOCATE_metamodel___inheritance
, 117);
675 /* metamodel/inheritance.nit:118 */
676 REGB0
= CALL_metamodel___inheritance___MMLocalClass___computed_ancestors(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
677 if (UNTAG_Bool(REGB0
)) {
680 /* metamodel/inheritance.nit:120 */
681 fra
.me
.REG
[1] = CALL_metamodel___inheritance___MMLocalClass___build_ancestors(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
682 fra
.me
.REG
[1] = CALL_metamodel___inheritance___MMLocalClass___group_ancestors(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
683 /* metamodel/inheritance.nit:121 */
684 fra
.me
.REG
[2] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
685 ATTR_metamodel___static_type___MMLocalClass____ancestors(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
686 /* metamodel/inheritance.nit:123 */
687 fra
.me
.REG
[1] = CALL_standard___collection___abstract_collection___MapRead___values(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
688 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[1])(fra
.me
.REG
[1], (&(fra
.me
)), ((fun_t
)OC_metamodel___inheritance___MMLocalClass___compute_ancestors_2
));
690 stack_frame_head
= fra
.me
.prev
;
693 void OC_metamodel___inheritance___MMLocalClass___compute_ancestors_2(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
694 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
700 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
701 fra
.me
.file
= LOCATE_metamodel___inheritance
;
703 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___compute_ancestors
;
704 fra
.me
.has_broke
= 0;
706 fra
.me
.nitni_local_ref_head
= NULL
;
707 fra
.me
.REG
[0] = NIT_NULL
;
708 fra
.me
.REG
[1] = NIT_NULL
;
709 fra
.me
.closure_ctx
= closctx_param
;
710 fra
.me
.closure_funs
= CREG
;
713 /* metamodel/inheritance.nit:124 */
714 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
716 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
717 if (UNTAG_Bool(REGB2
)) {
719 /* ../lib/standard/kernel.nit:230 */
720 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
721 /* metamodel/inheritance.nit:124 */
724 if (UNTAG_Bool(REGB2
)) {
725 /* metamodel/inheritance.nit:125 */
726 fra
.me
.REG
[1] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
727 CALL_metamodel___static_type___MMLocalClass___add_ancestor(closctx
->REG
[0])(closctx
->REG
[0], fra
.me
.REG
[1]);
729 /* metamodel/inheritance.nit:127 */
730 fra
.me
.REG
[1] = CALL_metamodel___inheritance___MMLocalClass___merge_ancestors(closctx
->REG
[0])(closctx
->REG
[0], fra
.me
.REG
[0]);
731 /* metamodel/inheritance.nit:128 */
732 fra
.me
.REG
[0] = CALL_metamodel___inheritance___MMLocalClass___merge_ancestors(closctx
->REG
[0])(closctx
->REG
[0], fra
.me
.REG
[0]);
733 CALL_metamodel___static_type___MMLocalClass___add_ancestor(closctx
->REG
[0])(closctx
->REG
[0], fra
.me
.REG
[0]);
735 stack_frame_head
= fra
.me
.prev
;
738 static const char LOCATE_metamodel___inheritance___MMLocalClass___inherit_global_properties
[] = "inheritance::MMLocalClass::inherit_global_properties";
739 void metamodel___inheritance___MMLocalClass___inherit_global_properties(val_t p0
){
740 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
745 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
746 fra
.me
.file
= LOCATE_metamodel___inheritance
;
748 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___inherit_global_properties
;
749 fra
.me
.has_broke
= 0;
751 fra
.me
.nitni_local_ref_head
= NULL
;
752 fra
.me
.REG
[0] = NIT_NULL
;
753 fra
.me
.REG
[1] = NIT_NULL
;
754 fra
.me
.REG
[2] = NIT_NULL
;
755 fra
.me
.REG
[3] = NIT_NULL
;
756 fra
.me
.REG
[4] = NIT_NULL
;
758 /* metamodel/inheritance.nit:138 */
759 REGB0
= TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____are_global_properties_inherited(fra
.me
.REG
[0])!=NIT_NULL
);
760 if (UNTAG_Bool(REGB0
)) {
762 nit_abort("Uninitialized attribute %s", "_are_global_properties_inherited", LOCATE_metamodel___inheritance
, 138);
764 REGB0
= ATTR_metamodel___inheritance___MMLocalClass____are_global_properties_inherited(fra
.me
.REG
[0]);
765 if (UNTAG_Bool(REGB0
)) {
768 /* metamodel/inheritance.nit:139 */
770 ATTR_metamodel___inheritance___MMLocalClass____are_global_properties_inherited(fra
.me
.REG
[0]) = REGB0
;
771 /* metamodel/inheritance.nit:141 */
772 REGB0
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra
.me
.REG
[0])!=NIT_NULL
);
773 if (UNTAG_Bool(REGB0
)) {
775 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_metamodel___inheritance
, 141);
777 fra
.me
.REG
[1] = ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra
.me
.REG
[0]);
778 /* metamodel/inheritance.nit:142 */
779 REGB0
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra
.me
.REG
[0])!=NIT_NULL
);
780 if (UNTAG_Bool(REGB0
)) {
782 nit_abort("Uninitialized attribute %s", "_global_properties", LOCATE_metamodel___inheritance
, 142);
784 fra
.me
.REG
[1] = ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra
.me
.REG
[0]);
785 /* metamodel/inheritance.nit:143 */
786 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
787 fra
.me
.REG
[2] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
788 /* ../lib/standard/collection/array.nit:269 */
790 /* ../lib/standard/collection/array.nit:270 */
791 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
792 if (UNTAG_Bool(REGB1
)) {
794 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
796 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
797 /* ../lib/standard/collection/array.nit:271 */
798 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[2]);
799 /* ../lib/standard/collection/array.nit:272 */
801 /* ../lib/standard/collection/array.nit:24 */
802 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
803 if (UNTAG_Bool(REGB1
)) {
805 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
807 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
808 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
809 if (UNTAG_Bool(REGB2
)) {
811 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
813 /* ../lib/standard/kernel.nit:235 */
814 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
815 /* ../lib/standard/collection/array.nit:272 */
816 if (UNTAG_Bool(REGB1
)) {
817 /* ../lib/standard/collection/array.nit:273 */
818 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
819 if (UNTAG_Bool(REGB1
)) {
820 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
822 /* ../lib/standard/collection/array.nit:718 */
823 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB0
)];
824 /* metamodel/inheritance.nit:144 */
825 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
826 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[4])(fra
.me
.REG
[4], (&(fra
.me
)), ((fun_t
)OC_metamodel___inheritance___MMLocalClass___inherit_global_properties_2
));
827 /* ../lib/standard/collection/array.nit:274 */
829 /* ../lib/standard/kernel.nit:238 */
830 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
831 /* ../lib/standard/collection/array.nit:274 */
834 /* ../lib/standard/collection/array.nit:272 */
840 stack_frame_head
= fra
.me
.prev
;
843 void OC_metamodel___inheritance___MMLocalClass___inherit_global_properties_2(struct stack_frame_t
*closctx
, val_t p0
){
844 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
849 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
850 fra
.me
.file
= LOCATE_metamodel___inheritance
;
852 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___inherit_global_properties
;
853 fra
.me
.has_broke
= 0;
855 fra
.me
.nitni_local_ref_head
= NULL
;
856 fra
.me
.REG
[0] = NIT_NULL
;
857 fra
.me
.REG
[1] = NIT_NULL
;
858 fra
.me
.REG
[2] = NIT_NULL
;
860 /* metamodel/inheritance.nit:145 */
861 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
862 if (UNTAG_Bool(REGB0
)) {
865 /* metamodel/inheritance.nit:147 */
866 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
867 /* metamodel/inheritance.nit:151 */
868 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
869 if (UNTAG_Bool(REGB0
)) {
870 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
871 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
872 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
873 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(closctx
->REG
[0])(closctx
->REG
[0]);
874 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[2]));
875 if (UNTAG_Bool(REGB0
)) {
877 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
880 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
885 if (UNTAG_Bool(REGB0
)) {
886 /* metamodel/inheritance.nit:153 */
889 /* metamodel/inheritance.nit:157 */
890 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
891 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
892 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
894 REGB0
= CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB0
);
895 REGB1
= TAG_Char('@');
896 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
897 if (UNTAG_Bool(REGB2
)) {
899 /* ../lib/standard/kernel.nit:381 */
900 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
901 /* metamodel/inheritance.nit:157 */
904 if (UNTAG_Bool(REGB2
)) {
907 /* metamodel/inheritance.nit:159 */
908 CALL_metamodel___inheritance___MMLocalClass___make_visible_an_inherited_global_property(closctx
->REG
[0])(closctx
->REG
[0], fra
.me
.REG
[0]);
910 stack_frame_head
= fra
.me
.prev
;
913 static const char LOCATE_metamodel___inheritance___MMLocalClass___global_properties
[] = "inheritance::MMLocalClass::(abstractmetamodel::MMLocalClass::global_properties)";
914 val_t
metamodel___inheritance___MMLocalClass___global_properties(val_t p0
){
915 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
918 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
919 fra
.me
.file
= LOCATE_metamodel___inheritance
;
921 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___global_properties
;
922 fra
.me
.has_broke
= 0;
924 fra
.me
.nitni_local_ref_head
= NULL
;
925 fra
.me
.REG
[0] = NIT_NULL
;
926 fra
.me
.REG
[1] = NIT_NULL
;
928 /* metamodel/inheritance.nit:166 */
929 REGB0
= TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____are_global_properties_inherited(fra
.me
.REG
[0])!=NIT_NULL
);
930 if (UNTAG_Bool(REGB0
)) {
932 nit_abort("Uninitialized attribute %s", "_are_global_properties_inherited", LOCATE_metamodel___inheritance
, 166);
934 REGB0
= ATTR_metamodel___inheritance___MMLocalClass____are_global_properties_inherited(fra
.me
.REG
[0]);
935 if (UNTAG_Bool(REGB0
)) {
936 REGB0
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra
.me
.REG
[0])!=NIT_NULL
);
937 if (UNTAG_Bool(REGB0
)) {
939 nit_abort("Uninitialized attribute %s", "_global_properties", LOCATE_metamodel___inheritance
, 166);
941 fra
.me
.REG
[1] = ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra
.me
.REG
[0]);
944 /* metamodel/inheritance.nit:167 */
945 REGB0
= CALL_metamodel___inheritance___MMLocalClass___computed_super_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
946 if (UNTAG_Bool(REGB0
)) {
948 nit_abort("Assert failed", NULL
, LOCATE_metamodel___inheritance
, 167);
950 /* metamodel/inheritance.nit:168 */
951 CALL_metamodel___inheritance___MMLocalClass___inherit_global_properties(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
952 /* metamodel/inheritance.nit:169 */
953 REGB0
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra
.me
.REG
[0])!=NIT_NULL
);
954 if (UNTAG_Bool(REGB0
)) {
956 nit_abort("Uninitialized attribute %s", "_global_properties", LOCATE_metamodel___inheritance
, 169);
958 fra
.me
.REG
[0] = ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra
.me
.REG
[0]);
959 fra
.me
.REG
[1] = fra
.me
.REG
[0];
962 stack_frame_head
= fra
.me
.prev
;
963 return fra
.me
.REG
[1];
965 static const char LOCATE_metamodel___inheritance___MMLocalClass___has_global_property
[] = "inheritance::MMLocalClass::(abstractmetamodel::MMLocalClass::has_global_property)";
966 val_t
metamodel___inheritance___MMLocalClass___has_global_property(val_t p0
, val_t p1
){
967 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
973 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
974 fra
.me
.file
= LOCATE_metamodel___inheritance
;
976 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___has_global_property
;
977 fra
.me
.has_broke
= 0;
979 fra
.me
.nitni_local_ref_head
= NULL
;
980 fra
.me
.REG
[0] = NIT_NULL
;
981 fra
.me
.REG
[1] = NIT_NULL
;
982 fra
.me
.REG
[2] = NIT_NULL
;
983 fra
.me
.REG
[3] = NIT_NULL
;
984 fra
.me
.REG
[4] = NIT_NULL
;
987 /* metamodel/inheritance.nit:176 */
988 REGB0
= CALL_metamodel___inheritance___MMLocalClass___computed_super_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
989 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
990 if (UNTAG_Bool(REGB0
)) {
994 /* metamodel/inheritance.nit:178 */
995 REGB1
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra
.me
.REG
[0])!=NIT_NULL
);
996 if (UNTAG_Bool(REGB1
)) {
998 nit_abort("Uninitialized attribute %s", "_global_properties", LOCATE_metamodel___inheritance
, 178);
1000 fra
.me
.REG
[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra
.me
.REG
[0]);
1001 /* metamodel/inheritance.nit:179 */
1002 REGB1
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1003 if (UNTAG_Bool(REGB1
)) {
1004 REGB1
= TAG_Bool(1);
1008 /* metamodel/inheritance.nit:180 */
1009 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1010 fra
.me
.REG
[0] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1011 /* ../lib/standard/collection/array.nit:269 */
1013 /* ../lib/standard/collection/array.nit:270 */
1014 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
1015 if (UNTAG_Bool(REGB2
)) {
1017 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1019 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
1020 /* ../lib/standard/collection/array.nit:271 */
1021 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
1022 /* ../lib/standard/collection/array.nit:272 */
1024 /* ../lib/standard/collection/array.nit:24 */
1025 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
1026 if (UNTAG_Bool(REGB2
)) {
1028 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1030 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
1031 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
1032 if (UNTAG_Bool(REGB3
)) {
1034 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1036 /* ../lib/standard/kernel.nit:235 */
1037 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
1038 /* ../lib/standard/collection/array.nit:272 */
1039 if (UNTAG_Bool(REGB2
)) {
1040 /* ../lib/standard/collection/array.nit:273 */
1041 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1042 if (UNTAG_Bool(REGB2
)) {
1043 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1045 /* ../lib/standard/collection/array.nit:718 */
1046 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB1
)];
1047 /* metamodel/inheritance.nit:181 */
1048 REGB2
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
1049 if (UNTAG_Bool(REGB2
)) {
1050 /* metamodel/inheritance.nit:182 */
1051 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1052 /* metamodel/inheritance.nit:183 */
1053 REGB2
= TAG_Bool(1);
1057 /* ../lib/standard/collection/array.nit:274 */
1059 /* ../lib/standard/kernel.nit:238 */
1060 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
1061 /* ../lib/standard/collection/array.nit:274 */
1064 /* ../lib/standard/collection/array.nit:272 */
1069 /* metamodel/inheritance.nit:186 */
1070 REGB1
= TAG_Bool(0);
1074 stack_frame_head
= fra
.me
.prev
;
1077 static const char LOCATE_metamodel___inheritance___MMLocalClass___has_global_property_by_name
[] = "inheritance::MMLocalClass::(abstractmetamodel::MMLocalClass::has_global_property_by_name)";
1078 val_t
metamodel___inheritance___MMLocalClass___has_global_property_by_name(val_t p0
, val_t p1
){
1079 struct {struct stack_frame_t me
; val_t MORE_REG
[8];} fra
;
1086 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1087 fra
.me
.file
= LOCATE_metamodel___inheritance
;
1089 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___has_global_property_by_name
;
1090 fra
.me
.has_broke
= 0;
1091 fra
.me
.REG_size
= 9;
1092 fra
.me
.nitni_local_ref_head
= NULL
;
1093 fra
.me
.REG
[0] = NIT_NULL
;
1094 fra
.me
.REG
[1] = NIT_NULL
;
1095 fra
.me
.REG
[2] = NIT_NULL
;
1096 fra
.me
.REG
[3] = NIT_NULL
;
1097 fra
.me
.REG
[4] = NIT_NULL
;
1098 fra
.me
.REG
[5] = NIT_NULL
;
1099 fra
.me
.REG
[6] = NIT_NULL
;
1100 fra
.me
.REG
[7] = NIT_NULL
;
1101 fra
.me
.REG
[8] = NIT_NULL
;
1104 /* metamodel/inheritance.nit:193 */
1105 REGB0
= CALL_metamodel___inheritance___MMLocalClass___computed_super_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1106 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1107 if (UNTAG_Bool(REGB0
)) {
1108 REGB0
= TAG_Bool(0);
1111 /* metamodel/inheritance.nit:196 */
1112 CALL_metamodel___inheritance___MMLocalClass___compute_super_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1113 /* metamodel/inheritance.nit:198 */
1114 REGB1
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra
.me
.REG
[0])!=NIT_NULL
);
1115 if (UNTAG_Bool(REGB1
)) {
1117 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_metamodel___inheritance
, 198);
1119 fra
.me
.REG
[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra
.me
.REG
[0]);
1120 REGB1
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1121 if (UNTAG_Bool(REGB1
)) {
1122 /* metamodel/inheritance.nit:199 */
1123 REGB1
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra
.me
.REG
[0])!=NIT_NULL
);
1124 if (UNTAG_Bool(REGB1
)) {
1126 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_metamodel___inheritance
, 199);
1128 fra
.me
.REG
[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra
.me
.REG
[0]);
1129 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1130 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1131 if (UNTAG_Bool(REGB1
)) {
1132 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 199);
1134 /* ../lib/standard/collection/array.nit:24 */
1135 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
1136 if (UNTAG_Bool(REGB1
)) {
1138 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1140 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
1141 /* metamodel/inheritance.nit:199 */
1143 REGB3
= TAG_Bool(IS_EQUAL_OO(REGB1
,REGB2
));
1144 if (UNTAG_Bool(REGB3
)) {
1146 /* ../lib/standard/kernel.nit:230 */
1147 REGB2
= TAG_Bool((REGB1
)==(REGB2
));
1148 /* metamodel/inheritance.nit:199 */
1154 /* metamodel/inheritance.nit:201 */
1155 REGB3
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra
.me
.REG
[0])!=NIT_NULL
);
1156 if (UNTAG_Bool(REGB3
)) {
1158 nit_abort("Uninitialized attribute %s", "_global_properties", LOCATE_metamodel___inheritance
, 201);
1160 fra
.me
.REG
[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____global_properties(fra
.me
.REG
[0]);
1161 /* metamodel/inheritance.nit:203 */
1162 REGB3
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra
.me
.REG
[0])!=NIT_NULL
);
1163 if (UNTAG_Bool(REGB3
)) {
1165 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_metamodel___inheritance
, 203);
1167 fra
.me
.REG
[3] = ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra
.me
.REG
[0]);
1168 REGB3
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1169 if (UNTAG_Bool(REGB3
)) {
1170 /* metamodel/inheritance.nit:204 */
1171 REGB3
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra
.me
.REG
[0])!=NIT_NULL
);
1172 if (UNTAG_Bool(REGB3
)) {
1174 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_metamodel___inheritance
, 204);
1176 fra
.me
.REG
[3] = ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra
.me
.REG
[0]);
1177 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1179 /* metamodel/inheritance.nit:206 */
1180 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
1181 fra
.me
.REG
[3] = fra
.me
.REG
[4];
1182 /* metamodel/inheritance.nit:207 */
1183 REGB3
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra
.me
.REG
[0])!=NIT_NULL
);
1184 if (UNTAG_Bool(REGB3
)) {
1186 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_metamodel___inheritance
, 207);
1188 fra
.me
.REG
[4] = ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra
.me
.REG
[0]);
1189 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1], fra
.me
.REG
[3]);
1191 /* metamodel/inheritance.nit:209 */
1192 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1193 fra
.me
.REG
[4] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1194 /* ../lib/standard/collection/array.nit:269 */
1196 /* ../lib/standard/collection/array.nit:270 */
1197 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1198 if (UNTAG_Bool(REGB2
)) {
1200 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1202 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1203 /* ../lib/standard/collection/array.nit:271 */
1204 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
1205 /* ../lib/standard/collection/array.nit:272 */
1207 /* ../lib/standard/collection/array.nit:24 */
1208 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1209 if (UNTAG_Bool(REGB2
)) {
1211 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1213 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1214 REGB1
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1215 if (UNTAG_Bool(REGB1
)) {
1217 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1219 /* ../lib/standard/kernel.nit:235 */
1220 REGB2
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB2
));
1221 /* ../lib/standard/collection/array.nit:272 */
1222 if (UNTAG_Bool(REGB2
)) {
1223 /* ../lib/standard/collection/array.nit:273 */
1224 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1225 if (UNTAG_Bool(REGB2
)) {
1226 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1228 /* ../lib/standard/collection/array.nit:718 */
1229 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB3
)];
1230 /* metamodel/inheritance.nit:210 */
1231 REGB2
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property_by_name(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[1]);
1232 if (UNTAG_Bool(REGB2
)) {
1233 /* metamodel/inheritance.nit:211 */
1234 fra
.me
.REG
[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___get_property_by_name(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[1]);
1235 /* metamodel/inheritance.nit:212 */
1236 REGB2
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
1237 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
1238 if (UNTAG_Bool(REGB2
)) {
1239 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[6]);
1241 /* metamodel/inheritance.nit:213 */
1242 REGB2
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1243 if (UNTAG_Bool(REGB2
)) {
1244 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1245 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
1246 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
1247 fra
.me
.REG
[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1248 REGB2
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[7],fra
.me
.REG
[8]));
1249 if (UNTAG_Bool(REGB2
)) {
1251 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[8]);
1254 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
1256 REGB1
= TAG_Bool(0);
1259 if (UNTAG_Bool(REGB2
)) {
1262 /* metamodel/inheritance.nit:214 */
1263 fra
.me
.REG
[8] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1264 fra
.me
.REG
[8] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
1265 fra
.me
.REG
[8] = CALL_standard___string___Object___to_s(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
1266 fra
.me
.REG
[8] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
1267 REGB2
= TAG_Char('@');
1268 REGB1
= TAG_Bool(IS_EQUAL_ON(REGB2
,fra
.me
.REG
[8]));
1269 if (UNTAG_Bool(REGB1
)) {
1271 REGB4
= TAG_Bool(fra
.me
.REG
[8]==NIT_NULL
);
1272 if (UNTAG_Bool(REGB4
)) {
1273 REGB4
= TAG_Bool(0);
1276 /* ../lib/standard/kernel.nit:381 */
1277 REGB2
= TAG_Bool((fra
.me
.REG
[8])==(REGB2
));
1278 /* metamodel/inheritance.nit:214 */
1282 if (UNTAG_Bool(REGB1
)) {
1285 /* metamodel/inheritance.nit:215 */
1286 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1287 if (UNTAG_Bool(REGB1
)) {
1288 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 215);
1290 REGB1
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1291 if (UNTAG_Bool(REGB1
)) {
1294 /* metamodel/inheritance.nit:216 */
1295 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1296 if (UNTAG_Bool(REGB1
)) {
1297 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 216);
1299 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1302 /* ../lib/standard/collection/array.nit:274 */
1304 /* ../lib/standard/kernel.nit:238 */
1305 REGB1
= TAG_Int(UNTAG_Int(REGB3
)+UNTAG_Int(REGB1
));
1306 /* ../lib/standard/collection/array.nit:274 */
1309 /* ../lib/standard/collection/array.nit:272 */
1314 /* metamodel/inheritance.nit:219 */
1315 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1316 if (UNTAG_Bool(REGB3
)) {
1317 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 219);
1319 /* ../lib/standard/collection/array.nit:24 */
1320 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1321 if (UNTAG_Bool(REGB3
)) {
1323 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1325 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1326 /* metamodel/inheritance.nit:219 */
1328 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB3
,REGB1
));
1329 if (UNTAG_Bool(REGB2
)) {
1331 /* ../lib/standard/kernel.nit:230 */
1332 REGB1
= TAG_Bool((REGB3
)==(REGB1
));
1333 /* metamodel/inheritance.nit:219 */
1339 stack_frame_head
= fra
.me
.prev
;
1342 static const char LOCATE_metamodel___inheritance___MMLocalClass___make_visible_an_inherited_global_property
[] = "inheritance::MMLocalClass::make_visible_an_inherited_global_property";
1343 void metamodel___inheritance___MMLocalClass___make_visible_an_inherited_global_property(val_t p0
, val_t p1
){
1344 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1347 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1348 fra
.me
.file
= LOCATE_metamodel___inheritance
;
1350 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___make_visible_an_inherited_global_property
;
1351 fra
.me
.has_broke
= 0;
1352 fra
.me
.REG_size
= 5;
1353 fra
.me
.nitni_local_ref_head
= NULL
;
1354 fra
.me
.REG
[0] = NIT_NULL
;
1355 fra
.me
.REG
[1] = NIT_NULL
;
1356 fra
.me
.REG
[2] = NIT_NULL
;
1357 fra
.me
.REG
[3] = NIT_NULL
;
1358 fra
.me
.REG
[4] = NIT_NULL
;
1361 /* metamodel/inheritance.nit:225 */
1362 REGB0
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra
.me
.REG
[0])!=NIT_NULL
);
1363 if (UNTAG_Bool(REGB0
)) {
1365 nit_abort("Uninitialized attribute %s", "_properties_by_name", LOCATE_metamodel___inheritance
, 225);
1367 fra
.me
.REG
[0] = ATTR_metamodel___abstractmetamodel___MMLocalClass____properties_by_name(fra
.me
.REG
[0]);
1368 /* metamodel/inheritance.nit:226 */
1369 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1370 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1371 /* metamodel/inheritance.nit:228 */
1372 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
1373 if (UNTAG_Bool(REGB0
)) {
1374 /* metamodel/inheritance.nit:229 */
1375 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
1377 /* metamodel/inheritance.nit:231 */
1378 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___init();
1379 fra
.me
.REG
[3] = fra
.me
.REG
[4];
1380 /* metamodel/inheritance.nit:232 */
1381 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2], fra
.me
.REG
[3]);
1383 /* metamodel/inheritance.nit:234 */
1384 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1385 stack_frame_head
= fra
.me
.prev
;
1388 static const char LOCATE_metamodel___inheritance___MMLocalClass___add_direct_parent
[] = "inheritance::MMLocalClass::add_direct_parent";
1389 void metamodel___inheritance___MMLocalClass___add_direct_parent(val_t p0
, val_t p1
){
1390 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1393 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1394 fra
.me
.file
= LOCATE_metamodel___inheritance
;
1396 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___add_direct_parent
;
1397 fra
.me
.has_broke
= 0;
1398 fra
.me
.REG_size
= 2;
1399 fra
.me
.nitni_local_ref_head
= NULL
;
1400 fra
.me
.REG
[0] = NIT_NULL
;
1401 fra
.me
.REG
[1] = NIT_NULL
;
1404 /* metamodel/inheritance.nit:240 */
1405 REGB0
= TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra
.me
.REG
[0])!=NIT_NULL
);
1406 if (UNTAG_Bool(REGB0
)) {
1408 nit_abort("Uninitialized attribute %s", "_direct_parents", LOCATE_metamodel___inheritance
, 240);
1410 fra
.me
.REG
[0] = ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra
.me
.REG
[0]);
1411 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1412 stack_frame_head
= fra
.me
.prev
;
1415 static const char LOCATE_metamodel___inheritance___MMLocalClass___computed_super_classes
[] = "inheritance::MMLocalClass::computed_super_classes";
1416 val_t
metamodel___inheritance___MMLocalClass___computed_super_classes(val_t p0
){
1417 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1421 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1422 fra
.me
.file
= LOCATE_metamodel___inheritance
;
1424 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___computed_super_classes
;
1425 fra
.me
.has_broke
= 0;
1426 fra
.me
.REG_size
= 2;
1427 fra
.me
.nitni_local_ref_head
= NULL
;
1428 fra
.me
.REG
[0] = NIT_NULL
;
1429 fra
.me
.REG
[1] = NIT_NULL
;
1431 /* metamodel/inheritance.nit:246 */
1432 fra
.me
.REG
[1] = ATTR_metamodel___abstractmetamodel___MMLocalClass____crhe(fra
.me
.REG
[0]);
1433 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1434 if (UNTAG_Bool(REGB0
)) {
1436 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1437 if (UNTAG_Bool(REGB1
)) {
1438 REGB1
= TAG_Bool(0);
1441 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1445 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1446 if (UNTAG_Bool(REGB0
)) {
1447 fra
.me
.REG
[0] = ATTR_metamodel___abstractmetamodel___MMLocalClass____cshe(fra
.me
.REG
[0]);
1448 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1449 if (UNTAG_Bool(REGB0
)) {
1451 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1452 if (UNTAG_Bool(REGB1
)) {
1453 REGB1
= TAG_Bool(0);
1456 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1460 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1462 REGB1
= TAG_Bool(0);
1467 stack_frame_head
= fra
.me
.prev
;
1470 static const char LOCATE_metamodel___inheritance___MMLocalClass___computed_ancestors
[] = "inheritance::MMLocalClass::computed_ancestors";
1471 val_t
metamodel___inheritance___MMLocalClass___computed_ancestors(val_t p0
){
1472 struct {struct stack_frame_t me
;} fra
;
1476 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1477 fra
.me
.file
= LOCATE_metamodel___inheritance
;
1479 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___computed_ancestors
;
1480 fra
.me
.has_broke
= 0;
1481 fra
.me
.REG_size
= 1;
1482 fra
.me
.nitni_local_ref_head
= NULL
;
1483 fra
.me
.REG
[0] = NIT_NULL
;
1485 /* metamodel/inheritance.nit:252 */
1486 fra
.me
.REG
[0] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra
.me
.REG
[0]);
1487 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1488 if (UNTAG_Bool(REGB0
)) {
1490 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1491 if (UNTAG_Bool(REGB1
)) {
1492 REGB1
= TAG_Bool(0);
1495 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1499 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1502 stack_frame_head
= fra
.me
.prev
;
1505 static const char LOCATE_metamodel___inheritance___MMLocalClass___ancestor_for
[] = "inheritance::MMLocalClass::ancestor_for";
1506 val_t
metamodel___inheritance___MMLocalClass___ancestor_for(val_t p0
, val_t p1
){
1507 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
1511 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1512 fra
.me
.file
= LOCATE_metamodel___inheritance
;
1514 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___ancestor_for
;
1515 fra
.me
.has_broke
= 0;
1516 fra
.me
.REG_size
= 6;
1517 fra
.me
.nitni_local_ref_head
= NULL
;
1518 fra
.me
.REG
[0] = NIT_NULL
;
1519 fra
.me
.REG
[1] = NIT_NULL
;
1520 fra
.me
.REG
[2] = NIT_NULL
;
1521 fra
.me
.REG
[3] = NIT_NULL
;
1522 fra
.me
.REG
[4] = NIT_NULL
;
1523 fra
.me
.REG
[5] = NIT_NULL
;
1526 /* metamodel/inheritance.nit:259 */
1527 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalClass___ancestors(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1528 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1529 if (UNTAG_Bool(REGB0
)) {
1531 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1532 if (UNTAG_Bool(REGB1
)) {
1533 REGB1
= TAG_Bool(0);
1536 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1540 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1541 if (UNTAG_Bool(REGB0
)) {
1543 nit_abort("Assert failed", NULL
, LOCATE_metamodel___inheritance
, 259);
1545 /* metamodel/inheritance.nit:261 */
1546 fra
.me
.REG
[2] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra
.me
.REG
[0]);
1547 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1548 if (UNTAG_Bool(REGB0
)) {
1549 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 261);
1551 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1552 if (UNTAG_Bool(REGB0
)) {
1553 /* metamodel/inheritance.nit:262 */
1554 fra
.me
.REG
[2] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra
.me
.REG
[0]);
1555 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1556 if (UNTAG_Bool(REGB0
)) {
1557 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 262);
1559 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1562 /* metamodel/inheritance.nit:264 */
1563 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1564 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1565 /* metamodel/inheritance.nit:265 */
1566 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1567 REGB0
= CALL_metamodel___partial_order___PartialOrderElement_____leq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1568 if (UNTAG_Bool(REGB0
)) {
1570 nit_abort("Assert failed", NULL
, LOCATE_metamodel___inheritance
, 265);
1572 /* metamodel/inheritance.nit:267 */
1573 fra
.me
.REG
[4] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra
.me
.REG
[0]);
1574 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1575 if (UNTAG_Bool(REGB0
)) {
1576 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 267);
1578 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1579 if (UNTAG_Bool(REGB0
)) {
1580 /* metamodel/inheritance.nit:268 */
1581 fra
.me
.REG
[4] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra
.me
.REG
[0]);
1582 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1583 if (UNTAG_Bool(REGB0
)) {
1584 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 268);
1586 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1588 /* metamodel/inheritance.nit:269 */
1589 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1590 fra
.me
.REG
[5] = ATTR_metamodel___abstractmetamodel___MMLocalClass____global(fra
.me
.REG
[0]);
1591 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[4],fra
.me
.REG
[5]));
1592 if (UNTAG_Bool(REGB0
)) {
1594 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1597 if (UNTAG_Bool(REGB0
)) {
1598 /* metamodel/inheritance.nit:270 */
1599 fra
.me
.REG
[5] = NEW_MMRefineAncestor_metamodel___inheritance___MMRefineAncestor___init(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1600 fra
.me
.REG
[3] = fra
.me
.REG
[5];
1602 /* metamodel/inheritance.nit:272 */
1603 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1604 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1605 fra
.me
.REG
[4] = NEW_MMSpecAncestor_metamodel___inheritance___MMSpecAncestor___init(fra
.me
.REG
[5], fra
.me
.REG
[4]);
1606 fra
.me
.REG
[3] = fra
.me
.REG
[4];
1609 /* metamodel/inheritance.nit:274 */
1610 fra
.me
.REG
[0] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra
.me
.REG
[0]);
1611 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1612 if (UNTAG_Bool(REGB0
)) {
1613 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 274);
1615 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
1616 /* metamodel/inheritance.nit:275 */
1617 fra
.me
.REG
[2] = fra
.me
.REG
[3];
1620 stack_frame_head
= fra
.me
.prev
;
1621 return fra
.me
.REG
[2];
1623 static const char LOCATE_metamodel___inheritance___MMLocalClass_____bra
[] = "inheritance::MMLocalClass::(abstractmetamodel::MMLocalClass::[])";
1624 val_t
metamodel___inheritance___MMLocalClass_____bra(val_t p0
, val_t p1
){
1625 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1628 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1629 fra
.me
.file
= LOCATE_metamodel___inheritance
;
1631 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass_____bra
;
1632 fra
.me
.has_broke
= 0;
1633 fra
.me
.REG_size
= 4;
1634 fra
.me
.nitni_local_ref_head
= NULL
;
1635 fra
.me
.REG
[0] = NIT_NULL
;
1636 fra
.me
.REG
[1] = NIT_NULL
;
1637 fra
.me
.REG
[2] = NIT_NULL
;
1638 fra
.me
.REG
[3] = NIT_NULL
;
1641 /* metamodel/inheritance.nit:280 */
1642 REGB0
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra
.me
.REG
[0])!=NIT_NULL
);
1643 if (UNTAG_Bool(REGB0
)) {
1645 nit_abort("Uninitialized attribute %s", "_local_property_by_global", LOCATE_metamodel___inheritance
, 280);
1647 fra
.me
.REG
[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra
.me
.REG
[0]);
1648 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1649 if (UNTAG_Bool(REGB0
)) {
1650 /* metamodel/inheritance.nit:281 */
1651 REGB0
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra
.me
.REG
[0])!=NIT_NULL
);
1652 if (UNTAG_Bool(REGB0
)) {
1654 nit_abort("Uninitialized attribute %s", "_local_property_by_global", LOCATE_metamodel___inheritance
, 281);
1656 fra
.me
.REG
[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra
.me
.REG
[0]);
1657 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1660 /* metamodel/inheritance.nit:282 */
1661 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1662 if (UNTAG_Bool(REGB0
)) {
1663 /* metamodel/inheritance.nit:283 */
1664 fra
.me
.REG
[3] = CALL_metamodel___inheritance___MMLocalClass___inherit_local_property(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1665 fra
.me
.REG
[2] = fra
.me
.REG
[3];
1668 /* metamodel/inheritance.nit:284 */
1669 REGB0
= CALL_metamodel___inheritance___MMLocalClass___computed_super_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1670 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1671 if (UNTAG_Bool(REGB0
)) {
1672 /* metamodel/inheritance.nit:285 */
1673 CALL_metamodel___inheritance___MMLocalClass___compute_super_classes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1674 /* metamodel/inheritance.nit:286 */
1675 CALL_metamodel___inheritance___MMLocalClass___computed_ancestors(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1676 /* metamodel/inheritance.nit:287 */
1677 CALL_metamodel___inheritance___MMLocalClass___inherit_global_properties(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1678 /* metamodel/inheritance.nit:288 */
1679 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1680 if (UNTAG_Bool(REGB0
)) {
1682 nit_abort("Assert failed", NULL
, LOCATE_metamodel___inheritance
, 288);
1684 /* metamodel/inheritance.nit:289 */
1685 fra
.me
.REG
[1] = CALL_metamodel___inheritance___MMLocalClass___inherit_local_property(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1686 fra
.me
.REG
[2] = fra
.me
.REG
[1];
1689 /* metamodel/inheritance.nit:291 */
1690 nit_abort("Aborted", NULL
, LOCATE_metamodel___inheritance
, 291);
1695 stack_frame_head
= fra
.me
.prev
;
1696 return fra
.me
.REG
[2];
1698 static const char LOCATE_metamodel___inheritance___MMLocalClass___add_default_any_class
[] = "inheritance::MMLocalClass::add_default_any_class";
1699 void metamodel___inheritance___MMLocalClass___add_default_any_class(val_t p0
, val_t p1
){
1700 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1706 static val_t once_value_1
; /* Once value */
1707 static val_t once_value_2
; /* Once value */
1708 static val_t once_value_5
; /* Once value */
1709 static val_t once_value_6
; /* Once value */
1710 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1711 fra
.me
.file
= LOCATE_metamodel___inheritance
;
1713 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___add_default_any_class
;
1714 fra
.me
.has_broke
= 0;
1715 fra
.me
.REG_size
= 5;
1716 fra
.me
.nitni_local_ref_head
= NULL
;
1717 fra
.me
.REG
[0] = NIT_NULL
;
1718 fra
.me
.REG
[1] = NIT_NULL
;
1719 fra
.me
.REG
[2] = NIT_NULL
;
1720 fra
.me
.REG
[3] = NIT_NULL
;
1721 fra
.me
.REG
[4] = NIT_NULL
;
1724 /* metamodel/inheritance.nit:299 */
1725 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1726 if (!once_value_1
) {
1727 if (!once_value_2
) {
1728 fra
.me
.REG
[3] = BOX_NativeString("Object");
1730 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1731 once_value_2
= fra
.me
.REG
[3];
1732 register_static_object(&once_value_2
);
1733 } else fra
.me
.REG
[3] = once_value_2
;
1734 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1735 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1736 once_value_1
= fra
.me
.REG
[3];
1737 register_static_object(&once_value_1
);
1738 } else fra
.me
.REG
[3] = once_value_1
;
1739 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1740 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
1741 if (UNTAG_Bool(REGB0
)) {
1743 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1746 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1747 if (UNTAG_Bool(REGB0
)) {
1748 /* metamodel/inheritance.nit:300 */
1749 REGB0
= TAG_Bool(0);
1750 /* metamodel/inheritance.nit:301 */
1751 REGB1
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1752 if (UNTAG_Bool(REGB1
)) {
1753 /* metamodel/inheritance.nit:302 */
1754 REGB1
= TAG_Bool(1);
1757 /* metamodel/inheritance.nit:303 */
1758 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1759 REGB1
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1760 if (UNTAG_Bool(REGB1
)) {
1761 /* metamodel/inheritance.nit:304 */
1762 REGB1
= TAG_Bool(1);
1764 /* ../lib/standard/collection/array.nit:266 */
1765 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1766 /* ../lib/standard/collection/array.nit:269 */
1768 /* ../lib/standard/collection/array.nit:270 */
1769 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1770 if (UNTAG_Bool(REGB2
)) {
1772 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1774 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1775 /* ../lib/standard/collection/array.nit:271 */
1776 fra
.me
.REG
[2] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
1777 /* ../lib/standard/collection/array.nit:272 */
1779 /* ../lib/standard/collection/array.nit:24 */
1780 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1781 if (UNTAG_Bool(REGB2
)) {
1783 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1785 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1786 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
1787 if (UNTAG_Bool(REGB3
)) {
1789 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1791 /* ../lib/standard/kernel.nit:235 */
1792 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
1793 /* ../lib/standard/collection/array.nit:272 */
1794 if (UNTAG_Bool(REGB2
)) {
1795 /* ../lib/standard/collection/array.nit:273 */
1796 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1797 if (UNTAG_Bool(REGB2
)) {
1798 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1800 /* ../lib/standard/collection/array.nit:718 */
1801 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB1
)];
1802 /* metamodel/inheritance.nit:306 */
1803 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1804 REGB2
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1805 if (UNTAG_Bool(REGB2
)) {
1806 /* metamodel/inheritance.nit:307 */
1807 REGB2
= TAG_Bool(0);
1809 /* metamodel/inheritance.nit:308 */
1812 /* ../lib/standard/collection/array.nit:274 */
1814 /* ../lib/standard/kernel.nit:238 */
1815 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
1816 /* ../lib/standard/collection/array.nit:274 */
1819 /* ../lib/standard/collection/array.nit:272 */
1827 /* metamodel/inheritance.nit:313 */
1828 if (UNTAG_Bool(REGB0
)) {
1829 /* metamodel/inheritance.nit:315 */
1830 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1831 if (!once_value_5
) {
1832 if (!once_value_6
) {
1833 fra
.me
.REG
[3] = BOX_NativeString("Pointer");
1835 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1836 once_value_6
= fra
.me
.REG
[3];
1837 register_static_object(&once_value_6
);
1838 } else fra
.me
.REG
[3] = once_value_6
;
1839 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1840 fra
.me
.REG
[3] = CALL_symbol___String___to_symbol(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1841 once_value_5
= fra
.me
.REG
[3];
1842 register_static_object(&once_value_5
);
1843 } else fra
.me
.REG
[3] = once_value_5
;
1844 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1845 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[3]));
1846 if (UNTAG_Bool(REGB0
)) {
1848 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1851 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1852 if (UNTAG_Bool(REGB0
)) {
1853 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1854 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1856 REGB1
= TAG_Bool(0);
1859 if (UNTAG_Bool(REGB0
)) {
1860 /* metamodel/inheritance.nit:316 */
1861 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1862 fra
.me
.REG
[3] = CALL_metamodel___inheritance___MMModule___type_any_extern(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1864 /* metamodel/inheritance.nit:318 */
1865 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1866 fra
.me
.REG
[2] = CALL_metamodel___inheritance___MMModule___type_any(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1867 fra
.me
.REG
[3] = fra
.me
.REG
[2];
1869 /* metamodel/inheritance.nit:320 */
1870 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1871 if (UNTAG_Bool(REGB0
)) {
1872 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 320);
1874 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1875 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1876 /* metamodel/inheritance.nit:321 */
1877 fra
.me
.REG
[3] = NEW_MMDefaultAncestor_metamodel___inheritance___MMDefaultAncestor___init(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1878 /* metamodel/inheritance.nit:322 */
1879 CALL_metamodel___inheritance___MMLocalClass___add_direct_parent(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1882 stack_frame_head
= fra
.me
.prev
;
1885 static const char LOCATE_metamodel___inheritance___MMLocalClass___add_super_classes
[] = "inheritance::MMLocalClass::add_super_classes";
1886 void metamodel___inheritance___MMLocalClass___add_super_classes(val_t p0
, val_t p1
){
1887 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
1893 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1894 fra
.me
.file
= LOCATE_metamodel___inheritance
;
1896 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___add_super_classes
;
1897 fra
.me
.has_broke
= 0;
1898 fra
.me
.REG_size
= 8;
1899 fra
.me
.nitni_local_ref_head
= NULL
;
1900 fra
.me
.REG
[0] = NIT_NULL
;
1901 fra
.me
.REG
[1] = NIT_NULL
;
1902 fra
.me
.REG
[2] = NIT_NULL
;
1903 fra
.me
.REG
[3] = NIT_NULL
;
1904 fra
.me
.REG
[4] = NIT_NULL
;
1905 fra
.me
.REG
[5] = NIT_NULL
;
1906 fra
.me
.REG
[6] = NIT_NULL
;
1907 fra
.me
.REG
[7] = NIT_NULL
;
1910 /* metamodel/inheritance.nit:330 */
1911 fra
.me
.REG
[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____crhe(fra
.me
.REG
[0]);
1912 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1913 if (UNTAG_Bool(REGB0
)) {
1915 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1916 if (UNTAG_Bool(REGB1
)) {
1917 REGB1
= TAG_Bool(0);
1920 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1924 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1925 if (UNTAG_Bool(REGB0
)) {
1927 nit_abort("Assert failed", NULL
, LOCATE_metamodel___inheritance
, 330);
1929 /* metamodel/inheritance.nit:331 */
1930 fra
.me
.REG
[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____crhe(fra
.me
.REG
[0]);
1931 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1932 if (UNTAG_Bool(REGB0
)) {
1933 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 331);
1935 fra
.me
.REG
[2] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1936 /* ../lib/standard/collection/array.nit:269 */
1938 /* ../lib/standard/collection/array.nit:270 */
1939 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
1940 if (UNTAG_Bool(REGB1
)) {
1942 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1944 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
1945 /* ../lib/standard/collection/array.nit:271 */
1946 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[2]);
1947 /* ../lib/standard/collection/array.nit:272 */
1949 /* ../lib/standard/collection/array.nit:24 */
1950 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
1951 if (UNTAG_Bool(REGB1
)) {
1953 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1955 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
1956 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1957 if (UNTAG_Bool(REGB2
)) {
1959 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1961 /* ../lib/standard/kernel.nit:235 */
1962 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1963 /* ../lib/standard/collection/array.nit:272 */
1964 if (UNTAG_Bool(REGB1
)) {
1965 /* ../lib/standard/collection/array.nit:273 */
1966 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1967 if (UNTAG_Bool(REGB1
)) {
1968 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1970 /* ../lib/standard/collection/array.nit:718 */
1971 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB0
)];
1972 /* metamodel/inheritance.nit:332 */
1973 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1974 fra
.me
.REG
[4] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1975 /* ../lib/standard/collection/array.nit:269 */
1977 /* ../lib/standard/collection/array.nit:270 */
1978 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1979 if (UNTAG_Bool(REGB2
)) {
1981 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1983 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1984 /* ../lib/standard/collection/array.nit:271 */
1985 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
1986 /* ../lib/standard/collection/array.nit:272 */
1988 /* ../lib/standard/collection/array.nit:24 */
1989 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
1990 if (UNTAG_Bool(REGB2
)) {
1992 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1994 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
1995 REGB3
= TAG_Bool(VAL_ISA(REGB2
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
1996 if (UNTAG_Bool(REGB3
)) {
1998 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2000 /* ../lib/standard/kernel.nit:235 */
2001 REGB2
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB2
));
2002 /* ../lib/standard/collection/array.nit:272 */
2003 if (UNTAG_Bool(REGB2
)) {
2004 /* ../lib/standard/collection/array.nit:273 */
2005 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2006 if (UNTAG_Bool(REGB2
)) {
2007 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
2009 /* ../lib/standard/collection/array.nit:718 */
2010 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB1
)];
2011 /* metamodel/inheritance.nit:333 */
2012 REGB2
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____mmmodule(fra
.me
.REG
[0])!=NIT_NULL
);
2013 if (UNTAG_Bool(REGB2
)) {
2015 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_metamodel___inheritance
, 333);
2017 fra
.me
.REG
[7] = ATTR_metamodel___abstractmetamodel___MMLocalClass____mmmodule(fra
.me
.REG
[0]);
2018 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7]);
2019 /* metamodel/inheritance.nit:334 */
2020 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
2021 /* ../lib/standard/collection/array.nit:274 */
2023 /* ../lib/standard/kernel.nit:238 */
2024 REGB2
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB2
));
2025 /* ../lib/standard/collection/array.nit:274 */
2028 /* ../lib/standard/collection/array.nit:272 */
2033 /* ../lib/standard/collection/array.nit:274 */
2035 /* ../lib/standard/kernel.nit:238 */
2036 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
2037 /* ../lib/standard/collection/array.nit:274 */
2040 /* ../lib/standard/collection/array.nit:272 */
2045 stack_frame_head
= fra
.me
.prev
;
2048 static const char LOCATE_metamodel___inheritance___MMLocalClass___add_explicit_classes
[] = "inheritance::MMLocalClass::add_explicit_classes";
2049 void metamodel___inheritance___MMLocalClass___add_explicit_classes(val_t p0
, val_t p1
){
2050 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2055 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2056 fra
.me
.file
= LOCATE_metamodel___inheritance
;
2058 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___add_explicit_classes
;
2059 fra
.me
.has_broke
= 0;
2060 fra
.me
.REG_size
= 4;
2061 fra
.me
.nitni_local_ref_head
= NULL
;
2062 fra
.me
.REG
[0] = NIT_NULL
;
2063 fra
.me
.REG
[1] = NIT_NULL
;
2064 fra
.me
.REG
[2] = NIT_NULL
;
2065 fra
.me
.REG
[3] = NIT_NULL
;
2068 /* metamodel/inheritance.nit:342 */
2069 REGB0
= TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra
.me
.REG
[0])!=NIT_NULL
);
2070 if (UNTAG_Bool(REGB0
)) {
2072 nit_abort("Uninitialized attribute %s", "_direct_parents", LOCATE_metamodel___inheritance
, 342);
2074 fra
.me
.REG
[0] = ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra
.me
.REG
[0]);
2075 /* ../lib/standard/collection/array.nit:269 */
2077 /* ../lib/standard/collection/array.nit:270 */
2078 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
2079 if (UNTAG_Bool(REGB1
)) {
2081 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
2083 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
2084 /* ../lib/standard/collection/array.nit:271 */
2085 fra
.me
.REG
[2] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
2086 /* ../lib/standard/collection/array.nit:272 */
2088 /* ../lib/standard/collection/array.nit:24 */
2089 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
2090 if (UNTAG_Bool(REGB1
)) {
2092 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
2094 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
2095 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2096 if (UNTAG_Bool(REGB2
)) {
2098 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2100 /* ../lib/standard/kernel.nit:235 */
2101 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2102 /* ../lib/standard/collection/array.nit:272 */
2103 if (UNTAG_Bool(REGB1
)) {
2104 /* ../lib/standard/collection/array.nit:273 */
2105 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2106 if (UNTAG_Bool(REGB1
)) {
2107 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
2109 /* ../lib/standard/collection/array.nit:718 */
2110 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB0
)];
2111 /* metamodel/inheritance.nit:343 */
2112 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMAncestor___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2113 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
2114 /* ../lib/standard/collection/array.nit:274 */
2116 /* ../lib/standard/kernel.nit:238 */
2117 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
2118 /* ../lib/standard/collection/array.nit:274 */
2121 /* ../lib/standard/collection/array.nit:272 */
2126 stack_frame_head
= fra
.me
.prev
;
2129 static const char LOCATE_metamodel___inheritance___MMLocalClass___compute_super_parents
[] = "inheritance::MMLocalClass::compute_super_parents";
2130 void metamodel___inheritance___MMLocalClass___compute_super_parents(val_t p0
, val_t p1
){
2131 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2136 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2137 fra
.me
.file
= LOCATE_metamodel___inheritance
;
2139 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___compute_super_parents
;
2140 fra
.me
.has_broke
= 0;
2141 fra
.me
.REG_size
= 3;
2142 fra
.me
.nitni_local_ref_head
= NULL
;
2143 fra
.me
.REG
[0] = NIT_NULL
;
2144 fra
.me
.REG
[1] = NIT_NULL
;
2145 fra
.me
.REG
[2] = NIT_NULL
;
2148 /* ../lib/standard/collection/array.nit:269 */
2150 /* ../lib/standard/collection/array.nit:270 */
2151 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
2152 if (UNTAG_Bool(REGB1
)) {
2154 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
2156 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
2157 /* ../lib/standard/collection/array.nit:271 */
2158 fra
.me
.REG
[0] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[1]);
2159 /* ../lib/standard/collection/array.nit:272 */
2161 /* ../lib/standard/collection/array.nit:24 */
2162 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
2163 if (UNTAG_Bool(REGB1
)) {
2165 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
2167 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
2168 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2169 if (UNTAG_Bool(REGB2
)) {
2171 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2173 /* ../lib/standard/kernel.nit:235 */
2174 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2175 /* ../lib/standard/collection/array.nit:272 */
2176 if (UNTAG_Bool(REGB1
)) {
2177 /* ../lib/standard/collection/array.nit:273 */
2178 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
2179 if (UNTAG_Bool(REGB1
)) {
2180 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
2182 /* ../lib/standard/collection/array.nit:718 */
2183 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB0
)];
2184 /* metamodel/inheritance.nit:351 */
2185 CALL_metamodel___inheritance___MMLocalClass___compute_super_classes(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2186 /* ../lib/standard/collection/array.nit:274 */
2188 /* ../lib/standard/kernel.nit:238 */
2189 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
2190 /* ../lib/standard/collection/array.nit:274 */
2193 /* ../lib/standard/collection/array.nit:272 */
2198 stack_frame_head
= fra
.me
.prev
;
2201 static const char LOCATE_metamodel___inheritance___MMLocalClass___build_ancestors
[] = "inheritance::MMLocalClass::build_ancestors";
2202 val_t
metamodel___inheritance___MMLocalClass___build_ancestors(val_t p0
){
2203 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
2208 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2209 fra
.me
.file
= LOCATE_metamodel___inheritance
;
2211 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___build_ancestors
;
2212 fra
.me
.has_broke
= 0;
2213 fra
.me
.REG_size
= 6;
2214 fra
.me
.nitni_local_ref_head
= NULL
;
2215 fra
.me
.REG
[0] = NIT_NULL
;
2216 fra
.me
.REG
[1] = NIT_NULL
;
2217 fra
.me
.REG
[2] = NIT_NULL
;
2218 fra
.me
.REG
[3] = NIT_NULL
;
2219 fra
.me
.REG
[4] = NIT_NULL
;
2220 fra
.me
.REG
[5] = NIT_NULL
;
2222 /* metamodel/inheritance.nit:358 */
2223 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___init();
2224 /* metamodel/inheritance.nit:360 */
2225 fra
.me
.REG
[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____crhe(fra
.me
.REG
[0]);
2226 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2227 if (UNTAG_Bool(REGB0
)) {
2229 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2230 if (UNTAG_Bool(REGB1
)) {
2231 REGB1
= TAG_Bool(0);
2234 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
2238 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2239 if (UNTAG_Bool(REGB0
)) {
2241 nit_abort("Assert failed", NULL
, LOCATE_metamodel___inheritance
, 360);
2243 /* metamodel/inheritance.nit:361 */
2244 fra
.me
.REG
[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____crhe(fra
.me
.REG
[0]);
2245 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2246 if (UNTAG_Bool(REGB0
)) {
2247 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 361);
2249 fra
.me
.REG
[2] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2250 /* ../lib/standard/collection/array.nit:269 */
2252 /* ../lib/standard/collection/array.nit:270 */
2253 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
2254 if (UNTAG_Bool(REGB1
)) {
2256 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
2258 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
2259 /* ../lib/standard/collection/array.nit:271 */
2260 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[2]);
2261 /* ../lib/standard/collection/array.nit:272 */
2263 /* ../lib/standard/collection/array.nit:24 */
2264 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
2265 if (UNTAG_Bool(REGB1
)) {
2267 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
2269 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
2270 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2271 if (UNTAG_Bool(REGB2
)) {
2273 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2275 /* ../lib/standard/kernel.nit:235 */
2276 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2277 /* ../lib/standard/collection/array.nit:272 */
2278 if (UNTAG_Bool(REGB1
)) {
2279 /* ../lib/standard/collection/array.nit:273 */
2280 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2281 if (UNTAG_Bool(REGB1
)) {
2282 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
2284 /* ../lib/standard/collection/array.nit:718 */
2285 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB0
)];
2286 /* metamodel/inheritance.nit:362 */
2287 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[4],fra
.me
.REG
[0]));
2288 if (UNTAG_Bool(REGB1
)) {
2290 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[0]);
2293 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
2294 if (UNTAG_Bool(REGB1
)) {
2296 nit_abort("Assert failed", NULL
, LOCATE_metamodel___inheritance
, 362);
2298 /* metamodel/inheritance.nit:363 */
2299 fra
.me
.REG
[4] = NEW_MMRefineAncestor_metamodel___inheritance___MMRefineAncestor___init(fra
.me
.REG
[0], fra
.me
.REG
[4]);
2300 /* metamodel/inheritance.nit:364 */
2301 CALL_metamodel___inheritance___MMAncestor___add_in(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
2302 /* ../lib/standard/collection/array.nit:274 */
2304 /* ../lib/standard/kernel.nit:238 */
2305 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
2306 /* ../lib/standard/collection/array.nit:274 */
2309 /* ../lib/standard/collection/array.nit:272 */
2314 /* metamodel/inheritance.nit:366 */
2315 REGB0
= TAG_Bool(ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra
.me
.REG
[0])!=NIT_NULL
);
2316 if (UNTAG_Bool(REGB0
)) {
2318 nit_abort("Uninitialized attribute %s", "_direct_parents", LOCATE_metamodel___inheritance
, 366);
2320 fra
.me
.REG
[3] = ATTR_metamodel___inheritance___MMLocalClass____direct_parents(fra
.me
.REG
[0]);
2321 /* ../lib/standard/collection/array.nit:269 */
2323 /* ../lib/standard/collection/array.nit:270 */
2324 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
2325 if (UNTAG_Bool(REGB1
)) {
2327 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
2329 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
2330 /* ../lib/standard/collection/array.nit:271 */
2331 fra
.me
.REG
[2] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
2332 /* ../lib/standard/collection/array.nit:272 */
2334 /* ../lib/standard/collection/array.nit:24 */
2335 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
2336 if (UNTAG_Bool(REGB1
)) {
2338 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
2340 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
2341 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2342 if (UNTAG_Bool(REGB2
)) {
2344 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2346 /* ../lib/standard/kernel.nit:235 */
2347 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2348 /* ../lib/standard/collection/array.nit:272 */
2349 if (UNTAG_Bool(REGB1
)) {
2350 /* ../lib/standard/collection/array.nit:273 */
2351 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2352 if (UNTAG_Bool(REGB1
)) {
2353 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
2355 /* ../lib/standard/collection/array.nit:718 */
2356 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB0
)];
2357 /* metamodel/inheritance.nit:367 */
2358 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMAncestor___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2359 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[5],fra
.me
.REG
[0]));
2360 if (UNTAG_Bool(REGB1
)) {
2362 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[0]);
2365 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
2366 if (UNTAG_Bool(REGB1
)) {
2368 nit_abort("Assert failed", NULL
, LOCATE_metamodel___inheritance
, 367);
2370 /* metamodel/inheritance.nit:368 */
2371 CALL_metamodel___inheritance___MMAncestor___add_in(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
2372 /* ../lib/standard/collection/array.nit:274 */
2374 /* ../lib/standard/kernel.nit:238 */
2375 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
2376 /* ../lib/standard/collection/array.nit:274 */
2379 /* ../lib/standard/collection/array.nit:272 */
2384 /* metamodel/inheritance.nit:370 */
2387 stack_frame_head
= fra
.me
.prev
;
2388 return fra
.me
.REG
[1];
2390 static const char LOCATE_metamodel___inheritance___MMLocalClass___group_ancestors
[] = "inheritance::MMLocalClass::group_ancestors";
2391 val_t
metamodel___inheritance___MMLocalClass___group_ancestors(val_t p0
, val_t p1
){
2392 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
2397 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2398 fra
.me
.file
= LOCATE_metamodel___inheritance
;
2400 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___group_ancestors
;
2401 fra
.me
.has_broke
= 0;
2402 fra
.me
.REG_size
= 7;
2403 fra
.me
.nitni_local_ref_head
= NULL
;
2404 fra
.me
.REG
[0] = NIT_NULL
;
2405 fra
.me
.REG
[1] = NIT_NULL
;
2406 fra
.me
.REG
[2] = NIT_NULL
;
2407 fra
.me
.REG
[3] = NIT_NULL
;
2408 fra
.me
.REG
[4] = NIT_NULL
;
2409 fra
.me
.REG
[5] = NIT_NULL
;
2410 fra
.me
.REG
[6] = NIT_NULL
;
2413 /* metamodel/inheritance.nit:377 */
2414 fra
.me
.REG
[0] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
2415 /* ../lib/standard/collection/array.nit:269 */
2417 /* ../lib/standard/collection/array.nit:270 */
2418 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
2419 if (UNTAG_Bool(REGB1
)) {
2421 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
2423 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
2424 /* ../lib/standard/collection/array.nit:271 */
2425 fra
.me
.REG
[2] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[1]);
2426 /* ../lib/standard/collection/array.nit:272 */
2428 /* ../lib/standard/collection/array.nit:24 */
2429 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
2430 if (UNTAG_Bool(REGB1
)) {
2432 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
2434 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
2435 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2436 if (UNTAG_Bool(REGB2
)) {
2438 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2440 /* ../lib/standard/kernel.nit:235 */
2441 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2442 /* ../lib/standard/collection/array.nit:272 */
2443 if (UNTAG_Bool(REGB1
)) {
2444 /* ../lib/standard/collection/array.nit:273 */
2445 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2446 if (UNTAG_Bool(REGB1
)) {
2447 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
2449 /* ../lib/standard/collection/array.nit:718 */
2450 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB0
)];
2451 /* metamodel/inheritance.nit:379 */
2452 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMAncestor___local_class(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2453 /* metamodel/inheritance.nit:383 */
2454 CALL_metamodel___inheritance___MMLocalClass___compute_ancestors(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2455 /* metamodel/inheritance.nit:384 */
2456 REGB1
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
2457 if (UNTAG_Bool(REGB1
)) {
2458 /* metamodel/inheritance.nit:385 */
2459 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
2461 /* metamodel/inheritance.nit:387 */
2462 fra
.me
.REG
[6] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
2463 fra
.me
.REG
[5] = fra
.me
.REG
[6];
2464 /* metamodel/inheritance.nit:388 */
2465 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4], fra
.me
.REG
[5]);
2467 /* metamodel/inheritance.nit:390 */
2468 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
2469 /* ../lib/standard/collection/array.nit:274 */
2471 /* ../lib/standard/kernel.nit:238 */
2472 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
2473 /* ../lib/standard/collection/array.nit:274 */
2476 /* ../lib/standard/collection/array.nit:272 */
2481 /* metamodel/inheritance.nit:392 */
2484 stack_frame_head
= fra
.me
.prev
;
2485 return fra
.me
.REG
[0];
2487 static const char LOCATE_metamodel___inheritance___MMLocalClass___merge_ancestors
[] = "inheritance::MMLocalClass::merge_ancestors";
2488 val_t
metamodel___inheritance___MMLocalClass___merge_ancestors(val_t p0
, val_t p1
){
2489 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2494 static val_t once_value_3
; /* Once value */
2495 static val_t once_value_4
; /* Once value */
2496 static val_t once_value_5
; /* Once value */
2497 static val_t once_value_6
; /* Once value */
2498 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2499 fra
.me
.file
= LOCATE_metamodel___inheritance
;
2501 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___merge_ancestors
;
2502 fra
.me
.has_broke
= 0;
2503 fra
.me
.REG_size
= 5;
2504 fra
.me
.nitni_local_ref_head
= NULL
;
2505 fra
.me
.REG
[0] = NIT_NULL
;
2506 fra
.me
.REG
[1] = NIT_NULL
;
2507 fra
.me
.REG
[2] = NIT_NULL
;
2508 fra
.me
.REG
[3] = NIT_NULL
;
2509 fra
.me
.REG
[4] = NIT_NULL
;
2512 /* metamodel/inheritance.nit:398 */
2513 fra
.me
.REG
[2] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
2514 /* metamodel/inheritance.nit:399 */
2515 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
2516 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[1])(fra
.me
.REG
[1], (&(fra
.me
)), ((fun_t
)OC_metamodel___inheritance___MMLocalClass___merge_ancestors_1
));
2517 /* ../lib/standard/collection/array.nit:24 */
2518 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
2519 if (UNTAG_Bool(REGB0
)) {
2521 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
2523 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
2524 /* metamodel/inheritance.nit:421 */
2526 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2527 if (UNTAG_Bool(REGB2
)) {
2529 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2531 /* ../lib/standard/kernel.nit:237 */
2532 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
2533 /* metamodel/inheritance.nit:421 */
2534 if (UNTAG_Bool(REGB1
)) {
2535 /* metamodel/inheritance.nit:422 */
2536 fra
.me
.REG
[2] = CALL_standard___file___Object___stderr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2538 fra
.me
.REG
[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1
);
2539 if (!once_value_3
) {
2540 fra
.me
.REG
[4] = BOX_NativeString("Fatal error: Incompatibles ancestors for ");
2541 REGB1
= TAG_Int(41);
2542 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
2543 once_value_3
= fra
.me
.REG
[4];
2544 register_static_object(&once_value_3
);
2545 } else fra
.me
.REG
[4] = once_value_3
;
2546 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2547 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2548 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2549 fra
.me
.REG
[4] = CALL_standard___string___Object___to_s(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2550 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2551 if (!once_value_4
) {
2552 fra
.me
.REG
[4] = BOX_NativeString(": ");
2554 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
2555 once_value_4
= fra
.me
.REG
[4];
2556 register_static_object(&once_value_4
);
2557 } else fra
.me
.REG
[4] = once_value_4
;
2558 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2559 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2560 if (!once_value_5
) {
2561 fra
.me
.REG
[4] = BOX_NativeString(", ");
2563 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
2564 once_value_5
= fra
.me
.REG
[4];
2565 register_static_object(&once_value_5
);
2566 } else fra
.me
.REG
[4] = once_value_5
;
2567 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2568 fra
.me
.REG
[4] = CALL_standard___string___Collection___join(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2569 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2570 if (!once_value_6
) {
2571 fra
.me
.REG
[4] = BOX_NativeString("\n");
2573 fra
.me
.REG
[4] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[4], REGB1
);
2574 once_value_6
= fra
.me
.REG
[4];
2575 register_static_object(&once_value_6
);
2576 } else fra
.me
.REG
[4] = once_value_6
;
2577 fra
.me
.REG
[4] = fra
.me
.REG
[4];
2578 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2579 fra
.me
.REG
[1] = CALL_standard___string___Object___to_s(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2580 CALL_standard___stream___OStream___write(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
2581 /* metamodel/inheritance.nit:423 */
2583 CALL_standard___kernel___Object___exit(fra
.me
.REG
[0])(fra
.me
.REG
[0], REGB1
);
2585 /* metamodel/inheritance.nit:425 */
2586 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2589 stack_frame_head
= fra
.me
.prev
;
2590 return fra
.me
.REG
[3];
2592 void OC_metamodel___inheritance___MMLocalClass___merge_ancestors_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
2593 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2599 /* metamodel/inheritance.nit:400 */
2600 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2601 fra
.me
.file
= LOCATE_metamodel___inheritance
;
2603 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___merge_ancestors
;
2604 fra
.me
.has_broke
= 0;
2605 fra
.me
.REG_size
= 4;
2606 fra
.me
.nitni_local_ref_head
= NULL
;
2607 fra
.me
.REG
[0] = NIT_NULL
;
2608 fra
.me
.REG
[1] = NIT_NULL
;
2609 fra
.me
.REG
[2] = NIT_NULL
;
2610 fra
.me
.REG
[3] = NIT_NULL
;
2611 fra
.me
.closure_ctx
= closctx_param
;
2612 fra
.me
.closure_funs
= CREG
;
2614 CREG
[0] = clos_fun0
;
2615 /* metamodel/inheritance.nit:401 */
2616 fra
.me
.REG
[1] = CALL_standard___collection___abstract_collection___Collection___iterator(closctx
->REG
[1])(closctx
->REG
[1]);
2617 /* metamodel/inheritance.nit:402 */
2618 REGB0
= TAG_Bool(1);
2619 /* metamodel/inheritance.nit:403 */
2621 REGB1
= CALL_standard___collection___abstract_collection___Iterator___is_ok(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2622 if (UNTAG_Bool(REGB1
)) {
2625 REGB2
= TAG_Bool(0);
2628 if (UNTAG_Bool(REGB1
)) {
2629 /* metamodel/inheritance.nit:405 */
2630 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___Iterator___item(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2631 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[0],fra
.me
.REG
[2]));
2632 if (UNTAG_Bool(REGB1
)) {
2634 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
2637 /* metamodel/inheritance.nit:406 */
2638 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___Iterator___item(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2639 REGB1
= CALL_standard___collection___abstract_collection___Collection___has(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[2]);
2640 /* metamodel/inheritance.nit:407 */
2641 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___Iterator___item(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2642 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
2643 if (UNTAG_Bool(REGB1
)) {
2644 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 407);
2646 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMAncestor___stype(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2647 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMAncestor___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2648 REGB1
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
2649 /* metamodel/inheritance.nit:409 */
2650 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Iterator___item(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2651 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[0],fra
.me
.REG
[3]));
2652 if (UNTAG_Bool(REGB1
)) {
2654 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
2657 if (UNTAG_Bool(REGB1
)) {
2658 REGB1
= TAG_Bool(1);
2660 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Iterator___item(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2661 REGB2
= CALL_standard___collection___abstract_collection___Collection___has(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[3]);
2664 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
2665 if (UNTAG_Bool(REGB1
)) {
2666 /* metamodel/inheritance.nit:410 */
2667 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Iterator___item(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2668 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2669 if (UNTAG_Bool(REGB1
)) {
2670 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 410);
2672 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMAncestor___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2673 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMAncestor___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2674 REGB1
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
2676 /* metamodel/inheritance.nit:409 */
2677 REGB2
= TAG_Bool(0);
2680 if (UNTAG_Bool(REGB1
)) {
2681 /* metamodel/inheritance.nit:411 */
2682 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
2683 /* metamodel/inheritance.nit:412 */
2684 REGB1
= TAG_Bool(0);
2687 /* metamodel/inheritance.nit:414 */
2688 CALL_standard___collection___abstract_collection___Iterator___next(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2690 /* metamodel/inheritance.nit:403 */
2695 /* metamodel/inheritance.nit:416 */
2696 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
2697 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2698 if (UNTAG_Bool(REGB0
)) {
2699 /* metamodel/inheritance.nit:417 */
2700 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[3])(closctx
->REG
[3], fra
.me
.REG
[0]);
2702 stack_frame_head
= fra
.me
.prev
;
2705 static const char LOCATE_metamodel___inheritance___MMLocalClass___inherit_local_property
[] = "inheritance::MMLocalClass::inherit_local_property";
2706 val_t
metamodel___inheritance___MMLocalClass___inherit_local_property(val_t p0
, val_t p1
){
2707 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
2712 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2713 fra
.me
.file
= LOCATE_metamodel___inheritance
;
2715 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalClass___inherit_local_property
;
2716 fra
.me
.has_broke
= 0;
2717 fra
.me
.REG_size
= 8;
2718 fra
.me
.nitni_local_ref_head
= NULL
;
2719 fra
.me
.REG
[0] = NIT_NULL
;
2720 fra
.me
.REG
[1] = NIT_NULL
;
2721 fra
.me
.REG
[2] = NIT_NULL
;
2722 fra
.me
.REG
[3] = NIT_NULL
;
2723 fra
.me
.REG
[4] = NIT_NULL
;
2724 fra
.me
.REG
[5] = NIT_NULL
;
2725 fra
.me
.REG
[6] = NIT_NULL
;
2726 fra
.me
.REG
[7] = NIT_NULL
;
2729 /* metamodel/inheritance.nit:433 */
2730 REGB0
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra
.me
.REG
[0])!=NIT_NULL
);
2731 if (UNTAG_Bool(REGB0
)) {
2733 nit_abort("Uninitialized attribute %s", "_local_property_by_global", LOCATE_metamodel___inheritance
, 433);
2735 fra
.me
.REG
[2] = ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra
.me
.REG
[0]);
2736 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
2737 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2738 if (UNTAG_Bool(REGB0
)) {
2740 nit_abort("Assert failed", NULL
, LOCATE_metamodel___inheritance
, 433);
2742 /* metamodel/inheritance.nit:437 */
2743 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___property_hierarchy(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2744 /* metamodel/inheritance.nit:438 */
2745 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2746 fra
.me
.REG
[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2747 /* metamodel/inheritance.nit:439 */
2748 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2750 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
2751 if (UNTAG_Bool(REGB2
)) {
2753 /* ../lib/standard/kernel.nit:230 */
2754 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
2755 /* metamodel/inheritance.nit:439 */
2758 if (UNTAG_Bool(REGB2
)) {
2759 /* metamodel/inheritance.nit:441 */
2760 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMGlobalProperty___intro(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
2762 /* ../lib/standard/collection/array.nit:24 */
2763 REGB2
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
2764 if (UNTAG_Bool(REGB2
)) {
2766 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
2768 REGB2
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
2769 /* metamodel/inheritance.nit:442 */
2771 REGB0
= TAG_Bool(IS_EQUAL_OO(REGB2
,REGB1
));
2772 if (UNTAG_Bool(REGB0
)) {
2774 /* ../lib/standard/kernel.nit:230 */
2775 REGB1
= TAG_Bool((REGB2
)==(REGB1
));
2776 /* metamodel/inheritance.nit:442 */
2779 if (UNTAG_Bool(REGB0
)) {
2780 /* metamodel/inheritance.nit:444 */
2781 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2782 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
2783 if (UNTAG_Bool(REGB0
)) {
2784 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 444);
2786 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
2787 fra
.me
.REG
[4] = fra
.me
.REG
[5];
2789 /* metamodel/inheritance.nit:448 */
2790 fra
.me
.REG
[5] = NEW_ArraySet_standard___collection___array___ArraySet___init();
2791 /* ../lib/standard/collection/array.nit:269 */
2793 /* ../lib/standard/collection/array.nit:270 */
2794 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
2795 if (UNTAG_Bool(REGB1
)) {
2797 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
2799 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
2800 /* ../lib/standard/collection/array.nit:271 */
2801 fra
.me
.REG
[6] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
2802 /* ../lib/standard/collection/array.nit:272 */
2804 /* ../lib/standard/collection/array.nit:24 */
2805 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
2806 if (UNTAG_Bool(REGB1
)) {
2808 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
2810 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
2811 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2812 if (UNTAG_Bool(REGB2
)) {
2814 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2816 /* ../lib/standard/kernel.nit:235 */
2817 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2818 /* ../lib/standard/collection/array.nit:272 */
2819 if (UNTAG_Bool(REGB1
)) {
2820 /* ../lib/standard/collection/array.nit:273 */
2821 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
2822 if (UNTAG_Bool(REGB1
)) {
2823 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
2825 /* ../lib/standard/collection/array.nit:718 */
2826 fra
.me
.REG
[7] = ((Nit_NativeArray
)fra
.me
.REG
[6])->val
[UNTAG_Int(REGB0
)];
2827 /* metamodel/inheritance.nit:450 */
2828 REGB1
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[1]);
2829 if (UNTAG_Bool(REGB1
)) {
2830 fra
.me
.REG
[7] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[7])(fra
.me
.REG
[7], fra
.me
.REG
[1]);
2831 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[7]);
2833 /* ../lib/standard/collection/array.nit:274 */
2835 /* ../lib/standard/kernel.nit:238 */
2836 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
2837 /* ../lib/standard/collection/array.nit:274 */
2840 /* ../lib/standard/collection/array.nit:272 */
2845 /* metamodel/inheritance.nit:453 */
2846 fra
.me
.REG
[5] = CALL_metamodel___partial_order___PartialOrder___select_smallests(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
2847 /* ../lib/standard/collection/array.nit:24 */
2848 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5])!=NIT_NULL
);
2849 if (UNTAG_Bool(REGB0
)) {
2851 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
2853 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[5]);
2854 /* metamodel/inheritance.nit:455 */
2856 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
2857 if (UNTAG_Bool(REGB2
)) {
2859 /* ../lib/standard/kernel.nit:230 */
2860 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
2861 /* metamodel/inheritance.nit:455 */
2864 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
2865 if (UNTAG_Bool(REGB2
)) {
2866 /* metamodel/inheritance.nit:456 */
2867 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2868 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMModule___context(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2869 CALL_metamodel___inheritance___MMContext___handle_property_conflict(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[5]);
2871 /* metamodel/inheritance.nit:458 */
2872 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___Collection___first(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
2873 fra
.me
.REG
[4] = fra
.me
.REG
[5];
2876 /* metamodel/inheritance.nit:468 */
2877 REGB2
= TAG_Bool(ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra
.me
.REG
[0])!=NIT_NULL
);
2878 if (UNTAG_Bool(REGB2
)) {
2880 nit_abort("Uninitialized attribute %s", "_local_property_by_global", LOCATE_metamodel___inheritance
, 468);
2882 fra
.me
.REG
[0] = ATTR_metamodel___abstractmetamodel___MMLocalClass____local_property_by_global(fra
.me
.REG
[0]);
2883 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[4]);
2884 /* metamodel/inheritance.nit:470 */
2887 stack_frame_head
= fra
.me
.prev
;
2888 return fra
.me
.REG
[4];
2890 static const char LOCATE_metamodel___inheritance___MMLocalProperty___inherit_global
[] = "inheritance::MMLocalProperty::inherit_global";
2891 void metamodel___inheritance___MMLocalProperty___inherit_global(val_t p0
, val_t p1
){
2892 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
2897 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2898 fra
.me
.file
= LOCATE_metamodel___inheritance
;
2900 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMLocalProperty___inherit_global
;
2901 fra
.me
.has_broke
= 0;
2902 fra
.me
.REG_size
= 6;
2903 fra
.me
.nitni_local_ref_head
= NULL
;
2904 fra
.me
.REG
[0] = NIT_NULL
;
2905 fra
.me
.REG
[1] = NIT_NULL
;
2906 fra
.me
.REG
[2] = NIT_NULL
;
2907 fra
.me
.REG
[3] = NIT_NULL
;
2908 fra
.me
.REG
[4] = NIT_NULL
;
2909 fra
.me
.REG
[5] = NIT_NULL
;
2912 /* metamodel/inheritance.nit:478 */
2913 CALL_metamodel___abstractmetamodel___MMLocalProperty___set_global(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
2914 /* metamodel/inheritance.nit:479 */
2915 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
2916 /* metamodel/inheritance.nit:480 */
2917 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2918 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2919 fra
.me
.REG
[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2920 /* ../lib/standard/collection/array.nit:269 */
2922 /* ../lib/standard/collection/array.nit:270 */
2923 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
2924 if (UNTAG_Bool(REGB1
)) {
2926 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
2928 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
2929 /* ../lib/standard/collection/array.nit:271 */
2930 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
2931 /* ../lib/standard/collection/array.nit:272 */
2933 /* ../lib/standard/collection/array.nit:24 */
2934 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
2935 if (UNTAG_Bool(REGB1
)) {
2937 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
2939 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
2940 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
2941 if (UNTAG_Bool(REGB2
)) {
2943 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
2945 /* ../lib/standard/kernel.nit:235 */
2946 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
2947 /* ../lib/standard/collection/array.nit:272 */
2948 if (UNTAG_Bool(REGB1
)) {
2949 /* ../lib/standard/collection/array.nit:273 */
2950 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
2951 if (UNTAG_Bool(REGB1
)) {
2952 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
2954 /* ../lib/standard/collection/array.nit:718 */
2955 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB0
)];
2956 /* metamodel/inheritance.nit:481 */
2957 REGB1
= CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
2958 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
2959 if (UNTAG_Bool(REGB1
)) {
2962 /* metamodel/inheritance.nit:482 */
2963 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
2964 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
2966 /* ../lib/standard/collection/array.nit:274 */
2968 /* ../lib/standard/kernel.nit:238 */
2969 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
2970 /* ../lib/standard/collection/array.nit:274 */
2973 /* ../lib/standard/collection/array.nit:272 */
2978 /* metamodel/inheritance.nit:484 */
2979 CALL_metamodel___abstractmetamodel___MMGlobalProperty___add_local_property(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0], fra
.me
.REG
[2]);
2980 stack_frame_head
= fra
.me
.prev
;
2983 static const char LOCATE_metamodel___inheritance___MMAncestor___add_in
[] = "inheritance::MMAncestor::add_in";
2984 void metamodel___inheritance___MMAncestor___add_in(val_t p0
, val_t p1
){
2985 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
2988 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2989 fra
.me
.file
= LOCATE_metamodel___inheritance
;
2991 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMAncestor___add_in
;
2992 fra
.me
.has_broke
= 0;
2993 fra
.me
.REG_size
= 3;
2994 fra
.me
.nitni_local_ref_head
= NULL
;
2995 fra
.me
.REG
[0] = NIT_NULL
;
2996 fra
.me
.REG
[1] = NIT_NULL
;
2997 fra
.me
.REG
[2] = NIT_NULL
;
3000 /* metamodel/inheritance.nit:492 */
3001 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3002 /* metamodel/inheritance.nit:493 */
3003 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMAncestor___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3004 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3005 CALL_metamodel___inheritance___MMLocalClass___compute_ancestors(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3006 /* metamodel/inheritance.nit:494 */
3007 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMAncestor___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3008 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3009 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMLocalClass___ancestors(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3010 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
3011 if (UNTAG_Bool(REGB0
)) {
3012 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 494);
3014 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___MapRead___values(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3015 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[2])(fra
.me
.REG
[2], (&(fra
.me
)), ((fun_t
)OC_metamodel___inheritance___MMAncestor___add_in_1
));
3016 stack_frame_head
= fra
.me
.prev
;
3019 void OC_metamodel___inheritance___MMAncestor___add_in_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
3020 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3026 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3027 fra
.me
.file
= LOCATE_metamodel___inheritance
;
3029 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMAncestor___add_in
;
3030 fra
.me
.has_broke
= 0;
3031 fra
.me
.REG_size
= 4;
3032 fra
.me
.nitni_local_ref_head
= NULL
;
3033 fra
.me
.REG
[0] = NIT_NULL
;
3034 fra
.me
.REG
[1] = NIT_NULL
;
3035 fra
.me
.REG
[2] = NIT_NULL
;
3036 fra
.me
.REG
[3] = NIT_NULL
;
3037 fra
.me
.closure_ctx
= closctx_param
;
3038 fra
.me
.closure_funs
= CREG
;
3040 CREG
[0] = clos_fun0
;
3041 /* metamodel/inheritance.nit:495 */
3042 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMAncestor___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3043 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMAncestor___stype(closctx
->REG
[0])(closctx
->REG
[0]);
3044 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3045 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3046 /* metamodel/inheritance.nit:496 */
3047 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMAncestor___stype(closctx
->REG
[0])(closctx
->REG
[0]);
3048 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___adapt_to(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
3049 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMAncestor___inheriter(closctx
->REG
[0])(closctx
->REG
[0]);
3050 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___mmmodule(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3051 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
3052 /* metamodel/inheritance.nit:497 */
3053 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3054 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMAncestor___inheriter(closctx
->REG
[0])(closctx
->REG
[0]);
3055 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3056 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[0],fra
.me
.REG
[2]));
3057 if (UNTAG_Bool(REGB0
)) {
3059 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
3062 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
3063 if (UNTAG_Bool(REGB0
)) {
3064 /* metamodel/inheritance.nit:498 */
3065 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___Collection___iterator(closctx
->REG
[1])(closctx
->REG
[1]);
3066 /* metamodel/inheritance.nit:499 */
3067 REGB0
= TAG_Bool(1);
3068 /* metamodel/inheritance.nit:500 */
3070 REGB1
= CALL_standard___collection___abstract_collection___Iterator___is_ok(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3071 if (UNTAG_Bool(REGB1
)) {
3074 REGB2
= TAG_Bool(0);
3077 if (UNTAG_Bool(REGB1
)) {
3078 /* metamodel/inheritance.nit:501 */
3079 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___Iterator___item(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3080 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
3081 if (UNTAG_Bool(REGB1
)) {
3082 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 501);
3084 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMAncestor___inheriter(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3085 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMAncestor___inheriter(closctx
->REG
[0])(closctx
->REG
[0]);
3086 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[0],fra
.me
.REG
[3]));
3087 if (UNTAG_Bool(REGB1
)) {
3089 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
3092 if (UNTAG_Bool(REGB1
)) {
3093 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Iterator___item(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3094 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
3095 if (UNTAG_Bool(REGB1
)) {
3096 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___inheritance
, 501);
3098 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMAncestor___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
3099 REGB1
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[1]));
3100 if (UNTAG_Bool(REGB1
)) {
3102 REGB2
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3106 REGB2
= TAG_Bool(0);
3109 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
3111 /* metamodel/inheritance.nit:502 */
3112 CALL_standard___collection___abstract_collection___Iterator___next(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3114 /* metamodel/inheritance.nit:500 */
3119 /* metamodel/inheritance.nit:504 */
3120 if (UNTAG_Bool(REGB0
)) {
3121 /* metamodel/inheritance.nit:505 */
3122 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMAncestor___inheriter(closctx
->REG
[0])(closctx
->REG
[0]);
3123 fra
.me
.REG
[1] = NEW_MMSpecAncestor_metamodel___inheritance___MMSpecAncestor___init(fra
.me
.REG
[2], fra
.me
.REG
[1]);
3124 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[1]);
3127 stack_frame_head
= fra
.me
.prev
;
3130 static const char LOCATE_metamodel___inheritance___MMImplicitLocalClass___init
[] = "inheritance::MMImplicitLocalClass::init";
3131 void metamodel___inheritance___MMImplicitLocalClass___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
3132 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_metamodel___inheritance___MMImplicitLocalClass
].i
;
3133 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
3136 if (init_table
[itpos0
]) return;
3137 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3138 fra
.me
.file
= LOCATE_metamodel___inheritance
;
3140 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMImplicitLocalClass___init
;
3141 fra
.me
.has_broke
= 0;
3142 fra
.me
.REG_size
= 6;
3143 fra
.me
.nitni_local_ref_head
= NULL
;
3144 fra
.me
.REG
[0] = NIT_NULL
;
3145 fra
.me
.REG
[1] = NIT_NULL
;
3146 fra
.me
.REG
[2] = NIT_NULL
;
3147 fra
.me
.REG
[3] = NIT_NULL
;
3148 fra
.me
.REG
[4] = NIT_NULL
;
3149 fra
.me
.REG
[5] = NIT_NULL
;
3153 /* metamodel/inheritance.nit:517 */
3154 fra
.me
.REG
[3] = fra
.me
.REG
[0];
3155 /* metamodel/inheritance.nit:519 */
3156 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
3157 /* metamodel/inheritance.nit:520 */
3158 fra
.me
.REG
[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3159 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
3160 CALL_metamodel___abstractmetamodel___MMLocalClass___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[5], REGB0
, init_table
);
3161 /* metamodel/inheritance.nit:521 */
3162 CALL_metamodel___abstractmetamodel___MMLocalClass___set_global(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3163 stack_frame_head
= fra
.me
.prev
;
3164 init_table
[itpos0
] = 1;
3167 static const char LOCATE_metamodel___inheritance___MMRefineAncestor___local_class
[] = "inheritance::MMRefineAncestor::(static_type::MMAncestor::local_class)";
3168 val_t
metamodel___inheritance___MMRefineAncestor___local_class(val_t p0
){
3169 struct {struct stack_frame_t me
;} fra
;
3172 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3173 fra
.me
.file
= LOCATE_metamodel___inheritance
;
3175 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMRefineAncestor___local_class
;
3176 fra
.me
.has_broke
= 0;
3177 fra
.me
.REG_size
= 1;
3178 fra
.me
.nitni_local_ref_head
= NULL
;
3179 fra
.me
.REG
[0] = NIT_NULL
;
3181 /* metamodel/inheritance.nit:527 */
3182 REGB0
= TAG_Bool(ATTR_metamodel___inheritance___MMRefineAncestor____local_class(fra
.me
.REG
[0])!=NIT_NULL
);
3183 if (UNTAG_Bool(REGB0
)) {
3185 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_metamodel___inheritance
, 527);
3187 fra
.me
.REG
[0] = ATTR_metamodel___inheritance___MMRefineAncestor____local_class(fra
.me
.REG
[0]);
3188 stack_frame_head
= fra
.me
.prev
;
3189 return fra
.me
.REG
[0];
3191 static const char LOCATE_metamodel___inheritance___MMRefineAncestor___init
[] = "inheritance::MMRefineAncestor::init";
3192 void metamodel___inheritance___MMRefineAncestor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
3193 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_metamodel___inheritance___MMRefineAncestor
].i
;
3194 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3197 if (init_table
[itpos1
]) return;
3198 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3199 fra
.me
.file
= LOCATE_metamodel___inheritance
;
3201 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMRefineAncestor___init
;
3202 fra
.me
.has_broke
= 0;
3203 fra
.me
.REG_size
= 4;
3204 fra
.me
.nitni_local_ref_head
= NULL
;
3205 fra
.me
.REG
[0] = NIT_NULL
;
3206 fra
.me
.REG
[1] = NIT_NULL
;
3207 fra
.me
.REG
[2] = NIT_NULL
;
3208 fra
.me
.REG
[3] = NIT_NULL
;
3212 /* metamodel/inheritance.nit:529 */
3213 fra
.me
.REG
[3] = fra
.me
.REG
[0];
3214 CALL_metamodel___static_type___MMAncestor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
3215 /* metamodel/inheritance.nit:531 */
3216 ATTR_metamodel___inheritance___MMRefineAncestor____local_class(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
3217 /* metamodel/inheritance.nit:532 */
3218 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3219 CALL_metamodel___static_type___MMAncestor___inheriter__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3220 /* metamodel/inheritance.nit:533 */
3221 REGB0
= TAG_Bool(ATTR_metamodel___inheritance___MMRefineAncestor____local_class(fra
.me
.REG
[3])!=NIT_NULL
);
3222 if (UNTAG_Bool(REGB0
)) {
3224 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_metamodel___inheritance
, 533);
3226 fra
.me
.REG
[1] = ATTR_metamodel___inheritance___MMRefineAncestor____local_class(fra
.me
.REG
[3]);
3227 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3228 CALL_metamodel___static_type___MMAncestor___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3229 stack_frame_head
= fra
.me
.prev
;
3230 init_table
[itpos1
] = 1;
3233 static const char LOCATE_metamodel___inheritance___MMSpecAncestor___local_class
[] = "inheritance::MMSpecAncestor::(static_type::MMAncestor::local_class)";
3234 val_t
metamodel___inheritance___MMSpecAncestor___local_class(val_t p0
){
3235 struct {struct stack_frame_t me
;} fra
;
3237 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3238 fra
.me
.file
= LOCATE_metamodel___inheritance
;
3240 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMSpecAncestor___local_class
;
3241 fra
.me
.has_broke
= 0;
3242 fra
.me
.REG_size
= 1;
3243 fra
.me
.nitni_local_ref_head
= NULL
;
3244 fra
.me
.REG
[0] = NIT_NULL
;
3246 /* metamodel/inheritance.nit:540 */
3247 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMAncestor___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3248 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3251 stack_frame_head
= fra
.me
.prev
;
3252 return fra
.me
.REG
[0];
3254 static const char LOCATE_metamodel___inheritance___MMSpecAncestor___init
[] = "inheritance::MMSpecAncestor::init";
3255 void metamodel___inheritance___MMSpecAncestor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
3256 int itpos2
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_metamodel___inheritance___MMSpecAncestor
].i
;
3257 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3259 if (init_table
[itpos2
]) return;
3260 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3261 fra
.me
.file
= LOCATE_metamodel___inheritance
;
3263 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMSpecAncestor___init
;
3264 fra
.me
.has_broke
= 0;
3265 fra
.me
.REG_size
= 4;
3266 fra
.me
.nitni_local_ref_head
= NULL
;
3267 fra
.me
.REG
[0] = NIT_NULL
;
3268 fra
.me
.REG
[1] = NIT_NULL
;
3269 fra
.me
.REG
[2] = NIT_NULL
;
3270 fra
.me
.REG
[3] = NIT_NULL
;
3274 /* metamodel/inheritance.nit:542 */
3275 fra
.me
.REG
[3] = fra
.me
.REG
[0];
3276 CALL_metamodel___static_type___MMAncestor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
3277 /* metamodel/inheritance.nit:544 */
3278 ATTR_metamodel___static_type___MMAncestor____inheriter(fra
.me
.REG
[3]) = fra
.me
.REG
[1];
3279 /* metamodel/inheritance.nit:545 */
3280 ATTR_metamodel___static_type___MMAncestor____stype(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
3281 stack_frame_head
= fra
.me
.prev
;
3282 init_table
[itpos2
] = 1;
3285 static const char LOCATE_metamodel___inheritance___MMDefaultAncestor___local_class
[] = "inheritance::MMDefaultAncestor::(static_type::MMAncestor::local_class)";
3286 val_t
metamodel___inheritance___MMDefaultAncestor___local_class(val_t p0
){
3287 struct {struct stack_frame_t me
;} fra
;
3289 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3290 fra
.me
.file
= LOCATE_metamodel___inheritance
;
3292 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMDefaultAncestor___local_class
;
3293 fra
.me
.has_broke
= 0;
3294 fra
.me
.REG_size
= 1;
3295 fra
.me
.nitni_local_ref_head
= NULL
;
3296 fra
.me
.REG
[0] = NIT_NULL
;
3298 /* metamodel/inheritance.nit:551 */
3299 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMAncestor___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3300 fra
.me
.REG
[0] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
3303 stack_frame_head
= fra
.me
.prev
;
3304 return fra
.me
.REG
[0];
3306 static const char LOCATE_metamodel___inheritance___MMDefaultAncestor___init
[] = "inheritance::MMDefaultAncestor::init";
3307 void metamodel___inheritance___MMDefaultAncestor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
3308 int itpos3
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_metamodel___inheritance___MMDefaultAncestor
].i
;
3309 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
3311 if (init_table
[itpos3
]) return;
3312 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
3313 fra
.me
.file
= LOCATE_metamodel___inheritance
;
3315 fra
.me
.meth
= LOCATE_metamodel___inheritance___MMDefaultAncestor___init
;
3316 fra
.me
.has_broke
= 0;
3317 fra
.me
.REG_size
= 4;
3318 fra
.me
.nitni_local_ref_head
= NULL
;
3319 fra
.me
.REG
[0] = NIT_NULL
;
3320 fra
.me
.REG
[1] = NIT_NULL
;
3321 fra
.me
.REG
[2] = NIT_NULL
;
3322 fra
.me
.REG
[3] = NIT_NULL
;
3326 /* metamodel/inheritance.nit:553 */
3327 fra
.me
.REG
[3] = fra
.me
.REG
[0];
3328 CALL_metamodel___static_type___MMAncestor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
3329 /* metamodel/inheritance.nit:555 */
3330 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
3331 CALL_metamodel___static_type___MMAncestor___inheriter__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
3332 /* metamodel/inheritance.nit:556 */
3333 CALL_metamodel___static_type___MMAncestor___stype__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
3334 stack_frame_head
= fra
.me
.prev
;
3335 init_table
[itpos3
] = 1;