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]> */
7 if (unlikely(var1
== NULL
)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _first");
9 PRINT_ERROR(" (%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 val
* var3
/* : Discrete */;
21 { /* Inline range#Range#first (self) on <self:Object(Range[Discrete])> */
22 var3
= self
->attrs
[COLOR_range__Range___first
].val
; /* _first on <self:Object(Range[Discrete])> */
23 if (unlikely(var3
== NULL
)) {
24 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _first");
25 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22);
35 /* method range#Range#first= for (self: Range[Discrete], Discrete) */
36 void range__Range__first_61d(val
* self
, val
* p0
) {
37 short int var
/* : Bool */;
40 const struct type
* type_struct
;
41 const char* var_class_name
;
42 /* Covariant cast for argument 0 (first) <p0:Discrete> isa Range#0 */
43 /* <p0:Discrete> isa Range#0 */
44 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
45 cltype
= type_struct
->color
;
46 idtype
= type_struct
->id
;
47 if(cltype
>= p0
->type
->table_size
) {
50 var
= p0
->type
->type_table
[cltype
] == idtype
;
53 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
54 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name
);
55 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22);
58 self
->attrs
[COLOR_range__Range___first
].val
= p0
; /* _first on <self:Range[Discrete]> */
61 /* method range#Range#first= for (self: Object, Discrete) */
62 void VIRTUAL_range__Range__first_61d(val
* self
, val
* p0
) {
63 short int var
/* : Bool */;
66 const struct type
* type_struct
;
67 const char* var_class_name
;
68 { /* Inline range#Range#first= (self,p0) on <self:Object(Range[Discrete])> */
69 /* Covariant cast for argument 0 (first) <p0:Discrete> isa Range#0 */
70 /* <p0:Discrete> isa Range#0 */
71 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
72 cltype
= type_struct
->color
;
73 idtype
= type_struct
->id
;
74 if(cltype
>= p0
->type
->table_size
) {
77 var
= p0
->type
->type_table
[cltype
] == idtype
;
80 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
81 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name
);
82 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22);
85 self
->attrs
[COLOR_range__Range___first
].val
= p0
; /* _first on <self:Object(Range[Discrete])> */
90 /* method range#Range#last for (self: Range[Discrete]): Discrete */
91 val
* range__Range__last(val
* self
) {
92 val
* var
/* : Discrete */;
93 val
* var1
/* : Discrete */;
94 var1
= self
->attrs
[COLOR_range__Range___last
].val
; /* _last on <self:Range[Discrete]> */
95 if (unlikely(var1
== NULL
)) {
96 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _last");
97 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 24);
104 /* method range#Range#last for (self: Object): Discrete */
105 val
* VIRTUAL_range__Range__last(val
* self
) {
106 val
* var
/* : Discrete */;
107 val
* var1
/* : Discrete */;
108 val
* var3
/* : Discrete */;
109 { /* Inline range#Range#last (self) on <self:Object(Range[Discrete])> */
110 var3
= self
->attrs
[COLOR_range__Range___last
].val
; /* _last on <self:Object(Range[Discrete])> */
111 if (unlikely(var3
== NULL
)) {
112 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _last");
113 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 24);
123 /* method range#Range#last= for (self: Range[Discrete], Discrete) */
124 void range__Range__last_61d(val
* self
, val
* p0
) {
125 short int var
/* : Bool */;
128 const struct type
* type_struct
;
129 const char* var_class_name
;
130 /* Covariant cast for argument 0 (last) <p0:Discrete> isa Range#0 */
131 /* <p0:Discrete> isa Range#0 */
132 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
133 cltype
= type_struct
->color
;
134 idtype
= type_struct
->id
;
135 if(cltype
>= p0
->type
->table_size
) {
138 var
= p0
->type
->type_table
[cltype
] == idtype
;
140 if (unlikely(!var
)) {
141 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
142 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name
);
143 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 24);
146 self
->attrs
[COLOR_range__Range___last
].val
= p0
; /* _last on <self:Range[Discrete]> */
149 /* method range#Range#last= for (self: Object, Discrete) */
150 void VIRTUAL_range__Range__last_61d(val
* self
, val
* p0
) {
151 short int var
/* : Bool */;
154 const struct type
* type_struct
;
155 const char* var_class_name
;
156 { /* Inline range#Range#last= (self,p0) on <self:Object(Range[Discrete])> */
157 /* Covariant cast for argument 0 (last) <p0:Discrete> isa Range#0 */
158 /* <p0:Discrete> isa Range#0 */
159 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
160 cltype
= type_struct
->color
;
161 idtype
= type_struct
->id
;
162 if(cltype
>= p0
->type
->table_size
) {
165 var
= p0
->type
->type_table
[cltype
] == idtype
;
167 if (unlikely(!var
)) {
168 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
169 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name
);
170 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 24);
173 self
->attrs
[COLOR_range__Range___last
].val
= p0
; /* _last on <self:Object(Range[Discrete])> */
178 /* method range#Range#after for (self: Range[Discrete]): Discrete */
179 val
* range__Range__after(val
* self
) {
180 val
* var
/* : Discrete */;
181 val
* var1
/* : Discrete */;
182 var1
= self
->attrs
[COLOR_range__Range___after
].val
; /* _after on <self:Range[Discrete]> */
183 if (unlikely(var1
== NULL
)) {
184 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _after");
185 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 27);
192 /* method range#Range#after for (self: Object): Discrete */
193 val
* VIRTUAL_range__Range__after(val
* self
) {
194 val
* var
/* : Discrete */;
195 val
* var1
/* : Discrete */;
196 val
* var3
/* : Discrete */;
197 { /* Inline range#Range#after (self) on <self:Object(Range[Discrete])> */
198 var3
= self
->attrs
[COLOR_range__Range___after
].val
; /* _after on <self:Object(Range[Discrete])> */
199 if (unlikely(var3
== NULL
)) {
200 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _after");
201 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 27);
211 /* method range#Range#after= for (self: Range[Discrete], Discrete) */
212 void range__Range__after_61d(val
* self
, val
* p0
) {
213 short int var
/* : Bool */;
216 const struct type
* type_struct
;
217 const char* var_class_name
;
218 /* Covariant cast for argument 0 (after) <p0:Discrete> isa Range#0 */
219 /* <p0:Discrete> isa Range#0 */
220 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
221 cltype
= type_struct
->color
;
222 idtype
= type_struct
->id
;
223 if(cltype
>= p0
->type
->table_size
) {
226 var
= p0
->type
->type_table
[cltype
] == idtype
;
228 if (unlikely(!var
)) {
229 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
230 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name
);
231 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 27);
234 self
->attrs
[COLOR_range__Range___after
].val
= p0
; /* _after on <self:Range[Discrete]> */
237 /* method range#Range#after= for (self: Object, Discrete) */
238 void VIRTUAL_range__Range__after_61d(val
* self
, val
* p0
) {
239 short int var
/* : Bool */;
242 const struct type
* type_struct
;
243 const char* var_class_name
;
244 { /* Inline range#Range#after= (self,p0) on <self:Object(Range[Discrete])> */
245 /* Covariant cast for argument 0 (after) <p0:Discrete> isa Range#0 */
246 /* <p0:Discrete> isa Range#0 */
247 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
248 cltype
= type_struct
->color
;
249 idtype
= type_struct
->id
;
250 if(cltype
>= p0
->type
->table_size
) {
253 var
= p0
->type
->type_table
[cltype
] == idtype
;
255 if (unlikely(!var
)) {
256 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
257 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name
);
258 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 27);
261 self
->attrs
[COLOR_range__Range___after
].val
= p0
; /* _after on <self:Object(Range[Discrete])> */
266 /* method range#Range#has for (self: Range[Discrete], Discrete): Bool */
267 short int range__Range__has(val
* self
, val
* p0
) {
268 short int var
/* : Bool */;
269 short int var1
/* : Bool */;
272 const struct type
* type_struct
;
273 const char* var_class_name
;
274 val
* var_item
/* var item: Discrete */;
275 short int var2
/* : Bool */;
276 val
* var3
/* : Discrete */;
277 val
* var5
/* : Discrete */;
278 short int var6
/* : Bool */;
279 short int var_
/* var : Bool */;
280 val
* var7
/* : Discrete */;
281 val
* var9
/* : Discrete */;
282 short int var10
/* : Bool */;
283 /* Covariant cast for argument 0 (item) <p0:Discrete> isa Collection#0 */
284 /* <p0:Discrete> isa Collection#0 */
285 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Collection_FT0
];
286 cltype
= type_struct
->color
;
287 idtype
= type_struct
->id
;
288 if(cltype
>= p0
->type
->table_size
) {
291 var1
= p0
->type
->type_table
[cltype
] == idtype
;
293 if (unlikely(!var1
)) {
294 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
295 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name
);
296 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 30);
301 { /* Inline range#Range#first (self) on <self:Range[Discrete]> */
302 var5
= self
->attrs
[COLOR_range__Range___first
].val
; /* _first on <self:Range[Discrete]> */
303 if (unlikely(var5
== NULL
)) {
304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _first");
305 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22);
313 var6
= ((short int (*)(val
*, val
*))(var_item
->class->vft
[COLOR_kernel__Comparable___62d_61d
]))(var_item
, var3
) /* >= on <var_item:Discrete>*/;
318 { /* Inline range#Range#last (self) on <self:Range[Discrete]> */
319 var9
= self
->attrs
[COLOR_range__Range___last
].val
; /* _last on <self:Range[Discrete]> */
320 if (unlikely(var9
== NULL
)) {
321 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _last");
322 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 24);
330 var10
= ((short int (*)(val
*, val
*))(var_item
->class->vft
[COLOR_kernel__Comparable___60d_61d
]))(var_item
, var7
) /* <= on <var_item:Discrete>*/;
341 /* method range#Range#has for (self: Object, nullable Object): Bool */
342 short int VIRTUAL_range__Range__has(val
* self
, val
* p0
) {
343 short int var
/* : Bool */;
344 short int var1
/* : Bool */;
345 var1
= range__Range__has(self
, p0
);
350 /* method range#Range#iterator for (self: Range[Discrete]): Iterator[Discrete] */
351 val
* range__Range__iterator(val
* self
) {
352 val
* var
/* : Iterator[Discrete] */;
353 val
* var1
/* : IteratorRange[Discrete] */;
354 var1
= NEW_range__IteratorRange(self
->type
->resolution_table
->types
[COLOR_range__IteratorRangerange__Range_FT0
]);
356 range__IteratorRange__init(var1
, self
); /* Direct call range#IteratorRange#init on <var1:IteratorRange[Discrete]>*/
363 /* method range#Range#iterator for (self: Object): Iterator[nullable Object] */
364 val
* VIRTUAL_range__Range__iterator(val
* self
) {
365 val
* var
/* : Iterator[nullable Object] */;
366 val
* var1
/* : Iterator[Discrete] */;
367 var1
= range__Range__iterator(self
);
372 /* method range#Range#length for (self: Range[Discrete]): Int */
373 long range__Range__length(val
* self
) {
374 long var
/* : Int */;
375 val
* var1
/* : Discrete */;
376 val
* var3
/* : Discrete */;
377 val
* var4
/* : Discrete */;
378 val
* var6
/* : Discrete */;
379 long var7
/* : Int */;
380 long var_nb
/* var nb: Int */;
381 long var8
/* : Int */;
382 short int var9
/* : Bool */;
383 short int var11
/* : Bool */;
386 const char* var_class_name
;
387 short int var12
/* : Bool */;
388 long var13
/* : Int */;
390 { /* Inline range#Range#first (self) on <self:Range[Discrete]> */
391 var3
= self
->attrs
[COLOR_range__Range___first
].val
; /* _first on <self:Range[Discrete]> */
392 if (unlikely(var3
== NULL
)) {
393 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _first");
394 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22);
402 { /* Inline range#Range#after (self) on <self:Range[Discrete]> */
403 var6
= self
->attrs
[COLOR_range__Range___after
].val
; /* _after on <self:Range[Discrete]> */
404 if (unlikely(var6
== NULL
)) {
405 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _after");
406 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 27);
414 var7
= ((long (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Discrete__distance
]))(var1
, var4
) /* distance on <var1:Discrete>*/;
419 { /* Inline kernel#Int#> (var_nb,var8) on <var_nb:Int> */
420 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
421 /* <var8:Int> isa OTHER */
422 var11
= 1; /* easy <var8:Int> isa OTHER*/
423 if (unlikely(!var11
)) {
424 var_class_name
= type_kernel__Int
.name
;
425 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
426 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
429 var12
= var_nb
> var8
;
446 /* method range#Range#length for (self: Object): Int */
447 long VIRTUAL_range__Range__length(val
* self
) {
448 long var
/* : Int */;
449 long var1
/* : Int */;
450 var1
= range__Range__length(self
);
455 /* method range#Range#is_empty for (self: Range[Discrete]): Bool */
456 short int range__Range__is_empty(val
* self
) {
457 short int var
/* : Bool */;
458 val
* var1
/* : Discrete */;
459 val
* var3
/* : Discrete */;
460 val
* var4
/* : Discrete */;
461 val
* var6
/* : Discrete */;
462 short int var7
/* : Bool */;
464 { /* Inline range#Range#first (self) on <self:Range[Discrete]> */
465 var3
= self
->attrs
[COLOR_range__Range___first
].val
; /* _first on <self:Range[Discrete]> */
466 if (unlikely(var3
== NULL
)) {
467 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _first");
468 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22);
476 { /* Inline range#Range#after (self) on <self:Range[Discrete]> */
477 var6
= self
->attrs
[COLOR_range__Range___after
].val
; /* _after on <self:Range[Discrete]> */
478 if (unlikely(var6
== NULL
)) {
479 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _after");
480 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 27);
488 var7
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Comparable___62d_61d
]))(var1
, var4
) /* >= on <var1:Discrete>*/;
495 /* method range#Range#is_empty for (self: Object): Bool */
496 short int VIRTUAL_range__Range__is_empty(val
* self
) {
497 short int var
/* : Bool */;
498 short int var1
/* : Bool */;
499 var1
= range__Range__is_empty(self
);
504 /* method range#Range#init for (self: Range[Discrete], Discrete, Discrete) */
505 void range__Range__init(val
* self
, val
* p0
, val
* p1
) {
506 short int var
/* : Bool */;
509 const struct type
* type_struct
;
510 const char* var_class_name
;
511 short int var1
/* : Bool */;
514 const struct type
* type_struct4
;
515 const char* var_class_name5
;
516 val
* var_from
/* var from: Discrete */;
517 val
* var_to
/* var to: Discrete */;
518 short int var7
/* : Bool */;
521 const struct type
* type_struct10
;
522 const char* var_class_name11
;
523 short int var13
/* : Bool */;
526 const struct type
* type_struct16
;
527 const char* var_class_name17
;
528 long var18
/* : Int */;
529 val
* var19
/* : Discrete */;
530 short int var20
/* : Bool */;
533 const struct type
* type_struct23
;
534 const char* var_class_name24
;
535 short int var26
/* : Bool */;
538 const struct type
* type_struct29
;
539 const char* var_class_name30
;
540 /* Covariant cast for argument 0 (from) <p0:Discrete> isa Range#0 */
541 /* <p0:Discrete> isa Range#0 */
542 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
543 cltype
= type_struct
->color
;
544 idtype
= type_struct
->id
;
545 if(cltype
>= p0
->type
->table_size
) {
548 var
= p0
->type
->type_table
[cltype
] == idtype
;
550 if (unlikely(!var
)) {
551 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
552 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name
);
553 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 57);
556 /* Covariant cast for argument 1 (to) <p1:Discrete> isa Range#0 */
557 /* <p1:Discrete> isa Range#0 */
558 type_struct4
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
559 cltype2
= type_struct4
->color
;
560 idtype3
= type_struct4
->id
;
561 if(cltype2
>= p1
->type
->table_size
) {
564 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
566 if (unlikely(!var1
)) {
567 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
568 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name5
);
569 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 57);
575 { /* Inline range#Range#first= (self,var_from) on <self:Range[Discrete]> */
576 /* Covariant cast for argument 0 (first) <var_from:Discrete> isa Range#0 */
577 /* <var_from:Discrete> isa Range#0 */
578 type_struct10
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
579 cltype8
= type_struct10
->color
;
580 idtype9
= type_struct10
->id
;
581 if(cltype8
>= var_from
->type
->table_size
) {
584 var7
= var_from
->type
->type_table
[cltype8
] == idtype9
;
586 if (unlikely(!var7
)) {
587 var_class_name11
= var_from
== NULL ?
"null" : var_from
->type
->name
;
588 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name11
);
589 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22);
592 self
->attrs
[COLOR_range__Range___first
].val
= var_from
; /* _first on <self:Range[Discrete]> */
597 { /* Inline range#Range#last= (self,var_to) on <self:Range[Discrete]> */
598 /* Covariant cast for argument 0 (last) <var_to:Discrete> isa Range#0 */
599 /* <var_to:Discrete> isa Range#0 */
600 type_struct16
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
601 cltype14
= type_struct16
->color
;
602 idtype15
= type_struct16
->id
;
603 if(cltype14
>= var_to
->type
->table_size
) {
606 var13
= var_to
->type
->type_table
[cltype14
] == idtype15
;
608 if (unlikely(!var13
)) {
609 var_class_name17
= var_to
== NULL ?
"null" : var_to
->type
->name
;
610 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name17
);
611 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 24);
614 self
->attrs
[COLOR_range__Range___last
].val
= var_to
; /* _last on <self:Range[Discrete]> */
620 var19
= ((val
* (*)(val
*, long))(var_to
->class->vft
[COLOR_kernel__Discrete__successor
]))(var_to
, var18
) /* successor on <var_to:Discrete>*/;
622 /* <var19:Discrete> isa Range#0 */
623 type_struct23
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
624 cltype21
= type_struct23
->color
;
625 idtype22
= type_struct23
->id
;
626 if(cltype21
>= var19
->type
->table_size
) {
629 var20
= var19
->type
->type_table
[cltype21
] == idtype22
;
631 if (unlikely(!var20
)) {
632 var_class_name24
= var19
== NULL ?
"null" : var19
->type
->name
;
633 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name24
);
634 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 63);
638 { /* Inline range#Range#after= (self,var19) on <self:Range[Discrete]> */
639 /* Covariant cast for argument 0 (after) <var19:Discrete> isa Range#0 */
640 /* <var19:Discrete> isa Range#0 */
641 type_struct29
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
642 cltype27
= type_struct29
->color
;
643 idtype28
= type_struct29
->id
;
644 if(cltype27
>= var19
->type
->table_size
) {
647 var26
= var19
->type
->type_table
[cltype27
] == idtype28
;
649 if (unlikely(!var26
)) {
650 var_class_name30
= var19
== NULL ?
"null" : var19
->type
->name
;
651 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name30
);
652 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 27);
655 self
->attrs
[COLOR_range__Range___after
].val
= var19
; /* _after on <self:Range[Discrete]> */
661 /* method range#Range#init for (self: Object, Discrete, Discrete) */
662 void VIRTUAL_range__Range__init(val
* self
, val
* p0
, val
* p1
) {
663 range__Range__init(self
, p0
, p1
); /* Direct call range#Range#init on <self:Object(Range[Discrete])>*/
666 /* method range#Range#without_last for (self: Range[Discrete], Discrete, Discrete) */
667 void range__Range__without_last(val
* self
, val
* p0
, val
* p1
) {
668 short int var
/* : Bool */;
671 const struct type
* type_struct
;
672 const char* var_class_name
;
673 short int var1
/* : Bool */;
676 const struct type
* type_struct4
;
677 const char* var_class_name5
;
678 val
* var_from
/* var from: Discrete */;
679 val
* var_to
/* var to: Discrete */;
680 short int var7
/* : Bool */;
683 const struct type
* type_struct10
;
684 const char* var_class_name11
;
685 long var12
/* : Int */;
686 val
* var13
/* : Discrete */;
687 short int var14
/* : Bool */;
690 const struct type
* type_struct17
;
691 const char* var_class_name18
;
692 short int var20
/* : Bool */;
695 const struct type
* type_struct23
;
696 const char* var_class_name24
;
697 short int var26
/* : Bool */;
700 const struct type
* type_struct29
;
701 const char* var_class_name30
;
702 /* Covariant cast for argument 0 (from) <p0:Discrete> isa Range#0 */
703 /* <p0:Discrete> isa Range#0 */
704 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
705 cltype
= type_struct
->color
;
706 idtype
= type_struct
->id
;
707 if(cltype
>= p0
->type
->table_size
) {
710 var
= p0
->type
->type_table
[cltype
] == idtype
;
712 if (unlikely(!var
)) {
713 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
714 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name
);
715 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 66);
718 /* Covariant cast for argument 1 (to) <p1:Discrete> isa Range#0 */
719 /* <p1:Discrete> isa Range#0 */
720 type_struct4
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
721 cltype2
= type_struct4
->color
;
722 idtype3
= type_struct4
->id
;
723 if(cltype2
>= p1
->type
->table_size
) {
726 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
728 if (unlikely(!var1
)) {
729 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
730 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name5
);
731 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 66);
737 { /* Inline range#Range#first= (self,var_from) on <self:Range[Discrete]> */
738 /* Covariant cast for argument 0 (first) <var_from:Discrete> isa Range#0 */
739 /* <var_from:Discrete> isa Range#0 */
740 type_struct10
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
741 cltype8
= type_struct10
->color
;
742 idtype9
= type_struct10
->id
;
743 if(cltype8
>= var_from
->type
->table_size
) {
746 var7
= var_from
->type
->type_table
[cltype8
] == idtype9
;
748 if (unlikely(!var7
)) {
749 var_class_name11
= var_from
== NULL ?
"null" : var_from
->type
->name
;
750 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name11
);
751 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22);
754 self
->attrs
[COLOR_range__Range___first
].val
= var_from
; /* _first on <self:Range[Discrete]> */
760 var13
= ((val
* (*)(val
*, long))(var_to
->class->vft
[COLOR_kernel__Discrete__predecessor
]))(var_to
, var12
) /* predecessor on <var_to:Discrete>*/;
762 /* <var13:Discrete> isa Range#0 */
763 type_struct17
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
764 cltype15
= type_struct17
->color
;
765 idtype16
= type_struct17
->id
;
766 if(cltype15
>= var13
->type
->table_size
) {
769 var14
= var13
->type
->type_table
[cltype15
] == idtype16
;
771 if (unlikely(!var14
)) {
772 var_class_name18
= var13
== NULL ?
"null" : var13
->type
->name
;
773 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name18
);
774 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 71);
778 { /* Inline range#Range#last= (self,var13) on <self:Range[Discrete]> */
779 /* Covariant cast for argument 0 (last) <var13:Discrete> isa Range#0 */
780 /* <var13:Discrete> isa Range#0 */
781 type_struct23
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
782 cltype21
= type_struct23
->color
;
783 idtype22
= type_struct23
->id
;
784 if(cltype21
>= var13
->type
->table_size
) {
787 var20
= var13
->type
->type_table
[cltype21
] == idtype22
;
789 if (unlikely(!var20
)) {
790 var_class_name24
= var13
== NULL ?
"null" : var13
->type
->name
;
791 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name24
);
792 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 24);
795 self
->attrs
[COLOR_range__Range___last
].val
= var13
; /* _last on <self:Range[Discrete]> */
800 { /* Inline range#Range#after= (self,var_to) on <self:Range[Discrete]> */
801 /* Covariant cast for argument 0 (after) <var_to:Discrete> isa Range#0 */
802 /* <var_to:Discrete> isa Range#0 */
803 type_struct29
= self
->type
->resolution_table
->types
[COLOR_range__Range_FT0
];
804 cltype27
= type_struct29
->color
;
805 idtype28
= type_struct29
->id
;
806 if(cltype27
>= var_to
->type
->table_size
) {
809 var26
= var_to
->type
->type_table
[cltype27
] == idtype28
;
811 if (unlikely(!var26
)) {
812 var_class_name30
= var_to
== NULL ?
"null" : var_to
->type
->name
;
813 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name30
);
814 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 27);
817 self
->attrs
[COLOR_range__Range___after
].val
= var_to
; /* _after on <self:Range[Discrete]> */
823 /* method range#Range#without_last for (self: Object, Discrete, Discrete) */
824 void VIRTUAL_range__Range__without_last(val
* self
, val
* p0
, val
* p1
) {
825 range__Range__without_last(self
, p0
, p1
); /* Direct call range#Range#without_last on <self:Object(Range[Discrete])>*/
828 /* method range#IteratorRange#item for (self: IteratorRange[Discrete]): Discrete */
829 val
* range__IteratorRange__item(val
* self
) {
830 val
* var
/* : Discrete */;
831 val
* var1
/* : Discrete */;
832 var1
= self
->attrs
[COLOR_range__IteratorRange___item
].val
; /* _item on <self:IteratorRange[Discrete]> */
833 if (unlikely(var1
== NULL
)) {
834 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _item");
835 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 81);
843 /* method range#IteratorRange#item for (self: Object): nullable Object */
844 val
* VIRTUAL_range__IteratorRange__item(val
* self
) {
845 val
* var
/* : nullable Object */;
846 val
* var1
/* : Discrete */;
847 var1
= range__IteratorRange__item(self
);
852 /* method range#IteratorRange#is_ok for (self: IteratorRange[Discrete]): Bool */
853 short int range__IteratorRange__is_ok(val
* self
) {
854 short int var
/* : Bool */;
855 val
* var1
/* : Discrete */;
856 val
* var2
/* : Range[Discrete] */;
857 val
* var3
/* : Discrete */;
858 val
* var5
/* : Discrete */;
859 short int var6
/* : Bool */;
860 var1
= self
->attrs
[COLOR_range__IteratorRange___item
].val
; /* _item on <self:IteratorRange[Discrete]> */
861 if (unlikely(var1
== NULL
)) {
862 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _item");
863 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 83);
866 var2
= self
->attrs
[COLOR_range__IteratorRange___range
].val
; /* _range on <self:IteratorRange[Discrete]> */
867 if (unlikely(var2
== NULL
)) {
868 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _range");
869 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 83);
873 { /* Inline range#Range#after (var2) on <var2:Range[Discrete]> */
874 var5
= var2
->attrs
[COLOR_range__Range___after
].val
; /* _after on <var2:Range[Discrete]> */
875 if (unlikely(var5
== NULL
)) {
876 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _after");
877 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 27);
885 var6
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Comparable___60d
]))(var1
, var3
) /* < on <var1:Discrete>*/;
892 /* method range#IteratorRange#is_ok for (self: Object): Bool */
893 short int VIRTUAL_range__IteratorRange__is_ok(val
* self
) {
894 short int var
/* : Bool */;
895 short int var1
/* : Bool */;
896 var1
= range__IteratorRange__is_ok(self
);
901 /* method range#IteratorRange#next for (self: IteratorRange[Discrete]) */
902 void range__IteratorRange__next(val
* self
) {
903 val
* var
/* : Discrete */;
904 long var1
/* : Int */;
905 val
* var2
/* : Discrete */;
906 short int var3
/* : Bool */;
909 const struct type
* type_struct
;
910 const char* var_class_name
;
911 var
= self
->attrs
[COLOR_range__IteratorRange___item
].val
; /* _item on <self:IteratorRange[Discrete]> */
912 if (unlikely(var
== NULL
)) {
913 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _item");
914 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 85);
919 var2
= ((val
* (*)(val
*, long))(var
->class->vft
[COLOR_kernel__Discrete__successor
]))(var
, var1
) /* successor on <var:Discrete>*/;
921 /* <var2:Discrete> isa IteratorRange#0 */
922 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__IteratorRange_FT0
];
923 cltype
= type_struct
->color
;
924 idtype
= type_struct
->id
;
925 if(cltype
>= var2
->type
->table_size
) {
928 var3
= var2
->type
->type_table
[cltype
] == idtype
;
930 if (unlikely(!var3
)) {
931 var_class_name
= var2
== NULL ?
"null" : var2
->type
->name
;
932 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "IteratorRange#0", var_class_name
);
933 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 85);
936 self
->attrs
[COLOR_range__IteratorRange___item
].val
= var2
; /* _item on <self:IteratorRange[Discrete]> */
939 /* method range#IteratorRange#next for (self: Object) */
940 void VIRTUAL_range__IteratorRange__next(val
* self
) {
941 range__IteratorRange__next(self
); /* Direct call range#IteratorRange#next on <self:Object(IteratorRange[Discrete])>*/
944 /* method range#IteratorRange#init for (self: IteratorRange[Discrete], Range[Discrete]) */
945 void range__IteratorRange__init(val
* self
, val
* p0
) {
946 short int var
/* : Bool */;
949 const struct type
* type_struct
;
950 const char* var_class_name
;
951 val
* var_r
/* var r: Range[Discrete] */;
952 val
* var1
/* : Discrete */;
953 val
* var3
/* : Discrete */;
954 /* Covariant cast for argument 0 (r) <p0:Range[Discrete]> isa Range[IteratorRange#0] */
955 /* <p0:Range[Discrete]> isa Range[IteratorRange#0] */
956 type_struct
= self
->type
->resolution_table
->types
[COLOR_range__Rangerange__IteratorRange_FT0
];
957 cltype
= type_struct
->color
;
958 idtype
= type_struct
->id
;
959 if(cltype
>= p0
->type
->table_size
) {
962 var
= p0
->type
->type_table
[cltype
] == idtype
;
964 if (unlikely(!var
)) {
965 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
966 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range[IteratorRange#0]", var_class_name
);
967 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 87);
971 self
->attrs
[COLOR_range__IteratorRange___range
].val
= var_r
; /* _range on <self:IteratorRange[Discrete]> */
973 { /* Inline range#Range#first (var_r) on <var_r:Range[Discrete]> */
974 var3
= var_r
->attrs
[COLOR_range__Range___first
].val
; /* _first on <var_r:Range[Discrete]> */
975 if (unlikely(var3
== NULL
)) {
976 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _first");
977 PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22);
984 self
->attrs
[COLOR_range__IteratorRange___item
].val
= var1
; /* _item on <self:IteratorRange[Discrete]> */
987 /* method range#IteratorRange#init for (self: Object, Range[Discrete]) */
988 void VIRTUAL_range__IteratorRange__init(val
* self
, val
* p0
) {
989 range__IteratorRange__init(self
, p0
); /* Direct call range#IteratorRange#init on <self:Object(IteratorRange[Discrete])>*/