1 /* This C file is generated by NIT to compile module metamodel___genericity. */
2 #include "metamodel___genericity._sep.h"
3 static const char LOCATE_metamodel___genericity___MMLocalClass___get_formal
[] = "genericity::MMLocalClass::get_formal";
4 val_t
metamodel___genericity___MMLocalClass___get_formal(val_t p0
, val_t p1
){
5 struct {struct stack_frame_t me
;} fra
;
10 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
11 fra
.me
.file
= LOCATE_metamodel___genericity
;
13 fra
.me
.meth
= LOCATE_metamodel___genericity___MMLocalClass___get_formal
;
16 fra
.me
.nitni_local_ref_head
= NULL
;
17 fra
.me
.REG
[0] = NIT_NULL
;
20 /* metamodel/genericity.nit:28 */
21 fra
.me
.REG
[0] = CALL_metamodel___genericity___MMLocalClass___formals_types(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
22 /* ../lib/standard/collection/array.nit:280 */
24 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
25 if (UNTAG_Bool(REGB2
)) {
27 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
29 /* ../lib/standard/kernel.nit:236 */
30 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
31 /* ../lib/standard/collection/array.nit:280 */
32 if (UNTAG_Bool(REGB1
)) {
33 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
34 if (UNTAG_Bool(REGB1
)) {
36 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
38 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
39 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
40 if (UNTAG_Bool(REGB2
)) {
42 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
44 /* ../lib/standard/kernel.nit:235 */
45 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
47 /* ../lib/standard/collection/array.nit:280 */
51 if (UNTAG_Bool(REGB1
)) {
53 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
55 /* ../lib/standard/collection/array.nit:281 */
56 fra
.me
.REG
[0] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
57 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
58 if (UNTAG_Bool(REGB1
)) {
59 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
61 /* ../lib/standard/collection/array.nit:724 */
62 fra
.me
.REG
[0] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB0
)];
63 /* ../lib/standard/collection/array.nit:281 */
66 /* metamodel/genericity.nit:28 */
69 stack_frame_head
= fra
.me
.prev
;
72 static const char LOCATE_metamodel___genericity___MMLocalClass___register_formal
[] = "genericity::MMLocalClass::register_formal";
73 void metamodel___genericity___MMLocalClass___register_formal(val_t p0
, val_t p1
){
74 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
79 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
80 fra
.me
.file
= LOCATE_metamodel___genericity
;
82 fra
.me
.meth
= LOCATE_metamodel___genericity___MMLocalClass___register_formal
;
85 fra
.me
.nitni_local_ref_head
= NULL
;
86 fra
.me
.REG
[0] = NIT_NULL
;
87 fra
.me
.REG
[1] = NIT_NULL
;
88 fra
.me
.REG
[2] = NIT_NULL
;
91 /* metamodel/genericity.nit:35 */
92 fra
.me
.REG
[2] = CALL_metamodel___genericity___MMTypeFormalParameter___def_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
93 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[0]));
94 if (UNTAG_Bool(REGB0
)) {
96 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
99 if (UNTAG_Bool(REGB0
)) {
101 nit_abort("Assert failed", NULL
, LOCATE_metamodel___genericity
, 35);
103 /* metamodel/genericity.nit:36 */
104 REGB0
= CALL_metamodel___genericity___MMTypeFormalParameter___position(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
105 REGB1
= TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____formals_types(fra
.me
.REG
[0])!=NIT_NULL
);
106 if (UNTAG_Bool(REGB1
)) {
108 nit_abort("Uninitialized attribute %s", "_formals_types", LOCATE_metamodel___genericity
, 36);
110 fra
.me
.REG
[2] = ATTR_metamodel___genericity___MMLocalClass____formals_types(fra
.me
.REG
[0]);
111 /* ../lib/standard/collection/array.nit:24 */
112 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
113 if (UNTAG_Bool(REGB1
)) {
115 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
117 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
118 /* metamodel/genericity.nit:36 */
119 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
120 if (UNTAG_Bool(REGB2
)) {
122 /* ../lib/standard/kernel.nit:230 */
123 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
124 /* metamodel/genericity.nit:36 */
127 if (UNTAG_Bool(REGB2
)) {
129 nit_abort("Assert failed", NULL
, LOCATE_metamodel___genericity
, 36);
131 /* metamodel/genericity.nit:37 */
132 REGB2
= TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____formals_types(fra
.me
.REG
[0])!=NIT_NULL
);
133 if (UNTAG_Bool(REGB2
)) {
135 nit_abort("Uninitialized attribute %s", "_formals_types", LOCATE_metamodel___genericity
, 37);
137 fra
.me
.REG
[0] = ATTR_metamodel___genericity___MMLocalClass____formals_types(fra
.me
.REG
[0]);
138 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
139 stack_frame_head
= fra
.me
.prev
;
142 static const char LOCATE_metamodel___genericity___MMLocalClass___get_instantiate_type
[] = "genericity::MMLocalClass::get_instantiate_type";
143 val_t
metamodel___genericity___MMLocalClass___get_instantiate_type(val_t p0
, val_t p1
){
144 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
149 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
150 fra
.me
.file
= LOCATE_metamodel___genericity
;
152 fra
.me
.meth
= LOCATE_metamodel___genericity___MMLocalClass___get_instantiate_type
;
153 fra
.me
.has_broke
= 0;
155 fra
.me
.nitni_local_ref_head
= NULL
;
156 fra
.me
.REG
[0] = NIT_NULL
;
157 fra
.me
.REG
[1] = NIT_NULL
;
158 fra
.me
.REG
[2] = NIT_NULL
;
159 fra
.me
.REG
[3] = NIT_NULL
;
160 fra
.me
.REG
[4] = NIT_NULL
;
163 /* metamodel/genericity.nit:46 */
164 REGB0
= TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____types(fra
.me
.REG
[0])!=NIT_NULL
);
165 if (UNTAG_Bool(REGB0
)) {
167 nit_abort("Uninitialized attribute %s", "_types", LOCATE_metamodel___genericity
, 46);
169 fra
.me
.REG
[2] = ATTR_metamodel___genericity___MMLocalClass____types(fra
.me
.REG
[0]);
170 /* ../lib/standard/collection/array.nit:269 */
172 /* ../lib/standard/collection/array.nit:270 */
173 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
174 if (UNTAG_Bool(REGB1
)) {
176 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
178 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
179 /* ../lib/standard/collection/array.nit:271 */
180 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[2]);
181 /* ../lib/standard/collection/array.nit:272 */
183 /* ../lib/standard/collection/array.nit:24 */
184 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
185 if (UNTAG_Bool(REGB1
)) {
187 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
189 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
190 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
191 if (UNTAG_Bool(REGB2
)) {
193 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
195 /* ../lib/standard/kernel.nit:235 */
196 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
197 /* ../lib/standard/collection/array.nit:272 */
198 if (UNTAG_Bool(REGB1
)) {
199 /* ../lib/standard/collection/array.nit:273 */
200 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
201 if (UNTAG_Bool(REGB1
)) {
202 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
204 /* ../lib/standard/collection/array.nit:724 */
205 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB0
)];
206 /* metamodel/genericity.nit:47 */
207 REGB1
= CALL_metamodel___genericity___MMTypeGeneric___params_equals(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
208 if (UNTAG_Bool(REGB1
)) {
211 /* ../lib/standard/collection/array.nit:274 */
213 /* ../lib/standard/kernel.nit:238 */
214 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
215 /* ../lib/standard/collection/array.nit:274 */
218 /* ../lib/standard/collection/array.nit:272 */
223 /* metamodel/genericity.nit:49 */
224 fra
.me
.REG
[1] = NEW_MMTypeGeneric_metamodel___genericity___MMTypeGeneric___init(fra
.me
.REG
[0], fra
.me
.REG
[1]);
225 /* metamodel/genericity.nit:50 */
226 REGB0
= TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____types(fra
.me
.REG
[0])!=NIT_NULL
);
227 if (UNTAG_Bool(REGB0
)) {
229 nit_abort("Uninitialized attribute %s", "_types", LOCATE_metamodel___genericity
, 50);
231 fra
.me
.REG
[0] = ATTR_metamodel___genericity___MMLocalClass____types(fra
.me
.REG
[0]);
232 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
233 /* metamodel/genericity.nit:51 */
234 fra
.me
.REG
[4] = fra
.me
.REG
[1];
237 stack_frame_head
= fra
.me
.prev
;
238 return fra
.me
.REG
[4];
240 static const char LOCATE_metamodel___genericity___MMLocalClass___formals_types
[] = "genericity::MMLocalClass::formals_types";
241 val_t
metamodel___genericity___MMLocalClass___formals_types(val_t p0
){
242 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
249 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
250 fra
.me
.file
= LOCATE_metamodel___genericity
;
252 fra
.me
.meth
= LOCATE_metamodel___genericity___MMLocalClass___formals_types
;
253 fra
.me
.has_broke
= 0;
255 fra
.me
.nitni_local_ref_head
= NULL
;
256 fra
.me
.REG
[0] = NIT_NULL
;
257 fra
.me
.REG
[1] = NIT_NULL
;
258 fra
.me
.REG
[2] = NIT_NULL
;
259 fra
.me
.REG
[3] = NIT_NULL
;
261 /* metamodel/genericity.nit:61 */
262 REGB0
= TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____formals_types(fra
.me
.REG
[0])!=NIT_NULL
);
263 if (UNTAG_Bool(REGB0
)) {
265 nit_abort("Uninitialized attribute %s", "_formals_types", LOCATE_metamodel___genericity
, 61);
267 fra
.me
.REG
[1] = ATTR_metamodel___genericity___MMLocalClass____formals_types(fra
.me
.REG
[0]);
268 REGB0
= CALL_standard___collection___abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
269 if (UNTAG_Bool(REGB0
)) {
270 /* metamodel/genericity.nit:62 */
271 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_metamodel___abstractmetamodel___MMConcreteClass
, ID_metamodel___abstractmetamodel___MMConcreteClass
)) /*cast MMConcreteClass*/;
272 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
273 if (UNTAG_Bool(REGB0
)) {
275 nit_abort("Assert failed", NULL
, LOCATE_metamodel___genericity
, 62);
277 /* metamodel/genericity.nit:65 */
279 REGB1
= CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
280 /* ../lib/standard/kernel.nit:355 */
282 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
283 if (UNTAG_Bool(REGB2
)) {
285 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
287 /* ../lib/standard/kernel.nit:235 */
288 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
289 /* ../lib/standard/kernel.nit:355 */
290 if (UNTAG_Bool(REGB2
)) {
291 /* metamodel/genericity.nit:65 */
293 /* metamodel/genericity.nit:66 */
294 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
295 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
296 fra
.me
.REG
[1] = CALL_metamodel___genericity___MMLocalClass___get_formal(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB2
);
297 /* metamodel/genericity.nit:67 */
298 fra
.me
.REG
[1] = CALL_metamodel___type_formal___MMTypeFormal___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
299 fra
.me
.REG
[1] = NEW_MMTypeFormalParameter_metamodel___genericity___MMTypeFormalParameter___init(fra
.me
.REG
[1], REGB2
, fra
.me
.REG
[0]);
300 /* metamodel/genericity.nit:68 */
301 CALL_metamodel___genericity___MMLocalClass___register_formal(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
302 /* ../lib/standard/kernel.nit:357 */
304 /* ../lib/standard/kernel.nit:238 */
305 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
306 /* ../lib/standard/kernel.nit:357 */
309 /* ../lib/standard/kernel.nit:355 */
314 /* metamodel/genericity.nit:71 */
316 REGB1
= CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
317 /* ../lib/standard/kernel.nit:355 */
319 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
320 if (UNTAG_Bool(REGB2
)) {
322 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
324 /* ../lib/standard/kernel.nit:235 */
325 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
326 /* ../lib/standard/kernel.nit:355 */
327 if (UNTAG_Bool(REGB2
)) {
328 /* metamodel/genericity.nit:71 */
330 /* metamodel/genericity.nit:72 */
331 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
332 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
333 fra
.me
.REG
[1] = CALL_metamodel___genericity___MMLocalClass___get_formal(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB2
);
334 /* metamodel/genericity.nit:73 */
335 REGB3
= TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____formals_types(fra
.me
.REG
[0])!=NIT_NULL
);
336 if (UNTAG_Bool(REGB3
)) {
338 nit_abort("Uninitialized attribute %s", "_formals_types", LOCATE_metamodel___genericity
, 73);
340 fra
.me
.REG
[2] = ATTR_metamodel___genericity___MMLocalClass____formals_types(fra
.me
.REG
[0]);
341 /* ../lib/standard/collection/array.nit:280 */
343 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
344 if (UNTAG_Bool(REGB4
)) {
346 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
348 /* ../lib/standard/kernel.nit:236 */
349 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
350 /* ../lib/standard/collection/array.nit:280 */
351 if (UNTAG_Bool(REGB3
)) {
352 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
353 if (UNTAG_Bool(REGB3
)) {
355 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
357 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
358 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
359 if (UNTAG_Bool(REGB4
)) {
361 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
363 /* ../lib/standard/kernel.nit:235 */
364 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
366 /* ../lib/standard/collection/array.nit:280 */
370 if (UNTAG_Bool(REGB3
)) {
372 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
374 /* ../lib/standard/collection/array.nit:281 */
375 fra
.me
.REG
[2] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[2]);
376 REGB3
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
377 if (UNTAG_Bool(REGB3
)) {
378 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
380 /* ../lib/standard/collection/array.nit:724 */
381 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB2
)];
382 /* ../lib/standard/collection/array.nit:281 */
385 /* metamodel/genericity.nit:74 */
386 fra
.me
.REG
[1] = CALL_metamodel___type_formal___MMTypeFormal___bound(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
387 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
388 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
389 CALL_metamodel___genericity___MMTypeFormalParameter___bound__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
390 /* ../lib/standard/kernel.nit:357 */
392 /* ../lib/standard/kernel.nit:238 */
393 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
394 /* ../lib/standard/kernel.nit:357 */
397 /* ../lib/standard/kernel.nit:355 */
403 /* metamodel/genericity.nit:77 */
404 REGB0
= TAG_Bool(ATTR_metamodel___genericity___MMLocalClass____formals_types(fra
.me
.REG
[0])!=NIT_NULL
);
405 if (UNTAG_Bool(REGB0
)) {
407 nit_abort("Uninitialized attribute %s", "_formals_types", LOCATE_metamodel___genericity
, 77);
409 fra
.me
.REG
[0] = ATTR_metamodel___genericity___MMLocalClass____formals_types(fra
.me
.REG
[0]);
412 stack_frame_head
= fra
.me
.prev
;
413 return fra
.me
.REG
[0];
415 static const char LOCATE_metamodel___genericity___MMLocalClass___get_type
[] = "genericity::MMLocalClass::(static_type::MMLocalClass::get_type)";
416 val_t
metamodel___genericity___MMLocalClass___get_type(val_t p0
){
417 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
421 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
422 fra
.me
.file
= LOCATE_metamodel___genericity
;
424 fra
.me
.meth
= LOCATE_metamodel___genericity___MMLocalClass___get_type
;
425 fra
.me
.has_broke
= 0;
427 fra
.me
.nitni_local_ref_head
= NULL
;
428 fra
.me
.REG
[0] = NIT_NULL
;
429 fra
.me
.REG
[1] = NIT_NULL
;
430 fra
.me
.REG
[2] = NIT_NULL
;
432 /* metamodel/genericity.nit:80 */
433 fra
.me
.REG
[1] = fra
.me
.REG
[0];
434 /* metamodel/genericity.nit:82 */
435 fra
.me
.REG
[2] = ATTR_metamodel___static_type___MMLocalClass____base_type_cache(fra
.me
.REG
[1]);
436 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
437 if (UNTAG_Bool(REGB0
)) {
439 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
440 if (UNTAG_Bool(REGB1
)) {
444 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
448 if (UNTAG_Bool(REGB0
)) {
449 REGB0
= CALL_metamodel___genericity___MMLocalClass___is_generic(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
454 if (UNTAG_Bool(REGB0
)) {
455 /* metamodel/genericity.nit:83 */
456 fra
.me
.REG
[2] = CALL_metamodel___genericity___MMLocalClass___formals_types(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
457 fra
.me
.REG
[2] = CALL_metamodel___genericity___MMLocalClass___get_instantiate_type(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
458 ATTR_metamodel___static_type___MMLocalClass____base_type_cache(fra
.me
.REG
[1]) = fra
.me
.REG
[2];
459 /* metamodel/genericity.nit:84 */
460 fra
.me
.REG
[1] = ATTR_metamodel___static_type___MMLocalClass____base_type_cache(fra
.me
.REG
[1]);
461 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_metamodel___static_type___MMType
, ID_metamodel___static_type___MMType
)) /*cast MMType*/;
462 if (UNTAG_Bool(REGB0
)) {
464 nit_abort("Cast failed", NULL
, LOCATE_metamodel___genericity
, 84);
468 /* metamodel/genericity.nit:86 */
469 fra
.me
.REG
[0] = CALL_SUPER_metamodel___genericity___MMLocalClass___get_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
470 fra
.me
.REG
[1] = fra
.me
.REG
[0];
474 stack_frame_head
= fra
.me
.prev
;
475 return fra
.me
.REG
[1];
477 static const char LOCATE_metamodel___genericity___MMLocalClass___is_generic
[] = "genericity::MMLocalClass::is_generic";
478 val_t
metamodel___genericity___MMLocalClass___is_generic(val_t p0
){
479 struct {struct stack_frame_t me
;} fra
;
484 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
485 fra
.me
.file
= LOCATE_metamodel___genericity
;
487 fra
.me
.meth
= LOCATE_metamodel___genericity___MMLocalClass___is_generic
;
488 fra
.me
.has_broke
= 0;
490 fra
.me
.nitni_local_ref_head
= NULL
;
491 fra
.me
.REG
[0] = NIT_NULL
;
493 /* metamodel/genericity.nit:91 */
494 REGB0
= CALL_metamodel___abstractmetamodel___MMLocalClass___arity(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
496 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
497 if (UNTAG_Bool(REGB2
)) {
499 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
501 /* ../lib/standard/kernel.nit:237 */
502 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
503 /* metamodel/genericity.nit:91 */
506 stack_frame_head
= fra
.me
.prev
;
509 static const char LOCATE_metamodel___genericity___MMType___is_generic
[] = "genericity::MMType::is_generic";
510 val_t
metamodel___genericity___MMType___is_generic(val_t p0
){
511 struct {struct stack_frame_t me
;} fra
;
513 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
514 fra
.me
.file
= LOCATE_metamodel___genericity
;
516 fra
.me
.meth
= LOCATE_metamodel___genericity___MMType___is_generic
;
517 fra
.me
.has_broke
= 0;
519 fra
.me
.nitni_local_ref_head
= NULL
;
520 /* metamodel/genericity.nit:95 */
521 nit_abort("Deferred method called", NULL
, LOCATE_metamodel___genericity
, 95);
522 stack_frame_head
= fra
.me
.prev
;
525 static const char LOCATE_metamodel___genericity___MMTypeFormal___is_generic
[] = "genericity::MMTypeFormal::(genericity::MMType::is_generic)";
526 val_t
metamodel___genericity___MMTypeFormal___is_generic(val_t p0
){
527 struct {struct stack_frame_t me
;} fra
;
530 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
531 fra
.me
.file
= LOCATE_metamodel___genericity
;
533 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeFormal___is_generic
;
534 fra
.me
.has_broke
= 0;
536 fra
.me
.nitni_local_ref_head
= NULL
;
537 fra
.me
.REG
[0] = NIT_NULL
;
539 /* metamodel/genericity.nit:100 */
540 fra
.me
.REG
[0] = ATTR_metamodel___type_formal___MMTypeFormal____bound(fra
.me
.REG
[0]);
541 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
542 if (UNTAG_Bool(REGB0
)) {
543 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___genericity
, 100);
545 REGB0
= CALL_metamodel___genericity___MMType___is_generic(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
548 stack_frame_head
= fra
.me
.prev
;
551 static const char LOCATE_metamodel___genericity___MMTypeSimpleClass___is_generic
[] = "genericity::MMTypeSimpleClass::(genericity::MMType::is_generic)";
552 val_t
metamodel___genericity___MMTypeSimpleClass___is_generic(val_t p0
){
553 struct {struct stack_frame_t me
;} fra
;
556 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
557 fra
.me
.file
= LOCATE_metamodel___genericity
;
559 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeSimpleClass___is_generic
;
560 fra
.me
.has_broke
= 0;
562 fra
.me
.nitni_local_ref_head
= NULL
;
563 fra
.me
.REG
[0] = NIT_NULL
;
565 /* metamodel/genericity.nit:104 */
569 stack_frame_head
= fra
.me
.prev
;
572 static const char LOCATE_metamodel___genericity___MMTypeGeneric___params
[] = "genericity::MMTypeGeneric::params";
573 val_t
metamodel___genericity___MMTypeGeneric___params(val_t p0
){
574 struct {struct stack_frame_t me
;} fra
;
577 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
578 fra
.me
.file
= LOCATE_metamodel___genericity
;
580 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeGeneric___params
;
581 fra
.me
.has_broke
= 0;
583 fra
.me
.nitni_local_ref_head
= NULL
;
584 fra
.me
.REG
[0] = NIT_NULL
;
586 /* metamodel/genericity.nit:109 */
587 REGB0
= TAG_Bool(ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[0])!=NIT_NULL
);
588 if (UNTAG_Bool(REGB0
)) {
590 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___genericity
, 109);
592 fra
.me
.REG
[0] = ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[0]);
593 stack_frame_head
= fra
.me
.prev
;
594 return fra
.me
.REG
[0];
596 static const char LOCATE_metamodel___genericity___MMTypeGeneric___is_generic
[] = "genericity::MMTypeGeneric::(genericity::MMType::is_generic)";
597 val_t
metamodel___genericity___MMTypeGeneric___is_generic(val_t p0
){
598 struct {struct stack_frame_t me
;} fra
;
601 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
602 fra
.me
.file
= LOCATE_metamodel___genericity
;
604 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeGeneric___is_generic
;
605 fra
.me
.has_broke
= 0;
607 fra
.me
.nitni_local_ref_head
= NULL
;
608 fra
.me
.REG
[0] = NIT_NULL
;
610 /* metamodel/genericity.nit:112 */
614 stack_frame_head
= fra
.me
.prev
;
617 static const char LOCATE_metamodel___genericity___MMTypeGeneric___is_supertype
[] = "genericity::MMTypeGeneric::(static_type::MMType::is_supertype)";
618 val_t
metamodel___genericity___MMTypeGeneric___is_supertype(val_t p0
, val_t p1
){
619 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
623 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
624 fra
.me
.file
= LOCATE_metamodel___genericity
;
626 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeGeneric___is_supertype
;
627 fra
.me
.has_broke
= 0;
629 fra
.me
.nitni_local_ref_head
= NULL
;
630 fra
.me
.REG
[0] = NIT_NULL
;
631 fra
.me
.REG
[1] = NIT_NULL
;
632 fra
.me
.REG
[2] = NIT_NULL
;
633 fra
.me
.REG
[3] = NIT_NULL
;
636 /* metamodel/genericity.nit:116 */
637 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
638 fra
.me
.REG
[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
639 REGB0
= TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra
.me
.REG
[0])!=NIT_NULL
);
640 if (UNTAG_Bool(REGB0
)) {
642 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_metamodel___genericity
, 116);
644 fra
.me
.REG
[3] = ATTR_metamodel___static_type___MMTypeClass____local_class(fra
.me
.REG
[0]);
645 REGB0
= CALL_metamodel___partial_order___PartialOrderElement_____leq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
646 if (UNTAG_Bool(REGB0
)) {
647 /* metamodel/genericity.nit:117 */
648 REGB0
= TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra
.me
.REG
[0])!=NIT_NULL
);
649 if (UNTAG_Bool(REGB0
)) {
651 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_metamodel___genericity
, 117);
653 fra
.me
.REG
[3] = ATTR_metamodel___static_type___MMTypeClass____local_class(fra
.me
.REG
[0]);
654 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___upcast_for(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
655 /* metamodel/genericity.nit:118 */
656 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_metamodel___genericity___MMTypeGeneric
, ID_metamodel___genericity___MMTypeGeneric
)) /*cast MMTypeGeneric*/;
657 if (UNTAG_Bool(REGB0
)) {
658 /* metamodel/genericity.nit:119 */
659 REGB0
= CALL_metamodel___genericity___MMTypeGeneric___is_subtype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
663 /* metamodel/genericity.nit:122 */
668 stack_frame_head
= fra
.me
.prev
;
671 static const char LOCATE_metamodel___genericity___MMTypeGeneric___upcast_for
[] = "genericity::MMTypeGeneric::(static_type::MMType::upcast_for)";
672 val_t
metamodel___genericity___MMTypeGeneric___upcast_for(val_t p0
, val_t p1
){
673 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
677 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
678 fra
.me
.file
= LOCATE_metamodel___genericity
;
680 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeGeneric___upcast_for
;
681 fra
.me
.has_broke
= 0;
683 fra
.me
.nitni_local_ref_head
= NULL
;
684 fra
.me
.REG
[0] = NIT_NULL
;
685 fra
.me
.REG
[1] = NIT_NULL
;
686 fra
.me
.REG
[2] = NIT_NULL
;
689 /* metamodel/genericity.nit:125 */
690 fra
.me
.REG
[2] = fra
.me
.REG
[0];
691 /* metamodel/genericity.nit:127 */
692 fra
.me
.REG
[1] = CALL_SUPER_metamodel___genericity___MMTypeGeneric___upcast_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
693 /* metamodel/genericity.nit:128 */
694 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[2]));
695 if (UNTAG_Bool(REGB0
)) {
697 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
700 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
701 if (UNTAG_Bool(REGB0
)) {
702 /* metamodel/genericity.nit:129 */
703 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___adapt_to(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
704 fra
.me
.REG
[1] = fra
.me
.REG
[2];
706 /* metamodel/genericity.nit:131 */
709 stack_frame_head
= fra
.me
.prev
;
710 return fra
.me
.REG
[1];
712 static const char LOCATE_metamodel___genericity___MMTypeGeneric___for_module
[] = "genericity::MMTypeGeneric::(static_type::MMType::for_module)";
713 val_t
metamodel___genericity___MMTypeGeneric___for_module(val_t p0
, val_t p1
){
714 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
719 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
720 fra
.me
.file
= LOCATE_metamodel___genericity
;
722 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeGeneric___for_module
;
723 fra
.me
.has_broke
= 0;
725 fra
.me
.nitni_local_ref_head
= NULL
;
726 fra
.me
.REG
[0] = NIT_NULL
;
727 fra
.me
.REG
[1] = NIT_NULL
;
728 fra
.me
.REG
[2] = NIT_NULL
;
729 fra
.me
.REG
[3] = NIT_NULL
;
730 fra
.me
.REG
[4] = NIT_NULL
;
731 fra
.me
.REG
[5] = NIT_NULL
;
732 fra
.me
.REG
[6] = NIT_NULL
;
735 /* metamodel/genericity.nit:136 */
736 fra
.me
.REG
[2] = fra
.me
.REG
[0];
737 /* metamodel/genericity.nit:137 */
738 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
739 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[1]));
740 if (UNTAG_Bool(REGB0
)) {
742 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
745 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
746 if (UNTAG_Bool(REGB0
)) {
747 /* metamodel/genericity.nit:138 */
748 fra
.me
.REG
[3] = NEW_Array_standard___collection___array___Array___init();
749 /* metamodel/genericity.nit:139 */
750 REGB0
= TAG_Bool(ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[0])!=NIT_NULL
);
751 if (UNTAG_Bool(REGB0
)) {
753 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___genericity
, 139);
755 fra
.me
.REG
[4] = ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[0]);
756 /* ../lib/standard/collection/array.nit:269 */
758 /* ../lib/standard/collection/array.nit:270 */
759 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
760 if (UNTAG_Bool(REGB1
)) {
762 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
764 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
765 /* ../lib/standard/collection/array.nit:271 */
766 fra
.me
.REG
[5] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[4]);
767 /* ../lib/standard/collection/array.nit:272 */
769 /* ../lib/standard/collection/array.nit:24 */
770 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
771 if (UNTAG_Bool(REGB1
)) {
773 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
775 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[4]);
776 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
777 if (UNTAG_Bool(REGB2
)) {
779 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
781 /* ../lib/standard/kernel.nit:235 */
782 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
783 /* ../lib/standard/collection/array.nit:272 */
784 if (UNTAG_Bool(REGB1
)) {
785 /* ../lib/standard/collection/array.nit:273 */
786 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
787 if (UNTAG_Bool(REGB1
)) {
788 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
790 /* ../lib/standard/collection/array.nit:724 */
791 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
792 /* metamodel/genericity.nit:140 */
793 fra
.me
.REG
[6] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[1]);
794 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
795 /* ../lib/standard/collection/array.nit:274 */
797 /* ../lib/standard/kernel.nit:238 */
798 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
799 /* ../lib/standard/collection/array.nit:274 */
802 /* ../lib/standard/collection/array.nit:272 */
807 /* metamodel/genericity.nit:142 */
808 REGB0
= TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra
.me
.REG
[0])!=NIT_NULL
);
809 if (UNTAG_Bool(REGB0
)) {
811 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_metamodel___genericity
, 142);
813 fra
.me
.REG
[0] = ATTR_metamodel___static_type___MMTypeClass____local_class(fra
.me
.REG
[0]);
814 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___for_module(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
815 /* metamodel/genericity.nit:143 */
816 fra
.me
.REG
[3] = CALL_metamodel___genericity___MMLocalClass___get_instantiate_type(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
817 fra
.me
.REG
[2] = fra
.me
.REG
[3];
819 /* metamodel/genericity.nit:145 */
822 stack_frame_head
= fra
.me
.prev
;
823 return fra
.me
.REG
[2];
825 static const char LOCATE_metamodel___genericity___MMTypeGeneric___adapt_to
[] = "genericity::MMTypeGeneric::(static_type::MMType::adapt_to)";
826 val_t
metamodel___genericity___MMTypeGeneric___adapt_to(val_t p0
, val_t p1
){
827 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
832 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
833 fra
.me
.file
= LOCATE_metamodel___genericity
;
835 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeGeneric___adapt_to
;
836 fra
.me
.has_broke
= 0;
838 fra
.me
.nitni_local_ref_head
= NULL
;
839 fra
.me
.REG
[0] = NIT_NULL
;
840 fra
.me
.REG
[1] = NIT_NULL
;
841 fra
.me
.REG
[2] = NIT_NULL
;
842 fra
.me
.REG
[3] = NIT_NULL
;
843 fra
.me
.REG
[4] = NIT_NULL
;
844 fra
.me
.REG
[5] = NIT_NULL
;
847 /* metamodel/genericity.nit:150 */
848 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___init();
849 /* metamodel/genericity.nit:151 */
850 REGB0
= TAG_Bool(ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[0])!=NIT_NULL
);
851 if (UNTAG_Bool(REGB0
)) {
853 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___genericity
, 151);
855 fra
.me
.REG
[3] = ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[0]);
856 /* ../lib/standard/collection/array.nit:269 */
858 /* ../lib/standard/collection/array.nit:270 */
859 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
860 if (UNTAG_Bool(REGB1
)) {
862 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
864 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
865 /* ../lib/standard/collection/array.nit:271 */
866 fra
.me
.REG
[4] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
867 /* ../lib/standard/collection/array.nit:272 */
869 /* ../lib/standard/collection/array.nit:24 */
870 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
871 if (UNTAG_Bool(REGB1
)) {
873 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
875 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
876 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
877 if (UNTAG_Bool(REGB2
)) {
879 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
881 /* ../lib/standard/kernel.nit:235 */
882 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
883 /* ../lib/standard/collection/array.nit:272 */
884 if (UNTAG_Bool(REGB1
)) {
885 /* ../lib/standard/collection/array.nit:273 */
886 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
887 if (UNTAG_Bool(REGB1
)) {
888 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
890 /* ../lib/standard/collection/array.nit:724 */
891 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB0
)];
892 /* metamodel/genericity.nit:152 */
893 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___adapt_to(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
894 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
895 /* ../lib/standard/collection/array.nit:274 */
897 /* ../lib/standard/kernel.nit:238 */
898 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
899 /* ../lib/standard/collection/array.nit:274 */
902 /* ../lib/standard/collection/array.nit:272 */
907 /* metamodel/genericity.nit:154 */
908 REGB0
= TAG_Bool(ATTR_metamodel___static_type___MMTypeClass____local_class(fra
.me
.REG
[0])!=NIT_NULL
);
909 if (UNTAG_Bool(REGB0
)) {
911 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_metamodel___genericity
, 154);
913 fra
.me
.REG
[0] = ATTR_metamodel___static_type___MMTypeClass____local_class(fra
.me
.REG
[0]);
914 fra
.me
.REG
[2] = CALL_metamodel___genericity___MMLocalClass___get_instantiate_type(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
915 /* metamodel/genericity.nit:155 */
918 stack_frame_head
= fra
.me
.prev
;
919 return fra
.me
.REG
[2];
921 static const char LOCATE_metamodel___genericity___MMTypeGeneric___params_equals
[] = "genericity::MMTypeGeneric::params_equals";
922 val_t
metamodel___genericity___MMTypeGeneric___params_equals(val_t p0
, val_t p1
){
923 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
932 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
933 fra
.me
.file
= LOCATE_metamodel___genericity
;
935 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeGeneric___params_equals
;
936 fra
.me
.has_broke
= 0;
938 fra
.me
.nitni_local_ref_head
= NULL
;
939 fra
.me
.REG
[0] = NIT_NULL
;
940 fra
.me
.REG
[1] = NIT_NULL
;
941 fra
.me
.REG
[2] = NIT_NULL
;
942 fra
.me
.REG
[3] = NIT_NULL
;
945 /* ../lib/standard/collection/array.nit:24 */
946 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
947 if (UNTAG_Bool(REGB0
)) {
949 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
951 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
952 /* metamodel/genericity.nit:160 */
953 REGB1
= TAG_Bool(ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[0])!=NIT_NULL
);
954 if (UNTAG_Bool(REGB1
)) {
956 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___genericity
, 160);
958 fra
.me
.REG
[2] = ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[0]);
959 /* ../lib/standard/collection/array.nit:24 */
960 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
961 if (UNTAG_Bool(REGB1
)) {
963 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
965 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
966 /* metamodel/genericity.nit:160 */
967 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
968 if (UNTAG_Bool(REGB2
)) {
970 /* ../lib/standard/kernel.nit:230 */
971 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
972 /* metamodel/genericity.nit:160 */
975 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
976 if (UNTAG_Bool(REGB2
)) {
977 /* metamodel/genericity.nit:161 */
981 /* metamodel/genericity.nit:163 */
983 /* ../lib/standard/collection/array.nit:24 */
984 REGB0
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
985 if (UNTAG_Bool(REGB0
)) {
987 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
989 REGB0
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[1]);
990 /* ../lib/standard/kernel.nit:355 */
992 REGB3
= TAG_Bool(VAL_ISA(REGB0
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1
), VTID_standard___kernel___Comparable___OTHER(REGB1
))) /*cast OTHER*/;
993 if (UNTAG_Bool(REGB3
)) {
995 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
997 /* ../lib/standard/kernel.nit:235 */
998 REGB3
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB0
));
999 /* ../lib/standard/kernel.nit:355 */
1000 if (UNTAG_Bool(REGB3
)) {
1001 /* metamodel/genericity.nit:163 */
1003 /* metamodel/genericity.nit:164 */
1004 REGB4
= TAG_Bool(ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[0])!=NIT_NULL
);
1005 if (UNTAG_Bool(REGB4
)) {
1007 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___genericity
, 164);
1009 fra
.me
.REG
[2] = ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[0]);
1010 /* ../lib/standard/collection/array.nit:278 */
1012 /* ../lib/standard/collection/array.nit:280 */
1014 REGB6
= TAG_Bool(VAL_ISA(REGB5
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
1015 if (UNTAG_Bool(REGB6
)) {
1017 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1019 /* ../lib/standard/kernel.nit:236 */
1020 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)>=UNTAG_Int(REGB5
));
1021 /* ../lib/standard/collection/array.nit:280 */
1022 if (UNTAG_Bool(REGB5
)) {
1023 REGB5
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
1024 if (UNTAG_Bool(REGB5
)) {
1026 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
1028 REGB5
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
1029 REGB6
= TAG_Bool(VAL_ISA(REGB5
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4
), VTID_standard___kernel___Comparable___OTHER(REGB4
))) /*cast OTHER*/;
1030 if (UNTAG_Bool(REGB6
)) {
1032 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1034 /* ../lib/standard/kernel.nit:235 */
1035 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB5
));
1037 /* ../lib/standard/collection/array.nit:280 */
1038 REGB6
= TAG_Bool(0);
1041 if (UNTAG_Bool(REGB5
)) {
1043 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
1045 /* ../lib/standard/collection/array.nit:281 */
1046 fra
.me
.REG
[2] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[2]);
1047 REGB5
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1048 if (UNTAG_Bool(REGB5
)) {
1049 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
1051 /* ../lib/standard/collection/array.nit:724 */
1052 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB4
)];
1053 /* ../lib/standard/collection/array.nit:281 */
1056 /* ../lib/standard/collection/array.nit:278 */
1057 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1058 /* ../lib/standard/collection/array.nit:280 */
1060 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1061 if (UNTAG_Bool(REGB5
)) {
1063 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1065 /* ../lib/standard/kernel.nit:236 */
1066 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
1067 /* ../lib/standard/collection/array.nit:280 */
1068 if (UNTAG_Bool(REGB4
)) {
1069 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1070 if (UNTAG_Bool(REGB4
)) {
1072 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
1074 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1075 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1076 if (UNTAG_Bool(REGB5
)) {
1078 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1080 /* ../lib/standard/kernel.nit:235 */
1081 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
1083 /* ../lib/standard/collection/array.nit:280 */
1084 REGB5
= TAG_Bool(0);
1087 if (UNTAG_Bool(REGB4
)) {
1089 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
1091 /* ../lib/standard/collection/array.nit:281 */
1092 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
1093 REGB4
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1094 if (UNTAG_Bool(REGB4
)) {
1095 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
1097 /* ../lib/standard/collection/array.nit:724 */
1098 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB3
)];
1099 /* ../lib/standard/collection/array.nit:281 */
1102 /* metamodel/genericity.nit:164 */
1103 REGB3
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[2],fra
.me
.REG
[3]));
1104 if (UNTAG_Bool(REGB3
)) {
1106 REGB4
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1107 if (UNTAG_Bool(REGB4
)) {
1108 REGB4
= TAG_Bool(0);
1111 REGB4
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1115 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
1116 if (UNTAG_Bool(REGB3
)) {
1117 /* metamodel/genericity.nit:165 */
1118 REGB3
= TAG_Bool(0);
1122 /* ../lib/standard/kernel.nit:357 */
1124 /* ../lib/standard/kernel.nit:238 */
1125 REGB3
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB3
));
1126 /* ../lib/standard/kernel.nit:357 */
1129 /* ../lib/standard/kernel.nit:355 */
1134 /* metamodel/genericity.nit:168 */
1135 REGB1
= TAG_Bool(1);
1139 stack_frame_head
= fra
.me
.prev
;
1142 static const char LOCATE_metamodel___genericity___MMTypeGeneric___to_s
[] = "genericity::MMTypeGeneric::(string::Object::to_s)";
1143 val_t
metamodel___genericity___MMTypeGeneric___to_s(val_t p0
){
1144 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1147 static val_t once_value_1
; /* Once value */
1148 static val_t once_value_2
; /* Once value */
1149 static val_t once_value_3
; /* Once value */
1150 static val_t once_value_4
; /* Once value */
1151 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1152 fra
.me
.file
= LOCATE_metamodel___genericity
;
1154 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeGeneric___to_s
;
1155 fra
.me
.has_broke
= 0;
1156 fra
.me
.REG_size
= 4;
1157 fra
.me
.nitni_local_ref_head
= NULL
;
1158 fra
.me
.REG
[0] = NIT_NULL
;
1159 fra
.me
.REG
[1] = NIT_NULL
;
1160 fra
.me
.REG
[2] = NIT_NULL
;
1161 fra
.me
.REG
[3] = NIT_NULL
;
1163 /* metamodel/genericity.nit:171 */
1164 fra
.me
.REG
[1] = fra
.me
.REG
[0];
1165 /* metamodel/genericity.nit:173 */
1167 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
1168 if (!once_value_1
) {
1169 fra
.me
.REG
[3] = BOX_NativeString("");
1171 fra
.me
.REG
[3] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[3], REGB0
);
1172 once_value_1
= fra
.me
.REG
[3];
1173 register_static_object(&once_value_1
);
1174 } else fra
.me
.REG
[3] = once_value_1
;
1175 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1176 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1177 fra
.me
.REG
[0] = CALL_SUPER_metamodel___genericity___MMTypeGeneric___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1178 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1179 if (!once_value_2
) {
1180 fra
.me
.REG
[0] = BOX_NativeString("[");
1182 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1183 once_value_2
= fra
.me
.REG
[0];
1184 register_static_object(&once_value_2
);
1185 } else fra
.me
.REG
[0] = once_value_2
;
1186 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1187 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1188 REGB0
= TAG_Bool(ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[1])!=NIT_NULL
);
1189 if (UNTAG_Bool(REGB0
)) {
1191 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___genericity
, 173);
1193 fra
.me
.REG
[1] = ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[1]);
1194 if (!once_value_3
) {
1195 fra
.me
.REG
[0] = BOX_NativeString(", ");
1197 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1198 once_value_3
= fra
.me
.REG
[0];
1199 register_static_object(&once_value_3
);
1200 } else fra
.me
.REG
[0] = once_value_3
;
1201 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1202 fra
.me
.REG
[0] = CALL_standard___string___Collection___join(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1203 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1204 if (!once_value_4
) {
1205 fra
.me
.REG
[0] = BOX_NativeString("]");
1207 fra
.me
.REG
[0] = NEW_String_standard___string___String___with_native(fra
.me
.REG
[0], REGB0
);
1208 once_value_4
= fra
.me
.REG
[0];
1209 register_static_object(&once_value_4
);
1210 } else fra
.me
.REG
[0] = once_value_4
;
1211 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1212 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1213 fra
.me
.REG
[2] = CALL_standard___string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1216 stack_frame_head
= fra
.me
.prev
;
1217 return fra
.me
.REG
[2];
1219 static const char LOCATE_metamodel___genericity___MMTypeGeneric___is_subtype
[] = "genericity::MMTypeGeneric::is_subtype";
1220 val_t
metamodel___genericity___MMTypeGeneric___is_subtype(val_t p0
, val_t p1
){
1221 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1229 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1230 fra
.me
.file
= LOCATE_metamodel___genericity
;
1232 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeGeneric___is_subtype
;
1233 fra
.me
.has_broke
= 0;
1234 fra
.me
.REG_size
= 4;
1235 fra
.me
.nitni_local_ref_head
= NULL
;
1236 fra
.me
.REG
[0] = NIT_NULL
;
1237 fra
.me
.REG
[1] = NIT_NULL
;
1238 fra
.me
.REG
[2] = NIT_NULL
;
1239 fra
.me
.REG
[3] = NIT_NULL
;
1242 /* metamodel/genericity.nit:180 */
1244 REGB1
= TAG_Bool(ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[0])!=NIT_NULL
);
1245 if (UNTAG_Bool(REGB1
)) {
1247 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___genericity
, 180);
1249 fra
.me
.REG
[2] = ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[0]);
1250 /* ../lib/standard/collection/array.nit:24 */
1251 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
1252 if (UNTAG_Bool(REGB1
)) {
1254 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1256 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
1257 /* ../lib/standard/kernel.nit:355 */
1259 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1260 if (UNTAG_Bool(REGB2
)) {
1262 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1264 /* ../lib/standard/kernel.nit:235 */
1265 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1266 /* ../lib/standard/kernel.nit:355 */
1267 if (UNTAG_Bool(REGB2
)) {
1268 /* metamodel/genericity.nit:180 */
1270 /* metamodel/genericity.nit:182 */
1271 fra
.me
.REG
[2] = CALL_metamodel___genericity___MMTypeGeneric___params(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1272 /* ../lib/standard/collection/array.nit:278 */
1274 /* ../lib/standard/collection/array.nit:280 */
1276 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1277 if (UNTAG_Bool(REGB5
)) {
1279 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1281 /* ../lib/standard/kernel.nit:236 */
1282 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
1283 /* ../lib/standard/collection/array.nit:280 */
1284 if (UNTAG_Bool(REGB4
)) {
1285 REGB4
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
1286 if (UNTAG_Bool(REGB4
)) {
1288 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
1290 REGB4
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
1291 REGB5
= TAG_Bool(VAL_ISA(REGB4
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3
), VTID_standard___kernel___Comparable___OTHER(REGB3
))) /*cast OTHER*/;
1292 if (UNTAG_Bool(REGB5
)) {
1294 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1296 /* ../lib/standard/kernel.nit:235 */
1297 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
1299 /* ../lib/standard/collection/array.nit:280 */
1300 REGB5
= TAG_Bool(0);
1303 if (UNTAG_Bool(REGB4
)) {
1305 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
1307 /* ../lib/standard/collection/array.nit:281 */
1308 fra
.me
.REG
[2] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[2]);
1309 REGB4
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1310 if (UNTAG_Bool(REGB4
)) {
1311 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
1313 /* ../lib/standard/collection/array.nit:724 */
1314 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB3
)];
1315 /* ../lib/standard/collection/array.nit:281 */
1318 /* metamodel/genericity.nit:182 */
1319 REGB3
= TAG_Bool(ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[0])!=NIT_NULL
);
1320 if (UNTAG_Bool(REGB3
)) {
1322 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___genericity
, 182);
1324 fra
.me
.REG
[3] = ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[0]);
1325 /* ../lib/standard/collection/array.nit:280 */
1327 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1328 if (UNTAG_Bool(REGB4
)) {
1330 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1332 /* ../lib/standard/kernel.nit:236 */
1333 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
1334 /* ../lib/standard/collection/array.nit:280 */
1335 if (UNTAG_Bool(REGB3
)) {
1336 REGB3
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1337 if (UNTAG_Bool(REGB3
)) {
1339 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
1341 REGB3
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1342 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
1343 if (UNTAG_Bool(REGB4
)) {
1345 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1347 /* ../lib/standard/kernel.nit:235 */
1348 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1350 /* ../lib/standard/collection/array.nit:280 */
1351 REGB4
= TAG_Bool(0);
1354 if (UNTAG_Bool(REGB3
)) {
1356 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
1358 /* ../lib/standard/collection/array.nit:281 */
1359 fra
.me
.REG
[3] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[3]);
1360 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1361 if (UNTAG_Bool(REGB3
)) {
1362 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
1364 /* ../lib/standard/collection/array.nit:724 */
1365 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
1366 /* ../lib/standard/collection/array.nit:281 */
1369 /* metamodel/genericity.nit:182 */
1370 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1371 if (UNTAG_Bool(REGB2
)) {
1372 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___genericity
, 182);
1374 REGB2
= CALL_metamodel___static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1375 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
1376 if (UNTAG_Bool(REGB2
)) {
1377 /* metamodel/genericity.nit:183 */
1378 REGB2
= TAG_Bool(0);
1381 /* ../lib/standard/kernel.nit:357 */
1383 /* ../lib/standard/kernel.nit:238 */
1384 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
1385 /* ../lib/standard/kernel.nit:357 */
1388 /* ../lib/standard/kernel.nit:355 */
1393 /* metamodel/genericity.nit:186 */
1394 REGB0
= TAG_Bool(1);
1398 stack_frame_head
= fra
.me
.prev
;
1401 static const char LOCATE_metamodel___genericity___MMTypeGeneric___has_formal
[] = "genericity::MMTypeGeneric::(type_formal::MMType::has_formal)";
1402 val_t
metamodel___genericity___MMTypeGeneric___has_formal(val_t p0
){
1403 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1408 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1409 fra
.me
.file
= LOCATE_metamodel___genericity
;
1411 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeGeneric___has_formal
;
1412 fra
.me
.has_broke
= 0;
1413 fra
.me
.REG_size
= 3;
1414 fra
.me
.nitni_local_ref_head
= NULL
;
1415 fra
.me
.REG
[0] = NIT_NULL
;
1416 fra
.me
.REG
[1] = NIT_NULL
;
1417 fra
.me
.REG
[2] = NIT_NULL
;
1419 /* metamodel/genericity.nit:191 */
1420 REGB0
= TAG_Bool(ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[0])!=NIT_NULL
);
1421 if (UNTAG_Bool(REGB0
)) {
1423 nit_abort("Uninitialized attribute %s", "_params", LOCATE_metamodel___genericity
, 191);
1425 fra
.me
.REG
[0] = ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[0]);
1426 /* ../lib/standard/collection/array.nit:269 */
1428 /* ../lib/standard/collection/array.nit:270 */
1429 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
1430 if (UNTAG_Bool(REGB1
)) {
1432 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 270);
1434 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
1435 /* ../lib/standard/collection/array.nit:271 */
1436 fra
.me
.REG
[1] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[0]);
1437 /* ../lib/standard/collection/array.nit:272 */
1439 /* ../lib/standard/collection/array.nit:24 */
1440 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
1441 if (UNTAG_Bool(REGB1
)) {
1443 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 24);
1445 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[0]);
1446 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1447 if (UNTAG_Bool(REGB2
)) {
1449 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1451 /* ../lib/standard/kernel.nit:235 */
1452 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1453 /* ../lib/standard/collection/array.nit:272 */
1454 if (UNTAG_Bool(REGB1
)) {
1455 /* ../lib/standard/collection/array.nit:273 */
1456 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1457 if (UNTAG_Bool(REGB1
)) {
1458 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 273);
1460 /* ../lib/standard/collection/array.nit:724 */
1461 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[1])->val
[UNTAG_Int(REGB0
)];
1462 /* metamodel/genericity.nit:192 */
1463 REGB1
= CALL_metamodel___type_formal___MMType___has_formal(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1464 if (UNTAG_Bool(REGB1
)) {
1465 REGB1
= TAG_Bool(1);
1468 /* ../lib/standard/collection/array.nit:274 */
1470 /* ../lib/standard/kernel.nit:238 */
1471 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
1472 /* ../lib/standard/collection/array.nit:274 */
1475 /* ../lib/standard/collection/array.nit:272 */
1480 /* metamodel/genericity.nit:194 */
1481 REGB0
= TAG_Bool(0);
1485 stack_frame_head
= fra
.me
.prev
;
1488 static const char LOCATE_metamodel___genericity___MMTypeGeneric___init
[] = "genericity::MMTypeGeneric::init";
1489 void metamodel___genericity___MMTypeGeneric___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
1490 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_metamodel___genericity___MMTypeGeneric
].i
;
1491 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1493 if (init_table
[itpos0
]) return;
1494 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1495 fra
.me
.file
= LOCATE_metamodel___genericity
;
1497 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeGeneric___init
;
1498 fra
.me
.has_broke
= 0;
1499 fra
.me
.REG_size
= 4;
1500 fra
.me
.nitni_local_ref_head
= NULL
;
1501 fra
.me
.REG
[0] = NIT_NULL
;
1502 fra
.me
.REG
[1] = NIT_NULL
;
1503 fra
.me
.REG
[2] = NIT_NULL
;
1504 fra
.me
.REG
[3] = NIT_NULL
;
1508 /* metamodel/genericity.nit:197 */
1509 fra
.me
.REG
[3] = fra
.me
.REG
[0];
1510 /* metamodel/genericity.nit:199 */
1511 CALL_metamodel___static_type___MMTypeClass___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], init_table
);
1512 /* metamodel/genericity.nit:200 */
1513 ATTR_metamodel___genericity___MMTypeGeneric____params(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
1514 stack_frame_head
= fra
.me
.prev
;
1515 init_table
[itpos0
] = 1;
1518 static const char LOCATE_metamodel___genericity___MMTypeFormalParameter___def_class
[] = "genericity::MMTypeFormalParameter::def_class";
1519 val_t
metamodel___genericity___MMTypeFormalParameter___def_class(val_t p0
){
1520 struct {struct stack_frame_t me
;} fra
;
1523 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1524 fra
.me
.file
= LOCATE_metamodel___genericity
;
1526 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeFormalParameter___def_class
;
1527 fra
.me
.has_broke
= 0;
1528 fra
.me
.REG_size
= 1;
1529 fra
.me
.nitni_local_ref_head
= NULL
;
1530 fra
.me
.REG
[0] = NIT_NULL
;
1532 /* metamodel/genericity.nit:206 */
1533 REGB0
= TAG_Bool(ATTR_metamodel___genericity___MMTypeFormalParameter____def_class(fra
.me
.REG
[0])!=NIT_NULL
);
1534 if (UNTAG_Bool(REGB0
)) {
1536 nit_abort("Uninitialized attribute %s", "_def_class", LOCATE_metamodel___genericity
, 206);
1538 fra
.me
.REG
[0] = ATTR_metamodel___genericity___MMTypeFormalParameter____def_class(fra
.me
.REG
[0]);
1539 stack_frame_head
= fra
.me
.prev
;
1540 return fra
.me
.REG
[0];
1542 static const char LOCATE_metamodel___genericity___MMTypeFormalParameter___position
[] = "genericity::MMTypeFormalParameter::position";
1543 val_t
metamodel___genericity___MMTypeFormalParameter___position(val_t p0
){
1544 struct {struct stack_frame_t me
;} fra
;
1547 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1548 fra
.me
.file
= LOCATE_metamodel___genericity
;
1550 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeFormalParameter___position
;
1551 fra
.me
.has_broke
= 0;
1552 fra
.me
.REG_size
= 1;
1553 fra
.me
.nitni_local_ref_head
= NULL
;
1554 fra
.me
.REG
[0] = NIT_NULL
;
1556 /* metamodel/genericity.nit:209 */
1557 REGB0
= TAG_Bool(ATTR_metamodel___genericity___MMTypeFormalParameter____position(fra
.me
.REG
[0])!=NIT_NULL
);
1558 if (UNTAG_Bool(REGB0
)) {
1560 nit_abort("Uninitialized attribute %s", "_position", LOCATE_metamodel___genericity
, 209);
1562 REGB0
= ATTR_metamodel___genericity___MMTypeFormalParameter____position(fra
.me
.REG
[0]);
1563 stack_frame_head
= fra
.me
.prev
;
1566 static const char LOCATE_metamodel___genericity___MMTypeFormalParameter___mmmodule
[] = "genericity::MMTypeFormalParameter::(static_type::MMType::mmmodule)";
1567 val_t
metamodel___genericity___MMTypeFormalParameter___mmmodule(val_t p0
){
1568 struct {struct stack_frame_t me
;} fra
;
1571 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1572 fra
.me
.file
= LOCATE_metamodel___genericity
;
1574 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeFormalParameter___mmmodule
;
1575 fra
.me
.has_broke
= 0;
1576 fra
.me
.REG_size
= 1;
1577 fra
.me
.nitni_local_ref_head
= NULL
;
1578 fra
.me
.REG
[0] = NIT_NULL
;
1580 /* metamodel/genericity.nit:212 */
1581 REGB0
= TAG_Bool(ATTR_metamodel___genericity___MMTypeFormalParameter____def_class(fra
.me
.REG
[0])!=NIT_NULL
);
1582 if (UNTAG_Bool(REGB0
)) {
1584 nit_abort("Uninitialized attribute %s", "_def_class", LOCATE_metamodel___genericity
, 212);
1586 fra
.me
.REG
[0] = ATTR_metamodel___genericity___MMTypeFormalParameter____def_class(fra
.me
.REG
[0]);
1587 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1590 stack_frame_head
= fra
.me
.prev
;
1591 return fra
.me
.REG
[0];
1593 static const char LOCATE_metamodel___genericity___MMTypeFormalParameter___for_module
[] = "genericity::MMTypeFormalParameter::(static_type::MMType::for_module)";
1594 val_t
metamodel___genericity___MMTypeFormalParameter___for_module(val_t p0
, val_t p1
){
1595 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1599 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1600 fra
.me
.file
= LOCATE_metamodel___genericity
;
1602 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeFormalParameter___for_module
;
1603 fra
.me
.has_broke
= 0;
1604 fra
.me
.REG_size
= 4;
1605 fra
.me
.nitni_local_ref_head
= NULL
;
1606 fra
.me
.REG
[0] = NIT_NULL
;
1607 fra
.me
.REG
[1] = NIT_NULL
;
1608 fra
.me
.REG
[2] = NIT_NULL
;
1609 fra
.me
.REG
[3] = NIT_NULL
;
1612 /* metamodel/genericity.nit:216 */
1613 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1614 /* metamodel/genericity.nit:217 */
1615 fra
.me
.REG
[3] = CALL_metamodel___static_type___MMType___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1616 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[1]));
1617 if (UNTAG_Bool(REGB0
)) {
1619 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1622 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1623 if (UNTAG_Bool(REGB0
)) {
1624 /* metamodel/genericity.nit:218 */
1625 REGB0
= TAG_Bool(ATTR_metamodel___genericity___MMTypeFormalParameter____def_class(fra
.me
.REG
[0])!=NIT_NULL
);
1626 if (UNTAG_Bool(REGB0
)) {
1628 nit_abort("Uninitialized attribute %s", "_def_class", LOCATE_metamodel___genericity
, 218);
1630 fra
.me
.REG
[3] = ATTR_metamodel___genericity___MMTypeFormalParameter____def_class(fra
.me
.REG
[0]);
1631 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1632 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMModule_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1633 REGB0
= CALL_metamodel___genericity___MMTypeFormalParameter___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1634 fra
.me
.REG
[3] = CALL_metamodel___genericity___MMLocalClass___get_formal(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
1635 fra
.me
.REG
[2] = fra
.me
.REG
[3];
1637 /* metamodel/genericity.nit:220 */
1640 stack_frame_head
= fra
.me
.prev
;
1641 return fra
.me
.REG
[2];
1643 static const char LOCATE_metamodel___genericity___MMTypeFormalParameter___upcast_for
[] = "genericity::MMTypeFormalParameter::(static_type::MMType::upcast_for)";
1644 val_t
metamodel___genericity___MMTypeFormalParameter___upcast_for(val_t p0
, val_t p1
){
1645 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1648 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1649 fra
.me
.file
= LOCATE_metamodel___genericity
;
1651 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeFormalParameter___upcast_for
;
1652 fra
.me
.has_broke
= 0;
1653 fra
.me
.REG_size
= 2;
1654 fra
.me
.nitni_local_ref_head
= NULL
;
1655 fra
.me
.REG
[0] = NIT_NULL
;
1656 fra
.me
.REG
[1] = NIT_NULL
;
1659 /* metamodel/genericity.nit:223 */
1660 fra
.me
.REG
[0] = ATTR_metamodel___type_formal___MMTypeFormal____bound(fra
.me
.REG
[0]);
1661 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1662 if (UNTAG_Bool(REGB0
)) {
1663 nit_abort("Reciever is null", NULL
, LOCATE_metamodel___genericity
, 223);
1665 fra
.me
.REG
[1] = CALL_metamodel___static_type___MMType___upcast_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1668 stack_frame_head
= fra
.me
.prev
;
1669 return fra
.me
.REG
[1];
1671 static const char LOCATE_metamodel___genericity___MMTypeFormalParameter___bound__eq
[] = "genericity::MMTypeFormalParameter::bound=";
1672 void metamodel___genericity___MMTypeFormalParameter___bound__eq(val_t p0
, val_t p1
){
1673 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1677 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1678 fra
.me
.file
= LOCATE_metamodel___genericity
;
1680 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeFormalParameter___bound__eq
;
1681 fra
.me
.has_broke
= 0;
1682 fra
.me
.REG_size
= 3;
1683 fra
.me
.nitni_local_ref_head
= NULL
;
1684 fra
.me
.REG
[0] = NIT_NULL
;
1685 fra
.me
.REG
[1] = NIT_NULL
;
1686 fra
.me
.REG
[2] = NIT_NULL
;
1689 /* metamodel/genericity.nit:227 */
1690 fra
.me
.REG
[2] = ATTR_metamodel___type_formal___MMTypeFormal____bound(fra
.me
.REG
[0]);
1691 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1692 if (UNTAG_Bool(REGB0
)) {
1694 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1695 if (UNTAG_Bool(REGB1
)) {
1696 REGB1
= TAG_Bool(0);
1699 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1703 if (UNTAG_Bool(REGB0
)) {
1705 nit_abort("Assert failed", NULL
, LOCATE_metamodel___genericity
, 227);
1707 /* metamodel/genericity.nit:228 */
1708 ATTR_metamodel___type_formal___MMTypeFormal____bound(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1709 stack_frame_head
= fra
.me
.prev
;
1712 static const char LOCATE_metamodel___genericity___MMTypeFormalParameter___adapt_to
[] = "genericity::MMTypeFormalParameter::(static_type::MMType::adapt_to)";
1713 val_t
metamodel___genericity___MMTypeFormalParameter___adapt_to(val_t p0
, val_t p1
){
1714 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1719 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1720 fra
.me
.file
= LOCATE_metamodel___genericity
;
1722 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeFormalParameter___adapt_to
;
1723 fra
.me
.has_broke
= 0;
1724 fra
.me
.REG_size
= 3;
1725 fra
.me
.nitni_local_ref_head
= NULL
;
1726 fra
.me
.REG
[0] = NIT_NULL
;
1727 fra
.me
.REG
[1] = NIT_NULL
;
1728 fra
.me
.REG
[2] = NIT_NULL
;
1731 /* metamodel/genericity.nit:233 */
1732 fra
.me
.REG
[2] = CALL_metamodel___type_formal___MMType___direct_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1733 fra
.me
.REG
[1] = fra
.me
.REG
[2];
1734 /* metamodel/genericity.nit:234 */
1735 fra
.me
.REG
[2] = CALL_metamodel___genericity___MMTypeFormalParameter___def_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1736 fra
.me
.REG
[2] = CALL_metamodel___static_type___MMType___upcast_for(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1737 /* metamodel/genericity.nit:239 */
1738 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_metamodel___genericity___MMTypeGeneric
, ID_metamodel___genericity___MMTypeGeneric
)) /*cast MMTypeGeneric*/;
1739 if (UNTAG_Bool(REGB0
)) {
1741 nit_abort("Assert failed", NULL
, LOCATE_metamodel___genericity
, 239);
1743 /* metamodel/genericity.nit:240 */
1744 fra
.me
.REG
[2] = CALL_metamodel___genericity___MMTypeGeneric___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1745 REGB0
= CALL_metamodel___genericity___MMTypeFormalParameter___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1746 /* ../lib/standard/collection/array.nit:280 */
1748 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1749 if (UNTAG_Bool(REGB2
)) {
1751 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1753 /* ../lib/standard/kernel.nit:236 */
1754 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
1755 /* ../lib/standard/collection/array.nit:280 */
1756 if (UNTAG_Bool(REGB1
)) {
1757 REGB1
= TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
1758 if (UNTAG_Bool(REGB1
)) {
1760 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array
, 280);
1762 REGB1
= ATTR_standard___collection___array___AbstractArrayRead____length(fra
.me
.REG
[2]);
1763 REGB2
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
1764 if (UNTAG_Bool(REGB2
)) {
1766 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
1768 /* ../lib/standard/kernel.nit:235 */
1769 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1771 /* ../lib/standard/collection/array.nit:280 */
1772 REGB2
= TAG_Bool(0);
1775 if (UNTAG_Bool(REGB1
)) {
1777 nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array
, 280);
1779 /* ../lib/standard/collection/array.nit:281 */
1780 fra
.me
.REG
[2] = ATTR_standard___collection___array___Array____items(fra
.me
.REG
[2]);
1781 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1782 if (UNTAG_Bool(REGB1
)) {
1783 nit_abort("Reciever is null", NULL
, LOCATE_standard___collection___array
, 281);
1785 /* ../lib/standard/collection/array.nit:724 */
1786 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB0
)];
1787 /* ../lib/standard/collection/array.nit:281 */
1790 /* metamodel/genericity.nit:241 */
1793 stack_frame_head
= fra
.me
.prev
;
1794 return fra
.me
.REG
[2];
1796 static const char LOCATE_metamodel___genericity___MMTypeFormalParameter___with_bound
[] = "genericity::MMTypeFormalParameter::with_bound";
1797 void metamodel___genericity___MMTypeFormalParameter___with_bound(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
, int* init_table
){
1798 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_metamodel___genericity___MMTypeFormalParameter
].i
;
1799 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1802 if (init_table
[itpos1
]) return;
1803 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1804 fra
.me
.file
= LOCATE_metamodel___genericity
;
1806 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeFormalParameter___with_bound
;
1807 fra
.me
.has_broke
= 0;
1808 fra
.me
.REG_size
= 4;
1809 fra
.me
.nitni_local_ref_head
= NULL
;
1810 fra
.me
.REG
[0] = NIT_NULL
;
1811 fra
.me
.REG
[1] = NIT_NULL
;
1812 fra
.me
.REG
[2] = NIT_NULL
;
1813 fra
.me
.REG
[3] = NIT_NULL
;
1819 /* metamodel/genericity.nit:246 */
1820 CALL_metamodel___genericity___MMTypeFormalParameter___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], REGB0
, fra
.me
.REG
[2], init_table
);
1821 /* metamodel/genericity.nit:247 */
1822 ATTR_metamodel___type_formal___MMTypeFormal____bound(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
1823 stack_frame_head
= fra
.me
.prev
;
1824 init_table
[itpos1
] = 1;
1827 static const char LOCATE_metamodel___genericity___MMTypeFormalParameter___init
[] = "genericity::MMTypeFormalParameter::init";
1828 void metamodel___genericity___MMTypeFormalParameter___init(val_t p0
, val_t p1
, val_t p2
, val_t p3
, int* init_table
){
1829 int itpos2
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_metamodel___genericity___MMTypeFormalParameter
].i
;
1830 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1833 if (init_table
[itpos2
]) return;
1834 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1835 fra
.me
.file
= LOCATE_metamodel___genericity
;
1837 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeFormalParameter___init
;
1838 fra
.me
.has_broke
= 0;
1839 fra
.me
.REG_size
= 4;
1840 fra
.me
.nitni_local_ref_head
= NULL
;
1841 fra
.me
.REG
[0] = NIT_NULL
;
1842 fra
.me
.REG
[1] = NIT_NULL
;
1843 fra
.me
.REG
[2] = NIT_NULL
;
1844 fra
.me
.REG
[3] = NIT_NULL
;
1849 /* metamodel/genericity.nit:250 */
1850 fra
.me
.REG
[3] = fra
.me
.REG
[0];
1851 /* metamodel/genericity.nit:252 */
1852 CALL_metamodel___type_formal___MMTypeFormal___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], NIT_NULL
, init_table
);
1853 /* metamodel/genericity.nit:253 */
1854 ATTR_metamodel___genericity___MMTypeFormalParameter____position(fra
.me
.REG
[3]) = REGB0
;
1855 /* metamodel/genericity.nit:254 */
1856 ATTR_metamodel___genericity___MMTypeFormalParameter____def_class(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
1857 stack_frame_head
= fra
.me
.prev
;
1858 init_table
[itpos2
] = 1;
1861 static const char LOCATE_metamodel___genericity___MMTypeNone___is_generic
[] = "genericity::MMTypeNone::(genericity::MMType::is_generic)";
1862 val_t
metamodel___genericity___MMTypeNone___is_generic(val_t p0
){
1863 struct {struct stack_frame_t me
;} fra
;
1866 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1867 fra
.me
.file
= LOCATE_metamodel___genericity
;
1869 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeNone___is_generic
;
1870 fra
.me
.has_broke
= 0;
1871 fra
.me
.REG_size
= 1;
1872 fra
.me
.nitni_local_ref_head
= NULL
;
1873 fra
.me
.REG
[0] = NIT_NULL
;
1875 /* metamodel/genericity.nit:259 */
1876 REGB0
= TAG_Bool(0);
1879 stack_frame_head
= fra
.me
.prev
;
1882 static const char LOCATE_metamodel___genericity___MMTypeNone___for_module
[] = "genericity::MMTypeNone::(static_type::MMType::for_module)";
1883 val_t
metamodel___genericity___MMTypeNone___for_module(val_t p0
, val_t p1
){
1884 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1886 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1887 fra
.me
.file
= LOCATE_metamodel___genericity
;
1889 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeNone___for_module
;
1890 fra
.me
.has_broke
= 0;
1891 fra
.me
.REG_size
= 2;
1892 fra
.me
.nitni_local_ref_head
= NULL
;
1893 fra
.me
.REG
[0] = NIT_NULL
;
1894 fra
.me
.REG
[1] = NIT_NULL
;
1897 /* metamodel/genericity.nit:260 */
1900 stack_frame_head
= fra
.me
.prev
;
1901 return fra
.me
.REG
[0];
1903 static const char LOCATE_metamodel___genericity___MMTypeNone___adapt_to
[] = "genericity::MMTypeNone::(static_type::MMType::adapt_to)";
1904 val_t
metamodel___genericity___MMTypeNone___adapt_to(val_t p0
, val_t p1
){
1905 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1907 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1908 fra
.me
.file
= LOCATE_metamodel___genericity
;
1910 fra
.me
.meth
= LOCATE_metamodel___genericity___MMTypeNone___adapt_to
;
1911 fra
.me
.has_broke
= 0;
1912 fra
.me
.REG_size
= 2;
1913 fra
.me
.nitni_local_ref_head
= NULL
;
1914 fra
.me
.REG
[0] = NIT_NULL
;
1915 fra
.me
.REG
[1] = NIT_NULL
;
1918 /* metamodel/genericity.nit:261 */
1921 stack_frame_head
= fra
.me
.prev
;
1922 return fra
.me
.REG
[0];