1 #include "sorter.sep.0.h"
2 /* method sorter#Comparator#sort for (self: Comparator, Array[nullable Object]) */
3 void sorter__Comparator__sort(val
* self
, val
* p0
) {
4 short int var
/* : Bool */;
7 const struct type
* type_struct
;
8 const char* var_class_name
;
9 val
* var_array
/* var array: Array[nullable Object] */;
10 long var1
/* : Int */;
11 long var2
/* : Int */;
12 long var4
/* : Int */;
13 long var5
/* : Int */;
14 long var6
/* : Int */;
15 short int var8
/* : Bool */;
18 const char* var_class_name11
;
19 long var12
/* : Int */;
20 /* Covariant cast for argument 0 (array) <p0:Array[nullable Object]> isa Array[COMPARED] */
21 /* <p0:Array[nullable Object]> isa Array[COMPARED] */
22 type_struct
= self
->type
->resolution_table
->types
[COLOR_array__Arraysorter__Comparator_VTCOMPARED
];
23 cltype
= type_struct
->color
;
24 idtype
= type_struct
->id
;
25 if(cltype
>= p0
->type
->table_size
) {
28 var
= p0
->type
->type_table
[cltype
] == idtype
;
31 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
32 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[COMPARED]", var_class_name
);
33 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/sorter.nit", 80);
39 { /* Inline array#AbstractArrayRead#length (var_array) on <var_array:Array[nullable Object]> */
40 var4
= var_array
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_array:Array[nullable Object]> */
47 { /* Inline kernel#Int#- (var2,var5) on <var2:Int> */
48 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
49 /* <var5:Int> isa OTHER */
50 var8
= 1; /* easy <var5:Int> isa OTHER*/
51 if (unlikely(!var8
)) {
52 var_class_name11
= type_kernel__Int
.name
;
53 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11
);
54 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
64 sorter__Comparator__sub_sort(self
, var_array
, var1
, var6
); /* Direct call sorter#Comparator#sub_sort on <self:Comparator>*/
68 /* method sorter#Comparator#sort for (self: Object, Array[nullable Object]) */
69 void VIRTUAL_sorter__Comparator__sort(val
* self
, val
* p0
) {
70 sorter__Comparator__sort(self
, p0
); /* Direct call sorter#Comparator#sort on <self:Object(Comparator)>*/
73 /* method sorter#Comparator#sub_sort for (self: Comparator, Array[nullable Object], Int, Int) */
74 void sorter__Comparator__sub_sort(val
* self
, val
* p0
, long p1
, long p2
) {
75 short int var
/* : Bool */;
78 const struct type
* type_struct
;
79 const char* var_class_name
;
80 val
* var_array
/* var array: Array[nullable Object] */;
81 long var_from
/* var from: Int */;
82 long var_to
/* var to: Int */;
83 short int var1
/* : Bool */;
84 short int var3
/* : Bool */;
87 const char* var_class_name6
;
88 short int var7
/* : Bool */;
89 long var8
/* : Int */;
90 long var9
/* : Int */;
91 short int var11
/* : Bool */;
94 const char* var_class_name14
;
95 long var15
/* : Int */;
96 short int var16
/* : Bool */;
97 short int var18
/* : Bool */;
100 const char* var_class_name21
;
101 short int var22
/* : Bool */;
102 /* Covariant cast for argument 0 (array) <p0:Array[nullable Object]> isa Array[COMPARED] */
103 /* <p0:Array[nullable Object]> isa Array[COMPARED] */
104 type_struct
= self
->type
->resolution_table
->types
[COLOR_array__Arraysorter__Comparator_VTCOMPARED
];
105 cltype
= type_struct
->color
;
106 idtype
= type_struct
->id
;
107 if(cltype
>= p0
->type
->table_size
) {
110 var
= p0
->type
->type_table
[cltype
] == idtype
;
112 if (unlikely(!var
)) {
113 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
114 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[COMPARED]", var_class_name
);
115 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/sorter.nit", 89);
122 { /* Inline kernel#Int#>= (var_from,var_to) on <var_from:Int> */
123 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
124 /* <var_to:Int> isa OTHER */
125 var3
= 1; /* easy <var_to:Int> isa OTHER*/
126 if (unlikely(!var3
)) {
127 var_class_name6
= type_kernel__Int
.name
;
128 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name6
);
129 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
132 var7
= var_from
>= var_to
;
143 { /* Inline kernel#Int#+ (var_from,var8) on <var_from:Int> */
144 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
145 /* <var8:Int> isa OTHER */
146 var11
= 1; /* easy <var8:Int> isa OTHER*/
147 if (unlikely(!var11
)) {
148 var_class_name14
= type_kernel__Int
.name
;
149 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14
);
150 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
153 var15
= var_from
+ var8
;
160 { /* Inline kernel#Int#< (var9,var_to) on <var9:Int> */
161 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
162 /* <var_to:Int> isa OTHER */
163 var18
= 1; /* easy <var_to:Int> isa OTHER*/
164 if (unlikely(!var18
)) {
165 var_class_name21
= type_kernel__Int
.name
;
166 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21
);
167 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
170 var22
= var9
< var_to
;
178 sorter__Comparator__quick_sort(self
, var_array
, var_from
, var_to
); /* Direct call sorter#Comparator#quick_sort on <self:Comparator>*/
182 sorter__Comparator__bubble_sort(self
, var_array
, var_from
, var_to
); /* Direct call sorter#Comparator#bubble_sort on <self:Comparator>*/
188 /* method sorter#Comparator#sub_sort for (self: Object, Array[nullable Object], Int, Int) */
189 void VIRTUAL_sorter__Comparator__sub_sort(val
* self
, val
* p0
, long p1
, long p2
) {
190 sorter__Comparator__sub_sort(self
, p0
, p1
, p2
); /* Direct call sorter#Comparator#sub_sort on <self:Object(Comparator)>*/
193 /* method sorter#Comparator#quick_sort for (self: Comparator, Array[nullable Object], Int, Int) */
194 void sorter__Comparator__quick_sort(val
* self
, val
* p0
, long p1
, long p2
) {
195 short int var
/* : Bool */;
198 const struct type
* type_struct
;
199 const char* var_class_name
;
200 val
* var_array
/* var array: Array[nullable Object] */;
201 long var_from
/* var from: Int */;
202 long var_to
/* var to: Int */;
203 val
* var1
/* : nullable Object */;
204 val
* var_pivot
/* var pivot: nullable Object */;
205 long var_i
/* var i: Int */;
206 long var_j
/* var j: Int */;
207 short int var2
/* : Bool */;
208 short int var4
/* : Bool */;
211 const char* var_class_name7
;
212 short int var8
/* : Bool */;
213 short int var9
/* : Bool */;
214 short int var10
/* : Bool */;
215 short int var12
/* : Bool */;
218 const char* var_class_name15
;
219 short int var16
/* : Bool */;
220 short int var_
/* var : Bool */;
221 val
* var17
/* : nullable Object */;
222 long var18
/* : Int */;
223 long var19
/* : Int */;
224 short int var20
/* : Bool */;
225 short int var22
/* : Bool */;
228 const char* var_class_name25
;
229 short int var26
/* : Bool */;
230 long var27
/* : Int */;
231 long var28
/* : Int */;
232 short int var30
/* : Bool */;
235 const char* var_class_name33
;
236 long var34
/* : Int */;
237 short int var35
/* : Bool */;
238 short int var36
/* : Bool */;
239 short int var38
/* : Bool */;
242 const char* var_class_name41
;
243 short int var42
/* : Bool */;
244 short int var_43
/* var : Bool */;
245 val
* var44
/* : nullable Object */;
246 long var45
/* : Int */;
247 long var46
/* : Int */;
248 short int var47
/* : Bool */;
249 short int var49
/* : Bool */;
252 const char* var_class_name52
;
253 short int var53
/* : Bool */;
254 long var54
/* : Int */;
255 long var55
/* : Int */;
256 short int var57
/* : Bool */;
259 const char* var_class_name60
;
260 long var61
/* : Int */;
261 short int var63
/* : Bool */;
262 short int var65
/* : Bool */;
265 const char* var_class_name68
;
266 short int var69
/* : Bool */;
267 val
* var70
/* : nullable Object */;
268 val
* var_t
/* var t: nullable Object */;
269 val
* var71
/* : nullable Object */;
270 long var73
/* : Int */;
271 long var74
/* : Int */;
272 short int var76
/* : Bool */;
275 const char* var_class_name79
;
276 long var80
/* : Int */;
277 val
* var81
/* : nullable Object */;
278 long var82
/* : Int */;
279 long var83
/* : Int */;
280 short int var85
/* : Bool */;
283 const char* var_class_name88
;
284 long var89
/* : Int */;
285 long var90
/* : Int */;
286 long var91
/* : Int */;
287 short int var93
/* : Bool */;
290 const char* var_class_name96
;
291 long var97
/* : Int */;
292 /* Covariant cast for argument 0 (array) <p0:Array[nullable Object]> isa Array[COMPARED] */
293 /* <p0:Array[nullable Object]> isa Array[COMPARED] */
294 type_struct
= self
->type
->resolution_table
->types
[COLOR_array__Arraysorter__Comparator_VTCOMPARED
];
295 cltype
= type_struct
->color
;
296 idtype
= type_struct
->id
;
297 if(cltype
>= p0
->type
->table_size
) {
300 var
= p0
->type
->type_table
[cltype
] == idtype
;
302 if (unlikely(!var
)) {
303 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
304 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[COMPARED]", var_class_name
);
305 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/sorter.nit", 101);
312 var1
= array__Array___91d_93d(var_array
, var_from
);
319 { /* Inline kernel#Int#> (var_j,var_i) on <var_j:Int> */
320 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
321 /* <var_i:Int> isa OTHER */
322 var4
= 1; /* easy <var_i:Int> isa OTHER*/
323 if (unlikely(!var4
)) {
324 var_class_name7
= type_kernel__Int
.name
;
325 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7
);
326 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
329 var8
= var_j
> var_i
;
338 { /* Inline kernel#Int#<= (var_i,var_to) on <var_i:Int> */
339 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
340 /* <var_to:Int> isa OTHER */
341 var12
= 1; /* easy <var_to:Int> isa OTHER*/
342 if (unlikely(!var12
)) {
343 var_class_name15
= type_kernel__Int
.name
;
344 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15
);
345 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
348 var16
= var_i
<= var_to
;
357 var17
= array__Array___91d_93d(var_array
, var_i
);
360 var18
= ((long (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_sorter__Comparator__compare
]))(self
, var17
, var_pivot
) /* compare on <self:Comparator>*/;
364 { /* Inline kernel#Int#<= (var18,var19) on <var18:Int> */
365 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
366 /* <var19:Int> isa OTHER */
367 var22
= 1; /* easy <var19:Int> isa OTHER*/
368 if (unlikely(!var22
)) {
369 var_class_name25
= type_kernel__Int
.name
;
370 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25
);
371 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
374 var26
= var18
<= var19
;
387 { /* Inline kernel#Int#+ (var_i,var27) on <var_i:Int> */
388 /* Covariant cast for argument 0 (i) <var27:Int> isa OTHER */
389 /* <var27:Int> isa OTHER */
390 var30
= 1; /* easy <var27:Int> isa OTHER*/
391 if (unlikely(!var30
)) {
392 var_class_name33
= type_kernel__Int
.name
;
393 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33
);
394 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
397 var34
= var_i
+ var27
;
408 BREAK_label
: (void)0;
411 { /* Inline kernel#Int#> (var_j,var_i) on <var_j:Int> */
412 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
413 /* <var_i:Int> isa OTHER */
414 var38
= 1; /* easy <var_i:Int> isa OTHER*/
415 if (unlikely(!var38
)) {
416 var_class_name41
= type_kernel__Int
.name
;
417 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41
);
418 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
421 var42
= var_j
> var_i
;
430 var44
= array__Array___91d_93d(var_array
, var_j
);
433 var45
= ((long (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_sorter__Comparator__compare
]))(self
, var44
, var_pivot
) /* compare on <self:Comparator>*/;
437 { /* Inline kernel#Int#>= (var45,var46) on <var45:Int> */
438 /* Covariant cast for argument 0 (i) <var46:Int> isa OTHER */
439 /* <var46:Int> isa OTHER */
440 var49
= 1; /* easy <var46:Int> isa OTHER*/
441 if (unlikely(!var49
)) {
442 var_class_name52
= type_kernel__Int
.name
;
443 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52
);
444 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
447 var53
= var45
>= var46
;
460 { /* Inline kernel#Int#- (var_j,var54) on <var_j:Int> */
461 /* Covariant cast for argument 0 (i) <var54:Int> isa OTHER */
462 /* <var54:Int> isa OTHER */
463 var57
= 1; /* easy <var54:Int> isa OTHER*/
464 if (unlikely(!var57
)) {
465 var_class_name60
= type_kernel__Int
.name
;
466 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name60
);
467 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
470 var61
= var_j
- var54
;
481 BREAK_label62
: (void)0;
483 { /* Inline kernel#Int#> (var_j,var_i) on <var_j:Int> */
484 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
485 /* <var_i:Int> isa OTHER */
486 var65
= 1; /* easy <var_i:Int> isa OTHER*/
487 if (unlikely(!var65
)) {
488 var_class_name68
= type_kernel__Int
.name
;
489 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name68
);
490 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
493 var69
= var_j
> var_i
;
501 var70
= array__Array___91d_93d(var_array
, var_i
);
505 var71
= array__Array___91d_93d(var_array
, var_j
);
508 array__Array___91d_93d_61d(var_array
, var_i
, var71
); /* Direct call array#Array#[]= on <var_array:Array[nullable Object]>*/
511 array__Array___91d_93d_61d(var_array
, var_j
, var_t
); /* Direct call array#Array#[]= on <var_array:Array[nullable Object]>*/
519 BREAK_label72
: (void)0;
522 { /* Inline kernel#Int#- (var_i,var73) on <var_i:Int> */
523 /* Covariant cast for argument 0 (i) <var73:Int> isa OTHER */
524 /* <var73:Int> isa OTHER */
525 var76
= 1; /* easy <var73:Int> isa OTHER*/
526 if (unlikely(!var76
)) {
527 var_class_name79
= type_kernel__Int
.name
;
528 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name79
);
529 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
532 var80
= var_i
- var73
;
539 var81
= array__Array___91d_93d(var_array
, var74
);
542 array__Array___91d_93d_61d(var_array
, var_from
, var81
); /* Direct call array#Array#[]= on <var_array:Array[nullable Object]>*/
546 { /* Inline kernel#Int#- (var_i,var82) on <var_i:Int> */
547 /* Covariant cast for argument 0 (i) <var82:Int> isa OTHER */
548 /* <var82:Int> isa OTHER */
549 var85
= 1; /* easy <var82:Int> isa OTHER*/
550 if (unlikely(!var85
)) {
551 var_class_name88
= type_kernel__Int
.name
;
552 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name88
);
553 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
556 var89
= var_i
- var82
;
563 array__Array___91d_93d_61d(var_array
, var83
, var_pivot
); /* Direct call array#Array#[]= on <var_array:Array[nullable Object]>*/
567 { /* Inline kernel#Int#- (var_i,var90) on <var_i:Int> */
568 /* Covariant cast for argument 0 (i) <var90:Int> isa OTHER */
569 /* <var90:Int> isa OTHER */
570 var93
= 1; /* easy <var90:Int> isa OTHER*/
571 if (unlikely(!var93
)) {
572 var_class_name96
= type_kernel__Int
.name
;
573 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name96
);
574 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
577 var97
= var_i
- var90
;
584 sorter__Comparator__sub_sort(self
, var_array
, var_from
, var91
); /* Direct call sorter#Comparator#sub_sort on <self:Comparator>*/
587 sorter__Comparator__sub_sort(self
, var_array
, var_i
, var_to
); /* Direct call sorter#Comparator#sub_sort on <self:Comparator>*/
591 /* method sorter#Comparator#quick_sort for (self: Object, Array[nullable Object], Int, Int) */
592 void VIRTUAL_sorter__Comparator__quick_sort(val
* self
, val
* p0
, long p1
, long p2
) {
593 sorter__Comparator__quick_sort(self
, p0
, p1
, p2
); /* Direct call sorter#Comparator#quick_sort on <self:Object(Comparator)>*/
596 /* method sorter#Comparator#bubble_sort for (self: Comparator, Array[nullable Object], Int, Int) */
597 void sorter__Comparator__bubble_sort(val
* self
, val
* p0
, long p1
, long p2
) {
598 short int var
/* : Bool */;
601 const struct type
* type_struct
;
602 const char* var_class_name
;
603 val
* var_array
/* var array: Array[nullable Object] */;
604 long var_from
/* var from: Int */;
605 long var_to
/* var to: Int */;
606 long var_i
/* var i: Int */;
607 short int var1
/* : Bool */;
608 short int var3
/* : Bool */;
611 const char* var_class_name6
;
612 short int var7
/* : Bool */;
613 long var_min
/* var min: Int */;
614 val
* var8
/* : nullable Object */;
615 val
* var_min_v
/* var min_v: nullable Object */;
616 long var_j
/* var j: Int */;
617 short int var9
/* : Bool */;
618 short int var11
/* : Bool */;
621 const char* var_class_name14
;
622 short int var15
/* : Bool */;
623 val
* var16
/* : nullable Object */;
624 long var17
/* : Int */;
625 long var18
/* : Int */;
626 short int var19
/* : Bool */;
627 short int var21
/* : Bool */;
630 const char* var_class_name24
;
631 short int var25
/* : Bool */;
632 val
* var26
/* : nullable Object */;
633 long var27
/* : Int */;
634 long var28
/* : Int */;
635 short int var30
/* : Bool */;
638 const char* var_class_name33
;
639 long var34
/* : Int */;
640 short int var35
/* : Bool */;
641 short int var36
/* : Bool */;
642 short int var38
/* : Bool */;
643 short int var39
/* : Bool */;
644 val
* var40
/* : nullable Object */;
645 long var41
/* : Int */;
646 long var42
/* : Int */;
647 short int var44
/* : Bool */;
650 const char* var_class_name47
;
651 long var48
/* : Int */;
652 /* Covariant cast for argument 0 (array) <p0:Array[nullable Object]> isa Array[COMPARED] */
653 /* <p0:Array[nullable Object]> isa Array[COMPARED] */
654 type_struct
= self
->type
->resolution_table
->types
[COLOR_array__Arraysorter__Comparator_VTCOMPARED
];
655 cltype
= type_struct
->color
;
656 idtype
= type_struct
->id
;
657 if(cltype
>= p0
->type
->table_size
) {
660 var
= p0
->type
->type_table
[cltype
] == idtype
;
662 if (unlikely(!var
)) {
663 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
664 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[COMPARED]", var_class_name
);
665 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/sorter.nit", 126);
674 { /* Inline kernel#Int#< (var_i,var_to) on <var_i:Int> */
675 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
676 /* <var_to:Int> isa OTHER */
677 var3
= 1; /* easy <var_to:Int> isa OTHER*/
678 if (unlikely(!var3
)) {
679 var_class_name6
= type_kernel__Int
.name
;
680 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name6
);
681 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
684 var7
= var_i
< var_to
;
693 var8
= array__Array___91d_93d(var_array
, var_i
);
699 { /* Inline kernel#Int#<= (var_j,var_to) on <var_j:Int> */
700 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
701 /* <var_to:Int> isa OTHER */
702 var11
= 1; /* easy <var_to:Int> isa OTHER*/
703 if (unlikely(!var11
)) {
704 var_class_name14
= type_kernel__Int
.name
;
705 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14
);
706 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
709 var15
= var_j
<= var_to
;
717 var16
= array__Array___91d_93d(var_array
, var_j
);
720 var17
= ((long (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_sorter__Comparator__compare
]))(self
, var_min_v
, var16
) /* compare on <self:Comparator>*/;
724 { /* Inline kernel#Int#> (var17,var18) on <var17:Int> */
725 /* Covariant cast for argument 0 (i) <var18:Int> isa OTHER */
726 /* <var18:Int> isa OTHER */
727 var21
= 1; /* easy <var18:Int> isa OTHER*/
728 if (unlikely(!var21
)) {
729 var_class_name24
= type_kernel__Int
.name
;
730 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24
);
731 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
734 var25
= var17
> var18
;
743 var26
= array__Array___91d_93d(var_array
, var_j
);
750 { /* Inline kernel#Int#+ (var_j,var27) on <var_j:Int> */
751 /* Covariant cast for argument 0 (i) <var27:Int> isa OTHER */
752 /* <var27:Int> isa OTHER */
753 var30
= 1; /* easy <var27:Int> isa OTHER*/
754 if (unlikely(!var30
)) {
755 var_class_name33
= type_kernel__Int
.name
;
756 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33
);
757 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
760 var34
= var_j
+ var27
;
771 BREAK_label
: (void)0;
773 { /* Inline kernel#Int#!= (var_min,var_i) on <var_min:Int> */
774 var38
= var_min
== var_i
;
784 var40
= array__Array___91d_93d(var_array
, var_i
);
787 array__Array___91d_93d_61d(var_array
, var_min
, var40
); /* Direct call array#Array#[]= on <var_array:Array[nullable Object]>*/
790 array__Array___91d_93d_61d(var_array
, var_i
, var_min_v
); /* Direct call array#Array#[]= on <var_array:Array[nullable Object]>*/
796 { /* Inline kernel#Int#+ (var_i,var41) on <var_i:Int> */
797 /* Covariant cast for argument 0 (i) <var41:Int> isa OTHER */
798 /* <var41:Int> isa OTHER */
799 var44
= 1; /* easy <var41:Int> isa OTHER*/
800 if (unlikely(!var44
)) {
801 var_class_name47
= type_kernel__Int
.name
;
802 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47
);
803 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
806 var48
= var_i
+ var41
;
817 BREAK_label49
: (void)0;
820 /* method sorter#Comparator#bubble_sort for (self: Object, Array[nullable Object], Int, Int) */
821 void VIRTUAL_sorter__Comparator__bubble_sort(val
* self
, val
* p0
, long p1
, long p2
) {
822 sorter__Comparator__bubble_sort(self
, p0
, p1
, p2
); /* Direct call sorter#Comparator#bubble_sort on <self:Object(Comparator)>*/
825 /* method sorter#DefaultComparator#compare for (self: DefaultComparator, Comparable, Comparable): Int */
826 long sorter__DefaultComparator__compare(val
* self
, val
* p0
, val
* p1
) {
827 long var
/* : Int */;
828 short int var1
/* : Bool */;
831 const struct type
* type_struct
;
832 const char* var_class_name
;
833 short int var2
/* : Bool */;
836 const struct type
* type_struct5
;
837 const char* var_class_name6
;
838 val
* var_a
/* var a: Comparable */;
839 val
* var_b
/* var b: Comparable */;
840 long var7
/* : Int */;
841 /* Covariant cast for argument 0 (a) <p0:Comparable> isa COMPARED */
842 /* <p0:Comparable> isa COMPARED */
843 type_struct
= self
->type
->resolution_table
->types
[COLOR_sorter__Comparator_VTCOMPARED
];
844 cltype
= type_struct
->color
;
845 idtype
= type_struct
->id
;
846 if(cltype
>= p0
->type
->table_size
) {
849 var1
= p0
->type
->type_table
[cltype
] == idtype
;
851 if (unlikely(!var1
)) {
852 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
853 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPARED", var_class_name
);
854 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/sorter.nit", 258);
857 /* Covariant cast for argument 1 (b) <p1:Comparable> isa COMPARED */
858 /* <p1:Comparable> isa COMPARED */
859 type_struct5
= self
->type
->resolution_table
->types
[COLOR_sorter__Comparator_VTCOMPARED
];
860 cltype3
= type_struct5
->color
;
861 idtype4
= type_struct5
->id
;
862 if(cltype3
>= p1
->type
->table_size
) {
865 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
867 if (unlikely(!var2
)) {
868 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
869 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPARED", var_class_name6
);
870 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/sorter.nit", 258);
876 var7
= ((long (*)(val
*, val
*))(var_a
->class->vft
[COLOR_kernel__Comparable___60d_61d_62d
]))(var_a
, var_b
) /* <=> on <var_a:Comparable>*/;
883 /* method sorter#DefaultComparator#compare for (self: Object, nullable Object, nullable Object): Int */
884 long VIRTUAL_sorter__DefaultComparator__compare(val
* self
, val
* p0
, val
* p1
) {
885 long var
/* : Int */;
886 long var1
/* : Int */;
887 var1
= sorter__DefaultComparator__compare(self
, p0
, p1
);
892 /* method sorter#Object#default_comparator for (self: Object): DefaultComparator */
893 val
* sorter__Object__default_comparator(val
* self
) {
894 val
* var
/* : DefaultComparator */;
896 static int varonce_guard
;
897 val
* var1
/* : DefaultComparator */;
898 val
* var2
/* : DefaultComparator */;
902 var2
= NEW_sorter__DefaultComparator(&type_sorter__DefaultComparator
);
904 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:DefaultComparator>*/;
915 /* method sorter#Object#default_comparator for (self: Object): DefaultComparator */
916 val
* VIRTUAL_sorter__Object__default_comparator(val
* self
) {
917 val
* var
/* : DefaultComparator */;
918 val
* var1
/* : DefaultComparator */;
919 var1
= sorter__Object__default_comparator(self
);