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