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]>*/;
270 CHECK_NEW_range__IteratorRange(var1
);
276 /* method range#Range#iterator for (self: Object): Iterator[nullable Object] */
277 val
* VIRTUAL_range__Range__iterator(val
* self
) {
278 val
* var
/* : Iterator[nullable Object] */;
279 val
* var1
/* : Iterator[Discrete] */;
280 var1
= range__Range__iterator(self
);
285 /* method range#Range#length for (self: Range[Discrete]): Int */
286 long range__Range__length(val
* self
) {
287 long var
/* : Int */;
288 val
* var1
/* : Discrete */;
289 val
* var2
/* : Discrete */;
290 long var3
/* : Int */;
291 long var_nb
/* var nb: Int */;
292 long var4
/* : Int */;
293 short int var5
/* : Bool */;
294 short int var7
/* : Bool */;
297 const char* var_class_name
;
298 short int var8
/* : Bool */;
299 long var9
/* : Int */;
300 var1
= self
->attrs
[COLOR_range__Range___first
].val
; /* _first on <self:Range[Discrete]> */
302 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _first");
303 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 47);
306 var2
= self
->attrs
[COLOR_range__Range___after
].val
; /* _after on <self:Range[Discrete]> */
308 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _after");
309 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 47);
312 var3
= ((long (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Discrete__distance
]))(var1
, var2
) /* distance on <var1:Discrete>*/;
315 { /* Inline kernel#Int#> (var_nb,var4) */
316 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
317 /* <var4:Int> isa OTHER */
318 var7
= 1; /* easy <var4:Int> isa OTHER*/
320 var_class_name
= type_kernel__Int
.name
;
321 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
322 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
325 var8
= var_nb
> var4
;
341 /* method range#Range#length for (self: Object): Int */
342 long VIRTUAL_range__Range__length(val
* self
) {
343 long var
/* : Int */;
344 long var1
/* : Int */;
345 var1
= range__Range__length(self
);
350 /* method range#Range#is_empty for (self: Range[Discrete]): Bool */
351 short int range__Range__is_empty(val
* self
) {
352 short int var
/* : Bool */;
353 val
* var1
/* : Discrete */;
354 val
* var2
/* : Discrete */;
355 short int var3
/* : Bool */;
356 var1
= self
->attrs
[COLOR_range__Range___first
].val
; /* _first on <self:Range[Discrete]> */
358 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _first");
359 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 55);
362 var2
= self
->attrs
[COLOR_range__Range___after
].val
; /* _after on <self:Range[Discrete]> */
364 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _after");
365 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 55);
368 var3
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Comparable___62d_61d
]))(var1
, var2
) /* >= on <var1:Discrete>*/;
374 /* method range#Range#is_empty for (self: Object): Bool */
375 short int VIRTUAL_range__Range__is_empty(val
* self
) {
376 short int var
/* : Bool */;
377 short int var1
/* : Bool */;
378 var1
= range__Range__is_empty(self
);
383 /* method range#Range#init for (self: Range[Discrete], Discrete, Discrete) */
384 void range__Range__init(val
* self
, val
* p0
, val
* p1
) {
385 short int var
/* : Bool */;
388 const struct type
* type_struct
;
389 const char* var_class_name
;
390 short int var1
/* : Bool */;
393 const struct type
* type_struct4
;
394 const char* var_class_name5
;
395 val
* var_from
/* var from: Discrete */;
396 val
* var_to
/* var to: Discrete */;
397 val
* var6
/* : Discrete */;
398 short int var7
/* : Bool */;
401 const struct type
* type_struct10
;
402 const char* var_class_name11
;
403 /* Covariant cast for argument 0 (from) <p0:Discrete> isa Range#0 */
404 /* <p0:Discrete> isa Range#0 */
405 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
406 cltype
= type_struct
->color
;
407 idtype
= type_struct
->id
;
408 if(cltype
>= p0
->type
->table_size
) {
411 var
= p0
->type
->type_table
[cltype
] == idtype
;
414 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
415 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name
);
416 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 57);
419 /* Covariant cast for argument 1 (to) <p1:Discrete> isa Range#0 */
420 /* <p1:Discrete> isa Range#0 */
421 type_struct4
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
422 cltype2
= type_struct4
->color
;
423 idtype3
= type_struct4
->id
;
424 if(cltype2
>= p1
->type
->table_size
) {
427 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
430 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
431 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name5
);
432 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 57);
437 self
->attrs
[COLOR_range__Range___first
].val
= var_from
; /* _first on <self:Range[Discrete]> */
438 self
->attrs
[COLOR_range__Range___last
].val
= var_to
; /* _last on <self:Range[Discrete]> */
439 var6
= ((val
* (*)(val
*))(var_to
->class->vft
[COLOR_kernel__Discrete__succ
]))(var_to
) /* succ on <var_to:Discrete>*/;
440 /* <var6:Discrete> isa Range#0 */
441 type_struct10
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
442 cltype8
= type_struct10
->color
;
443 idtype9
= type_struct10
->id
;
444 if(cltype8
>= var6
->type
->table_size
) {
447 var7
= var6
->type
->type_table
[cltype8
] == idtype9
;
450 var_class_name11
= var6
== NULL ?
"null" : var6
->type
->name
;
451 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name11
);
452 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 63);
455 self
->attrs
[COLOR_range__Range___after
].val
= var6
; /* _after on <self:Range[Discrete]> */
458 /* method range#Range#init for (self: Object, Discrete, Discrete) */
459 void VIRTUAL_range__Range__init(val
* self
, val
* p0
, val
* p1
) {
460 range__Range__init(self
, p0
, p1
);
463 /* method range#Range#without_last for (self: Range[Discrete], Discrete, Discrete) */
464 void range__Range__without_last(val
* self
, val
* p0
, val
* p1
) {
465 short int var
/* : Bool */;
468 const struct type
* type_struct
;
469 const char* var_class_name
;
470 short int var1
/* : Bool */;
473 const struct type
* type_struct4
;
474 const char* var_class_name5
;
475 val
* var_from
/* var from: Discrete */;
476 val
* var_to
/* var to: Discrete */;
477 val
* var6
/* : Discrete */;
478 short int var7
/* : Bool */;
481 const struct type
* type_struct10
;
482 const char* var_class_name11
;
483 /* Covariant cast for argument 0 (from) <p0:Discrete> isa Range#0 */
484 /* <p0:Discrete> isa Range#0 */
485 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
486 cltype
= type_struct
->color
;
487 idtype
= type_struct
->id
;
488 if(cltype
>= p0
->type
->table_size
) {
491 var
= p0
->type
->type_table
[cltype
] == idtype
;
494 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
495 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name
);
496 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 66);
499 /* Covariant cast for argument 1 (to) <p1:Discrete> isa Range#0 */
500 /* <p1:Discrete> isa Range#0 */
501 type_struct4
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
502 cltype2
= type_struct4
->color
;
503 idtype3
= type_struct4
->id
;
504 if(cltype2
>= p1
->type
->table_size
) {
507 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
510 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
511 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name5
);
512 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 66);
517 self
->attrs
[COLOR_range__Range___first
].val
= var_from
; /* _first on <self:Range[Discrete]> */
518 var6
= ((val
* (*)(val
*))(var_to
->class->vft
[COLOR_kernel__Discrete__prec
]))(var_to
) /* prec on <var_to:Discrete>*/;
519 /* <var6:Discrete> isa Range#0 */
520 type_struct10
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
521 cltype8
= type_struct10
->color
;
522 idtype9
= type_struct10
->id
;
523 if(cltype8
>= var6
->type
->table_size
) {
526 var7
= var6
->type
->type_table
[cltype8
] == idtype9
;
529 var_class_name11
= var6
== NULL ?
"null" : var6
->type
->name
;
530 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name11
);
531 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 71);
534 self
->attrs
[COLOR_range__Range___last
].val
= var6
; /* _last on <self:Range[Discrete]> */
535 self
->attrs
[COLOR_range__Range___after
].val
= var_to
; /* _after on <self:Range[Discrete]> */
538 /* method range#Range#without_last for (self: Object, Discrete, Discrete) */
539 void VIRTUAL_range__Range__without_last(val
* self
, val
* p0
, val
* p1
) {
540 range__Range__without_last(self
, p0
, p1
);
543 /* method range#IteratorRange#item for (self: IteratorRange[Discrete]): Discrete */
544 val
* range__IteratorRange__item(val
* self
) {
545 val
* var
/* : Discrete */;
546 val
* var1
/* : Discrete */;
547 var1
= self
->attrs
[COLOR_range__IteratorRange___item
].val
; /* _item on <self:IteratorRange[Discrete]> */
549 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _item");
550 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 80);
557 /* method range#IteratorRange#item for (self: Object): nullable Object */
558 val
* VIRTUAL_range__IteratorRange__item(val
* self
) {
559 val
* var
/* : nullable Object */;
560 val
* var1
/* : Discrete */;
561 var1
= range__IteratorRange__item(self
);
566 /* method range#IteratorRange#is_ok for (self: IteratorRange[Discrete]): Bool */
567 short int range__IteratorRange__is_ok(val
* self
) {
568 short int var
/* : Bool */;
569 val
* var1
/* : Discrete */;
570 val
* var2
/* : Range[Discrete] */;
571 val
* var3
/* : Discrete */;
572 short int var4
/* : Bool */;
573 var1
= self
->attrs
[COLOR_range__IteratorRange___item
].val
; /* _item on <self:IteratorRange[Discrete]> */
575 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _item");
576 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 82);
579 var2
= self
->attrs
[COLOR_range__IteratorRange___range
].val
; /* _range on <self:IteratorRange[Discrete]> */
581 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _range");
582 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 82);
585 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_range__Range__after
]))(var2
) /* after on <var2:Range[Discrete]>*/;
586 var4
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Comparable___60d
]))(var1
, var3
) /* < on <var1:Discrete>*/;
592 /* method range#IteratorRange#is_ok for (self: Object): Bool */
593 short int VIRTUAL_range__IteratorRange__is_ok(val
* self
) {
594 short int var
/* : Bool */;
595 short int var1
/* : Bool */;
596 var1
= range__IteratorRange__is_ok(self
);
601 /* method range#IteratorRange#next for (self: IteratorRange[Discrete]) */
602 void range__IteratorRange__next(val
* self
) {
603 val
* var
/* : Discrete */;
604 val
* var1
/* : Discrete */;
605 short int var2
/* : Bool */;
608 const struct type
* type_struct
;
609 const char* var_class_name
;
610 var
= self
->attrs
[COLOR_range__IteratorRange___item
].val
; /* _item on <self:IteratorRange[Discrete]> */
612 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute _item");
613 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 84);
616 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_kernel__Discrete__succ
]))(var
) /* succ on <var:Discrete>*/;
617 /* <var1:Discrete> isa IteratorRange#0 */
618 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__IteratorRange_FT0
];
619 cltype
= type_struct
->color
;
620 idtype
= type_struct
->id
;
621 if(cltype
>= var1
->type
->table_size
) {
624 var2
= var1
->type
->type_table
[cltype
] == idtype
;
627 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
628 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "IteratorRange#0", var_class_name
);
629 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 84);
632 self
->attrs
[COLOR_range__IteratorRange___item
].val
= var1
; /* _item on <self:IteratorRange[Discrete]> */
635 /* method range#IteratorRange#next for (self: Object) */
636 void VIRTUAL_range__IteratorRange__next(val
* self
) {
637 range__IteratorRange__next(self
);
640 /* method range#IteratorRange#init for (self: IteratorRange[Discrete], Range[Discrete]) */
641 void range__IteratorRange__init(val
* self
, val
* p0
) {
642 short int var
/* : Bool */;
645 const struct type
* type_struct
;
646 const char* var_class_name
;
647 val
* var_r
/* var r: Range[Discrete] */;
648 val
* var1
/* : nullable Object */;
649 /* Covariant cast for argument 0 (r) <p0:Range[Discrete]> isa Range[IteratorRange#0] */
650 /* <p0:Range[Discrete]> isa Range[IteratorRange#0] */
651 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Rangerange__IteratorRange_FT0
];
652 cltype
= type_struct
->color
;
653 idtype
= type_struct
->id
;
654 if(cltype
>= p0
->type
->table_size
) {
657 var
= p0
->type
->type_table
[cltype
] == idtype
;
660 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
661 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Range[IteratorRange#0]", var_class_name
);
662 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 86);
666 self
->attrs
[COLOR_range__IteratorRange___range
].val
= var_r
; /* _range on <self:IteratorRange[Discrete]> */
667 var1
= ((val
* (*)(val
*))(var_r
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_r
) /* first on <var_r:Range[Discrete]>*/;
668 self
->attrs
[COLOR_range__IteratorRange___item
].val
= var1
; /* _item on <self:IteratorRange[Discrete]> */
671 /* method range#IteratorRange#init for (self: Object, Range[Discrete]) */
672 void VIRTUAL_range__IteratorRange__init(val
* self
, val
* p0
) {
673 range__IteratorRange__init(self
, p0
);
676 /* method range#Discrete#times for (self: Discrete): Range[Discrete] */
677 val
* range__Discrete__times(val
* self
) {
678 val
* var
/* : Range[Discrete] */;
679 val
* var1
/* : Range[Discrete] */;
680 long var2
/* : Int */;
681 short int var3
/* : Bool */;
684 const struct type
* type_struct
;
685 const char* var_class_name
;
686 long var4
/* : Int */;
687 val
* var5
/* : Discrete */;
688 val
* var6
/* : Discrete */;
689 var1
= NEW_range__Range(self
->type
->resolution_table
->types
[COLOR_range__Rangekernel__Comparable_VTOTHER
]);
691 /* <var2:Int> isa OTHER */
692 type_struct
= self
->type
->resolution_table
->types
[COLOR_kernel__Comparable_VTOTHER
];
693 cltype
= type_struct
->color
;
694 idtype
= type_struct
->id
;
695 if(cltype
>= (&type_kernel__Int
)->table_size
) {
698 var3
= (&type_kernel__Int
)->type_table
[cltype
] == idtype
;
701 var_class_name
= type_kernel__Int
.name
;
702 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
703 fprintf(stderr
, " (%s:%d)\n", "lib/standard/collection/range.nit", 98);
707 var5
= ((val
* (*)(val
*, long))(self
->class->vft
[COLOR_kernel__Discrete___45d
]))(self
, var4
) /* - on <self:Discrete>*/;
708 var6
= BOX_kernel__Int(var2
); /* autobox from Int to Discrete */
709 ((void (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_range__Range__init
]))(var1
, var6
, var5
) /* init on <var1:Range[Discrete]>*/;
710 CHECK_NEW_range__Range(var1
);
716 /* method range#Discrete#times for (self: Object): Range[Discrete] */
717 val
* VIRTUAL_range__Discrete__times(val
* self
) {
718 val
* var
/* : Range[Discrete] */;
719 val
* var1
/* : Range[Discrete] */;
720 var1
= range__Discrete__times(self
);