update NOTICE and LICENSE
[nit.git] / c_src / static_type._sep.c
1 /* This C file is generated by NIT to compile module static_type. */
2 #include "static_type._sep.h"
3 val_t static_type___MMLocalClass___get_type(val_t p0){
4 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
5 val_t REGB0;
6 val_t REGB1;
7 val_t tmp;
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_static_type;
10 fra.me.line = 27;
11 fra.me.meth = LOCATE_static_type___MMLocalClass___get_type;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 2;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[1] = NIT_NULL;
16 fra.me.REG[0] = p0;
17 /* ./metamodel//static_type.nit:30 */
18 fra.me.REG[1] = ATTR_static_type___MMLocalClass____base_type_cache(fra.me.REG[0]);
19 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
20 if (UNTAG_Bool(REGB0)) {
21 } else {
22 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
23 if (UNTAG_Bool(REGB1)) {
24 REGB1 = TAG_Bool(false);
25 REGB0 = REGB1;
26 } else {
27 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
28 REGB0 = REGB1;
29 }
30 }
31 if (UNTAG_Bool(REGB0)) {
32 fra.me.REG[1] = NEW_MMTypeSimpleClass_static_type___MMTypeSimpleClass___init(fra.me.REG[0]);
33 ATTR_static_type___MMLocalClass____base_type_cache(fra.me.REG[0]) = fra.me.REG[1];
34 }
35 /* ./metamodel//static_type.nit:31 */
36 fra.me.REG[0] = ATTR_static_type___MMLocalClass____base_type_cache(fra.me.REG[0]);
37 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
38 if (UNTAG_Bool(REGB0)) {
39 } else {
40 nit_abort("Cast failed", NULL, LOCATE_static_type, 31);
41 }
42 goto label1;
43 label1: while(0);
44 stack_frame_head = fra.me.prev;
45 return fra.me.REG[0];
46 }
47 void static_type___MMLocalClass___add_ancestor(val_t p0, val_t p1){
48 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
49 val_t REGB0;
50 val_t REGB1;
51 val_t tmp;
52 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
53 fra.me.file = LOCATE_static_type;
54 fra.me.line = 34;
55 fra.me.meth = LOCATE_static_type___MMLocalClass___add_ancestor;
56 fra.me.has_broke = 0;
57 fra.me.REG_size = 4;
58 fra.me.REG[0] = NIT_NULL;
59 fra.me.REG[1] = NIT_NULL;
60 fra.me.REG[2] = NIT_NULL;
61 fra.me.REG[3] = NIT_NULL;
62 fra.me.REG[0] = p0;
63 fra.me.REG[1] = p1;
64 /* ./metamodel//static_type.nit:37 */
65 fra.me.REG[2] = ATTR_static_type___MMLocalClass____ancestors(fra.me.REG[0]);
66 fra.me.REG[3] = CALL_static_type___MMAncestor___local_class(fra.me.REG[1])(fra.me.REG[1]);
67 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
68 if (UNTAG_Bool(REGB0)) {
69 nit_abort("Reciever is null", NULL, LOCATE_static_type, 37);
70 }
71 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
72 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
73 if (UNTAG_Bool(REGB0)) {
74 } else {
75 nit_abort("Assert failed", NULL, LOCATE_static_type, 37);
76 }
77 /* ./metamodel//static_type.nit:38 */
78 fra.me.REG[3] = CALL_static_type___MMAncestor___local_class(fra.me.REG[1])(fra.me.REG[1]);
79 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[0]));
80 if (UNTAG_Bool(REGB0)) {
81 } else {
82 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
83 REGB0 = REGB1;
84 }
85 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
86 if (UNTAG_Bool(REGB0)) {
87 } else {
88 nit_abort("Assert failed", NULL, LOCATE_static_type, 38);
89 }
90 /* ./metamodel//static_type.nit:39 */
91 fra.me.REG[0] = ATTR_static_type___MMLocalClass____ancestors(fra.me.REG[0]);
92 fra.me.REG[3] = CALL_static_type___MMAncestor___local_class(fra.me.REG[1])(fra.me.REG[1]);
93 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
94 if (UNTAG_Bool(REGB0)) {
95 nit_abort("Reciever is null", NULL, LOCATE_static_type, 39);
96 }
97 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[1]);
98 stack_frame_head = fra.me.prev;
99 return;
100 }
101 val_t static_type___MMLocalClass___ancestors(val_t p0){
102 struct {struct stack_frame_t me;} fra;
103 val_t tmp;
104 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
105 fra.me.file = LOCATE_static_type;
106 fra.me.line = 42;
107 fra.me.meth = LOCATE_static_type___MMLocalClass___ancestors;
108 fra.me.has_broke = 0;
109 fra.me.REG_size = 1;
110 fra.me.REG[0] = NIT_NULL;
111 fra.me.REG[0] = p0;
112 /* ./metamodel//static_type.nit:42 */
113 fra.me.REG[0] = ATTR_static_type___MMLocalClass____ancestors(fra.me.REG[0]);
114 stack_frame_head = fra.me.prev;
115 return fra.me.REG[0];
116 }
117 val_t static_type___MMLocalClass___ancestor(val_t p0, val_t p1){
118 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
119 val_t REGB0;
120 val_t tmp;
121 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
122 fra.me.file = LOCATE_static_type;
123 fra.me.line = 45;
124 fra.me.meth = LOCATE_static_type___MMLocalClass___ancestor;
125 fra.me.has_broke = 0;
126 fra.me.REG_size = 2;
127 fra.me.REG[0] = NIT_NULL;
128 fra.me.REG[1] = NIT_NULL;
129 fra.me.REG[0] = p0;
130 fra.me.REG[1] = p1;
131 /* ./metamodel//static_type.nit:48 */
132 fra.me.REG[0] = ATTR_static_type___MMLocalClass____ancestors(fra.me.REG[0]);
133 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
134 if (UNTAG_Bool(REGB0)) {
135 nit_abort("Reciever is null", NULL, LOCATE_static_type, 48);
136 }
137 fra.me.REG[1] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
138 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
139 if (UNTAG_Bool(REGB0)) {
140 nit_abort("Reciever is null", NULL, LOCATE_static_type, 48);
141 }
142 fra.me.REG[1] = CALL_static_type___MMAncestor___stype(fra.me.REG[1])(fra.me.REG[1]);
143 goto label1;
144 label1: while(0);
145 stack_frame_head = fra.me.prev;
146 return fra.me.REG[1];
147 }
148 val_t static_type___MMLocalProperty___signature(val_t p0){
149 struct {struct stack_frame_t me;} fra;
150 val_t tmp;
151 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
152 fra.me.file = LOCATE_static_type;
153 fra.me.line = 53;
154 fra.me.meth = LOCATE_static_type___MMLocalProperty___signature;
155 fra.me.has_broke = 0;
156 fra.me.REG_size = 1;
157 fra.me.REG[0] = NIT_NULL;
158 fra.me.REG[0] = p0;
159 /* ./metamodel//static_type.nit:53 */
160 fra.me.REG[0] = ATTR_static_type___MMLocalProperty____signature(fra.me.REG[0]);
161 stack_frame_head = fra.me.prev;
162 return fra.me.REG[0];
163 }
164 void static_type___MMLocalProperty___signature__eq(val_t p0, val_t p1){
165 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
166 val_t tmp;
167 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
168 fra.me.file = LOCATE_static_type;
169 fra.me.line = 53;
170 fra.me.meth = LOCATE_static_type___MMLocalProperty___signature__eq;
171 fra.me.has_broke = 0;
172 fra.me.REG_size = 2;
173 fra.me.REG[0] = NIT_NULL;
174 fra.me.REG[1] = NIT_NULL;
175 fra.me.REG[0] = p0;
176 fra.me.REG[1] = p1;
177 /* ./metamodel//static_type.nit:53 */
178 ATTR_static_type___MMLocalProperty____signature(fra.me.REG[0]) = fra.me.REG[1];
179 stack_frame_head = fra.me.prev;
180 return;
181 }
182 val_t static_type___MMLocalProperty___signature_for(val_t p0, val_t p1){
183 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
184 val_t REGB0;
185 val_t REGB1;
186 val_t tmp;
187 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
188 fra.me.file = LOCATE_static_type;
189 fra.me.line = 58;
190 fra.me.meth = LOCATE_static_type___MMLocalProperty___signature_for;
191 fra.me.has_broke = 0;
192 fra.me.REG_size = 4;
193 fra.me.REG[0] = NIT_NULL;
194 fra.me.REG[1] = NIT_NULL;
195 fra.me.REG[2] = NIT_NULL;
196 fra.me.REG[3] = NIT_NULL;
197 fra.me.REG[0] = p0;
198 fra.me.REG[1] = p1;
199 /* ./metamodel//static_type.nit:60 */
200 fra.me.REG[2] = CALL_abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[0])(fra.me.REG[0]);
201 fra.me.REG[2] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[2])(fra.me.REG[2]);
202 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[2]));
203 if (UNTAG_Bool(REGB0)) {
204 } else {
205 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
206 REGB0 = REGB1;
207 }
208 if (UNTAG_Bool(REGB0)) {
209 fra.me.REG[2] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
210 REGB0 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
211 if (UNTAG_Bool(REGB0)) {
212 } else {
213 nit_abort("Cast failed", NULL, LOCATE_static_type, 60);
214 }
215 goto label1;
216 }
217 /* ./metamodel//static_type.nit:62 */
218 REGB0 = TAG_Bool(ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
219 if (UNTAG_Bool(REGB0)) {
220 } else {
221 nit_abort("Uninitialized attribute %s", "_signatures_cache", LOCATE_static_type, 62);
222 }
223 fra.me.REG[3] = ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]);
224 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
225 if (UNTAG_Bool(REGB0)) {
226 REGB0 = TAG_Bool(ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
227 if (UNTAG_Bool(REGB0)) {
228 } else {
229 nit_abort("Uninitialized attribute %s", "_signatures_cache", LOCATE_static_type, 62);
230 }
231 fra.me.REG[3] = ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]);
232 fra.me.REG[3] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
233 fra.me.REG[2] = fra.me.REG[3];
234 goto label1;
235 }
236 /* ./metamodel//static_type.nit:64 */
237 fra.me.REG[3] = CALL_static_type___MMLocalProperty___signature(fra.me.REG[0])(fra.me.REG[0]);
238 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
239 if (UNTAG_Bool(REGB0)) {
240 nit_abort("Reciever is null", NULL, LOCATE_static_type, 64);
241 }
242 fra.me.REG[3] = CALL_static_type___MMSignature___adaptation_to(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
243 /* ./metamodel//static_type.nit:65 */
244 REGB0 = TAG_Bool(ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0])!=NIT_NULL);
245 if (UNTAG_Bool(REGB0)) {
246 } else {
247 nit_abort("Uninitialized attribute %s", "_signatures_cache", LOCATE_static_type, 65);
248 }
249 fra.me.REG[0] = ATTR_static_type___MMLocalProperty____signatures_cache(fra.me.REG[0]);
250 CALL_abstract_collection___Map_____braeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
251 /* ./metamodel//static_type.nit:66 */
252 fra.me.REG[2] = fra.me.REG[3];
253 goto label1;
254 label1: while(0);
255 stack_frame_head = fra.me.prev;
256 return fra.me.REG[2];
257 }
258 val_t static_type___MMSignature___recv(val_t p0){
259 struct {struct stack_frame_t me;} fra;
260 val_t REGB0;
261 val_t tmp;
262 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
263 fra.me.file = LOCATE_static_type;
264 fra.me.line = 72;
265 fra.me.meth = LOCATE_static_type___MMSignature___recv;
266 fra.me.has_broke = 0;
267 fra.me.REG_size = 1;
268 fra.me.REG[0] = NIT_NULL;
269 fra.me.REG[0] = p0;
270 /* ./metamodel//static_type.nit:72 */
271 REGB0 = TAG_Bool(ATTR_static_type___MMSignature____recv(fra.me.REG[0])!=NIT_NULL);
272 if (UNTAG_Bool(REGB0)) {
273 } else {
274 nit_abort("Uninitialized attribute %s", "_recv", LOCATE_static_type, 72);
275 }
276 fra.me.REG[0] = ATTR_static_type___MMSignature____recv(fra.me.REG[0]);
277 stack_frame_head = fra.me.prev;
278 return fra.me.REG[0];
279 }
280 val_t static_type___MMSignature___return_type(val_t p0){
281 struct {struct stack_frame_t me;} fra;
282 val_t tmp;
283 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
284 fra.me.file = LOCATE_static_type;
285 fra.me.line = 78;
286 fra.me.meth = LOCATE_static_type___MMSignature___return_type;
287 fra.me.has_broke = 0;
288 fra.me.REG_size = 1;
289 fra.me.REG[0] = NIT_NULL;
290 fra.me.REG[0] = p0;
291 /* ./metamodel//static_type.nit:78 */
292 fra.me.REG[0] = ATTR_static_type___MMSignature____return_type(fra.me.REG[0]);
293 stack_frame_head = fra.me.prev;
294 return fra.me.REG[0];
295 }
296 val_t static_type___MMSignature___closures(val_t p0){
297 struct {struct stack_frame_t me;} fra;
298 val_t REGB0;
299 val_t tmp;
300 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
301 fra.me.file = LOCATE_static_type;
302 fra.me.line = 81;
303 fra.me.meth = LOCATE_static_type___MMSignature___closures;
304 fra.me.has_broke = 0;
305 fra.me.REG_size = 1;
306 fra.me.REG[0] = NIT_NULL;
307 fra.me.REG[0] = p0;
308 /* ./metamodel//static_type.nit:81 */
309 REGB0 = TAG_Bool(ATTR_static_type___MMSignature____closures(fra.me.REG[0])!=NIT_NULL);
310 if (UNTAG_Bool(REGB0)) {
311 } else {
312 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_static_type, 81);
313 }
314 fra.me.REG[0] = ATTR_static_type___MMSignature____closures(fra.me.REG[0]);
315 stack_frame_head = fra.me.prev;
316 return fra.me.REG[0];
317 }
318 val_t static_type___MMSignature___closure_named(val_t p0, val_t p1){
319 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
320 val_t REGB0;
321 val_t REGB1;
322 val_t REGB2;
323 val_t tmp;
324 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
325 fra.me.file = LOCATE_static_type;
326 fra.me.line = 84;
327 fra.me.meth = LOCATE_static_type___MMSignature___closure_named;
328 fra.me.has_broke = 0;
329 fra.me.REG_size = 5;
330 fra.me.REG[0] = NIT_NULL;
331 fra.me.REG[1] = NIT_NULL;
332 fra.me.REG[2] = NIT_NULL;
333 fra.me.REG[3] = NIT_NULL;
334 fra.me.REG[4] = NIT_NULL;
335 fra.me.REG[0] = p0;
336 fra.me.REG[1] = p1;
337 /* ./metamodel//static_type.nit:87 */
338 REGB0 = TAG_Bool(ATTR_static_type___MMSignature____closures(fra.me.REG[0])!=NIT_NULL);
339 if (UNTAG_Bool(REGB0)) {
340 } else {
341 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_static_type, 87);
342 }
343 fra.me.REG[0] = ATTR_static_type___MMSignature____closures(fra.me.REG[0]);
344 /* ./../lib/standard//collection//array.nit:234 */
345 REGB0 = TAG_Int(0);
346 /* ./../lib/standard//collection//array.nit:235 */
347 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
348 if (UNTAG_Bool(REGB1)) {
349 } else {
350 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
351 }
352 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
353 /* ./../lib/standard//collection//array.nit:236 */
354 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[0]);
355 /* ./../lib/standard//collection//array.nit:237 */
356 while(1) {
357 /* ./../lib/standard//collection//array.nit:23 */
358 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
359 if (UNTAG_Bool(REGB1)) {
360 } else {
361 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
362 }
363 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
364 /* ./../lib/standard//kernel.nit:212 */
365 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
366 /* ./../lib/standard//collection//array.nit:237 */
367 if (UNTAG_Bool(REGB1)) {
368 /* ./../lib/standard//collection//array.nit:238 */
369 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
370 if (UNTAG_Bool(REGB1)) {
371 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
372 }
373 /* ./../lib/standard//collection//array.nit:654 */
374 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
375 /* ./metamodel//static_type.nit:88 */
376 fra.me.REG[4] = CALL_static_type___MMClosure___name(fra.me.REG[3])(fra.me.REG[3]);
377 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[4],fra.me.REG[1]));
378 if (UNTAG_Bool(REGB1)) {
379 } else {
380 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
381 REGB1 = REGB2;
382 }
383 if (UNTAG_Bool(REGB1)) {
384 goto label1;
385 }
386 /* ./../lib/standard//collection//array.nit:239 */
387 REGB1 = TAG_Int(1);
388 /* ./../lib/standard//kernel.nit:215 */
389 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
390 /* ./../lib/standard//collection//array.nit:239 */
391 REGB0 = REGB1;
392 } else {
393 /* ./../lib/standard//collection//array.nit:237 */
394 goto label2;
395 }
396 }
397 label2: while(0);
398 /* ./metamodel//static_type.nit:90 */
399 fra.me.REG[3] = NIT_NULL;
400 goto label1;
401 label1: while(0);
402 stack_frame_head = fra.me.prev;
403 return fra.me.REG[3];
404 }
405 val_t static_type___MMSignature___arity(val_t p0){
406 struct {struct stack_frame_t me;} fra;
407 val_t REGB0;
408 val_t tmp;
409 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
410 fra.me.file = LOCATE_static_type;
411 fra.me.line = 93;
412 fra.me.meth = LOCATE_static_type___MMSignature___arity;
413 fra.me.has_broke = 0;
414 fra.me.REG_size = 1;
415 fra.me.REG[0] = NIT_NULL;
416 fra.me.REG[0] = p0;
417 /* ./metamodel//static_type.nit:96 */
418 REGB0 = TAG_Bool(ATTR_static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
419 if (UNTAG_Bool(REGB0)) {
420 } else {
421 nit_abort("Uninitialized attribute %s", "_params", LOCATE_static_type, 96);
422 }
423 fra.me.REG[0] = ATTR_static_type___MMSignature____params(fra.me.REG[0]);
424 /* ./../lib/standard//collection//array.nit:23 */
425 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
426 if (UNTAG_Bool(REGB0)) {
427 } else {
428 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
429 }
430 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
431 /* ./metamodel//static_type.nit:96 */
432 goto label1;
433 label1: while(0);
434 stack_frame_head = fra.me.prev;
435 return REGB0;
436 }
437 val_t static_type___MMSignature_____l(val_t p0, val_t p1){
438 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
439 val_t REGB0;
440 val_t REGB1;
441 val_t REGB2;
442 val_t REGB3;
443 val_t REGB4;
444 val_t REGB5;
445 val_t REGB6;
446 val_t tmp;
447 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
448 fra.me.file = LOCATE_static_type;
449 fra.me.line = 99;
450 fra.me.meth = LOCATE_static_type___MMSignature_____l;
451 fra.me.has_broke = 0;
452 fra.me.REG_size = 4;
453 fra.me.REG[0] = NIT_NULL;
454 fra.me.REG[1] = NIT_NULL;
455 fra.me.REG[2] = NIT_NULL;
456 fra.me.REG[3] = NIT_NULL;
457 fra.me.REG[0] = p0;
458 fra.me.REG[1] = p1;
459 /* ./metamodel//static_type.nit:102 */
460 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[1]));
461 if (UNTAG_Bool(REGB0)) {
462 } else {
463 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
464 REGB0 = REGB1;
465 }
466 if (UNTAG_Bool(REGB0)) {
467 /* ./metamodel//static_type.nit:103 */
468 REGB0 = TAG_Bool(true);
469 goto label1;
470 }
471 /* ./metamodel//static_type.nit:105 */
472 REGB1 = TAG_Bool(ATTR_static_type___MMSignature____recv(fra.me.REG[0])!=NIT_NULL);
473 if (UNTAG_Bool(REGB1)) {
474 } else {
475 nit_abort("Uninitialized attribute %s", "_recv", LOCATE_static_type, 105);
476 }
477 fra.me.REG[2] = ATTR_static_type___MMSignature____recv(fra.me.REG[0]);
478 fra.me.REG[2] = CALL_static_type___MMType___mmmodule(fra.me.REG[2])(fra.me.REG[2]);
479 fra.me.REG[3] = CALL_static_type___MMSignature___recv(fra.me.REG[1])(fra.me.REG[1]);
480 fra.me.REG[3] = CALL_static_type___MMType___mmmodule(fra.me.REG[3])(fra.me.REG[3]);
481 REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[3]));
482 if (UNTAG_Bool(REGB1)) {
483 } else {
484 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
485 REGB1 = REGB2;
486 }
487 if (UNTAG_Bool(REGB1)) {
488 } else {
489 nit_abort("Assert failed", NULL, LOCATE_static_type, 105);
490 }
491 /* ./metamodel//static_type.nit:106 */
492 fra.me.REG[3] = ATTR_static_type___MMSignature____return_type(fra.me.REG[0]);
493 /* ./metamodel//static_type.nit:107 */
494 fra.me.REG[2] = CALL_static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]);
495 /* ./metamodel//static_type.nit:108 */
496 REGB1 = CALL_static_type___MMSignature___arity(fra.me.REG[0])(fra.me.REG[0]);
497 REGB2 = CALL_static_type___MMSignature___arity(fra.me.REG[1])(fra.me.REG[1]);
498 REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
499 if (UNTAG_Bool(REGB3)) {
500 } else {
501 /* ./../lib/standard//kernel.nit:207 */
502 REGB2 = TAG_Bool((REGB1)==(REGB2));
503 /* ./metamodel//static_type.nit:108 */
504 REGB3 = REGB2;
505 }
506 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
507 if (UNTAG_Bool(REGB3)) {
508 REGB3 = TAG_Bool(true);
509 } else {
510 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
511 if (UNTAG_Bool(REGB2)) {
512 } else {
513 REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
514 if (UNTAG_Bool(REGB1)) {
515 REGB1 = TAG_Bool(false);
516 REGB2 = REGB1;
517 } else {
518 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
519 REGB2 = REGB1;
520 }
521 }
522 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
523 if (UNTAG_Bool(REGB1)) {
524 } else {
525 REGB4 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
526 if (UNTAG_Bool(REGB4)) {
527 REGB4 = TAG_Bool(false);
528 REGB1 = REGB4;
529 } else {
530 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
531 REGB1 = REGB4;
532 }
533 }
534 REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
535 if (UNTAG_Bool(REGB4)) {
536 } else {
537 /* ./../lib/standard//kernel.nit:175 */
538 REGB1 = TAG_Bool((REGB2)==(REGB1));
539 /* ./metamodel//static_type.nit:108 */
540 REGB4 = REGB1;
541 }
542 REGB4 = TAG_Bool(!UNTAG_Bool(REGB4));
543 REGB3 = REGB4;
544 }
545 if (UNTAG_Bool(REGB3)) {
546 REGB3 = TAG_Bool(false);
547 REGB0 = REGB3;
548 goto label1;
549 }
550 /* ./metamodel//static_type.nit:109 */
551 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
552 if (UNTAG_Bool(REGB3)) {
553 } else {
554 REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
555 if (UNTAG_Bool(REGB4)) {
556 REGB4 = TAG_Bool(false);
557 REGB3 = REGB4;
558 } else {
559 REGB4 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
560 REGB3 = REGB4;
561 }
562 }
563 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
564 if (UNTAG_Bool(REGB3)) {
565 REGB3 = TAG_Bool(fra.me.REG[2]!=NIT_NULL);
566 if (UNTAG_Bool(REGB3)) {
567 } else {
568 nit_abort("Cast failed", NULL, LOCATE_static_type, 109);
569 }
570 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
571 if (UNTAG_Bool(REGB3)) {
572 nit_abort("Reciever is null", NULL, LOCATE_static_type, 109);
573 }
574 REGB3 = CALL_static_type___MMType_____l(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
575 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
576 } else {
577 REGB4 = TAG_Bool(false);
578 REGB3 = REGB4;
579 }
580 if (UNTAG_Bool(REGB3)) {
581 /* ./metamodel//static_type.nit:110 */
582 REGB3 = TAG_Bool(false);
583 REGB0 = REGB3;
584 goto label1;
585 }
586 /* ./metamodel//static_type.nit:113 */
587 REGB3 = TAG_Int(0);
588 REGB4 = CALL_static_type___MMSignature___arity(fra.me.REG[0])(fra.me.REG[0]);
589 /* ./../lib/standard//kernel.nit:332 */
590 while(1) {
591 /* ./../lib/standard//kernel.nit:212 */
592 REGB1 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
593 /* ./../lib/standard//kernel.nit:332 */
594 if (UNTAG_Bool(REGB1)) {
595 /* ./metamodel//static_type.nit:113 */
596 REGB1 = REGB3;
597 /* ./metamodel//static_type.nit:114 */
598 fra.me.REG[2] = CALL_static_type___MMSignature_____bra(fra.me.REG[1])(fra.me.REG[1], REGB1);
599 fra.me.REG[3] = CALL_static_type___MMSignature_____bra(fra.me.REG[0])(fra.me.REG[0], REGB1);
600 REGB1 = CALL_static_type___MMType_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
601 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
602 if (UNTAG_Bool(REGB1)) {
603 /* ./metamodel//static_type.nit:115 */
604 REGB1 = TAG_Bool(false);
605 REGB0 = REGB1;
606 goto label1;
607 }
608 /* ./../lib/standard//kernel.nit:334 */
609 REGB1 = TAG_Int(1);
610 /* ./../lib/standard//kernel.nit:215 */
611 REGB1 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB1));
612 /* ./../lib/standard//kernel.nit:334 */
613 REGB3 = REGB1;
614 } else {
615 /* ./../lib/standard//kernel.nit:332 */
616 goto label2;
617 }
618 }
619 label2: while(0);
620 /* ./metamodel//static_type.nit:119 */
621 fra.me.REG[3] = CALL_static_type___MMSignature___closures(fra.me.REG[0])(fra.me.REG[0]);
622 /* ./../lib/standard//collection//array.nit:23 */
623 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
624 if (UNTAG_Bool(REGB3)) {
625 } else {
626 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
627 }
628 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
629 /* ./metamodel//static_type.nit:119 */
630 fra.me.REG[3] = CALL_static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
631 /* ./../lib/standard//collection//array.nit:23 */
632 REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
633 if (UNTAG_Bool(REGB4)) {
634 } else {
635 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
636 }
637 REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
638 /* ./metamodel//static_type.nit:119 */
639 REGB1 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
640 if (UNTAG_Bool(REGB1)) {
641 } else {
642 /* ./../lib/standard//kernel.nit:207 */
643 REGB4 = TAG_Bool((REGB3)==(REGB4));
644 /* ./metamodel//static_type.nit:119 */
645 REGB1 = REGB4;
646 }
647 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
648 if (UNTAG_Bool(REGB1)) {
649 REGB1 = TAG_Bool(false);
650 REGB0 = REGB1;
651 goto label1;
652 }
653 /* ./metamodel//static_type.nit:120 */
654 REGB1 = TAG_Int(0);
655 fra.me.REG[3] = CALL_static_type___MMSignature___closures(fra.me.REG[0])(fra.me.REG[0]);
656 /* ./../lib/standard//collection//array.nit:23 */
657 REGB4 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
658 if (UNTAG_Bool(REGB4)) {
659 } else {
660 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
661 }
662 REGB4 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
663 /* ./../lib/standard//kernel.nit:332 */
664 while(1) {
665 /* ./../lib/standard//kernel.nit:212 */
666 REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB4));
667 /* ./../lib/standard//kernel.nit:332 */
668 if (UNTAG_Bool(REGB3)) {
669 /* ./metamodel//static_type.nit:120 */
670 REGB3 = REGB1;
671 /* ./metamodel//static_type.nit:121 */
672 fra.me.REG[3] = CALL_static_type___MMSignature___closures(fra.me.REG[1])(fra.me.REG[1]);
673 /* ./../lib/standard//collection//array.nit:243 */
674 REGB2 = REGB3;
675 /* ./../lib/standard//collection//array.nit:245 */
676 REGB5 = TAG_Int(0);
677 /* ./../lib/standard//kernel.nit:213 */
678 REGB5 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB5));
679 /* ./../lib/standard//collection//array.nit:245 */
680 if (UNTAG_Bool(REGB5)) {
681 REGB5 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
682 if (UNTAG_Bool(REGB5)) {
683 } else {
684 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
685 }
686 REGB5 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
687 /* ./../lib/standard//kernel.nit:212 */
688 REGB5 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB5));
689 } else {
690 /* ./../lib/standard//collection//array.nit:245 */
691 REGB6 = TAG_Bool(false);
692 REGB5 = REGB6;
693 }
694 if (UNTAG_Bool(REGB5)) {
695 } else {
696 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
697 }
698 /* ./../lib/standard//collection//array.nit:246 */
699 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[3]);
700 REGB5 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
701 if (UNTAG_Bool(REGB5)) {
702 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
703 }
704 /* ./../lib/standard//collection//array.nit:654 */
705 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB2)];
706 /* ./../lib/standard//collection//array.nit:246 */
707 goto label3;
708 label3: while(0);
709 /* ./metamodel//static_type.nit:121 */
710 fra.me.REG[2] = CALL_static_type___MMSignature___closures(fra.me.REG[0])(fra.me.REG[0]);
711 /* ./../lib/standard//collection//array.nit:245 */
712 REGB2 = TAG_Int(0);
713 /* ./../lib/standard//kernel.nit:213 */
714 REGB2 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB2));
715 /* ./../lib/standard//collection//array.nit:245 */
716 if (UNTAG_Bool(REGB2)) {
717 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
718 if (UNTAG_Bool(REGB2)) {
719 } else {
720 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
721 }
722 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
723 /* ./../lib/standard//kernel.nit:212 */
724 REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
725 } else {
726 /* ./../lib/standard//collection//array.nit:245 */
727 REGB5 = TAG_Bool(false);
728 REGB2 = REGB5;
729 }
730 if (UNTAG_Bool(REGB2)) {
731 } else {
732 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
733 }
734 /* ./../lib/standard//collection//array.nit:246 */
735 fra.me.REG[2] = ATTR_array___Array____items(fra.me.REG[2]);
736 REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
737 if (UNTAG_Bool(REGB2)) {
738 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
739 }
740 /* ./../lib/standard//collection//array.nit:654 */
741 fra.me.REG[2] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB3)];
742 /* ./../lib/standard//collection//array.nit:246 */
743 goto label4;
744 label4: while(0);
745 /* ./metamodel//static_type.nit:121 */
746 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
747 if (UNTAG_Bool(REGB3)) {
748 nit_abort("Reciever is null", NULL, LOCATE_static_type, 121);
749 }
750 REGB3 = CALL_static_type___MMClosure_____l(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]);
751 REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
752 if (UNTAG_Bool(REGB3)) {
753 REGB3 = TAG_Bool(false);
754 REGB0 = REGB3;
755 goto label1;
756 }
757 /* ./../lib/standard//kernel.nit:334 */
758 REGB3 = TAG_Int(1);
759 /* ./../lib/standard//kernel.nit:215 */
760 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
761 /* ./../lib/standard//kernel.nit:334 */
762 REGB1 = REGB3;
763 } else {
764 /* ./../lib/standard//kernel.nit:332 */
765 goto label5;
766 }
767 }
768 label5: while(0);
769 /* ./metamodel//static_type.nit:123 */
770 REGB1 = TAG_Bool(true);
771 REGB0 = REGB1;
772 goto label1;
773 label1: while(0);
774 stack_frame_head = fra.me.prev;
775 return REGB0;
776 }
777 val_t static_type___MMSignature_____bra(val_t p0, val_t p1){
778 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
779 val_t REGB0;
780 val_t REGB1;
781 val_t REGB2;
782 val_t tmp;
783 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
784 fra.me.file = LOCATE_static_type;
785 fra.me.line = 126;
786 fra.me.meth = LOCATE_static_type___MMSignature_____bra;
787 fra.me.has_broke = 0;
788 fra.me.REG_size = 2;
789 fra.me.REG[0] = NIT_NULL;
790 fra.me.REG[1] = NIT_NULL;
791 fra.me.REG[0] = p0;
792 REGB0 = p1;
793 /* ./metamodel//static_type.nit:129 */
794 REGB1 = TAG_Bool(ATTR_static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
795 if (UNTAG_Bool(REGB1)) {
796 } else {
797 nit_abort("Uninitialized attribute %s", "_params", LOCATE_static_type, 129);
798 }
799 fra.me.REG[1] = ATTR_static_type___MMSignature____params(fra.me.REG[0]);
800 /* ./../lib/standard//collection//array.nit:23 */
801 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
802 if (UNTAG_Bool(REGB1)) {
803 } else {
804 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
805 }
806 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
807 /* ./../lib/standard//kernel.nit:214 */
808 REGB1 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
809 /* ./metamodel//static_type.nit:129 */
810 if (UNTAG_Bool(REGB1)) {
811 } else {
812 nit_abort("Assert failed", NULL, LOCATE_static_type, 129);
813 }
814 /* ./metamodel//static_type.nit:130 */
815 REGB1 = TAG_Bool(ATTR_static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
816 if (UNTAG_Bool(REGB1)) {
817 } else {
818 nit_abort("Uninitialized attribute %s", "_params", LOCATE_static_type, 130);
819 }
820 fra.me.REG[0] = ATTR_static_type___MMSignature____params(fra.me.REG[0]);
821 /* ./../lib/standard//collection//array.nit:245 */
822 REGB1 = TAG_Int(0);
823 /* ./../lib/standard//kernel.nit:213 */
824 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
825 /* ./../lib/standard//collection//array.nit:245 */
826 if (UNTAG_Bool(REGB1)) {
827 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
828 if (UNTAG_Bool(REGB1)) {
829 } else {
830 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
831 }
832 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
833 /* ./../lib/standard//kernel.nit:212 */
834 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
835 } else {
836 /* ./../lib/standard//collection//array.nit:245 */
837 REGB2 = TAG_Bool(false);
838 REGB1 = REGB2;
839 }
840 if (UNTAG_Bool(REGB1)) {
841 } else {
842 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
843 }
844 /* ./../lib/standard//collection//array.nit:246 */
845 fra.me.REG[0] = ATTR_array___Array____items(fra.me.REG[0]);
846 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
847 if (UNTAG_Bool(REGB1)) {
848 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
849 }
850 /* ./../lib/standard//collection//array.nit:654 */
851 fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
852 /* ./../lib/standard//collection//array.nit:246 */
853 goto label1;
854 label1: while(0);
855 /* ./metamodel//static_type.nit:130 */
856 goto label2;
857 label2: while(0);
858 stack_frame_head = fra.me.prev;
859 return fra.me.REG[0];
860 }
861 val_t static_type___MMSignature___to_s(val_t p0){
862 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
863 val_t REGB0;
864 val_t REGB1;
865 val_t REGB2;
866 val_t REGB3;
867 val_t REGB4;
868 val_t tmp;
869 static val_t once_value_3; /* Once value */
870 static val_t once_value_4; /* Once value */
871 static val_t once_value_5; /* Once value */
872 static val_t once_value_6; /* Once value */
873 static val_t once_value_7; /* Once value */
874 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
875 fra.me.file = LOCATE_static_type;
876 fra.me.line = 133;
877 fra.me.meth = LOCATE_static_type___MMSignature___to_s;
878 fra.me.has_broke = 0;
879 fra.me.REG_size = 5;
880 fra.me.REG[0] = NIT_NULL;
881 fra.me.REG[1] = NIT_NULL;
882 fra.me.REG[2] = NIT_NULL;
883 fra.me.REG[3] = NIT_NULL;
884 fra.me.REG[4] = NIT_NULL;
885 fra.me.REG[0] = p0;
886 /* ./metamodel//static_type.nit:135 */
887 fra.me.REG[1] = NEW_Buffer_string___Buffer___init();
888 /* ./metamodel//static_type.nit:136 */
889 REGB0 = TAG_Bool(ATTR_static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
890 if (UNTAG_Bool(REGB0)) {
891 } else {
892 nit_abort("Uninitialized attribute %s", "_params", LOCATE_static_type, 136);
893 }
894 fra.me.REG[2] = ATTR_static_type___MMSignature____params(fra.me.REG[0]);
895 /* ./../lib/standard//collection//array.nit:23 */
896 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
897 if (UNTAG_Bool(REGB0)) {
898 } else {
899 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
900 }
901 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
902 /* ./metamodel//static_type.nit:136 */
903 REGB1 = TAG_Int(0);
904 /* ./../lib/standard//kernel.nit:214 */
905 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
906 /* ./metamodel//static_type.nit:136 */
907 if (UNTAG_Bool(REGB1)) {
908 /* ./metamodel//static_type.nit:138 */
909 REGB1 = TAG_Bool(ATTR_static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
910 if (UNTAG_Bool(REGB1)) {
911 } else {
912 nit_abort("Uninitialized attribute %s", "_params", LOCATE_static_type, 138);
913 }
914 fra.me.REG[2] = ATTR_static_type___MMSignature____params(fra.me.REG[0]);
915 /* ./../lib/standard//collection//array.nit:23 */
916 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
917 if (UNTAG_Bool(REGB1)) {
918 } else {
919 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
920 }
921 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
922 /* ./metamodel//static_type.nit:138 */
923 fra.me.REG[2] = NEW_Array_array___Array___with_capacity(REGB1);
924 /* ./metamodel//static_type.nit:139 */
925 REGB1 = TAG_Int(0);
926 REGB0 = TAG_Bool(ATTR_static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
927 if (UNTAG_Bool(REGB0)) {
928 } else {
929 nit_abort("Uninitialized attribute %s", "_params", LOCATE_static_type, 139);
930 }
931 fra.me.REG[3] = ATTR_static_type___MMSignature____params(fra.me.REG[0]);
932 /* ./../lib/standard//collection//array.nit:23 */
933 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
934 if (UNTAG_Bool(REGB0)) {
935 } else {
936 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
937 }
938 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
939 /* ./../lib/standard//kernel.nit:332 */
940 while(1) {
941 /* ./../lib/standard//kernel.nit:212 */
942 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
943 /* ./../lib/standard//kernel.nit:332 */
944 if (UNTAG_Bool(REGB2)) {
945 /* ./metamodel//static_type.nit:139 */
946 REGB2 = REGB1;
947 /* ./metamodel//static_type.nit:141 */
948 REGB3 = TAG_Bool(ATTR_static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
949 if (UNTAG_Bool(REGB3)) {
950 } else {
951 nit_abort("Uninitialized attribute %s", "_params", LOCATE_static_type, 141);
952 }
953 fra.me.REG[3] = ATTR_static_type___MMSignature____params(fra.me.REG[0]);
954 /* ./../lib/standard//collection//array.nit:245 */
955 REGB3 = TAG_Int(0);
956 /* ./../lib/standard//kernel.nit:213 */
957 REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
958 /* ./../lib/standard//collection//array.nit:245 */
959 if (UNTAG_Bool(REGB3)) {
960 REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
961 if (UNTAG_Bool(REGB3)) {
962 } else {
963 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 245);
964 }
965 REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
966 /* ./../lib/standard//kernel.nit:212 */
967 REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
968 } else {
969 /* ./../lib/standard//collection//array.nit:245 */
970 REGB4 = TAG_Bool(false);
971 REGB3 = REGB4;
972 }
973 if (UNTAG_Bool(REGB3)) {
974 } else {
975 nit_abort("Assert %s failed", "'index'", LOCATE_array, 245);
976 }
977 /* ./../lib/standard//collection//array.nit:246 */
978 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[3]);
979 REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
980 if (UNTAG_Bool(REGB3)) {
981 nit_abort("Reciever is null", NULL, LOCATE_array, 246);
982 }
983 /* ./../lib/standard//collection//array.nit:654 */
984 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB2)];
985 /* ./../lib/standard//collection//array.nit:246 */
986 goto label1;
987 label1: while(0);
988 /* ./metamodel//static_type.nit:143 */
989 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
990 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
991 /* ./../lib/standard//kernel.nit:334 */
992 REGB2 = TAG_Int(1);
993 /* ./../lib/standard//kernel.nit:215 */
994 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
995 /* ./../lib/standard//kernel.nit:334 */
996 REGB1 = REGB2;
997 } else {
998 /* ./../lib/standard//kernel.nit:332 */
999 goto label2;
1000 }
1001 }
1002 label2: while(0);
1003 /* ./metamodel//static_type.nit:145 */
1004 REGB1 = TAG_Int(3);
1005 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1);
1006 if (!once_value_3) {
1007 fra.me.REG[4] = BOX_NativeString("(");
1008 REGB1 = TAG_Int(1);
1009 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
1010 once_value_3 = fra.me.REG[4];
1011 register_static_object(&once_value_3);
1012 } else fra.me.REG[4] = once_value_3;
1013 fra.me.REG[4] = fra.me.REG[4];
1014 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1015 if (!once_value_4) {
1016 fra.me.REG[4] = BOX_NativeString(",");
1017 REGB1 = TAG_Int(1);
1018 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
1019 once_value_4 = fra.me.REG[4];
1020 register_static_object(&once_value_4);
1021 } else fra.me.REG[4] = once_value_4;
1022 fra.me.REG[4] = fra.me.REG[4];
1023 fra.me.REG[4] = CALL_string___Collection___join(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1024 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1025 if (!once_value_5) {
1026 fra.me.REG[4] = BOX_NativeString(")");
1027 REGB1 = TAG_Int(1);
1028 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
1029 once_value_5 = fra.me.REG[4];
1030 register_static_object(&once_value_5);
1031 } else fra.me.REG[4] = once_value_5;
1032 fra.me.REG[4] = fra.me.REG[4];
1033 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1034 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1035 CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1036 }
1037 /* ./metamodel//static_type.nit:147 */
1038 fra.me.REG[0] = ATTR_static_type___MMSignature____return_type(fra.me.REG[0]);
1039 /* ./metamodel//static_type.nit:148 */
1040 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1041 if (UNTAG_Bool(REGB1)) {
1042 } else {
1043 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
1044 if (UNTAG_Bool(REGB0)) {
1045 REGB0 = TAG_Bool(false);
1046 REGB1 = REGB0;
1047 } else {
1048 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
1049 REGB1 = REGB0;
1050 }
1051 }
1052 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1053 if (UNTAG_Bool(REGB1)) {
1054 REGB1 = TAG_Int(3);
1055 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB1);
1056 if (!once_value_6) {
1057 fra.me.REG[4] = BOX_NativeString(": ");
1058 REGB1 = TAG_Int(2);
1059 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB1);
1060 once_value_6 = fra.me.REG[4];
1061 register_static_object(&once_value_6);
1062 } else fra.me.REG[4] = once_value_6;
1063 fra.me.REG[4] = fra.me.REG[4];
1064 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
1065 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
1066 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
1067 if (!once_value_7) {
1068 fra.me.REG[0] = BOX_NativeString("");
1069 REGB1 = TAG_Int(0);
1070 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB1);
1071 once_value_7 = fra.me.REG[0];
1072 register_static_object(&once_value_7);
1073 } else fra.me.REG[0] = once_value_7;
1074 fra.me.REG[0] = fra.me.REG[0];
1075 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[0]);
1076 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
1077 CALL_abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
1078 }
1079 /* ./metamodel//static_type.nit:149 */
1080 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
1081 goto label8;
1082 label8: while(0);
1083 stack_frame_head = fra.me.prev;
1084 return fra.me.REG[1];
1085 }
1086 val_t static_type___MMSignature___adaptation_to(val_t p0, val_t p1){
1087 struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
1088 val_t REGB0;
1089 val_t REGB1;
1090 val_t tmp;
1091 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1092 fra.me.file = LOCATE_static_type;
1093 fra.me.line = 152;
1094 fra.me.meth = LOCATE_static_type___MMSignature___adaptation_to;
1095 fra.me.has_broke = 0;
1096 fra.me.REG_size = 8;
1097 fra.me.REG[0] = NIT_NULL;
1098 fra.me.REG[1] = NIT_NULL;
1099 fra.me.REG[2] = NIT_NULL;
1100 fra.me.REG[3] = NIT_NULL;
1101 fra.me.REG[4] = NIT_NULL;
1102 fra.me.REG[5] = NIT_NULL;
1103 fra.me.REG[6] = NIT_NULL;
1104 fra.me.REG[7] = NIT_NULL;
1105 fra.me.REG[0] = p0;
1106 fra.me.REG[1] = p1;
1107 /* ./metamodel//static_type.nit:155 */
1108 REGB0 = TAG_Bool(ATTR_static_type___MMSignature____recv(fra.me.REG[0])!=NIT_NULL);
1109 if (UNTAG_Bool(REGB0)) {
1110 } else {
1111 nit_abort("Uninitialized attribute %s", "_recv", LOCATE_static_type, 155);
1112 }
1113 fra.me.REG[2] = ATTR_static_type___MMSignature____recv(fra.me.REG[0]);
1114 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[1]));
1115 if (UNTAG_Bool(REGB0)) {
1116 } else {
1117 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1118 REGB0 = REGB1;
1119 }
1120 if (UNTAG_Bool(REGB0)) {
1121 /* ./metamodel//static_type.nit:156 */
1122 fra.me.REG[2] = fra.me.REG[0];
1123 goto label1;
1124 }
1125 /* ./metamodel//static_type.nit:158 */
1126 fra.me.REG[3] = CALL_static_type___MMType___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
1127 /* ./metamodel//static_type.nit:159 */
1128 fra.me.REG[4] = NEW_Array_array___Array___init();
1129 /* ./metamodel//static_type.nit:160 */
1130 REGB0 = TAG_Bool(ATTR_static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
1131 if (UNTAG_Bool(REGB0)) {
1132 } else {
1133 nit_abort("Uninitialized attribute %s", "_params", LOCATE_static_type, 160);
1134 }
1135 fra.me.REG[5] = ATTR_static_type___MMSignature____params(fra.me.REG[0]);
1136 /* ./../lib/standard//collection//array.nit:234 */
1137 REGB0 = TAG_Int(0);
1138 /* ./../lib/standard//collection//array.nit:235 */
1139 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1140 if (UNTAG_Bool(REGB1)) {
1141 } else {
1142 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
1143 }
1144 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
1145 /* ./../lib/standard//collection//array.nit:236 */
1146 fra.me.REG[6] = ATTR_array___Array____items(fra.me.REG[5]);
1147 /* ./../lib/standard//collection//array.nit:237 */
1148 while(1) {
1149 /* ./../lib/standard//collection//array.nit:23 */
1150 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
1151 if (UNTAG_Bool(REGB1)) {
1152 } else {
1153 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
1154 }
1155 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[5]);
1156 /* ./../lib/standard//kernel.nit:212 */
1157 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1158 /* ./../lib/standard//collection//array.nit:237 */
1159 if (UNTAG_Bool(REGB1)) {
1160 /* ./../lib/standard//collection//array.nit:238 */
1161 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
1162 if (UNTAG_Bool(REGB1)) {
1163 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
1164 }
1165 /* ./../lib/standard//collection//array.nit:654 */
1166 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
1167 /* ./metamodel//static_type.nit:161 */
1168 fra.me.REG[7] = CALL_static_type___MMType___for_module(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[3]);
1169 fra.me.REG[7] = CALL_static_type___MMType___adapt_to(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[1]);
1170 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]);
1171 /* ./../lib/standard//collection//array.nit:239 */
1172 REGB1 = TAG_Int(1);
1173 /* ./../lib/standard//kernel.nit:215 */
1174 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1175 /* ./../lib/standard//collection//array.nit:239 */
1176 REGB0 = REGB1;
1177 } else {
1178 /* ./../lib/standard//collection//array.nit:237 */
1179 goto label2;
1180 }
1181 }
1182 label2: while(0);
1183 /* ./metamodel//static_type.nit:163 */
1184 fra.me.REG[6] = ATTR_static_type___MMSignature____return_type(fra.me.REG[0]);
1185 /* ./metamodel//static_type.nit:164 */
1186 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
1187 if (UNTAG_Bool(REGB0)) {
1188 } else {
1189 REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
1190 if (UNTAG_Bool(REGB1)) {
1191 REGB1 = TAG_Bool(false);
1192 REGB0 = REGB1;
1193 } else {
1194 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
1195 REGB0 = REGB1;
1196 }
1197 }
1198 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1199 if (UNTAG_Bool(REGB0)) {
1200 /* ./metamodel//static_type.nit:165 */
1201 REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
1202 if (UNTAG_Bool(REGB0)) {
1203 nit_abort("Reciever is null", NULL, LOCATE_static_type, 165);
1204 }
1205 fra.me.REG[3] = CALL_static_type___MMType___for_module(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]);
1206 fra.me.REG[3] = CALL_static_type___MMType___adapt_to(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1207 fra.me.REG[6] = fra.me.REG[3];
1208 }
1209 /* ./metamodel//static_type.nit:167 */
1210 fra.me.REG[6] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[4], fra.me.REG[6], fra.me.REG[1]);
1211 /* ./metamodel//static_type.nit:168 */
1212 REGB0 = TAG_Bool(ATTR_static_type___MMSignature____closures(fra.me.REG[0])!=NIT_NULL);
1213 if (UNTAG_Bool(REGB0)) {
1214 } else {
1215 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_static_type, 168);
1216 }
1217 fra.me.REG[0] = ATTR_static_type___MMSignature____closures(fra.me.REG[0]);
1218 /* ./../lib/standard//collection//array.nit:234 */
1219 REGB0 = TAG_Int(0);
1220 /* ./../lib/standard//collection//array.nit:235 */
1221 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1222 if (UNTAG_Bool(REGB1)) {
1223 } else {
1224 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
1225 }
1226 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1227 /* ./../lib/standard//collection//array.nit:236 */
1228 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[0]);
1229 /* ./../lib/standard//collection//array.nit:237 */
1230 while(1) {
1231 /* ./../lib/standard//collection//array.nit:23 */
1232 REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
1233 if (UNTAG_Bool(REGB1)) {
1234 } else {
1235 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
1236 }
1237 REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
1238 /* ./../lib/standard//kernel.nit:212 */
1239 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1240 /* ./../lib/standard//collection//array.nit:237 */
1241 if (UNTAG_Bool(REGB1)) {
1242 /* ./../lib/standard//collection//array.nit:238 */
1243 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1244 if (UNTAG_Bool(REGB1)) {
1245 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
1246 }
1247 /* ./../lib/standard//collection//array.nit:654 */
1248 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
1249 /* ./metamodel//static_type.nit:169 */
1250 fra.me.REG[5] = CALL_static_type___MMSignature___closures(fra.me.REG[6])(fra.me.REG[6]);
1251 fra.me.REG[3] = CALL_static_type___MMClosure___adaptation_to(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1252 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
1253 /* ./../lib/standard//collection//array.nit:239 */
1254 REGB1 = TAG_Int(1);
1255 /* ./../lib/standard//kernel.nit:215 */
1256 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1257 /* ./../lib/standard//collection//array.nit:239 */
1258 REGB0 = REGB1;
1259 } else {
1260 /* ./../lib/standard//collection//array.nit:237 */
1261 goto label3;
1262 }
1263 }
1264 label3: while(0);
1265 /* ./metamodel//static_type.nit:171 */
1266 fra.me.REG[2] = fra.me.REG[6];
1267 goto label1;
1268 label1: while(0);
1269 stack_frame_head = fra.me.prev;
1270 return fra.me.REG[2];
1271 }
1272 val_t static_type___MMSignature___not_for_self(val_t p0){
1273 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
1274 val_t REGB0;
1275 val_t REGB1;
1276 val_t REGB2;
1277 val_t REGB3;
1278 val_t tmp;
1279 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1280 fra.me.file = LOCATE_static_type;
1281 fra.me.line = 176;
1282 fra.me.meth = LOCATE_static_type___MMSignature___not_for_self;
1283 fra.me.has_broke = 0;
1284 fra.me.REG_size = 9;
1285 fra.me.REG[0] = NIT_NULL;
1286 fra.me.REG[1] = NIT_NULL;
1287 fra.me.REG[2] = NIT_NULL;
1288 fra.me.REG[3] = NIT_NULL;
1289 fra.me.REG[4] = NIT_NULL;
1290 fra.me.REG[5] = NIT_NULL;
1291 fra.me.REG[6] = NIT_NULL;
1292 fra.me.REG[7] = NIT_NULL;
1293 fra.me.REG[8] = NIT_NULL;
1294 fra.me.REG[0] = p0;
1295 /* ./metamodel//static_type.nit:180 */
1296 fra.me.REG[1] = ATTR_static_type___MMSignature____not_for_self_cache(fra.me.REG[0]);
1297 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1298 if (UNTAG_Bool(REGB0)) {
1299 } else {
1300 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
1301 if (UNTAG_Bool(REGB1)) {
1302 REGB1 = TAG_Bool(false);
1303 REGB0 = REGB1;
1304 } else {
1305 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
1306 REGB0 = REGB1;
1307 }
1308 }
1309 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1310 if (UNTAG_Bool(REGB0)) {
1311 fra.me.REG[1] = ATTR_static_type___MMSignature____not_for_self_cache(fra.me.REG[0]);
1312 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1313 if (UNTAG_Bool(REGB0)) {
1314 } else {
1315 nit_abort("Cast failed", NULL, LOCATE_static_type, 180);
1316 }
1317 goto label1;
1318 }
1319 /* ./metamodel//static_type.nit:182 */
1320 REGB0 = TAG_Bool(false);
1321 /* ./metamodel//static_type.nit:183 */
1322 fra.me.REG[2] = NEW_Array_array___Array___init();
1323 /* ./metamodel//static_type.nit:184 */
1324 REGB1 = TAG_Bool(ATTR_static_type___MMSignature____params(fra.me.REG[0])!=NIT_NULL);
1325 if (UNTAG_Bool(REGB1)) {
1326 } else {
1327 nit_abort("Uninitialized attribute %s", "_params", LOCATE_static_type, 184);
1328 }
1329 fra.me.REG[3] = ATTR_static_type___MMSignature____params(fra.me.REG[0]);
1330 /* ./../lib/standard//collection//array.nit:234 */
1331 REGB1 = TAG_Int(0);
1332 /* ./../lib/standard//collection//array.nit:235 */
1333 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1334 if (UNTAG_Bool(REGB2)) {
1335 } else {
1336 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
1337 }
1338 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
1339 /* ./../lib/standard//collection//array.nit:236 */
1340 fra.me.REG[4] = ATTR_array___Array____items(fra.me.REG[3]);
1341 /* ./../lib/standard//collection//array.nit:237 */
1342 while(1) {
1343 /* ./../lib/standard//collection//array.nit:23 */
1344 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1345 if (UNTAG_Bool(REGB2)) {
1346 } else {
1347 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
1348 }
1349 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
1350 /* ./../lib/standard//kernel.nit:212 */
1351 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1352 /* ./../lib/standard//collection//array.nit:237 */
1353 if (UNTAG_Bool(REGB2)) {
1354 /* ./../lib/standard//collection//array.nit:238 */
1355 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1356 if (UNTAG_Bool(REGB2)) {
1357 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
1358 }
1359 /* ./../lib/standard//collection//array.nit:654 */
1360 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
1361 /* ./metamodel//static_type.nit:185 */
1362 fra.me.REG[6] = CALL_static_type___MMType___not_for_self(fra.me.REG[5])(fra.me.REG[5]);
1363 /* ./metamodel//static_type.nit:186 */
1364 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[5],fra.me.REG[6]));
1365 if (UNTAG_Bool(REGB2)) {
1366 } else {
1367 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
1368 REGB2 = REGB3;
1369 }
1370 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
1371 if (UNTAG_Bool(REGB2)) {
1372 REGB2 = TAG_Bool(true);
1373 REGB0 = REGB2;
1374 }
1375 /* ./metamodel//static_type.nit:187 */
1376 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[6]);
1377 /* ./../lib/standard//collection//array.nit:239 */
1378 REGB2 = TAG_Int(1);
1379 /* ./../lib/standard//kernel.nit:215 */
1380 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1381 /* ./../lib/standard//collection//array.nit:239 */
1382 REGB1 = REGB2;
1383 } else {
1384 /* ./../lib/standard//collection//array.nit:237 */
1385 goto label2;
1386 }
1387 }
1388 label2: while(0);
1389 /* ./metamodel//static_type.nit:190 */
1390 fra.me.REG[4] = ATTR_static_type___MMSignature____return_type(fra.me.REG[0]);
1391 /* ./metamodel//static_type.nit:191 */
1392 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1393 if (UNTAG_Bool(REGB1)) {
1394 } else {
1395 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1396 if (UNTAG_Bool(REGB2)) {
1397 REGB2 = TAG_Bool(false);
1398 REGB1 = REGB2;
1399 } else {
1400 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
1401 REGB1 = REGB2;
1402 }
1403 }
1404 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1405 if (UNTAG_Bool(REGB1)) {
1406 /* ./metamodel//static_type.nit:192 */
1407 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1408 if (UNTAG_Bool(REGB1)) {
1409 nit_abort("Reciever is null", NULL, LOCATE_static_type, 192);
1410 }
1411 fra.me.REG[3] = CALL_static_type___MMType___not_for_self(fra.me.REG[4])(fra.me.REG[4]);
1412 fra.me.REG[4] = fra.me.REG[3];
1413 /* ./metamodel//static_type.nit:193 */
1414 fra.me.REG[3] = ATTR_static_type___MMSignature____return_type(fra.me.REG[0]);
1415 REGB1 = TAG_Bool(IS_EQUAL_NN(fra.me.REG[4],fra.me.REG[3]));
1416 if (UNTAG_Bool(REGB1)) {
1417 } else {
1418 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1419 if (UNTAG_Bool(REGB2)) {
1420 REGB2 = TAG_Bool(false);
1421 REGB1 = REGB2;
1422 } else {
1423 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1424 REGB1 = REGB2;
1425 }
1426 }
1427 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1428 if (UNTAG_Bool(REGB1)) {
1429 REGB1 = TAG_Bool(true);
1430 REGB0 = REGB1;
1431 }
1432 }
1433 /* ./metamodel//static_type.nit:196 */
1434 fra.me.REG[3] = NEW_Array_array___Array___init();
1435 /* ./metamodel//static_type.nit:197 */
1436 REGB1 = TAG_Bool(ATTR_static_type___MMSignature____closures(fra.me.REG[0])!=NIT_NULL);
1437 if (UNTAG_Bool(REGB1)) {
1438 } else {
1439 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_static_type, 197);
1440 }
1441 fra.me.REG[6] = ATTR_static_type___MMSignature____closures(fra.me.REG[0]);
1442 /* ./../lib/standard//collection//array.nit:234 */
1443 REGB1 = TAG_Int(0);
1444 /* ./../lib/standard//collection//array.nit:235 */
1445 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
1446 if (UNTAG_Bool(REGB2)) {
1447 } else {
1448 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 235);
1449 }
1450 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]);
1451 /* ./../lib/standard//collection//array.nit:236 */
1452 fra.me.REG[5] = ATTR_array___Array____items(fra.me.REG[6]);
1453 /* ./../lib/standard//collection//array.nit:237 */
1454 while(1) {
1455 /* ./../lib/standard//collection//array.nit:23 */
1456 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
1457 if (UNTAG_Bool(REGB2)) {
1458 } else {
1459 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
1460 }
1461 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[6]);
1462 /* ./../lib/standard//kernel.nit:212 */
1463 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1464 /* ./../lib/standard//collection//array.nit:237 */
1465 if (UNTAG_Bool(REGB2)) {
1466 /* ./../lib/standard//collection//array.nit:238 */
1467 REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1468 if (UNTAG_Bool(REGB2)) {
1469 nit_abort("Reciever is null", NULL, LOCATE_array, 238);
1470 }
1471 /* ./../lib/standard//collection//array.nit:654 */
1472 fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
1473 /* ./metamodel//static_type.nit:198 */
1474 fra.me.REG[8] = CALL_static_type___MMClosure___not_for_self(fra.me.REG[7])(fra.me.REG[7]);
1475 /* ./metamodel//static_type.nit:199 */
1476 REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[8],fra.me.REG[7]));
1477 if (UNTAG_Bool(REGB2)) {
1478 } else {
1479 REGB3 = CALL_kernel___Object_____eqeq(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]);
1480 REGB2 = REGB3;
1481 }
1482 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
1483 if (UNTAG_Bool(REGB2)) {
1484 REGB2 = TAG_Bool(true);
1485 REGB0 = REGB2;
1486 }
1487 /* ./metamodel//static_type.nit:200 */
1488 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
1489 /* ./../lib/standard//collection//array.nit:239 */
1490 REGB2 = TAG_Int(1);
1491 /* ./../lib/standard//kernel.nit:215 */
1492 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1493 /* ./../lib/standard//collection//array.nit:239 */
1494 REGB1 = REGB2;
1495 } else {
1496 /* ./../lib/standard//collection//array.nit:237 */
1497 goto label3;
1498 }
1499 }
1500 label3: while(0);
1501 /* ./metamodel//static_type.nit:204 */
1502 if (UNTAG_Bool(REGB0)) {
1503 /* ./metamodel//static_type.nit:205 */
1504 REGB0 = TAG_Bool(ATTR_static_type___MMSignature____recv(fra.me.REG[0])!=NIT_NULL);
1505 if (UNTAG_Bool(REGB0)) {
1506 } else {
1507 nit_abort("Uninitialized attribute %s", "_recv", LOCATE_static_type, 205);
1508 }
1509 fra.me.REG[5] = ATTR_static_type___MMSignature____recv(fra.me.REG[0]);
1510 fra.me.REG[5] = NEW_MMSignature_static_type___MMSignature___init(fra.me.REG[2], fra.me.REG[4], fra.me.REG[5]);
1511 /* ./metamodel//static_type.nit:206 */
1512 fra.me.REG[4] = CALL_static_type___MMSignature___closures(fra.me.REG[5])(fra.me.REG[5]);
1513 CALL_abstract_collection___SimpleCollection___add_all(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
1514 } else {
1515 /* ./metamodel//static_type.nit:208 */
1516 fra.me.REG[5] = fra.me.REG[0];
1517 }
1518 /* ./metamodel//static_type.nit:211 */
1519 ATTR_static_type___MMSignature____not_for_self_cache(fra.me.REG[0]) = fra.me.REG[5];
1520 /* ./metamodel//static_type.nit:212 */
1521 fra.me.REG[1] = fra.me.REG[5];
1522 goto label1;
1523 label1: while(0);
1524 stack_frame_head = fra.me.prev;
1525 return fra.me.REG[1];
1526 }
1527 void static_type___MMSignature___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1528 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMSignature].i;
1529 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1530 val_t tmp;
1531 if (init_table[itpos0]) return;
1532 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1533 fra.me.file = LOCATE_static_type;
1534 fra.me.line = 215;
1535 fra.me.meth = LOCATE_static_type___MMSignature___init;
1536 fra.me.has_broke = 0;
1537 fra.me.REG_size = 4;
1538 fra.me.REG[0] = NIT_NULL;
1539 fra.me.REG[1] = NIT_NULL;
1540 fra.me.REG[2] = NIT_NULL;
1541 fra.me.REG[3] = NIT_NULL;
1542 fra.me.REG[0] = p0;
1543 fra.me.REG[1] = p1;
1544 fra.me.REG[2] = p2;
1545 fra.me.REG[3] = p3;
1546 /* ./metamodel//static_type.nit:217 */
1547 ATTR_static_type___MMSignature____params(fra.me.REG[0]) = fra.me.REG[1];
1548 /* ./metamodel//static_type.nit:218 */
1549 ATTR_static_type___MMSignature____return_type(fra.me.REG[0]) = fra.me.REG[2];
1550 /* ./metamodel//static_type.nit:219 */
1551 ATTR_static_type___MMSignature____recv(fra.me.REG[0]) = fra.me.REG[3];
1552 stack_frame_head = fra.me.prev;
1553 init_table[itpos0] = 1;
1554 return;
1555 }
1556 val_t static_type___MMClosure___name(val_t p0){
1557 struct {struct stack_frame_t me;} fra;
1558 val_t REGB0;
1559 val_t tmp;
1560 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1561 fra.me.file = LOCATE_static_type;
1562 fra.me.line = 225;
1563 fra.me.meth = LOCATE_static_type___MMClosure___name;
1564 fra.me.has_broke = 0;
1565 fra.me.REG_size = 1;
1566 fra.me.REG[0] = NIT_NULL;
1567 fra.me.REG[0] = p0;
1568 /* ./metamodel//static_type.nit:225 */
1569 REGB0 = TAG_Bool(ATTR_static_type___MMClosure____name(fra.me.REG[0])!=NIT_NULL);
1570 if (UNTAG_Bool(REGB0)) {
1571 } else {
1572 nit_abort("Uninitialized attribute %s", "_name", LOCATE_static_type, 225);
1573 }
1574 fra.me.REG[0] = ATTR_static_type___MMClosure____name(fra.me.REG[0]);
1575 stack_frame_head = fra.me.prev;
1576 return fra.me.REG[0];
1577 }
1578 val_t static_type___MMClosure___signature(val_t p0){
1579 struct {struct stack_frame_t me;} fra;
1580 val_t REGB0;
1581 val_t tmp;
1582 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1583 fra.me.file = LOCATE_static_type;
1584 fra.me.line = 228;
1585 fra.me.meth = LOCATE_static_type___MMClosure___signature;
1586 fra.me.has_broke = 0;
1587 fra.me.REG_size = 1;
1588 fra.me.REG[0] = NIT_NULL;
1589 fra.me.REG[0] = p0;
1590 /* ./metamodel//static_type.nit:228 */
1591 REGB0 = TAG_Bool(ATTR_static_type___MMClosure____signature(fra.me.REG[0])!=NIT_NULL);
1592 if (UNTAG_Bool(REGB0)) {
1593 } else {
1594 nit_abort("Uninitialized attribute %s", "_signature", LOCATE_static_type, 228);
1595 }
1596 fra.me.REG[0] = ATTR_static_type___MMClosure____signature(fra.me.REG[0]);
1597 stack_frame_head = fra.me.prev;
1598 return fra.me.REG[0];
1599 }
1600 val_t static_type___MMClosure___is_break(val_t p0){
1601 struct {struct stack_frame_t me;} fra;
1602 val_t REGB0;
1603 val_t tmp;
1604 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1605 fra.me.file = LOCATE_static_type;
1606 fra.me.line = 231;
1607 fra.me.meth = LOCATE_static_type___MMClosure___is_break;
1608 fra.me.has_broke = 0;
1609 fra.me.REG_size = 1;
1610 fra.me.REG[0] = NIT_NULL;
1611 fra.me.REG[0] = p0;
1612 /* ./metamodel//static_type.nit:231 */
1613 REGB0 = TAG_Bool(ATTR_static_type___MMClosure____is_break(fra.me.REG[0])!=NIT_NULL);
1614 if (UNTAG_Bool(REGB0)) {
1615 } else {
1616 nit_abort("Uninitialized attribute %s", "_is_break", LOCATE_static_type, 231);
1617 }
1618 REGB0 = ATTR_static_type___MMClosure____is_break(fra.me.REG[0]);
1619 stack_frame_head = fra.me.prev;
1620 return REGB0;
1621 }
1622 val_t static_type___MMClosure___is_optional(val_t p0){
1623 struct {struct stack_frame_t me;} fra;
1624 val_t REGB0;
1625 val_t tmp;
1626 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1627 fra.me.file = LOCATE_static_type;
1628 fra.me.line = 235;
1629 fra.me.meth = LOCATE_static_type___MMClosure___is_optional;
1630 fra.me.has_broke = 0;
1631 fra.me.REG_size = 1;
1632 fra.me.REG[0] = NIT_NULL;
1633 fra.me.REG[0] = p0;
1634 /* ./metamodel//static_type.nit:235 */
1635 REGB0 = TAG_Bool(ATTR_static_type___MMClosure____is_optional(fra.me.REG[0])!=NIT_NULL);
1636 if (UNTAG_Bool(REGB0)) {
1637 } else {
1638 nit_abort("Uninitialized attribute %s", "_is_optional", LOCATE_static_type, 235);
1639 }
1640 REGB0 = ATTR_static_type___MMClosure____is_optional(fra.me.REG[0]);
1641 stack_frame_head = fra.me.prev;
1642 return REGB0;
1643 }
1644 val_t static_type___MMClosure___adaptation_to(val_t p0, val_t p1){
1645 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1646 val_t REGB0;
1647 val_t REGB1;
1648 val_t tmp;
1649 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1650 fra.me.file = LOCATE_static_type;
1651 fra.me.line = 239;
1652 fra.me.meth = LOCATE_static_type___MMClosure___adaptation_to;
1653 fra.me.has_broke = 0;
1654 fra.me.REG_size = 4;
1655 fra.me.REG[0] = NIT_NULL;
1656 fra.me.REG[1] = NIT_NULL;
1657 fra.me.REG[2] = NIT_NULL;
1658 fra.me.REG[3] = NIT_NULL;
1659 fra.me.REG[0] = p0;
1660 fra.me.REG[1] = p1;
1661 /* ./metamodel//static_type.nit:242 */
1662 REGB0 = TAG_Bool(ATTR_static_type___MMClosure____name(fra.me.REG[0])!=NIT_NULL);
1663 if (UNTAG_Bool(REGB0)) {
1664 } else {
1665 nit_abort("Uninitialized attribute %s", "_name", LOCATE_static_type, 242);
1666 }
1667 fra.me.REG[2] = ATTR_static_type___MMClosure____name(fra.me.REG[0]);
1668 REGB0 = TAG_Bool(ATTR_static_type___MMClosure____signature(fra.me.REG[0])!=NIT_NULL);
1669 if (UNTAG_Bool(REGB0)) {
1670 } else {
1671 nit_abort("Uninitialized attribute %s", "_signature", LOCATE_static_type, 242);
1672 }
1673 fra.me.REG[3] = ATTR_static_type___MMClosure____signature(fra.me.REG[0]);
1674 fra.me.REG[1] = CALL_static_type___MMSignature___adaptation_to(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
1675 REGB0 = TAG_Bool(ATTR_static_type___MMClosure____is_break(fra.me.REG[0])!=NIT_NULL);
1676 if (UNTAG_Bool(REGB0)) {
1677 } else {
1678 nit_abort("Uninitialized attribute %s", "_is_break", LOCATE_static_type, 242);
1679 }
1680 REGB0 = ATTR_static_type___MMClosure____is_break(fra.me.REG[0]);
1681 REGB1 = TAG_Bool(ATTR_static_type___MMClosure____is_optional(fra.me.REG[0])!=NIT_NULL);
1682 if (UNTAG_Bool(REGB1)) {
1683 } else {
1684 nit_abort("Uninitialized attribute %s", "_is_optional", LOCATE_static_type, 242);
1685 }
1686 REGB1 = ATTR_static_type___MMClosure____is_optional(fra.me.REG[0]);
1687 fra.me.REG[1] = NEW_MMClosure_static_type___MMClosure___init(fra.me.REG[2], fra.me.REG[1], REGB0, REGB1);
1688 goto label1;
1689 label1: while(0);
1690 stack_frame_head = fra.me.prev;
1691 return fra.me.REG[1];
1692 }
1693 void static_type___MMClosure___init(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
1694 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMClosure].i;
1695 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1696 val_t REGB0;
1697 val_t REGB1;
1698 val_t tmp;
1699 if (init_table[itpos1]) return;
1700 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1701 fra.me.file = LOCATE_static_type;
1702 fra.me.line = 245;
1703 fra.me.meth = LOCATE_static_type___MMClosure___init;
1704 fra.me.has_broke = 0;
1705 fra.me.REG_size = 3;
1706 fra.me.REG[0] = NIT_NULL;
1707 fra.me.REG[1] = NIT_NULL;
1708 fra.me.REG[2] = NIT_NULL;
1709 fra.me.REG[0] = p0;
1710 fra.me.REG[1] = p1;
1711 fra.me.REG[2] = p2;
1712 REGB0 = p3;
1713 REGB1 = p4;
1714 /* ./metamodel//static_type.nit:247 */
1715 ATTR_static_type___MMClosure____name(fra.me.REG[0]) = fra.me.REG[1];
1716 /* ./metamodel//static_type.nit:248 */
1717 ATTR_static_type___MMClosure____signature(fra.me.REG[0]) = fra.me.REG[2];
1718 /* ./metamodel//static_type.nit:249 */
1719 ATTR_static_type___MMClosure____is_break(fra.me.REG[0]) = REGB0;
1720 /* ./metamodel//static_type.nit:250 */
1721 ATTR_static_type___MMClosure____is_optional(fra.me.REG[0]) = REGB1;
1722 stack_frame_head = fra.me.prev;
1723 init_table[itpos1] = 1;
1724 return;
1725 }
1726 val_t static_type___MMClosure___not_for_self(val_t p0){
1727 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1728 val_t REGB0;
1729 val_t REGB1;
1730 val_t tmp;
1731 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1732 fra.me.file = LOCATE_static_type;
1733 fra.me.line = 253;
1734 fra.me.meth = LOCATE_static_type___MMClosure___not_for_self;
1735 fra.me.has_broke = 0;
1736 fra.me.REG_size = 3;
1737 fra.me.REG[0] = NIT_NULL;
1738 fra.me.REG[1] = NIT_NULL;
1739 fra.me.REG[2] = NIT_NULL;
1740 fra.me.REG[0] = p0;
1741 /* ./metamodel//static_type.nit:255 */
1742 REGB0 = TAG_Bool(ATTR_static_type___MMClosure____signature(fra.me.REG[0])!=NIT_NULL);
1743 if (UNTAG_Bool(REGB0)) {
1744 } else {
1745 nit_abort("Uninitialized attribute %s", "_signature", LOCATE_static_type, 255);
1746 }
1747 fra.me.REG[1] = ATTR_static_type___MMClosure____signature(fra.me.REG[0]);
1748 fra.me.REG[1] = CALL_static_type___MMSignature___not_for_self(fra.me.REG[1])(fra.me.REG[1]);
1749 /* ./metamodel//static_type.nit:256 */
1750 REGB0 = TAG_Bool(ATTR_static_type___MMClosure____signature(fra.me.REG[0])!=NIT_NULL);
1751 if (UNTAG_Bool(REGB0)) {
1752 } else {
1753 nit_abort("Uninitialized attribute %s", "_signature", LOCATE_static_type, 256);
1754 }
1755 fra.me.REG[2] = ATTR_static_type___MMClosure____signature(fra.me.REG[0]);
1756 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[2]));
1757 if (UNTAG_Bool(REGB0)) {
1758 } else {
1759 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
1760 REGB0 = REGB1;
1761 }
1762 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1763 if (UNTAG_Bool(REGB0)) {
1764 /* ./metamodel//static_type.nit:257 */
1765 REGB0 = TAG_Bool(ATTR_static_type___MMClosure____name(fra.me.REG[0])!=NIT_NULL);
1766 if (UNTAG_Bool(REGB0)) {
1767 } else {
1768 nit_abort("Uninitialized attribute %s", "_name", LOCATE_static_type, 257);
1769 }
1770 fra.me.REG[2] = ATTR_static_type___MMClosure____name(fra.me.REG[0]);
1771 REGB0 = TAG_Bool(ATTR_static_type___MMClosure____is_break(fra.me.REG[0])!=NIT_NULL);
1772 if (UNTAG_Bool(REGB0)) {
1773 } else {
1774 nit_abort("Uninitialized attribute %s", "_is_break", LOCATE_static_type, 257);
1775 }
1776 REGB0 = ATTR_static_type___MMClosure____is_break(fra.me.REG[0]);
1777 REGB1 = TAG_Bool(ATTR_static_type___MMClosure____is_optional(fra.me.REG[0])!=NIT_NULL);
1778 if (UNTAG_Bool(REGB1)) {
1779 } else {
1780 nit_abort("Uninitialized attribute %s", "_is_optional", LOCATE_static_type, 257);
1781 }
1782 REGB1 = ATTR_static_type___MMClosure____is_optional(fra.me.REG[0]);
1783 fra.me.REG[1] = NEW_MMClosure_static_type___MMClosure___init(fra.me.REG[2], fra.me.REG[1], REGB0, REGB1);
1784 goto label1;
1785 } else {
1786 /* ./metamodel//static_type.nit:259 */
1787 fra.me.REG[1] = fra.me.REG[0];
1788 goto label1;
1789 }
1790 label1: while(0);
1791 stack_frame_head = fra.me.prev;
1792 return fra.me.REG[1];
1793 }
1794 val_t static_type___MMClosure_____l(val_t p0, val_t p1){
1795 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1796 val_t REGB0;
1797 val_t REGB1;
1798 val_t REGB2;
1799 val_t tmp;
1800 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1801 fra.me.file = LOCATE_static_type;
1802 fra.me.line = 263;
1803 fra.me.meth = LOCATE_static_type___MMClosure_____l;
1804 fra.me.has_broke = 0;
1805 fra.me.REG_size = 2;
1806 fra.me.REG[0] = NIT_NULL;
1807 fra.me.REG[1] = NIT_NULL;
1808 fra.me.REG[0] = p0;
1809 fra.me.REG[1] = p1;
1810 /* ./metamodel//static_type.nit:265 */
1811 REGB0 = CALL_static_type___MMClosure___is_optional(fra.me.REG[1])(fra.me.REG[1]);
1812 if (UNTAG_Bool(REGB0)) {
1813 REGB0 = CALL_static_type___MMClosure___is_optional(fra.me.REG[0])(fra.me.REG[0]);
1814 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1815 } else {
1816 REGB1 = TAG_Bool(false);
1817 REGB0 = REGB1;
1818 }
1819 if (UNTAG_Bool(REGB0)) {
1820 REGB0 = TAG_Bool(false);
1821 goto label1;
1822 }
1823 /* ./metamodel//static_type.nit:266 */
1824 REGB1 = CALL_static_type___MMClosure___is_break(fra.me.REG[1])(fra.me.REG[1]);
1825 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
1826 if (UNTAG_Bool(REGB1)) {
1827 REGB1 = CALL_static_type___MMClosure___is_break(fra.me.REG[0])(fra.me.REG[0]);
1828 } else {
1829 REGB2 = TAG_Bool(false);
1830 REGB1 = REGB2;
1831 }
1832 if (UNTAG_Bool(REGB1)) {
1833 REGB1 = TAG_Bool(false);
1834 REGB0 = REGB1;
1835 goto label1;
1836 }
1837 /* ./metamodel//static_type.nit:267 */
1838 fra.me.REG[1] = CALL_static_type___MMClosure___signature(fra.me.REG[1])(fra.me.REG[1]);
1839 fra.me.REG[0] = CALL_static_type___MMClosure___signature(fra.me.REG[0])(fra.me.REG[0]);
1840 REGB1 = CALL_static_type___MMSignature_____l(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1841 REGB0 = REGB1;
1842 goto label1;
1843 label1: while(0);
1844 stack_frame_head = fra.me.prev;
1845 return REGB0;
1846 }
1847 void static_type___MMAncestor___stype__eq(val_t p0, val_t p1){
1848 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1849 val_t tmp;
1850 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1851 fra.me.file = LOCATE_static_type;
1852 fra.me.line = 273;
1853 fra.me.meth = LOCATE_static_type___MMAncestor___stype__eq;
1854 fra.me.has_broke = 0;
1855 fra.me.REG_size = 2;
1856 fra.me.REG[0] = NIT_NULL;
1857 fra.me.REG[1] = NIT_NULL;
1858 fra.me.REG[0] = p0;
1859 fra.me.REG[1] = p1;
1860 /* ./metamodel//static_type.nit:273 */
1861 ATTR_static_type___MMAncestor____stype(fra.me.REG[0]) = fra.me.REG[1];
1862 stack_frame_head = fra.me.prev;
1863 return;
1864 }
1865 val_t static_type___MMAncestor___stype(val_t p0){
1866 struct {struct stack_frame_t me;} fra;
1867 val_t REGB0;
1868 val_t tmp;
1869 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1870 fra.me.file = LOCATE_static_type;
1871 fra.me.line = 276;
1872 fra.me.meth = LOCATE_static_type___MMAncestor___stype;
1873 fra.me.has_broke = 0;
1874 fra.me.REG_size = 1;
1875 fra.me.REG[0] = NIT_NULL;
1876 fra.me.REG[0] = p0;
1877 /* ./metamodel//static_type.nit:277 */
1878 fra.me.REG[0] = ATTR_static_type___MMAncestor____stype(fra.me.REG[0]);
1879 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
1880 if (UNTAG_Bool(REGB0)) {
1881 } else {
1882 nit_abort("Cast failed", NULL, LOCATE_static_type, 277);
1883 }
1884 goto label1;
1885 label1: while(0);
1886 stack_frame_head = fra.me.prev;
1887 return fra.me.REG[0];
1888 }
1889 void static_type___MMAncestor___inheriter__eq(val_t p0, val_t p1){
1890 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1891 val_t tmp;
1892 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1893 fra.me.file = LOCATE_static_type;
1894 fra.me.line = 279;
1895 fra.me.meth = LOCATE_static_type___MMAncestor___inheriter__eq;
1896 fra.me.has_broke = 0;
1897 fra.me.REG_size = 2;
1898 fra.me.REG[0] = NIT_NULL;
1899 fra.me.REG[1] = NIT_NULL;
1900 fra.me.REG[0] = p0;
1901 fra.me.REG[1] = p1;
1902 /* ./metamodel//static_type.nit:279 */
1903 ATTR_static_type___MMAncestor____inheriter(fra.me.REG[0]) = fra.me.REG[1];
1904 stack_frame_head = fra.me.prev;
1905 return;
1906 }
1907 val_t static_type___MMAncestor___inheriter(val_t p0){
1908 struct {struct stack_frame_t me;} fra;
1909 val_t REGB0;
1910 val_t tmp;
1911 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1912 fra.me.file = LOCATE_static_type;
1913 fra.me.line = 282;
1914 fra.me.meth = LOCATE_static_type___MMAncestor___inheriter;
1915 fra.me.has_broke = 0;
1916 fra.me.REG_size = 1;
1917 fra.me.REG[0] = NIT_NULL;
1918 fra.me.REG[0] = p0;
1919 /* ./metamodel//static_type.nit:283 */
1920 fra.me.REG[0] = ATTR_static_type___MMAncestor____inheriter(fra.me.REG[0]);
1921 REGB0 = TAG_Bool(fra.me.REG[0]!=NIT_NULL);
1922 if (UNTAG_Bool(REGB0)) {
1923 } else {
1924 nit_abort("Cast failed", NULL, LOCATE_static_type, 283);
1925 }
1926 goto label1;
1927 label1: while(0);
1928 stack_frame_head = fra.me.prev;
1929 return fra.me.REG[0];
1930 }
1931 val_t static_type___MMAncestor___is_reffinement(val_t p0){
1932 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1933 val_t REGB0;
1934 val_t REGB1;
1935 val_t tmp;
1936 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1937 fra.me.file = LOCATE_static_type;
1938 fra.me.line = 285;
1939 fra.me.meth = LOCATE_static_type___MMAncestor___is_reffinement;
1940 fra.me.has_broke = 0;
1941 fra.me.REG_size = 2;
1942 fra.me.REG[0] = NIT_NULL;
1943 fra.me.REG[1] = NIT_NULL;
1944 fra.me.REG[0] = p0;
1945 /* ./metamodel//static_type.nit:286 */
1946 fra.me.REG[1] = CALL_static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
1947 fra.me.REG[1] = CALL_static_type___MMType___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
1948 fra.me.REG[0] = CALL_static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
1949 fra.me.REG[0] = CALL_static_type___MMType___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
1950 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
1951 if (UNTAG_Bool(REGB0)) {
1952 } else {
1953 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1954 REGB0 = REGB1;
1955 }
1956 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1957 goto label1;
1958 label1: while(0);
1959 stack_frame_head = fra.me.prev;
1960 return REGB0;
1961 }
1962 val_t static_type___MMAncestor___is_specialisation(val_t p0){
1963 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1964 val_t REGB0;
1965 val_t REGB1;
1966 val_t tmp;
1967 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1968 fra.me.file = LOCATE_static_type;
1969 fra.me.line = 289;
1970 fra.me.meth = LOCATE_static_type___MMAncestor___is_specialisation;
1971 fra.me.has_broke = 0;
1972 fra.me.REG_size = 2;
1973 fra.me.REG[0] = NIT_NULL;
1974 fra.me.REG[1] = NIT_NULL;
1975 fra.me.REG[0] = p0;
1976 /* ./metamodel//static_type.nit:290 */
1977 fra.me.REG[1] = CALL_static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
1978 fra.me.REG[1] = CALL_static_type___MMType___local_class(fra.me.REG[1])(fra.me.REG[1]);
1979 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[1])(fra.me.REG[1]);
1980 fra.me.REG[0] = CALL_static_type___MMAncestor___inheriter(fra.me.REG[0])(fra.me.REG[0]);
1981 fra.me.REG[0] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
1982 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
1983 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],fra.me.REG[0]));
1984 if (UNTAG_Bool(REGB0)) {
1985 } else {
1986 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1987 REGB0 = REGB1;
1988 }
1989 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
1990 goto label1;
1991 label1: while(0);
1992 stack_frame_head = fra.me.prev;
1993 return REGB0;
1994 }
1995 val_t static_type___MMAncestor___local_class(val_t p0){
1996 struct {struct stack_frame_t me;} fra;
1997 val_t tmp;
1998 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1999 fra.me.file = LOCATE_static_type;
2000 fra.me.line = 293;
2001 fra.me.meth = LOCATE_static_type___MMAncestor___local_class;
2002 fra.me.has_broke = 0;
2003 fra.me.REG_size = 0;
2004 /* ./metamodel//static_type.nit:293 */
2005 nit_abort("Deferred method called", NULL, LOCATE_static_type, 293);
2006 stack_frame_head = fra.me.prev;
2007 return NIT_NULL;
2008 }
2009 val_t static_type___MMAncestor___to_s(val_t p0){
2010 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2011 val_t REGB0;
2012 val_t REGB1;
2013 val_t tmp;
2014 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2015 fra.me.file = LOCATE_static_type;
2016 fra.me.line = 296;
2017 fra.me.meth = LOCATE_static_type___MMAncestor___to_s;
2018 fra.me.has_broke = 0;
2019 fra.me.REG_size = 2;
2020 fra.me.REG[0] = NIT_NULL;
2021 fra.me.REG[1] = NIT_NULL;
2022 fra.me.REG[0] = p0;
2023 /* ./metamodel//static_type.nit:298 */
2024 fra.me.REG[1] = ATTR_static_type___MMAncestor____stype(fra.me.REG[0]);
2025 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2026 if (UNTAG_Bool(REGB0)) {
2027 } else {
2028 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2029 if (UNTAG_Bool(REGB1)) {
2030 REGB1 = TAG_Bool(false);
2031 REGB0 = REGB1;
2032 } else {
2033 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2034 REGB0 = REGB1;
2035 }
2036 }
2037 if (UNTAG_Bool(REGB0)) {
2038 /* ./metamodel//static_type.nit:299 */
2039 fra.me.REG[1] = CALL_static_type___MMAncestor___local_class(fra.me.REG[0])(fra.me.REG[0]);
2040 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2041 goto label1;
2042 } else {
2043 /* ./metamodel//static_type.nit:301 */
2044 fra.me.REG[0] = CALL_static_type___MMAncestor___stype(fra.me.REG[0])(fra.me.REG[0]);
2045 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2046 fra.me.REG[1] = fra.me.REG[0];
2047 goto label1;
2048 }
2049 label1: while(0);
2050 stack_frame_head = fra.me.prev;
2051 return fra.me.REG[1];
2052 }
2053 void static_type___MMAncestor___init(val_t p0, int* init_table){
2054 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMAncestor].i;
2055 struct {struct stack_frame_t me;} fra;
2056 val_t tmp;
2057 if (init_table[itpos2]) return;
2058 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2059 fra.me.file = LOCATE_static_type;
2060 fra.me.line = 0;
2061 fra.me.meth = LOCATE_static_type___MMAncestor___init;
2062 fra.me.has_broke = 0;
2063 fra.me.REG_size = 0;
2064 stack_frame_head = fra.me.prev;
2065 init_table[itpos2] = 1;
2066 return;
2067 }
2068 val_t static_type___MMType___mmmodule(val_t p0){
2069 struct {struct stack_frame_t me;} fra;
2070 val_t tmp;
2071 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2072 fra.me.file = LOCATE_static_type;
2073 fra.me.line = 309;
2074 fra.me.meth = LOCATE_static_type___MMType___mmmodule;
2075 fra.me.has_broke = 0;
2076 fra.me.REG_size = 0;
2077 /* ./metamodel//static_type.nit:309 */
2078 nit_abort("Deferred method called", NULL, LOCATE_static_type, 309);
2079 stack_frame_head = fra.me.prev;
2080 return NIT_NULL;
2081 }
2082 val_t static_type___MMType___local_class(val_t p0){
2083 struct {struct stack_frame_t me;} fra;
2084 val_t tmp;
2085 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2086 fra.me.file = LOCATE_static_type;
2087 fra.me.line = 312;
2088 fra.me.meth = LOCATE_static_type___MMType___local_class;
2089 fra.me.has_broke = 0;
2090 fra.me.REG_size = 0;
2091 /* ./metamodel//static_type.nit:312 */
2092 nit_abort("Deferred method called", NULL, LOCATE_static_type, 312);
2093 stack_frame_head = fra.me.prev;
2094 return NIT_NULL;
2095 }
2096 val_t static_type___MMType___is_valid(val_t p0){
2097 struct {struct stack_frame_t me;} fra;
2098 val_t REGB0;
2099 val_t tmp;
2100 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2101 fra.me.file = LOCATE_static_type;
2102 fra.me.line = 315;
2103 fra.me.meth = LOCATE_static_type___MMType___is_valid;
2104 fra.me.has_broke = 0;
2105 fra.me.REG_size = 1;
2106 fra.me.REG[0] = NIT_NULL;
2107 fra.me.REG[0] = p0;
2108 /* ./metamodel//static_type.nit:317 */
2109 REGB0 = TAG_Bool(true);
2110 goto label1;
2111 label1: while(0);
2112 stack_frame_head = fra.me.prev;
2113 return REGB0;
2114 }
2115 val_t static_type___MMType_____l(val_t p0, val_t p1){
2116 struct {struct stack_frame_t me;} fra;
2117 val_t tmp;
2118 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2119 fra.me.file = LOCATE_static_type;
2120 fra.me.line = 319;
2121 fra.me.meth = LOCATE_static_type___MMType_____l;
2122 fra.me.has_broke = 0;
2123 fra.me.REG_size = 0;
2124 /* ./metamodel//static_type.nit:319 */
2125 nit_abort("Deferred method called", NULL, LOCATE_static_type, 319);
2126 stack_frame_head = fra.me.prev;
2127 return NIT_NULL;
2128 }
2129 val_t static_type___MMType___is_supertype(val_t p0, val_t p1){
2130 struct {struct stack_frame_t me;} fra;
2131 val_t tmp;
2132 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2133 fra.me.file = LOCATE_static_type;
2134 fra.me.line = 322;
2135 fra.me.meth = LOCATE_static_type___MMType___is_supertype;
2136 fra.me.has_broke = 0;
2137 fra.me.REG_size = 0;
2138 /* ./metamodel//static_type.nit:322 */
2139 nit_abort("Deferred method called", NULL, LOCATE_static_type, 322);
2140 stack_frame_head = fra.me.prev;
2141 return NIT_NULL;
2142 }
2143 val_t static_type___MMType___for_module(val_t p0, val_t p1){
2144 struct {struct stack_frame_t me;} fra;
2145 val_t tmp;
2146 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2147 fra.me.file = LOCATE_static_type;
2148 fra.me.line = 327;
2149 fra.me.meth = LOCATE_static_type___MMType___for_module;
2150 fra.me.has_broke = 0;
2151 fra.me.REG_size = 0;
2152 /* ./metamodel//static_type.nit:327 */
2153 nit_abort("Deferred method called", NULL, LOCATE_static_type, 327);
2154 stack_frame_head = fra.me.prev;
2155 return NIT_NULL;
2156 }
2157 val_t static_type___MMType___adapt_to(val_t p0, val_t p1){
2158 struct {struct stack_frame_t me;} fra;
2159 val_t tmp;
2160 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2161 fra.me.file = LOCATE_static_type;
2162 fra.me.line = 330;
2163 fra.me.meth = LOCATE_static_type___MMType___adapt_to;
2164 fra.me.has_broke = 0;
2165 fra.me.REG_size = 0;
2166 /* ./metamodel//static_type.nit:330 */
2167 nit_abort("Deferred method called", NULL, LOCATE_static_type, 330);
2168 stack_frame_head = fra.me.prev;
2169 return NIT_NULL;
2170 }
2171 val_t static_type___MMType___upcast_for(val_t p0, val_t p1){
2172 struct {struct stack_frame_t me;} fra;
2173 val_t tmp;
2174 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2175 fra.me.file = LOCATE_static_type;
2176 fra.me.line = 334;
2177 fra.me.meth = LOCATE_static_type___MMType___upcast_for;
2178 fra.me.has_broke = 0;
2179 fra.me.REG_size = 0;
2180 /* ./metamodel//static_type.nit:334 */
2181 nit_abort("Deferred method called", NULL, LOCATE_static_type, 334);
2182 stack_frame_head = fra.me.prev;
2183 return NIT_NULL;
2184 }
2185 val_t static_type___MMType___not_for_self(val_t p0){
2186 struct {struct stack_frame_t me;} fra;
2187 val_t tmp;
2188 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2189 fra.me.file = LOCATE_static_type;
2190 fra.me.line = 356;
2191 fra.me.meth = LOCATE_static_type___MMType___not_for_self;
2192 fra.me.has_broke = 0;
2193 fra.me.REG_size = 1;
2194 fra.me.REG[0] = NIT_NULL;
2195 fra.me.REG[0] = p0;
2196 /* ./metamodel//static_type.nit:358 */
2197 goto label1;
2198 label1: while(0);
2199 stack_frame_head = fra.me.prev;
2200 return fra.me.REG[0];
2201 }
2202 val_t static_type___MMType___is_nullable(val_t p0){
2203 struct {struct stack_frame_t me;} fra;
2204 val_t REGB0;
2205 val_t tmp;
2206 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2207 fra.me.file = LOCATE_static_type;
2208 fra.me.line = 363;
2209 fra.me.meth = LOCATE_static_type___MMType___is_nullable;
2210 fra.me.has_broke = 0;
2211 fra.me.REG_size = 1;
2212 fra.me.REG[0] = NIT_NULL;
2213 fra.me.REG[0] = p0;
2214 /* ./metamodel//static_type.nit:364 */
2215 REGB0 = TAG_Bool(false);
2216 goto label1;
2217 label1: while(0);
2218 stack_frame_head = fra.me.prev;
2219 return REGB0;
2220 }
2221 val_t static_type___MMType___as_nullable(val_t p0){
2222 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2223 val_t REGB0;
2224 val_t REGB1;
2225 val_t tmp;
2226 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2227 fra.me.file = LOCATE_static_type;
2228 fra.me.line = 366;
2229 fra.me.meth = LOCATE_static_type___MMType___as_nullable;
2230 fra.me.has_broke = 0;
2231 fra.me.REG_size = 3;
2232 fra.me.REG[0] = NIT_NULL;
2233 fra.me.REG[1] = NIT_NULL;
2234 fra.me.REG[2] = NIT_NULL;
2235 fra.me.REG[0] = p0;
2236 /* ./metamodel//static_type.nit:369 */
2237 fra.me.REG[1] = ATTR_static_type___MMType____as_nullable_cache(fra.me.REG[0]);
2238 /* ./metamodel//static_type.nit:370 */
2239 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2240 if (UNTAG_Bool(REGB0)) {
2241 } else {
2242 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
2243 if (UNTAG_Bool(REGB1)) {
2244 REGB1 = TAG_Bool(false);
2245 REGB0 = REGB1;
2246 } else {
2247 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
2248 REGB0 = REGB1;
2249 }
2250 }
2251 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2252 if (UNTAG_Bool(REGB0)) {
2253 goto label1;
2254 }
2255 /* ./metamodel//static_type.nit:371 */
2256 fra.me.REG[2] = NEW_MMNullableType_static_type___MMNullableType___init(fra.me.REG[0]);
2257 /* ./metamodel//static_type.nit:372 */
2258 ATTR_static_type___MMType____as_nullable_cache(fra.me.REG[0]) = fra.me.REG[2];
2259 /* ./metamodel//static_type.nit:373 */
2260 fra.me.REG[1] = fra.me.REG[2];
2261 goto label1;
2262 label1: while(0);
2263 stack_frame_head = fra.me.prev;
2264 return fra.me.REG[1];
2265 }
2266 val_t static_type___MMType___as_notnull(val_t p0){
2267 struct {struct stack_frame_t me;} fra;
2268 val_t tmp;
2269 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2270 fra.me.file = LOCATE_static_type;
2271 fra.me.line = 376;
2272 fra.me.meth = LOCATE_static_type___MMType___as_notnull;
2273 fra.me.has_broke = 0;
2274 fra.me.REG_size = 1;
2275 fra.me.REG[0] = NIT_NULL;
2276 fra.me.REG[0] = p0;
2277 /* ./metamodel//static_type.nit:378 */
2278 goto label1;
2279 label1: while(0);
2280 stack_frame_head = fra.me.prev;
2281 return fra.me.REG[0];
2282 }
2283 void static_type___MMType___init(val_t p0, int* init_table){
2284 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMType].i;
2285 struct {struct stack_frame_t me;} fra;
2286 val_t tmp;
2287 if (init_table[itpos3]) return;
2288 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2289 fra.me.file = LOCATE_static_type;
2290 fra.me.line = 0;
2291 fra.me.meth = LOCATE_static_type___MMType___init;
2292 fra.me.has_broke = 0;
2293 fra.me.REG_size = 0;
2294 stack_frame_head = fra.me.prev;
2295 init_table[itpos3] = 1;
2296 return;
2297 }
2298 val_t static_type___MMNullableType___is_valid(val_t p0){
2299 struct {struct stack_frame_t me;} fra;
2300 val_t REGB0;
2301 val_t tmp;
2302 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2303 fra.me.file = LOCATE_static_type;
2304 fra.me.line = 384;
2305 fra.me.meth = LOCATE_static_type___MMNullableType___is_valid;
2306 fra.me.has_broke = 0;
2307 fra.me.REG_size = 1;
2308 fra.me.REG[0] = NIT_NULL;
2309 fra.me.REG[0] = p0;
2310 /* ./metamodel//static_type.nit:384 */
2311 REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2312 if (UNTAG_Bool(REGB0)) {
2313 } else {
2314 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 384);
2315 }
2316 fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
2317 REGB0 = CALL_static_type___MMType___is_valid(fra.me.REG[0])(fra.me.REG[0]);
2318 goto label1;
2319 label1: while(0);
2320 stack_frame_head = fra.me.prev;
2321 return REGB0;
2322 }
2323 val_t static_type___MMNullableType___is_nullable(val_t p0){
2324 struct {struct stack_frame_t me;} fra;
2325 val_t REGB0;
2326 val_t tmp;
2327 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2328 fra.me.file = LOCATE_static_type;
2329 fra.me.line = 385;
2330 fra.me.meth = LOCATE_static_type___MMNullableType___is_nullable;
2331 fra.me.has_broke = 0;
2332 fra.me.REG_size = 1;
2333 fra.me.REG[0] = NIT_NULL;
2334 fra.me.REG[0] = p0;
2335 /* ./metamodel//static_type.nit:385 */
2336 REGB0 = TAG_Bool(true);
2337 goto label1;
2338 label1: while(0);
2339 stack_frame_head = fra.me.prev;
2340 return REGB0;
2341 }
2342 val_t static_type___MMNullableType___as_notnull(val_t p0){
2343 struct {struct stack_frame_t me;} fra;
2344 val_t REGB0;
2345 val_t tmp;
2346 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2347 fra.me.file = LOCATE_static_type;
2348 fra.me.line = 386;
2349 fra.me.meth = LOCATE_static_type___MMNullableType___as_notnull;
2350 fra.me.has_broke = 0;
2351 fra.me.REG_size = 1;
2352 fra.me.REG[0] = NIT_NULL;
2353 fra.me.REG[0] = p0;
2354 /* ./metamodel//static_type.nit:386 */
2355 REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2356 if (UNTAG_Bool(REGB0)) {
2357 } else {
2358 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 386);
2359 }
2360 fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
2361 goto label1;
2362 label1: while(0);
2363 stack_frame_head = fra.me.prev;
2364 return fra.me.REG[0];
2365 }
2366 val_t static_type___MMNullableType___as_nullable(val_t p0){
2367 struct {struct stack_frame_t me;} fra;
2368 val_t tmp;
2369 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2370 fra.me.file = LOCATE_static_type;
2371 fra.me.line = 387;
2372 fra.me.meth = LOCATE_static_type___MMNullableType___as_nullable;
2373 fra.me.has_broke = 0;
2374 fra.me.REG_size = 1;
2375 fra.me.REG[0] = NIT_NULL;
2376 fra.me.REG[0] = p0;
2377 /* ./metamodel//static_type.nit:387 */
2378 goto label1;
2379 label1: while(0);
2380 stack_frame_head = fra.me.prev;
2381 return fra.me.REG[0];
2382 }
2383 void static_type___MMNullableType___init(val_t p0, val_t p1, int* init_table){
2384 int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMNullableType].i;
2385 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2386 val_t tmp;
2387 if (init_table[itpos4]) return;
2388 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2389 fra.me.file = LOCATE_static_type;
2390 fra.me.line = 388;
2391 fra.me.meth = LOCATE_static_type___MMNullableType___init;
2392 fra.me.has_broke = 0;
2393 fra.me.REG_size = 3;
2394 fra.me.REG[0] = NIT_NULL;
2395 fra.me.REG[1] = NIT_NULL;
2396 fra.me.REG[2] = NIT_NULL;
2397 fra.me.REG[0] = p0;
2398 fra.me.REG[1] = p1;
2399 /* ./metamodel//static_type.nit:388 */
2400 fra.me.REG[2] = fra.me.REG[0];
2401 CALL_static_type___MMType___init(fra.me.REG[0])(fra.me.REG[0], init_table);
2402 ATTR_static_type___MMNullableType____base_type(fra.me.REG[2]) = fra.me.REG[1];
2403 stack_frame_head = fra.me.prev;
2404 init_table[itpos4] = 1;
2405 return;
2406 }
2407 val_t static_type___MMNullableType___mmmodule(val_t p0){
2408 struct {struct stack_frame_t me;} fra;
2409 val_t REGB0;
2410 val_t tmp;
2411 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2412 fra.me.file = LOCATE_static_type;
2413 fra.me.line = 390;
2414 fra.me.meth = LOCATE_static_type___MMNullableType___mmmodule;
2415 fra.me.has_broke = 0;
2416 fra.me.REG_size = 1;
2417 fra.me.REG[0] = NIT_NULL;
2418 fra.me.REG[0] = p0;
2419 /* ./metamodel//static_type.nit:390 */
2420 REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2421 if (UNTAG_Bool(REGB0)) {
2422 } else {
2423 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 390);
2424 }
2425 fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
2426 fra.me.REG[0] = CALL_static_type___MMType___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
2427 goto label1;
2428 label1: while(0);
2429 stack_frame_head = fra.me.prev;
2430 return fra.me.REG[0];
2431 }
2432 val_t static_type___MMNullableType___local_class(val_t p0){
2433 struct {struct stack_frame_t me;} fra;
2434 val_t REGB0;
2435 val_t tmp;
2436 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2437 fra.me.file = LOCATE_static_type;
2438 fra.me.line = 392;
2439 fra.me.meth = LOCATE_static_type___MMNullableType___local_class;
2440 fra.me.has_broke = 0;
2441 fra.me.REG_size = 1;
2442 fra.me.REG[0] = NIT_NULL;
2443 fra.me.REG[0] = p0;
2444 /* ./metamodel//static_type.nit:392 */
2445 REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2446 if (UNTAG_Bool(REGB0)) {
2447 } else {
2448 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 392);
2449 }
2450 fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
2451 fra.me.REG[0] = CALL_static_type___MMType___local_class(fra.me.REG[0])(fra.me.REG[0]);
2452 goto label1;
2453 label1: while(0);
2454 stack_frame_head = fra.me.prev;
2455 return fra.me.REG[0];
2456 }
2457 val_t static_type___MMNullableType_____l(val_t p0, val_t p1){
2458 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2459 val_t REGB0;
2460 val_t REGB1;
2461 val_t tmp;
2462 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2463 fra.me.file = LOCATE_static_type;
2464 fra.me.line = 394;
2465 fra.me.meth = LOCATE_static_type___MMNullableType_____l;
2466 fra.me.has_broke = 0;
2467 fra.me.REG_size = 2;
2468 fra.me.REG[0] = NIT_NULL;
2469 fra.me.REG[1] = NIT_NULL;
2470 fra.me.REG[0] = p0;
2471 fra.me.REG[1] = p1;
2472 /* ./metamodel//static_type.nit:396 */
2473 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_MMNullableType, ID_MMNullableType)) /*cast MMNullableType*/;
2474 if (UNTAG_Bool(REGB0)) {
2475 REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2476 if (UNTAG_Bool(REGB0)) {
2477 } else {
2478 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 396);
2479 }
2480 fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
2481 fra.me.REG[1] = CALL_static_type___MMType___as_notnull(fra.me.REG[1])(fra.me.REG[1]);
2482 REGB0 = CALL_static_type___MMType_____l(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2483 } else {
2484 REGB1 = TAG_Bool(false);
2485 REGB0 = REGB1;
2486 }
2487 goto label1;
2488 label1: while(0);
2489 stack_frame_head = fra.me.prev;
2490 return REGB0;
2491 }
2492 val_t static_type___MMNullableType___to_s(val_t p0){
2493 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2494 val_t REGB0;
2495 val_t tmp;
2496 static val_t once_value_1; /* Once value */
2497 static val_t once_value_2; /* Once value */
2498 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2499 fra.me.file = LOCATE_static_type;
2500 fra.me.line = 399;
2501 fra.me.meth = LOCATE_static_type___MMNullableType___to_s;
2502 fra.me.has_broke = 0;
2503 fra.me.REG_size = 3;
2504 fra.me.REG[0] = NIT_NULL;
2505 fra.me.REG[1] = NIT_NULL;
2506 fra.me.REG[2] = NIT_NULL;
2507 fra.me.REG[0] = p0;
2508 /* ./metamodel//static_type.nit:401 */
2509 REGB0 = TAG_Int(3);
2510 fra.me.REG[1] = NEW_Array_array___Array___with_capacity(REGB0);
2511 if (!once_value_1) {
2512 fra.me.REG[2] = BOX_NativeString("nullable ");
2513 REGB0 = TAG_Int(9);
2514 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB0);
2515 once_value_1 = fra.me.REG[2];
2516 register_static_object(&once_value_1);
2517 } else fra.me.REG[2] = once_value_1;
2518 fra.me.REG[2] = fra.me.REG[2];
2519 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
2520 REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2521 if (UNTAG_Bool(REGB0)) {
2522 } else {
2523 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 401);
2524 }
2525 fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
2526 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2527 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2528 if (!once_value_2) {
2529 fra.me.REG[0] = BOX_NativeString("");
2530 REGB0 = TAG_Int(0);
2531 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
2532 once_value_2 = fra.me.REG[0];
2533 register_static_object(&once_value_2);
2534 } else fra.me.REG[0] = once_value_2;
2535 fra.me.REG[0] = fra.me.REG[0];
2536 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2537 fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
2538 goto label3;
2539 label3: while(0);
2540 stack_frame_head = fra.me.prev;
2541 return fra.me.REG[1];
2542 }
2543 val_t static_type___MMNullableType___is_supertype(val_t p0, val_t p1){
2544 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2545 val_t REGB0;
2546 val_t tmp;
2547 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2548 fra.me.file = LOCATE_static_type;
2549 fra.me.line = 404;
2550 fra.me.meth = LOCATE_static_type___MMNullableType___is_supertype;
2551 fra.me.has_broke = 0;
2552 fra.me.REG_size = 2;
2553 fra.me.REG[0] = NIT_NULL;
2554 fra.me.REG[1] = NIT_NULL;
2555 fra.me.REG[0] = p0;
2556 fra.me.REG[1] = p1;
2557 /* ./metamodel//static_type.nit:406 */
2558 REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2559 if (UNTAG_Bool(REGB0)) {
2560 } else {
2561 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 406);
2562 }
2563 fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
2564 REGB0 = CALL_static_type___MMType___is_supertype(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2565 goto label1;
2566 label1: while(0);
2567 stack_frame_head = fra.me.prev;
2568 return REGB0;
2569 }
2570 val_t static_type___MMNullableType___for_module(val_t p0, val_t p1){
2571 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2572 val_t REGB0;
2573 val_t tmp;
2574 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2575 fra.me.file = LOCATE_static_type;
2576 fra.me.line = 409;
2577 fra.me.meth = LOCATE_static_type___MMNullableType___for_module;
2578 fra.me.has_broke = 0;
2579 fra.me.REG_size = 2;
2580 fra.me.REG[0] = NIT_NULL;
2581 fra.me.REG[1] = NIT_NULL;
2582 fra.me.REG[0] = p0;
2583 fra.me.REG[1] = p1;
2584 /* ./metamodel//static_type.nit:411 */
2585 REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2586 if (UNTAG_Bool(REGB0)) {
2587 } else {
2588 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 411);
2589 }
2590 fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
2591 fra.me.REG[1] = CALL_static_type___MMType___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2592 fra.me.REG[1] = CALL_static_type___MMType___as_nullable(fra.me.REG[1])(fra.me.REG[1]);
2593 goto label1;
2594 label1: while(0);
2595 stack_frame_head = fra.me.prev;
2596 return fra.me.REG[1];
2597 }
2598 val_t static_type___MMNullableType___adapt_to(val_t p0, val_t p1){
2599 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2600 val_t REGB0;
2601 val_t tmp;
2602 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2603 fra.me.file = LOCATE_static_type;
2604 fra.me.line = 414;
2605 fra.me.meth = LOCATE_static_type___MMNullableType___adapt_to;
2606 fra.me.has_broke = 0;
2607 fra.me.REG_size = 2;
2608 fra.me.REG[0] = NIT_NULL;
2609 fra.me.REG[1] = NIT_NULL;
2610 fra.me.REG[0] = p0;
2611 fra.me.REG[1] = p1;
2612 /* ./metamodel//static_type.nit:416 */
2613 REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2614 if (UNTAG_Bool(REGB0)) {
2615 } else {
2616 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 416);
2617 }
2618 fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
2619 fra.me.REG[1] = CALL_static_type___MMType___adapt_to(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2620 fra.me.REG[1] = CALL_static_type___MMType___as_nullable(fra.me.REG[1])(fra.me.REG[1]);
2621 goto label1;
2622 label1: while(0);
2623 stack_frame_head = fra.me.prev;
2624 return fra.me.REG[1];
2625 }
2626 val_t static_type___MMNullableType___upcast_for(val_t p0, val_t p1){
2627 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2628 val_t REGB0;
2629 val_t tmp;
2630 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2631 fra.me.file = LOCATE_static_type;
2632 fra.me.line = 419;
2633 fra.me.meth = LOCATE_static_type___MMNullableType___upcast_for;
2634 fra.me.has_broke = 0;
2635 fra.me.REG_size = 2;
2636 fra.me.REG[0] = NIT_NULL;
2637 fra.me.REG[1] = NIT_NULL;
2638 fra.me.REG[0] = p0;
2639 fra.me.REG[1] = p1;
2640 /* ./metamodel//static_type.nit:421 */
2641 REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2642 if (UNTAG_Bool(REGB0)) {
2643 } else {
2644 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 421);
2645 }
2646 fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
2647 fra.me.REG[1] = CALL_static_type___MMType___upcast_for(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2648 goto label1;
2649 label1: while(0);
2650 stack_frame_head = fra.me.prev;
2651 return fra.me.REG[1];
2652 }
2653 val_t static_type___MMNullableType___not_for_self(val_t p0){
2654 struct {struct stack_frame_t me;} fra;
2655 val_t REGB0;
2656 val_t tmp;
2657 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2658 fra.me.file = LOCATE_static_type;
2659 fra.me.line = 424;
2660 fra.me.meth = LOCATE_static_type___MMNullableType___not_for_self;
2661 fra.me.has_broke = 0;
2662 fra.me.REG_size = 1;
2663 fra.me.REG[0] = NIT_NULL;
2664 fra.me.REG[0] = p0;
2665 /* ./metamodel//static_type.nit:426 */
2666 REGB0 = TAG_Bool(ATTR_static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
2667 if (UNTAG_Bool(REGB0)) {
2668 } else {
2669 nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_static_type, 426);
2670 }
2671 fra.me.REG[0] = ATTR_static_type___MMNullableType____base_type(fra.me.REG[0]);
2672 fra.me.REG[0] = CALL_static_type___MMType___not_for_self(fra.me.REG[0])(fra.me.REG[0]);
2673 fra.me.REG[0] = CALL_static_type___MMType___as_nullable(fra.me.REG[0])(fra.me.REG[0]);
2674 goto label1;
2675 label1: while(0);
2676 stack_frame_head = fra.me.prev;
2677 return fra.me.REG[0];
2678 }
2679 val_t static_type___MMTypeClass___local_class(val_t p0){
2680 struct {struct stack_frame_t me;} fra;
2681 val_t REGB0;
2682 val_t tmp;
2683 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2684 fra.me.file = LOCATE_static_type;
2685 fra.me.line = 432;
2686 fra.me.meth = LOCATE_static_type___MMTypeClass___local_class;
2687 fra.me.has_broke = 0;
2688 fra.me.REG_size = 1;
2689 fra.me.REG[0] = NIT_NULL;
2690 fra.me.REG[0] = p0;
2691 /* ./metamodel//static_type.nit:432 */
2692 REGB0 = TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
2693 if (UNTAG_Bool(REGB0)) {
2694 } else {
2695 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_static_type, 432);
2696 }
2697 fra.me.REG[0] = ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0]);
2698 stack_frame_head = fra.me.prev;
2699 return fra.me.REG[0];
2700 }
2701 val_t static_type___MMTypeClass___mmmodule(val_t p0){
2702 struct {struct stack_frame_t me;} fra;
2703 val_t REGB0;
2704 val_t tmp;
2705 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2706 fra.me.file = LOCATE_static_type;
2707 fra.me.line = 433;
2708 fra.me.meth = LOCATE_static_type___MMTypeClass___mmmodule;
2709 fra.me.has_broke = 0;
2710 fra.me.REG_size = 1;
2711 fra.me.REG[0] = NIT_NULL;
2712 fra.me.REG[0] = p0;
2713 /* ./metamodel//static_type.nit:433 */
2714 REGB0 = TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
2715 if (UNTAG_Bool(REGB0)) {
2716 } else {
2717 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_static_type, 433);
2718 }
2719 fra.me.REG[0] = ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0]);
2720 fra.me.REG[0] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
2721 goto label1;
2722 label1: while(0);
2723 stack_frame_head = fra.me.prev;
2724 return fra.me.REG[0];
2725 }
2726 val_t static_type___MMTypeClass_____l(val_t p0, val_t p1){
2727 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2728 val_t REGB0;
2729 val_t tmp;
2730 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2731 fra.me.file = LOCATE_static_type;
2732 fra.me.line = 434;
2733 fra.me.meth = LOCATE_static_type___MMTypeClass_____l;
2734 fra.me.has_broke = 0;
2735 fra.me.REG_size = 2;
2736 fra.me.REG[0] = NIT_NULL;
2737 fra.me.REG[1] = NIT_NULL;
2738 fra.me.REG[0] = p0;
2739 fra.me.REG[1] = p1;
2740 /* ./metamodel//static_type.nit:434 */
2741 REGB0 = CALL_static_type___MMType___is_supertype(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2742 goto label1;
2743 label1: while(0);
2744 stack_frame_head = fra.me.prev;
2745 return REGB0;
2746 }
2747 val_t static_type___MMTypeClass___to_s(val_t p0){
2748 struct {struct stack_frame_t me;} fra;
2749 val_t REGB0;
2750 val_t tmp;
2751 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2752 fra.me.file = LOCATE_static_type;
2753 fra.me.line = 436;
2754 fra.me.meth = LOCATE_static_type___MMTypeClass___to_s;
2755 fra.me.has_broke = 0;
2756 fra.me.REG_size = 1;
2757 fra.me.REG[0] = NIT_NULL;
2758 fra.me.REG[0] = p0;
2759 /* ./metamodel//static_type.nit:438 */
2760 REGB0 = TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
2761 if (UNTAG_Bool(REGB0)) {
2762 } else {
2763 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_static_type, 438);
2764 }
2765 fra.me.REG[0] = ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0]);
2766 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
2767 goto label1;
2768 label1: while(0);
2769 stack_frame_head = fra.me.prev;
2770 return fra.me.REG[0];
2771 }
2772 val_t static_type___MMTypeClass___upcast_for(val_t p0, val_t p1){
2773 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2774 val_t REGB0;
2775 val_t REGB1;
2776 val_t tmp;
2777 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2778 fra.me.file = LOCATE_static_type;
2779 fra.me.line = 441;
2780 fra.me.meth = LOCATE_static_type___MMTypeClass___upcast_for;
2781 fra.me.has_broke = 0;
2782 fra.me.REG_size = 4;
2783 fra.me.REG[0] = NIT_NULL;
2784 fra.me.REG[1] = NIT_NULL;
2785 fra.me.REG[2] = NIT_NULL;
2786 fra.me.REG[3] = NIT_NULL;
2787 fra.me.REG[0] = p0;
2788 fra.me.REG[1] = p1;
2789 /* ./metamodel//static_type.nit:443 */
2790 fra.me.REG[2] = fra.me.REG[0];
2791 /* ./metamodel//static_type.nit:444 */
2792 REGB0 = TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
2793 if (UNTAG_Bool(REGB0)) {
2794 } else {
2795 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_static_type, 444);
2796 }
2797 fra.me.REG[3] = ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0]);
2798 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2799 if (UNTAG_Bool(REGB0)) {
2800 } else {
2801 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2802 REGB0 = REGB1;
2803 }
2804 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2805 if (UNTAG_Bool(REGB0)) {
2806 /* ./metamodel//static_type.nit:445 */
2807 REGB0 = TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
2808 if (UNTAG_Bool(REGB0)) {
2809 } else {
2810 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_static_type, 445);
2811 }
2812 fra.me.REG[0] = ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0]);
2813 fra.me.REG[1] = CALL_static_type___MMLocalClass___ancestor(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2814 fra.me.REG[2] = fra.me.REG[1];
2815 }
2816 /* ./metamodel//static_type.nit:447 */
2817 goto label1;
2818 label1: while(0);
2819 stack_frame_head = fra.me.prev;
2820 return fra.me.REG[2];
2821 }
2822 void static_type___MMTypeClass___init(val_t p0, val_t p1, int* init_table){
2823 int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMTypeClass].i;
2824 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
2825 val_t tmp;
2826 if (init_table[itpos5]) return;
2827 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2828 fra.me.file = LOCATE_static_type;
2829 fra.me.line = 450;
2830 fra.me.meth = LOCATE_static_type___MMTypeClass___init;
2831 fra.me.has_broke = 0;
2832 fra.me.REG_size = 3;
2833 fra.me.REG[0] = NIT_NULL;
2834 fra.me.REG[1] = NIT_NULL;
2835 fra.me.REG[2] = NIT_NULL;
2836 fra.me.REG[0] = p0;
2837 fra.me.REG[1] = p1;
2838 /* ./metamodel//static_type.nit:450 */
2839 fra.me.REG[2] = fra.me.REG[0];
2840 CALL_static_type___MMType___init(fra.me.REG[0])(fra.me.REG[0], init_table);
2841 /* ./metamodel//static_type.nit:452 */
2842 ATTR_static_type___MMTypeClass____local_class(fra.me.REG[2]) = fra.me.REG[1];
2843 stack_frame_head = fra.me.prev;
2844 init_table[itpos5] = 1;
2845 return;
2846 }
2847 val_t static_type___MMTypeSimpleClass___is_supertype(val_t p0, val_t p1){
2848 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2849 val_t REGB0;
2850 val_t tmp;
2851 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2852 fra.me.file = LOCATE_static_type;
2853 fra.me.line = 458;
2854 fra.me.meth = LOCATE_static_type___MMTypeSimpleClass___is_supertype;
2855 fra.me.has_broke = 0;
2856 fra.me.REG_size = 2;
2857 fra.me.REG[0] = NIT_NULL;
2858 fra.me.REG[1] = NIT_NULL;
2859 fra.me.REG[0] = p0;
2860 fra.me.REG[1] = p1;
2861 /* ./metamodel//static_type.nit:460 */
2862 fra.me.REG[1] = CALL_static_type___MMType___local_class(fra.me.REG[1])(fra.me.REG[1]);
2863 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___cshe(fra.me.REG[1])(fra.me.REG[1]);
2864 REGB0 = TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
2865 if (UNTAG_Bool(REGB0)) {
2866 } else {
2867 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_static_type, 460);
2868 }
2869 fra.me.REG[0] = ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0]);
2870 REGB0 = CALL_partial_order___PartialOrderElement_____leq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
2871 goto label1;
2872 label1: while(0);
2873 stack_frame_head = fra.me.prev;
2874 return REGB0;
2875 }
2876 val_t static_type___MMTypeSimpleClass___for_module(val_t p0, val_t p1){
2877 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
2878 val_t REGB0;
2879 val_t REGB1;
2880 val_t tmp;
2881 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2882 fra.me.file = LOCATE_static_type;
2883 fra.me.line = 463;
2884 fra.me.meth = LOCATE_static_type___MMTypeSimpleClass___for_module;
2885 fra.me.has_broke = 0;
2886 fra.me.REG_size = 4;
2887 fra.me.REG[0] = NIT_NULL;
2888 fra.me.REG[1] = NIT_NULL;
2889 fra.me.REG[2] = NIT_NULL;
2890 fra.me.REG[3] = NIT_NULL;
2891 fra.me.REG[0] = p0;
2892 fra.me.REG[1] = p1;
2893 /* ./metamodel//static_type.nit:465 */
2894 fra.me.REG[2] = fra.me.REG[0];
2895 /* ./metamodel//static_type.nit:466 */
2896 fra.me.REG[3] = CALL_static_type___MMType___mmmodule(fra.me.REG[0])(fra.me.REG[0]);
2897 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[1]));
2898 if (UNTAG_Bool(REGB0)) {
2899 } else {
2900 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
2901 REGB0 = REGB1;
2902 }
2903 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
2904 if (UNTAG_Bool(REGB0)) {
2905 /* ./metamodel//static_type.nit:467 */
2906 REGB0 = TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0])!=NIT_NULL);
2907 if (UNTAG_Bool(REGB0)) {
2908 } else {
2909 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_static_type, 467);
2910 }
2911 fra.me.REG[0] = ATTR_static_type___MMTypeClass____local_class(fra.me.REG[0]);
2912 fra.me.REG[1] = CALL_abstractmetamodel___MMLocalClass___for_module(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
2913 fra.me.REG[1] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
2914 fra.me.REG[2] = fra.me.REG[1];
2915 }
2916 /* ./metamodel//static_type.nit:469 */
2917 goto label1;
2918 label1: while(0);
2919 stack_frame_head = fra.me.prev;
2920 return fra.me.REG[2];
2921 }
2922 val_t static_type___MMTypeSimpleClass___adapt_to(val_t p0, val_t p1){
2923 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2924 val_t tmp;
2925 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2926 fra.me.file = LOCATE_static_type;
2927 fra.me.line = 472;
2928 fra.me.meth = LOCATE_static_type___MMTypeSimpleClass___adapt_to;
2929 fra.me.has_broke = 0;
2930 fra.me.REG_size = 2;
2931 fra.me.REG[0] = NIT_NULL;
2932 fra.me.REG[1] = NIT_NULL;
2933 fra.me.REG[0] = p0;
2934 fra.me.REG[1] = p1;
2935 /* ./metamodel//static_type.nit:472 */
2936 goto label1;
2937 label1: while(0);
2938 stack_frame_head = fra.me.prev;
2939 return fra.me.REG[0];
2940 }
2941 void static_type___MMTypeSimpleClass___init(val_t p0, val_t p1, int* init_table){
2942 int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMTypeSimpleClass].i;
2943 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
2944 val_t tmp;
2945 if (init_table[itpos6]) return;
2946 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2947 fra.me.file = LOCATE_static_type;
2948 fra.me.line = 474;
2949 fra.me.meth = LOCATE_static_type___MMTypeSimpleClass___init;
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:476 */
2957 CALL_static_type___MMTypeClass___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
2958 stack_frame_head = fra.me.prev;
2959 init_table[itpos6] = 1;
2960 return;
2961 }
2962 val_t static_type___MMTypeNone___mmmodule(val_t p0){
2963 struct {struct stack_frame_t me;} fra;
2964 val_t REGB0;
2965 val_t tmp;
2966 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2967 fra.me.file = LOCATE_static_type;
2968 fra.me.line = 483;
2969 fra.me.meth = LOCATE_static_type___MMTypeNone___mmmodule;
2970 fra.me.has_broke = 0;
2971 fra.me.REG_size = 1;
2972 fra.me.REG[0] = NIT_NULL;
2973 fra.me.REG[0] = p0;
2974 /* ./metamodel//static_type.nit:483 */
2975 REGB0 = TAG_Bool(ATTR_static_type___MMTypeNone____mmmodule(fra.me.REG[0])!=NIT_NULL);
2976 if (UNTAG_Bool(REGB0)) {
2977 } else {
2978 nit_abort("Uninitialized attribute %s", "_mmmodule", LOCATE_static_type, 483);
2979 }
2980 fra.me.REG[0] = ATTR_static_type___MMTypeNone____mmmodule(fra.me.REG[0]);
2981 stack_frame_head = fra.me.prev;
2982 return fra.me.REG[0];
2983 }
2984 val_t static_type___MMTypeNone___is_nullable(val_t p0){
2985 struct {struct stack_frame_t me;} fra;
2986 val_t REGB0;
2987 val_t tmp;
2988 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
2989 fra.me.file = LOCATE_static_type;
2990 fra.me.line = 484;
2991 fra.me.meth = LOCATE_static_type___MMTypeNone___is_nullable;
2992 fra.me.has_broke = 0;
2993 fra.me.REG_size = 1;
2994 fra.me.REG[0] = NIT_NULL;
2995 fra.me.REG[0] = p0;
2996 /* ./metamodel//static_type.nit:484 */
2997 REGB0 = TAG_Bool(true);
2998 goto label1;
2999 label1: while(0);
3000 stack_frame_head = fra.me.prev;
3001 return REGB0;
3002 }
3003 val_t static_type___MMTypeNone_____l(val_t p0, val_t p1){
3004 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3005 val_t REGB0;
3006 val_t REGB1;
3007 val_t tmp;
3008 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3009 fra.me.file = LOCATE_static_type;
3010 fra.me.line = 485;
3011 fra.me.meth = LOCATE_static_type___MMTypeNone_____l;
3012 fra.me.has_broke = 0;
3013 fra.me.REG_size = 2;
3014 fra.me.REG[0] = NIT_NULL;
3015 fra.me.REG[1] = NIT_NULL;
3016 fra.me.REG[0] = p0;
3017 fra.me.REG[1] = p1;
3018 /* ./metamodel//static_type.nit:485 */
3019 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_MMTypeNone, ID_MMTypeNone)) /*cast MMTypeNone*/;
3020 if (UNTAG_Bool(REGB0)) {
3021 REGB0 = TAG_Bool(true);
3022 } else {
3023 REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_MMNullableType, ID_MMNullableType)) /*cast MMNullableType*/;
3024 REGB0 = REGB1;
3025 }
3026 goto label1;
3027 label1: while(0);
3028 stack_frame_head = fra.me.prev;
3029 return REGB0;
3030 }
3031 val_t static_type___MMTypeNone___to_s(val_t p0){
3032 struct {struct stack_frame_t me;} fra;
3033 val_t REGB0;
3034 val_t tmp;
3035 static val_t once_value_1; /* Once value */
3036 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3037 fra.me.file = LOCATE_static_type;
3038 fra.me.line = 486;
3039 fra.me.meth = LOCATE_static_type___MMTypeNone___to_s;
3040 fra.me.has_broke = 0;
3041 fra.me.REG_size = 1;
3042 fra.me.REG[0] = NIT_NULL;
3043 fra.me.REG[0] = p0;
3044 /* ./metamodel//static_type.nit:486 */
3045 if (!once_value_1) {
3046 fra.me.REG[0] = BOX_NativeString("null");
3047 REGB0 = TAG_Int(4);
3048 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
3049 once_value_1 = fra.me.REG[0];
3050 register_static_object(&once_value_1);
3051 } else fra.me.REG[0] = once_value_1;
3052 fra.me.REG[0] = fra.me.REG[0];
3053 goto label2;
3054 label2: while(0);
3055 stack_frame_head = fra.me.prev;
3056 return fra.me.REG[0];
3057 }
3058 val_t static_type___MMTypeNone___is_supertype(val_t p0, val_t p1){
3059 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3060 val_t REGB0;
3061 val_t tmp;
3062 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3063 fra.me.file = LOCATE_static_type;
3064 fra.me.line = 487;
3065 fra.me.meth = LOCATE_static_type___MMTypeNone___is_supertype;
3066 fra.me.has_broke = 0;
3067 fra.me.REG_size = 2;
3068 fra.me.REG[0] = NIT_NULL;
3069 fra.me.REG[1] = NIT_NULL;
3070 fra.me.REG[0] = p0;
3071 fra.me.REG[1] = p1;
3072 /* ./metamodel//static_type.nit:487 */
3073 REGB0 = TAG_Bool(false);
3074 goto label1;
3075 label1: while(0);
3076 stack_frame_head = fra.me.prev;
3077 return REGB0;
3078 }
3079 val_t static_type___MMTypeNone___local_class(val_t p0){
3080 struct {struct stack_frame_t me;} fra;
3081 val_t tmp;
3082 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3083 fra.me.file = LOCATE_static_type;
3084 fra.me.line = 488;
3085 fra.me.meth = LOCATE_static_type___MMTypeNone___local_class;
3086 fra.me.has_broke = 0;
3087 fra.me.REG_size = 1;
3088 fra.me.REG[0] = NIT_NULL;
3089 fra.me.REG[0] = p0;
3090 /* ./metamodel//static_type.nit:488 */
3091 nit_abort("Aborted", NULL, LOCATE_static_type, 488);
3092 stack_frame_head = fra.me.prev;
3093 return NIT_NULL;
3094 }
3095 val_t static_type___MMTypeNone___upcast_for(val_t p0, val_t p1){
3096 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3097 val_t tmp;
3098 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3099 fra.me.file = LOCATE_static_type;
3100 fra.me.line = 489;
3101 fra.me.meth = LOCATE_static_type___MMTypeNone___upcast_for;
3102 fra.me.has_broke = 0;
3103 fra.me.REG_size = 2;
3104 fra.me.REG[0] = NIT_NULL;
3105 fra.me.REG[1] = NIT_NULL;
3106 fra.me.REG[0] = p0;
3107 fra.me.REG[1] = p1;
3108 /* ./metamodel//static_type.nit:489 */
3109 nit_abort("Aborted", NULL, LOCATE_static_type, 489);
3110 stack_frame_head = fra.me.prev;
3111 return NIT_NULL;
3112 }
3113 val_t static_type___MMTypeNone___as_nullable(val_t p0){
3114 struct {struct stack_frame_t me;} fra;
3115 val_t tmp;
3116 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3117 fra.me.file = LOCATE_static_type;
3118 fra.me.line = 490;
3119 fra.me.meth = LOCATE_static_type___MMTypeNone___as_nullable;
3120 fra.me.has_broke = 0;
3121 fra.me.REG_size = 1;
3122 fra.me.REG[0] = NIT_NULL;
3123 fra.me.REG[0] = p0;
3124 /* ./metamodel//static_type.nit:490 */
3125 goto label1;
3126 label1: while(0);
3127 stack_frame_head = fra.me.prev;
3128 return fra.me.REG[0];
3129 }
3130 val_t static_type___MMTypeNone___as_notnull(val_t p0){
3131 struct {struct stack_frame_t me;} fra;
3132 val_t tmp;
3133 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3134 fra.me.file = LOCATE_static_type;
3135 fra.me.line = 491;
3136 fra.me.meth = LOCATE_static_type___MMTypeNone___as_notnull;
3137 fra.me.has_broke = 0;
3138 fra.me.REG_size = 1;
3139 fra.me.REG[0] = NIT_NULL;
3140 fra.me.REG[0] = p0;
3141 /* ./metamodel//static_type.nit:491 */
3142 nit_abort("Aborted", NULL, LOCATE_static_type, 491);
3143 stack_frame_head = fra.me.prev;
3144 return NIT_NULL;
3145 }
3146 void static_type___MMTypeNone___init(val_t p0, val_t p1, int* init_table){
3147 int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_MMTypeNone].i;
3148 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
3149 val_t tmp;
3150 if (init_table[itpos7]) return;
3151 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3152 fra.me.file = LOCATE_static_type;
3153 fra.me.line = 493;
3154 fra.me.meth = LOCATE_static_type___MMTypeNone___init;
3155 fra.me.has_broke = 0;
3156 fra.me.REG_size = 3;
3157 fra.me.REG[0] = NIT_NULL;
3158 fra.me.REG[1] = NIT_NULL;
3159 fra.me.REG[2] = NIT_NULL;
3160 fra.me.REG[0] = p0;
3161 fra.me.REG[1] = p1;
3162 /* ./metamodel//static_type.nit:493 */
3163 fra.me.REG[2] = fra.me.REG[0];
3164 CALL_static_type___MMType___init(fra.me.REG[0])(fra.me.REG[0], init_table);
3165 ATTR_static_type___MMTypeNone____mmmodule(fra.me.REG[2]) = fra.me.REG[1];
3166 stack_frame_head = fra.me.prev;
3167 init_table[itpos7] = 1;
3168 return;
3169 }
3170 val_t static_type___MMModule___type_none(val_t p0){
3171 struct {struct stack_frame_t me;} fra;
3172 val_t REGB0;
3173 val_t tmp;
3174 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3175 fra.me.file = LOCATE_static_type;
3176 fra.me.line = 497;
3177 fra.me.meth = LOCATE_static_type___MMModule___type_none;
3178 fra.me.has_broke = 0;
3179 fra.me.REG_size = 1;
3180 fra.me.REG[0] = NIT_NULL;
3181 fra.me.REG[0] = p0;
3182 /* ./metamodel//static_type.nit:497 */
3183 REGB0 = TAG_Bool(ATTR_static_type___MMModule____type_none(fra.me.REG[0])!=NIT_NULL);
3184 if (UNTAG_Bool(REGB0)) {
3185 } else {
3186 nit_abort("Uninitialized attribute %s", "_type_none", LOCATE_static_type, 497);
3187 }
3188 fra.me.REG[0] = ATTR_static_type___MMModule____type_none(fra.me.REG[0]);
3189 stack_frame_head = fra.me.prev;
3190 return fra.me.REG[0];
3191 }
3192 val_t static_type___MMModule___type_bool(val_t p0){
3193 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
3194 val_t REGB0;
3195 val_t tmp;
3196 static val_t once_value_1; /* Once value */
3197 static val_t once_value_2; /* Once value */
3198 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
3199 fra.me.file = LOCATE_static_type;
3200 fra.me.line = 500;
3201 fra.me.meth = LOCATE_static_type___MMModule___type_bool;
3202 fra.me.has_broke = 0;
3203 fra.me.REG_size = 2;
3204 fra.me.REG[0] = NIT_NULL;
3205 fra.me.REG[1] = NIT_NULL;
3206 fra.me.REG[0] = p0;
3207 /* ./metamodel//static_type.nit:503 */
3208 if (!once_value_1) {
3209 if (!once_value_2) {
3210 fra.me.REG[1] = BOX_NativeString("Bool");
3211 REGB0 = TAG_Int(4);
3212 fra.me.REG[1] = NEW_String_string___String___with_native(fra.me.REG[1], REGB0);
3213 once_value_2 = fra.me.REG[1];
3214 register_static_object(&once_value_2);
3215 } else fra.me.REG[1] = once_value_2;
3216 fra.me.REG[1] = fra.me.REG[1];
3217 fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
3218 once_value_1 = fra.me.REG[1];
3219 register_static_object(&once_value_1);
3220 } else fra.me.REG[1] = once_value_1;
3221 fra.me.REG[1] = fra.me.REG[1];
3222 fra.me.REG[1] = CALL_abstractmetamodel___MMModule___class_by_name(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
3223 fra.me.REG[1] = CALL_static_type___MMLocalClass___get_type(fra.me.REG[1])(fra.me.REG[1]);
3224 goto label3;
3225 label3: while(0);
3226 stack_frame_head = fra.me.prev;
3227 return fra.me.REG[1];
3228 }