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