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