1 #include "range.sep.0.h"
2 /* method range#Range#first for (self: Range[Discrete]): Discrete */
3 val
* range__Range__first(val
* self
) {
4 val
* var
/* : Discrete */;
5 val
* var1
/* : Discrete */;
6 var1
= self
->attrs
[COLOR_range__Range___first
].val
; /* _first on <self:Range[Discrete]> */
8 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _first", "lib/standard/collection/range.nit", 22);
15 /* method range#Range#first for (self: Object): nullable Object */
16 val
* VIRTUAL_range__Range__first(val
* self
) {
17 val
* var
/* : nullable Object */;
18 val
* var1
/* : Discrete */;
19 var1
= range__Range__first(self
);
24 /* method range#Range#last for (self: Range[Discrete]): Discrete */
25 val
* range__Range__last(val
* self
) {
26 val
* var
/* : Discrete */;
27 val
* var1
/* : Discrete */;
28 var1
= self
->attrs
[COLOR_range__Range___last
].val
; /* _last on <self:Range[Discrete]> */
30 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _last", "lib/standard/collection/range.nit", 24);
37 /* method range#Range#last for (self: Object): Discrete */
38 val
* VIRTUAL_range__Range__last(val
* self
) {
39 val
* var
/* : Discrete */;
40 val
* var1
/* : Discrete */;
41 var1
= range__Range__last(self
);
46 /* method range#Range#after for (self: Range[Discrete]): Discrete */
47 val
* range__Range__after(val
* self
) {
48 val
* var
/* : Discrete */;
49 val
* var1
/* : Discrete */;
50 var1
= self
->attrs
[COLOR_range__Range___after
].val
; /* _after on <self:Range[Discrete]> */
52 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _after", "lib/standard/collection/range.nit", 27);
59 /* method range#Range#after for (self: Object): Discrete */
60 val
* VIRTUAL_range__Range__after(val
* self
) {
61 val
* var
/* : Discrete */;
62 val
* var1
/* : Discrete */;
63 var1
= range__Range__after(self
);
68 /* method range#Range#has for (self: Range[Discrete], Discrete): Bool */
69 short int range__Range__has(val
* self
, val
* p0
) {
70 short int var
/* : Bool */;
71 short int var1
/* : Bool */;
74 const struct type
* type_struct
;
75 val
* var_item
/* var item: Discrete */;
76 short int var2
/* : Bool */;
77 val
* var3
/* : Discrete */;
78 short int var4
/* : Bool */;
79 short int var_
/* var : Bool */;
80 val
* var5
/* : Discrete */;
81 short int var6
/* : Bool */;
82 /* Covariant cast for argument 0 (item) <p0:Discrete> isa Collection#0 */
83 /* <p0:Discrete> isa Collection#0 */
84 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Collection_FT0
];
85 cltype
= type_struct
->color
;
86 idtype
= type_struct
->id
;
87 if(cltype
>= p0
->type
->table_size
) {
90 var1
= p0
->type
->type_table
[cltype
] == idtype
;
93 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 30);
97 var3
= self
->attrs
[COLOR_range__Range___first
].val
; /* _first on <self:Range[Discrete]> */
99 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _first", "lib/standard/collection/range.nit", 30);
102 var4
= ((short int (*)(val
*, val
*))(var_item
->class->vft
[COLOR_kernel__Comparable___62d_61d
]))(var_item
, var3
) /* >= on <var_item:Discrete>*/;
105 var5
= self
->attrs
[COLOR_range__Range___last
].val
; /* _last on <self:Range[Discrete]> */
107 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _last", "lib/standard/collection/range.nit", 30);
110 var6
= ((short int (*)(val
*, val
*))(var_item
->class->vft
[COLOR_kernel__Comparable___60d_61d
]))(var_item
, var5
) /* <= on <var_item:Discrete>*/;
120 /* method range#Range#has for (self: Object, nullable Object): Bool */
121 short int VIRTUAL_range__Range__has(val
* self
, val
* p0
) {
122 short int var
/* : Bool */;
123 short int var1
/* : Bool */;
124 var1
= range__Range__has(self
, p0
);
129 /* method range#Range#has_only for (self: Range[Discrete], Discrete): Bool */
130 short int range__Range__has_only(val
* self
, val
* p0
) {
131 short int var
/* : Bool */;
132 short int var1
/* : Bool */;
135 const struct type
* type_struct
;
136 val
* var_item
/* var item: Discrete */;
137 short int var2
/* : Bool */;
138 short int var3
/* : Bool */;
139 val
* var4
/* : Discrete */;
140 short int var5
/* : Bool */;
141 short int var_
/* var : Bool */;
142 val
* var6
/* : Discrete */;
143 short int var7
/* : Bool */;
144 short int var_8
/* var : Bool */;
145 short int var9
/* : Bool */;
146 /* Covariant cast for argument 0 (item) <p0:Discrete> isa Collection#0 */
147 /* <p0:Discrete> isa Collection#0 */
148 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Collection_FT0
];
149 cltype
= type_struct
->color
;
150 idtype
= type_struct
->id
;
151 if(cltype
>= p0
->type
->table_size
) {
154 var1
= p0
->type
->type_table
[cltype
] == idtype
;
157 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 32);
161 var4
= self
->attrs
[COLOR_range__Range___first
].val
; /* _first on <self:Range[Discrete]> */
163 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _first", "lib/standard/collection/range.nit", 32);
166 var5
= ((short int (*)(val
*, val
*))(var4
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var4
, var_item
) /* == on <var4:Discrete>*/;
169 var6
= self
->attrs
[COLOR_range__Range___last
].val
; /* _last on <self:Range[Discrete]> */
171 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _last", "lib/standard/collection/range.nit", 32);
174 var7
= ((short int (*)(val
*, val
*))(var_item
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_item
, var6
) /* == on <var_item:Discrete>*/;
183 var9
= ((short int (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(self
) /* is_empty on <self:Range[Discrete]>*/;
191 /* method range#Range#has_only for (self: Object, nullable Object): Bool */
192 short int VIRTUAL_range__Range__has_only(val
* self
, val
* p0
) {
193 short int var
/* : Bool */;
194 short int var1
/* : Bool */;
195 var1
= range__Range__has_only(self
, p0
);
200 /* method range#Range#count for (self: Range[Discrete], Discrete): Int */
201 long range__Range__count(val
* self
, val
* p0
) {
202 long var
/* : Int */;
203 short int var1
/* : Bool */;
206 const struct type
* type_struct
;
207 val
* var_item
/* var item: Discrete */;
208 short int var2
/* : Bool */;
209 long var3
/* : Int */;
210 long var4
/* : Int */;
211 /* Covariant cast for argument 0 (item) <p0:Discrete> isa Collection#0 */
212 /* <p0:Discrete> isa Collection#0 */
213 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Collection_FT0
];
214 cltype
= type_struct
->color
;
215 idtype
= type_struct
->id
;
216 if(cltype
>= p0
->type
->table_size
) {
219 var1
= p0
->type
->type_table
[cltype
] == idtype
;
222 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 34);
226 var2
= ((short int (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__has
]))(self
, var_item
) /* has on <self:Range[Discrete]>*/;
239 /* method range#Range#count for (self: Object, nullable Object): Int */
240 long VIRTUAL_range__Range__count(val
* self
, val
* p0
) {
241 long var
/* : Int */;
242 long var1
/* : Int */;
243 var1
= range__Range__count(self
, p0
);
248 /* method range#Range#iterator for (self: Range[Discrete]): Iterator[Discrete] */
249 val
* range__Range__iterator(val
* self
) {
250 val
* var
/* : Iterator[Discrete] */;
251 val
* var1
/* : IteratorRange[Discrete] */;
252 var1
= NEW_range__IteratorRange(self
->type
->resolution_table
->types
[COLOR_range__IteratorRangerange__Range_FT0
]);
253 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_range__IteratorRange__init
]))(var1
, self
) /* init on <var1:IteratorRange[Discrete]>*/;
254 CHECK_NEW_range__IteratorRange(var1
);
260 /* method range#Range#iterator for (self: Object): Iterator[nullable Object] */
261 val
* VIRTUAL_range__Range__iterator(val
* self
) {
262 val
* var
/* : Iterator[nullable Object] */;
263 val
* var1
/* : Iterator[Discrete] */;
264 var1
= range__Range__iterator(self
);
269 /* method range#Range#iterate for (self: Range[Discrete]) */
270 void range__Range__iterate(val
* self
) {
271 val
* var
/* : Discrete */;
272 val
* var_c
/* var c: Discrete */;
273 val
* var1
/* : Discrete */;
274 val
* var_l
/* var l: Discrete */;
275 short int var2
/* : Bool */;
276 val
* var3
/* : Discrete */;
277 short int var4
/* : Bool */;
280 const struct type
* type_struct
;
281 var
= self
->attrs
[COLOR_range__Range___first
].val
; /* _first on <self:Range[Discrete]> */
283 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _first", "lib/standard/collection/range.nit", 48);
287 var1
= self
->attrs
[COLOR_range__Range___last
].val
; /* _last on <self:Range[Discrete]> */
289 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _last", "lib/standard/collection/range.nit", 49);
294 var2
= ((short int (*)(val
*, val
*))(var_c
->class->vft
[COLOR_kernel__Comparable___60d_61d
]))(var_c
, var_l
) /* <= on <var_c:Discrete>*/;
296 printf("NOT YET IMPLEMENTED AClosureCallExpr:lib/standard/collection/range.nit:51,4--10\n");
297 var3
= ((val
* (*)(val
*))(var_c
->class->vft
[COLOR_kernel__Discrete__succ
]))(var_c
) /* succ on <var_c:Discrete>*/;
298 /* <var3:Discrete> isa Range#0 */
299 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
300 cltype
= type_struct
->color
;
301 idtype
= type_struct
->id
;
302 if(cltype
>= var3
->type
->table_size
) {
305 var4
= var3
->type
->type_table
[cltype
] == idtype
;
308 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 52);
312 CONTINUE_label
: (void)0;
314 BREAK_label
: (void)0;
317 /* method range#Range#iterate for (self: Object) */
318 void VIRTUAL_range__Range__iterate(val
* self
) {
319 range__Range__iterate(self
);
322 /* method range#Range#length for (self: Range[Discrete]): Int */
323 long range__Range__length(val
* self
) {
324 long var
/* : Int */;
325 val
* var1
/* : Discrete */;
326 val
* var2
/* : Discrete */;
327 long var3
/* : Int */;
328 long var_nb
/* var nb: Int */;
329 long var4
/* : Int */;
330 short int var5
/* : Bool */;
331 short int var7
/* : Bool */;
334 short int var8
/* : Bool */;
335 long var9
/* : Int */;
336 var1
= self
->attrs
[COLOR_range__Range___first
].val
; /* _first on <self:Range[Discrete]> */
338 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _first", "lib/standard/collection/range.nit", 58);
341 var2
= self
->attrs
[COLOR_range__Range___after
].val
; /* _after on <self:Range[Discrete]> */
343 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _after", "lib/standard/collection/range.nit", 58);
346 var3
= ((long (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Discrete__distance
]))(var1
, var2
) /* distance on <var1:Discrete>*/;
349 { /* Inline kernel#Int#> (var_nb,var4) */
350 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
351 /* <var4:Int> isa OTHER */
352 var7
= 1; /* easy <var4:Int> isa OTHER*/
354 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
357 var8
= var_nb
> var4
;
373 /* method range#Range#length for (self: Object): Int */
374 long VIRTUAL_range__Range__length(val
* self
) {
375 long var
/* : Int */;
376 long var1
/* : Int */;
377 var1
= range__Range__length(self
);
382 /* method range#Range#is_empty for (self: Range[Discrete]): Bool */
383 short int range__Range__is_empty(val
* self
) {
384 short int var
/* : Bool */;
385 val
* var1
/* : Discrete */;
386 val
* var2
/* : Discrete */;
387 short int var3
/* : Bool */;
388 var1
= self
->attrs
[COLOR_range__Range___first
].val
; /* _first on <self:Range[Discrete]> */
390 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _first", "lib/standard/collection/range.nit", 66);
393 var2
= self
->attrs
[COLOR_range__Range___after
].val
; /* _after on <self:Range[Discrete]> */
395 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _after", "lib/standard/collection/range.nit", 66);
398 var3
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Comparable___62d_61d
]))(var1
, var2
) /* >= on <var1:Discrete>*/;
404 /* method range#Range#is_empty for (self: Object): Bool */
405 short int VIRTUAL_range__Range__is_empty(val
* self
) {
406 short int var
/* : Bool */;
407 short int var1
/* : Bool */;
408 var1
= range__Range__is_empty(self
);
413 /* method range#Range#init for (self: Range[Discrete], Discrete, Discrete) */
414 void range__Range__init(val
* self
, val
* p0
, val
* p1
) {
415 short int var
/* : Bool */;
418 const struct type
* type_struct
;
419 short int var1
/* : Bool */;
422 const struct type
* type_struct4
;
423 val
* var_from
/* var from: Discrete */;
424 val
* var_to
/* var to: Discrete */;
425 val
* var5
/* : Discrete */;
426 short int var6
/* : Bool */;
429 const struct type
* type_struct9
;
430 /* Covariant cast for argument 0 (from) <p0:Discrete> isa Range#0 */
431 /* <p0:Discrete> isa Range#0 */
432 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
433 cltype
= type_struct
->color
;
434 idtype
= type_struct
->id
;
435 if(cltype
>= p0
->type
->table_size
) {
438 var
= p0
->type
->type_table
[cltype
] == idtype
;
441 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 68);
444 /* Covariant cast for argument 1 (to) <p1:Discrete> isa Range#0 */
445 /* <p1:Discrete> isa Range#0 */
446 type_struct4
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
447 cltype2
= type_struct4
->color
;
448 idtype3
= type_struct4
->id
;
449 if(cltype2
>= p1
->type
->table_size
) {
452 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
455 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 68);
460 self
->attrs
[COLOR_range__Range___first
].val
= var_from
; /* _first on <self:Range[Discrete]> */
461 self
->attrs
[COLOR_range__Range___last
].val
= var_to
; /* _last on <self:Range[Discrete]> */
462 var5
= ((val
* (*)(val
*))(var_to
->class->vft
[COLOR_kernel__Discrete__succ
]))(var_to
) /* succ on <var_to:Discrete>*/;
463 /* <var5:Discrete> isa Range#0 */
464 type_struct9
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
465 cltype7
= type_struct9
->color
;
466 idtype8
= type_struct9
->id
;
467 if(cltype7
>= var5
->type
->table_size
) {
470 var6
= var5
->type
->type_table
[cltype7
] == idtype8
;
473 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 74);
476 self
->attrs
[COLOR_range__Range___after
].val
= var5
; /* _after on <self:Range[Discrete]> */
479 /* method range#Range#init for (self: Object, Discrete, Discrete) */
480 void VIRTUAL_range__Range__init(val
* self
, val
* p0
, val
* p1
) {
481 range__Range__init(self
, p0
, p1
);
484 /* method range#Range#without_last for (self: Range[Discrete], Discrete, Discrete) */
485 void range__Range__without_last(val
* self
, val
* p0
, val
* p1
) {
486 short int var
/* : Bool */;
489 const struct type
* type_struct
;
490 short int var1
/* : Bool */;
493 const struct type
* type_struct4
;
494 val
* var_from
/* var from: Discrete */;
495 val
* var_to
/* var to: Discrete */;
496 val
* var5
/* : Discrete */;
497 short int var6
/* : Bool */;
500 const struct type
* type_struct9
;
501 /* Covariant cast for argument 0 (from) <p0:Discrete> isa Range#0 */
502 /* <p0:Discrete> isa Range#0 */
503 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
504 cltype
= type_struct
->color
;
505 idtype
= type_struct
->id
;
506 if(cltype
>= p0
->type
->table_size
) {
509 var
= p0
->type
->type_table
[cltype
] == idtype
;
512 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 77);
515 /* Covariant cast for argument 1 (to) <p1:Discrete> isa Range#0 */
516 /* <p1:Discrete> isa Range#0 */
517 type_struct4
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
518 cltype2
= type_struct4
->color
;
519 idtype3
= type_struct4
->id
;
520 if(cltype2
>= p1
->type
->table_size
) {
523 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
526 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 77);
531 self
->attrs
[COLOR_range__Range___first
].val
= var_from
; /* _first on <self:Range[Discrete]> */
532 var5
= ((val
* (*)(val
*))(var_to
->class->vft
[COLOR_kernel__Discrete__prec
]))(var_to
) /* prec on <var_to:Discrete>*/;
533 /* <var5:Discrete> isa Range#0 */
534 type_struct9
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
535 cltype7
= type_struct9
->color
;
536 idtype8
= type_struct9
->id
;
537 if(cltype7
>= var5
->type
->table_size
) {
540 var6
= var5
->type
->type_table
[cltype7
] == idtype8
;
543 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 82);
546 self
->attrs
[COLOR_range__Range___last
].val
= var5
; /* _last on <self:Range[Discrete]> */
547 self
->attrs
[COLOR_range__Range___after
].val
= var_to
; /* _after on <self:Range[Discrete]> */
550 /* method range#Range#without_last for (self: Object, Discrete, Discrete) */
551 void VIRTUAL_range__Range__without_last(val
* self
, val
* p0
, val
* p1
) {
552 range__Range__without_last(self
, p0
, p1
);
555 /* method range#IteratorRange#item for (self: IteratorRange[Discrete]): Discrete */
556 val
* range__IteratorRange__item(val
* self
) {
557 val
* var
/* : Discrete */;
558 val
* var1
/* : Discrete */;
559 var1
= self
->attrs
[COLOR_range__IteratorRange___item
].val
; /* _item on <self:IteratorRange[Discrete]> */
561 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _item", "lib/standard/collection/range.nit", 91);
568 /* method range#IteratorRange#item for (self: Object): nullable Object */
569 val
* VIRTUAL_range__IteratorRange__item(val
* self
) {
570 val
* var
/* : nullable Object */;
571 val
* var1
/* : Discrete */;
572 var1
= range__IteratorRange__item(self
);
577 /* method range#IteratorRange#is_ok for (self: IteratorRange[Discrete]): Bool */
578 short int range__IteratorRange__is_ok(val
* self
) {
579 short int var
/* : Bool */;
580 val
* var1
/* : Discrete */;
581 val
* var2
/* : Range[Discrete] */;
582 val
* var3
/* : Discrete */;
583 short int var4
/* : Bool */;
584 var1
= self
->attrs
[COLOR_range__IteratorRange___item
].val
; /* _item on <self:IteratorRange[Discrete]> */
586 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _item", "lib/standard/collection/range.nit", 93);
589 var2
= self
->attrs
[COLOR_range__IteratorRange___range
].val
; /* _range on <self:IteratorRange[Discrete]> */
591 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _range", "lib/standard/collection/range.nit", 93);
594 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_range__Range__after
]))(var2
) /* after on <var2:Range[Discrete]>*/;
595 var4
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Comparable___60d
]))(var1
, var3
) /* < on <var1:Discrete>*/;
601 /* method range#IteratorRange#is_ok for (self: Object): Bool */
602 short int VIRTUAL_range__IteratorRange__is_ok(val
* self
) {
603 short int var
/* : Bool */;
604 short int var1
/* : Bool */;
605 var1
= range__IteratorRange__is_ok(self
);
610 /* method range#IteratorRange#next for (self: IteratorRange[Discrete]) */
611 void range__IteratorRange__next(val
* self
) {
612 val
* var
/* : Discrete */;
613 val
* var1
/* : Discrete */;
614 short int var2
/* : Bool */;
617 const struct type
* type_struct
;
618 var
= self
->attrs
[COLOR_range__IteratorRange___item
].val
; /* _item on <self:IteratorRange[Discrete]> */
620 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _item", "lib/standard/collection/range.nit", 95);
623 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_kernel__Discrete__succ
]))(var
) /* succ on <var:Discrete>*/;
624 /* <var1:Discrete> isa IteratorRange#0 */
625 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__IteratorRange_FT0
];
626 cltype
= type_struct
->color
;
627 idtype
= type_struct
->id
;
628 if(cltype
>= var1
->type
->table_size
) {
631 var2
= var1
->type
->type_table
[cltype
] == idtype
;
634 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 95);
637 self
->attrs
[COLOR_range__IteratorRange___item
].val
= var1
; /* _item on <self:IteratorRange[Discrete]> */
640 /* method range#IteratorRange#next for (self: Object) */
641 void VIRTUAL_range__IteratorRange__next(val
* self
) {
642 range__IteratorRange__next(self
);
645 /* method range#IteratorRange#init for (self: IteratorRange[Discrete], Range[Discrete]) */
646 void range__IteratorRange__init(val
* self
, val
* p0
) {
647 short int var
/* : Bool */;
650 const struct type
* type_struct
;
651 val
* var_r
/* var r: Range[Discrete] */;
652 val
* var1
/* : nullable Object */;
653 /* Covariant cast for argument 0 (r) <p0:Range[Discrete]> isa Range[IteratorRange#0] */
654 /* <p0:Range[Discrete]> isa Range[IteratorRange#0] */
655 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Rangerange__IteratorRange_FT0
];
656 cltype
= type_struct
->color
;
657 idtype
= type_struct
->id
;
658 if(cltype
>= p0
->type
->table_size
) {
661 var
= p0
->type
->type_table
[cltype
] == idtype
;
664 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 97);
668 self
->attrs
[COLOR_range__IteratorRange___range
].val
= var_r
; /* _range on <self:IteratorRange[Discrete]> */
669 var1
= ((val
* (*)(val
*))(var_r
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_r
) /* first on <var_r:Range[Discrete]>*/;
670 self
->attrs
[COLOR_range__IteratorRange___item
].val
= var1
; /* _item on <self:IteratorRange[Discrete]> */
673 /* method range#IteratorRange#init for (self: Object, Range[Discrete]) */
674 void VIRTUAL_range__IteratorRange__init(val
* self
, val
* p0
) {
675 range__IteratorRange__init(self
, p0
);
678 /* method range#Discrete#times for (self: Discrete): Range[Discrete] */
679 val
* range__Discrete__times(val
* self
) {
680 val
* var
/* : Range[Discrete] */;
681 val
* var1
/* : Range[Discrete] */;
682 long var2
/* : Int */;
683 short int var3
/* : Bool */;
686 const struct type
* type_struct
;
687 long var4
/* : Int */;
688 val
* var5
/* : Discrete */;
689 val
* var6
/* : Discrete */;
690 var1
= NEW_range__Range(self
->type
->resolution_table
->types
[COLOR_range__Rangekernel__Comparable_VTOTHER
]);
692 /* <var2:Int> isa OTHER */
693 type_struct
= self
->type
->resolution_table
->types
[COLOR_kernel__Comparable_VTOTHER
];
694 cltype
= type_struct
->color
;
695 idtype
= type_struct
->id
;
696 if(cltype
>= (&type_kernel__Int
)->table_size
) {
699 var3
= (&type_kernel__Int
)->type_table
[cltype
] == idtype
;
702 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 109);
706 var5
= ((val
* (*)(val
*, long))(self
->class->vft
[COLOR_kernel__Discrete___45d
]))(self
, var4
) /* - on <self:Discrete>*/;
707 var6
= BOX_kernel__Int(var2
); /* autobox from Int to Discrete */
708 ((void (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_range__Range__init
]))(var1
, var6
, var5
) /* init on <var1:Range[Discrete]>*/;
709 CHECK_NEW_range__Range(var1
);
715 /* method range#Discrete#times for (self: Object): Range[Discrete] */
716 val
* VIRTUAL_range__Discrete__times(val
* self
) {
717 val
* var
/* : Range[Discrete] */;
718 val
* var1
/* : Range[Discrete] */;
719 var1
= range__Discrete__times(self
);