1 /* This C file is generated by NIT to compile module genericity. */
2 #include "genericity._sep.h"
3 val_t
genericity___MMLocalClass___get_formal(val_t p0
, val_t p1
){
4 struct {struct stack_frame_t me
;} fra
;
9 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
10 fra
.me
.file
= LOCATE_genericity
;
12 fra
.me
.meth
= LOCATE_genericity___MMLocalClass___get_formal
;
15 fra
.me
.REG
[0] = NIT_NULL
;
18 /* ./metamodel//genericity.nit:28 */
19 fra
.me
.REG
[0] = CALL_genericity___MMLocalClass___formals_types(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
20 /* ./../lib/standard//collection//array.nit:245 */
22 /* ./../lib/standard//kernel.nit:213 */
23 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
24 /* ./../lib/standard//collection//array.nit:245 */
25 if (UNTAG_Bool(REGB1
)) {
26 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0])!=NIT_NULL
);
27 if (UNTAG_Bool(REGB1
)) {
29 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
31 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[0]);
32 /* ./../lib/standard//kernel.nit:212 */
33 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
35 /* ./../lib/standard//collection//array.nit:245 */
36 REGB2
= TAG_Bool(false);
39 if (UNTAG_Bool(REGB1
)) {
41 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
43 /* ./../lib/standard//collection//array.nit:246 */
44 fra
.me
.REG
[0] = ATTR_array___Array____items(fra
.me
.REG
[0]);
45 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
46 if (UNTAG_Bool(REGB1
)) {
47 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
49 /* ./../lib/standard//collection//array.nit:654 */
50 fra
.me
.REG
[0] = ((Nit_NativeArray
)fra
.me
.REG
[0])->val
[UNTAG_Int(REGB0
)];
51 /* ./../lib/standard//collection//array.nit:246 */
54 /* ./metamodel//genericity.nit:28 */
57 stack_frame_head
= fra
.me
.prev
;
60 void genericity___MMLocalClass___register_formal(val_t p0
, val_t p1
){
61 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
66 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
67 fra
.me
.file
= LOCATE_genericity
;
69 fra
.me
.meth
= LOCATE_genericity___MMLocalClass___register_formal
;
72 fra
.me
.REG
[0] = NIT_NULL
;
73 fra
.me
.REG
[1] = NIT_NULL
;
74 fra
.me
.REG
[2] = NIT_NULL
;
77 /* ./metamodel//genericity.nit:35 */
78 fra
.me
.REG
[2] = CALL_genericity___MMTypeFormalParameter___def_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
79 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[2],fra
.me
.REG
[0]));
80 if (UNTAG_Bool(REGB0
)) {
82 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
85 if (UNTAG_Bool(REGB0
)) {
87 nit_abort("Assert failed", NULL
, LOCATE_genericity
, 35);
89 /* ./metamodel//genericity.nit:36 */
90 REGB0
= CALL_genericity___MMTypeFormalParameter___position(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
91 REGB1
= TAG_Bool(ATTR_genericity___MMLocalClass____formals_types(fra
.me
.REG
[0])!=NIT_NULL
);
92 if (UNTAG_Bool(REGB1
)) {
94 nit_abort("Uninitialized attribute %s", "_formals_types", LOCATE_genericity
, 36);
96 fra
.me
.REG
[2] = ATTR_genericity___MMLocalClass____formals_types(fra
.me
.REG
[0]);
97 /* ./../lib/standard//collection//array.nit:23 */
98 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
99 if (UNTAG_Bool(REGB1
)) {
101 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
103 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
104 /* ./metamodel//genericity.nit:36 */
105 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
106 if (UNTAG_Bool(REGB2
)) {
108 /* ./../lib/standard//kernel.nit:207 */
109 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
110 /* ./metamodel//genericity.nit:36 */
113 if (UNTAG_Bool(REGB2
)) {
115 nit_abort("Assert failed", NULL
, LOCATE_genericity
, 36);
117 /* ./metamodel//genericity.nit:37 */
118 REGB2
= TAG_Bool(ATTR_genericity___MMLocalClass____formals_types(fra
.me
.REG
[0])!=NIT_NULL
);
119 if (UNTAG_Bool(REGB2
)) {
121 nit_abort("Uninitialized attribute %s", "_formals_types", LOCATE_genericity
, 37);
123 fra
.me
.REG
[0] = ATTR_genericity___MMLocalClass____formals_types(fra
.me
.REG
[0]);
124 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
125 stack_frame_head
= fra
.me
.prev
;
128 val_t
genericity___MMLocalClass___get_instantiate_type(val_t p0
, val_t p1
){
129 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
133 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
134 fra
.me
.file
= LOCATE_genericity
;
136 fra
.me
.meth
= LOCATE_genericity___MMLocalClass___get_instantiate_type
;
137 fra
.me
.has_broke
= 0;
139 fra
.me
.REG
[0] = NIT_NULL
;
140 fra
.me
.REG
[1] = NIT_NULL
;
141 fra
.me
.REG
[2] = NIT_NULL
;
142 fra
.me
.REG
[3] = NIT_NULL
;
143 fra
.me
.REG
[4] = NIT_NULL
;
146 /* ./metamodel//genericity.nit:46 */
147 REGB0
= TAG_Bool(ATTR_genericity___MMLocalClass____types(fra
.me
.REG
[0])!=NIT_NULL
);
148 if (UNTAG_Bool(REGB0
)) {
150 nit_abort("Uninitialized attribute %s", "_types", LOCATE_genericity
, 46);
152 fra
.me
.REG
[2] = ATTR_genericity___MMLocalClass____types(fra
.me
.REG
[0]);
153 /* ./../lib/standard//collection//array.nit:234 */
155 /* ./../lib/standard//collection//array.nit:235 */
156 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
157 if (UNTAG_Bool(REGB1
)) {
159 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
161 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
162 /* ./../lib/standard//collection//array.nit:236 */
163 fra
.me
.REG
[3] = ATTR_array___Array____items(fra
.me
.REG
[2]);
164 /* ./../lib/standard//collection//array.nit:237 */
166 /* ./../lib/standard//collection//array.nit:23 */
167 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
168 if (UNTAG_Bool(REGB1
)) {
170 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
172 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
173 /* ./../lib/standard//kernel.nit:212 */
174 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
175 /* ./../lib/standard//collection//array.nit:237 */
176 if (UNTAG_Bool(REGB1
)) {
177 /* ./../lib/standard//collection//array.nit:238 */
178 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
179 if (UNTAG_Bool(REGB1
)) {
180 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
182 /* ./../lib/standard//collection//array.nit:654 */
183 fra
.me
.REG
[4] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB0
)];
184 /* ./metamodel//genericity.nit:47 */
185 REGB1
= CALL_genericity___MMTypeGeneric___params_equals(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[1]);
186 if (UNTAG_Bool(REGB1
)) {
189 /* ./../lib/standard//collection//array.nit:239 */
191 /* ./../lib/standard//kernel.nit:215 */
192 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
193 /* ./../lib/standard//collection//array.nit:239 */
196 /* ./../lib/standard//collection//array.nit:237 */
201 /* ./metamodel//genericity.nit:49 */
202 fra
.me
.REG
[1] = NEW_MMTypeGeneric_genericity___MMTypeGeneric___init(fra
.me
.REG
[0], fra
.me
.REG
[1]);
203 /* ./metamodel//genericity.nit:50 */
204 REGB0
= TAG_Bool(ATTR_genericity___MMLocalClass____types(fra
.me
.REG
[0])!=NIT_NULL
);
205 if (UNTAG_Bool(REGB0
)) {
207 nit_abort("Uninitialized attribute %s", "_types", LOCATE_genericity
, 50);
209 fra
.me
.REG
[0] = ATTR_genericity___MMLocalClass____types(fra
.me
.REG
[0]);
210 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
211 /* ./metamodel//genericity.nit:51 */
212 fra
.me
.REG
[4] = fra
.me
.REG
[1];
215 stack_frame_head
= fra
.me
.prev
;
216 return fra
.me
.REG
[4];
218 val_t
genericity___MMLocalClass___formals_types(val_t p0
){
219 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
226 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
227 fra
.me
.file
= LOCATE_genericity
;
229 fra
.me
.meth
= LOCATE_genericity___MMLocalClass___formals_types
;
230 fra
.me
.has_broke
= 0;
232 fra
.me
.REG
[0] = NIT_NULL
;
233 fra
.me
.REG
[1] = NIT_NULL
;
234 fra
.me
.REG
[2] = NIT_NULL
;
235 fra
.me
.REG
[3] = NIT_NULL
;
237 /* ./metamodel//genericity.nit:61 */
238 REGB0
= TAG_Bool(ATTR_genericity___MMLocalClass____formals_types(fra
.me
.REG
[0])!=NIT_NULL
);
239 if (UNTAG_Bool(REGB0
)) {
241 nit_abort("Uninitialized attribute %s", "_formals_types", LOCATE_genericity
, 61);
243 fra
.me
.REG
[1] = ATTR_genericity___MMLocalClass____formals_types(fra
.me
.REG
[0]);
244 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
245 if (UNTAG_Bool(REGB0
)) {
246 /* ./metamodel//genericity.nit:62 */
247 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_MMConcreteClass
, ID_MMConcreteClass
)) /*cast MMConcreteClass*/;
248 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
249 if (UNTAG_Bool(REGB0
)) {
251 nit_abort("Assert failed", NULL
, LOCATE_genericity
, 62);
253 /* ./metamodel//genericity.nit:65 */
255 REGB1
= CALL_abstractmetamodel___MMLocalClass___arity(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
256 /* ./../lib/standard//kernel.nit:332 */
258 /* ./../lib/standard//kernel.nit:212 */
259 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
260 /* ./../lib/standard//kernel.nit:332 */
261 if (UNTAG_Bool(REGB2
)) {
262 /* ./metamodel//genericity.nit:65 */
264 /* ./metamodel//genericity.nit:66 */
265 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
266 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMGlobalClass___intro(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
267 fra
.me
.REG
[1] = CALL_genericity___MMLocalClass___get_formal(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB2
);
268 /* ./metamodel//genericity.nit:67 */
269 fra
.me
.REG
[1] = CALL_type_formal___MMTypeFormal___name(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
270 fra
.me
.REG
[1] = NEW_MMTypeFormalParameter_genericity___MMTypeFormalParameter___init(fra
.me
.REG
[1], REGB2
, fra
.me
.REG
[0]);
271 /* ./metamodel//genericity.nit:68 */
272 CALL_genericity___MMLocalClass___register_formal(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
273 /* ./../lib/standard//kernel.nit:334 */
275 /* ./../lib/standard//kernel.nit:215 */
276 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
277 /* ./../lib/standard//kernel.nit:334 */
280 /* ./../lib/standard//kernel.nit:332 */
285 /* ./metamodel//genericity.nit:71 */
287 REGB1
= CALL_abstractmetamodel___MMLocalClass___arity(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
288 /* ./../lib/standard//kernel.nit:332 */
290 /* ./../lib/standard//kernel.nit:212 */
291 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
292 /* ./../lib/standard//kernel.nit:332 */
293 if (UNTAG_Bool(REGB2
)) {
294 /* ./metamodel//genericity.nit:71 */
296 /* ./metamodel//genericity.nit:72 */
297 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
298 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMGlobalClass___intro(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
299 fra
.me
.REG
[1] = CALL_genericity___MMLocalClass___get_formal(fra
.me
.REG
[1])(fra
.me
.REG
[1], REGB2
);
300 /* ./metamodel//genericity.nit:73 */
301 REGB3
= TAG_Bool(ATTR_genericity___MMLocalClass____formals_types(fra
.me
.REG
[0])!=NIT_NULL
);
302 if (UNTAG_Bool(REGB3
)) {
304 nit_abort("Uninitialized attribute %s", "_formals_types", LOCATE_genericity
, 73);
306 fra
.me
.REG
[2] = ATTR_genericity___MMLocalClass____formals_types(fra
.me
.REG
[0]);
307 /* ./../lib/standard//collection//array.nit:245 */
309 /* ./../lib/standard//kernel.nit:213 */
310 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
311 /* ./../lib/standard//collection//array.nit:245 */
312 if (UNTAG_Bool(REGB3
)) {
313 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
314 if (UNTAG_Bool(REGB3
)) {
316 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
318 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
319 /* ./../lib/standard//kernel.nit:212 */
320 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
322 /* ./../lib/standard//collection//array.nit:245 */
323 REGB4
= TAG_Bool(false);
326 if (UNTAG_Bool(REGB3
)) {
328 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
330 /* ./../lib/standard//collection//array.nit:246 */
331 fra
.me
.REG
[2] = ATTR_array___Array____items(fra
.me
.REG
[2]);
332 REGB3
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
333 if (UNTAG_Bool(REGB3
)) {
334 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
336 /* ./../lib/standard//collection//array.nit:654 */
337 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB2
)];
338 /* ./../lib/standard//collection//array.nit:246 */
341 /* ./metamodel//genericity.nit:74 */
342 fra
.me
.REG
[1] = CALL_type_formal___MMTypeFormal___bound(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
343 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
344 fra
.me
.REG
[3] = CALL_static_type___MMType___for_module(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
345 CALL_genericity___MMTypeFormalParameter___bound__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
346 /* ./../lib/standard//kernel.nit:334 */
348 /* ./../lib/standard//kernel.nit:215 */
349 REGB2
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB2
));
350 /* ./../lib/standard//kernel.nit:334 */
353 /* ./../lib/standard//kernel.nit:332 */
359 /* ./metamodel//genericity.nit:77 */
360 REGB0
= TAG_Bool(ATTR_genericity___MMLocalClass____formals_types(fra
.me
.REG
[0])!=NIT_NULL
);
361 if (UNTAG_Bool(REGB0
)) {
363 nit_abort("Uninitialized attribute %s", "_formals_types", LOCATE_genericity
, 77);
365 fra
.me
.REG
[0] = ATTR_genericity___MMLocalClass____formals_types(fra
.me
.REG
[0]);
368 stack_frame_head
= fra
.me
.prev
;
369 return fra
.me
.REG
[0];
371 val_t
genericity___MMLocalClass___get_type(val_t p0
){
372 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
376 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
377 fra
.me
.file
= LOCATE_genericity
;
379 fra
.me
.meth
= LOCATE_genericity___MMLocalClass___get_type
;
380 fra
.me
.has_broke
= 0;
382 fra
.me
.REG
[0] = NIT_NULL
;
383 fra
.me
.REG
[1] = NIT_NULL
;
384 fra
.me
.REG
[2] = NIT_NULL
;
386 /* ./metamodel//genericity.nit:80 */
387 fra
.me
.REG
[1] = fra
.me
.REG
[0];
388 /* ./metamodel//genericity.nit:82 */
389 fra
.me
.REG
[2] = ATTR_static_type___MMLocalClass____base_type_cache(fra
.me
.REG
[1]);
390 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
391 if (UNTAG_Bool(REGB0
)) {
393 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
394 if (UNTAG_Bool(REGB1
)) {
395 REGB1
= TAG_Bool(false);
398 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
402 if (UNTAG_Bool(REGB0
)) {
403 REGB0
= CALL_genericity___MMLocalClass___is_generic(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
405 REGB1
= TAG_Bool(false);
408 if (UNTAG_Bool(REGB0
)) {
409 /* ./metamodel//genericity.nit:83 */
410 fra
.me
.REG
[2] = CALL_genericity___MMLocalClass___formals_types(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
411 fra
.me
.REG
[2] = CALL_genericity___MMLocalClass___get_instantiate_type(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
412 ATTR_static_type___MMLocalClass____base_type_cache(fra
.me
.REG
[1]) = fra
.me
.REG
[2];
413 /* ./metamodel//genericity.nit:84 */
414 fra
.me
.REG
[1] = ATTR_static_type___MMLocalClass____base_type_cache(fra
.me
.REG
[1]);
415 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_MMType
, ID_MMType
)) /*cast MMType*/;
416 if (UNTAG_Bool(REGB0
)) {
418 nit_abort("Cast failed", NULL
, LOCATE_genericity
, 84);
422 /* ./metamodel//genericity.nit:86 */
423 fra
.me
.REG
[0] = CALL_SUPER_genericity___MMLocalClass___get_type(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
424 fra
.me
.REG
[1] = fra
.me
.REG
[0];
428 stack_frame_head
= fra
.me
.prev
;
429 return fra
.me
.REG
[1];
431 val_t
genericity___MMLocalClass___is_generic(val_t p0
){
432 struct {struct stack_frame_t me
;} fra
;
436 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
437 fra
.me
.file
= LOCATE_genericity
;
439 fra
.me
.meth
= LOCATE_genericity___MMLocalClass___is_generic
;
440 fra
.me
.has_broke
= 0;
442 fra
.me
.REG
[0] = NIT_NULL
;
444 /* ./metamodel//genericity.nit:91 */
445 REGB0
= CALL_abstractmetamodel___MMLocalClass___arity(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
447 /* ./../lib/standard//kernel.nit:214 */
448 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>UNTAG_Int(REGB1
));
449 /* ./metamodel//genericity.nit:91 */
452 stack_frame_head
= fra
.me
.prev
;
455 val_t
genericity___MMType___is_generic(val_t p0
){
456 struct {struct stack_frame_t me
;} fra
;
458 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
459 fra
.me
.file
= LOCATE_genericity
;
461 fra
.me
.meth
= LOCATE_genericity___MMType___is_generic
;
462 fra
.me
.has_broke
= 0;
464 /* ./metamodel//genericity.nit:95 */
465 nit_abort("Deferred method called", NULL
, LOCATE_genericity
, 95);
466 stack_frame_head
= fra
.me
.prev
;
469 val_t
genericity___MMTypeFormal___is_generic(val_t p0
){
470 struct {struct stack_frame_t me
;} fra
;
473 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
474 fra
.me
.file
= LOCATE_genericity
;
476 fra
.me
.meth
= LOCATE_genericity___MMTypeFormal___is_generic
;
477 fra
.me
.has_broke
= 0;
479 fra
.me
.REG
[0] = NIT_NULL
;
481 /* ./metamodel//genericity.nit:100 */
482 fra
.me
.REG
[0] = ATTR_type_formal___MMTypeFormal____bound(fra
.me
.REG
[0]);
483 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
484 if (UNTAG_Bool(REGB0
)) {
485 nit_abort("Reciever is null", NULL
, LOCATE_genericity
, 100);
487 REGB0
= CALL_genericity___MMType___is_generic(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
490 stack_frame_head
= fra
.me
.prev
;
493 val_t
genericity___MMTypeSimpleClass___is_generic(val_t p0
){
494 struct {struct stack_frame_t me
;} fra
;
497 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
498 fra
.me
.file
= LOCATE_genericity
;
500 fra
.me
.meth
= LOCATE_genericity___MMTypeSimpleClass___is_generic
;
501 fra
.me
.has_broke
= 0;
503 fra
.me
.REG
[0] = NIT_NULL
;
505 /* ./metamodel//genericity.nit:104 */
506 REGB0
= TAG_Bool(false);
509 stack_frame_head
= fra
.me
.prev
;
512 val_t
genericity___MMTypeGeneric___params(val_t p0
){
513 struct {struct stack_frame_t me
;} fra
;
516 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
517 fra
.me
.file
= LOCATE_genericity
;
519 fra
.me
.meth
= LOCATE_genericity___MMTypeGeneric___params
;
520 fra
.me
.has_broke
= 0;
522 fra
.me
.REG
[0] = NIT_NULL
;
524 /* ./metamodel//genericity.nit:109 */
525 REGB0
= TAG_Bool(ATTR_genericity___MMTypeGeneric____params(fra
.me
.REG
[0])!=NIT_NULL
);
526 if (UNTAG_Bool(REGB0
)) {
528 nit_abort("Uninitialized attribute %s", "_params", LOCATE_genericity
, 109);
530 fra
.me
.REG
[0] = ATTR_genericity___MMTypeGeneric____params(fra
.me
.REG
[0]);
531 stack_frame_head
= fra
.me
.prev
;
532 return fra
.me
.REG
[0];
534 val_t
genericity___MMTypeGeneric___is_generic(val_t p0
){
535 struct {struct stack_frame_t me
;} fra
;
538 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
539 fra
.me
.file
= LOCATE_genericity
;
541 fra
.me
.meth
= LOCATE_genericity___MMTypeGeneric___is_generic
;
542 fra
.me
.has_broke
= 0;
544 fra
.me
.REG
[0] = NIT_NULL
;
546 /* ./metamodel//genericity.nit:112 */
547 REGB0
= TAG_Bool(true);
550 stack_frame_head
= fra
.me
.prev
;
553 val_t
genericity___MMTypeGeneric___is_supertype(val_t p0
, val_t p1
){
554 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
558 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
559 fra
.me
.file
= LOCATE_genericity
;
561 fra
.me
.meth
= LOCATE_genericity___MMTypeGeneric___is_supertype
;
562 fra
.me
.has_broke
= 0;
564 fra
.me
.REG
[0] = NIT_NULL
;
565 fra
.me
.REG
[1] = NIT_NULL
;
566 fra
.me
.REG
[2] = NIT_NULL
;
567 fra
.me
.REG
[3] = NIT_NULL
;
570 /* ./metamodel//genericity.nit:116 */
571 fra
.me
.REG
[2] = CALL_static_type___MMType___local_class(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
572 fra
.me
.REG
[2] = CALL_abstractmetamodel___MMLocalClass___cshe(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
573 REGB0
= TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra
.me
.REG
[0])!=NIT_NULL
);
574 if (UNTAG_Bool(REGB0
)) {
576 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_genericity
, 116);
578 fra
.me
.REG
[3] = ATTR_static_type___MMTypeClass____local_class(fra
.me
.REG
[0]);
579 REGB0
= CALL_partial_order___PartialOrderElement_____leq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
580 if (UNTAG_Bool(REGB0
)) {
581 /* ./metamodel//genericity.nit:117 */
582 REGB0
= TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra
.me
.REG
[0])!=NIT_NULL
);
583 if (UNTAG_Bool(REGB0
)) {
585 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_genericity
, 117);
587 fra
.me
.REG
[3] = ATTR_static_type___MMTypeClass____local_class(fra
.me
.REG
[0]);
588 fra
.me
.REG
[3] = CALL_static_type___MMType___upcast_for(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
589 /* ./metamodel//genericity.nit:118 */
590 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_MMTypeGeneric
, ID_MMTypeGeneric
)) /*cast MMTypeGeneric*/;
591 if (UNTAG_Bool(REGB0
)) {
592 /* ./metamodel//genericity.nit:119 */
593 REGB0
= CALL_genericity___MMTypeGeneric___is_subtype(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
597 /* ./metamodel//genericity.nit:122 */
598 REGB1
= TAG_Bool(false);
602 stack_frame_head
= fra
.me
.prev
;
605 val_t
genericity___MMTypeGeneric___upcast_for(val_t p0
, val_t p1
){
606 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
610 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
611 fra
.me
.file
= LOCATE_genericity
;
613 fra
.me
.meth
= LOCATE_genericity___MMTypeGeneric___upcast_for
;
614 fra
.me
.has_broke
= 0;
616 fra
.me
.REG
[0] = NIT_NULL
;
617 fra
.me
.REG
[1] = NIT_NULL
;
618 fra
.me
.REG
[2] = NIT_NULL
;
621 /* ./metamodel//genericity.nit:125 */
622 fra
.me
.REG
[2] = fra
.me
.REG
[0];
623 /* ./metamodel//genericity.nit:127 */
624 fra
.me
.REG
[1] = CALL_SUPER_genericity___MMTypeGeneric___upcast_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
625 /* ./metamodel//genericity.nit:128 */
626 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[2]));
627 if (UNTAG_Bool(REGB0
)) {
629 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
632 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
633 if (UNTAG_Bool(REGB0
)) {
634 /* ./metamodel//genericity.nit:129 */
635 fra
.me
.REG
[2] = CALL_static_type___MMType___adapt_to(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
636 fra
.me
.REG
[1] = fra
.me
.REG
[2];
638 /* ./metamodel//genericity.nit:131 */
641 stack_frame_head
= fra
.me
.prev
;
642 return fra
.me
.REG
[1];
644 val_t
genericity___MMTypeGeneric___for_module(val_t p0
, val_t p1
){
645 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
649 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
650 fra
.me
.file
= LOCATE_genericity
;
652 fra
.me
.meth
= LOCATE_genericity___MMTypeGeneric___for_module
;
653 fra
.me
.has_broke
= 0;
655 fra
.me
.REG
[0] = NIT_NULL
;
656 fra
.me
.REG
[1] = NIT_NULL
;
657 fra
.me
.REG
[2] = NIT_NULL
;
658 fra
.me
.REG
[3] = NIT_NULL
;
659 fra
.me
.REG
[4] = NIT_NULL
;
660 fra
.me
.REG
[5] = NIT_NULL
;
661 fra
.me
.REG
[6] = NIT_NULL
;
664 /* ./metamodel//genericity.nit:136 */
665 fra
.me
.REG
[2] = fra
.me
.REG
[0];
666 /* ./metamodel//genericity.nit:137 */
667 fra
.me
.REG
[3] = CALL_static_type___MMType___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
668 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[1]));
669 if (UNTAG_Bool(REGB0
)) {
671 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
674 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
675 if (UNTAG_Bool(REGB0
)) {
676 /* ./metamodel//genericity.nit:138 */
677 fra
.me
.REG
[3] = NEW_Array_array___Array___init();
678 /* ./metamodel//genericity.nit:139 */
679 REGB0
= TAG_Bool(ATTR_genericity___MMTypeGeneric____params(fra
.me
.REG
[0])!=NIT_NULL
);
680 if (UNTAG_Bool(REGB0
)) {
682 nit_abort("Uninitialized attribute %s", "_params", LOCATE_genericity
, 139);
684 fra
.me
.REG
[4] = ATTR_genericity___MMTypeGeneric____params(fra
.me
.REG
[0]);
685 /* ./../lib/standard//collection//array.nit:234 */
687 /* ./../lib/standard//collection//array.nit:235 */
688 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
689 if (UNTAG_Bool(REGB1
)) {
691 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
693 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
694 /* ./../lib/standard//collection//array.nit:236 */
695 fra
.me
.REG
[5] = ATTR_array___Array____items(fra
.me
.REG
[4]);
696 /* ./../lib/standard//collection//array.nit:237 */
698 /* ./../lib/standard//collection//array.nit:23 */
699 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4])!=NIT_NULL
);
700 if (UNTAG_Bool(REGB1
)) {
702 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
704 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[4]);
705 /* ./../lib/standard//kernel.nit:212 */
706 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
707 /* ./../lib/standard//collection//array.nit:237 */
708 if (UNTAG_Bool(REGB1
)) {
709 /* ./../lib/standard//collection//array.nit:238 */
710 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
711 if (UNTAG_Bool(REGB1
)) {
712 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
714 /* ./../lib/standard//collection//array.nit:654 */
715 fra
.me
.REG
[6] = ((Nit_NativeArray
)fra
.me
.REG
[5])->val
[UNTAG_Int(REGB0
)];
716 /* ./metamodel//genericity.nit:140 */
717 fra
.me
.REG
[6] = CALL_static_type___MMType___for_module(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[1]);
718 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
719 /* ./../lib/standard//collection//array.nit:239 */
721 /* ./../lib/standard//kernel.nit:215 */
722 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
723 /* ./../lib/standard//collection//array.nit:239 */
726 /* ./../lib/standard//collection//array.nit:237 */
731 /* ./metamodel//genericity.nit:142 */
732 REGB0
= TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra
.me
.REG
[0])!=NIT_NULL
);
733 if (UNTAG_Bool(REGB0
)) {
735 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_genericity
, 142);
737 fra
.me
.REG
[0] = ATTR_static_type___MMTypeClass____local_class(fra
.me
.REG
[0]);
738 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMLocalClass___for_module(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
739 /* ./metamodel//genericity.nit:143 */
740 fra
.me
.REG
[3] = CALL_genericity___MMLocalClass___get_instantiate_type(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
741 fra
.me
.REG
[2] = fra
.me
.REG
[3];
743 /* ./metamodel//genericity.nit:145 */
746 stack_frame_head
= fra
.me
.prev
;
747 return fra
.me
.REG
[2];
749 val_t
genericity___MMTypeGeneric___adapt_to(val_t p0
, val_t p1
){
750 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
754 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
755 fra
.me
.file
= LOCATE_genericity
;
757 fra
.me
.meth
= LOCATE_genericity___MMTypeGeneric___adapt_to
;
758 fra
.me
.has_broke
= 0;
760 fra
.me
.REG
[0] = NIT_NULL
;
761 fra
.me
.REG
[1] = NIT_NULL
;
762 fra
.me
.REG
[2] = NIT_NULL
;
763 fra
.me
.REG
[3] = NIT_NULL
;
764 fra
.me
.REG
[4] = NIT_NULL
;
765 fra
.me
.REG
[5] = NIT_NULL
;
768 /* ./metamodel//genericity.nit:150 */
769 fra
.me
.REG
[2] = NEW_Array_array___Array___init();
770 /* ./metamodel//genericity.nit:151 */
771 REGB0
= TAG_Bool(ATTR_genericity___MMTypeGeneric____params(fra
.me
.REG
[0])!=NIT_NULL
);
772 if (UNTAG_Bool(REGB0
)) {
774 nit_abort("Uninitialized attribute %s", "_params", LOCATE_genericity
, 151);
776 fra
.me
.REG
[3] = ATTR_genericity___MMTypeGeneric____params(fra
.me
.REG
[0]);
777 /* ./../lib/standard//collection//array.nit:234 */
779 /* ./../lib/standard//collection//array.nit:235 */
780 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
781 if (UNTAG_Bool(REGB1
)) {
783 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 235);
785 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
786 /* ./../lib/standard//collection//array.nit:236 */
787 fra
.me
.REG
[4] = ATTR_array___Array____items(fra
.me
.REG
[3]);
788 /* ./../lib/standard//collection//array.nit:237 */
790 /* ./../lib/standard//collection//array.nit:23 */
791 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
792 if (UNTAG_Bool(REGB1
)) {
794 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
796 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
797 /* ./../lib/standard//kernel.nit:212 */
798 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
799 /* ./../lib/standard//collection//array.nit:237 */
800 if (UNTAG_Bool(REGB1
)) {
801 /* ./../lib/standard//collection//array.nit:238 */
802 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
803 if (UNTAG_Bool(REGB1
)) {
804 nit_abort("Reciever is null", NULL
, LOCATE_array
, 238);
806 /* ./../lib/standard//collection//array.nit:654 */
807 fra
.me
.REG
[5] = ((Nit_NativeArray
)fra
.me
.REG
[4])->val
[UNTAG_Int(REGB0
)];
808 /* ./metamodel//genericity.nit:152 */
809 fra
.me
.REG
[5] = CALL_static_type___MMType___adapt_to(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
810 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
811 /* ./../lib/standard//collection//array.nit:239 */
813 /* ./../lib/standard//kernel.nit:215 */
814 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
815 /* ./../lib/standard//collection//array.nit:239 */
818 /* ./../lib/standard//collection//array.nit:237 */
823 /* ./metamodel//genericity.nit:154 */
824 REGB0
= TAG_Bool(ATTR_static_type___MMTypeClass____local_class(fra
.me
.REG
[0])!=NIT_NULL
);
825 if (UNTAG_Bool(REGB0
)) {
827 nit_abort("Uninitialized attribute %s", "_local_class", LOCATE_genericity
, 154);
829 fra
.me
.REG
[0] = ATTR_static_type___MMTypeClass____local_class(fra
.me
.REG
[0]);
830 fra
.me
.REG
[2] = CALL_genericity___MMLocalClass___get_instantiate_type(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
831 /* ./metamodel//genericity.nit:155 */
834 stack_frame_head
= fra
.me
.prev
;
835 return fra
.me
.REG
[2];
837 val_t
genericity___MMTypeGeneric___params_equals(val_t p0
, val_t p1
){
838 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
847 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
848 fra
.me
.file
= LOCATE_genericity
;
850 fra
.me
.meth
= LOCATE_genericity___MMTypeGeneric___params_equals
;
851 fra
.me
.has_broke
= 0;
853 fra
.me
.REG
[0] = NIT_NULL
;
854 fra
.me
.REG
[1] = NIT_NULL
;
855 fra
.me
.REG
[2] = NIT_NULL
;
856 fra
.me
.REG
[3] = NIT_NULL
;
859 /* ./../lib/standard//collection//array.nit:23 */
860 REGB0
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
861 if (UNTAG_Bool(REGB0
)) {
863 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
865 REGB0
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[1]);
866 /* ./metamodel//genericity.nit:160 */
867 REGB1
= TAG_Bool(ATTR_genericity___MMTypeGeneric____params(fra
.me
.REG
[0])!=NIT_NULL
);
868 if (UNTAG_Bool(REGB1
)) {
870 nit_abort("Uninitialized attribute %s", "_params", LOCATE_genericity
, 160);
872 fra
.me
.REG
[2] = ATTR_genericity___MMTypeGeneric____params(fra
.me
.REG
[0]);
873 /* ./../lib/standard//collection//array.nit:23 */
874 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
875 if (UNTAG_Bool(REGB1
)) {
877 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
879 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
880 /* ./metamodel//genericity.nit:160 */
881 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
882 if (UNTAG_Bool(REGB2
)) {
884 /* ./../lib/standard//kernel.nit:207 */
885 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
886 /* ./metamodel//genericity.nit:160 */
889 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
890 if (UNTAG_Bool(REGB2
)) {
891 /* ./metamodel//genericity.nit:161 */
892 REGB2
= TAG_Bool(false);
895 /* ./metamodel//genericity.nit:163 */
897 /* ./../lib/standard//collection//array.nit:23 */
898 REGB0
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[1])!=NIT_NULL
);
899 if (UNTAG_Bool(REGB0
)) {
901 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
903 REGB0
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[1]);
904 /* ./../lib/standard//kernel.nit:332 */
906 /* ./../lib/standard//kernel.nit:212 */
907 REGB3
= TAG_Bool(UNTAG_Int(REGB1
)<UNTAG_Int(REGB0
));
908 /* ./../lib/standard//kernel.nit:332 */
909 if (UNTAG_Bool(REGB3
)) {
910 /* ./metamodel//genericity.nit:163 */
912 /* ./metamodel//genericity.nit:164 */
913 REGB4
= TAG_Bool(ATTR_genericity___MMTypeGeneric____params(fra
.me
.REG
[0])!=NIT_NULL
);
914 if (UNTAG_Bool(REGB4
)) {
916 nit_abort("Uninitialized attribute %s", "_params", LOCATE_genericity
, 164);
918 fra
.me
.REG
[2] = ATTR_genericity___MMTypeGeneric____params(fra
.me
.REG
[0]);
919 /* ./../lib/standard//collection//array.nit:243 */
921 /* ./../lib/standard//collection//array.nit:245 */
923 /* ./../lib/standard//kernel.nit:213 */
924 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)>=UNTAG_Int(REGB5
));
925 /* ./../lib/standard//collection//array.nit:245 */
926 if (UNTAG_Bool(REGB5
)) {
927 REGB5
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
928 if (UNTAG_Bool(REGB5
)) {
930 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
932 REGB5
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
933 /* ./../lib/standard//kernel.nit:212 */
934 REGB5
= TAG_Bool(UNTAG_Int(REGB4
)<UNTAG_Int(REGB5
));
936 /* ./../lib/standard//collection//array.nit:245 */
937 REGB6
= TAG_Bool(false);
940 if (UNTAG_Bool(REGB5
)) {
942 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
944 /* ./../lib/standard//collection//array.nit:246 */
945 fra
.me
.REG
[2] = ATTR_array___Array____items(fra
.me
.REG
[2]);
946 REGB5
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
947 if (UNTAG_Bool(REGB5
)) {
948 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
950 /* ./../lib/standard//collection//array.nit:654 */
951 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB4
)];
952 /* ./../lib/standard//collection//array.nit:246 */
955 /* ./../lib/standard//collection//array.nit:243 */
956 fra
.me
.REG
[3] = fra
.me
.REG
[1];
957 /* ./../lib/standard//collection//array.nit:245 */
959 /* ./../lib/standard//kernel.nit:213 */
960 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
961 /* ./../lib/standard//collection//array.nit:245 */
962 if (UNTAG_Bool(REGB4
)) {
963 REGB4
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
964 if (UNTAG_Bool(REGB4
)) {
966 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
968 REGB4
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
969 /* ./../lib/standard//kernel.nit:212 */
970 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
972 /* ./../lib/standard//collection//array.nit:245 */
973 REGB5
= TAG_Bool(false);
976 if (UNTAG_Bool(REGB4
)) {
978 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
980 /* ./../lib/standard//collection//array.nit:246 */
981 fra
.me
.REG
[3] = ATTR_array___Array____items(fra
.me
.REG
[3]);
982 REGB4
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
983 if (UNTAG_Bool(REGB4
)) {
984 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
986 /* ./../lib/standard//collection//array.nit:654 */
987 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB3
)];
988 /* ./../lib/standard//collection//array.nit:246 */
991 /* ./metamodel//genericity.nit:164 */
992 REGB3
= TAG_Bool(IS_EQUAL_NN(fra
.me
.REG
[2],fra
.me
.REG
[3]));
993 if (UNTAG_Bool(REGB3
)) {
995 REGB4
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
996 if (UNTAG_Bool(REGB4
)) {
997 REGB4
= TAG_Bool(false);
1000 REGB4
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1004 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
1005 if (UNTAG_Bool(REGB3
)) {
1006 /* ./metamodel//genericity.nit:165 */
1007 REGB3
= TAG_Bool(false);
1011 /* ./../lib/standard//kernel.nit:334 */
1013 /* ./../lib/standard//kernel.nit:215 */
1014 REGB3
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB3
));
1015 /* ./../lib/standard//kernel.nit:334 */
1018 /* ./../lib/standard//kernel.nit:332 */
1023 /* ./metamodel//genericity.nit:168 */
1024 REGB1
= TAG_Bool(true);
1028 stack_frame_head
= fra
.me
.prev
;
1031 val_t
genericity___MMTypeGeneric___to_s(val_t p0
){
1032 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1035 static val_t once_value_1
; /* Once value */
1036 static val_t once_value_2
; /* Once value */
1037 static val_t once_value_3
; /* Once value */
1038 static val_t once_value_4
; /* Once value */
1039 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1040 fra
.me
.file
= LOCATE_genericity
;
1042 fra
.me
.meth
= LOCATE_genericity___MMTypeGeneric___to_s
;
1043 fra
.me
.has_broke
= 0;
1044 fra
.me
.REG_size
= 4;
1045 fra
.me
.REG
[0] = NIT_NULL
;
1046 fra
.me
.REG
[1] = NIT_NULL
;
1047 fra
.me
.REG
[2] = NIT_NULL
;
1048 fra
.me
.REG
[3] = NIT_NULL
;
1050 /* ./metamodel//genericity.nit:171 */
1051 fra
.me
.REG
[1] = fra
.me
.REG
[0];
1052 /* ./metamodel//genericity.nit:173 */
1054 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
1055 if (!once_value_1
) {
1056 fra
.me
.REG
[3] = BOX_NativeString("");
1058 fra
.me
.REG
[3] = NEW_String_string___String___with_native(fra
.me
.REG
[3], REGB0
);
1059 once_value_1
= fra
.me
.REG
[3];
1060 register_static_object(&once_value_1
);
1061 } else fra
.me
.REG
[3] = once_value_1
;
1062 fra
.me
.REG
[3] = fra
.me
.REG
[3];
1063 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1064 fra
.me
.REG
[0] = CALL_SUPER_genericity___MMTypeGeneric___to_s(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1065 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1066 if (!once_value_2
) {
1067 fra
.me
.REG
[0] = BOX_NativeString("[");
1069 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
1070 once_value_2
= fra
.me
.REG
[0];
1071 register_static_object(&once_value_2
);
1072 } else fra
.me
.REG
[0] = once_value_2
;
1073 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1074 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1075 REGB0
= TAG_Bool(ATTR_genericity___MMTypeGeneric____params(fra
.me
.REG
[1])!=NIT_NULL
);
1076 if (UNTAG_Bool(REGB0
)) {
1078 nit_abort("Uninitialized attribute %s", "_params", LOCATE_genericity
, 173);
1080 fra
.me
.REG
[1] = ATTR_genericity___MMTypeGeneric____params(fra
.me
.REG
[1]);
1081 if (!once_value_3
) {
1082 fra
.me
.REG
[0] = BOX_NativeString(", ");
1084 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
1085 once_value_3
= fra
.me
.REG
[0];
1086 register_static_object(&once_value_3
);
1087 } else fra
.me
.REG
[0] = once_value_3
;
1088 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1089 fra
.me
.REG
[0] = CALL_string___Collection___join(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1090 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1091 if (!once_value_4
) {
1092 fra
.me
.REG
[0] = BOX_NativeString("]");
1094 fra
.me
.REG
[0] = NEW_String_string___String___with_native(fra
.me
.REG
[0], REGB0
);
1095 once_value_4
= fra
.me
.REG
[0];
1096 register_static_object(&once_value_4
);
1097 } else fra
.me
.REG
[0] = once_value_4
;
1098 fra
.me
.REG
[0] = fra
.me
.REG
[0];
1099 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1100 fra
.me
.REG
[2] = CALL_string___Object___to_s(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1103 stack_frame_head
= fra
.me
.prev
;
1104 return fra
.me
.REG
[2];
1106 val_t
genericity___MMTypeGeneric___is_subtype(val_t p0
, val_t p1
){
1107 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1115 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1116 fra
.me
.file
= LOCATE_genericity
;
1118 fra
.me
.meth
= LOCATE_genericity___MMTypeGeneric___is_subtype
;
1119 fra
.me
.has_broke
= 0;
1120 fra
.me
.REG_size
= 4;
1121 fra
.me
.REG
[0] = NIT_NULL
;
1122 fra
.me
.REG
[1] = NIT_NULL
;
1123 fra
.me
.REG
[2] = NIT_NULL
;
1124 fra
.me
.REG
[3] = NIT_NULL
;
1127 /* ./metamodel//genericity.nit:180 */
1129 REGB1
= TAG_Bool(ATTR_genericity___MMTypeGeneric____params(fra
.me
.REG
[0])!=NIT_NULL
);
1130 if (UNTAG_Bool(REGB1
)) {
1132 nit_abort("Uninitialized attribute %s", "_params", LOCATE_genericity
, 180);
1134 fra
.me
.REG
[2] = ATTR_genericity___MMTypeGeneric____params(fra
.me
.REG
[0]);
1135 /* ./../lib/standard//collection//array.nit:23 */
1136 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
1137 if (UNTAG_Bool(REGB1
)) {
1139 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 23);
1141 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
1142 /* ./../lib/standard//kernel.nit:332 */
1144 /* ./../lib/standard//kernel.nit:212 */
1145 REGB2
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1146 /* ./../lib/standard//kernel.nit:332 */
1147 if (UNTAG_Bool(REGB2
)) {
1148 /* ./metamodel//genericity.nit:180 */
1150 /* ./metamodel//genericity.nit:182 */
1151 fra
.me
.REG
[2] = CALL_genericity___MMTypeGeneric___params(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1152 /* ./../lib/standard//collection//array.nit:243 */
1154 /* ./../lib/standard//collection//array.nit:245 */
1156 /* ./../lib/standard//kernel.nit:213 */
1157 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)>=UNTAG_Int(REGB4
));
1158 /* ./../lib/standard//collection//array.nit:245 */
1159 if (UNTAG_Bool(REGB4
)) {
1160 REGB4
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
1161 if (UNTAG_Bool(REGB4
)) {
1163 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
1165 REGB4
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
1166 /* ./../lib/standard//kernel.nit:212 */
1167 REGB4
= TAG_Bool(UNTAG_Int(REGB3
)<UNTAG_Int(REGB4
));
1169 /* ./../lib/standard//collection//array.nit:245 */
1170 REGB5
= TAG_Bool(false);
1173 if (UNTAG_Bool(REGB4
)) {
1175 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
1177 /* ./../lib/standard//collection//array.nit:246 */
1178 fra
.me
.REG
[2] = ATTR_array___Array____items(fra
.me
.REG
[2]);
1179 REGB4
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1180 if (UNTAG_Bool(REGB4
)) {
1181 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
1183 /* ./../lib/standard//collection//array.nit:654 */
1184 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB3
)];
1185 /* ./../lib/standard//collection//array.nit:246 */
1188 /* ./metamodel//genericity.nit:182 */
1189 REGB3
= TAG_Bool(ATTR_genericity___MMTypeGeneric____params(fra
.me
.REG
[0])!=NIT_NULL
);
1190 if (UNTAG_Bool(REGB3
)) {
1192 nit_abort("Uninitialized attribute %s", "_params", LOCATE_genericity
, 182);
1194 fra
.me
.REG
[3] = ATTR_genericity___MMTypeGeneric____params(fra
.me
.REG
[0]);
1195 /* ./../lib/standard//collection//array.nit:245 */
1197 /* ./../lib/standard//kernel.nit:213 */
1198 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)>=UNTAG_Int(REGB3
));
1199 /* ./../lib/standard//collection//array.nit:245 */
1200 if (UNTAG_Bool(REGB3
)) {
1201 REGB3
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3])!=NIT_NULL
);
1202 if (UNTAG_Bool(REGB3
)) {
1204 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
1206 REGB3
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[3]);
1207 /* ./../lib/standard//kernel.nit:212 */
1208 REGB3
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB3
));
1210 /* ./../lib/standard//collection//array.nit:245 */
1211 REGB4
= TAG_Bool(false);
1214 if (UNTAG_Bool(REGB3
)) {
1216 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
1218 /* ./../lib/standard//collection//array.nit:246 */
1219 fra
.me
.REG
[3] = ATTR_array___Array____items(fra
.me
.REG
[3]);
1220 REGB3
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1221 if (UNTAG_Bool(REGB3
)) {
1222 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
1224 /* ./../lib/standard//collection//array.nit:654 */
1225 fra
.me
.REG
[3] = ((Nit_NativeArray
)fra
.me
.REG
[3])->val
[UNTAG_Int(REGB2
)];
1226 /* ./../lib/standard//collection//array.nit:246 */
1229 /* ./metamodel//genericity.nit:182 */
1230 REGB2
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1231 if (UNTAG_Bool(REGB2
)) {
1232 nit_abort("Reciever is null", NULL
, LOCATE_genericity
, 182);
1234 REGB2
= CALL_static_type___MMType_____l(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1235 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
1236 if (UNTAG_Bool(REGB2
)) {
1237 /* ./metamodel//genericity.nit:183 */
1238 REGB2
= TAG_Bool(false);
1241 /* ./../lib/standard//kernel.nit:334 */
1243 /* ./../lib/standard//kernel.nit:215 */
1244 REGB3
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB3
));
1245 /* ./../lib/standard//kernel.nit:334 */
1248 /* ./../lib/standard//kernel.nit:332 */
1253 /* ./metamodel//genericity.nit:186 */
1254 REGB0
= TAG_Bool(true);
1258 stack_frame_head
= fra
.me
.prev
;
1261 void genericity___MMTypeGeneric___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
1262 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_MMTypeGeneric
].i
;
1263 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1265 if (init_table
[itpos0
]) return;
1266 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1267 fra
.me
.file
= LOCATE_genericity
;
1269 fra
.me
.meth
= LOCATE_genericity___MMTypeGeneric___init
;
1270 fra
.me
.has_broke
= 0;
1271 fra
.me
.REG_size
= 4;
1272 fra
.me
.REG
[0] = NIT_NULL
;
1273 fra
.me
.REG
[1] = NIT_NULL
;
1274 fra
.me
.REG
[2] = NIT_NULL
;
1275 fra
.me
.REG
[3] = NIT_NULL
;
1279 /* ./metamodel//genericity.nit:189 */
1280 fra
.me
.REG
[3] = fra
.me
.REG
[0];
1281 /* ./metamodel//genericity.nit:191 */
1282 CALL_static_type___MMTypeClass___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], init_table
);
1283 /* ./metamodel//genericity.nit:192 */
1284 ATTR_genericity___MMTypeGeneric____params(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
1285 stack_frame_head
= fra
.me
.prev
;
1286 init_table
[itpos0
] = 1;
1289 val_t
genericity___MMTypeFormalParameter___def_class(val_t p0
){
1290 struct {struct stack_frame_t me
;} fra
;
1293 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1294 fra
.me
.file
= LOCATE_genericity
;
1296 fra
.me
.meth
= LOCATE_genericity___MMTypeFormalParameter___def_class
;
1297 fra
.me
.has_broke
= 0;
1298 fra
.me
.REG_size
= 1;
1299 fra
.me
.REG
[0] = NIT_NULL
;
1301 /* ./metamodel//genericity.nit:198 */
1302 REGB0
= TAG_Bool(ATTR_genericity___MMTypeFormalParameter____def_class(fra
.me
.REG
[0])!=NIT_NULL
);
1303 if (UNTAG_Bool(REGB0
)) {
1305 nit_abort("Uninitialized attribute %s", "_def_class", LOCATE_genericity
, 198);
1307 fra
.me
.REG
[0] = ATTR_genericity___MMTypeFormalParameter____def_class(fra
.me
.REG
[0]);
1308 stack_frame_head
= fra
.me
.prev
;
1309 return fra
.me
.REG
[0];
1311 val_t
genericity___MMTypeFormalParameter___position(val_t p0
){
1312 struct {struct stack_frame_t me
;} fra
;
1315 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1316 fra
.me
.file
= LOCATE_genericity
;
1318 fra
.me
.meth
= LOCATE_genericity___MMTypeFormalParameter___position
;
1319 fra
.me
.has_broke
= 0;
1320 fra
.me
.REG_size
= 1;
1321 fra
.me
.REG
[0] = NIT_NULL
;
1323 /* ./metamodel//genericity.nit:201 */
1324 REGB0
= TAG_Bool(ATTR_genericity___MMTypeFormalParameter____position(fra
.me
.REG
[0])!=NIT_NULL
);
1325 if (UNTAG_Bool(REGB0
)) {
1327 nit_abort("Uninitialized attribute %s", "_position", LOCATE_genericity
, 201);
1329 REGB0
= ATTR_genericity___MMTypeFormalParameter____position(fra
.me
.REG
[0]);
1330 stack_frame_head
= fra
.me
.prev
;
1333 val_t
genericity___MMTypeFormalParameter___mmmodule(val_t p0
){
1334 struct {struct stack_frame_t me
;} fra
;
1337 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1338 fra
.me
.file
= LOCATE_genericity
;
1340 fra
.me
.meth
= LOCATE_genericity___MMTypeFormalParameter___mmmodule
;
1341 fra
.me
.has_broke
= 0;
1342 fra
.me
.REG_size
= 1;
1343 fra
.me
.REG
[0] = NIT_NULL
;
1345 /* ./metamodel//genericity.nit:204 */
1346 REGB0
= TAG_Bool(ATTR_genericity___MMTypeFormalParameter____def_class(fra
.me
.REG
[0])!=NIT_NULL
);
1347 if (UNTAG_Bool(REGB0
)) {
1349 nit_abort("Uninitialized attribute %s", "_def_class", LOCATE_genericity
, 204);
1351 fra
.me
.REG
[0] = ATTR_genericity___MMTypeFormalParameter____def_class(fra
.me
.REG
[0]);
1352 fra
.me
.REG
[0] = CALL_abstractmetamodel___MMLocalClass___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1355 stack_frame_head
= fra
.me
.prev
;
1356 return fra
.me
.REG
[0];
1358 val_t
genericity___MMTypeFormalParameter___for_module(val_t p0
, val_t p1
){
1359 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1363 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1364 fra
.me
.file
= LOCATE_genericity
;
1366 fra
.me
.meth
= LOCATE_genericity___MMTypeFormalParameter___for_module
;
1367 fra
.me
.has_broke
= 0;
1368 fra
.me
.REG_size
= 4;
1369 fra
.me
.REG
[0] = NIT_NULL
;
1370 fra
.me
.REG
[1] = NIT_NULL
;
1371 fra
.me
.REG
[2] = NIT_NULL
;
1372 fra
.me
.REG
[3] = NIT_NULL
;
1375 /* ./metamodel//genericity.nit:208 */
1376 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1377 /* ./metamodel//genericity.nit:209 */
1378 fra
.me
.REG
[3] = CALL_static_type___MMType___mmmodule(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1379 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[3],fra
.me
.REG
[1]));
1380 if (UNTAG_Bool(REGB0
)) {
1382 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
1385 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1386 if (UNTAG_Bool(REGB0
)) {
1387 /* ./metamodel//genericity.nit:210 */
1388 REGB0
= TAG_Bool(ATTR_genericity___MMTypeFormalParameter____def_class(fra
.me
.REG
[0])!=NIT_NULL
);
1389 if (UNTAG_Bool(REGB0
)) {
1391 nit_abort("Uninitialized attribute %s", "_def_class", LOCATE_genericity
, 210);
1393 fra
.me
.REG
[3] = ATTR_genericity___MMTypeFormalParameter____def_class(fra
.me
.REG
[0]);
1394 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMLocalClass___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1395 fra
.me
.REG
[3] = CALL_abstractmetamodel___MMModule_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1396 REGB0
= CALL_genericity___MMTypeFormalParameter___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1397 fra
.me
.REG
[3] = CALL_genericity___MMLocalClass___get_formal(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
1398 fra
.me
.REG
[2] = fra
.me
.REG
[3];
1400 /* ./metamodel//genericity.nit:212 */
1403 stack_frame_head
= fra
.me
.prev
;
1404 return fra
.me
.REG
[2];
1406 val_t
genericity___MMTypeFormalParameter___upcast_for(val_t p0
, val_t p1
){
1407 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1410 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1411 fra
.me
.file
= LOCATE_genericity
;
1413 fra
.me
.meth
= LOCATE_genericity___MMTypeFormalParameter___upcast_for
;
1414 fra
.me
.has_broke
= 0;
1415 fra
.me
.REG_size
= 2;
1416 fra
.me
.REG
[0] = NIT_NULL
;
1417 fra
.me
.REG
[1] = NIT_NULL
;
1420 /* ./metamodel//genericity.nit:215 */
1421 fra
.me
.REG
[0] = ATTR_type_formal___MMTypeFormal____bound(fra
.me
.REG
[0]);
1422 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1423 if (UNTAG_Bool(REGB0
)) {
1424 nit_abort("Reciever is null", NULL
, LOCATE_genericity
, 215);
1426 fra
.me
.REG
[1] = CALL_static_type___MMType___upcast_for(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1429 stack_frame_head
= fra
.me
.prev
;
1430 return fra
.me
.REG
[1];
1432 void genericity___MMTypeFormalParameter___bound__eq(val_t p0
, val_t p1
){
1433 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1437 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1438 fra
.me
.file
= LOCATE_genericity
;
1440 fra
.me
.meth
= LOCATE_genericity___MMTypeFormalParameter___bound__eq
;
1441 fra
.me
.has_broke
= 0;
1442 fra
.me
.REG_size
= 3;
1443 fra
.me
.REG
[0] = NIT_NULL
;
1444 fra
.me
.REG
[1] = NIT_NULL
;
1445 fra
.me
.REG
[2] = NIT_NULL
;
1448 /* ./metamodel//genericity.nit:219 */
1449 fra
.me
.REG
[2] = ATTR_type_formal___MMTypeFormal____bound(fra
.me
.REG
[0]);
1450 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1451 if (UNTAG_Bool(REGB0
)) {
1453 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1454 if (UNTAG_Bool(REGB1
)) {
1455 REGB1
= TAG_Bool(false);
1458 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1462 if (UNTAG_Bool(REGB0
)) {
1464 nit_abort("Assert failed", NULL
, LOCATE_genericity
, 219);
1466 /* ./metamodel//genericity.nit:220 */
1467 ATTR_type_formal___MMTypeFormal____bound(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1468 stack_frame_head
= fra
.me
.prev
;
1471 val_t
genericity___MMTypeFormalParameter___adapt_to(val_t p0
, val_t p1
){
1472 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1477 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1478 fra
.me
.file
= LOCATE_genericity
;
1480 fra
.me
.meth
= LOCATE_genericity___MMTypeFormalParameter___adapt_to
;
1481 fra
.me
.has_broke
= 0;
1482 fra
.me
.REG_size
= 3;
1483 fra
.me
.REG
[0] = NIT_NULL
;
1484 fra
.me
.REG
[1] = NIT_NULL
;
1485 fra
.me
.REG
[2] = NIT_NULL
;
1488 /* ./metamodel//genericity.nit:225 */
1489 fra
.me
.REG
[2] = CALL_type_formal___MMType___direct_type(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1490 fra
.me
.REG
[1] = fra
.me
.REG
[2];
1491 /* ./metamodel//genericity.nit:226 */
1492 fra
.me
.REG
[2] = CALL_genericity___MMTypeFormalParameter___def_class(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1493 fra
.me
.REG
[2] = CALL_static_type___MMType___upcast_for(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1494 /* ./metamodel//genericity.nit:231 */
1495 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_MMTypeGeneric
, ID_MMTypeGeneric
)) /*cast MMTypeGeneric*/;
1496 if (UNTAG_Bool(REGB0
)) {
1498 nit_abort("Assert failed", NULL
, LOCATE_genericity
, 231);
1500 /* ./metamodel//genericity.nit:232 */
1501 fra
.me
.REG
[2] = CALL_genericity___MMTypeGeneric___params(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1502 REGB0
= CALL_genericity___MMTypeFormalParameter___position(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1503 /* ./../lib/standard//collection//array.nit:245 */
1505 /* ./../lib/standard//kernel.nit:213 */
1506 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)>=UNTAG_Int(REGB1
));
1507 /* ./../lib/standard//collection//array.nit:245 */
1508 if (UNTAG_Bool(REGB1
)) {
1509 REGB1
= TAG_Bool(ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2])!=NIT_NULL
);
1510 if (UNTAG_Bool(REGB1
)) {
1512 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array
, 245);
1514 REGB1
= ATTR_array___AbstractArrayRead____length(fra
.me
.REG
[2]);
1515 /* ./../lib/standard//kernel.nit:212 */
1516 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
1518 /* ./../lib/standard//collection//array.nit:245 */
1519 REGB2
= TAG_Bool(false);
1522 if (UNTAG_Bool(REGB1
)) {
1524 nit_abort("Assert %s failed", "'index'", LOCATE_array
, 245);
1526 /* ./../lib/standard//collection//array.nit:246 */
1527 fra
.me
.REG
[2] = ATTR_array___Array____items(fra
.me
.REG
[2]);
1528 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1529 if (UNTAG_Bool(REGB1
)) {
1530 nit_abort("Reciever is null", NULL
, LOCATE_array
, 246);
1532 /* ./../lib/standard//collection//array.nit:654 */
1533 fra
.me
.REG
[2] = ((Nit_NativeArray
)fra
.me
.REG
[2])->val
[UNTAG_Int(REGB0
)];
1534 /* ./../lib/standard//collection//array.nit:246 */
1537 /* ./metamodel//genericity.nit:233 */
1540 stack_frame_head
= fra
.me
.prev
;
1541 return fra
.me
.REG
[2];
1543 void genericity___MMTypeFormalParameter___with_bound(val_t p0
, val_t p1
, val_t p2
, val_t p3
, val_t p4
, int* init_table
){
1544 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_MMTypeFormalParameter
].i
;
1545 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1548 if (init_table
[itpos1
]) return;
1549 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1550 fra
.me
.file
= LOCATE_genericity
;
1552 fra
.me
.meth
= LOCATE_genericity___MMTypeFormalParameter___with_bound
;
1553 fra
.me
.has_broke
= 0;
1554 fra
.me
.REG_size
= 4;
1555 fra
.me
.REG
[0] = NIT_NULL
;
1556 fra
.me
.REG
[1] = NIT_NULL
;
1557 fra
.me
.REG
[2] = NIT_NULL
;
1558 fra
.me
.REG
[3] = NIT_NULL
;
1564 /* ./metamodel//genericity.nit:238 */
1565 CALL_genericity___MMTypeFormalParameter___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], REGB0
, fra
.me
.REG
[2], init_table
);
1566 /* ./metamodel//genericity.nit:239 */
1567 ATTR_type_formal___MMTypeFormal____bound(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
1568 stack_frame_head
= fra
.me
.prev
;
1569 init_table
[itpos1
] = 1;
1572 void genericity___MMTypeFormalParameter___init(val_t p0
, val_t p1
, val_t p2
, val_t p3
, int* init_table
){
1573 int itpos2
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_MMTypeFormalParameter
].i
;
1574 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1577 if (init_table
[itpos2
]) return;
1578 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1579 fra
.me
.file
= LOCATE_genericity
;
1581 fra
.me
.meth
= LOCATE_genericity___MMTypeFormalParameter___init
;
1582 fra
.me
.has_broke
= 0;
1583 fra
.me
.REG_size
= 4;
1584 fra
.me
.REG
[0] = NIT_NULL
;
1585 fra
.me
.REG
[1] = NIT_NULL
;
1586 fra
.me
.REG
[2] = NIT_NULL
;
1587 fra
.me
.REG
[3] = NIT_NULL
;
1592 /* ./metamodel//genericity.nit:242 */
1593 fra
.me
.REG
[3] = fra
.me
.REG
[0];
1594 /* ./metamodel//genericity.nit:244 */
1595 CALL_type_formal___MMTypeFormal___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], NIT_NULL
, init_table
);
1596 /* ./metamodel//genericity.nit:245 */
1597 ATTR_genericity___MMTypeFormalParameter____position(fra
.me
.REG
[3]) = REGB0
;
1598 /* ./metamodel//genericity.nit:246 */
1599 ATTR_genericity___MMTypeFormalParameter____def_class(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
1600 stack_frame_head
= fra
.me
.prev
;
1601 init_table
[itpos2
] = 1;
1604 val_t
genericity___MMTypeNone___is_generic(val_t p0
){
1605 struct {struct stack_frame_t me
;} fra
;
1608 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1609 fra
.me
.file
= LOCATE_genericity
;
1611 fra
.me
.meth
= LOCATE_genericity___MMTypeNone___is_generic
;
1612 fra
.me
.has_broke
= 0;
1613 fra
.me
.REG_size
= 1;
1614 fra
.me
.REG
[0] = NIT_NULL
;
1616 /* ./metamodel//genericity.nit:251 */
1617 REGB0
= TAG_Bool(false);
1620 stack_frame_head
= fra
.me
.prev
;
1623 val_t
genericity___MMTypeNone___for_module(val_t p0
, val_t p1
){
1624 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1626 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1627 fra
.me
.file
= LOCATE_genericity
;
1629 fra
.me
.meth
= LOCATE_genericity___MMTypeNone___for_module
;
1630 fra
.me
.has_broke
= 0;
1631 fra
.me
.REG_size
= 2;
1632 fra
.me
.REG
[0] = NIT_NULL
;
1633 fra
.me
.REG
[1] = NIT_NULL
;
1636 /* ./metamodel//genericity.nit:252 */
1639 stack_frame_head
= fra
.me
.prev
;
1640 return fra
.me
.REG
[0];
1642 val_t
genericity___MMTypeNone___adapt_to(val_t p0
, val_t p1
){
1643 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1645 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1646 fra
.me
.file
= LOCATE_genericity
;
1648 fra
.me
.meth
= LOCATE_genericity___MMTypeNone___adapt_to
;
1649 fra
.me
.has_broke
= 0;
1650 fra
.me
.REG_size
= 2;
1651 fra
.me
.REG
[0] = NIT_NULL
;
1652 fra
.me
.REG
[1] = NIT_NULL
;
1655 /* ./metamodel//genericity.nit:253 */
1658 stack_frame_head
= fra
.me
.prev
;
1659 return fra
.me
.REG
[0];