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", "Uninitialized attribute _first");
9 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 22);
16 /* method range#Range#first for (self: Object): nullable Object */
17 val
* VIRTUAL_range__Range__first(val
* self
) {
18 val
* var
/* : nullable Object */;
19 val
* var1
/* : Discrete */;
20 var1
= range__Range__first(self
);
25 /* method range#Range#last for (self: Range[Discrete]): Discrete */
26 val
* range__Range__last(val
* self
) {
27 val
* var
/* : Discrete */;
28 val
* var1
/* : Discrete */;
29 var1
= self
->attrs
[COLOR_range__Range___last
].val
; /* _last on <self:Range[Discrete]> */
31 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _last");
32 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 24);
39 /* method range#Range#last for (self: Object): Discrete */
40 val
* VIRTUAL_range__Range__last(val
* self
) {
41 val
* var
/* : Discrete */;
42 val
* var1
/* : Discrete */;
43 var1
= range__Range__last(self
);
48 /* method range#Range#after for (self: Range[Discrete]): Discrete */
49 val
* range__Range__after(val
* self
) {
50 val
* var
/* : Discrete */;
51 val
* var1
/* : Discrete */;
52 var1
= self
->attrs
[COLOR_range__Range___after
].val
; /* _after on <self:Range[Discrete]> */
54 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _after");
55 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 27);
62 /* method range#Range#after for (self: Object): Discrete */
63 val
* VIRTUAL_range__Range__after(val
* self
) {
64 val
* var
/* : Discrete */;
65 val
* var1
/* : Discrete */;
66 var1
= range__Range__after(self
);
71 /* method range#Range#has for (self: Range[Discrete], Discrete): Bool */
72 short int range__Range__has(val
* self
, val
* p0
) {
73 short int var
/* : Bool */;
74 short int var1
/* : Bool */;
77 const struct type
* type_struct
;
78 const char* var_class_name
;
79 val
* var_item
/* var item: Discrete */;
80 short int var2
/* : Bool */;
81 val
* var3
/* : Discrete */;
82 short int var4
/* : Bool */;
83 short int var_
/* var : Bool */;
84 val
* var5
/* : Discrete */;
85 short int var6
/* : Bool */;
86 /* Covariant cast for argument 0 (item) <p0:Discrete> isa Collection#0 */
87 /* <p0:Discrete> isa Collection#0 */
88 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Collection_FT0
];
89 cltype
= type_struct
->color
;
90 idtype
= type_struct
->id
;
91 if(cltype
>= p0
->type
->table_size
) {
94 var1
= p0
->type
->type_table
[cltype
] == idtype
;
97 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
98 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name
);
99 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 30);
103 var3
= self
->attrs
[COLOR_range__Range___first
].val
; /* _first on <self:Range[Discrete]> */
105 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _first");
106 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 30);
109 var4
= ((short int (*)(val
*, val
*))(var_item
->class->vft
[COLOR_kernel__Comparable___62d_61d
]))(var_item
, var3
) /* >= on <var_item:Discrete>*/;
112 var5
= self
->attrs
[COLOR_range__Range___last
].val
; /* _last on <self:Range[Discrete]> */
114 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _last");
115 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 30);
118 var6
= ((short int (*)(val
*, val
*))(var_item
->class->vft
[COLOR_kernel__Comparable___60d_61d
]))(var_item
, var5
) /* <= on <var_item:Discrete>*/;
128 /* method range#Range#has for (self: Object, nullable Object): Bool */
129 short int VIRTUAL_range__Range__has(val
* self
, val
* p0
) {
130 short int var
/* : Bool */;
131 short int var1
/* : Bool */;
132 var1
= range__Range__has(self
, p0
);
137 /* method range#Range#has_only for (self: Range[Discrete], Discrete): Bool */
138 short int range__Range__has_only(val
* self
, val
* p0
) {
139 short int var
/* : Bool */;
140 short int var1
/* : Bool */;
143 const struct type
* type_struct
;
144 const char* var_class_name
;
145 val
* var_item
/* var item: Discrete */;
146 short int var2
/* : Bool */;
147 short int var3
/* : Bool */;
148 val
* var4
/* : Discrete */;
149 short int var5
/* : Bool */;
150 short int var_
/* var : Bool */;
151 val
* var6
/* : Discrete */;
152 short int var7
/* : Bool */;
153 short int var_8
/* var : Bool */;
154 short int var9
/* : Bool */;
155 /* Covariant cast for argument 0 (item) <p0:Discrete> isa Collection#0 */
156 /* <p0:Discrete> isa Collection#0 */
157 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Collection_FT0
];
158 cltype
= type_struct
->color
;
159 idtype
= type_struct
->id
;
160 if(cltype
>= p0
->type
->table_size
) {
163 var1
= p0
->type
->type_table
[cltype
] == idtype
;
166 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
167 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name
);
168 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 32);
172 var4
= self
->attrs
[COLOR_range__Range___first
].val
; /* _first on <self:Range[Discrete]> */
174 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _first");
175 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 32);
178 var5
= ((short int (*)(val
*, val
*))(var4
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var4
, var_item
) /* == on <var4:Discrete>*/;
181 var6
= self
->attrs
[COLOR_range__Range___last
].val
; /* _last on <self:Range[Discrete]> */
183 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _last");
184 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 32);
187 var7
= ((short int (*)(val
*, val
*))(var_item
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_item
, var6
) /* == on <var_item:Discrete>*/;
196 var9
= ((short int (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(self
) /* is_empty on <self:Range[Discrete]>*/;
204 /* method range#Range#has_only for (self: Object, nullable Object): Bool */
205 short int VIRTUAL_range__Range__has_only(val
* self
, val
* p0
) {
206 short int var
/* : Bool */;
207 short int var1
/* : Bool */;
208 var1
= range__Range__has_only(self
, p0
);
213 /* method range#Range#count for (self: Range[Discrete], Discrete): Int */
214 long range__Range__count(val
* self
, val
* p0
) {
215 long var
/* : Int */;
216 short int var1
/* : Bool */;
219 const struct type
* type_struct
;
220 const char* var_class_name
;
221 val
* var_item
/* var item: Discrete */;
222 short int var2
/* : Bool */;
223 long var3
/* : Int */;
224 long var4
/* : Int */;
225 /* Covariant cast for argument 0 (item) <p0:Discrete> isa Collection#0 */
226 /* <p0:Discrete> isa Collection#0 */
227 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Collection_FT0
];
228 cltype
= type_struct
->color
;
229 idtype
= type_struct
->id
;
230 if(cltype
>= p0
->type
->table_size
) {
233 var1
= p0
->type
->type_table
[cltype
] == idtype
;
236 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
237 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name
);
238 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 34);
242 var2
= ((short int (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__has
]))(self
, var_item
) /* has on <self:Range[Discrete]>*/;
255 /* method range#Range#count for (self: Object, nullable Object): Int */
256 long VIRTUAL_range__Range__count(val
* self
, val
* p0
) {
257 long var
/* : Int */;
258 long var1
/* : Int */;
259 var1
= range__Range__count(self
, p0
);
264 /* method range#Range#iterator for (self: Range[Discrete]): Iterator[Discrete] */
265 val
* range__Range__iterator(val
* self
) {
266 val
* var
/* : Iterator[Discrete] */;
267 val
* var1
/* : IteratorRange[Discrete] */;
268 var1
= NEW_range__IteratorRange(self
->type
->resolution_table
->types
[COLOR_range__IteratorRangerange__Range_FT0
]);
269 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_range__IteratorRange__init
]))(var1
, self
) /* init on <var1:IteratorRange[Discrete]>*/;
275 /* method range#Range#iterator for (self: Object): Iterator[nullable Object] */
276 val
* VIRTUAL_range__Range__iterator(val
* self
) {
277 val
* var
/* : Iterator[nullable Object] */;
278 val
* var1
/* : Iterator[Discrete] */;
279 var1
= range__Range__iterator(self
);
284 /* method range#Range#length for (self: Range[Discrete]): Int */
285 long range__Range__length(val
* self
) {
286 long var
/* : Int */;
287 val
* var1
/* : Discrete */;
288 val
* var2
/* : Discrete */;
289 long var3
/* : Int */;
290 long var_nb
/* var nb: Int */;
291 long var4
/* : Int */;
292 short int var5
/* : Bool */;
293 short int var7
/* : Bool */;
296 const char* var_class_name
;
297 short int var8
/* : Bool */;
298 long var9
/* : Int */;
299 var1
= self
->attrs
[COLOR_range__Range___first
].val
; /* _first on <self:Range[Discrete]> */
301 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _first");
302 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 47);
305 var2
= self
->attrs
[COLOR_range__Range___after
].val
; /* _after on <self:Range[Discrete]> */
307 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _after");
308 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 47);
311 var3
= ((long (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Discrete__distance
]))(var1
, var2
) /* distance on <var1:Discrete>*/;
314 { /* Inline kernel#Int#> (var_nb,var4) */
315 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
316 /* <var4:Int> isa OTHER */
317 var7
= 1; /* easy <var4:Int> isa OTHER*/
319 var_class_name
= type_kernel__Int
.name
;
320 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
321 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
324 var8
= var_nb
> var4
;
340 /* method range#Range#length for (self: Object): Int */
341 long VIRTUAL_range__Range__length(val
* self
) {
342 long var
/* : Int */;
343 long var1
/* : Int */;
344 var1
= range__Range__length(self
);
349 /* method range#Range#is_empty for (self: Range[Discrete]): Bool */
350 short int range__Range__is_empty(val
* self
) {
351 short int var
/* : Bool */;
352 val
* var1
/* : Discrete */;
353 val
* var2
/* : Discrete */;
354 short int var3
/* : Bool */;
355 var1
= self
->attrs
[COLOR_range__Range___first
].val
; /* _first on <self:Range[Discrete]> */
357 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _first");
358 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 55);
361 var2
= self
->attrs
[COLOR_range__Range___after
].val
; /* _after on <self:Range[Discrete]> */
363 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _after");
364 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 55);
367 var3
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Comparable___62d_61d
]))(var1
, var2
) /* >= on <var1:Discrete>*/;
373 /* method range#Range#is_empty for (self: Object): Bool */
374 short int VIRTUAL_range__Range__is_empty(val
* self
) {
375 short int var
/* : Bool */;
376 short int var1
/* : Bool */;
377 var1
= range__Range__is_empty(self
);
382 /* method range#Range#init for (self: Range[Discrete], Discrete, Discrete) */
383 void range__Range__init(val
* self
, val
* p0
, val
* p1
) {
384 short int var
/* : Bool */;
387 const struct type
* type_struct
;
388 const char* var_class_name
;
389 short int var1
/* : Bool */;
392 const struct type
* type_struct4
;
393 const char* var_class_name5
;
394 val
* var_from
/* var from: Discrete */;
395 val
* var_to
/* var to: Discrete */;
396 val
* var6
/* : Discrete */;
397 short int var7
/* : Bool */;
400 const struct type
* type_struct10
;
401 const char* var_class_name11
;
402 /* Covariant cast for argument 0 (from) <p0:Discrete> isa Range#0 */
403 /* <p0:Discrete> isa Range#0 */
404 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
405 cltype
= type_struct
->color
;
406 idtype
= type_struct
->id
;
407 if(cltype
>= p0
->type
->table_size
) {
410 var
= p0
->type
->type_table
[cltype
] == idtype
;
413 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
414 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name
);
415 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 57);
418 /* Covariant cast for argument 1 (to) <p1:Discrete> isa Range#0 */
419 /* <p1:Discrete> isa Range#0 */
420 type_struct4
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
421 cltype2
= type_struct4
->color
;
422 idtype3
= type_struct4
->id
;
423 if(cltype2
>= p1
->type
->table_size
) {
426 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
429 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
430 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name5
);
431 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 57);
436 self
->attrs
[COLOR_range__Range___first
].val
= var_from
; /* _first on <self:Range[Discrete]> */
437 self
->attrs
[COLOR_range__Range___last
].val
= var_to
; /* _last on <self:Range[Discrete]> */
438 var6
= ((val
* (*)(val
*))(var_to
->class->vft
[COLOR_kernel__Discrete__succ
]))(var_to
) /* succ on <var_to:Discrete>*/;
439 /* <var6:Discrete> isa Range#0 */
440 type_struct10
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
441 cltype8
= type_struct10
->color
;
442 idtype9
= type_struct10
->id
;
443 if(cltype8
>= var6
->type
->table_size
) {
446 var7
= var6
->type
->type_table
[cltype8
] == idtype9
;
449 var_class_name11
= var6
== NULL ?
"null" : var6
->type
->name
;
450 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name11
);
451 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 63);
454 self
->attrs
[COLOR_range__Range___after
].val
= var6
; /* _after on <self:Range[Discrete]> */
457 /* method range#Range#init for (self: Object, Discrete, Discrete) */
458 void VIRTUAL_range__Range__init(val
* self
, val
* p0
, val
* p1
) {
459 range__Range__init(self
, p0
, p1
);
462 /* method range#Range#without_last for (self: Range[Discrete], Discrete, Discrete) */
463 void range__Range__without_last(val
* self
, val
* p0
, val
* p1
) {
464 short int var
/* : Bool */;
467 const struct type
* type_struct
;
468 const char* var_class_name
;
469 short int var1
/* : Bool */;
472 const struct type
* type_struct4
;
473 const char* var_class_name5
;
474 val
* var_from
/* var from: Discrete */;
475 val
* var_to
/* var to: Discrete */;
476 val
* var6
/* : Discrete */;
477 short int var7
/* : Bool */;
480 const struct type
* type_struct10
;
481 const char* var_class_name11
;
482 /* Covariant cast for argument 0 (from) <p0:Discrete> isa Range#0 */
483 /* <p0:Discrete> isa Range#0 */
484 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
485 cltype
= type_struct
->color
;
486 idtype
= type_struct
->id
;
487 if(cltype
>= p0
->type
->table_size
) {
490 var
= p0
->type
->type_table
[cltype
] == idtype
;
493 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
494 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name
);
495 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 66);
498 /* Covariant cast for argument 1 (to) <p1:Discrete> isa Range#0 */
499 /* <p1:Discrete> isa Range#0 */
500 type_struct4
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
501 cltype2
= type_struct4
->color
;
502 idtype3
= type_struct4
->id
;
503 if(cltype2
>= p1
->type
->table_size
) {
506 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
509 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
510 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name5
);
511 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 66);
516 self
->attrs
[COLOR_range__Range___first
].val
= var_from
; /* _first on <self:Range[Discrete]> */
517 var6
= ((val
* (*)(val
*))(var_to
->class->vft
[COLOR_kernel__Discrete__prec
]))(var_to
) /* prec on <var_to:Discrete>*/;
518 /* <var6:Discrete> isa Range#0 */
519 type_struct10
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
520 cltype8
= type_struct10
->color
;
521 idtype9
= type_struct10
->id
;
522 if(cltype8
>= var6
->type
->table_size
) {
525 var7
= var6
->type
->type_table
[cltype8
] == idtype9
;
528 var_class_name11
= var6
== NULL ?
"null" : var6
->type
->name
;
529 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name11
);
530 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 71);
533 self
->attrs
[COLOR_range__Range___last
].val
= var6
; /* _last on <self:Range[Discrete]> */
534 self
->attrs
[COLOR_range__Range___after
].val
= var_to
; /* _after on <self:Range[Discrete]> */
537 /* method range#Range#without_last for (self: Object, Discrete, Discrete) */
538 void VIRTUAL_range__Range__without_last(val
* self
, val
* p0
, val
* p1
) {
539 range__Range__without_last(self
, p0
, p1
);
542 /* method range#IteratorRange#item for (self: IteratorRange[Discrete]): Discrete */
543 val
* range__IteratorRange__item(val
* self
) {
544 val
* var
/* : Discrete */;
545 val
* var1
/* : Discrete */;
546 var1
= self
->attrs
[COLOR_range__IteratorRange___item
].val
; /* _item on <self:IteratorRange[Discrete]> */
548 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _item");
549 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 80);
556 /* method range#IteratorRange#item for (self: Object): nullable Object */
557 val
* VIRTUAL_range__IteratorRange__item(val
* self
) {
558 val
* var
/* : nullable Object */;
559 val
* var1
/* : Discrete */;
560 var1
= range__IteratorRange__item(self
);
565 /* method range#IteratorRange#is_ok for (self: IteratorRange[Discrete]): Bool */
566 short int range__IteratorRange__is_ok(val
* self
) {
567 short int var
/* : Bool */;
568 val
* var1
/* : Discrete */;
569 val
* var2
/* : Range[Discrete] */;
570 val
* var3
/* : Discrete */;
571 short int var4
/* : Bool */;
572 var1
= self
->attrs
[COLOR_range__IteratorRange___item
].val
; /* _item on <self:IteratorRange[Discrete]> */
574 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _item");
575 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 82);
578 var2
= self
->attrs
[COLOR_range__IteratorRange___range
].val
; /* _range on <self:IteratorRange[Discrete]> */
580 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _range");
581 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 82);
584 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_range__Range__after
]))(var2
) /* after on <var2:Range[Discrete]>*/;
585 var4
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Comparable___60d
]))(var1
, var3
) /* < on <var1:Discrete>*/;
591 /* method range#IteratorRange#is_ok for (self: Object): Bool */
592 short int VIRTUAL_range__IteratorRange__is_ok(val
* self
) {
593 short int var
/* : Bool */;
594 short int var1
/* : Bool */;
595 var1
= range__IteratorRange__is_ok(self
);
600 /* method range#IteratorRange#next for (self: IteratorRange[Discrete]) */
601 void range__IteratorRange__next(val
* self
) {
602 val
* var
/* : Discrete */;
603 val
* var1
/* : Discrete */;
604 short int var2
/* : Bool */;
607 const struct type
* type_struct
;
608 const char* var_class_name
;
609 var
= self
->attrs
[COLOR_range__IteratorRange___item
].val
; /* _item on <self:IteratorRange[Discrete]> */
611 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _item");
612 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 84);
615 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_kernel__Discrete__succ
]))(var
) /* succ on <var:Discrete>*/;
616 /* <var1:Discrete> isa IteratorRange#0 */
617 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__IteratorRange_FT0
];
618 cltype
= type_struct
->color
;
619 idtype
= type_struct
->id
;
620 if(cltype
>= var1
->type
->table_size
) {
623 var2
= var1
->type
->type_table
[cltype
] == idtype
;
626 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
627 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "IteratorRange#0", var_class_name
);
628 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 84);
631 self
->attrs
[COLOR_range__IteratorRange___item
].val
= var1
; /* _item on <self:IteratorRange[Discrete]> */
634 /* method range#IteratorRange#next for (self: Object) */
635 void VIRTUAL_range__IteratorRange__next(val
* self
) {
636 range__IteratorRange__next(self
);
639 /* method range#IteratorRange#init for (self: IteratorRange[Discrete], Range[Discrete]) */
640 void range__IteratorRange__init(val
* self
, val
* p0
) {
641 short int var
/* : Bool */;
644 const struct type
* type_struct
;
645 const char* var_class_name
;
646 val
* var_r
/* var r: Range[Discrete] */;
647 val
* var1
/* : nullable Object */;
648 /* Covariant cast for argument 0 (r) <p0:Range[Discrete]> isa Range[IteratorRange#0] */
649 /* <p0:Range[Discrete]> isa Range[IteratorRange#0] */
650 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Rangerange__IteratorRange_FT0
];
651 cltype
= type_struct
->color
;
652 idtype
= type_struct
->id
;
653 if(cltype
>= p0
->type
->table_size
) {
656 var
= p0
->type
->type_table
[cltype
] == idtype
;
659 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
660 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Range[IteratorRange#0]", var_class_name
);
661 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 86);
665 self
->attrs
[COLOR_range__IteratorRange___range
].val
= var_r
; /* _range on <self:IteratorRange[Discrete]> */
666 var1
= ((val
* (*)(val
*))(var_r
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_r
) /* first on <var_r:Range[Discrete]>*/;
667 self
->attrs
[COLOR_range__IteratorRange___item
].val
= var1
; /* _item on <self:IteratorRange[Discrete]> */
670 /* method range#IteratorRange#init for (self: Object, Range[Discrete]) */
671 void VIRTUAL_range__IteratorRange__init(val
* self
, val
* p0
) {
672 range__IteratorRange__init(self
, p0
);
675 /* method range#Int#times for (self: Int): Range[Int] */
676 val
* range__Int__times(long self
) {
677 val
* var
/* : Range[Int] */;
678 val
* var1
/* : Range[Int] */;
679 long var2
/* : Int */;
680 val
* var3
/* : Discrete */;
681 val
* var4
/* : Discrete */;
682 var1
= NEW_range__Range(&type_range__Rangekernel__Int
);
684 var3
= BOX_kernel__Int(var2
); /* autobox from Int to Discrete */
685 var4
= BOX_kernel__Int(self
); /* autobox from Int to Discrete */
686 ((void (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_range__Range__without_last
]))(var1
, var3
, var4
) /* without_last on <var1:Range[Int]>*/;
692 /* method range#Int#times for (self: Object): Range[Int] */
693 val
* VIRTUAL_range__Int__times(val
* self
) {
694 val
* var
/* : Range[Int] */;
695 val
* var1
/* : Range[Int] */;
696 long var2
/* : Int */;
697 var2
= ((struct instance_kernel__Int
*)self
)->value
; /* autounbox from Object to Int */;
698 var1
= range__Int__times(var2
);