misc/vim: inform the user when no results are found
[nit.git] / c_src / standard__sorter.sep.1.c
1 #include "standard__sorter.sep.0.h"
2 /* method sorter#Comparator#sort for (self: Comparator, Array[nullable Object]) */
3 void standard___standard__Comparator___sort(val* self, val* p0) {
4 short int var /* : Bool */;
5 int cltype;
6 int idtype;
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 */;
16 int cltype9;
17 int idtype10;
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_standard__Array__standard__sorter__Comparator__COMPARED];
23 cltype = type_struct->color;
24 idtype = type_struct->id;
25 if(cltype >= p0->type->table_size) {
26 var = 0;
27 } else {
28 var = p0->type->type_table[cltype] == idtype;
29 }
30 if (unlikely(!var)) {
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", FILE_standard__sorter, 80);
34 show_backtrace(1);
35 }
36 var_array = p0;
37 var1 = 0;
38 {
39 { /* Inline array#AbstractArrayRead#length (var_array) on <var_array:Array[nullable Object]> */
40 var4 = var_array->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_array:Array[nullable Object]> */
41 var2 = var4;
42 RET_LABEL3:(void)0;
43 }
44 }
45 var5 = 1;
46 {
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_standard__Int.name;
53 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
54 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
55 show_backtrace(1);
56 }
57 var12 = var2 - var5;
58 var6 = var12;
59 goto RET_LABEL7;
60 RET_LABEL7:(void)0;
61 }
62 }
63 {
64 standard___standard__Comparator___sub_sort(self, var_array, var1, var6); /* Direct call sorter#Comparator#sub_sort on <self:Comparator>*/
65 }
66 RET_LABEL:;
67 }
68 /* method sorter#Comparator#sub_sort for (self: Comparator, Array[nullable Object], Int, Int) */
69 void standard___standard__Comparator___sub_sort(val* self, val* p0, long p1, long p2) {
70 short int var /* : Bool */;
71 int cltype;
72 int idtype;
73 const struct type* type_struct;
74 const char* var_class_name;
75 val* var_array /* var array: Array[nullable Object] */;
76 long var_from /* var from: Int */;
77 long var_to /* var to: Int */;
78 short int var1 /* : Bool */;
79 short int var3 /* : Bool */;
80 int cltype4;
81 int idtype5;
82 const char* var_class_name6;
83 short int var7 /* : Bool */;
84 long var8 /* : Int */;
85 long var9 /* : Int */;
86 short int var11 /* : Bool */;
87 int cltype12;
88 int idtype13;
89 const char* var_class_name14;
90 long var15 /* : Int */;
91 short int var16 /* : Bool */;
92 short int var18 /* : Bool */;
93 int cltype19;
94 int idtype20;
95 const char* var_class_name21;
96 short int var22 /* : Bool */;
97 /* Covariant cast for argument 0 (array) <p0:Array[nullable Object]> isa Array[COMPARED] */
98 /* <p0:Array[nullable Object]> isa Array[COMPARED] */
99 type_struct = self->type->resolution_table->types[COLOR_standard__Array__standard__sorter__Comparator__COMPARED];
100 cltype = type_struct->color;
101 idtype = type_struct->id;
102 if(cltype >= p0->type->table_size) {
103 var = 0;
104 } else {
105 var = p0->type->type_table[cltype] == idtype;
106 }
107 if (unlikely(!var)) {
108 var_class_name = p0 == NULL ? "null" : p0->type->name;
109 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[COMPARED]", var_class_name);
110 PRINT_ERROR(" (%s:%d)\n", FILE_standard__sorter, 89);
111 show_backtrace(1);
112 }
113 var_array = p0;
114 var_from = p1;
115 var_to = p2;
116 {
117 { /* Inline kernel#Int#>= (var_from,var_to) on <var_from:Int> */
118 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
119 /* <var_to:Int> isa OTHER */
120 var3 = 1; /* easy <var_to:Int> isa OTHER*/
121 if (unlikely(!var3)) {
122 var_class_name6 = type_standard__Int.name;
123 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name6);
124 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411);
125 show_backtrace(1);
126 }
127 var7 = var_from >= var_to;
128 var1 = var7;
129 goto RET_LABEL2;
130 RET_LABEL2:(void)0;
131 }
132 }
133 if (var1){
134 goto RET_LABEL;
135 } else {
136 var8 = 7;
137 {
138 { /* Inline kernel#Int#+ (var_from,var8) on <var_from:Int> */
139 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
140 /* <var8:Int> isa OTHER */
141 var11 = 1; /* easy <var8:Int> isa OTHER*/
142 if (unlikely(!var11)) {
143 var_class_name14 = type_standard__Int.name;
144 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
145 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
146 show_backtrace(1);
147 }
148 var15 = var_from + var8;
149 var9 = var15;
150 goto RET_LABEL10;
151 RET_LABEL10:(void)0;
152 }
153 }
154 {
155 { /* Inline kernel#Int#< (var9,var_to) on <var9:Int> */
156 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
157 /* <var_to:Int> isa OTHER */
158 var18 = 1; /* easy <var_to:Int> isa OTHER*/
159 if (unlikely(!var18)) {
160 var_class_name21 = type_standard__Int.name;
161 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
162 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
163 show_backtrace(1);
164 }
165 var22 = var9 < var_to;
166 var16 = var22;
167 goto RET_LABEL17;
168 RET_LABEL17:(void)0;
169 }
170 }
171 if (var16){
172 {
173 standard___standard__Comparator___quick_sort(self, var_array, var_from, var_to); /* Direct call sorter#Comparator#quick_sort on <self:Comparator>*/
174 }
175 } else {
176 {
177 standard___standard__Comparator___bubble_sort(self, var_array, var_from, var_to); /* Direct call sorter#Comparator#bubble_sort on <self:Comparator>*/
178 }
179 }
180 }
181 RET_LABEL:;
182 }
183 /* method sorter#Comparator#quick_sort for (self: Comparator, Array[nullable Object], Int, Int) */
184 void standard___standard__Comparator___quick_sort(val* self, val* p0, long p1, long p2) {
185 short int var /* : Bool */;
186 int cltype;
187 int idtype;
188 const struct type* type_struct;
189 const char* var_class_name;
190 val* var_array /* var array: Array[nullable Object] */;
191 long var_from /* var from: Int */;
192 long var_to /* var to: Int */;
193 val* var1 /* : nullable Object */;
194 val* var_pivot /* var pivot: nullable Object */;
195 long var_i /* var i: Int */;
196 long var_j /* var j: Int */;
197 short int var2 /* : Bool */;
198 short int var4 /* : Bool */;
199 int cltype5;
200 int idtype6;
201 const char* var_class_name7;
202 short int var8 /* : Bool */;
203 short int var9 /* : Bool */;
204 short int var10 /* : Bool */;
205 short int var12 /* : Bool */;
206 int cltype13;
207 int idtype14;
208 const char* var_class_name15;
209 short int var16 /* : Bool */;
210 short int var_ /* var : Bool */;
211 val* var17 /* : nullable Object */;
212 long var18 /* : Int */;
213 long var19 /* : Int */;
214 short int var20 /* : Bool */;
215 short int var22 /* : Bool */;
216 int cltype23;
217 int idtype24;
218 const char* var_class_name25;
219 short int var26 /* : Bool */;
220 long var27 /* : Int */;
221 long var28 /* : Int */;
222 short int var30 /* : Bool */;
223 int cltype31;
224 int idtype32;
225 const char* var_class_name33;
226 long var34 /* : Int */;
227 short int var35 /* : Bool */;
228 short int var36 /* : Bool */;
229 short int var38 /* : Bool */;
230 int cltype39;
231 int idtype40;
232 const char* var_class_name41;
233 short int var42 /* : Bool */;
234 short int var_43 /* var : Bool */;
235 val* var44 /* : nullable Object */;
236 long var45 /* : Int */;
237 long var46 /* : Int */;
238 short int var47 /* : Bool */;
239 short int var49 /* : Bool */;
240 int cltype50;
241 int idtype51;
242 const char* var_class_name52;
243 short int var53 /* : Bool */;
244 long var54 /* : Int */;
245 long var55 /* : Int */;
246 short int var57 /* : Bool */;
247 int cltype58;
248 int idtype59;
249 const char* var_class_name60;
250 long var61 /* : Int */;
251 short int var63 /* : Bool */;
252 short int var65 /* : Bool */;
253 int cltype66;
254 int idtype67;
255 const char* var_class_name68;
256 short int var69 /* : Bool */;
257 val* var70 /* : nullable Object */;
258 val* var_t /* var t: nullable Object */;
259 val* var71 /* : nullable Object */;
260 long var73 /* : Int */;
261 long var74 /* : Int */;
262 short int var76 /* : Bool */;
263 int cltype77;
264 int idtype78;
265 const char* var_class_name79;
266 long var80 /* : Int */;
267 val* var81 /* : nullable Object */;
268 long var82 /* : Int */;
269 long var83 /* : Int */;
270 short int var85 /* : Bool */;
271 int cltype86;
272 int idtype87;
273 const char* var_class_name88;
274 long var89 /* : Int */;
275 long var90 /* : Int */;
276 long var91 /* : Int */;
277 short int var93 /* : Bool */;
278 int cltype94;
279 int idtype95;
280 const char* var_class_name96;
281 long var97 /* : Int */;
282 /* Covariant cast for argument 0 (array) <p0:Array[nullable Object]> isa Array[COMPARED] */
283 /* <p0:Array[nullable Object]> isa Array[COMPARED] */
284 type_struct = self->type->resolution_table->types[COLOR_standard__Array__standard__sorter__Comparator__COMPARED];
285 cltype = type_struct->color;
286 idtype = type_struct->id;
287 if(cltype >= p0->type->table_size) {
288 var = 0;
289 } else {
290 var = p0->type->type_table[cltype] == idtype;
291 }
292 if (unlikely(!var)) {
293 var_class_name = p0 == NULL ? "null" : p0->type->name;
294 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[COMPARED]", var_class_name);
295 PRINT_ERROR(" (%s:%d)\n", FILE_standard__sorter, 101);
296 show_backtrace(1);
297 }
298 var_array = p0;
299 var_from = p1;
300 var_to = p2;
301 {
302 var1 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_array, var_from);
303 }
304 var_pivot = var1;
305 var_i = var_from;
306 var_j = var_to;
307 for(;;) {
308 {
309 { /* Inline kernel#Int#> (var_j,var_i) on <var_j:Int> */
310 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
311 /* <var_i:Int> isa OTHER */
312 var4 = 1; /* easy <var_i:Int> isa OTHER*/
313 if (unlikely(!var4)) {
314 var_class_name7 = type_standard__Int.name;
315 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
316 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
317 show_backtrace(1);
318 }
319 var8 = var_j > var_i;
320 var2 = var8;
321 goto RET_LABEL3;
322 RET_LABEL3:(void)0;
323 }
324 }
325 if (var2){
326 for(;;) {
327 {
328 { /* Inline kernel#Int#<= (var_i,var_to) on <var_i:Int> */
329 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
330 /* <var_to:Int> isa OTHER */
331 var12 = 1; /* easy <var_to:Int> isa OTHER*/
332 if (unlikely(!var12)) {
333 var_class_name15 = type_standard__Int.name;
334 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
335 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409);
336 show_backtrace(1);
337 }
338 var16 = var_i <= var_to;
339 var10 = var16;
340 goto RET_LABEL11;
341 RET_LABEL11:(void)0;
342 }
343 }
344 var_ = var10;
345 if (var10){
346 {
347 var17 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_array, var_i);
348 }
349 {
350 var18 = ((long (*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_standard__sorter__Comparator__compare]))(self, var17, var_pivot) /* compare on <self:Comparator>*/;
351 }
352 var19 = 0;
353 {
354 { /* Inline kernel#Int#<= (var18,var19) on <var18:Int> */
355 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
356 /* <var19:Int> isa OTHER */
357 var22 = 1; /* easy <var19:Int> isa OTHER*/
358 if (unlikely(!var22)) {
359 var_class_name25 = type_standard__Int.name;
360 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
361 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409);
362 show_backtrace(1);
363 }
364 var26 = var18 <= var19;
365 var20 = var26;
366 goto RET_LABEL21;
367 RET_LABEL21:(void)0;
368 }
369 }
370 var9 = var20;
371 } else {
372 var9 = var_;
373 }
374 if (var9){
375 var27 = 1;
376 {
377 { /* Inline kernel#Int#+ (var_i,var27) on <var_i:Int> */
378 /* Covariant cast for argument 0 (i) <var27:Int> isa OTHER */
379 /* <var27:Int> isa OTHER */
380 var30 = 1; /* easy <var27:Int> isa OTHER*/
381 if (unlikely(!var30)) {
382 var_class_name33 = type_standard__Int.name;
383 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
384 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
385 show_backtrace(1);
386 }
387 var34 = var_i + var27;
388 var28 = var34;
389 goto RET_LABEL29;
390 RET_LABEL29:(void)0;
391 }
392 }
393 var_i = var28;
394 } else {
395 goto BREAK_label;
396 }
397 }
398 BREAK_label: (void)0;
399 for(;;) {
400 {
401 { /* Inline kernel#Int#> (var_j,var_i) on <var_j:Int> */
402 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
403 /* <var_i:Int> isa OTHER */
404 var38 = 1; /* easy <var_i:Int> isa OTHER*/
405 if (unlikely(!var38)) {
406 var_class_name41 = type_standard__Int.name;
407 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
408 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
409 show_backtrace(1);
410 }
411 var42 = var_j > var_i;
412 var36 = var42;
413 goto RET_LABEL37;
414 RET_LABEL37:(void)0;
415 }
416 }
417 var_43 = var36;
418 if (var36){
419 {
420 var44 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_array, var_j);
421 }
422 {
423 var45 = ((long (*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_standard__sorter__Comparator__compare]))(self, var44, var_pivot) /* compare on <self:Comparator>*/;
424 }
425 var46 = 0;
426 {
427 { /* Inline kernel#Int#>= (var45,var46) on <var45:Int> */
428 /* Covariant cast for argument 0 (i) <var46:Int> isa OTHER */
429 /* <var46:Int> isa OTHER */
430 var49 = 1; /* easy <var46:Int> isa OTHER*/
431 if (unlikely(!var49)) {
432 var_class_name52 = type_standard__Int.name;
433 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52);
434 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411);
435 show_backtrace(1);
436 }
437 var53 = var45 >= var46;
438 var47 = var53;
439 goto RET_LABEL48;
440 RET_LABEL48:(void)0;
441 }
442 }
443 var35 = var47;
444 } else {
445 var35 = var_43;
446 }
447 if (var35){
448 var54 = 1;
449 {
450 { /* Inline kernel#Int#- (var_j,var54) on <var_j:Int> */
451 /* Covariant cast for argument 0 (i) <var54:Int> isa OTHER */
452 /* <var54:Int> isa OTHER */
453 var57 = 1; /* easy <var54:Int> isa OTHER*/
454 if (unlikely(!var57)) {
455 var_class_name60 = type_standard__Int.name;
456 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name60);
457 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
458 show_backtrace(1);
459 }
460 var61 = var_j - var54;
461 var55 = var61;
462 goto RET_LABEL56;
463 RET_LABEL56:(void)0;
464 }
465 }
466 var_j = var55;
467 } else {
468 goto BREAK_label62;
469 }
470 }
471 BREAK_label62: (void)0;
472 {
473 { /* Inline kernel#Int#> (var_j,var_i) on <var_j:Int> */
474 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
475 /* <var_i:Int> isa OTHER */
476 var65 = 1; /* easy <var_i:Int> isa OTHER*/
477 if (unlikely(!var65)) {
478 var_class_name68 = type_standard__Int.name;
479 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name68);
480 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
481 show_backtrace(1);
482 }
483 var69 = var_j > var_i;
484 var63 = var69;
485 goto RET_LABEL64;
486 RET_LABEL64:(void)0;
487 }
488 }
489 if (var63){
490 {
491 var70 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_array, var_i);
492 }
493 var_t = var70;
494 {
495 var71 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_array, var_j);
496 }
497 {
498 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_array, var_i, var71); /* Direct call array#Array#[]= on <var_array:Array[nullable Object]>*/
499 }
500 {
501 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_array, var_j, var_t); /* Direct call array#Array#[]= on <var_array:Array[nullable Object]>*/
502 }
503 } else {
504 }
505 } else {
506 goto BREAK_label72;
507 }
508 }
509 BREAK_label72: (void)0;
510 var73 = 1;
511 {
512 { /* Inline kernel#Int#- (var_i,var73) on <var_i:Int> */
513 /* Covariant cast for argument 0 (i) <var73:Int> isa OTHER */
514 /* <var73:Int> isa OTHER */
515 var76 = 1; /* easy <var73:Int> isa OTHER*/
516 if (unlikely(!var76)) {
517 var_class_name79 = type_standard__Int.name;
518 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name79);
519 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
520 show_backtrace(1);
521 }
522 var80 = var_i - var73;
523 var74 = var80;
524 goto RET_LABEL75;
525 RET_LABEL75:(void)0;
526 }
527 }
528 {
529 var81 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_array, var74);
530 }
531 {
532 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_array, var_from, var81); /* Direct call array#Array#[]= on <var_array:Array[nullable Object]>*/
533 }
534 var82 = 1;
535 {
536 { /* Inline kernel#Int#- (var_i,var82) on <var_i:Int> */
537 /* Covariant cast for argument 0 (i) <var82:Int> isa OTHER */
538 /* <var82:Int> isa OTHER */
539 var85 = 1; /* easy <var82:Int> isa OTHER*/
540 if (unlikely(!var85)) {
541 var_class_name88 = type_standard__Int.name;
542 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name88);
543 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
544 show_backtrace(1);
545 }
546 var89 = var_i - var82;
547 var83 = var89;
548 goto RET_LABEL84;
549 RET_LABEL84:(void)0;
550 }
551 }
552 {
553 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_array, var83, var_pivot); /* Direct call array#Array#[]= on <var_array:Array[nullable Object]>*/
554 }
555 var90 = 2;
556 {
557 { /* Inline kernel#Int#- (var_i,var90) on <var_i:Int> */
558 /* Covariant cast for argument 0 (i) <var90:Int> isa OTHER */
559 /* <var90:Int> isa OTHER */
560 var93 = 1; /* easy <var90:Int> isa OTHER*/
561 if (unlikely(!var93)) {
562 var_class_name96 = type_standard__Int.name;
563 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name96);
564 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
565 show_backtrace(1);
566 }
567 var97 = var_i - var90;
568 var91 = var97;
569 goto RET_LABEL92;
570 RET_LABEL92:(void)0;
571 }
572 }
573 {
574 standard___standard__Comparator___sub_sort(self, var_array, var_from, var91); /* Direct call sorter#Comparator#sub_sort on <self:Comparator>*/
575 }
576 {
577 standard___standard__Comparator___sub_sort(self, var_array, var_i, var_to); /* Direct call sorter#Comparator#sub_sort on <self:Comparator>*/
578 }
579 RET_LABEL:;
580 }
581 /* method sorter#Comparator#bubble_sort for (self: Comparator, Array[nullable Object], Int, Int) */
582 void standard___standard__Comparator___bubble_sort(val* self, val* p0, long p1, long p2) {
583 short int var /* : Bool */;
584 int cltype;
585 int idtype;
586 const struct type* type_struct;
587 const char* var_class_name;
588 val* var_array /* var array: Array[nullable Object] */;
589 long var_from /* var from: Int */;
590 long var_to /* var to: Int */;
591 long var_i /* var i: Int */;
592 short int var1 /* : Bool */;
593 short int var3 /* : Bool */;
594 int cltype4;
595 int idtype5;
596 const char* var_class_name6;
597 short int var7 /* : Bool */;
598 long var_min /* var min: Int */;
599 val* var8 /* : nullable Object */;
600 val* var_min_v /* var min_v: nullable Object */;
601 long var_j /* var j: Int */;
602 short int var9 /* : Bool */;
603 short int var11 /* : Bool */;
604 int cltype12;
605 int idtype13;
606 const char* var_class_name14;
607 short int var15 /* : Bool */;
608 val* var16 /* : nullable Object */;
609 long var17 /* : Int */;
610 long var18 /* : Int */;
611 short int var19 /* : Bool */;
612 short int var21 /* : Bool */;
613 int cltype22;
614 int idtype23;
615 const char* var_class_name24;
616 short int var25 /* : Bool */;
617 val* var26 /* : nullable Object */;
618 long var27 /* : Int */;
619 long var28 /* : Int */;
620 short int var30 /* : Bool */;
621 int cltype31;
622 int idtype32;
623 const char* var_class_name33;
624 long var34 /* : Int */;
625 short int var35 /* : Bool */;
626 short int var37 /* : Bool */;
627 short int var38 /* : Bool */;
628 val* var39 /* : nullable Object */;
629 long var40 /* : Int */;
630 long var41 /* : Int */;
631 short int var43 /* : Bool */;
632 int cltype44;
633 int idtype45;
634 const char* var_class_name46;
635 long var47 /* : Int */;
636 /* Covariant cast for argument 0 (array) <p0:Array[nullable Object]> isa Array[COMPARED] */
637 /* <p0:Array[nullable Object]> isa Array[COMPARED] */
638 type_struct = self->type->resolution_table->types[COLOR_standard__Array__standard__sorter__Comparator__COMPARED];
639 cltype = type_struct->color;
640 idtype = type_struct->id;
641 if(cltype >= p0->type->table_size) {
642 var = 0;
643 } else {
644 var = p0->type->type_table[cltype] == idtype;
645 }
646 if (unlikely(!var)) {
647 var_class_name = p0 == NULL ? "null" : p0->type->name;
648 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[COMPARED]", var_class_name);
649 PRINT_ERROR(" (%s:%d)\n", FILE_standard__sorter, 126);
650 show_backtrace(1);
651 }
652 var_array = p0;
653 var_from = p1;
654 var_to = p2;
655 var_i = var_from;
656 for(;;) {
657 {
658 { /* Inline kernel#Int#< (var_i,var_to) on <var_i:Int> */
659 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
660 /* <var_to:Int> isa OTHER */
661 var3 = 1; /* easy <var_to:Int> isa OTHER*/
662 if (unlikely(!var3)) {
663 var_class_name6 = type_standard__Int.name;
664 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name6);
665 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
666 show_backtrace(1);
667 }
668 var7 = var_i < var_to;
669 var1 = var7;
670 goto RET_LABEL2;
671 RET_LABEL2:(void)0;
672 }
673 }
674 if (var1){
675 var_min = var_i;
676 {
677 var8 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_array, var_i);
678 }
679 var_min_v = var8;
680 var_j = var_i;
681 for(;;) {
682 {
683 { /* Inline kernel#Int#<= (var_j,var_to) on <var_j:Int> */
684 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
685 /* <var_to:Int> isa OTHER */
686 var11 = 1; /* easy <var_to:Int> isa OTHER*/
687 if (unlikely(!var11)) {
688 var_class_name14 = type_standard__Int.name;
689 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
690 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409);
691 show_backtrace(1);
692 }
693 var15 = var_j <= var_to;
694 var9 = var15;
695 goto RET_LABEL10;
696 RET_LABEL10:(void)0;
697 }
698 }
699 if (var9){
700 {
701 var16 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_array, var_j);
702 }
703 {
704 var17 = ((long (*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_standard__sorter__Comparator__compare]))(self, var_min_v, var16) /* compare on <self:Comparator>*/;
705 }
706 var18 = 0;
707 {
708 { /* Inline kernel#Int#> (var17,var18) on <var17:Int> */
709 /* Covariant cast for argument 0 (i) <var18:Int> isa OTHER */
710 /* <var18:Int> isa OTHER */
711 var21 = 1; /* easy <var18:Int> isa OTHER*/
712 if (unlikely(!var21)) {
713 var_class_name24 = type_standard__Int.name;
714 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
715 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
716 show_backtrace(1);
717 }
718 var25 = var17 > var18;
719 var19 = var25;
720 goto RET_LABEL20;
721 RET_LABEL20:(void)0;
722 }
723 }
724 if (var19){
725 var_min = var_j;
726 {
727 var26 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_array, var_j);
728 }
729 var_min_v = var26;
730 } else {
731 }
732 var27 = 1;
733 {
734 { /* Inline kernel#Int#+ (var_j,var27) on <var_j:Int> */
735 /* Covariant cast for argument 0 (i) <var27:Int> isa OTHER */
736 /* <var27:Int> isa OTHER */
737 var30 = 1; /* easy <var27:Int> isa OTHER*/
738 if (unlikely(!var30)) {
739 var_class_name33 = type_standard__Int.name;
740 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
741 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
742 show_backtrace(1);
743 }
744 var34 = var_j + var27;
745 var28 = var34;
746 goto RET_LABEL29;
747 RET_LABEL29:(void)0;
748 }
749 }
750 var_j = var28;
751 } else {
752 goto BREAK_label;
753 }
754 }
755 BREAK_label: (void)0;
756 {
757 { /* Inline kernel#Int#!= (var_min,var_i) on <var_min:Int> */
758 var37 = var_min == var_i;
759 var38 = !var37;
760 var35 = var38;
761 goto RET_LABEL36;
762 RET_LABEL36:(void)0;
763 }
764 }
765 if (var35){
766 {
767 var39 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_array, var_i);
768 }
769 {
770 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_array, var_min, var39); /* Direct call array#Array#[]= on <var_array:Array[nullable Object]>*/
771 }
772 {
773 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_array, var_i, var_min_v); /* Direct call array#Array#[]= on <var_array:Array[nullable Object]>*/
774 }
775 } else {
776 }
777 var40 = 1;
778 {
779 { /* Inline kernel#Int#+ (var_i,var40) on <var_i:Int> */
780 /* Covariant cast for argument 0 (i) <var40:Int> isa OTHER */
781 /* <var40:Int> isa OTHER */
782 var43 = 1; /* easy <var40:Int> isa OTHER*/
783 if (unlikely(!var43)) {
784 var_class_name46 = type_standard__Int.name;
785 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name46);
786 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
787 show_backtrace(1);
788 }
789 var47 = var_i + var40;
790 var41 = var47;
791 goto RET_LABEL42;
792 RET_LABEL42:(void)0;
793 }
794 }
795 var_i = var41;
796 } else {
797 goto BREAK_label48;
798 }
799 }
800 BREAK_label48: (void)0;
801 RET_LABEL:;
802 }
803 /* method sorter#DefaultComparator#compare for (self: DefaultComparator, Comparable, Comparable): Int */
804 long standard___standard__DefaultComparator___Comparator__compare(val* self, val* p0, val* p1) {
805 long var /* : Int */;
806 short int var1 /* : Bool */;
807 int cltype;
808 int idtype;
809 const struct type* type_struct;
810 const char* var_class_name;
811 short int var2 /* : Bool */;
812 int cltype3;
813 int idtype4;
814 const struct type* type_struct5;
815 const char* var_class_name6;
816 val* var_a /* var a: Comparable */;
817 val* var_b /* var b: Comparable */;
818 long var7 /* : Int */;
819 /* Covariant cast for argument 0 (a) <p0:Comparable> isa COMPARED */
820 /* <p0:Comparable> isa COMPARED */
821 type_struct = self->type->resolution_table->types[COLOR_standard__sorter__Comparator__COMPARED];
822 cltype = type_struct->color;
823 idtype = type_struct->id;
824 if(cltype >= p0->type->table_size) {
825 var1 = 0;
826 } else {
827 var1 = p0->type->type_table[cltype] == idtype;
828 }
829 if (unlikely(!var1)) {
830 var_class_name = p0 == NULL ? "null" : p0->type->name;
831 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPARED", var_class_name);
832 PRINT_ERROR(" (%s:%d)\n", FILE_standard__sorter, 258);
833 show_backtrace(1);
834 }
835 /* Covariant cast for argument 1 (b) <p1:Comparable> isa COMPARED */
836 /* <p1:Comparable> isa COMPARED */
837 type_struct5 = self->type->resolution_table->types[COLOR_standard__sorter__Comparator__COMPARED];
838 cltype3 = type_struct5->color;
839 idtype4 = type_struct5->id;
840 if(cltype3 >= p1->type->table_size) {
841 var2 = 0;
842 } else {
843 var2 = p1->type->type_table[cltype3] == idtype4;
844 }
845 if (unlikely(!var2)) {
846 var_class_name6 = p1 == NULL ? "null" : p1->type->name;
847 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPARED", var_class_name6);
848 PRINT_ERROR(" (%s:%d)\n", FILE_standard__sorter, 258);
849 show_backtrace(1);
850 }
851 var_a = p0;
852 var_b = p1;
853 {
854 var7 = ((long (*)(val* self, val* p0))(var_a->class->vft[COLOR_standard__kernel__Comparable___60d_61d_62d]))(var_a, var_b) /* <=> on <var_a:Comparable>*/;
855 }
856 var = var7;
857 goto RET_LABEL;
858 RET_LABEL:;
859 return var;
860 }
861 /* method sorter#Object#default_comparator for (self: Object): DefaultComparator */
862 val* standard__sorter___Object___default_comparator(val* self) {
863 val* var /* : DefaultComparator */;
864 static val* varonce;
865 static int varonce_guard;
866 val* var1 /* : DefaultComparator */;
867 val* var2 /* : DefaultComparator */;
868 if (varonce_guard) {
869 var1 = varonce;
870 } else {
871 var2 = NEW_standard__DefaultComparator(&type_standard__DefaultComparator);
872 {
873 { /* Inline kernel#Object#init (var2) on <var2:DefaultComparator> */
874 RET_LABEL3:(void)0;
875 }
876 }
877 var1 = var2;
878 varonce = var1;
879 varonce_guard = 1;
880 }
881 var = var1;
882 goto RET_LABEL;
883 RET_LABEL:;
884 return var;
885 }