1 #include "sorter.sep.0.h"
2 /* method sorter#AbstractSorter#compare for (self: AbstractSorter[nullable Object], nullable Object, nullable Object): Int */
3 long sorter__AbstractSorter__compare(val
* self
, val
* p0
, val
* p1
) {
5 short int var1
/* : Bool */;
8 const struct type
* type_struct
;
10 short int var2
/* : Bool */;
13 const struct type
* type_struct5
;
14 short int is_nullable6
;
15 /* Covariant cast for argument 0 (a) <p0:nullable Object> isa AbstractSorter#0 */
16 /* <p0:nullable Object> isa AbstractSorter#0 */
17 type_struct
= self
->type
->resolution_table
->types
[COLOR_sorter__AbstractSorter_FT0
];
18 cltype
= type_struct
->color
;
19 idtype
= type_struct
->id
;
20 is_nullable
= type_struct
->is_nullable
;
24 if(cltype
>= p0
->type
->table_size
) {
27 var1
= p0
->type
->type_table
[cltype
] == idtype
;
31 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/sorter.nit", 23);
34 /* Covariant cast for argument 1 (b) <p1:nullable Object> isa AbstractSorter#0 */
35 /* <p1:nullable Object> isa AbstractSorter#0 */
36 type_struct5
= self
->type
->resolution_table
->types
[COLOR_sorter__AbstractSorter_FT0
];
37 cltype3
= type_struct5
->color
;
38 idtype4
= type_struct5
->id
;
39 is_nullable6
= type_struct5
->is_nullable
;
43 if(cltype3
>= p1
->type
->table_size
) {
46 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
50 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/sorter.nit", 23);
53 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/collection/sorter.nit", 23);
58 /* method sorter#AbstractSorter#compare for (self: Object, nullable Object, nullable Object): Int */
59 long VIRTUAL_sorter__AbstractSorter__compare(val
* self
, val
* p0
, val
* p1
) {
61 long var1
/* : Int */;
62 var1
= sorter__AbstractSorter__compare(self
, p0
, p1
);
67 /* method sorter#AbstractSorter#sort for (self: AbstractSorter[nullable Object], Array[nullable Object]) */
68 void sorter__AbstractSorter__sort(val
* self
, val
* p0
) {
69 short int var
/* : Bool */;
72 const struct type
* type_struct
;
73 val
* var_array
/* var array: Array[nullable Object] */;
74 long var1
/* : Int */;
75 long var2
/* : Int */;
76 long var3
/* : Int */;
77 long var4
/* : Int */;
78 long var6
/* : Int */;
79 /* Covariant cast for argument 0 (array) <p0:Array[nullable Object]> isa Array[AbstractSorter#0] */
80 /* <p0:Array[nullable Object]> isa Array[AbstractSorter#0] */
81 type_struct
= self
->type
->resolution_table
->types
[COLOR_array__Arraysorter__AbstractSorter_FT0
];
82 cltype
= type_struct
->color
;
83 idtype
= type_struct
->id
;
84 if(cltype
>= p0
->type
->table_size
) {
87 var
= p0
->type
->type_table
[cltype
] == idtype
;
90 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/sorter.nit", 30);
95 var2
= ((long (*)(val
*))(var_array
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_array
) /* length on <var_array:Array[nullable Object]>*/;
97 { /* Inline kernel#Int#- (var2,var3) */
103 ((void (*)(val
*, val
*, long, long))(self
->class->vft
[COLOR_sorter__AbstractSorter__sub_sort
]))(self
, var_array
, var1
, var4
) /* sub_sort on <self:AbstractSorter[nullable Object]>*/;
106 /* method sorter#AbstractSorter#sort for (self: Object, Array[nullable Object]) */
107 void VIRTUAL_sorter__AbstractSorter__sort(val
* self
, val
* p0
) {
108 sorter__AbstractSorter__sort(self
, p0
);
111 /* method sorter#AbstractSorter#sub_sort for (self: AbstractSorter[nullable Object], Array[nullable Object], Int, Int) */
112 void sorter__AbstractSorter__sub_sort(val
* self
, val
* p0
, long p1
, long p2
) {
113 short int var
/* : Bool */;
116 const struct type
* type_struct
;
117 val
* var_array
/* var array: Array[nullable Object] */;
118 long var_from
/* var from: Int */;
119 long var_to
/* var to: Int */;
120 short int var1
/* : Bool */;
121 short int var3
/* : Bool */;
124 short int var6
/* : Bool */;
125 long var7
/* : Int */;
126 long var8
/* : Int */;
127 long var10
/* : Int */;
128 short int var11
/* : Bool */;
129 short int var13
/* : Bool */;
132 short int var16
/* : Bool */;
133 /* Covariant cast for argument 0 (array) <p0:Array[nullable Object]> isa Array[AbstractSorter#0] */
134 /* <p0:Array[nullable Object]> isa Array[AbstractSorter#0] */
135 type_struct
= self
->type
->resolution_table
->types
[COLOR_array__Arraysorter__AbstractSorter_FT0
];
136 cltype
= type_struct
->color
;
137 idtype
= type_struct
->id
;
138 if(cltype
>= p0
->type
->table_size
) {
141 var
= p0
->type
->type_table
[cltype
] == idtype
;
144 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/sorter.nit", 33);
150 { /* Inline kernel#Int#>= (var_from,var_to) */
151 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
152 /* <var_to:Int> isa OTHER */
153 var3
= 1; /* easy <var_to:Int> isa OTHER*/
155 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
158 var6
= var_from
>= var_to
;
167 { /* Inline kernel#Int#+ (var_from,var7) */
168 var10
= var_from
+ var7
;
173 { /* Inline kernel#Int#< (var8,var_to) */
174 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
175 /* <var_to:Int> isa OTHER */
176 var13
= 1; /* easy <var_to:Int> isa OTHER*/
178 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
181 var16
= var8
< var_to
;
187 ((void (*)(val
*, val
*, long, long))(self
->class->vft
[COLOR_sorter__AbstractSorter__quick_sort
]))(self
, var_array
, var_from
, var_to
) /* quick_sort on <self:AbstractSorter[nullable Object]>*/;
189 ((void (*)(val
*, val
*, long, long))(self
->class->vft
[COLOR_sorter__AbstractSorter__bubble_sort
]))(self
, var_array
, var_from
, var_to
) /* bubble_sort on <self:AbstractSorter[nullable Object]>*/;
194 /* method sorter#AbstractSorter#sub_sort for (self: Object, Array[nullable Object], Int, Int) */
195 void VIRTUAL_sorter__AbstractSorter__sub_sort(val
* self
, val
* p0
, long p1
, long p2
) {
196 sorter__AbstractSorter__sub_sort(self
, p0
, p1
, p2
);
199 /* method sorter#AbstractSorter#quick_sort for (self: AbstractSorter[nullable Object], Array[nullable Object], Int, Int) */
200 void sorter__AbstractSorter__quick_sort(val
* self
, val
* p0
, long p1
, long p2
) {
201 short int var
/* : Bool */;
204 const struct type
* type_struct
;
205 val
* var_array
/* var array: Array[nullable Object] */;
206 long var_from
/* var from: Int */;
207 long var_to
/* var to: Int */;
208 val
* var1
/* : nullable Object */;
209 val
* var_pivot
/* var pivot: nullable Object */;
210 long var_i
/* var i: Int */;
211 long var_j
/* var j: Int */;
212 short int var2
/* : Bool */;
213 short int var4
/* : Bool */;
216 short int var7
/* : Bool */;
217 short int var8
/* : Bool */;
218 short int var9
/* : Bool */;
219 short int var11
/* : Bool */;
222 short int var14
/* : Bool */;
223 short int var_
/* var : Bool */;
224 val
* var15
/* : nullable Object */;
225 long var16
/* : Int */;
226 long var17
/* : Int */;
227 short int var18
/* : Bool */;
228 short int var20
/* : Bool */;
231 short int var23
/* : Bool */;
232 long var24
/* : Int */;
233 long var25
/* : Int */;
234 long var27
/* : Int */;
235 short int var28
/* : Bool */;
236 short int var29
/* : Bool */;
237 short int var31
/* : Bool */;
240 short int var34
/* : Bool */;
241 short int var_35
/* var : Bool */;
242 val
* var36
/* : nullable Object */;
243 long var37
/* : Int */;
244 long var38
/* : Int */;
245 short int var39
/* : Bool */;
246 short int var41
/* : Bool */;
249 short int var44
/* : Bool */;
250 long var45
/* : Int */;
251 long var46
/* : Int */;
252 long var48
/* : Int */;
253 short int var50
/* : Bool */;
254 short int var52
/* : Bool */;
257 short int var55
/* : Bool */;
258 val
* var56
/* : nullable Object */;
259 val
* var_t
/* var t: nullable Object */;
260 val
* var57
/* : nullable Object */;
261 long var59
/* : Int */;
262 long var60
/* : Int */;
263 long var62
/* : Int */;
264 val
* var63
/* : nullable Object */;
265 long var64
/* : Int */;
266 long var65
/* : Int */;
267 long var67
/* : Int */;
268 long var68
/* : Int */;
269 long var69
/* : Int */;
270 long var71
/* : Int */;
271 /* Covariant cast for argument 0 (array) <p0:Array[nullable Object]> isa Array[AbstractSorter#0] */
272 /* <p0:Array[nullable Object]> isa Array[AbstractSorter#0] */
273 type_struct
= self
->type
->resolution_table
->types
[COLOR_array__Arraysorter__AbstractSorter_FT0
];
274 cltype
= type_struct
->color
;
275 idtype
= type_struct
->id
;
276 if(cltype
>= p0
->type
->table_size
) {
279 var
= p0
->type
->type_table
[cltype
] == idtype
;
282 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/sorter.nit", 45);
288 var1
= ((val
* (*)(val
*, long))(var_array
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_array
, var_from
) /* [] on <var_array:Array[nullable Object]>*/;
293 { /* Inline kernel#Int#> (var_j,var_i) */
294 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
295 /* <var_i:Int> isa OTHER */
296 var4
= 1; /* easy <var_i:Int> isa OTHER*/
298 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
301 var7
= var_j
> var_i
;
308 { /* Inline kernel#Int#<= (var_i,var_to) */
309 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
310 /* <var_to:Int> isa OTHER */
311 var11
= 1; /* easy <var_to:Int> isa OTHER*/
313 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256);
316 var14
= var_i
<= var_to
;
323 var15
= ((val
* (*)(val
*, long))(var_array
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_array
, var_i
) /* [] on <var_array:Array[nullable Object]>*/;
324 var16
= ((long (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_sorter__AbstractSorter__compare
]))(self
, var15
, var_pivot
) /* compare on <self:AbstractSorter[nullable Object]>*/;
326 { /* Inline kernel#Int#<= (var16,var17) */
327 /* Covariant cast for argument 0 (i) <var17:Int> isa OTHER */
328 /* <var17:Int> isa OTHER */
329 var20
= 1; /* easy <var17:Int> isa OTHER*/
331 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256);
334 var23
= var16
<= var17
;
345 { /* Inline kernel#Int#+ (var_i,var24) */
346 var27
= var_i
+ var24
;
352 CONTINUE_label
: (void)0;
354 BREAK_label
: (void)0;
356 { /* Inline kernel#Int#> (var_j,var_i) */
357 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
358 /* <var_i:Int> isa OTHER */
359 var31
= 1; /* easy <var_i:Int> isa OTHER*/
361 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
364 var34
= var_j
> var_i
;
371 var36
= ((val
* (*)(val
*, long))(var_array
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_array
, var_j
) /* [] on <var_array:Array[nullable Object]>*/;
372 var37
= ((long (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_sorter__AbstractSorter__compare
]))(self
, var36
, var_pivot
) /* compare on <self:AbstractSorter[nullable Object]>*/;
374 { /* Inline kernel#Int#>= (var37,var38) */
375 /* Covariant cast for argument 0 (i) <var38:Int> isa OTHER */
376 /* <var38:Int> isa OTHER */
377 var41
= 1; /* easy <var38:Int> isa OTHER*/
379 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
382 var44
= var37
>= var38
;
393 { /* Inline kernel#Int#- (var_j,var45) */
394 var48
= var_j
- var45
;
400 CONTINUE_label49
: (void)0;
402 BREAK_label49
: (void)0;
403 { /* Inline kernel#Int#> (var_j,var_i) */
404 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
405 /* <var_i:Int> isa OTHER */
406 var52
= 1; /* easy <var_i:Int> isa OTHER*/
408 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
411 var55
= var_j
> var_i
;
417 var56
= ((val
* (*)(val
*, long))(var_array
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_array
, var_i
) /* [] on <var_array:Array[nullable Object]>*/;
419 var57
= ((val
* (*)(val
*, long))(var_array
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_array
, var_j
) /* [] on <var_array:Array[nullable Object]>*/;
420 ((void (*)(val
*, long, val
*))(var_array
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_array
, var_i
, var57
) /* []= on <var_array:Array[nullable Object]>*/;
421 ((void (*)(val
*, long, val
*))(var_array
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_array
, var_j
, var_t
) /* []= on <var_array:Array[nullable Object]>*/;
424 CONTINUE_label58
: (void)0;
426 BREAK_label58
: (void)0;
428 { /* Inline kernel#Int#- (var_i,var59) */
429 var62
= var_i
- var59
;
434 var63
= ((val
* (*)(val
*, long))(var_array
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_array
, var60
) /* [] on <var_array:Array[nullable Object]>*/;
435 ((void (*)(val
*, long, val
*))(var_array
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_array
, var_from
, var63
) /* []= on <var_array:Array[nullable Object]>*/;
437 { /* Inline kernel#Int#- (var_i,var64) */
438 var67
= var_i
- var64
;
443 ((void (*)(val
*, long, val
*))(var_array
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_array
, var65
, var_pivot
) /* []= on <var_array:Array[nullable Object]>*/;
445 { /* Inline kernel#Int#- (var_i,var68) */
446 var71
= var_i
- var68
;
451 ((void (*)(val
*, val
*, long, long))(self
->class->vft
[COLOR_sorter__AbstractSorter__sub_sort
]))(self
, var_array
, var_from
, var69
) /* sub_sort on <self:AbstractSorter[nullable Object]>*/;
452 ((void (*)(val
*, val
*, long, long))(self
->class->vft
[COLOR_sorter__AbstractSorter__sub_sort
]))(self
, var_array
, var_i
, var_to
) /* sub_sort on <self:AbstractSorter[nullable Object]>*/;
455 /* method sorter#AbstractSorter#quick_sort for (self: Object, Array[nullable Object], Int, Int) */
456 void VIRTUAL_sorter__AbstractSorter__quick_sort(val
* self
, val
* p0
, long p1
, long p2
) {
457 sorter__AbstractSorter__quick_sort(self
, p0
, p1
, p2
);
460 /* method sorter#AbstractSorter#bubble_sort for (self: AbstractSorter[nullable Object], Array[nullable Object], Int, Int) */
461 void sorter__AbstractSorter__bubble_sort(val
* self
, val
* p0
, long p1
, long p2
) {
462 short int var
/* : Bool */;
465 const struct type
* type_struct
;
466 val
* var_array
/* var array: Array[nullable Object] */;
467 long var_from
/* var from: Int */;
468 long var_to
/* var to: Int */;
469 long var_i
/* var i: Int */;
470 short int var1
/* : Bool */;
471 short int var3
/* : Bool */;
474 short int var6
/* : Bool */;
475 long var_min
/* var min: Int */;
476 val
* var7
/* : nullable Object */;
477 val
* var_min_v
/* var min_v: nullable Object */;
478 long var_j
/* var j: Int */;
479 short int var8
/* : Bool */;
480 short int var10
/* : Bool */;
483 short int var13
/* : Bool */;
484 val
* var14
/* : nullable Object */;
485 long var15
/* : Int */;
486 long var16
/* : Int */;
487 short int var17
/* : Bool */;
488 short int var19
/* : Bool */;
491 short int var22
/* : Bool */;
492 val
* var23
/* : nullable Object */;
493 long var24
/* : Int */;
494 long var25
/* : Int */;
495 long var27
/* : Int */;
496 short int var28
/* : Bool */;
497 short int var30
/* : Bool */;
498 short int var31
/* : Bool */;
499 val
* var32
/* : nullable Object */;
500 long var33
/* : Int */;
501 long var34
/* : Int */;
502 long var36
/* : Int */;
503 /* Covariant cast for argument 0 (array) <p0:Array[nullable Object]> isa Array[AbstractSorter#0] */
504 /* <p0:Array[nullable Object]> isa Array[AbstractSorter#0] */
505 type_struct
= self
->type
->resolution_table
->types
[COLOR_array__Arraysorter__AbstractSorter_FT0
];
506 cltype
= type_struct
->color
;
507 idtype
= type_struct
->id
;
508 if(cltype
>= p0
->type
->table_size
) {
511 var
= p0
->type
->type_table
[cltype
] == idtype
;
514 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/sorter.nit", 66);
522 { /* Inline kernel#Int#< (var_i,var_to) */
523 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
524 /* <var_to:Int> isa OTHER */
525 var3
= 1; /* easy <var_to:Int> isa OTHER*/
527 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
530 var6
= var_i
< var_to
;
537 var7
= ((val
* (*)(val
*, long))(var_array
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_array
, var_i
) /* [] on <var_array:Array[nullable Object]>*/;
541 { /* Inline kernel#Int#<= (var_j,var_to) */
542 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
543 /* <var_to:Int> isa OTHER */
544 var10
= 1; /* easy <var_to:Int> isa OTHER*/
546 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256);
549 var13
= var_j
<= var_to
;
555 var14
= ((val
* (*)(val
*, long))(var_array
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_array
, var_j
) /* [] on <var_array:Array[nullable Object]>*/;
556 var15
= ((long (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_sorter__AbstractSorter__compare
]))(self
, var_min_v
, var14
) /* compare on <self:AbstractSorter[nullable Object]>*/;
558 { /* Inline kernel#Int#> (var15,var16) */
559 /* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
560 /* <var16:Int> isa OTHER */
561 var19
= 1; /* easy <var16:Int> isa OTHER*/
563 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
566 var22
= var15
> var16
;
573 var23
= ((val
* (*)(val
*, long))(var_array
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_array
, var_j
) /* [] on <var_array:Array[nullable Object]>*/;
578 { /* Inline kernel#Int#+ (var_j,var24) */
579 var27
= var_j
+ var24
;
585 CONTINUE_label
: (void)0;
587 BREAK_label
: (void)0;
588 { /* Inline kernel#Int#!= (var_min,var_i) */
589 var30
= var_min
== var_i
;
596 var32
= ((val
* (*)(val
*, long))(var_array
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_array
, var_i
) /* [] on <var_array:Array[nullable Object]>*/;
597 ((void (*)(val
*, long, val
*))(var_array
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_array
, var_min
, var32
) /* []= on <var_array:Array[nullable Object]>*/;
598 ((void (*)(val
*, long, val
*))(var_array
->class->vft
[COLOR_abstract_collection__Sequence___91d_93d_61d
]))(var_array
, var_i
, var_min_v
) /* []= on <var_array:Array[nullable Object]>*/;
602 { /* Inline kernel#Int#+ (var_i,var33) */
603 var36
= var_i
+ var33
;
609 CONTINUE_label37
: (void)0;
611 BREAK_label37
: (void)0;
614 /* method sorter#AbstractSorter#bubble_sort for (self: Object, Array[nullable Object], Int, Int) */
615 void VIRTUAL_sorter__AbstractSorter__bubble_sort(val
* self
, val
* p0
, long p1
, long p2
) {
616 sorter__AbstractSorter__bubble_sort(self
, p0
, p1
, p2
);
619 /* method sorter#ComparableSorter#compare for (self: ComparableSorter[Comparable], Comparable, Comparable): Int */
620 long sorter__ComparableSorter__compare(val
* self
, val
* p0
, val
* p1
) {
621 long var
/* : Int */;
622 short int var1
/* : Bool */;
625 const struct type
* type_struct
;
626 short int var2
/* : Bool */;
629 const struct type
* type_struct5
;
630 val
* var_a
/* var a: Comparable */;
631 val
* var_b
/* var b: Comparable */;
632 long var6
/* : Int */;
633 /* Covariant cast for argument 0 (a) <p0:Comparable> isa AbstractSorter#0 */
634 /* <p0:Comparable> isa AbstractSorter#0 */
635 type_struct
= self
->type
->resolution_table
->types
[COLOR_sorter__AbstractSorter_FT0
];
636 cltype
= type_struct
->color
;
637 idtype
= type_struct
->id
;
638 if(cltype
>= p0
->type
->table_size
) {
641 var1
= p0
->type
->type_table
[cltype
] == idtype
;
644 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/sorter.nit", 94);
647 /* Covariant cast for argument 1 (b) <p1:Comparable> isa AbstractSorter#0 */
648 /* <p1:Comparable> isa AbstractSorter#0 */
649 type_struct5
= self
->type
->resolution_table
->types
[COLOR_sorter__AbstractSorter_FT0
];
650 cltype3
= type_struct5
->color
;
651 idtype4
= type_struct5
->id
;
652 if(cltype3
>= p1
->type
->table_size
) {
655 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
658 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/sorter.nit", 94);
663 var6
= ((long (*)(val
*, val
*))(var_a
->class->vft
[COLOR_kernel__Comparable___60d_61d_62d
]))(var_a
, var_b
) /* <=> on <var_a:Comparable>*/;
669 /* method sorter#ComparableSorter#compare for (self: Object, nullable Object, nullable Object): Int */
670 long VIRTUAL_sorter__ComparableSorter__compare(val
* self
, val
* p0
, val
* p1
) {
671 long var
/* : Int */;
672 long var1
/* : Int */;
673 var1
= sorter__ComparableSorter__compare(self
, p0
, p1
);
678 /* method sorter#ComparableSorter#init for (self: ComparableSorter[Comparable]) */
679 void sorter__ComparableSorter__init(val
* self
) {
682 /* method sorter#ComparableSorter#init for (self: Object) */
683 void VIRTUAL_sorter__ComparableSorter__init(val
* self
) {
684 sorter__ComparableSorter__init(self
);