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