ni: fix isa checks with new module names and updates c_src accordingly
[nit.git] / c_src / metamodel___static_type._sep.c
1 /* This C file is generated by NIT to compile module metamodel___static_type. */
2 #include "metamodel___static_type._sep.h"
3 val_t metamodel___static_type___MMLocalClass___get_type(val_t p0){
4 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5 val_t REGB0;
6 val_t REGB1;
7 val_t tmp;
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_metamodel___static_type;
10 fra.me.line = 27;
11 fra.me.meth = LOCATE_metamodel___static_type___MMLocalClass___get_type;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 2;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[1] = NIT_NULL;
16 fra.me.REG[0] = p0;
17 /* ./metamodel//static_type.nit:30 */
18 fra.me.REG[1] = ATTR_metamodel___static_type___MMLocalClass____base_type_cache(fra.me.REG[0]);
19 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20 if (UNTAG_Bool(REGB0)) {
21 } else {
22 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23 if (UNTAG_Bool(REGB1)) {
24 REGB1 = TAG_Bool(false);
25 REGB0 = REGB1;
26 } else {
27 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
28 REGB0 = REGB1;
29 }
30 }
31 if (UNTAG_Bool(REGB0)) {
32 fra.me.REG[1] = NEW_MMTypeSimpleClass_metamodel___static_type___MMTypeSimpleClass___init(fra.me.REG[0]);
33 ATTR_metamodel___static_type___MMLocalClass____base_type_cache(fra.me.REG[0]) = fra.me.REG[1];
34 }
35 /* ./metamodel//static_type.nit:31 */
36 fra.me.REG[0] = ATTR_metamodel___static_type___MMLocalClass____base_type_cache(fra.me.REG[0]);
37 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
38 if (UNTAG_Bool(REGB0)) {
39 } else {
40 nit_abort("Cast failed", NULL, LOCATE_metamodel___static_type, 31);
41 }
42 goto label1;
43 label1: while(0);
44 stack_frame_head = fra.me.prev;
45 return fra.me.REG[0];
46 }
47 void metamodel___static_type___MMLocalClass___add_ancestor(val_t p0, val_t p1){
48 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
49 val_t REGB0;
50 val_t REGB1;
51 val_t tmp;
52 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
53 fra.me.file = LOCATE_metamodel___static_type;
54 fra.me.line = 34;
55 fra.me.meth = LOCATE_metamodel___static_type___MMLocalClass___add_ancestor;
56 fra.me.has_broke = 0;
57 fra.me.REG_size = 4;
58 fra.me.REG[0] = NIT_NULL;
59 fra.me.REG[1] = NIT_NULL;
60 fra.me.REG[2] = NIT_NULL;
61 fra.me.REG[3] = NIT_NULL;
62 fra.me.REG[0] = p0;
63 fra.me.REG[1] = p1;
64 /* ./metamodel//static_type.nit:37 */
65 fra.me.REG[2] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra.me.REG[0]);
66 fra.me.REG[3] = CALL_metamodel___static_type___MMAncestor___local_class(fra.me.REG[1])(fra.me.REG[1]);
67 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
68 if (UNTAG_Bool(REGB0)) {
69 nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 37);
70 }
71 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
72 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
73 if (UNTAG_Bool(REGB0)) {
74 } else {
75 nit_abort("Assert failed", NULL, LOCATE_metamodel___static_type, 37);
76 }
77 /* ./metamodel//static_type.nit:38 */
78 fra.me.REG[3] = CALL_metamodel___static_type___MMAncestor___local_class(fra.me.REG[1])(fra.me.REG[1]);
79 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[0]));
80 if (UNTAG_Bool(REGB0)) {
81 } else {
82 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
83 REGB0 = REGB1;
84 }
85 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
86 if (UNTAG_Bool(REGB0)) {
87 } else {
88 nit_abort("Assert failed", NULL, LOCATE_metamodel___static_type, 38);
89 }
90 /* ./metamodel//static_type.nit:39 */
91 fra.me.REG[0] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra.me.REG[0]);
92 fra.me.REG[3] = CALL_metamodel___static_type___MMAncestor___local_class(fra.me.REG[1])(fra.me.REG[1]);
93 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
94 if (UNTAG_Bool(REGB0)) {
95 nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 39);
96 }
97 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[1]);
98 stack_frame_head = fra.me.prev;
99 return;
100 }
101 val_t metamodel___static_type___MMLocalClass___ancestors(val_t p0){
102 struct {struct stack_frame_t me;} fra;
103 val_t tmp;
104 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
105 fra.me.file = LOCATE_metamodel___static_type;
106 fra.me.line = 42;
107 fra.me.meth = LOCATE_metamodel___static_type___MMLocalClass___ancestors;
108 fra.me.has_broke = 0;
109 fra.me.REG_size = 1;
110 fra.me.REG[0] = NIT_NULL;
111 fra.me.REG[0] = p0;
112 /* ./metamodel//static_type.nit:42 */
113 fra.me.REG[0] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra.me.REG[0]);
114 stack_frame_head = fra.me.prev;
115 return fra.me.REG[0];
116 }
117 val_t metamodel___static_type___MMLocalClass___ancestor(val_t p0, val_t p1){
118 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
119 val_t REGB0;
120 val_t tmp;
121 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
122 fra.me.file = LOCATE_metamodel___static_type;
123 fra.me.line = 45;
124 fra.me.meth = LOCATE_metamodel___static_type___MMLocalClass___ancestor;
125 fra.me.has_broke = 0;
126 fra.me.REG_size = 2;
127 fra.me.REG[0] = NIT_NULL;
128 fra.me.REG[1] = NIT_NULL;
129 fra.me.REG[0] = p0;
130 fra.me.REG[1] = p1;
131 /* ./metamodel//static_type.nit:48 */
132 fra.me.REG[0] = ATTR_metamodel___static_type___MMLocalClass____ancestors(fra.me.REG[0]);
133 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
134 if (UNTAG_Bool(REGB0)) {
135 nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 48);
136 }
137 fra.me.REG[1] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
138 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
139 if (UNTAG_Bool(REGB0)) {
140 nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 48);
141 }
142 fra.me.REG[1] = CALL_metamodel___static_type___MMAncestor___stype(fra.me.REG[1])(fra.me.REG[1]);
143 goto label1;
144 label1: while(0);
145 stack_frame_head = fra.me.prev;
146 return fra.me.REG[1];
147 }
148 val_t metamodel___static_type___MMLocalProperty___signature(val_t p0){
149 struct {struct stack_frame_t me;} fra;
150 val_t tmp;
151 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
152 fra.me.file = LOCATE_metamodel___static_type;
153 fra.me.line = 53;
154 fra.me.meth = LOCATE_metamodel___static_type___MMLocalProperty___signature;
155 fra.me.has_broke = 0;
156 fra.me.REG_size = 1;
157 fra.me.REG[0] = NIT_NULL;
158 fra.me.REG[0] = p0;
159 /* ./metamodel//static_type.nit:53 */
160 fra.me.REG[0] = ATTR_metamodel___static_type___MMLocalProperty____signature(fra.me.REG[0]);
161 stack_frame_head = fra.me.prev;
162 return fra.me.REG[0];
163 }
164 void metamodel___static_type___MMLocalProperty___signature__eq(val_t p0, val_t p1){
165 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
166 val_t tmp;
167 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
168 fra.me.file = LOCATE_metamodel___static_type;
169 fra.me.line = 53;
170 fra.me.meth = LOCATE_metamodel___static_type___MMLocalProperty___signature__eq;
171 fra.me.has_broke = 0;
172 fra.me.REG_size = 2;
173 fra.me.REG[0] = NIT_NULL;
174 fra.me.REG[1] = NIT_NULL;
175 fra.me.REG[0] = p0;
176 fra.me.REG[1] = p1;
177 /* ./metamodel//static_type.nit:53 */
178 ATTR_metamodel___static_type___MMLocalProperty____signature(fra.me.REG[0]) = fra.me.REG[1];
179 stack_frame_head = fra.me.prev;
180 return;
181 }
182 val_t metamodel___static_type___MMLocalProperty___signature_for(val_t p0, val_t p1){
183 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
184 val_t REGB0;
185 val_t REGB1;
186 val_t tmp;
187 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
188 fra.me.file = LOCATE_metamodel___static_type;
189 fra.me.line = 58;
190 fra.me.meth = LOCATE_metamodel___static_type___MMLocalProperty___signature_for;
191 fra.me.has_broke = 0;
192 fra.me.REG_size = 4;
193 fra.me.REG[0] = NIT_NULL;
194 fra.me.REG[1] = NIT_NULL;
195 fra.me.REG[2] = NIT_NULL;
196 fra.me.REG[3] = NIT_NULL;
197 fra.me.REG[0] = p0;
198 fra.me.REG[1] = p1;
199 /* ./metamodel//static_type.nit:60 */
200 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
201 fra.me.REG[2] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[2])(fra.me.REG[2]);
202 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[2]));
203 if (UNTAG_Bool(REGB0)) {
204 } else {
205 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
206 REGB0 = REGB1;
207 }
208 if (UNTAG_Bool(REGB0)) {
209 fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
210 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
211 if (UNTAG_Bool(REGB0)) {
212 } else {
213 nit_abort("Cast failed", NULL, LOCATE_metamodel___static_type, 60);
214 }
215 goto label1;
216 }
217 /* ./metamodel//static_type.nit:62 */
218 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
219 if (UNTAG_Bool(REGB0)) {
220 } else {
221 nit_abort("Uninitialized attribute %s", "_signatures_cache", LOCATE_metamodel___static_type, 62);
222 }
223 fra.me.REG[3] = ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]);
224 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
225 if (UNTAG_Bool(REGB0)) {
226 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
227 if (UNTAG_Bool(REGB0)) {
228 } else {
229 nit_abort("Uninitialized attribute %s", "_signatures_cache", LOCATE_metamodel___static_type, 62);
230 }
231 fra.me.REG[3] = ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]);
232 fra.me.REG[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
233 fra.me.REG[2] = fra.me.REG[3];
234 goto label1;
235 }
236 /* ./metamodel//static_type.nit:64 */
237 fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
238 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
239 if (UNTAG_Bool(REGB0)) {
240 nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 64);
241 }
242 fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
243 /* ./metamodel//static_type.nit:65 */
244 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
245 if (UNTAG_Bool(REGB0)) {
246 } else {
247 nit_abort("Uninitialized attribute %s", "_signatures_cache", LOCATE_metamodel___static_type, 65);
248 }
249 fra.me.REG[0] = ATTR_metamodel___static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]);
250 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
251 /* ./metamodel//static_type.nit:66 */
252 fra.me.REG[2] = fra.me.REG[3];
253 goto label1;
254 label1: while(0);
255 stack_frame_head = fra.me.prev;
256 return fra.me.REG[2];
257 }
258 val_t metamodel___static_type___MMParam___mmtype(val_t p0){
259 struct {struct stack_frame_t me;} fra;
260 val_t REGB0;
261 val_t tmp;
262 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
263 fra.me.file = LOCATE_metamodel___static_type;
264 fra.me.line = 71;
265 fra.me.meth = LOCATE_metamodel___static_type___MMParam___mmtype;
266 fra.me.has_broke = 0;
267 fra.me.REG_size = 1;
268 fra.me.REG[0] = NIT_NULL;
269 fra.me.REG[0] = p0;
270 /* ./metamodel//static_type.nit:71 */
271 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMParam____mmtype(fra.me.REG[0])!=NIT_NULL);
272 if (UNTAG_Bool(REGB0)) {
273 } else {
274 nit_abort("Uninitialized attribute %s", "_mmtype", LOCATE_metamodel___static_type, 71);
275 }
276 fra.me.REG[0] = ATTR_metamodel___static_type___MMParam____mmtype(fra.me.REG[0]);
277 stack_frame_head = fra.me.prev;
278 return fra.me.REG[0];
279 }
280 val_t metamodel___static_type___MMParam___name(val_t p0){
281 struct {struct stack_frame_t me;} fra;
282 val_t REGB0;
283 val_t tmp;
284 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
285 fra.me.file = LOCATE_metamodel___static_type;
286 fra.me.line = 72;
287 fra.me.meth = LOCATE_metamodel___static_type___MMParam___name;
288 fra.me.has_broke = 0;
289 fra.me.REG_size = 1;
290 fra.me.REG[0] = NIT_NULL;
291 fra.me.REG[0] = p0;
292 /* ./metamodel//static_type.nit:72 */
293 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMParam____name(fra.me.REG[0])!=NIT_NULL);
294 if (UNTAG_Bool(REGB0)) {
295 } else {
296 nit_abort("Uninitialized attribute %s", "_name", LOCATE_metamodel___static_type, 72);
297 }
298 fra.me.REG[0] = ATTR_metamodel___static_type___MMParam____name(fra.me.REG[0]);
299 stack_frame_head = fra.me.prev;
300 return fra.me.REG[0];
301 }
302 void metamodel___static_type___MMParam___init(val_t p0, val_t p1, val_t p2, int* init_table){
303 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMParam].i;
304 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
305 val_t tmp;
306 if (init_table[itpos0]) return;
307 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
308 fra.me.file = LOCATE_metamodel___static_type;
309 fra.me.line = 74;
310 fra.me.meth = LOCATE_metamodel___static_type___MMParam___init;
311 fra.me.has_broke = 0;
312 fra.me.REG_size = 3;
313 fra.me.REG[0] = NIT_NULL;
314 fra.me.REG[1] = NIT_NULL;
315 fra.me.REG[2] = NIT_NULL;
316 fra.me.REG[0] = p0;
317 fra.me.REG[1] = p1;
318 fra.me.REG[2] = p2;
319 /* ./metamodel//static_type.nit:76 */
320 ATTR_metamodel___static_type___MMParam____mmtype(fra.me.REG[0]) = fra.me.REG[1];
321 /* ./metamodel//static_type.nit:77 */
322 ATTR_metamodel___static_type___MMParam____name(fra.me.REG[0]) = fra.me.REG[2];
323 stack_frame_head = fra.me.prev;
324 init_table[itpos0] = 1;
325 return;
326 }
327 val_t metamodel___static_type___MMParam___to_s(val_t p0){
328 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
329 val_t REGB0;
330 val_t tmp;
331 static val_t once_value_1; /* Once value */
332 static val_t once_value_2; /* Once value */
333 static val_t once_value_3; /* Once value */
334 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
335 fra.me.file = LOCATE_metamodel___static_type;
336 fra.me.line = 80;
337 fra.me.meth = LOCATE_metamodel___static_type___MMParam___to_s;
338 fra.me.has_broke = 0;
339 fra.me.REG_size = 3;
340 fra.me.REG[0] = NIT_NULL;
341 fra.me.REG[1] = NIT_NULL;
342 fra.me.REG[2] = NIT_NULL;
343 fra.me.REG[0] = p0;
344 /* ./metamodel//static_type.nit:80 */
345 REGB0 = TAG_Int(5);
346 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
347 if (!once_value_1) {
348 fra.me.REG[2] = BOX_NativeString("");
349 REGB0 = TAG_Int(0);
350 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
351 once_value_1 = fra.me.REG[2];
352 register_static_object(&once_value_1);
353 } else fra.me.REG[2] = once_value_1;
354 fra.me.REG[2] = fra.me.REG[2];
355 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
356 fra.me.REG[2] = CALL_metamodel___static_type___MMParam___name(fra.me.REG[0])(fra.me.REG[0]);
357 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
358 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
359 if (!once_value_2) {
360 fra.me.REG[2] = BOX_NativeString(": ");
361 REGB0 = TAG_Int(2);
362 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
363 once_value_2 = fra.me.REG[2];
364 register_static_object(&once_value_2);
365 } else fra.me.REG[2] = once_value_2;
366 fra.me.REG[2] = fra.me.REG[2];
367 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
368 fra.me.REG[0] = CALL_metamodel___static_type___MMParam___mmtype(fra.me.REG[0])(fra.me.REG[0]);
369 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
370 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
371 if (!once_value_3) {
372 fra.me.REG[0] = BOX_NativeString("");
373 REGB0 = TAG_Int(0);
374 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
375 once_value_3 = fra.me.REG[0];
376 register_static_object(&once_value_3);
377 } else fra.me.REG[0] = once_value_3;
378 fra.me.REG[0] = fra.me.REG[0];
379 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
380 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
381 goto label4;
382 label4: while(0);
383 stack_frame_head = fra.me.prev;
384 return fra.me.REG[1];
385 }
386 val_t metamodel___static_type___MMSignature___recv(val_t p0){
387 struct {struct stack_frame_t me;} fra;
388 val_t REGB0;
389 val_t tmp;
390 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
391 fra.me.file = LOCATE_metamodel___static_type;
392 fra.me.line = 85;
393 fra.me.meth = LOCATE_metamodel___static_type___MMSignature___recv;
394 fra.me.has_broke = 0;
395 fra.me.REG_size = 1;
396 fra.me.REG[0] = NIT_NULL;
397 fra.me.REG[0] = p0;
398 /* ./metamodel//static_type.nit:85 */
399 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____recv(fra.me.REG[0])!=NIT_NULL);
400 if (UNTAG_Bool(REGB0)) {
401 } else {
402 nit_abort("Uninitialized attribute %s", "_recv", LOCATE_metamodel___static_type, 85);
403 }
404 fra.me.REG[0] = ATTR_metamodel___static_type___MMSignature____recv(fra.me.REG[0]);
405 stack_frame_head = fra.me.prev;
406 return fra.me.REG[0];
407 }
408 val_t metamodel___static_type___MMSignature___params(val_t p0){
409 struct {struct stack_frame_t me;} fra;
410 val_t REGB0;
411 val_t tmp;
412 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
413 fra.me.file = LOCATE_metamodel___static_type;
414 fra.me.line = 88;
415 fra.me.meth = LOCATE_metamodel___static_type___MMSignature___params;
416 fra.me.has_broke = 0;
417 fra.me.REG_size = 1;
418 fra.me.REG[0] = NIT_NULL;
419 fra.me.REG[0] = p0;
420 /* ./metamodel//static_type.nit:88 */
421 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
422 if (UNTAG_Bool(REGB0)) {
423 } else {
424 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 88);
425 }
426 fra.me.REG[0] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]);
427 stack_frame_head = fra.me.prev;
428 return fra.me.REG[0];
429 }
430 val_t metamodel___static_type___MMSignature___return_type(val_t p0){
431 struct {struct stack_frame_t me;} fra;
432 val_t tmp;
433 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
434 fra.me.file = LOCATE_metamodel___static_type;
435 fra.me.line = 91;
436 fra.me.meth = LOCATE_metamodel___static_type___MMSignature___return_type;
437 fra.me.has_broke = 0;
438 fra.me.REG_size = 1;
439 fra.me.REG[0] = NIT_NULL;
440 fra.me.REG[0] = p0;
441 /* ./metamodel//static_type.nit:91 */
442 fra.me.REG[0] = ATTR_metamodel___static_type___MMSignature____return_type(fra.me.REG[0]);
443 stack_frame_head = fra.me.prev;
444 return fra.me.REG[0];
445 }
446 val_t metamodel___static_type___MMSignature___closures(val_t p0){
447 struct {struct stack_frame_t me;} fra;
448 val_t REGB0;
449 val_t tmp;
450 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
451 fra.me.file = LOCATE_metamodel___static_type;
452 fra.me.line = 94;
453 fra.me.meth = LOCATE_metamodel___static_type___MMSignature___closures;
454 fra.me.has_broke = 0;
455 fra.me.REG_size = 1;
456 fra.me.REG[0] = NIT_NULL;
457 fra.me.REG[0] = p0;
458 /* ./metamodel//static_type.nit:94 */
459 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[0])!=NIT_NULL);
460 if (UNTAG_Bool(REGB0)) {
461 } else {
462 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_metamodel___static_type, 94);
463 }
464 fra.me.REG[0] = ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[0]);
465 stack_frame_head = fra.me.prev;
466 return fra.me.REG[0];
467 }
468 val_t metamodel___static_type___MMSignature___closure_named(val_t p0, val_t p1){
469 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
470 val_t REGB0;
471 val_t REGB1;
472 val_t REGB2;
473 val_t tmp;
474 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
475 fra.me.file = LOCATE_metamodel___static_type;
476 fra.me.line = 97;
477 fra.me.meth = LOCATE_metamodel___static_type___MMSignature___closure_named;
478 fra.me.has_broke = 0;
479 fra.me.REG_size = 5;
480 fra.me.REG[0] = NIT_NULL;
481 fra.me.REG[1] = NIT_NULL;
482 fra.me.REG[2] = NIT_NULL;
483 fra.me.REG[3] = NIT_NULL;
484 fra.me.REG[4] = NIT_NULL;
485 fra.me.REG[0] = p0;
486 fra.me.REG[1] = p1;
487 /* ./metamodel//static_type.nit:100 */
488 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[0])!=NIT_NULL);
489 if (UNTAG_Bool(REGB0)) {
490 } else {
491 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_metamodel___static_type, 100);
492 }
493 fra.me.REG[0] = ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[0]);
494 /* ./../lib/standard//collection//array.nit:234 */
495 REGB0 = TAG_Int(0);
496 /* ./../lib/standard//collection//array.nit:235 */
497 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
498 if (UNTAG_Bool(REGB1)) {
499 } else {
500 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
501 }
502 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
503 /* ./../lib/standard//collection//array.nit:236 */
504 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
505 /* ./../lib/standard//collection//array.nit:237 */
506 while(1) {
507 /* ./../lib/standard//collection//array.nit:23 */
508 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
509 if (UNTAG_Bool(REGB1)) {
510 } else {
511 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
512 }
513 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
514 /* ./../lib/standard//kernel.nit:215 */
515 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
516 /* ./../lib/standard//collection//array.nit:237 */
517 if (UNTAG_Bool(REGB1)) {
518 /* ./../lib/standard//collection//array.nit:238 */
519 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
520 if (UNTAG_Bool(REGB1)) {
521 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
522 }
523 /* ./../lib/standard//collection//array.nit:654 */
524 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
525 /* ./metamodel//static_type.nit:101 */
526 fra.me.REG[4] = CALL_metamodel___static_type___MMClosure___name(fra.me.REG[3])(fra.me.REG[3]);
527 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[1]));
528 if (UNTAG_Bool(REGB1)) {
529 } else {
530 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
531 REGB1 = REGB2;
532 }
533 if (UNTAG_Bool(REGB1)) {
534 goto label1;
535 }
536 /* ./../lib/standard//collection//array.nit:239 */
537 REGB1 = TAG_Int(1);
538 /* ./../lib/standard//kernel.nit:218 */
539 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
540 /* ./../lib/standard//collection//array.nit:239 */
541 REGB0 = REGB1;
542 } else {
543 /* ./../lib/standard//collection//array.nit:237 */
544 goto label2;
545 }
546 }
547 label2: while(0);
548 /* ./metamodel//static_type.nit:103 */
549 fra.me.REG[3] = NIT_NULL;
550 goto label1;
551 label1: while(0);
552 stack_frame_head = fra.me.prev;
553 return fra.me.REG[3];
554 }
555 val_t metamodel___static_type___MMSignature___arity(val_t p0){
556 struct {struct stack_frame_t me;} fra;
557 val_t REGB0;
558 val_t tmp;
559 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
560 fra.me.file = LOCATE_metamodel___static_type;
561 fra.me.line = 106;
562 fra.me.meth = LOCATE_metamodel___static_type___MMSignature___arity;
563 fra.me.has_broke = 0;
564 fra.me.REG_size = 1;
565 fra.me.REG[0] = NIT_NULL;
566 fra.me.REG[0] = p0;
567 /* ./metamodel//static_type.nit:109 */
568 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
569 if (UNTAG_Bool(REGB0)) {
570 } else {
571 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 109);
572 }
573 fra.me.REG[0] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]);
574 /* ./../lib/standard//collection//array.nit:23 */
575 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
576 if (UNTAG_Bool(REGB0)) {
577 } else {
578 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
579 }
580 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
581 /* ./metamodel//static_type.nit:109 */
582 goto label1;
583 label1: while(0);
584 stack_frame_head = fra.me.prev;
585 return REGB0;
586 }
587 val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
588 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
589 val_t REGB0;
590 val_t REGB1;
591 val_t REGB2;
592 val_t REGB3;
593 val_t REGB4;
594 val_t REGB5;
595 val_t REGB6;
596 val_t tmp;
597 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
598 fra.me.file = LOCATE_metamodel___static_type;
599 fra.me.line = 112;
600 fra.me.meth = LOCATE_metamodel___static_type___MMSignature_____l;
601 fra.me.has_broke = 0;
602 fra.me.REG_size = 4;
603 fra.me.REG[0] = NIT_NULL;
604 fra.me.REG[1] = NIT_NULL;
605 fra.me.REG[2] = NIT_NULL;
606 fra.me.REG[3] = NIT_NULL;
607 fra.me.REG[0] = p0;
608 fra.me.REG[1] = p1;
609 /* ./metamodel//static_type.nit:115 */
610 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[1]));
611 if (UNTAG_Bool(REGB0)) {
612 } else {
613 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
614 REGB0 = REGB1;
615 }
616 if (UNTAG_Bool(REGB0)) {
617 /* ./metamodel//static_type.nit:116 */
618 REGB0 = TAG_Bool(true);
619 goto label1;
620 }
621 /* ./metamodel//static_type.nit:118 */
622 REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____recv(fra.me.REG[0])!=NIT_NULL);
623 if (UNTAG_Bool(REGB1)) {
624 } else {
625 nit_abort("Uninitialized attribute %s", "_recv", LOCATE_metamodel___static_type, 118);
626 }
627 fra.me.REG[2] = ATTR_metamodel___static_type___MMSignature____recv(fra.me.REG[0]);
628 fra.me.REG[2] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[2])(fra.me.REG[2]);
629 fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___recv(fra.me.REG[1])(fra.me.REG[1]);
630 fra.me.REG[3] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
631 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
632 if (UNTAG_Bool(REGB1)) {
633 } else {
634 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
635 REGB1 = REGB2;
636 }
637 if (UNTAG_Bool(REGB1)) {
638 } else {
639 nit_abort("Assert failed", NULL, LOCATE_metamodel___static_type, 118);
640 }
641 /* ./metamodel//static_type.nit:119 */
642 fra.me.REG[3] = ATTR_metamodel___static_type___MMSignature____return_type(fra.me.REG[0]);
643 /* ./metamodel//static_type.nit:120 */
644 fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]);
645 /* ./metamodel//static_type.nit:121 */
646 REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[0])(fra.me.REG[0]);
647 REGB2 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[1])(fra.me.REG[1]);
648 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
649 if (UNTAG_Bool(REGB3)) {
650 } else {
651 /* ./../lib/standard//kernel.nit:210 */
652 REGB2 = TAG_Bool((REGB1)==(REGB2));
653 /* ./metamodel//static_type.nit:121 */
654 REGB3 = REGB2;
655 }
656 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
657 if (UNTAG_Bool(REGB3)) {
658 REGB3 = TAG_Bool(true);
659 } else {
660 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
661 if (UNTAG_Bool(REGB2)) {
662 } else {
663 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
664 if (UNTAG_Bool(REGB1)) {
665 REGB1 = TAG_Bool(false);
666 REGB2 = REGB1;
667 } else {
668 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
669 REGB2 = REGB1;
670 }
671 }
672 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
673 if (UNTAG_Bool(REGB1)) {
674 } else {
675 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
676 if (UNTAG_Bool(REGB4)) {
677 REGB4 = TAG_Bool(false);
678 REGB1 = REGB4;
679 } else {
680 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
681 REGB1 = REGB4;
682 }
683 }
684 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
685 if (UNTAG_Bool(REGB4)) {
686 } else {
687 /* ./../lib/standard//kernel.nit:178 */
688 REGB1 = TAG_Bool((REGB2)==(REGB1));
689 /* ./metamodel//static_type.nit:121 */
690 REGB4 = REGB1;
691 }
692 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
693 REGB3 = REGB4;
694 }
695 if (UNTAG_Bool(REGB3)) {
696 REGB3 = TAG_Bool(false);
697 REGB0 = REGB3;
698 goto label1;
699 }
700 /* ./metamodel//static_type.nit:122 */
701 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
702 if (UNTAG_Bool(REGB3)) {
703 } else {
704 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
705 if (UNTAG_Bool(REGB4)) {
706 REGB4 = TAG_Bool(false);
707 REGB3 = REGB4;
708 } else {
709 REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
710 REGB3 = REGB4;
711 }
712 }
713 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
714 if (UNTAG_Bool(REGB3)) {
715 REGB3 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
716 if (UNTAG_Bool(REGB3)) {
717 } else {
718 nit_abort("Cast failed", NULL, LOCATE_metamodel___static_type, 122);
719 }
720 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
721 if (UNTAG_Bool(REGB3)) {
722 nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 122);
723 }
724 REGB3 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
725 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
726 } else {
727 REGB4 = TAG_Bool(false);
728 REGB3 = REGB4;
729 }
730 if (UNTAG_Bool(REGB3)) {
731 /* ./metamodel//static_type.nit:123 */
732 REGB3 = TAG_Bool(false);
733 REGB0 = REGB3;
734 goto label1;
735 }
736 /* ./metamodel//static_type.nit:126 */
737 REGB3 = TAG_Int(0);
738 REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[0])(fra.me.REG[0]);
739 /* ./../lib/standard//kernel.nit:335 */
740 while(1) {
741 /* ./../lib/standard//kernel.nit:215 */
742 REGB1 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
743 /* ./../lib/standard//kernel.nit:335 */
744 if (UNTAG_Bool(REGB1)) {
745 /* ./metamodel//static_type.nit:126 */
746 REGB1 = REGB3;
747 /* ./metamodel//static_type.nit:127 */
748 fra.me.REG[2] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[1])(fra.me.REG[1], REGB1);
749 fra.me.REG[3] = CALL_metamodel___static_type___MMSignature_____bra(fra.me.REG[0])(fra.me.REG[0], REGB1);
750 REGB1 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
751 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
752 if (UNTAG_Bool(REGB1)) {
753 /* ./metamodel//static_type.nit:128 */
754 REGB1 = TAG_Bool(false);
755 REGB0 = REGB1;
756 goto label1;
757 }
758 /* ./../lib/standard//kernel.nit:337 */
759 REGB1 = TAG_Int(1);
760 /* ./../lib/standard//kernel.nit:218 */
761 REGB1 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB1));
762 /* ./../lib/standard//kernel.nit:337 */
763 REGB3 = REGB1;
764 } else {
765 /* ./../lib/standard//kernel.nit:335 */
766 goto label2;
767 }
768 }
769 label2: while(0);
770 /* ./metamodel//static_type.nit:132 */
771 fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[0])(fra.me.REG[0]);
772 /* ./../lib/standard//collection//array.nit:23 */
773 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
774 if (UNTAG_Bool(REGB3)) {
775 } else {
776 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
777 }
778 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
779 /* ./metamodel//static_type.nit:132 */
780 fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
781 /* ./../lib/standard//collection//array.nit:23 */
782 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
783 if (UNTAG_Bool(REGB4)) {
784 } else {
785 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
786 }
787 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
788 /* ./metamodel//static_type.nit:132 */
789 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
790 if (UNTAG_Bool(REGB1)) {
791 } else {
792 /* ./../lib/standard//kernel.nit:210 */
793 REGB4 = TAG_Bool((REGB3)==(REGB4));
794 /* ./metamodel//static_type.nit:132 */
795 REGB1 = REGB4;
796 }
797 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
798 if (UNTAG_Bool(REGB1)) {
799 REGB1 = TAG_Bool(false);
800 REGB0 = REGB1;
801 goto label1;
802 }
803 /* ./metamodel//static_type.nit:133 */
804 REGB1 = TAG_Int(0);
805 fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[0])(fra.me.REG[0]);
806 /* ./../lib/standard//collection//array.nit:23 */
807 REGB4 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
808 if (UNTAG_Bool(REGB4)) {
809 } else {
810 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
811 }
812 REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
813 /* ./../lib/standard//kernel.nit:335 */
814 while(1) {
815 /* ./../lib/standard//kernel.nit:215 */
816 REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB4));
817 /* ./../lib/standard//kernel.nit:335 */
818 if (UNTAG_Bool(REGB3)) {
819 /* ./metamodel//static_type.nit:133 */
820 REGB3 = REGB1;
821 /* ./metamodel//static_type.nit:134 */
822 fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
823 /* ./../lib/standard//collection//array.nit:243 */
824 REGB2 = REGB3;
825 /* ./../lib/standard//collection//array.nit:245 */
826 REGB5 = TAG_Int(0);
827 /* ./../lib/standard//kernel.nit:216 */
828 REGB5 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB5));
829 /* ./../lib/standard//collection//array.nit:245 */
830 if (UNTAG_Bool(REGB5)) {
831 REGB5 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
832 if (UNTAG_Bool(REGB5)) {
833 } else {
834 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 245);
835 }
836 REGB5 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
837 /* ./../lib/standard//kernel.nit:215 */
838 REGB5 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB5));
839 } else {
840 /* ./../lib/standard//collection//array.nit:245 */
841 REGB6 = TAG_Bool(false);
842 REGB5 = REGB6;
843 }
844 if (UNTAG_Bool(REGB5)) {
845 } else {
846 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 245);
847 }
848 /* ./../lib/standard//collection//array.nit:246 */
849 fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
850 REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
851 if (UNTAG_Bool(REGB5)) {
852 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 246);
853 }
854 /* ./../lib/standard//collection//array.nit:654 */
855 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB2)];
856 /* ./../lib/standard//collection//array.nit:246 */
857 goto label3;
858 label3: while(0);
859 /* ./metamodel//static_type.nit:134 */
860 fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[0])(fra.me.REG[0]);
861 /* ./../lib/standard//collection//array.nit:245 */
862 REGB2 = TAG_Int(0);
863 /* ./../lib/standard//kernel.nit:216 */
864 REGB2 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB2));
865 /* ./../lib/standard//collection//array.nit:245 */
866 if (UNTAG_Bool(REGB2)) {
867 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
868 if (UNTAG_Bool(REGB2)) {
869 } else {
870 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 245);
871 }
872 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
873 /* ./../lib/standard//kernel.nit:215 */
874 REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
875 } else {
876 /* ./../lib/standard//collection//array.nit:245 */
877 REGB5 = TAG_Bool(false);
878 REGB2 = REGB5;
879 }
880 if (UNTAG_Bool(REGB2)) {
881 } else {
882 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 245);
883 }
884 /* ./../lib/standard//collection//array.nit:246 */
885 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
886 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
887 if (UNTAG_Bool(REGB2)) {
888 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 246);
889 }
890 /* ./../lib/standard//collection//array.nit:654 */
891 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB3)];
892 /* ./../lib/standard//collection//array.nit:246 */
893 goto label4;
894 label4: while(0);
895 /* ./metamodel//static_type.nit:134 */
896 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
897 if (UNTAG_Bool(REGB3)) {
898 nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 134);
899 }
900 REGB3 = CALL_metamodel___static_type___MMClosure_____l(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
901 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
902 if (UNTAG_Bool(REGB3)) {
903 REGB3 = TAG_Bool(false);
904 REGB0 = REGB3;
905 goto label1;
906 }
907 /* ./../lib/standard//kernel.nit:337 */
908 REGB3 = TAG_Int(1);
909 /* ./../lib/standard//kernel.nit:218 */
910 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
911 /* ./../lib/standard//kernel.nit:337 */
912 REGB1 = REGB3;
913 } else {
914 /* ./../lib/standard//kernel.nit:335 */
915 goto label5;
916 }
917 }
918 label5: while(0);
919 /* ./metamodel//static_type.nit:136 */
920 REGB1 = TAG_Bool(true);
921 REGB0 = REGB1;
922 goto label1;
923 label1: while(0);
924 stack_frame_head = fra.me.prev;
925 return REGB0;
926 }
927 val_t metamodel___static_type___MMSignature_____bra(val_t p0, val_t p1){
928 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
929 val_t REGB0;
930 val_t REGB1;
931 val_t REGB2;
932 val_t tmp;
933 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
934 fra.me.file = LOCATE_metamodel___static_type;
935 fra.me.line = 139;
936 fra.me.meth = LOCATE_metamodel___static_type___MMSignature_____bra;
937 fra.me.has_broke = 0;
938 fra.me.REG_size = 2;
939 fra.me.REG[0] = NIT_NULL;
940 fra.me.REG[1] = NIT_NULL;
941 fra.me.REG[0] = p0;
942 REGB0 = p1;
943 /* ./metamodel//static_type.nit:142 */
944 REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
945 if (UNTAG_Bool(REGB1)) {
946 } else {
947 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 142);
948 }
949 fra.me.REG[1] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]);
950 /* ./../lib/standard//collection//array.nit:23 */
951 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
952 if (UNTAG_Bool(REGB1)) {
953 } else {
954 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
955 }
956 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
957 /* ./../lib/standard//kernel.nit:217 */
958 REGB1 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
959 /* ./metamodel//static_type.nit:142 */
960 if (UNTAG_Bool(REGB1)) {
961 } else {
962 nit_abort("Assert failed", NULL, LOCATE_metamodel___static_type, 142);
963 }
964 /* ./metamodel//static_type.nit:143 */
965 REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
966 if (UNTAG_Bool(REGB1)) {
967 } else {
968 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 143);
969 }
970 fra.me.REG[0] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]);
971 /* ./../lib/standard//collection//array.nit:245 */
972 REGB1 = TAG_Int(0);
973 /* ./../lib/standard//kernel.nit:216 */
974 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
975 /* ./../lib/standard//collection//array.nit:245 */
976 if (UNTAG_Bool(REGB1)) {
977 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
978 if (UNTAG_Bool(REGB1)) {
979 } else {
980 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 245);
981 }
982 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
983 /* ./../lib/standard//kernel.nit:215 */
984 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
985 } else {
986 /* ./../lib/standard//collection//array.nit:245 */
987 REGB2 = TAG_Bool(false);
988 REGB1 = REGB2;
989 }
990 if (UNTAG_Bool(REGB1)) {
991 } else {
992 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 245);
993 }
994 /* ./../lib/standard//collection//array.nit:246 */
995 fra.me.REG[0] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
996 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
997 if (UNTAG_Bool(REGB1)) {
998 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 246);
999 }
1000 /* ./../lib/standard//collection//array.nit:654 */
1001 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
1002 /* ./../lib/standard//collection//array.nit:246 */
1003 goto label1;
1004 label1: while(0);
1005 /* ./metamodel//static_type.nit:143 */
1006 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1007 if (UNTAG_Bool(REGB0)) {
1008 nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 143);
1009 }
1010 fra.me.REG[0] = CALL_metamodel___static_type___MMParam___mmtype(fra.me.REG[0])(fra.me.REG[0]);
1011 goto label2;
1012 label2: while(0);
1013 stack_frame_head = fra.me.prev;
1014 return fra.me.REG[0];
1015 }
1016 val_t metamodel___static_type___MMSignature___to_s(val_t p0){
1017 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
1018 val_t REGB0;
1019 val_t REGB1;
1020 val_t REGB2;
1021 val_t REGB3;
1022 val_t REGB4;
1023 val_t tmp;
1024 static val_t once_value_3; /* Once value */
1025 static val_t once_value_4; /* Once value */
1026 static val_t once_value_5; /* Once value */
1027 static val_t once_value_6; /* Once value */
1028 static val_t once_value_7; /* Once value */
1029 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1030 fra.me.file = LOCATE_metamodel___static_type;
1031 fra.me.line = 146;
1032 fra.me.meth = LOCATE_metamodel___static_type___MMSignature___to_s;
1033 fra.me.has_broke = 0;
1034 fra.me.REG_size = 5;
1035 fra.me.REG[0] = NIT_NULL;
1036 fra.me.REG[1] = NIT_NULL;
1037 fra.me.REG[2] = NIT_NULL;
1038 fra.me.REG[3] = NIT_NULL;
1039 fra.me.REG[4] = NIT_NULL;
1040 fra.me.REG[0] = p0;
1041 /* ./metamodel//static_type.nit:148 */
1042 fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___init();
1043 /* ./metamodel//static_type.nit:149 */
1044 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
1045 if (UNTAG_Bool(REGB0)) {
1046 } else {
1047 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 149);
1048 }
1049 fra.me.REG[2] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]);
1050 /* ./../lib/standard//collection//array.nit:23 */
1051 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1052 if (UNTAG_Bool(REGB0)) {
1053 } else {
1054 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1055 }
1056 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1057 /* ./metamodel//static_type.nit:149 */
1058 REGB1 = TAG_Int(0);
1059 /* ./../lib/standard//kernel.nit:217 */
1060 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
1061 /* ./metamodel//static_type.nit:149 */
1062 if (UNTAG_Bool(REGB1)) {
1063 /* ./metamodel//static_type.nit:151 */
1064 REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
1065 if (UNTAG_Bool(REGB1)) {
1066 } else {
1067 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 151);
1068 }
1069 fra.me.REG[2] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]);
1070 /* ./../lib/standard//collection//array.nit:23 */
1071 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
1072 if (UNTAG_Bool(REGB1)) {
1073 } else {
1074 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1075 }
1076 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
1077 /* ./metamodel//static_type.nit:151 */
1078 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
1079 /* ./metamodel//static_type.nit:152 */
1080 REGB1 = TAG_Int(0);
1081 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
1082 if (UNTAG_Bool(REGB0)) {
1083 } else {
1084 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 152);
1085 }
1086 fra.me.REG[3] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]);
1087 /* ./../lib/standard//collection//array.nit:23 */
1088 REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1089 if (UNTAG_Bool(REGB0)) {
1090 } else {
1091 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1092 }
1093 REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1094 /* ./../lib/standard//kernel.nit:335 */
1095 while(1) {
1096 /* ./../lib/standard//kernel.nit:215 */
1097 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
1098 /* ./../lib/standard//kernel.nit:335 */
1099 if (UNTAG_Bool(REGB2)) {
1100 /* ./metamodel//static_type.nit:152 */
1101 REGB2 = REGB1;
1102 /* ./metamodel//static_type.nit:153 */
1103 REGB3 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
1104 if (UNTAG_Bool(REGB3)) {
1105 } else {
1106 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 153);
1107 }
1108 fra.me.REG[3] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]);
1109 /* ./../lib/standard//collection//array.nit:245 */
1110 REGB3 = TAG_Int(0);
1111 /* ./../lib/standard//kernel.nit:216 */
1112 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
1113 /* ./../lib/standard//collection//array.nit:245 */
1114 if (UNTAG_Bool(REGB3)) {
1115 REGB3 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1116 if (UNTAG_Bool(REGB3)) {
1117 } else {
1118 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 245);
1119 }
1120 REGB3 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1121 /* ./../lib/standard//kernel.nit:215 */
1122 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
1123 } else {
1124 /* ./../lib/standard//collection//array.nit:245 */
1125 REGB4 = TAG_Bool(false);
1126 REGB3 = REGB4;
1127 }
1128 if (UNTAG_Bool(REGB3)) {
1129 } else {
1130 nit_abort("Assert %s failed", "'index'", LOCATE_standard___collection___array, 245);
1131 }
1132 /* ./../lib/standard//collection//array.nit:246 */
1133 fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
1134 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
1135 if (UNTAG_Bool(REGB3)) {
1136 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 246);
1137 }
1138 /* ./../lib/standard//collection//array.nit:654 */
1139 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB2)];
1140 /* ./../lib/standard//collection//array.nit:246 */
1141 goto label1;
1142 label1: while(0);
1143 /* ./metamodel//static_type.nit:154 */
1144 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1145 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1146 /* ./../lib/standard//kernel.nit:337 */
1147 REGB2 = TAG_Int(1);
1148 /* ./../lib/standard//kernel.nit:218 */
1149 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1150 /* ./../lib/standard//kernel.nit:337 */
1151 REGB1 = REGB2;
1152 } else {
1153 /* ./../lib/standard//kernel.nit:335 */
1154 goto label2;
1155 }
1156 }
1157 label2: while(0);
1158 /* ./metamodel//static_type.nit:156 */
1159 REGB1 = TAG_Int(3);
1160 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
1161 if (!once_value_3) {
1162 fra.me.REG[4] = BOX_NativeString("(");
1163 REGB1 = TAG_Int(1);
1164 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
1165 once_value_3 = fra.me.REG[4];
1166 register_static_object(&once_value_3);
1167 } else fra.me.REG[4] = once_value_3;
1168 fra.me.REG[4] = fra.me.REG[4];
1169 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1170 if (!once_value_4) {
1171 fra.me.REG[4] = BOX_NativeString(", ");
1172 REGB1 = TAG_Int(2);
1173 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
1174 once_value_4 = fra.me.REG[4];
1175 register_static_object(&once_value_4);
1176 } else fra.me.REG[4] = once_value_4;
1177 fra.me.REG[4] = fra.me.REG[4];
1178 fra.me.REG[4] = CALL_standard___string___Collection___join(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1179 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1180 if (!once_value_5) {
1181 fra.me.REG[4] = BOX_NativeString(")");
1182 REGB1 = TAG_Int(1);
1183 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
1184 once_value_5 = fra.me.REG[4];
1185 register_static_object(&once_value_5);
1186 } else fra.me.REG[4] = once_value_5;
1187 fra.me.REG[4] = fra.me.REG[4];
1188 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1189 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1190 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1191 }
1192 /* ./metamodel//static_type.nit:158 */
1193 fra.me.REG[0] = ATTR_metamodel___static_type___MMSignature____return_type(fra.me.REG[0]);
1194 /* ./metamodel//static_type.nit:159 */
1195 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1196 if (UNTAG_Bool(REGB1)) {
1197 } else {
1198 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1199 if (UNTAG_Bool(REGB0)) {
1200 REGB0 = TAG_Bool(false);
1201 REGB1 = REGB0;
1202 } else {
1203 REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
1204 REGB1 = REGB0;
1205 }
1206 }
1207 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1208 if (UNTAG_Bool(REGB1)) {
1209 REGB1 = TAG_Int(3);
1210 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
1211 if (!once_value_6) {
1212 fra.me.REG[4] = BOX_NativeString(": ");
1213 REGB1 = TAG_Int(2);
1214 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
1215 once_value_6 = fra.me.REG[4];
1216 register_static_object(&once_value_6);
1217 } else fra.me.REG[4] = once_value_6;
1218 fra.me.REG[4] = fra.me.REG[4];
1219 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1220 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
1221 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
1222 if (!once_value_7) {
1223 fra.me.REG[0] = BOX_NativeString("");
1224 REGB1 = TAG_Int(0);
1225 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB1);
1226 once_value_7 = fra.me.REG[0];
1227 register_static_object(&once_value_7);
1228 } else fra.me.REG[0] = once_value_7;
1229 fra.me.REG[0] = fra.me.REG[0];
1230 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
1231 fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1232 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1233 }
1234 /* ./metamodel//static_type.nit:160 */
1235 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1236 goto label8;
1237 label8: while(0);
1238 stack_frame_head = fra.me.prev;
1239 return fra.me.REG[1];
1240 }
1241 val_t metamodel___static_type___MMSignature___adaptation_to(val_t p0, val_t p1){
1242 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
1243 val_t REGB0;
1244 val_t REGB1;
1245 val_t REGB2;
1246 val_t tmp;
1247 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1248 fra.me.file = LOCATE_metamodel___static_type;
1249 fra.me.line = 163;
1250 fra.me.meth = LOCATE_metamodel___static_type___MMSignature___adaptation_to;
1251 fra.me.has_broke = 0;
1252 fra.me.REG_size = 10;
1253 fra.me.REG[0] = NIT_NULL;
1254 fra.me.REG[1] = NIT_NULL;
1255 fra.me.REG[2] = NIT_NULL;
1256 fra.me.REG[3] = NIT_NULL;
1257 fra.me.REG[4] = NIT_NULL;
1258 fra.me.REG[5] = NIT_NULL;
1259 fra.me.REG[6] = NIT_NULL;
1260 fra.me.REG[7] = NIT_NULL;
1261 fra.me.REG[8] = NIT_NULL;
1262 fra.me.REG[9] = NIT_NULL;
1263 fra.me.REG[0] = p0;
1264 fra.me.REG[1] = p1;
1265 /* ./metamodel//static_type.nit:166 */
1266 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____recv(fra.me.REG[0])!=NIT_NULL);
1267 if (UNTAG_Bool(REGB0)) {
1268 } else {
1269 nit_abort("Uninitialized attribute %s", "_recv", LOCATE_metamodel___static_type, 166);
1270 }
1271 fra.me.REG[2] = ATTR_metamodel___static_type___MMSignature____recv(fra.me.REG[0]);
1272 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[1]));
1273 if (UNTAG_Bool(REGB0)) {
1274 } else {
1275 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1276 REGB0 = REGB1;
1277 }
1278 if (UNTAG_Bool(REGB0)) {
1279 /* ./metamodel//static_type.nit:167 */
1280 fra.me.REG[2] = fra.me.REG[0];
1281 goto label1;
1282 }
1283 /* ./metamodel//static_type.nit:169 */
1284 fra.me.REG[3] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
1285 /* ./metamodel//static_type.nit:170 */
1286 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___init();
1287 /* ./metamodel//static_type.nit:171 */
1288 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
1289 if (UNTAG_Bool(REGB0)) {
1290 } else {
1291 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 171);
1292 }
1293 fra.me.REG[5] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]);
1294 /* ./../lib/standard//collection//array.nit:234 */
1295 REGB0 = TAG_Int(0);
1296 /* ./../lib/standard//collection//array.nit:235 */
1297 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1298 if (UNTAG_Bool(REGB1)) {
1299 } else {
1300 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
1301 }
1302 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
1303 /* ./../lib/standard//collection//array.nit:236 */
1304 fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
1305 /* ./../lib/standard//collection//array.nit:237 */
1306 while(1) {
1307 /* ./../lib/standard//collection//array.nit:23 */
1308 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1309 if (UNTAG_Bool(REGB1)) {
1310 } else {
1311 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1312 }
1313 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
1314 /* ./../lib/standard//kernel.nit:215 */
1315 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1316 /* ./../lib/standard//collection//array.nit:237 */
1317 if (UNTAG_Bool(REGB1)) {
1318 /* ./../lib/standard//collection//array.nit:238 */
1319 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
1320 if (UNTAG_Bool(REGB1)) {
1321 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
1322 }
1323 /* ./../lib/standard//collection//array.nit:654 */
1324 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
1325 /* ./metamodel//static_type.nit:172 */
1326 fra.me.REG[8] = CALL_metamodel___static_type___MMParam___mmtype(fra.me.REG[7])(fra.me.REG[7]);
1327 fra.me.REG[8] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[3]);
1328 fra.me.REG[8] = CALL_metamodel___static_type___MMType___adapt_to(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[1]);
1329 /* ./metamodel//static_type.nit:174 */
1330 fra.me.REG[9] = CALL_metamodel___static_type___MMParam___mmtype(fra.me.REG[7])(fra.me.REG[7]);
1331 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[8],fra.me.REG[9]));
1332 if (UNTAG_Bool(REGB1)) {
1333 } else {
1334 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]);
1335 REGB1 = REGB2;
1336 }
1337 if (UNTAG_Bool(REGB1)) {
1338 /* ./metamodel//static_type.nit:175 */
1339 fra.me.REG[9] = fra.me.REG[7];
1340 } else {
1341 /* ./metamodel//static_type.nit:177 */
1342 fra.me.REG[7] = CALL_metamodel___static_type___MMParam___name(fra.me.REG[7])(fra.me.REG[7]);
1343 fra.me.REG[7] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[8], fra.me.REG[7]);
1344 fra.me.REG[9] = fra.me.REG[7];
1345 }
1346 /* ./metamodel//static_type.nit:180 */
1347 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
1348 /* ./../lib/standard//collection//array.nit:239 */
1349 REGB1 = TAG_Int(1);
1350 /* ./../lib/standard//kernel.nit:218 */
1351 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1352 /* ./../lib/standard//collection//array.nit:239 */
1353 REGB0 = REGB1;
1354 } else {
1355 /* ./../lib/standard//collection//array.nit:237 */
1356 goto label2;
1357 }
1358 }
1359 label2: while(0);
1360 /* ./metamodel//static_type.nit:182 */
1361 fra.me.REG[6] = ATTR_metamodel___static_type___MMSignature____return_type(fra.me.REG[0]);
1362 /* ./metamodel//static_type.nit:183 */
1363 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
1364 if (UNTAG_Bool(REGB0)) {
1365 } else {
1366 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
1367 if (UNTAG_Bool(REGB1)) {
1368 REGB1 = TAG_Bool(false);
1369 REGB0 = REGB1;
1370 } else {
1371 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
1372 REGB0 = REGB1;
1373 }
1374 }
1375 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1376 if (UNTAG_Bool(REGB0)) {
1377 /* ./metamodel//static_type.nit:184 */
1378 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
1379 if (UNTAG_Bool(REGB0)) {
1380 nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 184);
1381 }
1382 fra.me.REG[3] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
1383 fra.me.REG[3] = CALL_metamodel___static_type___MMType___adapt_to(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1384 fra.me.REG[6] = fra.me.REG[3];
1385 }
1386 /* ./metamodel//static_type.nit:186 */
1387 fra.me.REG[6] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[4], fra.me.REG[6], fra.me.REG[1]);
1388 /* ./metamodel//static_type.nit:187 */
1389 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[0])!=NIT_NULL);
1390 if (UNTAG_Bool(REGB0)) {
1391 } else {
1392 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_metamodel___static_type, 187);
1393 }
1394 fra.me.REG[0] = ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[0]);
1395 /* ./../lib/standard//collection//array.nit:234 */
1396 REGB0 = TAG_Int(0);
1397 /* ./../lib/standard//collection//array.nit:235 */
1398 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1399 if (UNTAG_Bool(REGB1)) {
1400 } else {
1401 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
1402 }
1403 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1404 /* ./../lib/standard//collection//array.nit:236 */
1405 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
1406 /* ./../lib/standard//collection//array.nit:237 */
1407 while(1) {
1408 /* ./../lib/standard//collection//array.nit:23 */
1409 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1410 if (UNTAG_Bool(REGB1)) {
1411 } else {
1412 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1413 }
1414 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
1415 /* ./../lib/standard//kernel.nit:215 */
1416 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1417 /* ./../lib/standard//collection//array.nit:237 */
1418 if (UNTAG_Bool(REGB1)) {
1419 /* ./../lib/standard//collection//array.nit:238 */
1420 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1421 if (UNTAG_Bool(REGB1)) {
1422 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
1423 }
1424 /* ./../lib/standard//collection//array.nit:654 */
1425 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
1426 /* ./metamodel//static_type.nit:188 */
1427 fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[6])(fra.me.REG[6]);
1428 fra.me.REG[3] = CALL_metamodel___static_type___MMClosure___adaptation_to(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1429 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
1430 /* ./../lib/standard//collection//array.nit:239 */
1431 REGB1 = TAG_Int(1);
1432 /* ./../lib/standard//kernel.nit:218 */
1433 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1434 /* ./../lib/standard//collection//array.nit:239 */
1435 REGB0 = REGB1;
1436 } else {
1437 /* ./../lib/standard//collection//array.nit:237 */
1438 goto label3;
1439 }
1440 }
1441 label3: while(0);
1442 /* ./metamodel//static_type.nit:190 */
1443 fra.me.REG[2] = fra.me.REG[6];
1444 goto label1;
1445 label1: while(0);
1446 stack_frame_head = fra.me.prev;
1447 return fra.me.REG[2];
1448 }
1449 val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
1450 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
1451 val_t REGB0;
1452 val_t REGB1;
1453 val_t REGB2;
1454 val_t REGB3;
1455 val_t tmp;
1456 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1457 fra.me.file = LOCATE_metamodel___static_type;
1458 fra.me.line = 195;
1459 fra.me.meth = LOCATE_metamodel___static_type___MMSignature___not_for_self;
1460 fra.me.has_broke = 0;
1461 fra.me.REG_size = 9;
1462 fra.me.REG[0] = NIT_NULL;
1463 fra.me.REG[1] = NIT_NULL;
1464 fra.me.REG[2] = NIT_NULL;
1465 fra.me.REG[3] = NIT_NULL;
1466 fra.me.REG[4] = NIT_NULL;
1467 fra.me.REG[5] = NIT_NULL;
1468 fra.me.REG[6] = NIT_NULL;
1469 fra.me.REG[7] = NIT_NULL;
1470 fra.me.REG[8] = NIT_NULL;
1471 fra.me.REG[0] = p0;
1472 /* ./metamodel//static_type.nit:199 */
1473 fra.me.REG[1] = ATTR_metamodel___static_type___MMSignature____not_for_self_cache(fra.me.REG[0]);
1474 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1475 if (UNTAG_Bool(REGB0)) {
1476 } else {
1477 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1478 if (UNTAG_Bool(REGB1)) {
1479 REGB1 = TAG_Bool(false);
1480 REGB0 = REGB1;
1481 } else {
1482 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1483 REGB0 = REGB1;
1484 }
1485 }
1486 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1487 if (UNTAG_Bool(REGB0)) {
1488 fra.me.REG[1] = ATTR_metamodel___static_type___MMSignature____not_for_self_cache(fra.me.REG[0]);
1489 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1490 if (UNTAG_Bool(REGB0)) {
1491 } else {
1492 nit_abort("Cast failed", NULL, LOCATE_metamodel___static_type, 199);
1493 }
1494 goto label1;
1495 }
1496 /* ./metamodel//static_type.nit:201 */
1497 REGB0 = TAG_Bool(false);
1498 /* ./metamodel//static_type.nit:202 */
1499 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
1500 /* ./metamodel//static_type.nit:203 */
1501 REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
1502 if (UNTAG_Bool(REGB1)) {
1503 } else {
1504 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___static_type, 203);
1505 }
1506 fra.me.REG[3] = ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]);
1507 /* ./../lib/standard//collection//array.nit:234 */
1508 REGB1 = TAG_Int(0);
1509 /* ./../lib/standard//collection//array.nit:235 */
1510 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1511 if (UNTAG_Bool(REGB2)) {
1512 } else {
1513 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
1514 }
1515 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1516 /* ./../lib/standard//collection//array.nit:236 */
1517 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
1518 /* ./../lib/standard//collection//array.nit:237 */
1519 while(1) {
1520 /* ./../lib/standard//collection//array.nit:23 */
1521 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1522 if (UNTAG_Bool(REGB2)) {
1523 } else {
1524 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1525 }
1526 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1527 /* ./../lib/standard//kernel.nit:215 */
1528 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1529 /* ./../lib/standard//collection//array.nit:237 */
1530 if (UNTAG_Bool(REGB2)) {
1531 /* ./../lib/standard//collection//array.nit:238 */
1532 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1533 if (UNTAG_Bool(REGB2)) {
1534 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
1535 }
1536 /* ./../lib/standard//collection//array.nit:654 */
1537 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
1538 /* ./metamodel//static_type.nit:204 */
1539 fra.me.REG[6] = CALL_metamodel___static_type___MMParam___mmtype(fra.me.REG[5])(fra.me.REG[5]);
1540 fra.me.REG[6] = CALL_metamodel___static_type___MMType___not_for_self(fra.me.REG[6])(fra.me.REG[6]);
1541 /* ./metamodel//static_type.nit:206 */
1542 fra.me.REG[7] = CALL_metamodel___static_type___MMParam___mmtype(fra.me.REG[5])(fra.me.REG[5]);
1543 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[7],fra.me.REG[6]));
1544 if (UNTAG_Bool(REGB2)) {
1545 } else {
1546 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
1547 REGB2 = REGB3;
1548 }
1549 if (UNTAG_Bool(REGB2)) {
1550 /* ./metamodel//static_type.nit:207 */
1551 fra.me.REG[7] = fra.me.REG[5];
1552 } else {
1553 /* ./metamodel//static_type.nit:209 */
1554 REGB2 = TAG_Bool(true);
1555 REGB0 = REGB2;
1556 /* ./metamodel//static_type.nit:210 */
1557 fra.me.REG[5] = CALL_metamodel___static_type___MMParam___name(fra.me.REG[5])(fra.me.REG[5]);
1558 fra.me.REG[5] = NEW_MMParam_metamodel___static_type___MMParam___init(fra.me.REG[6], fra.me.REG[5]);
1559 fra.me.REG[7] = fra.me.REG[5];
1560 }
1561 /* ./metamodel//static_type.nit:213 */
1562 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
1563 /* ./../lib/standard//collection//array.nit:239 */
1564 REGB2 = TAG_Int(1);
1565 /* ./../lib/standard//kernel.nit:218 */
1566 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1567 /* ./../lib/standard//collection//array.nit:239 */
1568 REGB1 = REGB2;
1569 } else {
1570 /* ./../lib/standard//collection//array.nit:237 */
1571 goto label2;
1572 }
1573 }
1574 label2: while(0);
1575 /* ./metamodel//static_type.nit:216 */
1576 fra.me.REG[4] = ATTR_metamodel___static_type___MMSignature____return_type(fra.me.REG[0]);
1577 /* ./metamodel//static_type.nit:217 */
1578 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1579 if (UNTAG_Bool(REGB1)) {
1580 } else {
1581 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1582 if (UNTAG_Bool(REGB2)) {
1583 REGB2 = TAG_Bool(false);
1584 REGB1 = REGB2;
1585 } else {
1586 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
1587 REGB1 = REGB2;
1588 }
1589 }
1590 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1591 if (UNTAG_Bool(REGB1)) {
1592 /* ./metamodel//static_type.nit:218 */
1593 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1594 if (UNTAG_Bool(REGB1)) {
1595 nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 218);
1596 }
1597 fra.me.REG[3] = CALL_metamodel___static_type___MMType___not_for_self(fra.me.REG[4])(fra.me.REG[4]);
1598 fra.me.REG[4] = fra.me.REG[3];
1599 /* ./metamodel//static_type.nit:219 */
1600 fra.me.REG[3] = ATTR_metamodel___static_type___MMSignature____return_type(fra.me.REG[0]);
1601 REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[4],fra.me.REG[3]));
1602 if (UNTAG_Bool(REGB1)) {
1603 } else {
1604 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1605 if (UNTAG_Bool(REGB2)) {
1606 REGB2 = TAG_Bool(false);
1607 REGB1 = REGB2;
1608 } else {
1609 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1610 REGB1 = REGB2;
1611 }
1612 }
1613 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1614 if (UNTAG_Bool(REGB1)) {
1615 REGB1 = TAG_Bool(true);
1616 REGB0 = REGB1;
1617 }
1618 }
1619 /* ./metamodel//static_type.nit:222 */
1620 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
1621 /* ./metamodel//static_type.nit:223 */
1622 REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[0])!=NIT_NULL);
1623 if (UNTAG_Bool(REGB1)) {
1624 } else {
1625 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_metamodel___static_type, 223);
1626 }
1627 fra.me.REG[7] = ATTR_metamodel___static_type___MMSignature____closures(fra.me.REG[0]);
1628 /* ./../lib/standard//collection//array.nit:234 */
1629 REGB1 = TAG_Int(0);
1630 /* ./../lib/standard//collection//array.nit:235 */
1631 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
1632 if (UNTAG_Bool(REGB2)) {
1633 } else {
1634 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 235);
1635 }
1636 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
1637 /* ./../lib/standard//collection//array.nit:236 */
1638 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
1639 /* ./../lib/standard//collection//array.nit:237 */
1640 while(1) {
1641 /* ./../lib/standard//collection//array.nit:23 */
1642 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
1643 if (UNTAG_Bool(REGB2)) {
1644 } else {
1645 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 23);
1646 }
1647 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
1648 /* ./../lib/standard//kernel.nit:215 */
1649 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1650 /* ./../lib/standard//collection//array.nit:237 */
1651 if (UNTAG_Bool(REGB2)) {
1652 /* ./../lib/standard//collection//array.nit:238 */
1653 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1654 if (UNTAG_Bool(REGB2)) {
1655 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 238);
1656 }
1657 /* ./../lib/standard//collection//array.nit:654 */
1658 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
1659 /* ./metamodel//static_type.nit:224 */
1660 fra.me.REG[8] = CALL_metamodel___static_type___MMClosure___not_for_self(fra.me.REG[6])(fra.me.REG[6]);
1661 /* ./metamodel//static_type.nit:225 */
1662 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[8],fra.me.REG[6]));
1663 if (UNTAG_Bool(REGB2)) {
1664 } else {
1665 REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[6]);
1666 REGB2 = REGB3;
1667 }
1668 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
1669 if (UNTAG_Bool(REGB2)) {
1670 REGB2 = TAG_Bool(true);
1671 REGB0 = REGB2;
1672 }
1673 /* ./metamodel//static_type.nit:226 */
1674 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
1675 /* ./../lib/standard//collection//array.nit:239 */
1676 REGB2 = TAG_Int(1);
1677 /* ./../lib/standard//kernel.nit:218 */
1678 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1679 /* ./../lib/standard//collection//array.nit:239 */
1680 REGB1 = REGB2;
1681 } else {
1682 /* ./../lib/standard//collection//array.nit:237 */
1683 goto label3;
1684 }
1685 }
1686 label3: while(0);
1687 /* ./metamodel//static_type.nit:230 */
1688 if (UNTAG_Bool(REGB0)) {
1689 /* ./metamodel//static_type.nit:231 */
1690 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMSignature____recv(fra.me.REG[0])!=NIT_NULL);
1691 if (UNTAG_Bool(REGB0)) {
1692 } else {
1693 nit_abort("Uninitialized attribute %s", "_recv", LOCATE_metamodel___static_type, 231);
1694 }
1695 fra.me.REG[5] = ATTR_metamodel___static_type___MMSignature____recv(fra.me.REG[0]);
1696 fra.me.REG[5] = NEW_MMSignature_metamodel___static_type___MMSignature___init(fra.me.REG[2], fra.me.REG[4], fra.me.REG[5]);
1697 /* ./metamodel//static_type.nit:232 */
1698 fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[5])(fra.me.REG[5]);
1699 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1700 } else {
1701 /* ./metamodel//static_type.nit:234 */
1702 fra.me.REG[5] = fra.me.REG[0];
1703 }
1704 /* ./metamodel//static_type.nit:237 */
1705 ATTR_metamodel___static_type___MMSignature____not_for_self_cache(fra.me.REG[0]) = fra.me.REG[5];
1706 /* ./metamodel//static_type.nit:238 */
1707 fra.me.REG[1] = fra.me.REG[5];
1708 goto label1;
1709 label1: while(0);
1710 stack_frame_head = fra.me.prev;
1711 return fra.me.REG[1];
1712 }
1713 void metamodel___static_type___MMSignature___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1714 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMSignature].i;
1715 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1716 val_t tmp;
1717 if (init_table[itpos1]) return;
1718 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1719 fra.me.file = LOCATE_metamodel___static_type;
1720 fra.me.line = 241;
1721 fra.me.meth = LOCATE_metamodel___static_type___MMSignature___init;
1722 fra.me.has_broke = 0;
1723 fra.me.REG_size = 4;
1724 fra.me.REG[0] = NIT_NULL;
1725 fra.me.REG[1] = NIT_NULL;
1726 fra.me.REG[2] = NIT_NULL;
1727 fra.me.REG[3] = NIT_NULL;
1728 fra.me.REG[0] = p0;
1729 fra.me.REG[1] = p1;
1730 fra.me.REG[2] = p2;
1731 fra.me.REG[3] = p3;
1732 /* ./metamodel//static_type.nit:243 */
1733 ATTR_metamodel___static_type___MMSignature____params(fra.me.REG[0]) = fra.me.REG[1];
1734 /* ./metamodel//static_type.nit:244 */
1735 ATTR_metamodel___static_type___MMSignature____return_type(fra.me.REG[0]) = fra.me.REG[2];
1736 /* ./metamodel//static_type.nit:245 */
1737 ATTR_metamodel___static_type___MMSignature____recv(fra.me.REG[0]) = fra.me.REG[3];
1738 stack_frame_head = fra.me.prev;
1739 init_table[itpos1] = 1;
1740 return;
1741 }
1742 val_t metamodel___static_type___MMExplicitImport___signature(val_t p0){
1743 struct {struct stack_frame_t me;} fra;
1744 val_t REGB0;
1745 val_t tmp;
1746 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1747 fra.me.file = LOCATE_metamodel___static_type;
1748 fra.me.line = 251;
1749 fra.me.meth = LOCATE_metamodel___static_type___MMExplicitImport___signature;
1750 fra.me.has_broke = 0;
1751 fra.me.REG_size = 1;
1752 fra.me.REG[0] = NIT_NULL;
1753 fra.me.REG[0] = p0;
1754 /* ./metamodel//static_type.nit:251 */
1755 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMExplicitImport_____atsignature(fra.me.REG[0])!=NIT_NULL);
1756 if (UNTAG_Bool(REGB0)) {
1757 } else {
1758 nit_abort("Uninitialized attribute %s", "@signature", LOCATE_metamodel___static_type, 251);
1759 }
1760 fra.me.REG[0] = ATTR_metamodel___static_type___MMExplicitImport_____atsignature(fra.me.REG[0]);
1761 stack_frame_head = fra.me.prev;
1762 return fra.me.REG[0];
1763 }
1764 void metamodel___static_type___MMExplicitImport___signature__eq(val_t p0, val_t p1){
1765 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1766 val_t tmp;
1767 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1768 fra.me.file = LOCATE_metamodel___static_type;
1769 fra.me.line = 251;
1770 fra.me.meth = LOCATE_metamodel___static_type___MMExplicitImport___signature__eq;
1771 fra.me.has_broke = 0;
1772 fra.me.REG_size = 2;
1773 fra.me.REG[0] = NIT_NULL;
1774 fra.me.REG[1] = NIT_NULL;
1775 fra.me.REG[0] = p0;
1776 fra.me.REG[1] = p1;
1777 /* ./metamodel//static_type.nit:251 */
1778 ATTR_metamodel___static_type___MMExplicitImport_____atsignature(fra.me.REG[0]) = fra.me.REG[1];
1779 stack_frame_head = fra.me.prev;
1780 return;
1781 }
1782 void metamodel___static_type___MMExplicitImport___init(val_t p0, val_t p1, val_t p2, int* init_table){
1783 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___abstractmetamodel___MMExplicitImport].i;
1784 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
1785 val_t REGB0;
1786 val_t tmp;
1787 if (init_table[itpos2]) return;
1788 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1789 fra.me.file = LOCATE_metamodel___static_type;
1790 fra.me.line = 253;
1791 fra.me.meth = LOCATE_metamodel___static_type___MMExplicitImport___init;
1792 fra.me.has_broke = 0;
1793 fra.me.REG_size = 6;
1794 fra.me.REG[0] = NIT_NULL;
1795 fra.me.REG[1] = NIT_NULL;
1796 fra.me.REG[2] = NIT_NULL;
1797 fra.me.REG[3] = NIT_NULL;
1798 fra.me.REG[4] = NIT_NULL;
1799 fra.me.REG[5] = NIT_NULL;
1800 fra.me.REG[0] = p0;
1801 fra.me.REG[1] = p1;
1802 fra.me.REG[2] = p2;
1803 /* ./metamodel//static_type.nit:253 */
1804 fra.me.REG[3] = fra.me.REG[0];
1805 fra.me.REG[4] = fra.me.REG[1];
1806 fra.me.REG[5] = fra.me.REG[2];
1807 /* ./metamodel//static_type.nit:255 */
1808 CALL_SUPER_metamodel___static_type___MMExplicitImport___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
1809 /* ./metamodel//static_type.nit:256 */
1810 fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[5])(fra.me.REG[5]);
1811 fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[4])(fra.me.REG[4]);
1812 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1813 if (UNTAG_Bool(REGB0)) {
1814 nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 256);
1815 }
1816 fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
1817 CALL_metamodel___static_type___MMExplicitImport___signature__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1818 stack_frame_head = fra.me.prev;
1819 init_table[itpos2] = 1;
1820 return;
1821 }
1822 val_t metamodel___static_type___MMClosure___name(val_t p0){
1823 struct {struct stack_frame_t me;} fra;
1824 val_t REGB0;
1825 val_t tmp;
1826 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1827 fra.me.file = LOCATE_metamodel___static_type;
1828 fra.me.line = 262;
1829 fra.me.meth = LOCATE_metamodel___static_type___MMClosure___name;
1830 fra.me.has_broke = 0;
1831 fra.me.REG_size = 1;
1832 fra.me.REG[0] = NIT_NULL;
1833 fra.me.REG[0] = p0;
1834 /* ./metamodel//static_type.nit:262 */
1835 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____name(fra.me.REG[0])!=NIT_NULL);
1836 if (UNTAG_Bool(REGB0)) {
1837 } else {
1838 nit_abort("Uninitialized attribute %s", "_name", LOCATE_metamodel___static_type, 262);
1839 }
1840 fra.me.REG[0] = ATTR_metamodel___static_type___MMClosure____name(fra.me.REG[0]);
1841 stack_frame_head = fra.me.prev;
1842 return fra.me.REG[0];
1843 }
1844 val_t metamodel___static_type___MMClosure___signature(val_t p0){
1845 struct {struct stack_frame_t me;} fra;
1846 val_t REGB0;
1847 val_t tmp;
1848 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1849 fra.me.file = LOCATE_metamodel___static_type;
1850 fra.me.line = 265;
1851 fra.me.meth = LOCATE_metamodel___static_type___MMClosure___signature;
1852 fra.me.has_broke = 0;
1853 fra.me.REG_size = 1;
1854 fra.me.REG[0] = NIT_NULL;
1855 fra.me.REG[0] = p0;
1856 /* ./metamodel//static_type.nit:265 */
1857 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____signature(fra.me.REG[0])!=NIT_NULL);
1858 if (UNTAG_Bool(REGB0)) {
1859 } else {
1860 nit_abort("Uninitialized attribute %s", "_signature", LOCATE_metamodel___static_type, 265);
1861 }
1862 fra.me.REG[0] = ATTR_metamodel___static_type___MMClosure____signature(fra.me.REG[0]);
1863 stack_frame_head = fra.me.prev;
1864 return fra.me.REG[0];
1865 }
1866 val_t metamodel___static_type___MMClosure___is_break(val_t p0){
1867 struct {struct stack_frame_t me;} fra;
1868 val_t REGB0;
1869 val_t tmp;
1870 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1871 fra.me.file = LOCATE_metamodel___static_type;
1872 fra.me.line = 268;
1873 fra.me.meth = LOCATE_metamodel___static_type___MMClosure___is_break;
1874 fra.me.has_broke = 0;
1875 fra.me.REG_size = 1;
1876 fra.me.REG[0] = NIT_NULL;
1877 fra.me.REG[0] = p0;
1878 /* ./metamodel//static_type.nit:268 */
1879 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____is_break(fra.me.REG[0])!=NIT_NULL);
1880 if (UNTAG_Bool(REGB0)) {
1881 } else {
1882 nit_abort("Uninitialized attribute %s", "_is_break", LOCATE_metamodel___static_type, 268);
1883 }
1884 REGB0 = ATTR_metamodel___static_type___MMClosure____is_break(fra.me.REG[0]);
1885 stack_frame_head = fra.me.prev;
1886 return REGB0;
1887 }
1888 val_t metamodel___static_type___MMClosure___is_optional(val_t p0){
1889 struct {struct stack_frame_t me;} fra;
1890 val_t REGB0;
1891 val_t tmp;
1892 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1893 fra.me.file = LOCATE_metamodel___static_type;
1894 fra.me.line = 272;
1895 fra.me.meth = LOCATE_metamodel___static_type___MMClosure___is_optional;
1896 fra.me.has_broke = 0;
1897 fra.me.REG_size = 1;
1898 fra.me.REG[0] = NIT_NULL;
1899 fra.me.REG[0] = p0;
1900 /* ./metamodel//static_type.nit:272 */
1901 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____is_optional(fra.me.REG[0])!=NIT_NULL);
1902 if (UNTAG_Bool(REGB0)) {
1903 } else {
1904 nit_abort("Uninitialized attribute %s", "_is_optional", LOCATE_metamodel___static_type, 272);
1905 }
1906 REGB0 = ATTR_metamodel___static_type___MMClosure____is_optional(fra.me.REG[0]);
1907 stack_frame_head = fra.me.prev;
1908 return REGB0;
1909 }
1910 val_t metamodel___static_type___MMClosure___adaptation_to(val_t p0, val_t p1){
1911 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1912 val_t REGB0;
1913 val_t REGB1;
1914 val_t tmp;
1915 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1916 fra.me.file = LOCATE_metamodel___static_type;
1917 fra.me.line = 276;
1918 fra.me.meth = LOCATE_metamodel___static_type___MMClosure___adaptation_to;
1919 fra.me.has_broke = 0;
1920 fra.me.REG_size = 4;
1921 fra.me.REG[0] = NIT_NULL;
1922 fra.me.REG[1] = NIT_NULL;
1923 fra.me.REG[2] = NIT_NULL;
1924 fra.me.REG[3] = NIT_NULL;
1925 fra.me.REG[0] = p0;
1926 fra.me.REG[1] = p1;
1927 /* ./metamodel//static_type.nit:279 */
1928 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____name(fra.me.REG[0])!=NIT_NULL);
1929 if (UNTAG_Bool(REGB0)) {
1930 } else {
1931 nit_abort("Uninitialized attribute %s", "_name", LOCATE_metamodel___static_type, 279);
1932 }
1933 fra.me.REG[2] = ATTR_metamodel___static_type___MMClosure____name(fra.me.REG[0]);
1934 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____signature(fra.me.REG[0])!=NIT_NULL);
1935 if (UNTAG_Bool(REGB0)) {
1936 } else {
1937 nit_abort("Uninitialized attribute %s", "_signature", LOCATE_metamodel___static_type, 279);
1938 }
1939 fra.me.REG[3] = ATTR_metamodel___static_type___MMClosure____signature(fra.me.REG[0]);
1940 fra.me.REG[1] = CALL_metamodel___static_type___MMSignature___adaptation_to(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1941 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____is_break(fra.me.REG[0])!=NIT_NULL);
1942 if (UNTAG_Bool(REGB0)) {
1943 } else {
1944 nit_abort("Uninitialized attribute %s", "_is_break", LOCATE_metamodel___static_type, 279);
1945 }
1946 REGB0 = ATTR_metamodel___static_type___MMClosure____is_break(fra.me.REG[0]);
1947 REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____is_optional(fra.me.REG[0])!=NIT_NULL);
1948 if (UNTAG_Bool(REGB1)) {
1949 } else {
1950 nit_abort("Uninitialized attribute %s", "_is_optional", LOCATE_metamodel___static_type, 279);
1951 }
1952 REGB1 = ATTR_metamodel___static_type___MMClosure____is_optional(fra.me.REG[0]);
1953 fra.me.REG[1] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[2], fra.me.REG[1], REGB0, REGB1);
1954 goto label1;
1955 label1: while(0);
1956 stack_frame_head = fra.me.prev;
1957 return fra.me.REG[1];
1958 }
1959 void metamodel___static_type___MMClosure___init(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
1960 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMClosure].i;
1961 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1962 val_t REGB0;
1963 val_t REGB1;
1964 val_t tmp;
1965 if (init_table[itpos3]) return;
1966 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1967 fra.me.file = LOCATE_metamodel___static_type;
1968 fra.me.line = 282;
1969 fra.me.meth = LOCATE_metamodel___static_type___MMClosure___init;
1970 fra.me.has_broke = 0;
1971 fra.me.REG_size = 3;
1972 fra.me.REG[0] = NIT_NULL;
1973 fra.me.REG[1] = NIT_NULL;
1974 fra.me.REG[2] = NIT_NULL;
1975 fra.me.REG[0] = p0;
1976 fra.me.REG[1] = p1;
1977 fra.me.REG[2] = p2;
1978 REGB0 = p3;
1979 REGB1 = p4;
1980 /* ./metamodel//static_type.nit:284 */
1981 ATTR_metamodel___static_type___MMClosure____name(fra.me.REG[0]) = fra.me.REG[1];
1982 /* ./metamodel//static_type.nit:285 */
1983 ATTR_metamodel___static_type___MMClosure____signature(fra.me.REG[0]) = fra.me.REG[2];
1984 /* ./metamodel//static_type.nit:286 */
1985 ATTR_metamodel___static_type___MMClosure____is_break(fra.me.REG[0]) = REGB0;
1986 /* ./metamodel//static_type.nit:287 */
1987 ATTR_metamodel___static_type___MMClosure____is_optional(fra.me.REG[0]) = REGB1;
1988 stack_frame_head = fra.me.prev;
1989 init_table[itpos3] = 1;
1990 return;
1991 }
1992 val_t metamodel___static_type___MMClosure___not_for_self(val_t p0){
1993 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1994 val_t REGB0;
1995 val_t REGB1;
1996 val_t tmp;
1997 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1998 fra.me.file = LOCATE_metamodel___static_type;
1999 fra.me.line = 290;
2000 fra.me.meth = LOCATE_metamodel___static_type___MMClosure___not_for_self;
2001 fra.me.has_broke = 0;
2002 fra.me.REG_size = 3;
2003 fra.me.REG[0] = NIT_NULL;
2004 fra.me.REG[1] = NIT_NULL;
2005 fra.me.REG[2] = NIT_NULL;
2006 fra.me.REG[0] = p0;
2007 /* ./metamodel//static_type.nit:292 */
2008 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____signature(fra.me.REG[0])!=NIT_NULL);
2009 if (UNTAG_Bool(REGB0)) {
2010 } else {
2011 nit_abort("Uninitialized attribute %s", "_signature", LOCATE_metamodel___static_type, 292);
2012 }
2013 fra.me.REG[1] = ATTR_metamodel___static_type___MMClosure____signature(fra.me.REG[0]);
2014 fra.me.REG[1] = CALL_metamodel___static_type___MMSignature___not_for_self(fra.me.REG[1])(fra.me.REG[1]);
2015 /* ./metamodel//static_type.nit:293 */
2016 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____signature(fra.me.REG[0])!=NIT_NULL);
2017 if (UNTAG_Bool(REGB0)) {
2018 } else {
2019 nit_abort("Uninitialized attribute %s", "_signature", LOCATE_metamodel___static_type, 293);
2020 }
2021 fra.me.REG[2] = ATTR_metamodel___static_type___MMClosure____signature(fra.me.REG[0]);
2022 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[2]));
2023 if (UNTAG_Bool(REGB0)) {
2024 } else {
2025 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2026 REGB0 = REGB1;
2027 }
2028 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2029 if (UNTAG_Bool(REGB0)) {
2030 /* ./metamodel//static_type.nit:294 */
2031 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____name(fra.me.REG[0])!=NIT_NULL);
2032 if (UNTAG_Bool(REGB0)) {
2033 } else {
2034 nit_abort("Uninitialized attribute %s", "_name", LOCATE_metamodel___static_type, 294);
2035 }
2036 fra.me.REG[2] = ATTR_metamodel___static_type___MMClosure____name(fra.me.REG[0]);
2037 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____is_break(fra.me.REG[0])!=NIT_NULL);
2038 if (UNTAG_Bool(REGB0)) {
2039 } else {
2040 nit_abort("Uninitialized attribute %s", "_is_break", LOCATE_metamodel___static_type, 294);
2041 }
2042 REGB0 = ATTR_metamodel___static_type___MMClosure____is_break(fra.me.REG[0]);
2043 REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMClosure____is_optional(fra.me.REG[0])!=NIT_NULL);
2044 if (UNTAG_Bool(REGB1)) {
2045 } else {
2046 nit_abort("Uninitialized attribute %s", "_is_optional", LOCATE_metamodel___static_type, 294);
2047 }
2048 REGB1 = ATTR_metamodel___static_type___MMClosure____is_optional(fra.me.REG[0]);
2049 fra.me.REG[1] = NEW_MMClosure_metamodel___static_type___MMClosure___init(fra.me.REG[2], fra.me.REG[1], REGB0, REGB1);
2050 goto label1;
2051 } else {
2052 /* ./metamodel//static_type.nit:296 */
2053 fra.me.REG[1] = fra.me.REG[0];
2054 goto label1;
2055 }
2056 label1: while(0);
2057 stack_frame_head = fra.me.prev;
2058 return fra.me.REG[1];
2059 }
2060 val_t metamodel___static_type___MMClosure_____l(val_t p0, val_t p1){
2061 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2062 val_t REGB0;
2063 val_t REGB1;
2064 val_t REGB2;
2065 val_t tmp;
2066 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2067 fra.me.file = LOCATE_metamodel___static_type;
2068 fra.me.line = 300;
2069 fra.me.meth = LOCATE_metamodel___static_type___MMClosure_____l;
2070 fra.me.has_broke = 0;
2071 fra.me.REG_size = 2;
2072 fra.me.REG[0] = NIT_NULL;
2073 fra.me.REG[1] = NIT_NULL;
2074 fra.me.REG[0] = p0;
2075 fra.me.REG[1] = p1;
2076 /* ./metamodel//static_type.nit:302 */
2077 REGB0 = CALL_metamodel___static_type___MMClosure___is_optional(fra.me.REG[1])(fra.me.REG[1]);
2078 if (UNTAG_Bool(REGB0)) {
2079 REGB0 = CALL_metamodel___static_type___MMClosure___is_optional(fra.me.REG[0])(fra.me.REG[0]);
2080 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2081 } else {
2082 REGB1 = TAG_Bool(false);
2083 REGB0 = REGB1;
2084 }
2085 if (UNTAG_Bool(REGB0)) {
2086 REGB0 = TAG_Bool(false);
2087 goto label1;
2088 }
2089 /* ./metamodel//static_type.nit:303 */
2090 REGB1 = CALL_metamodel___static_type___MMClosure___is_break(fra.me.REG[1])(fra.me.REG[1]);
2091 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
2092 if (UNTAG_Bool(REGB1)) {
2093 REGB1 = CALL_metamodel___static_type___MMClosure___is_break(fra.me.REG[0])(fra.me.REG[0]);
2094 } else {
2095 REGB2 = TAG_Bool(false);
2096 REGB1 = REGB2;
2097 }
2098 if (UNTAG_Bool(REGB1)) {
2099 REGB1 = TAG_Bool(false);
2100 REGB0 = REGB1;
2101 goto label1;
2102 }
2103 /* ./metamodel//static_type.nit:304 */
2104 fra.me.REG[1] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[1])(fra.me.REG[1]);
2105 fra.me.REG[0] = CALL_metamodel___static_type___MMClosure___signature(fra.me.REG[0])(fra.me.REG[0]);
2106 REGB1 = CALL_metamodel___static_type___MMSignature_____l(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2107 REGB0 = REGB1;
2108 goto label1;
2109 label1: while(0);
2110 stack_frame_head = fra.me.prev;
2111 return REGB0;
2112 }
2113 void metamodel___static_type___MMAncestor___stype__eq(val_t p0, val_t p1){
2114 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2115 val_t tmp;
2116 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2117 fra.me.file = LOCATE_metamodel___static_type;
2118 fra.me.line = 310;
2119 fra.me.meth = LOCATE_metamodel___static_type___MMAncestor___stype__eq;
2120 fra.me.has_broke = 0;
2121 fra.me.REG_size = 2;
2122 fra.me.REG[0] = NIT_NULL;
2123 fra.me.REG[1] = NIT_NULL;
2124 fra.me.REG[0] = p0;
2125 fra.me.REG[1] = p1;
2126 /* ./metamodel//static_type.nit:310 */
2127 ATTR_metamodel___static_type___MMAncestor____stype(fra.me.REG[0]) = fra.me.REG[1];
2128 stack_frame_head = fra.me.prev;
2129 return;
2130 }
2131 val_t metamodel___static_type___MMAncestor___stype(val_t p0){
2132 struct {struct stack_frame_t me;} fra;
2133 val_t REGB0;
2134 val_t tmp;
2135 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2136 fra.me.file = LOCATE_metamodel___static_type;
2137 fra.me.line = 313;
2138 fra.me.meth = LOCATE_metamodel___static_type___MMAncestor___stype;
2139 fra.me.has_broke = 0;
2140 fra.me.REG_size = 1;
2141 fra.me.REG[0] = NIT_NULL;
2142 fra.me.REG[0] = p0;
2143 /* ./metamodel//static_type.nit:314 */
2144 fra.me.REG[0] = ATTR_metamodel___static_type___MMAncestor____stype(fra.me.REG[0]);
2145 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
2146 if (UNTAG_Bool(REGB0)) {
2147 } else {
2148 nit_abort("Cast failed", NULL, LOCATE_metamodel___static_type, 314);
2149 }
2150 goto label1;
2151 label1: while(0);
2152 stack_frame_head = fra.me.prev;
2153 return fra.me.REG[0];
2154 }
2155 void metamodel___static_type___MMAncestor___inheriter__eq(val_t p0, val_t p1){
2156 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2157 val_t tmp;
2158 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2159 fra.me.file = LOCATE_metamodel___static_type;
2160 fra.me.line = 316;
2161 fra.me.meth = LOCATE_metamodel___static_type___MMAncestor___inheriter__eq;
2162 fra.me.has_broke = 0;
2163 fra.me.REG_size = 2;
2164 fra.me.REG[0] = NIT_NULL;
2165 fra.me.REG[1] = NIT_NULL;
2166 fra.me.REG[0] = p0;
2167 fra.me.REG[1] = p1;
2168 /* ./metamodel//static_type.nit:316 */
2169 ATTR_metamodel___static_type___MMAncestor____inheriter(fra.me.REG[0]) = fra.me.REG[1];
2170 stack_frame_head = fra.me.prev;
2171 return;
2172 }
2173 val_t metamodel___static_type___MMAncestor___inheriter(val_t p0){
2174 struct {struct stack_frame_t me;} fra;
2175 val_t REGB0;
2176 val_t tmp;
2177 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2178 fra.me.file = LOCATE_metamodel___static_type;
2179 fra.me.line = 319;
2180 fra.me.meth = LOCATE_metamodel___static_type___MMAncestor___inheriter;
2181 fra.me.has_broke = 0;
2182 fra.me.REG_size = 1;
2183 fra.me.REG[0] = NIT_NULL;
2184 fra.me.REG[0] = p0;
2185 /* ./metamodel//static_type.nit:320 */
2186 fra.me.REG[0] = ATTR_metamodel___static_type___MMAncestor____inheriter(fra.me.REG[0]);
2187 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
2188 if (UNTAG_Bool(REGB0)) {
2189 } else {
2190 nit_abort("Cast failed", NULL, LOCATE_metamodel___static_type, 320);
2191 }
2192 goto label1;
2193 label1: while(0);
2194 stack_frame_head = fra.me.prev;
2195 return fra.me.REG[0];
2196 }
2197 val_t metamodel___static_type___MMAncestor___is_reffinement(val_t p0){
2198 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2199 val_t REGB0;
2200 val_t REGB1;
2201 val_t tmp;
2202 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2203 fra.me.file = LOCATE_metamodel___static_type;
2204 fra.me.line = 322;
2205 fra.me.meth = LOCATE_metamodel___static_type___MMAncestor___is_reffinement;
2206 fra.me.has_broke = 0;
2207 fra.me.REG_size = 2;
2208 fra.me.REG[0] = NIT_NULL;
2209 fra.me.REG[1] = NIT_NULL;
2210 fra.me.REG[0] = p0;
2211 /* ./metamodel//static_type.nit:323 */
2212 fra.me.REG[1] = CALL_metamodel___static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
2213 fra.me.REG[1] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
2214 fra.me.REG[0] = CALL_metamodel___static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
2215 fra.me.REG[0] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
2216 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
2217 if (UNTAG_Bool(REGB0)) {
2218 } else {
2219 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2220 REGB0 = REGB1;
2221 }
2222 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2223 goto label1;
2224 label1: while(0);
2225 stack_frame_head = fra.me.prev;
2226 return REGB0;
2227 }
2228 val_t metamodel___static_type___MMAncestor___is_specialisation(val_t p0){
2229 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2230 val_t REGB0;
2231 val_t REGB1;
2232 val_t tmp;
2233 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2234 fra.me.file = LOCATE_metamodel___static_type;
2235 fra.me.line = 326;
2236 fra.me.meth = LOCATE_metamodel___static_type___MMAncestor___is_specialisation;
2237 fra.me.has_broke = 0;
2238 fra.me.REG_size = 2;
2239 fra.me.REG[0] = NIT_NULL;
2240 fra.me.REG[1] = NIT_NULL;
2241 fra.me.REG[0] = p0;
2242 /* ./metamodel//static_type.nit:327 */
2243 fra.me.REG[1] = CALL_metamodel___static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
2244 fra.me.REG[1] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[1])(fra.me.REG[1]);
2245 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
2246 fra.me.REG[0] = CALL_metamodel___static_type___MMAncestor___inheriter(fra.me.REG[0])(fra.me.REG[0]);
2247 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
2248 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
2249 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
2250 if (UNTAG_Bool(REGB0)) {
2251 } else {
2252 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2253 REGB0 = REGB1;
2254 }
2255 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2256 goto label1;
2257 label1: while(0);
2258 stack_frame_head = fra.me.prev;
2259 return REGB0;
2260 }
2261 val_t metamodel___static_type___MMAncestor___local_class(val_t p0){
2262 struct {struct stack_frame_t me;} fra;
2263 val_t tmp;
2264 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2265 fra.me.file = LOCATE_metamodel___static_type;
2266 fra.me.line = 330;
2267 fra.me.meth = LOCATE_metamodel___static_type___MMAncestor___local_class;
2268 fra.me.has_broke = 0;
2269 fra.me.REG_size = 0;
2270 /* ./metamodel//static_type.nit:330 */
2271 nit_abort("Deferred method called", NULL, LOCATE_metamodel___static_type, 330);
2272 stack_frame_head = fra.me.prev;
2273 return NIT_NULL;
2274 }
2275 val_t metamodel___static_type___MMAncestor___to_s(val_t p0){
2276 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2277 val_t REGB0;
2278 val_t REGB1;
2279 val_t tmp;
2280 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2281 fra.me.file = LOCATE_metamodel___static_type;
2282 fra.me.line = 333;
2283 fra.me.meth = LOCATE_metamodel___static_type___MMAncestor___to_s;
2284 fra.me.has_broke = 0;
2285 fra.me.REG_size = 2;
2286 fra.me.REG[0] = NIT_NULL;
2287 fra.me.REG[1] = NIT_NULL;
2288 fra.me.REG[0] = p0;
2289 /* ./metamodel//static_type.nit:335 */
2290 fra.me.REG[1] = ATTR_metamodel___static_type___MMAncestor____stype(fra.me.REG[0]);
2291 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2292 if (UNTAG_Bool(REGB0)) {
2293 } else {
2294 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2295 if (UNTAG_Bool(REGB1)) {
2296 REGB1 = TAG_Bool(false);
2297 REGB0 = REGB1;
2298 } else {
2299 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2300 REGB0 = REGB1;
2301 }
2302 }
2303 if (UNTAG_Bool(REGB0)) {
2304 /* ./metamodel//static_type.nit:336 */
2305 fra.me.REG[1] = CALL_metamodel___static_type___MMAncestor___local_class(fra.me.REG[0])(fra.me.REG[0]);
2306 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2307 goto label1;
2308 } else {
2309 /* ./metamodel//static_type.nit:338 */
2310 fra.me.REG[0] = CALL_metamodel___static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
2311 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2312 fra.me.REG[1] = fra.me.REG[0];
2313 goto label1;
2314 }
2315 label1: while(0);
2316 stack_frame_head = fra.me.prev;
2317 return fra.me.REG[1];
2318 }
2319 void metamodel___static_type___MMAncestor___init(val_t p0, int* init_table){
2320 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMAncestor].i;
2321 struct {struct stack_frame_t me;} fra;
2322 val_t tmp;
2323 if (init_table[itpos4]) return;
2324 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2325 fra.me.file = LOCATE_metamodel___static_type;
2326 fra.me.line = 0;
2327 fra.me.meth = LOCATE_metamodel___static_type___MMAncestor___init;
2328 fra.me.has_broke = 0;
2329 fra.me.REG_size = 0;
2330 stack_frame_head = fra.me.prev;
2331 init_table[itpos4] = 1;
2332 return;
2333 }
2334 val_t metamodel___static_type___MMType___mmmodule(val_t p0){
2335 struct {struct stack_frame_t me;} fra;
2336 val_t tmp;
2337 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2338 fra.me.file = LOCATE_metamodel___static_type;
2339 fra.me.line = 346;
2340 fra.me.meth = LOCATE_metamodel___static_type___MMType___mmmodule;
2341 fra.me.has_broke = 0;
2342 fra.me.REG_size = 0;
2343 /* ./metamodel//static_type.nit:346 */
2344 nit_abort("Deferred method called", NULL, LOCATE_metamodel___static_type, 346);
2345 stack_frame_head = fra.me.prev;
2346 return NIT_NULL;
2347 }
2348 val_t metamodel___static_type___MMType___local_class(val_t p0){
2349 struct {struct stack_frame_t me;} fra;
2350 val_t tmp;
2351 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2352 fra.me.file = LOCATE_metamodel___static_type;
2353 fra.me.line = 349;
2354 fra.me.meth = LOCATE_metamodel___static_type___MMType___local_class;
2355 fra.me.has_broke = 0;
2356 fra.me.REG_size = 0;
2357 /* ./metamodel//static_type.nit:349 */
2358 nit_abort("Deferred method called", NULL, LOCATE_metamodel___static_type, 349);
2359 stack_frame_head = fra.me.prev;
2360 return NIT_NULL;
2361 }
2362 val_t metamodel___static_type___MMType___is_valid(val_t p0){
2363 struct {struct stack_frame_t me;} fra;
2364 val_t REGB0;
2365 val_t tmp;
2366 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2367 fra.me.file = LOCATE_metamodel___static_type;
2368 fra.me.line = 352;
2369 fra.me.meth = LOCATE_metamodel___static_type___MMType___is_valid;
2370 fra.me.has_broke = 0;
2371 fra.me.REG_size = 1;
2372 fra.me.REG[0] = NIT_NULL;
2373 fra.me.REG[0] = p0;
2374 /* ./metamodel//static_type.nit:354 */
2375 REGB0 = TAG_Bool(true);
2376 goto label1;
2377 label1: while(0);
2378 stack_frame_head = fra.me.prev;
2379 return REGB0;
2380 }
2381 val_t metamodel___static_type___MMType_____l(val_t p0, val_t p1){
2382 struct {struct stack_frame_t me;} fra;
2383 val_t tmp;
2384 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2385 fra.me.file = LOCATE_metamodel___static_type;
2386 fra.me.line = 356;
2387 fra.me.meth = LOCATE_metamodel___static_type___MMType_____l;
2388 fra.me.has_broke = 0;
2389 fra.me.REG_size = 0;
2390 /* ./metamodel//static_type.nit:356 */
2391 nit_abort("Deferred method called", NULL, LOCATE_metamodel___static_type, 356);
2392 stack_frame_head = fra.me.prev;
2393 return NIT_NULL;
2394 }
2395 val_t metamodel___static_type___MMType___is_supertype(val_t p0, val_t p1){
2396 struct {struct stack_frame_t me;} fra;
2397 val_t tmp;
2398 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2399 fra.me.file = LOCATE_metamodel___static_type;
2400 fra.me.line = 359;
2401 fra.me.meth = LOCATE_metamodel___static_type___MMType___is_supertype;
2402 fra.me.has_broke = 0;
2403 fra.me.REG_size = 0;
2404 /* ./metamodel//static_type.nit:359 */
2405 nit_abort("Deferred method called", NULL, LOCATE_metamodel___static_type, 359);
2406 stack_frame_head = fra.me.prev;
2407 return NIT_NULL;
2408 }
2409 val_t metamodel___static_type___MMType___for_module(val_t p0, val_t p1){
2410 struct {struct stack_frame_t me;} fra;
2411 val_t tmp;
2412 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2413 fra.me.file = LOCATE_metamodel___static_type;
2414 fra.me.line = 364;
2415 fra.me.meth = LOCATE_metamodel___static_type___MMType___for_module;
2416 fra.me.has_broke = 0;
2417 fra.me.REG_size = 0;
2418 /* ./metamodel//static_type.nit:364 */
2419 nit_abort("Deferred method called", NULL, LOCATE_metamodel___static_type, 364);
2420 stack_frame_head = fra.me.prev;
2421 return NIT_NULL;
2422 }
2423 val_t metamodel___static_type___MMType___adapt_to(val_t p0, val_t p1){
2424 struct {struct stack_frame_t me;} fra;
2425 val_t tmp;
2426 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2427 fra.me.file = LOCATE_metamodel___static_type;
2428 fra.me.line = 367;
2429 fra.me.meth = LOCATE_metamodel___static_type___MMType___adapt_to;
2430 fra.me.has_broke = 0;
2431 fra.me.REG_size = 0;
2432 /* ./metamodel//static_type.nit:367 */
2433 nit_abort("Deferred method called", NULL, LOCATE_metamodel___static_type, 367);
2434 stack_frame_head = fra.me.prev;
2435 return NIT_NULL;
2436 }
2437 val_t metamodel___static_type___MMType___upcast_for(val_t p0, val_t p1){
2438 struct {struct stack_frame_t me;} fra;
2439 val_t tmp;
2440 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2441 fra.me.file = LOCATE_metamodel___static_type;
2442 fra.me.line = 371;
2443 fra.me.meth = LOCATE_metamodel___static_type___MMType___upcast_for;
2444 fra.me.has_broke = 0;
2445 fra.me.REG_size = 0;
2446 /* ./metamodel//static_type.nit:371 */
2447 nit_abort("Deferred method called", NULL, LOCATE_metamodel___static_type, 371);
2448 stack_frame_head = fra.me.prev;
2449 return NIT_NULL;
2450 }
2451 val_t metamodel___static_type___MMType___not_for_self(val_t p0){
2452 struct {struct stack_frame_t me;} fra;
2453 val_t tmp;
2454 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2455 fra.me.file = LOCATE_metamodel___static_type;
2456 fra.me.line = 393;
2457 fra.me.meth = LOCATE_metamodel___static_type___MMType___not_for_self;
2458 fra.me.has_broke = 0;
2459 fra.me.REG_size = 1;
2460 fra.me.REG[0] = NIT_NULL;
2461 fra.me.REG[0] = p0;
2462 /* ./metamodel//static_type.nit:395 */
2463 goto label1;
2464 label1: while(0);
2465 stack_frame_head = fra.me.prev;
2466 return fra.me.REG[0];
2467 }
2468 val_t metamodel___static_type___MMType___is_nullable(val_t p0){
2469 struct {struct stack_frame_t me;} fra;
2470 val_t REGB0;
2471 val_t tmp;
2472 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2473 fra.me.file = LOCATE_metamodel___static_type;
2474 fra.me.line = 400;
2475 fra.me.meth = LOCATE_metamodel___static_type___MMType___is_nullable;
2476 fra.me.has_broke = 0;
2477 fra.me.REG_size = 1;
2478 fra.me.REG[0] = NIT_NULL;
2479 fra.me.REG[0] = p0;
2480 /* ./metamodel//static_type.nit:401 */
2481 REGB0 = TAG_Bool(false);
2482 goto label1;
2483 label1: while(0);
2484 stack_frame_head = fra.me.prev;
2485 return REGB0;
2486 }
2487 val_t metamodel___static_type___MMType___as_nullable(val_t p0){
2488 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2489 val_t REGB0;
2490 val_t REGB1;
2491 val_t tmp;
2492 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2493 fra.me.file = LOCATE_metamodel___static_type;
2494 fra.me.line = 403;
2495 fra.me.meth = LOCATE_metamodel___static_type___MMType___as_nullable;
2496 fra.me.has_broke = 0;
2497 fra.me.REG_size = 3;
2498 fra.me.REG[0] = NIT_NULL;
2499 fra.me.REG[1] = NIT_NULL;
2500 fra.me.REG[2] = NIT_NULL;
2501 fra.me.REG[0] = p0;
2502 /* ./metamodel//static_type.nit:406 */
2503 fra.me.REG[1] = ATTR_metamodel___static_type___MMType____as_nullable_cache(fra.me.REG[0]);
2504 /* ./metamodel//static_type.nit:407 */
2505 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2506 if (UNTAG_Bool(REGB0)) {
2507 } else {
2508 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2509 if (UNTAG_Bool(REGB1)) {
2510 REGB1 = TAG_Bool(false);
2511 REGB0 = REGB1;
2512 } else {
2513 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2514 REGB0 = REGB1;
2515 }
2516 }
2517 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2518 if (UNTAG_Bool(REGB0)) {
2519 goto label1;
2520 }
2521 /* ./metamodel//static_type.nit:408 */
2522 fra.me.REG[2] = NEW_MMNullableType_metamodel___static_type___MMNullableType___init(fra.me.REG[0]);
2523 /* ./metamodel//static_type.nit:409 */
2524 ATTR_metamodel___static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[2];
2525 /* ./metamodel//static_type.nit:410 */
2526 fra.me.REG[1] = fra.me.REG[2];
2527 goto label1;
2528 label1: while(0);
2529 stack_frame_head = fra.me.prev;
2530 return fra.me.REG[1];
2531 }
2532 val_t metamodel___static_type___MMType___as_notnull(val_t p0){
2533 struct {struct stack_frame_t me;} fra;
2534 val_t tmp;
2535 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2536 fra.me.file = LOCATE_metamodel___static_type;
2537 fra.me.line = 413;
2538 fra.me.meth = LOCATE_metamodel___static_type___MMType___as_notnull;
2539 fra.me.has_broke = 0;
2540 fra.me.REG_size = 1;
2541 fra.me.REG[0] = NIT_NULL;
2542 fra.me.REG[0] = p0;
2543 /* ./metamodel//static_type.nit:415 */
2544 goto label1;
2545 label1: while(0);
2546 stack_frame_head = fra.me.prev;
2547 return fra.me.REG[0];
2548 }
2549 void metamodel___static_type___MMType___init(val_t p0, int* init_table){
2550 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMType].i;
2551 struct {struct stack_frame_t me;} fra;
2552 val_t tmp;
2553 if (init_table[itpos5]) return;
2554 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2555 fra.me.file = LOCATE_metamodel___static_type;
2556 fra.me.line = 0;
2557 fra.me.meth = LOCATE_metamodel___static_type___MMType___init;
2558 fra.me.has_broke = 0;
2559 fra.me.REG_size = 0;
2560 stack_frame_head = fra.me.prev;
2561 init_table[itpos5] = 1;
2562 return;
2563 }
2564 val_t metamodel___static_type___MMNullableType___is_valid(val_t p0){
2565 struct {struct stack_frame_t me;} fra;
2566 val_t REGB0;
2567 val_t tmp;
2568 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2569 fra.me.file = LOCATE_metamodel___static_type;
2570 fra.me.line = 421;
2571 fra.me.meth = LOCATE_metamodel___static_type___MMNullableType___is_valid;
2572 fra.me.has_broke = 0;
2573 fra.me.REG_size = 1;
2574 fra.me.REG[0] = NIT_NULL;
2575 fra.me.REG[0] = p0;
2576 /* ./metamodel//static_type.nit:421 */
2577 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2578 if (UNTAG_Bool(REGB0)) {
2579 } else {
2580 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_metamodel___static_type, 421);
2581 }
2582 fra.me.REG[0] = ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0]);
2583 REGB0 = CALL_metamodel___static_type___MMType___is_valid(fra.me.REG[0])(fra.me.REG[0]);
2584 goto label1;
2585 label1: while(0);
2586 stack_frame_head = fra.me.prev;
2587 return REGB0;
2588 }
2589 val_t metamodel___static_type___MMNullableType___is_nullable(val_t p0){
2590 struct {struct stack_frame_t me;} fra;
2591 val_t REGB0;
2592 val_t tmp;
2593 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2594 fra.me.file = LOCATE_metamodel___static_type;
2595 fra.me.line = 422;
2596 fra.me.meth = LOCATE_metamodel___static_type___MMNullableType___is_nullable;
2597 fra.me.has_broke = 0;
2598 fra.me.REG_size = 1;
2599 fra.me.REG[0] = NIT_NULL;
2600 fra.me.REG[0] = p0;
2601 /* ./metamodel//static_type.nit:422 */
2602 REGB0 = TAG_Bool(true);
2603 goto label1;
2604 label1: while(0);
2605 stack_frame_head = fra.me.prev;
2606 return REGB0;
2607 }
2608 val_t metamodel___static_type___MMNullableType___as_notnull(val_t p0){
2609 struct {struct stack_frame_t me;} fra;
2610 val_t REGB0;
2611 val_t tmp;
2612 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2613 fra.me.file = LOCATE_metamodel___static_type;
2614 fra.me.line = 423;
2615 fra.me.meth = LOCATE_metamodel___static_type___MMNullableType___as_notnull;
2616 fra.me.has_broke = 0;
2617 fra.me.REG_size = 1;
2618 fra.me.REG[0] = NIT_NULL;
2619 fra.me.REG[0] = p0;
2620 /* ./metamodel//static_type.nit:423 */
2621 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2622 if (UNTAG_Bool(REGB0)) {
2623 } else {
2624 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_metamodel___static_type, 423);
2625 }
2626 fra.me.REG[0] = ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0]);
2627 goto label1;
2628 label1: while(0);
2629 stack_frame_head = fra.me.prev;
2630 return fra.me.REG[0];
2631 }
2632 val_t metamodel___static_type___MMNullableType___as_nullable(val_t p0){
2633 struct {struct stack_frame_t me;} fra;
2634 val_t tmp;
2635 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2636 fra.me.file = LOCATE_metamodel___static_type;
2637 fra.me.line = 424;
2638 fra.me.meth = LOCATE_metamodel___static_type___MMNullableType___as_nullable;
2639 fra.me.has_broke = 0;
2640 fra.me.REG_size = 1;
2641 fra.me.REG[0] = NIT_NULL;
2642 fra.me.REG[0] = p0;
2643 /* ./metamodel//static_type.nit:424 */
2644 goto label1;
2645 label1: while(0);
2646 stack_frame_head = fra.me.prev;
2647 return fra.me.REG[0];
2648 }
2649 void metamodel___static_type___MMNullableType___init(val_t p0, val_t p1, int* init_table){
2650 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMNullableType].i;
2651 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2652 val_t tmp;
2653 if (init_table[itpos6]) return;
2654 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2655 fra.me.file = LOCATE_metamodel___static_type;
2656 fra.me.line = 425;
2657 fra.me.meth = LOCATE_metamodel___static_type___MMNullableType___init;
2658 fra.me.has_broke = 0;
2659 fra.me.REG_size = 3;
2660 fra.me.REG[0] = NIT_NULL;
2661 fra.me.REG[1] = NIT_NULL;
2662 fra.me.REG[2] = NIT_NULL;
2663 fra.me.REG[0] = p0;
2664 fra.me.REG[1] = p1;
2665 /* ./metamodel//static_type.nit:425 */
2666 fra.me.REG[2] = fra.me.REG[0];
2667 CALL_metamodel___static_type___MMType___init(fra.me.REG[0])(fra.me.REG[0], init_table);
2668 ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[2]) = fra.me.REG[1];
2669 stack_frame_head = fra.me.prev;
2670 init_table[itpos6] = 1;
2671 return;
2672 }
2673 val_t metamodel___static_type___MMNullableType___mmmodule(val_t p0){
2674 struct {struct stack_frame_t me;} fra;
2675 val_t REGB0;
2676 val_t tmp;
2677 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2678 fra.me.file = LOCATE_metamodel___static_type;
2679 fra.me.line = 427;
2680 fra.me.meth = LOCATE_metamodel___static_type___MMNullableType___mmmodule;
2681 fra.me.has_broke = 0;
2682 fra.me.REG_size = 1;
2683 fra.me.REG[0] = NIT_NULL;
2684 fra.me.REG[0] = p0;
2685 /* ./metamodel//static_type.nit:427 */
2686 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2687 if (UNTAG_Bool(REGB0)) {
2688 } else {
2689 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_metamodel___static_type, 427);
2690 }
2691 fra.me.REG[0] = ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0]);
2692 fra.me.REG[0] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
2693 goto label1;
2694 label1: while(0);
2695 stack_frame_head = fra.me.prev;
2696 return fra.me.REG[0];
2697 }
2698 val_t metamodel___static_type___MMNullableType___local_class(val_t p0){
2699 struct {struct stack_frame_t me;} fra;
2700 val_t REGB0;
2701 val_t tmp;
2702 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2703 fra.me.file = LOCATE_metamodel___static_type;
2704 fra.me.line = 429;
2705 fra.me.meth = LOCATE_metamodel___static_type___MMNullableType___local_class;
2706 fra.me.has_broke = 0;
2707 fra.me.REG_size = 1;
2708 fra.me.REG[0] = NIT_NULL;
2709 fra.me.REG[0] = p0;
2710 /* ./metamodel//static_type.nit:429 */
2711 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2712 if (UNTAG_Bool(REGB0)) {
2713 } else {
2714 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_metamodel___static_type, 429);
2715 }
2716 fra.me.REG[0] = ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0]);
2717 fra.me.REG[0] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
2718 goto label1;
2719 label1: while(0);
2720 stack_frame_head = fra.me.prev;
2721 return fra.me.REG[0];
2722 }
2723 val_t metamodel___static_type___MMNullableType_____l(val_t p0, val_t p1){
2724 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2725 val_t REGB0;
2726 val_t REGB1;
2727 val_t tmp;
2728 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2729 fra.me.file = LOCATE_metamodel___static_type;
2730 fra.me.line = 431;
2731 fra.me.meth = LOCATE_metamodel___static_type___MMNullableType_____l;
2732 fra.me.has_broke = 0;
2733 fra.me.REG_size = 2;
2734 fra.me.REG[0] = NIT_NULL;
2735 fra.me.REG[1] = NIT_NULL;
2736 fra.me.REG[0] = p0;
2737 fra.me.REG[1] = p1;
2738 /* ./metamodel//static_type.nit:433 */
2739 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMNullableType, ID_metamodel___static_type___MMNullableType)) /*cast MMNullableType*/;
2740 if (UNTAG_Bool(REGB0)) {
2741 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2742 if (UNTAG_Bool(REGB0)) {
2743 } else {
2744 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_metamodel___static_type, 433);
2745 }
2746 fra.me.REG[0] = ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0]);
2747 fra.me.REG[1] = CALL_metamodel___static_type___MMType___as_notnull(fra.me.REG[1])(fra.me.REG[1]);
2748 REGB0 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2749 } else {
2750 REGB1 = TAG_Bool(false);
2751 REGB0 = REGB1;
2752 }
2753 goto label1;
2754 label1: while(0);
2755 stack_frame_head = fra.me.prev;
2756 return REGB0;
2757 }
2758 val_t metamodel___static_type___MMNullableType___to_s(val_t p0){
2759 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2760 val_t REGB0;
2761 val_t tmp;
2762 static val_t once_value_1; /* Once value */
2763 static val_t once_value_2; /* Once value */
2764 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2765 fra.me.file = LOCATE_metamodel___static_type;
2766 fra.me.line = 436;
2767 fra.me.meth = LOCATE_metamodel___static_type___MMNullableType___to_s;
2768 fra.me.has_broke = 0;
2769 fra.me.REG_size = 3;
2770 fra.me.REG[0] = NIT_NULL;
2771 fra.me.REG[1] = NIT_NULL;
2772 fra.me.REG[2] = NIT_NULL;
2773 fra.me.REG[0] = p0;
2774 /* ./metamodel//static_type.nit:438 */
2775 REGB0 = TAG_Int(3);
2776 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
2777 if (!once_value_1) {
2778 fra.me.REG[2] = BOX_NativeString("nullable ");
2779 REGB0 = TAG_Int(9);
2780 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
2781 once_value_1 = fra.me.REG[2];
2782 register_static_object(&once_value_1);
2783 } else fra.me.REG[2] = once_value_1;
2784 fra.me.REG[2] = fra.me.REG[2];
2785 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2786 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2787 if (UNTAG_Bool(REGB0)) {
2788 } else {
2789 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_metamodel___static_type, 438);
2790 }
2791 fra.me.REG[0] = ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0]);
2792 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2793 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2794 if (!once_value_2) {
2795 fra.me.REG[0] = BOX_NativeString("");
2796 REGB0 = TAG_Int(0);
2797 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
2798 once_value_2 = fra.me.REG[0];
2799 register_static_object(&once_value_2);
2800 } else fra.me.REG[0] = once_value_2;
2801 fra.me.REG[0] = fra.me.REG[0];
2802 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2803 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2804 goto label3;
2805 label3: while(0);
2806 stack_frame_head = fra.me.prev;
2807 return fra.me.REG[1];
2808 }
2809 val_t metamodel___static_type___MMNullableType___is_supertype(val_t p0, val_t p1){
2810 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2811 val_t REGB0;
2812 val_t tmp;
2813 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2814 fra.me.file = LOCATE_metamodel___static_type;
2815 fra.me.line = 441;
2816 fra.me.meth = LOCATE_metamodel___static_type___MMNullableType___is_supertype;
2817 fra.me.has_broke = 0;
2818 fra.me.REG_size = 2;
2819 fra.me.REG[0] = NIT_NULL;
2820 fra.me.REG[1] = NIT_NULL;
2821 fra.me.REG[0] = p0;
2822 fra.me.REG[1] = p1;
2823 /* ./metamodel//static_type.nit:443 */
2824 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2825 if (UNTAG_Bool(REGB0)) {
2826 } else {
2827 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_metamodel___static_type, 443);
2828 }
2829 fra.me.REG[0] = ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0]);
2830 REGB0 = CALL_metamodel___static_type___MMType___is_supertype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2831 goto label1;
2832 label1: while(0);
2833 stack_frame_head = fra.me.prev;
2834 return REGB0;
2835 }
2836 val_t metamodel___static_type___MMNullableType___for_module(val_t p0, val_t p1){
2837 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2838 val_t REGB0;
2839 val_t tmp;
2840 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2841 fra.me.file = LOCATE_metamodel___static_type;
2842 fra.me.line = 446;
2843 fra.me.meth = LOCATE_metamodel___static_type___MMNullableType___for_module;
2844 fra.me.has_broke = 0;
2845 fra.me.REG_size = 2;
2846 fra.me.REG[0] = NIT_NULL;
2847 fra.me.REG[1] = NIT_NULL;
2848 fra.me.REG[0] = p0;
2849 fra.me.REG[1] = p1;
2850 /* ./metamodel//static_type.nit:448 */
2851 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2852 if (UNTAG_Bool(REGB0)) {
2853 } else {
2854 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_metamodel___static_type, 448);
2855 }
2856 fra.me.REG[0] = ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0]);
2857 fra.me.REG[1] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2858 fra.me.REG[1] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[1])(fra.me.REG[1]);
2859 goto label1;
2860 label1: while(0);
2861 stack_frame_head = fra.me.prev;
2862 return fra.me.REG[1];
2863 }
2864 val_t metamodel___static_type___MMNullableType___adapt_to(val_t p0, val_t p1){
2865 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2866 val_t REGB0;
2867 val_t tmp;
2868 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2869 fra.me.file = LOCATE_metamodel___static_type;
2870 fra.me.line = 451;
2871 fra.me.meth = LOCATE_metamodel___static_type___MMNullableType___adapt_to;
2872 fra.me.has_broke = 0;
2873 fra.me.REG_size = 2;
2874 fra.me.REG[0] = NIT_NULL;
2875 fra.me.REG[1] = NIT_NULL;
2876 fra.me.REG[0] = p0;
2877 fra.me.REG[1] = p1;
2878 /* ./metamodel//static_type.nit:453 */
2879 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2880 if (UNTAG_Bool(REGB0)) {
2881 } else {
2882 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_metamodel___static_type, 453);
2883 }
2884 fra.me.REG[0] = ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0]);
2885 fra.me.REG[1] = CALL_metamodel___static_type___MMType___adapt_to(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2886 fra.me.REG[1] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[1])(fra.me.REG[1]);
2887 goto label1;
2888 label1: while(0);
2889 stack_frame_head = fra.me.prev;
2890 return fra.me.REG[1];
2891 }
2892 val_t metamodel___static_type___MMNullableType___upcast_for(val_t p0, val_t p1){
2893 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2894 val_t REGB0;
2895 val_t tmp;
2896 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2897 fra.me.file = LOCATE_metamodel___static_type;
2898 fra.me.line = 456;
2899 fra.me.meth = LOCATE_metamodel___static_type___MMNullableType___upcast_for;
2900 fra.me.has_broke = 0;
2901 fra.me.REG_size = 2;
2902 fra.me.REG[0] = NIT_NULL;
2903 fra.me.REG[1] = NIT_NULL;
2904 fra.me.REG[0] = p0;
2905 fra.me.REG[1] = p1;
2906 /* ./metamodel//static_type.nit:458 */
2907 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2908 if (UNTAG_Bool(REGB0)) {
2909 } else {
2910 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_metamodel___static_type, 458);
2911 }
2912 fra.me.REG[0] = ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0]);
2913 fra.me.REG[1] = CALL_metamodel___static_type___MMType___upcast_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2914 goto label1;
2915 label1: while(0);
2916 stack_frame_head = fra.me.prev;
2917 return fra.me.REG[1];
2918 }
2919 val_t metamodel___static_type___MMNullableType___not_for_self(val_t p0){
2920 struct {struct stack_frame_t me;} fra;
2921 val_t REGB0;
2922 val_t tmp;
2923 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2924 fra.me.file = LOCATE_metamodel___static_type;
2925 fra.me.line = 461;
2926 fra.me.meth = LOCATE_metamodel___static_type___MMNullableType___not_for_self;
2927 fra.me.has_broke = 0;
2928 fra.me.REG_size = 1;
2929 fra.me.REG[0] = NIT_NULL;
2930 fra.me.REG[0] = p0;
2931 /* ./metamodel//static_type.nit:463 */
2932 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2933 if (UNTAG_Bool(REGB0)) {
2934 } else {
2935 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_metamodel___static_type, 463);
2936 }
2937 fra.me.REG[0] = ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0]);
2938 fra.me.REG[0] = CALL_metamodel___static_type___MMType___not_for_self(fra.me.REG[0])(fra.me.REG[0]);
2939 fra.me.REG[0] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[0])(fra.me.REG[0]);
2940 goto label1;
2941 label1: while(0);
2942 stack_frame_head = fra.me.prev;
2943 return fra.me.REG[0];
2944 }
2945 val_t metamodel___static_type___MMTypeClass___local_class(val_t p0){
2946 struct {struct stack_frame_t me;} fra;
2947 val_t REGB0;
2948 val_t tmp;
2949 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2950 fra.me.file = LOCATE_metamodel___static_type;
2951 fra.me.line = 469;
2952 fra.me.meth = LOCATE_metamodel___static_type___MMTypeClass___local_class;
2953 fra.me.has_broke = 0;
2954 fra.me.REG_size = 1;
2955 fra.me.REG[0] = NIT_NULL;
2956 fra.me.REG[0] = p0;
2957 /* ./metamodel//static_type.nit:469 */
2958 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
2959 if (UNTAG_Bool(REGB0)) {
2960 } else {
2961 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_metamodel___static_type, 469);
2962 }
2963 fra.me.REG[0] = ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0]);
2964 stack_frame_head = fra.me.prev;
2965 return fra.me.REG[0];
2966 }
2967 val_t metamodel___static_type___MMTypeClass___mmmodule(val_t p0){
2968 struct {struct stack_frame_t me;} fra;
2969 val_t REGB0;
2970 val_t tmp;
2971 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2972 fra.me.file = LOCATE_metamodel___static_type;
2973 fra.me.line = 470;
2974 fra.me.meth = LOCATE_metamodel___static_type___MMTypeClass___mmmodule;
2975 fra.me.has_broke = 0;
2976 fra.me.REG_size = 1;
2977 fra.me.REG[0] = NIT_NULL;
2978 fra.me.REG[0] = p0;
2979 /* ./metamodel//static_type.nit:470 */
2980 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
2981 if (UNTAG_Bool(REGB0)) {
2982 } else {
2983 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_metamodel___static_type, 470);
2984 }
2985 fra.me.REG[0] = ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0]);
2986 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
2987 goto label1;
2988 label1: while(0);
2989 stack_frame_head = fra.me.prev;
2990 return fra.me.REG[0];
2991 }
2992 val_t metamodel___static_type___MMTypeClass_____l(val_t p0, val_t p1){
2993 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2994 val_t REGB0;
2995 val_t tmp;
2996 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2997 fra.me.file = LOCATE_metamodel___static_type;
2998 fra.me.line = 471;
2999 fra.me.meth = LOCATE_metamodel___static_type___MMTypeClass_____l;
3000 fra.me.has_broke = 0;
3001 fra.me.REG_size = 2;
3002 fra.me.REG[0] = NIT_NULL;
3003 fra.me.REG[1] = NIT_NULL;
3004 fra.me.REG[0] = p0;
3005 fra.me.REG[1] = p1;
3006 /* ./metamodel//static_type.nit:471 */
3007 REGB0 = CALL_metamodel___static_type___MMType___is_supertype(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3008 goto label1;
3009 label1: while(0);
3010 stack_frame_head = fra.me.prev;
3011 return REGB0;
3012 }
3013 val_t metamodel___static_type___MMTypeClass___to_s(val_t p0){
3014 struct {struct stack_frame_t me;} fra;
3015 val_t REGB0;
3016 val_t tmp;
3017 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3018 fra.me.file = LOCATE_metamodel___static_type;
3019 fra.me.line = 473;
3020 fra.me.meth = LOCATE_metamodel___static_type___MMTypeClass___to_s;
3021 fra.me.has_broke = 0;
3022 fra.me.REG_size = 1;
3023 fra.me.REG[0] = NIT_NULL;
3024 fra.me.REG[0] = p0;
3025 /* ./metamodel//static_type.nit:475 */
3026 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
3027 if (UNTAG_Bool(REGB0)) {
3028 } else {
3029 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_metamodel___static_type, 475);
3030 }
3031 fra.me.REG[0] = ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0]);
3032 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
3033 goto label1;
3034 label1: while(0);
3035 stack_frame_head = fra.me.prev;
3036 return fra.me.REG[0];
3037 }
3038 val_t metamodel___static_type___MMTypeClass___upcast_for(val_t p0, val_t p1){
3039 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3040 val_t REGB0;
3041 val_t REGB1;
3042 val_t tmp;
3043 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3044 fra.me.file = LOCATE_metamodel___static_type;
3045 fra.me.line = 478;
3046 fra.me.meth = LOCATE_metamodel___static_type___MMTypeClass___upcast_for;
3047 fra.me.has_broke = 0;
3048 fra.me.REG_size = 4;
3049 fra.me.REG[0] = NIT_NULL;
3050 fra.me.REG[1] = NIT_NULL;
3051 fra.me.REG[2] = NIT_NULL;
3052 fra.me.REG[3] = NIT_NULL;
3053 fra.me.REG[0] = p0;
3054 fra.me.REG[1] = p1;
3055 /* ./metamodel//static_type.nit:480 */
3056 fra.me.REG[2] = fra.me.REG[0];
3057 /* ./metamodel//static_type.nit:481 */
3058 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
3059 if (UNTAG_Bool(REGB0)) {
3060 } else {
3061 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_metamodel___static_type, 481);
3062 }
3063 fra.me.REG[3] = ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0]);
3064 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
3065 if (UNTAG_Bool(REGB0)) {
3066 } else {
3067 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3068 REGB0 = REGB1;
3069 }
3070 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3071 if (UNTAG_Bool(REGB0)) {
3072 /* ./metamodel//static_type.nit:482 */
3073 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
3074 if (UNTAG_Bool(REGB0)) {
3075 } else {
3076 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_metamodel___static_type, 482);
3077 }
3078 fra.me.REG[0] = ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0]);
3079 fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___ancestor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3080 fra.me.REG[2] = fra.me.REG[1];
3081 }
3082 /* ./metamodel//static_type.nit:484 */
3083 goto label1;
3084 label1: while(0);
3085 stack_frame_head = fra.me.prev;
3086 return fra.me.REG[2];
3087 }
3088 void metamodel___static_type___MMTypeClass___init(val_t p0, val_t p1, int* init_table){
3089 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMTypeClass].i;
3090 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3091 val_t tmp;
3092 if (init_table[itpos7]) return;
3093 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3094 fra.me.file = LOCATE_metamodel___static_type;
3095 fra.me.line = 487;
3096 fra.me.meth = LOCATE_metamodel___static_type___MMTypeClass___init;
3097 fra.me.has_broke = 0;
3098 fra.me.REG_size = 3;
3099 fra.me.REG[0] = NIT_NULL;
3100 fra.me.REG[1] = NIT_NULL;
3101 fra.me.REG[2] = NIT_NULL;
3102 fra.me.REG[0] = p0;
3103 fra.me.REG[1] = p1;
3104 /* ./metamodel//static_type.nit:487 */
3105 fra.me.REG[2] = fra.me.REG[0];
3106 CALL_metamodel___static_type___MMType___init(fra.me.REG[0])(fra.me.REG[0], init_table);
3107 /* ./metamodel//static_type.nit:489 */
3108 ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[2]) = fra.me.REG[1];
3109 stack_frame_head = fra.me.prev;
3110 init_table[itpos7] = 1;
3111 return;
3112 }
3113 val_t metamodel___static_type___MMTypeSimpleClass___is_supertype(val_t p0, val_t p1){
3114 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3115 val_t REGB0;
3116 val_t tmp;
3117 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3118 fra.me.file = LOCATE_metamodel___static_type;
3119 fra.me.line = 495;
3120 fra.me.meth = LOCATE_metamodel___static_type___MMTypeSimpleClass___is_supertype;
3121 fra.me.has_broke = 0;
3122 fra.me.REG_size = 2;
3123 fra.me.REG[0] = NIT_NULL;
3124 fra.me.REG[1] = NIT_NULL;
3125 fra.me.REG[0] = p0;
3126 fra.me.REG[1] = p1;
3127 /* ./metamodel//static_type.nit:497 */
3128 fra.me.REG[1] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[1])(fra.me.REG[1]);
3129 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
3130 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
3131 if (UNTAG_Bool(REGB0)) {
3132 } else {
3133 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_metamodel___static_type, 497);
3134 }
3135 fra.me.REG[0] = ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0]);
3136 REGB0 = CALL_metamodel___partial_order___PartialOrderElement_____leq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3137 goto label1;
3138 label1: while(0);
3139 stack_frame_head = fra.me.prev;
3140 return REGB0;
3141 }
3142 val_t metamodel___static_type___MMTypeSimpleClass___for_module(val_t p0, val_t p1){
3143 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3144 val_t REGB0;
3145 val_t REGB1;
3146 val_t tmp;
3147 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3148 fra.me.file = LOCATE_metamodel___static_type;
3149 fra.me.line = 500;
3150 fra.me.meth = LOCATE_metamodel___static_type___MMTypeSimpleClass___for_module;
3151 fra.me.has_broke = 0;
3152 fra.me.REG_size = 4;
3153 fra.me.REG[0] = NIT_NULL;
3154 fra.me.REG[1] = NIT_NULL;
3155 fra.me.REG[2] = NIT_NULL;
3156 fra.me.REG[3] = NIT_NULL;
3157 fra.me.REG[0] = p0;
3158 fra.me.REG[1] = p1;
3159 /* ./metamodel//static_type.nit:502 */
3160 fra.me.REG[2] = fra.me.REG[0];
3161 /* ./metamodel//static_type.nit:503 */
3162 fra.me.REG[3] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
3163 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
3164 if (UNTAG_Bool(REGB0)) {
3165 } else {
3166 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
3167 REGB0 = REGB1;
3168 }
3169 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3170 if (UNTAG_Bool(REGB0)) {
3171 /* ./metamodel//static_type.nit:504 */
3172 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
3173 if (UNTAG_Bool(REGB0)) {
3174 } else {
3175 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_metamodel___static_type, 504);
3176 }
3177 fra.me.REG[0] = ATTR_metamodel___static_type___MMTypeClass____local_class(fra.me.REG[0]);
3178 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3179 fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
3180 fra.me.REG[2] = fra.me.REG[1];
3181 }
3182 /* ./metamodel//static_type.nit:506 */
3183 goto label1;
3184 label1: while(0);
3185 stack_frame_head = fra.me.prev;
3186 return fra.me.REG[2];
3187 }
3188 val_t metamodel___static_type___MMTypeSimpleClass___adapt_to(val_t p0, val_t p1){
3189 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3190 val_t tmp;
3191 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3192 fra.me.file = LOCATE_metamodel___static_type;
3193 fra.me.line = 509;
3194 fra.me.meth = LOCATE_metamodel___static_type___MMTypeSimpleClass___adapt_to;
3195 fra.me.has_broke = 0;
3196 fra.me.REG_size = 2;
3197 fra.me.REG[0] = NIT_NULL;
3198 fra.me.REG[1] = NIT_NULL;
3199 fra.me.REG[0] = p0;
3200 fra.me.REG[1] = p1;
3201 /* ./metamodel//static_type.nit:509 */
3202 goto label1;
3203 label1: while(0);
3204 stack_frame_head = fra.me.prev;
3205 return fra.me.REG[0];
3206 }
3207 void metamodel___static_type___MMTypeSimpleClass___init(val_t p0, val_t p1, int* init_table){
3208 int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMTypeSimpleClass].i;
3209 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3210 val_t tmp;
3211 if (init_table[itpos8]) return;
3212 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3213 fra.me.file = LOCATE_metamodel___static_type;
3214 fra.me.line = 511;
3215 fra.me.meth = LOCATE_metamodel___static_type___MMTypeSimpleClass___init;
3216 fra.me.has_broke = 0;
3217 fra.me.REG_size = 2;
3218 fra.me.REG[0] = NIT_NULL;
3219 fra.me.REG[1] = NIT_NULL;
3220 fra.me.REG[0] = p0;
3221 fra.me.REG[1] = p1;
3222 /* ./metamodel//static_type.nit:513 */
3223 CALL_metamodel___static_type___MMTypeClass___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
3224 stack_frame_head = fra.me.prev;
3225 init_table[itpos8] = 1;
3226 return;
3227 }
3228 val_t metamodel___static_type___MMTypeNone___mmmodule(val_t p0){
3229 struct {struct stack_frame_t me;} fra;
3230 val_t REGB0;
3231 val_t tmp;
3232 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3233 fra.me.file = LOCATE_metamodel___static_type;
3234 fra.me.line = 520;
3235 fra.me.meth = LOCATE_metamodel___static_type___MMTypeNone___mmmodule;
3236 fra.me.has_broke = 0;
3237 fra.me.REG_size = 1;
3238 fra.me.REG[0] = NIT_NULL;
3239 fra.me.REG[0] = p0;
3240 /* ./metamodel//static_type.nit:520 */
3241 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMTypeNone____mmmodule(fra.me.REG[0])!=NIT_NULL);
3242 if (UNTAG_Bool(REGB0)) {
3243 } else {
3244 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_metamodel___static_type, 520);
3245 }
3246 fra.me.REG[0] = ATTR_metamodel___static_type___MMTypeNone____mmmodule(fra.me.REG[0]);
3247 stack_frame_head = fra.me.prev;
3248 return fra.me.REG[0];
3249 }
3250 val_t metamodel___static_type___MMTypeNone___is_nullable(val_t p0){
3251 struct {struct stack_frame_t me;} fra;
3252 val_t REGB0;
3253 val_t tmp;
3254 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3255 fra.me.file = LOCATE_metamodel___static_type;
3256 fra.me.line = 521;
3257 fra.me.meth = LOCATE_metamodel___static_type___MMTypeNone___is_nullable;
3258 fra.me.has_broke = 0;
3259 fra.me.REG_size = 1;
3260 fra.me.REG[0] = NIT_NULL;
3261 fra.me.REG[0] = p0;
3262 /* ./metamodel//static_type.nit:521 */
3263 REGB0 = TAG_Bool(true);
3264 goto label1;
3265 label1: while(0);
3266 stack_frame_head = fra.me.prev;
3267 return REGB0;
3268 }
3269 val_t metamodel___static_type___MMTypeNone_____l(val_t p0, val_t p1){
3270 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3271 val_t REGB0;
3272 val_t REGB1;
3273 val_t tmp;
3274 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3275 fra.me.file = LOCATE_metamodel___static_type;
3276 fra.me.line = 522;
3277 fra.me.meth = LOCATE_metamodel___static_type___MMTypeNone_____l;
3278 fra.me.has_broke = 0;
3279 fra.me.REG_size = 2;
3280 fra.me.REG[0] = NIT_NULL;
3281 fra.me.REG[1] = NIT_NULL;
3282 fra.me.REG[0] = p0;
3283 fra.me.REG[1] = p1;
3284 /* ./metamodel//static_type.nit:522 */
3285 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
3286 if (UNTAG_Bool(REGB0)) {
3287 REGB0 = TAG_Bool(true);
3288 } else {
3289 REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMNullableType, ID_metamodel___static_type___MMNullableType)) /*cast MMNullableType*/;
3290 REGB0 = REGB1;
3291 }
3292 goto label1;
3293 label1: while(0);
3294 stack_frame_head = fra.me.prev;
3295 return REGB0;
3296 }
3297 val_t metamodel___static_type___MMTypeNone___to_s(val_t p0){
3298 struct {struct stack_frame_t me;} fra;
3299 val_t REGB0;
3300 val_t tmp;
3301 static val_t once_value_1; /* Once value */
3302 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3303 fra.me.file = LOCATE_metamodel___static_type;
3304 fra.me.line = 523;
3305 fra.me.meth = LOCATE_metamodel___static_type___MMTypeNone___to_s;
3306 fra.me.has_broke = 0;
3307 fra.me.REG_size = 1;
3308 fra.me.REG[0] = NIT_NULL;
3309 fra.me.REG[0] = p0;
3310 /* ./metamodel//static_type.nit:523 */
3311 if (!once_value_1) {
3312 fra.me.REG[0] = BOX_NativeString("null");
3313 REGB0 = TAG_Int(4);
3314 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
3315 once_value_1 = fra.me.REG[0];
3316 register_static_object(&once_value_1);
3317 } else fra.me.REG[0] = once_value_1;
3318 fra.me.REG[0] = fra.me.REG[0];
3319 goto label2;
3320 label2: while(0);
3321 stack_frame_head = fra.me.prev;
3322 return fra.me.REG[0];
3323 }
3324 val_t metamodel___static_type___MMTypeNone___is_supertype(val_t p0, val_t p1){
3325 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3326 val_t REGB0;
3327 val_t tmp;
3328 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3329 fra.me.file = LOCATE_metamodel___static_type;
3330 fra.me.line = 524;
3331 fra.me.meth = LOCATE_metamodel___static_type___MMTypeNone___is_supertype;
3332 fra.me.has_broke = 0;
3333 fra.me.REG_size = 2;
3334 fra.me.REG[0] = NIT_NULL;
3335 fra.me.REG[1] = NIT_NULL;
3336 fra.me.REG[0] = p0;
3337 fra.me.REG[1] = p1;
3338 /* ./metamodel//static_type.nit:524 */
3339 REGB0 = TAG_Bool(false);
3340 goto label1;
3341 label1: while(0);
3342 stack_frame_head = fra.me.prev;
3343 return REGB0;
3344 }
3345 val_t metamodel___static_type___MMTypeNone___local_class(val_t p0){
3346 struct {struct stack_frame_t me;} fra;
3347 val_t tmp;
3348 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3349 fra.me.file = LOCATE_metamodel___static_type;
3350 fra.me.line = 525;
3351 fra.me.meth = LOCATE_metamodel___static_type___MMTypeNone___local_class;
3352 fra.me.has_broke = 0;
3353 fra.me.REG_size = 1;
3354 fra.me.REG[0] = NIT_NULL;
3355 fra.me.REG[0] = p0;
3356 /* ./metamodel//static_type.nit:525 */
3357 nit_abort("Aborted", NULL, LOCATE_metamodel___static_type, 525);
3358 stack_frame_head = fra.me.prev;
3359 return NIT_NULL;
3360 }
3361 val_t metamodel___static_type___MMTypeNone___upcast_for(val_t p0, val_t p1){
3362 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3363 val_t tmp;
3364 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3365 fra.me.file = LOCATE_metamodel___static_type;
3366 fra.me.line = 526;
3367 fra.me.meth = LOCATE_metamodel___static_type___MMTypeNone___upcast_for;
3368 fra.me.has_broke = 0;
3369 fra.me.REG_size = 2;
3370 fra.me.REG[0] = NIT_NULL;
3371 fra.me.REG[1] = NIT_NULL;
3372 fra.me.REG[0] = p0;
3373 fra.me.REG[1] = p1;
3374 /* ./metamodel//static_type.nit:526 */
3375 nit_abort("Aborted", NULL, LOCATE_metamodel___static_type, 526);
3376 stack_frame_head = fra.me.prev;
3377 return NIT_NULL;
3378 }
3379 val_t metamodel___static_type___MMTypeNone___as_nullable(val_t p0){
3380 struct {struct stack_frame_t me;} fra;
3381 val_t tmp;
3382 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3383 fra.me.file = LOCATE_metamodel___static_type;
3384 fra.me.line = 527;
3385 fra.me.meth = LOCATE_metamodel___static_type___MMTypeNone___as_nullable;
3386 fra.me.has_broke = 0;
3387 fra.me.REG_size = 1;
3388 fra.me.REG[0] = NIT_NULL;
3389 fra.me.REG[0] = p0;
3390 /* ./metamodel//static_type.nit:527 */
3391 goto label1;
3392 label1: while(0);
3393 stack_frame_head = fra.me.prev;
3394 return fra.me.REG[0];
3395 }
3396 val_t metamodel___static_type___MMTypeNone___as_notnull(val_t p0){
3397 struct {struct stack_frame_t me;} fra;
3398 val_t tmp;
3399 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3400 fra.me.file = LOCATE_metamodel___static_type;
3401 fra.me.line = 528;
3402 fra.me.meth = LOCATE_metamodel___static_type___MMTypeNone___as_notnull;
3403 fra.me.has_broke = 0;
3404 fra.me.REG_size = 1;
3405 fra.me.REG[0] = NIT_NULL;
3406 fra.me.REG[0] = p0;
3407 /* ./metamodel//static_type.nit:528 */
3408 nit_abort("Aborted", NULL, LOCATE_metamodel___static_type, 528);
3409 stack_frame_head = fra.me.prev;
3410 return NIT_NULL;
3411 }
3412 void metamodel___static_type___MMTypeNone___init(val_t p0, val_t p1, int* init_table){
3413 int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMTypeNone].i;
3414 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3415 val_t tmp;
3416 if (init_table[itpos9]) return;
3417 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3418 fra.me.file = LOCATE_metamodel___static_type;
3419 fra.me.line = 530;
3420 fra.me.meth = LOCATE_metamodel___static_type___MMTypeNone___init;
3421 fra.me.has_broke = 0;
3422 fra.me.REG_size = 3;
3423 fra.me.REG[0] = NIT_NULL;
3424 fra.me.REG[1] = NIT_NULL;
3425 fra.me.REG[2] = NIT_NULL;
3426 fra.me.REG[0] = p0;
3427 fra.me.REG[1] = p1;
3428 /* ./metamodel//static_type.nit:530 */
3429 fra.me.REG[2] = fra.me.REG[0];
3430 CALL_metamodel___static_type___MMType___init(fra.me.REG[0])(fra.me.REG[0], init_table);
3431 ATTR_metamodel___static_type___MMTypeNone____mmmodule(fra.me.REG[2]) = fra.me.REG[1];
3432 stack_frame_head = fra.me.prev;
3433 init_table[itpos9] = 1;
3434 return;
3435 }
3436 val_t metamodel___static_type___MMModule___type_none(val_t p0){
3437 struct {struct stack_frame_t me;} fra;
3438 val_t REGB0;
3439 val_t tmp;
3440 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3441 fra.me.file = LOCATE_metamodel___static_type;
3442 fra.me.line = 534;
3443 fra.me.meth = LOCATE_metamodel___static_type___MMModule___type_none;
3444 fra.me.has_broke = 0;
3445 fra.me.REG_size = 1;
3446 fra.me.REG[0] = NIT_NULL;
3447 fra.me.REG[0] = p0;
3448 /* ./metamodel//static_type.nit:534 */
3449 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMModule____type_none(fra.me.REG[0])!=NIT_NULL);
3450 if (UNTAG_Bool(REGB0)) {
3451 } else {
3452 nit_abort("Uninitialized attribute %s", "_type_none", LOCATE_metamodel___static_type, 534);
3453 }
3454 fra.me.REG[0] = ATTR_metamodel___static_type___MMModule____type_none(fra.me.REG[0]);
3455 stack_frame_head = fra.me.prev;
3456 return fra.me.REG[0];
3457 }
3458 val_t metamodel___static_type___MMModule___type_bool(val_t p0){
3459 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3460 val_t REGB0;
3461 val_t tmp;
3462 static val_t once_value_1; /* Once value */
3463 static val_t once_value_2; /* Once value */
3464 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3465 fra.me.file = LOCATE_metamodel___static_type;
3466 fra.me.line = 537;
3467 fra.me.meth = LOCATE_metamodel___static_type___MMModule___type_bool;
3468 fra.me.has_broke = 0;
3469 fra.me.REG_size = 2;
3470 fra.me.REG[0] = NIT_NULL;
3471 fra.me.REG[1] = NIT_NULL;
3472 fra.me.REG[0] = p0;
3473 /* ./metamodel//static_type.nit:540 */
3474 if (!once_value_1) {
3475 if (!once_value_2) {
3476 fra.me.REG[1] = BOX_NativeString("Bool");
3477 REGB0 = TAG_Int(4);
3478 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
3479 once_value_2 = fra.me.REG[1];
3480 register_static_object(&once_value_2);
3481 } else fra.me.REG[1] = once_value_2;
3482 fra.me.REG[1] = fra.me.REG[1];
3483 fra.me.REG[1] = CALL_standard___symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
3484 once_value_1 = fra.me.REG[1];
3485 register_static_object(&once_value_1);
3486 } else fra.me.REG[1] = once_value_1;
3487 fra.me.REG[1] = fra.me.REG[1];
3488 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3489 fra.me.REG[1] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
3490 goto label3;
3491 label3: while(0);
3492 stack_frame_head = fra.me.prev;
3493 return fra.me.REG[1];
3494 }
3495 val_t metamodel___static_type___MMImportedCast___from(val_t p0){
3496 struct {struct stack_frame_t me;} fra;
3497 val_t REGB0;
3498 val_t tmp;
3499 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3500 fra.me.file = LOCATE_metamodel___static_type;
3501 fra.me.line = 546;
3502 fra.me.meth = LOCATE_metamodel___static_type___MMImportedCast___from;
3503 fra.me.has_broke = 0;
3504 fra.me.REG_size = 1;
3505 fra.me.REG[0] = NIT_NULL;
3506 fra.me.REG[0] = p0;
3507 /* ./metamodel//static_type.nit:546 */
3508 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____from(fra.me.REG[0])!=NIT_NULL);
3509 if (UNTAG_Bool(REGB0)) {
3510 } else {
3511 nit_abort("Uninitialized attribute %s", "_from", LOCATE_metamodel___static_type, 546);
3512 }
3513 fra.me.REG[0] = ATTR_metamodel___static_type___MMImportedCast____from(fra.me.REG[0]);
3514 stack_frame_head = fra.me.prev;
3515 return fra.me.REG[0];
3516 }
3517 val_t metamodel___static_type___MMImportedCast___to(val_t p0){
3518 struct {struct stack_frame_t me;} fra;
3519 val_t REGB0;
3520 val_t tmp;
3521 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3522 fra.me.file = LOCATE_metamodel___static_type;
3523 fra.me.line = 547;
3524 fra.me.meth = LOCATE_metamodel___static_type___MMImportedCast___to;
3525 fra.me.has_broke = 0;
3526 fra.me.REG_size = 1;
3527 fra.me.REG[0] = NIT_NULL;
3528 fra.me.REG[0] = p0;
3529 /* ./metamodel//static_type.nit:547 */
3530 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____to(fra.me.REG[0])!=NIT_NULL);
3531 if (UNTAG_Bool(REGB0)) {
3532 } else {
3533 nit_abort("Uninitialized attribute %s", "_to", LOCATE_metamodel___static_type, 547);
3534 }
3535 fra.me.REG[0] = ATTR_metamodel___static_type___MMImportedCast____to(fra.me.REG[0]);
3536 stack_frame_head = fra.me.prev;
3537 return fra.me.REG[0];
3538 }
3539 val_t metamodel___static_type___MMImportedCast___is_about_nullable_only(val_t p0){
3540 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3541 val_t REGB0;
3542 val_t REGB1;
3543 val_t REGB2;
3544 val_t tmp;
3545 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3546 fra.me.file = LOCATE_metamodel___static_type;
3547 fra.me.line = 549;
3548 fra.me.meth = LOCATE_metamodel___static_type___MMImportedCast___is_about_nullable_only;
3549 fra.me.has_broke = 0;
3550 fra.me.REG_size = 3;
3551 fra.me.REG[0] = NIT_NULL;
3552 fra.me.REG[1] = NIT_NULL;
3553 fra.me.REG[2] = NIT_NULL;
3554 fra.me.REG[0] = p0;
3555 /* ./metamodel//static_type.nit:551 */
3556 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____from(fra.me.REG[0])!=NIT_NULL);
3557 if (UNTAG_Bool(REGB0)) {
3558 } else {
3559 nit_abort("Uninitialized attribute %s", "_from", LOCATE_metamodel___static_type, 551);
3560 }
3561 fra.me.REG[1] = ATTR_metamodel___static_type___MMImportedCast____from(fra.me.REG[0]);
3562 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[1])(fra.me.REG[1]);
3563 if (UNTAG_Bool(REGB0)) {
3564 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____to(fra.me.REG[0])!=NIT_NULL);
3565 if (UNTAG_Bool(REGB0)) {
3566 } else {
3567 nit_abort("Uninitialized attribute %s", "_to", LOCATE_metamodel___static_type, 551);
3568 }
3569 fra.me.REG[1] = ATTR_metamodel___static_type___MMImportedCast____to(fra.me.REG[0]);
3570 fra.me.REG[1] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[1])(fra.me.REG[1]);
3571 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____from(fra.me.REG[0])!=NIT_NULL);
3572 if (UNTAG_Bool(REGB0)) {
3573 } else {
3574 nit_abort("Uninitialized attribute %s", "_from", LOCATE_metamodel___static_type, 551);
3575 }
3576 fra.me.REG[2] = ATTR_metamodel___static_type___MMImportedCast____from(fra.me.REG[0]);
3577 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[2]));
3578 if (UNTAG_Bool(REGB0)) {
3579 } else {
3580 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
3581 REGB0 = REGB1;
3582 }
3583 } else {
3584 REGB1 = TAG_Bool(false);
3585 REGB0 = REGB1;
3586 }
3587 if (UNTAG_Bool(REGB0)) {
3588 REGB0 = TAG_Bool(true);
3589 } else {
3590 /* ./metamodel//static_type.nit:552 */
3591 REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____to(fra.me.REG[0])!=NIT_NULL);
3592 if (UNTAG_Bool(REGB1)) {
3593 } else {
3594 nit_abort("Uninitialized attribute %s", "_to", LOCATE_metamodel___static_type, 552);
3595 }
3596 fra.me.REG[2] = ATTR_metamodel___static_type___MMImportedCast____to(fra.me.REG[0]);
3597 REGB1 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[2])(fra.me.REG[2]);
3598 if (UNTAG_Bool(REGB1)) {
3599 REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____from(fra.me.REG[0])!=NIT_NULL);
3600 if (UNTAG_Bool(REGB1)) {
3601 } else {
3602 nit_abort("Uninitialized attribute %s", "_from", LOCATE_metamodel___static_type, 552);
3603 }
3604 fra.me.REG[2] = ATTR_metamodel___static_type___MMImportedCast____from(fra.me.REG[0]);
3605 fra.me.REG[2] = CALL_metamodel___static_type___MMType___as_nullable(fra.me.REG[2])(fra.me.REG[2]);
3606 REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____to(fra.me.REG[0])!=NIT_NULL);
3607 if (UNTAG_Bool(REGB1)) {
3608 } else {
3609 nit_abort("Uninitialized attribute %s", "_to", LOCATE_metamodel___static_type, 552);
3610 }
3611 fra.me.REG[0] = ATTR_metamodel___static_type___MMImportedCast____to(fra.me.REG[0]);
3612 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[0]));
3613 if (UNTAG_Bool(REGB1)) {
3614 } else {
3615 REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
3616 REGB1 = REGB2;
3617 }
3618 } else {
3619 REGB2 = TAG_Bool(false);
3620 REGB1 = REGB2;
3621 }
3622 /* ./metamodel//static_type.nit:551 */
3623 REGB0 = REGB1;
3624 }
3625 goto label1;
3626 label1: while(0);
3627 stack_frame_head = fra.me.prev;
3628 return REGB0;
3629 }
3630 val_t metamodel___static_type___MMImportedCast___is_not_null_to_nullable(val_t p0){
3631 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3632 val_t REGB0;
3633 val_t REGB1;
3634 val_t tmp;
3635 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3636 fra.me.file = LOCATE_metamodel___static_type;
3637 fra.me.line = 555;
3638 fra.me.meth = LOCATE_metamodel___static_type___MMImportedCast___is_not_null_to_nullable;
3639 fra.me.has_broke = 0;
3640 fra.me.REG_size = 2;
3641 fra.me.REG[0] = NIT_NULL;
3642 fra.me.REG[1] = NIT_NULL;
3643 fra.me.REG[0] = p0;
3644 /* ./metamodel//static_type.nit:557 */
3645 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____from(fra.me.REG[0])!=NIT_NULL);
3646 if (UNTAG_Bool(REGB0)) {
3647 } else {
3648 nit_abort("Uninitialized attribute %s", "_from", LOCATE_metamodel___static_type, 557);
3649 }
3650 fra.me.REG[1] = ATTR_metamodel___static_type___MMImportedCast____from(fra.me.REG[0]);
3651 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[1])(fra.me.REG[1]);
3652 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3653 if (UNTAG_Bool(REGB0)) {
3654 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____to(fra.me.REG[0])!=NIT_NULL);
3655 if (UNTAG_Bool(REGB0)) {
3656 } else {
3657 nit_abort("Uninitialized attribute %s", "_to", LOCATE_metamodel___static_type, 557);
3658 }
3659 fra.me.REG[0] = ATTR_metamodel___static_type___MMImportedCast____to(fra.me.REG[0]);
3660 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
3661 } else {
3662 REGB1 = TAG_Bool(false);
3663 REGB0 = REGB1;
3664 }
3665 goto label1;
3666 label1: while(0);
3667 stack_frame_head = fra.me.prev;
3668 return REGB0;
3669 }
3670 val_t metamodel___static_type___MMImportedCast___is_nullable_to_not_null(val_t p0){
3671 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3672 val_t REGB0;
3673 val_t REGB1;
3674 val_t tmp;
3675 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3676 fra.me.file = LOCATE_metamodel___static_type;
3677 fra.me.line = 560;
3678 fra.me.meth = LOCATE_metamodel___static_type___MMImportedCast___is_nullable_to_not_null;
3679 fra.me.has_broke = 0;
3680 fra.me.REG_size = 2;
3681 fra.me.REG[0] = NIT_NULL;
3682 fra.me.REG[1] = NIT_NULL;
3683 fra.me.REG[0] = p0;
3684 /* ./metamodel//static_type.nit:562 */
3685 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____from(fra.me.REG[0])!=NIT_NULL);
3686 if (UNTAG_Bool(REGB0)) {
3687 } else {
3688 nit_abort("Uninitialized attribute %s", "_from", LOCATE_metamodel___static_type, 562);
3689 }
3690 fra.me.REG[1] = ATTR_metamodel___static_type___MMImportedCast____from(fra.me.REG[0]);
3691 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[1])(fra.me.REG[1]);
3692 if (UNTAG_Bool(REGB0)) {
3693 REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____to(fra.me.REG[0])!=NIT_NULL);
3694 if (UNTAG_Bool(REGB0)) {
3695 } else {
3696 nit_abort("Uninitialized attribute %s", "_to", LOCATE_metamodel___static_type, 562);
3697 }
3698 fra.me.REG[0] = ATTR_metamodel___static_type___MMImportedCast____to(fra.me.REG[0]);
3699 REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
3700 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
3701 } else {
3702 REGB1 = TAG_Bool(false);
3703 REGB0 = REGB1;
3704 }
3705 goto label1;
3706 label1: while(0);
3707 stack_frame_head = fra.me.prev;
3708 return REGB0;
3709 }
3710 val_t metamodel___static_type___MMImportedCast_____eqeq(val_t p0, val_t p1){
3711 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
3712 val_t REGB0;
3713 val_t REGB1;
3714 val_t tmp;
3715 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3716 fra.me.file = LOCATE_metamodel___static_type;
3717 fra.me.line = 565;
3718 fra.me.meth = LOCATE_metamodel___static_type___MMImportedCast_____eqeq;
3719 fra.me.has_broke = 0;
3720 fra.me.REG_size = 4;
3721 fra.me.REG[0] = NIT_NULL;
3722 fra.me.REG[1] = NIT_NULL;
3723 fra.me.REG[2] = NIT_NULL;
3724 fra.me.REG[3] = NIT_NULL;
3725 fra.me.REG[0] = p0;
3726 fra.me.REG[1] = p1;
3727 /* ./metamodel//static_type.nit:567 */
3728 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMImportedCast, ID_metamodel___static_type___MMImportedCast)) /*cast MMImportedCast*/;
3729 if (UNTAG_Bool(REGB0)) {
3730 /* ./metamodel//static_type.nit:568 */
3731 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3732 if (UNTAG_Bool(REGB0)) {
3733 nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 568);
3734 }
3735 fra.me.REG[2] = CALL_metamodel___static_type___MMImportedCast___from(fra.me.REG[1])(fra.me.REG[1]);
3736 fra.me.REG[3] = CALL_metamodel___static_type___MMImportedCast___from(fra.me.REG[0])(fra.me.REG[0]);
3737 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
3738 if (UNTAG_Bool(REGB0)) {
3739 } else {
3740 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
3741 REGB0 = REGB1;
3742 }
3743 } else {
3744 /* ./metamodel//static_type.nit:567 */
3745 REGB1 = TAG_Bool(false);
3746 REGB0 = REGB1;
3747 }
3748 if (UNTAG_Bool(REGB0)) {
3749 /* ./metamodel//static_type.nit:568 */
3750 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
3751 if (UNTAG_Bool(REGB0)) {
3752 nit_abort("Reciever is null", NULL, LOCATE_metamodel___static_type, 568);
3753 }
3754 fra.me.REG[1] = CALL_metamodel___static_type___MMImportedCast___to(fra.me.REG[1])(fra.me.REG[1]);
3755 fra.me.REG[0] = CALL_metamodel___static_type___MMImportedCast___to(fra.me.REG[0])(fra.me.REG[0]);
3756 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
3757 if (UNTAG_Bool(REGB0)) {
3758 } else {
3759 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
3760 REGB0 = REGB1;
3761 }
3762 } else {
3763 /* ./metamodel//static_type.nit:567 */
3764 REGB1 = TAG_Bool(false);
3765 REGB0 = REGB1;
3766 }
3767 goto label1;
3768 label1: while(0);
3769 stack_frame_head = fra.me.prev;
3770 return REGB0;
3771 }
3772 void metamodel___static_type___MMImportedCast___init(val_t p0, val_t p1, val_t p2, int* init_table){
3773 int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMImportedCast].i;
3774 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3775 val_t tmp;
3776 if (init_table[itpos10]) return;
3777 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3778 fra.me.file = LOCATE_metamodel___static_type;
3779 fra.me.line = 0;
3780 fra.me.meth = LOCATE_metamodel___static_type___MMImportedCast___init;
3781 fra.me.has_broke = 0;
3782 fra.me.REG_size = 3;
3783 fra.me.REG[0] = NIT_NULL;
3784 fra.me.REG[1] = NIT_NULL;
3785 fra.me.REG[2] = NIT_NULL;
3786 fra.me.REG[0] = p0;
3787 fra.me.REG[1] = p1;
3788 fra.me.REG[2] = p2;
3789 ATTR_metamodel___static_type___MMImportedCast____from(fra.me.REG[0]) = fra.me.REG[1];
3790 ATTR_metamodel___static_type___MMImportedCast____to(fra.me.REG[0]) = fra.me.REG[2];
3791 stack_frame_head = fra.me.prev;
3792 init_table[itpos10] = 1;
3793 return;
3794 }
3795 val_t metamodel___static_type___MMMethod___explicit_casts(val_t p0){
3796 struct {struct stack_frame_t me;} fra;
3797 val_t tmp;
3798 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3799 fra.me.file = LOCATE_metamodel___static_type;
3800 fra.me.line = 574;
3801 fra.me.meth = LOCATE_metamodel___static_type___MMMethod___explicit_casts;
3802 fra.me.has_broke = 0;
3803 fra.me.REG_size = 0;
3804 /* ./metamodel//static_type.nit:574 */
3805 nit_abort("Deferred method called", NULL, LOCATE_metamodel___static_type, 574);
3806 stack_frame_head = fra.me.prev;
3807 return NIT_NULL;
3808 }