model_utils: add MEntityNameSorter
[nit.git] / c_src / kernel.sep.1.c
1 #include "kernel.sep.0.h"
2 /* method kernel#Object#object_id for (self: Object): Int */
3 long kernel__Object__object_id(val* self) {
4 long var /* : Int */;
5 long var1 /* : Int */;
6 var1 = (long)self;
7 var = var1;
8 goto RET_LABEL;
9 RET_LABEL:;
10 return var;
11 }
12 /* method kernel#Object#object_id for (self: Object): Int */
13 long VIRTUAL_kernel__Object__object_id(val* self) {
14 long var /* : Int */;
15 long var1 /* : Int */;
16 long var3 /* : Int */;
17 { /* Inline kernel#Object#object_id (self) */
18 var3 = (long)self;
19 var1 = var3;
20 goto RET_LABEL2;
21 RET_LABEL2:(void)0;
22 }
23 var = var1;
24 RET_LABEL:;
25 return var;
26 }
27 /* method kernel#Object#is_same_type for (self: Object, Object): Bool */
28 short int kernel__Object__is_same_type(val* self, val* p0) {
29 short int var /* : Bool */;
30 short int var1 /* : Bool */;
31 var1 = (self == p0) || (self != NULL && p0 != NULL && self->class == p0->class); /* is_same_type_test */
32 var = var1;
33 goto RET_LABEL;
34 RET_LABEL:;
35 return var;
36 }
37 /* method kernel#Object#is_same_type for (self: Object, Object): Bool */
38 short int VIRTUAL_kernel__Object__is_same_type(val* self, val* p0) {
39 short int var /* : Bool */;
40 short int var1 /* : Bool */;
41 short int var3 /* : Bool */;
42 { /* Inline kernel#Object#is_same_type (self,p0) */
43 var3 = (self == p0) || (self != NULL && p0 != NULL && self->class == p0->class); /* is_same_type_test */
44 var1 = var3;
45 goto RET_LABEL2;
46 RET_LABEL2:(void)0;
47 }
48 var = var1;
49 RET_LABEL:;
50 return var;
51 }
52 /* method kernel#Object#is_same_instance for (self: Object, nullable Object): Bool */
53 short int kernel__Object__is_same_instance(val* self, val* p0) {
54 short int var /* : Bool */;
55 short int var1 /* : Bool */;
56 var1 = self == p0 || (p0 != NULL && self->class == p0->class && ((self->class->box_kind == 1 && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)p0)->value) || (self->class->box_kind == 2 && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)p0)->value) || (self->class->box_kind == 3 && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)p0)->value) || (self->class->box_kind == 4 && ((struct instance_kernel__Float*)self)->value == ((struct instance_kernel__Float*)p0)->value) || (self->class->box_kind == 5 && ((struct instance_string__NativeString*)self)->value == ((struct instance_string__NativeString*)p0)->value) || (self->class->box_kind == 6 && ((struct instance_kernel__Pointer*)self)->value == ((struct instance_kernel__Pointer*)p0)->value)));
57 var = var1;
58 goto RET_LABEL;
59 RET_LABEL:;
60 return var;
61 }
62 /* method kernel#Object#is_same_instance for (self: Object, nullable Object): Bool */
63 short int VIRTUAL_kernel__Object__is_same_instance(val* self, val* p0) {
64 short int var /* : Bool */;
65 short int var1 /* : Bool */;
66 short int var3 /* : Bool */;
67 { /* Inline kernel#Object#is_same_instance (self,p0) */
68 var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((self->class->box_kind == 1 && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)p0)->value) || (self->class->box_kind == 2 && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)p0)->value) || (self->class->box_kind == 3 && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)p0)->value) || (self->class->box_kind == 4 && ((struct instance_kernel__Float*)self)->value == ((struct instance_kernel__Float*)p0)->value) || (self->class->box_kind == 5 && ((struct instance_string__NativeString*)self)->value == ((struct instance_string__NativeString*)p0)->value) || (self->class->box_kind == 6 && ((struct instance_kernel__Pointer*)self)->value == ((struct instance_kernel__Pointer*)p0)->value)));
69 var1 = var3;
70 goto RET_LABEL2;
71 RET_LABEL2:(void)0;
72 }
73 var = var1;
74 RET_LABEL:;
75 return var;
76 }
77 /* method kernel#Object#== for (self: Object, nullable Object): Bool */
78 short int kernel__Object___61d_61d(val* self, val* p0) {
79 short int var /* : Bool */;
80 val* var_other /* var other: nullable Object */;
81 short int var1 /* : Bool */;
82 var_other = p0;
83 var1 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Object__is_same_instance]))(self, var_other) /* is_same_instance on <self:Object>*/;
84 var = var1;
85 goto RET_LABEL;
86 RET_LABEL:;
87 return var;
88 }
89 /* method kernel#Object#== for (self: Object, nullable Object): Bool */
90 short int VIRTUAL_kernel__Object___61d_61d(val* self, val* p0) {
91 short int var /* : Bool */;
92 short int var1 /* : Bool */;
93 var1 = kernel__Object___61d_61d(self, p0);
94 var = var1;
95 RET_LABEL:;
96 return var;
97 }
98 /* method kernel#Object#!= for (self: Object, nullable Object): Bool */
99 short int kernel__Object___33d_61d(val* self, val* p0) {
100 short int var /* : Bool */;
101 val* var_other /* var other: nullable Object */;
102 short int var1 /* : Bool */;
103 short int var2 /* : Bool */;
104 var_other = p0;
105 var1 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Object___61d_61d]))(self, var_other) /* == on <self:Object>*/;
106 var2 = !var1;
107 var = var2;
108 goto RET_LABEL;
109 RET_LABEL:;
110 return var;
111 }
112 /* method kernel#Object#!= for (self: Object, nullable Object): Bool */
113 short int VIRTUAL_kernel__Object___33d_61d(val* self, val* p0) {
114 short int var /* : Bool */;
115 short int var1 /* : Bool */;
116 var1 = kernel__Object___33d_61d(self, p0);
117 var = var1;
118 RET_LABEL:;
119 return var;
120 }
121 /* method kernel#Object#output for (self: Object) */
122 void kernel__Object__output(val* self) {
123 char var /* : Char */;
124 long var2 /* : Int */;
125 char var4 /* : Char */;
126 var = '<';
127 { /* Inline kernel#Char#output (var) */
128 printf("%c", var);
129 RET_LABEL1:(void)0;
130 }
131 var2 = ((long (*)(val*))(self->class->vft[COLOR_kernel__Object__object_id]))(self) /* object_id on <self:Object>*/;
132 { /* Inline kernel#Int#output (var2) */
133 printf("%ld\n", var2);
134 RET_LABEL3:(void)0;
135 }
136 var4 = '>';
137 { /* Inline kernel#Char#output (var4) */
138 printf("%c", var4);
139 RET_LABEL5:(void)0;
140 }
141 RET_LABEL:;
142 }
143 /* method kernel#Object#output for (self: Object) */
144 void VIRTUAL_kernel__Object__output(val* self) {
145 kernel__Object__output(self);
146 RET_LABEL:;
147 }
148 /* method kernel#Object#output_class_name for (self: Object) */
149 void kernel__Object__output_class_name(val* self) {
150 const char* var_class_name;
151 var_class_name = self == NULL ? "null" : self->type->name;
152 printf("%s\n", var_class_name);
153 RET_LABEL:;
154 }
155 /* method kernel#Object#output_class_name for (self: Object) */
156 void VIRTUAL_kernel__Object__output_class_name(val* self) {
157 const char* var_class_name;
158 { /* Inline kernel#Object#output_class_name (self) */
159 var_class_name = self == NULL ? "null" : self->type->name;
160 printf("%s\n", var_class_name);
161 RET_LABEL1:(void)0;
162 }
163 RET_LABEL:;
164 }
165 /* method kernel#Object#exit for (self: Object, Int) */
166 void kernel__Object__exit(val* self, long p0) {
167 exit(p0);
168 RET_LABEL:;
169 }
170 /* method kernel#Object#exit for (self: Object, Int) */
171 void VIRTUAL_kernel__Object__exit(val* self, long p0) {
172 { /* Inline kernel#Object#exit (self,p0) */
173 exit(p0);
174 RET_LABEL1:(void)0;
175 }
176 RET_LABEL:;
177 }
178 /* method kernel#Object#sys for (self: Object): Sys */
179 val* kernel__Object__sys(val* self) {
180 val* var /* : Sys */;
181 val* var1 /* : Sys */;
182 var1 = glob_sys;
183 var = var1;
184 goto RET_LABEL;
185 RET_LABEL:;
186 return var;
187 }
188 /* method kernel#Object#sys for (self: Object): Sys */
189 val* VIRTUAL_kernel__Object__sys(val* self) {
190 val* var /* : Sys */;
191 val* var1 /* : Sys */;
192 val* var3 /* : Sys */;
193 { /* Inline kernel#Object#sys (self) */
194 var3 = glob_sys;
195 var1 = var3;
196 goto RET_LABEL2;
197 RET_LABEL2:(void)0;
198 }
199 var = var1;
200 RET_LABEL:;
201 return var;
202 }
203 /* method kernel#Object#hash for (self: Object): Int */
204 long kernel__Object__hash(val* self) {
205 long var /* : Int */;
206 long var1 /* : Int */;
207 long var2 /* : Int */;
208 long var3 /* : Int */;
209 long var5 /* : Int */;
210 var1 = ((long (*)(val*))(self->class->vft[COLOR_kernel__Object__object_id]))(self) /* object_id on <self:Object>*/;
211 var2 = 8;
212 { /* Inline kernel#Int#/ (var1,var2) */
213 var5 = var1 / var2;
214 var3 = var5;
215 goto RET_LABEL4;
216 RET_LABEL4:(void)0;
217 }
218 var = var3;
219 goto RET_LABEL;
220 RET_LABEL:;
221 return var;
222 }
223 /* method kernel#Object#hash for (self: Object): Int */
224 long VIRTUAL_kernel__Object__hash(val* self) {
225 long var /* : Int */;
226 long var1 /* : Int */;
227 var1 = kernel__Object__hash(self);
228 var = var1;
229 RET_LABEL:;
230 return var;
231 }
232 /* method kernel#Sys#main for (self: Sys) */
233 void kernel__Sys__main(val* self) {
234 RET_LABEL:;
235 }
236 /* method kernel#Sys#main for (self: Object) */
237 void VIRTUAL_kernel__Sys__main(val* self) {
238 kernel__Sys__main(self);
239 RET_LABEL:;
240 }
241 /* method kernel#Sys#init for (self: Sys) */
242 void kernel__Sys__init(val* self) {
243 RET_LABEL:;
244 }
245 /* method kernel#Sys#init for (self: Object) */
246 void VIRTUAL_kernel__Sys__init(val* self) {
247 kernel__Sys__init(self);
248 RET_LABEL:;
249 }
250 /* method kernel#Comparable#< for (self: Comparable, Comparable): Bool */
251 short int kernel__Comparable___60d(val* self, val* p0) {
252 short int var /* : Bool */;
253 short int var1 /* : Bool */;
254 int cltype;
255 int idtype;
256 const struct type* type_struct;
257 const char* var_class_name;
258 const char* var_class_name2;
259 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
260 /* <p0:Comparable> isa OTHER */
261 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
262 cltype = type_struct->color;
263 idtype = type_struct->id;
264 if(cltype >= p0->type->table_size) {
265 var1 = 0;
266 } else {
267 var1 = p0->type->type_table[cltype] == idtype;
268 }
269 if (!var1) {
270 var_class_name = p0 == NULL ? "null" : p0->type->name;
271 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
272 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 99);
273 show_backtrace(1);
274 }
275 var_class_name2 = self == NULL ? "null" : self->type->name;
276 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "<", var_class_name2);
277 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 99);
278 show_backtrace(1);
279 RET_LABEL:;
280 return var;
281 }
282 /* method kernel#Comparable#< for (self: Object, Comparable): Bool */
283 short int VIRTUAL_kernel__Comparable___60d(val* self, val* p0) {
284 short int var /* : Bool */;
285 short int var1 /* : Bool */;
286 var1 = kernel__Comparable___60d(self, p0);
287 var = var1;
288 RET_LABEL:;
289 return var;
290 }
291 /* method kernel#Comparable#<= for (self: Comparable, Comparable): Bool */
292 short int kernel__Comparable___60d_61d(val* self, val* p0) {
293 short int var /* : Bool */;
294 short int var1 /* : Bool */;
295 int cltype;
296 int idtype;
297 const struct type* type_struct;
298 const char* var_class_name;
299 val* var_other /* var other: Comparable */;
300 short int var2 /* : Bool */;
301 short int var3 /* : Bool */;
302 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
303 /* <p0:Comparable> isa OTHER */
304 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
305 cltype = type_struct->color;
306 idtype = type_struct->id;
307 if(cltype >= p0->type->table_size) {
308 var1 = 0;
309 } else {
310 var1 = p0->type->type_table[cltype] == idtype;
311 }
312 if (!var1) {
313 var_class_name = p0 == NULL ? "null" : p0->type->name;
314 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
315 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 102);
316 show_backtrace(1);
317 }
318 var_other = p0;
319 var2 = ((short int (*)(val*, val*))(var_other->class->vft[COLOR_kernel__Comparable___60d]))(var_other, self) /* < on <var_other:Comparable>*/;
320 var3 = !var2;
321 var = var3;
322 goto RET_LABEL;
323 RET_LABEL:;
324 return var;
325 }
326 /* method kernel#Comparable#<= for (self: Object, Comparable): Bool */
327 short int VIRTUAL_kernel__Comparable___60d_61d(val* self, val* p0) {
328 short int var /* : Bool */;
329 short int var1 /* : Bool */;
330 var1 = kernel__Comparable___60d_61d(self, p0);
331 var = var1;
332 RET_LABEL:;
333 return var;
334 }
335 /* method kernel#Comparable#>= for (self: Comparable, Comparable): Bool */
336 short int kernel__Comparable___62d_61d(val* self, val* p0) {
337 short int var /* : Bool */;
338 short int var1 /* : Bool */;
339 int cltype;
340 int idtype;
341 const struct type* type_struct;
342 const char* var_class_name;
343 val* var_other /* var other: Comparable */;
344 short int var2 /* : Bool */;
345 short int var3 /* : Bool */;
346 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
347 /* <p0:Comparable> isa OTHER */
348 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
349 cltype = type_struct->color;
350 idtype = type_struct->id;
351 if(cltype >= p0->type->table_size) {
352 var1 = 0;
353 } else {
354 var1 = p0->type->type_table[cltype] == idtype;
355 }
356 if (!var1) {
357 var_class_name = p0 == NULL ? "null" : p0->type->name;
358 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
359 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 106);
360 show_backtrace(1);
361 }
362 var_other = p0;
363 var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_other) /* < on <self:Comparable>*/;
364 var3 = !var2;
365 var = var3;
366 goto RET_LABEL;
367 RET_LABEL:;
368 return var;
369 }
370 /* method kernel#Comparable#>= for (self: Object, Comparable): Bool */
371 short int VIRTUAL_kernel__Comparable___62d_61d(val* self, val* p0) {
372 short int var /* : Bool */;
373 short int var1 /* : Bool */;
374 var1 = kernel__Comparable___62d_61d(self, p0);
375 var = var1;
376 RET_LABEL:;
377 return var;
378 }
379 /* method kernel#Comparable#> for (self: Comparable, Comparable): Bool */
380 short int kernel__Comparable___62d(val* self, val* p0) {
381 short int var /* : Bool */;
382 short int var1 /* : Bool */;
383 int cltype;
384 int idtype;
385 const struct type* type_struct;
386 const char* var_class_name;
387 val* var_other /* var other: Comparable */;
388 short int var2 /* : Bool */;
389 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
390 /* <p0:Comparable> isa OTHER */
391 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
392 cltype = type_struct->color;
393 idtype = type_struct->id;
394 if(cltype >= p0->type->table_size) {
395 var1 = 0;
396 } else {
397 var1 = p0->type->type_table[cltype] == idtype;
398 }
399 if (!var1) {
400 var_class_name = p0 == NULL ? "null" : p0->type->name;
401 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
402 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 110);
403 show_backtrace(1);
404 }
405 var_other = p0;
406 var2 = ((short int (*)(val*, val*))(var_other->class->vft[COLOR_kernel__Comparable___60d]))(var_other, self) /* < on <var_other:Comparable>*/;
407 var = var2;
408 goto RET_LABEL;
409 RET_LABEL:;
410 return var;
411 }
412 /* method kernel#Comparable#> for (self: Object, Comparable): Bool */
413 short int VIRTUAL_kernel__Comparable___62d(val* self, val* p0) {
414 short int var /* : Bool */;
415 short int var1 /* : Bool */;
416 var1 = kernel__Comparable___62d(self, p0);
417 var = var1;
418 RET_LABEL:;
419 return var;
420 }
421 /* method kernel#Comparable#<=> for (self: Comparable, Comparable): Int */
422 long kernel__Comparable___60d_61d_62d(val* self, val* p0) {
423 long var /* : Int */;
424 short int var1 /* : Bool */;
425 int cltype;
426 int idtype;
427 const struct type* type_struct;
428 const char* var_class_name;
429 val* var_other /* var other: Comparable */;
430 short int var2 /* : Bool */;
431 long var3 /* : Int */;
432 long var4 /* : Int */;
433 long var6 /* : Int */;
434 short int var7 /* : Bool */;
435 long var8 /* : Int */;
436 long var9 /* : Int */;
437 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
438 /* <p0:Comparable> isa OTHER */
439 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
440 cltype = type_struct->color;
441 idtype = type_struct->id;
442 if(cltype >= p0->type->table_size) {
443 var1 = 0;
444 } else {
445 var1 = p0->type->type_table[cltype] == idtype;
446 }
447 if (!var1) {
448 var_class_name = p0 == NULL ? "null" : p0->type->name;
449 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
450 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 113);
451 show_backtrace(1);
452 }
453 var_other = p0;
454 var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_other) /* < on <self:Comparable>*/;
455 if (var2){
456 var3 = 1;
457 { /* Inline kernel#Int#unary - (var3) */
458 var6 = -var3;
459 var4 = var6;
460 goto RET_LABEL5;
461 RET_LABEL5:(void)0;
462 }
463 var = var4;
464 goto RET_LABEL;
465 } else {
466 var7 = ((short int (*)(val*, val*))(var_other->class->vft[COLOR_kernel__Comparable___60d]))(var_other, self) /* < on <var_other:Comparable>*/;
467 if (var7){
468 var8 = 1;
469 var = var8;
470 goto RET_LABEL;
471 } else {
472 var9 = 0;
473 var = var9;
474 goto RET_LABEL;
475 }
476 }
477 RET_LABEL:;
478 return var;
479 }
480 /* method kernel#Comparable#<=> for (self: Object, Comparable): Int */
481 long VIRTUAL_kernel__Comparable___60d_61d_62d(val* self, val* p0) {
482 long var /* : Int */;
483 long var1 /* : Int */;
484 var1 = kernel__Comparable___60d_61d_62d(self, p0);
485 var = var1;
486 RET_LABEL:;
487 return var;
488 }
489 /* method kernel#Comparable#is_between for (self: Comparable, Comparable, Comparable): Bool */
490 short int kernel__Comparable__is_between(val* self, val* p0, val* p1) {
491 short int var /* : Bool */;
492 short int var1 /* : Bool */;
493 int cltype;
494 int idtype;
495 const struct type* type_struct;
496 const char* var_class_name;
497 short int var2 /* : Bool */;
498 int cltype3;
499 int idtype4;
500 const struct type* type_struct5;
501 const char* var_class_name6;
502 val* var_c /* var c: Comparable */;
503 val* var_d /* var d: Comparable */;
504 short int var7 /* : Bool */;
505 short int var8 /* : Bool */;
506 short int var_ /* var : Bool */;
507 short int var9 /* : Bool */;
508 /* Covariant cast for argument 0 (c) <p0:Comparable> isa OTHER */
509 /* <p0:Comparable> isa OTHER */
510 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
511 cltype = type_struct->color;
512 idtype = type_struct->id;
513 if(cltype >= p0->type->table_size) {
514 var1 = 0;
515 } else {
516 var1 = p0->type->type_table[cltype] == idtype;
517 }
518 if (!var1) {
519 var_class_name = p0 == NULL ? "null" : p0->type->name;
520 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
521 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 126);
522 show_backtrace(1);
523 }
524 /* Covariant cast for argument 1 (d) <p1:Comparable> isa OTHER */
525 /* <p1:Comparable> isa OTHER */
526 type_struct5 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
527 cltype3 = type_struct5->color;
528 idtype4 = type_struct5->id;
529 if(cltype3 >= p1->type->table_size) {
530 var2 = 0;
531 } else {
532 var2 = p1->type->type_table[cltype3] == idtype4;
533 }
534 if (!var2) {
535 var_class_name6 = p1 == NULL ? "null" : p1->type->name;
536 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name6);
537 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 126);
538 show_backtrace(1);
539 }
540 var_c = p0;
541 var_d = p1;
542 var8 = ((short int (*)(val*, val*))(var_c->class->vft[COLOR_kernel__Comparable___60d_61d]))(var_c, self) /* <= on <var_c:Comparable>*/;
543 var_ = var8;
544 if (var8){
545 var9 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d_61d]))(self, var_d) /* <= on <self:Comparable>*/;
546 var7 = var9;
547 } else {
548 var7 = var_;
549 }
550 var = var7;
551 goto RET_LABEL;
552 RET_LABEL:;
553 return var;
554 }
555 /* method kernel#Comparable#is_between for (self: Object, Comparable, Comparable): Bool */
556 short int VIRTUAL_kernel__Comparable__is_between(val* self, val* p0, val* p1) {
557 short int var /* : Bool */;
558 short int var1 /* : Bool */;
559 var1 = kernel__Comparable__is_between(self, p0, p1);
560 var = var1;
561 RET_LABEL:;
562 return var;
563 }
564 /* method kernel#Comparable#max for (self: Comparable, Comparable): Comparable */
565 val* kernel__Comparable__max(val* self, val* p0) {
566 val* var /* : Comparable */;
567 short int var1 /* : Bool */;
568 int cltype;
569 int idtype;
570 const struct type* type_struct;
571 const char* var_class_name;
572 val* var_other /* var other: Comparable */;
573 short int var2 /* : Bool */;
574 short int var3 /* : Bool */;
575 int cltype4;
576 int idtype5;
577 const struct type* type_struct6;
578 const char* var_class_name7;
579 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
580 /* <p0:Comparable> isa OTHER */
581 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
582 cltype = type_struct->color;
583 idtype = type_struct->id;
584 if(cltype >= p0->type->table_size) {
585 var1 = 0;
586 } else {
587 var1 = p0->type->type_table[cltype] == idtype;
588 }
589 if (!var1) {
590 var_class_name = p0 == NULL ? "null" : p0->type->name;
591 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
592 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 132);
593 show_backtrace(1);
594 }
595 var_other = p0;
596 var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_other) /* < on <self:Comparable>*/;
597 if (var2){
598 var = var_other;
599 goto RET_LABEL;
600 } else {
601 /* <self:Comparable> isa OTHER */
602 type_struct6 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
603 cltype4 = type_struct6->color;
604 idtype5 = type_struct6->id;
605 if(cltype4 >= self->type->table_size) {
606 var3 = 0;
607 } else {
608 var3 = self->type->type_table[cltype4] == idtype5;
609 }
610 if (!var3) {
611 var_class_name7 = self == NULL ? "null" : self->type->name;
612 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
613 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 138);
614 show_backtrace(1);
615 }
616 var = self;
617 goto RET_LABEL;
618 }
619 RET_LABEL:;
620 return var;
621 }
622 /* method kernel#Comparable#max for (self: Object, Comparable): Comparable */
623 val* VIRTUAL_kernel__Comparable__max(val* self, val* p0) {
624 val* var /* : Comparable */;
625 val* var1 /* : Comparable */;
626 var1 = kernel__Comparable__max(self, p0);
627 var = var1;
628 RET_LABEL:;
629 return var;
630 }
631 /* method kernel#Comparable#min for (self: Comparable, Comparable): Comparable */
632 val* kernel__Comparable__min(val* self, val* p0) {
633 val* var /* : Comparable */;
634 short int var1 /* : Bool */;
635 int cltype;
636 int idtype;
637 const struct type* type_struct;
638 const char* var_class_name;
639 val* var_c /* var c: Comparable */;
640 short int var2 /* : Bool */;
641 short int var3 /* : Bool */;
642 int cltype4;
643 int idtype5;
644 const struct type* type_struct6;
645 const char* var_class_name7;
646 /* Covariant cast for argument 0 (c) <p0:Comparable> isa OTHER */
647 /* <p0:Comparable> isa OTHER */
648 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
649 cltype = type_struct->color;
650 idtype = type_struct->id;
651 if(cltype >= p0->type->table_size) {
652 var1 = 0;
653 } else {
654 var1 = p0->type->type_table[cltype] == idtype;
655 }
656 if (!var1) {
657 var_class_name = p0 == NULL ? "null" : p0->type->name;
658 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
659 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 142);
660 show_backtrace(1);
661 }
662 var_c = p0;
663 var2 = ((short int (*)(val*, val*))(var_c->class->vft[COLOR_kernel__Comparable___60d]))(var_c, self) /* < on <var_c:Comparable>*/;
664 if (var2){
665 var = var_c;
666 goto RET_LABEL;
667 } else {
668 /* <self:Comparable> isa OTHER */
669 type_struct6 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
670 cltype4 = type_struct6->color;
671 idtype5 = type_struct6->id;
672 if(cltype4 >= self->type->table_size) {
673 var3 = 0;
674 } else {
675 var3 = self->type->type_table[cltype4] == idtype5;
676 }
677 if (!var3) {
678 var_class_name7 = self == NULL ? "null" : self->type->name;
679 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
680 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 148);
681 show_backtrace(1);
682 }
683 var = self;
684 goto RET_LABEL;
685 }
686 RET_LABEL:;
687 return var;
688 }
689 /* method kernel#Comparable#min for (self: Object, Comparable): Comparable */
690 val* VIRTUAL_kernel__Comparable__min(val* self, val* p0) {
691 val* var /* : Comparable */;
692 val* var1 /* : Comparable */;
693 var1 = kernel__Comparable__min(self, p0);
694 var = var1;
695 RET_LABEL:;
696 return var;
697 }
698 /* method kernel#Discrete#succ for (self: Discrete): Discrete */
699 val* kernel__Discrete__succ(val* self) {
700 val* var /* : Discrete */;
701 long var1 /* : Int */;
702 val* var2 /* : Discrete */;
703 var1 = 1;
704 var2 = ((val* (*)(val*, long))(self->class->vft[COLOR_kernel__Discrete___43d]))(self, var1) /* + on <self:Discrete>*/;
705 var = var2;
706 goto RET_LABEL;
707 RET_LABEL:;
708 return var;
709 }
710 /* method kernel#Discrete#succ for (self: Object): Discrete */
711 val* VIRTUAL_kernel__Discrete__succ(val* self) {
712 val* var /* : Discrete */;
713 val* var1 /* : Discrete */;
714 var1 = kernel__Discrete__succ(self);
715 var = var1;
716 RET_LABEL:;
717 return var;
718 }
719 /* method kernel#Discrete#prec for (self: Discrete): Discrete */
720 val* kernel__Discrete__prec(val* self) {
721 val* var /* : Discrete */;
722 long var1 /* : Int */;
723 val* var2 /* : Discrete */;
724 var1 = 1;
725 var2 = ((val* (*)(val*, long))(self->class->vft[COLOR_kernel__Discrete___45d]))(self, var1) /* - on <self:Discrete>*/;
726 var = var2;
727 goto RET_LABEL;
728 RET_LABEL:;
729 return var;
730 }
731 /* method kernel#Discrete#prec for (self: Object): Discrete */
732 val* VIRTUAL_kernel__Discrete__prec(val* self) {
733 val* var /* : Discrete */;
734 val* var1 /* : Discrete */;
735 var1 = kernel__Discrete__prec(self);
736 var = var1;
737 RET_LABEL:;
738 return var;
739 }
740 /* method kernel#Discrete#+ for (self: Discrete, Int): Discrete */
741 val* kernel__Discrete___43d(val* self, long p0) {
742 val* var /* : Discrete */;
743 const char* var_class_name;
744 var_class_name = self == NULL ? "null" : self->type->name;
745 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "+", var_class_name);
746 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 165);
747 show_backtrace(1);
748 RET_LABEL:;
749 return var;
750 }
751 /* method kernel#Discrete#+ for (self: Object, Int): Discrete */
752 val* VIRTUAL_kernel__Discrete___43d(val* self, long p0) {
753 val* var /* : Discrete */;
754 val* var1 /* : Discrete */;
755 var1 = kernel__Discrete___43d(self, p0);
756 var = var1;
757 RET_LABEL:;
758 return var;
759 }
760 /* method kernel#Discrete#- for (self: Discrete, Int): Discrete */
761 val* kernel__Discrete___45d(val* self, long p0) {
762 val* var /* : Discrete */;
763 const char* var_class_name;
764 var_class_name = self == NULL ? "null" : self->type->name;
765 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "-", var_class_name);
766 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 168);
767 show_backtrace(1);
768 RET_LABEL:;
769 return var;
770 }
771 /* method kernel#Discrete#- for (self: Object, Int): Discrete */
772 val* VIRTUAL_kernel__Discrete___45d(val* self, long p0) {
773 val* var /* : Discrete */;
774 val* var1 /* : Discrete */;
775 var1 = kernel__Discrete___45d(self, p0);
776 var = var1;
777 RET_LABEL:;
778 return var;
779 }
780 /* method kernel#Discrete#distance for (self: Discrete, Discrete): Int */
781 long kernel__Discrete__distance(val* self, val* p0) {
782 long var /* : Int */;
783 short int var1 /* : Bool */;
784 int cltype;
785 int idtype;
786 const struct type* type_struct;
787 const char* var_class_name;
788 val* var_d /* var d: Discrete */;
789 short int var2 /* : Bool */;
790 short int var3 /* : Bool */;
791 int cltype4;
792 int idtype5;
793 const struct type* type_struct6;
794 const char* var_class_name7;
795 val* var_cursor /* var cursor: Discrete */;
796 val* var_stop /* var stop: Discrete */;
797 short int var8 /* : Bool */;
798 short int var9 /* : Bool */;
799 int cltype10;
800 int idtype11;
801 const struct type* type_struct12;
802 const char* var_class_name13;
803 long var14 /* : Int */;
804 long var15 /* : Int */;
805 long var_nb /* var nb: Int */;
806 short int var16 /* : Bool */;
807 val* var17 /* : Discrete */;
808 short int var18 /* : Bool */;
809 int cltype19;
810 int idtype20;
811 const struct type* type_struct21;
812 const char* var_class_name22;
813 long var23 /* : Int */;
814 long var24 /* : Int */;
815 long var26 /* : Int */;
816 /* Covariant cast for argument 0 (d) <p0:Discrete> isa OTHER */
817 /* <p0:Discrete> isa OTHER */
818 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
819 cltype = type_struct->color;
820 idtype = type_struct->id;
821 if(cltype >= p0->type->table_size) {
822 var1 = 0;
823 } else {
824 var1 = p0->type->type_table[cltype] == idtype;
825 }
826 if (!var1) {
827 var_class_name = p0 == NULL ? "null" : p0->type->name;
828 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
829 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 171);
830 show_backtrace(1);
831 }
832 var_d = p0;
833 var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_d) /* < on <self:Discrete>*/;
834 if (var2){
835 /* <self:Discrete> isa OTHER */
836 type_struct6 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
837 cltype4 = type_struct6->color;
838 idtype5 = type_struct6->id;
839 if(cltype4 >= self->type->table_size) {
840 var3 = 0;
841 } else {
842 var3 = self->type->type_table[cltype4] == idtype5;
843 }
844 if (!var3) {
845 var_class_name7 = self == NULL ? "null" : self->type->name;
846 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
847 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 180);
848 show_backtrace(1);
849 }
850 var_cursor = self;
851 var_stop = var_d;
852 } else {
853 var8 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___62d]))(self, var_d) /* > on <self:Discrete>*/;
854 if (var8){
855 var_cursor = var_d;
856 /* <self:Discrete> isa OTHER */
857 type_struct12 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
858 cltype10 = type_struct12->color;
859 idtype11 = type_struct12->id;
860 if(cltype10 >= self->type->table_size) {
861 var9 = 0;
862 } else {
863 var9 = self->type->type_table[cltype10] == idtype11;
864 }
865 if (!var9) {
866 var_class_name13 = self == NULL ? "null" : self->type->name;
867 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
868 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 184);
869 show_backtrace(1);
870 }
871 var_stop = self;
872 } else {
873 var14 = 0;
874 var = var14;
875 goto RET_LABEL;
876 }
877 }
878 var15 = 0;
879 var_nb = var15;
880 for(;;) {
881 var16 = ((short int (*)(val*, val*))(var_cursor->class->vft[COLOR_kernel__Comparable___60d]))(var_cursor, var_stop) /* < on <var_cursor:Discrete>*/;
882 if (!var16) break;
883 var17 = ((val* (*)(val*))(var_cursor->class->vft[COLOR_kernel__Discrete__succ]))(var_cursor) /* succ on <var_cursor:Discrete>*/;
884 /* <var17:Discrete> isa OTHER */
885 type_struct21 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
886 cltype19 = type_struct21->color;
887 idtype20 = type_struct21->id;
888 if(cltype19 >= var17->type->table_size) {
889 var18 = 0;
890 } else {
891 var18 = var17->type->type_table[cltype19] == idtype20;
892 }
893 if (!var18) {
894 var_class_name22 = var17 == NULL ? "null" : var17->type->name;
895 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
896 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 191);
897 show_backtrace(1);
898 }
899 var_cursor = var17;
900 var23 = 1;
901 { /* Inline kernel#Int#+ (var_nb,var23) */
902 var26 = var_nb + var23;
903 var24 = var26;
904 goto RET_LABEL25;
905 RET_LABEL25:(void)0;
906 }
907 var_nb = var24;
908 CONTINUE_label: (void)0;
909 }
910 BREAK_label: (void)0;
911 var = var_nb;
912 goto RET_LABEL;
913 RET_LABEL:;
914 return var;
915 }
916 /* method kernel#Discrete#distance for (self: Object, Discrete): Int */
917 long VIRTUAL_kernel__Discrete__distance(val* self, val* p0) {
918 long var /* : Int */;
919 long var1 /* : Int */;
920 var1 = kernel__Discrete__distance(self, p0);
921 var = var1;
922 RET_LABEL:;
923 return var;
924 }
925 /* method kernel#Bool#object_id for (self: Bool): Int */
926 long kernel__Bool__object_id(short int self) {
927 long var /* : Int */;
928 long var1 /* : Int */;
929 var1 = (long)self;
930 var = var1;
931 goto RET_LABEL;
932 RET_LABEL:;
933 return var;
934 }
935 /* method kernel#Bool#object_id for (self: Object): Int */
936 long VIRTUAL_kernel__Bool__object_id(val* self) {
937 long var /* : Int */;
938 long var1 /* : Int */;
939 short int var3 /* : Bool */;
940 long var4 /* : Int */;
941 { /* Inline kernel#Bool#object_id (self) */
942 var3 = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */;
943 var4 = (long)var3;
944 var1 = var4;
945 goto RET_LABEL2;
946 RET_LABEL2:(void)0;
947 }
948 var = var1;
949 RET_LABEL:;
950 return var;
951 }
952 /* method kernel#Bool#== for (self: Bool, nullable Object): Bool */
953 short int kernel__Bool___61d_61d(short int self, val* p0) {
954 short int var /* : Bool */;
955 short int var1 /* : Bool */;
956 short int var2 /* : Bool */;
957 var1 = (p0 != NULL) && (p0->class == &class_kernel__Bool);
958 if (var1) {
959 var2 = ((struct instance_kernel__Bool*)p0)->value; /* autounbox from nullable Object to Bool */;
960 var1 = (var2 == self);
961 }
962 var = var1;
963 goto RET_LABEL;
964 RET_LABEL:;
965 return var;
966 }
967 /* method kernel#Bool#== for (self: Object, nullable Object): Bool */
968 short int VIRTUAL_kernel__Bool___61d_61d(val* self, val* p0) {
969 short int var /* : Bool */;
970 short int var1 /* : Bool */;
971 short int var3 /* : Bool */;
972 { /* Inline kernel#Bool#== (self,p0) */
973 var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)p0)->value);
974 var1 = var3;
975 goto RET_LABEL2;
976 RET_LABEL2:(void)0;
977 }
978 var = var1;
979 RET_LABEL:;
980 return var;
981 }
982 /* method kernel#Bool#!= for (self: Bool, nullable Object): Bool */
983 short int kernel__Bool___33d_61d(short int self, val* p0) {
984 short int var /* : Bool */;
985 short int var1 /* : Bool */;
986 short int var2 /* : Bool */;
987 short int var3 /* : Bool */;
988 var1 = (p0 != NULL) && (p0->class == &class_kernel__Bool);
989 if (var1) {
990 var2 = ((struct instance_kernel__Bool*)p0)->value; /* autounbox from nullable Object to Bool */;
991 var1 = (var2 == self);
992 }
993 var3 = !var1;
994 var = var3;
995 goto RET_LABEL;
996 RET_LABEL:;
997 return var;
998 }
999 /* method kernel#Bool#!= for (self: Object, nullable Object): Bool */
1000 short int VIRTUAL_kernel__Bool___33d_61d(val* self, val* p0) {
1001 short int var /* : Bool */;
1002 short int var1 /* : Bool */;
1003 short int var3 /* : Bool */;
1004 short int var4 /* : Bool */;
1005 { /* Inline kernel#Bool#!= (self,p0) */
1006 var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)p0)->value);
1007 var4 = !var3;
1008 var1 = var4;
1009 goto RET_LABEL2;
1010 RET_LABEL2:(void)0;
1011 }
1012 var = var1;
1013 RET_LABEL:;
1014 return var;
1015 }
1016 /* method kernel#Bool#output for (self: Bool) */
1017 void kernel__Bool__output(short int self) {
1018 printf(self?"true\n":"false\n");
1019 RET_LABEL:;
1020 }
1021 /* method kernel#Bool#output for (self: Object) */
1022 void VIRTUAL_kernel__Bool__output(val* self) {
1023 short int var /* : Bool */;
1024 { /* Inline kernel#Bool#output (self) */
1025 var = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */;
1026 printf(var?"true\n":"false\n");
1027 RET_LABEL1:(void)0;
1028 }
1029 RET_LABEL:;
1030 }
1031 /* method kernel#Bool#hash for (self: Bool): Int */
1032 long kernel__Bool__hash(short int self) {
1033 long var /* : Int */;
1034 long var1 /* : Int */;
1035 long var2 /* : Int */;
1036 if (self){
1037 var1 = 1;
1038 var = var1;
1039 goto RET_LABEL;
1040 } else {
1041 var2 = 0;
1042 var = var2;
1043 goto RET_LABEL;
1044 }
1045 RET_LABEL:;
1046 return var;
1047 }
1048 /* method kernel#Bool#hash for (self: Object): Int */
1049 long VIRTUAL_kernel__Bool__hash(val* self) {
1050 long var /* : Int */;
1051 long var1 /* : Int */;
1052 short int var2 /* : Bool */;
1053 var2 = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */;
1054 var1 = kernel__Bool__hash(var2);
1055 var = var1;
1056 RET_LABEL:;
1057 return var;
1058 }
1059 /* method kernel#Float#object_id for (self: Float): Int */
1060 long kernel__Float__object_id(double self) {
1061 long var /* : Int */;
1062 long var1 /* : Int */;
1063 var1 = (double)self;
1064 var = var1;
1065 goto RET_LABEL;
1066 RET_LABEL:;
1067 return var;
1068 }
1069 /* method kernel#Float#object_id for (self: Object): Int */
1070 long VIRTUAL_kernel__Float__object_id(val* self) {
1071 long var /* : Int */;
1072 long var1 /* : Int */;
1073 double var3 /* : Float */;
1074 long var4 /* : Int */;
1075 { /* Inline kernel#Float#object_id (self) */
1076 var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1077 var4 = (double)var3;
1078 var1 = var4;
1079 goto RET_LABEL2;
1080 RET_LABEL2:(void)0;
1081 }
1082 var = var1;
1083 RET_LABEL:;
1084 return var;
1085 }
1086 /* method kernel#Float#output for (self: Float) */
1087 void kernel__Float__output(double self) {
1088 printf("%f\n", self);
1089 RET_LABEL:;
1090 }
1091 /* method kernel#Float#output for (self: Object) */
1092 void VIRTUAL_kernel__Float__output(val* self) {
1093 double var /* : Float */;
1094 { /* Inline kernel#Float#output (self) */
1095 var = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1096 printf("%f\n", var);
1097 RET_LABEL1:(void)0;
1098 }
1099 RET_LABEL:;
1100 }
1101 /* method kernel#Float#<= for (self: Float, Float): Bool */
1102 short int kernel__Float___60d_61d(double self, double p0) {
1103 short int var /* : Bool */;
1104 short int var1 /* : Bool */;
1105 int cltype;
1106 int idtype;
1107 const char* var_class_name;
1108 short int var2 /* : Bool */;
1109 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
1110 /* <p0:Float> isa OTHER */
1111 var1 = 1; /* easy <p0:Float> isa OTHER*/
1112 if (!var1) {
1113 var_class_name = type_kernel__Float.name;
1114 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1115 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 232);
1116 show_backtrace(1);
1117 }
1118 var2 = self <= p0;
1119 var = var2;
1120 goto RET_LABEL;
1121 RET_LABEL:;
1122 return var;
1123 }
1124 /* method kernel#Float#<= for (self: Object, Comparable): Bool */
1125 short int VIRTUAL_kernel__Float___60d_61d(val* self, val* p0) {
1126 short int var /* : Bool */;
1127 short int var1 /* : Bool */;
1128 short int var3 /* : Bool */;
1129 int cltype;
1130 int idtype;
1131 const struct type* type_struct;
1132 const char* var_class_name;
1133 double var4 /* : Float */;
1134 double var5 /* : Float */;
1135 short int var6 /* : Bool */;
1136 { /* Inline kernel#Float#<= (self,p0) */
1137 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1138 /* <p0:Comparable> isa OTHER */
1139 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
1140 cltype = type_struct->color;
1141 idtype = type_struct->id;
1142 if(cltype >= p0->type->table_size) {
1143 var3 = 0;
1144 } else {
1145 var3 = p0->type->type_table[cltype] == idtype;
1146 }
1147 if (!var3) {
1148 var_class_name = p0 == NULL ? "null" : p0->type->name;
1149 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1150 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 232);
1151 show_backtrace(1);
1152 }
1153 var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1154 var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Comparable to Float */;
1155 var6 = var4 <= var5;
1156 var1 = var6;
1157 goto RET_LABEL2;
1158 RET_LABEL2:(void)0;
1159 }
1160 var = var1;
1161 RET_LABEL:;
1162 return var;
1163 }
1164 /* method kernel#Float#< for (self: Float, Float): Bool */
1165 short int kernel__Float___60d(double self, double p0) {
1166 short int var /* : Bool */;
1167 short int var1 /* : Bool */;
1168 int cltype;
1169 int idtype;
1170 const char* var_class_name;
1171 short int var2 /* : Bool */;
1172 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
1173 /* <p0:Float> isa OTHER */
1174 var1 = 1; /* easy <p0:Float> isa OTHER*/
1175 if (!var1) {
1176 var_class_name = type_kernel__Float.name;
1177 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1178 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 233);
1179 show_backtrace(1);
1180 }
1181 var2 = self < p0;
1182 var = var2;
1183 goto RET_LABEL;
1184 RET_LABEL:;
1185 return var;
1186 }
1187 /* method kernel#Float#< for (self: Object, Comparable): Bool */
1188 short int VIRTUAL_kernel__Float___60d(val* self, val* p0) {
1189 short int var /* : Bool */;
1190 short int var1 /* : Bool */;
1191 short int var3 /* : Bool */;
1192 int cltype;
1193 int idtype;
1194 const struct type* type_struct;
1195 const char* var_class_name;
1196 double var4 /* : Float */;
1197 double var5 /* : Float */;
1198 short int var6 /* : Bool */;
1199 { /* Inline kernel#Float#< (self,p0) */
1200 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1201 /* <p0:Comparable> isa OTHER */
1202 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
1203 cltype = type_struct->color;
1204 idtype = type_struct->id;
1205 if(cltype >= p0->type->table_size) {
1206 var3 = 0;
1207 } else {
1208 var3 = p0->type->type_table[cltype] == idtype;
1209 }
1210 if (!var3) {
1211 var_class_name = p0 == NULL ? "null" : p0->type->name;
1212 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1213 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 233);
1214 show_backtrace(1);
1215 }
1216 var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1217 var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Comparable to Float */;
1218 var6 = var4 < var5;
1219 var1 = var6;
1220 goto RET_LABEL2;
1221 RET_LABEL2:(void)0;
1222 }
1223 var = var1;
1224 RET_LABEL:;
1225 return var;
1226 }
1227 /* method kernel#Float#>= for (self: Float, Float): Bool */
1228 short int kernel__Float___62d_61d(double self, double p0) {
1229 short int var /* : Bool */;
1230 short int var1 /* : Bool */;
1231 int cltype;
1232 int idtype;
1233 const char* var_class_name;
1234 short int var2 /* : Bool */;
1235 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
1236 /* <p0:Float> isa OTHER */
1237 var1 = 1; /* easy <p0:Float> isa OTHER*/
1238 if (!var1) {
1239 var_class_name = type_kernel__Float.name;
1240 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1241 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 234);
1242 show_backtrace(1);
1243 }
1244 var2 = self >= p0;
1245 var = var2;
1246 goto RET_LABEL;
1247 RET_LABEL:;
1248 return var;
1249 }
1250 /* method kernel#Float#>= for (self: Object, Comparable): Bool */
1251 short int VIRTUAL_kernel__Float___62d_61d(val* self, val* p0) {
1252 short int var /* : Bool */;
1253 short int var1 /* : Bool */;
1254 short int var3 /* : Bool */;
1255 int cltype;
1256 int idtype;
1257 const struct type* type_struct;
1258 const char* var_class_name;
1259 double var4 /* : Float */;
1260 double var5 /* : Float */;
1261 short int var6 /* : Bool */;
1262 { /* Inline kernel#Float#>= (self,p0) */
1263 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1264 /* <p0:Comparable> isa OTHER */
1265 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
1266 cltype = type_struct->color;
1267 idtype = type_struct->id;
1268 if(cltype >= p0->type->table_size) {
1269 var3 = 0;
1270 } else {
1271 var3 = p0->type->type_table[cltype] == idtype;
1272 }
1273 if (!var3) {
1274 var_class_name = p0 == NULL ? "null" : p0->type->name;
1275 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1276 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 234);
1277 show_backtrace(1);
1278 }
1279 var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1280 var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Comparable to Float */;
1281 var6 = var4 >= var5;
1282 var1 = var6;
1283 goto RET_LABEL2;
1284 RET_LABEL2:(void)0;
1285 }
1286 var = var1;
1287 RET_LABEL:;
1288 return var;
1289 }
1290 /* method kernel#Float#> for (self: Float, Float): Bool */
1291 short int kernel__Float___62d(double self, double p0) {
1292 short int var /* : Bool */;
1293 short int var1 /* : Bool */;
1294 int cltype;
1295 int idtype;
1296 const char* var_class_name;
1297 short int var2 /* : Bool */;
1298 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
1299 /* <p0:Float> isa OTHER */
1300 var1 = 1; /* easy <p0:Float> isa OTHER*/
1301 if (!var1) {
1302 var_class_name = type_kernel__Float.name;
1303 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1304 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 235);
1305 show_backtrace(1);
1306 }
1307 var2 = self > p0;
1308 var = var2;
1309 goto RET_LABEL;
1310 RET_LABEL:;
1311 return var;
1312 }
1313 /* method kernel#Float#> for (self: Object, Comparable): Bool */
1314 short int VIRTUAL_kernel__Float___62d(val* self, val* p0) {
1315 short int var /* : Bool */;
1316 short int var1 /* : Bool */;
1317 short int var3 /* : Bool */;
1318 int cltype;
1319 int idtype;
1320 const struct type* type_struct;
1321 const char* var_class_name;
1322 double var4 /* : Float */;
1323 double var5 /* : Float */;
1324 short int var6 /* : Bool */;
1325 { /* Inline kernel#Float#> (self,p0) */
1326 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1327 /* <p0:Comparable> isa OTHER */
1328 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
1329 cltype = type_struct->color;
1330 idtype = type_struct->id;
1331 if(cltype >= p0->type->table_size) {
1332 var3 = 0;
1333 } else {
1334 var3 = p0->type->type_table[cltype] == idtype;
1335 }
1336 if (!var3) {
1337 var_class_name = p0 == NULL ? "null" : p0->type->name;
1338 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1339 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 235);
1340 show_backtrace(1);
1341 }
1342 var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1343 var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Comparable to Float */;
1344 var6 = var4 > var5;
1345 var1 = var6;
1346 goto RET_LABEL2;
1347 RET_LABEL2:(void)0;
1348 }
1349 var = var1;
1350 RET_LABEL:;
1351 return var;
1352 }
1353 /* method kernel#Float#+ for (self: Float, Float): Float */
1354 double kernel__Float___43d(double self, double p0) {
1355 double var /* : Float */;
1356 double var1 /* : Float */;
1357 var1 = self + p0;
1358 var = var1;
1359 goto RET_LABEL;
1360 RET_LABEL:;
1361 return var;
1362 }
1363 /* method kernel#Float#+ for (self: Object, Float): Float */
1364 double VIRTUAL_kernel__Float___43d(val* self, double p0) {
1365 double var /* : Float */;
1366 double var1 /* : Float */;
1367 double var3 /* : Float */;
1368 double var4 /* : Float */;
1369 { /* Inline kernel#Float#+ (self,p0) */
1370 var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1371 var4 = var3 + p0;
1372 var1 = var4;
1373 goto RET_LABEL2;
1374 RET_LABEL2:(void)0;
1375 }
1376 var = var1;
1377 RET_LABEL:;
1378 return var;
1379 }
1380 /* method kernel#Float#unary - for (self: Float): Float */
1381 double kernel__Float__unary_32d_45d(double self) {
1382 double var /* : Float */;
1383 double var1 /* : Float */;
1384 var1 = -self;
1385 var = var1;
1386 goto RET_LABEL;
1387 RET_LABEL:;
1388 return var;
1389 }
1390 /* method kernel#Float#unary - for (self: Object): Float */
1391 double VIRTUAL_kernel__Float__unary_32d_45d(val* self) {
1392 double var /* : Float */;
1393 double var1 /* : Float */;
1394 double var3 /* : Float */;
1395 double var4 /* : Float */;
1396 { /* Inline kernel#Float#unary - (self) */
1397 var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1398 var4 = -var3;
1399 var1 = var4;
1400 goto RET_LABEL2;
1401 RET_LABEL2:(void)0;
1402 }
1403 var = var1;
1404 RET_LABEL:;
1405 return var;
1406 }
1407 /* method kernel#Float#- for (self: Float, Float): Float */
1408 double kernel__Float___45d(double self, double p0) {
1409 double var /* : Float */;
1410 double var1 /* : Float */;
1411 var1 = self - p0;
1412 var = var1;
1413 goto RET_LABEL;
1414 RET_LABEL:;
1415 return var;
1416 }
1417 /* method kernel#Float#- for (self: Object, Float): Float */
1418 double VIRTUAL_kernel__Float___45d(val* self, double p0) {
1419 double var /* : Float */;
1420 double var1 /* : Float */;
1421 double var3 /* : Float */;
1422 double var4 /* : Float */;
1423 { /* Inline kernel#Float#- (self,p0) */
1424 var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1425 var4 = var3 - p0;
1426 var1 = var4;
1427 goto RET_LABEL2;
1428 RET_LABEL2:(void)0;
1429 }
1430 var = var1;
1431 RET_LABEL:;
1432 return var;
1433 }
1434 /* method kernel#Float#* for (self: Float, Float): Float */
1435 double kernel__Float___42d(double self, double p0) {
1436 double var /* : Float */;
1437 double var1 /* : Float */;
1438 var1 = self * p0;
1439 var = var1;
1440 goto RET_LABEL;
1441 RET_LABEL:;
1442 return var;
1443 }
1444 /* method kernel#Float#* for (self: Object, Float): Float */
1445 double VIRTUAL_kernel__Float___42d(val* self, double p0) {
1446 double var /* : Float */;
1447 double var1 /* : Float */;
1448 double var3 /* : Float */;
1449 double var4 /* : Float */;
1450 { /* Inline kernel#Float#* (self,p0) */
1451 var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1452 var4 = var3 * p0;
1453 var1 = var4;
1454 goto RET_LABEL2;
1455 RET_LABEL2:(void)0;
1456 }
1457 var = var1;
1458 RET_LABEL:;
1459 return var;
1460 }
1461 /* method kernel#Float#/ for (self: Float, Float): Float */
1462 double kernel__Float___47d(double self, double p0) {
1463 double var /* : Float */;
1464 double var1 /* : Float */;
1465 var1 = self / p0;
1466 var = var1;
1467 goto RET_LABEL;
1468 RET_LABEL:;
1469 return var;
1470 }
1471 /* method kernel#Float#/ for (self: Object, Float): Float */
1472 double VIRTUAL_kernel__Float___47d(val* self, double p0) {
1473 double var /* : Float */;
1474 double var1 /* : Float */;
1475 double var3 /* : Float */;
1476 double var4 /* : Float */;
1477 { /* Inline kernel#Float#/ (self,p0) */
1478 var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1479 var4 = var3 / p0;
1480 var1 = var4;
1481 goto RET_LABEL2;
1482 RET_LABEL2:(void)0;
1483 }
1484 var = var1;
1485 RET_LABEL:;
1486 return var;
1487 }
1488 /* method kernel#Float#to_i for (self: Float): Int */
1489 long kernel__Float__to_i(double self) {
1490 long var /* : Int */;
1491 long var1 /* : Int */;
1492 var1 = (long)self;
1493 var = var1;
1494 goto RET_LABEL;
1495 RET_LABEL:;
1496 return var;
1497 }
1498 /* method kernel#Float#to_i for (self: Object): Int */
1499 long VIRTUAL_kernel__Float__to_i(val* self) {
1500 long var /* : Int */;
1501 long var1 /* : Int */;
1502 double var3 /* : Float */;
1503 long var4 /* : Int */;
1504 { /* Inline kernel#Float#to_i (self) */
1505 var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1506 var4 = (long)var3;
1507 var1 = var4;
1508 goto RET_LABEL2;
1509 RET_LABEL2:(void)0;
1510 }
1511 var = var1;
1512 RET_LABEL:;
1513 return var;
1514 }
1515 /* method kernel#Int#object_id for (self: Int): Int */
1516 long kernel__Int__object_id(long self) {
1517 long var /* : Int */;
1518 var = self;
1519 goto RET_LABEL;
1520 RET_LABEL:;
1521 return var;
1522 }
1523 /* method kernel#Int#object_id for (self: Object): Int */
1524 long VIRTUAL_kernel__Int__object_id(val* self) {
1525 long var /* : Int */;
1526 long var1 /* : Int */;
1527 long var3 /* : Int */;
1528 { /* Inline kernel#Int#object_id (self) */
1529 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1530 var1 = var3;
1531 goto RET_LABEL2;
1532 RET_LABEL2:(void)0;
1533 }
1534 var = var1;
1535 RET_LABEL:;
1536 return var;
1537 }
1538 /* method kernel#Int#hash for (self: Int): Int */
1539 long kernel__Int__hash(long self) {
1540 long var /* : Int */;
1541 var = self;
1542 goto RET_LABEL;
1543 RET_LABEL:;
1544 return var;
1545 }
1546 /* method kernel#Int#hash for (self: Object): Int */
1547 long VIRTUAL_kernel__Int__hash(val* self) {
1548 long var /* : Int */;
1549 long var1 /* : Int */;
1550 long var2 /* : Int */;
1551 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1552 var1 = kernel__Int__hash(var2);
1553 var = var1;
1554 RET_LABEL:;
1555 return var;
1556 }
1557 /* method kernel#Int#== for (self: Int, nullable Object): Bool */
1558 short int kernel__Int___61d_61d(long self, val* p0) {
1559 short int var /* : Bool */;
1560 short int var1 /* : Bool */;
1561 long var2 /* : Int */;
1562 var1 = (p0 != NULL) && (p0->class == &class_kernel__Int);
1563 if (var1) {
1564 var2 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from nullable Object to Int */;
1565 var1 = (var2 == self);
1566 }
1567 var = var1;
1568 goto RET_LABEL;
1569 RET_LABEL:;
1570 return var;
1571 }
1572 /* method kernel#Int#== for (self: Object, nullable Object): Bool */
1573 short int VIRTUAL_kernel__Int___61d_61d(val* self, val* p0) {
1574 short int var /* : Bool */;
1575 short int var1 /* : Bool */;
1576 short int var3 /* : Bool */;
1577 { /* Inline kernel#Int#== (self,p0) */
1578 var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)p0)->value);
1579 var1 = var3;
1580 goto RET_LABEL2;
1581 RET_LABEL2:(void)0;
1582 }
1583 var = var1;
1584 RET_LABEL:;
1585 return var;
1586 }
1587 /* method kernel#Int#!= for (self: Int, nullable Object): Bool */
1588 short int kernel__Int___33d_61d(long self, val* p0) {
1589 short int var /* : Bool */;
1590 short int var1 /* : Bool */;
1591 long var2 /* : Int */;
1592 short int var3 /* : Bool */;
1593 var1 = (p0 != NULL) && (p0->class == &class_kernel__Int);
1594 if (var1) {
1595 var2 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from nullable Object to Int */;
1596 var1 = (var2 == self);
1597 }
1598 var3 = !var1;
1599 var = var3;
1600 goto RET_LABEL;
1601 RET_LABEL:;
1602 return var;
1603 }
1604 /* method kernel#Int#!= for (self: Object, nullable Object): Bool */
1605 short int VIRTUAL_kernel__Int___33d_61d(val* self, val* p0) {
1606 short int var /* : Bool */;
1607 short int var1 /* : Bool */;
1608 short int var3 /* : Bool */;
1609 short int var4 /* : Bool */;
1610 { /* Inline kernel#Int#!= (self,p0) */
1611 var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)p0)->value);
1612 var4 = !var3;
1613 var1 = var4;
1614 goto RET_LABEL2;
1615 RET_LABEL2:(void)0;
1616 }
1617 var = var1;
1618 RET_LABEL:;
1619 return var;
1620 }
1621 /* method kernel#Int#output for (self: Int) */
1622 void kernel__Int__output(long self) {
1623 printf("%ld\n", self);
1624 RET_LABEL:;
1625 }
1626 /* method kernel#Int#output for (self: Object) */
1627 void VIRTUAL_kernel__Int__output(val* self) {
1628 long var /* : Int */;
1629 { /* Inline kernel#Int#output (self) */
1630 var = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1631 printf("%ld\n", var);
1632 RET_LABEL1:(void)0;
1633 }
1634 RET_LABEL:;
1635 }
1636 /* method kernel#Int#<= for (self: Int, Int): Bool */
1637 short int kernel__Int___60d_61d(long self, long p0) {
1638 short int var /* : Bool */;
1639 short int var1 /* : Bool */;
1640 int cltype;
1641 int idtype;
1642 const char* var_class_name;
1643 short int var2 /* : Bool */;
1644 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
1645 /* <p0:Int> isa OTHER */
1646 var1 = 1; /* easy <p0:Int> isa OTHER*/
1647 if (!var1) {
1648 var_class_name = type_kernel__Int.name;
1649 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1650 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
1651 show_backtrace(1);
1652 }
1653 var2 = self <= p0;
1654 var = var2;
1655 goto RET_LABEL;
1656 RET_LABEL:;
1657 return var;
1658 }
1659 /* method kernel#Int#<= for (self: Object, Comparable): Bool */
1660 short int VIRTUAL_kernel__Int___60d_61d(val* self, val* p0) {
1661 short int var /* : Bool */;
1662 short int var1 /* : Bool */;
1663 short int var3 /* : Bool */;
1664 int cltype;
1665 int idtype;
1666 const struct type* type_struct;
1667 const char* var_class_name;
1668 long var4 /* : Int */;
1669 long var5 /* : Int */;
1670 short int var6 /* : Bool */;
1671 { /* Inline kernel#Int#<= (self,p0) */
1672 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1673 /* <p0:Comparable> isa OTHER */
1674 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
1675 cltype = type_struct->color;
1676 idtype = type_struct->id;
1677 if(cltype >= p0->type->table_size) {
1678 var3 = 0;
1679 } else {
1680 var3 = p0->type->type_table[cltype] == idtype;
1681 }
1682 if (!var3) {
1683 var_class_name = p0 == NULL ? "null" : p0->type->name;
1684 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1685 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
1686 show_backtrace(1);
1687 }
1688 var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1689 var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
1690 var6 = var4 <= var5;
1691 var1 = var6;
1692 goto RET_LABEL2;
1693 RET_LABEL2:(void)0;
1694 }
1695 var = var1;
1696 RET_LABEL:;
1697 return var;
1698 }
1699 /* method kernel#Int#< for (self: Int, Int): Bool */
1700 short int kernel__Int___60d(long self, long p0) {
1701 short int var /* : Bool */;
1702 short int var1 /* : Bool */;
1703 int cltype;
1704 int idtype;
1705 const char* var_class_name;
1706 short int var2 /* : Bool */;
1707 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
1708 /* <p0:Int> isa OTHER */
1709 var1 = 1; /* easy <p0:Int> isa OTHER*/
1710 if (!var1) {
1711 var_class_name = type_kernel__Int.name;
1712 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1713 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
1714 show_backtrace(1);
1715 }
1716 var2 = self < p0;
1717 var = var2;
1718 goto RET_LABEL;
1719 RET_LABEL:;
1720 return var;
1721 }
1722 /* method kernel#Int#< for (self: Object, Comparable): Bool */
1723 short int VIRTUAL_kernel__Int___60d(val* self, val* p0) {
1724 short int var /* : Bool */;
1725 short int var1 /* : Bool */;
1726 short int var3 /* : Bool */;
1727 int cltype;
1728 int idtype;
1729 const struct type* type_struct;
1730 const char* var_class_name;
1731 long var4 /* : Int */;
1732 long var5 /* : Int */;
1733 short int var6 /* : Bool */;
1734 { /* Inline kernel#Int#< (self,p0) */
1735 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1736 /* <p0:Comparable> isa OTHER */
1737 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
1738 cltype = type_struct->color;
1739 idtype = type_struct->id;
1740 if(cltype >= p0->type->table_size) {
1741 var3 = 0;
1742 } else {
1743 var3 = p0->type->type_table[cltype] == idtype;
1744 }
1745 if (!var3) {
1746 var_class_name = p0 == NULL ? "null" : p0->type->name;
1747 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1748 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
1749 show_backtrace(1);
1750 }
1751 var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1752 var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
1753 var6 = var4 < var5;
1754 var1 = var6;
1755 goto RET_LABEL2;
1756 RET_LABEL2:(void)0;
1757 }
1758 var = var1;
1759 RET_LABEL:;
1760 return var;
1761 }
1762 /* method kernel#Int#>= for (self: Int, Int): Bool */
1763 short int kernel__Int___62d_61d(long self, long p0) {
1764 short int var /* : Bool */;
1765 short int var1 /* : Bool */;
1766 int cltype;
1767 int idtype;
1768 const char* var_class_name;
1769 short int var2 /* : Bool */;
1770 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
1771 /* <p0:Int> isa OTHER */
1772 var1 = 1; /* easy <p0:Int> isa OTHER*/
1773 if (!var1) {
1774 var_class_name = type_kernel__Int.name;
1775 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1776 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
1777 show_backtrace(1);
1778 }
1779 var2 = self >= p0;
1780 var = var2;
1781 goto RET_LABEL;
1782 RET_LABEL:;
1783 return var;
1784 }
1785 /* method kernel#Int#>= for (self: Object, Comparable): Bool */
1786 short int VIRTUAL_kernel__Int___62d_61d(val* self, val* p0) {
1787 short int var /* : Bool */;
1788 short int var1 /* : Bool */;
1789 short int var3 /* : Bool */;
1790 int cltype;
1791 int idtype;
1792 const struct type* type_struct;
1793 const char* var_class_name;
1794 long var4 /* : Int */;
1795 long var5 /* : Int */;
1796 short int var6 /* : Bool */;
1797 { /* Inline kernel#Int#>= (self,p0) */
1798 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1799 /* <p0:Comparable> isa OTHER */
1800 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
1801 cltype = type_struct->color;
1802 idtype = type_struct->id;
1803 if(cltype >= p0->type->table_size) {
1804 var3 = 0;
1805 } else {
1806 var3 = p0->type->type_table[cltype] == idtype;
1807 }
1808 if (!var3) {
1809 var_class_name = p0 == NULL ? "null" : p0->type->name;
1810 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1811 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
1812 show_backtrace(1);
1813 }
1814 var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1815 var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
1816 var6 = var4 >= var5;
1817 var1 = var6;
1818 goto RET_LABEL2;
1819 RET_LABEL2:(void)0;
1820 }
1821 var = var1;
1822 RET_LABEL:;
1823 return var;
1824 }
1825 /* method kernel#Int#> for (self: Int, Int): Bool */
1826 short int kernel__Int___62d(long self, long p0) {
1827 short int var /* : Bool */;
1828 short int var1 /* : Bool */;
1829 int cltype;
1830 int idtype;
1831 const char* var_class_name;
1832 short int var2 /* : Bool */;
1833 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
1834 /* <p0:Int> isa OTHER */
1835 var1 = 1; /* easy <p0:Int> isa OTHER*/
1836 if (!var1) {
1837 var_class_name = type_kernel__Int.name;
1838 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1839 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
1840 show_backtrace(1);
1841 }
1842 var2 = self > p0;
1843 var = var2;
1844 goto RET_LABEL;
1845 RET_LABEL:;
1846 return var;
1847 }
1848 /* method kernel#Int#> for (self: Object, Comparable): Bool */
1849 short int VIRTUAL_kernel__Int___62d(val* self, val* p0) {
1850 short int var /* : Bool */;
1851 short int var1 /* : Bool */;
1852 short int var3 /* : Bool */;
1853 int cltype;
1854 int idtype;
1855 const struct type* type_struct;
1856 const char* var_class_name;
1857 long var4 /* : Int */;
1858 long var5 /* : Int */;
1859 short int var6 /* : Bool */;
1860 { /* Inline kernel#Int#> (self,p0) */
1861 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1862 /* <p0:Comparable> isa OTHER */
1863 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
1864 cltype = type_struct->color;
1865 idtype = type_struct->id;
1866 if(cltype >= p0->type->table_size) {
1867 var3 = 0;
1868 } else {
1869 var3 = p0->type->type_table[cltype] == idtype;
1870 }
1871 if (!var3) {
1872 var_class_name = p0 == NULL ? "null" : p0->type->name;
1873 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1874 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
1875 show_backtrace(1);
1876 }
1877 var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1878 var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
1879 var6 = var4 > var5;
1880 var1 = var6;
1881 goto RET_LABEL2;
1882 RET_LABEL2:(void)0;
1883 }
1884 var = var1;
1885 RET_LABEL:;
1886 return var;
1887 }
1888 /* method kernel#Int#+ for (self: Int, Int): Int */
1889 long kernel__Int___43d(long self, long p0) {
1890 long var /* : Int */;
1891 long var1 /* : Int */;
1892 var1 = self + p0;
1893 var = var1;
1894 goto RET_LABEL;
1895 RET_LABEL:;
1896 return var;
1897 }
1898 /* method kernel#Int#+ for (self: Object, Int): Discrete */
1899 val* VIRTUAL_kernel__Int___43d(val* self, long p0) {
1900 val* var /* : Discrete */;
1901 long var1 /* : Int */;
1902 long var3 /* : Int */;
1903 long var4 /* : Int */;
1904 val* var5 /* : Discrete */;
1905 { /* Inline kernel#Int#+ (self,p0) */
1906 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1907 var4 = var3 + p0;
1908 var1 = var4;
1909 goto RET_LABEL2;
1910 RET_LABEL2:(void)0;
1911 }
1912 var5 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */
1913 var = var5;
1914 RET_LABEL:;
1915 return var;
1916 }
1917 /* method kernel#Int#unary - for (self: Int): Int */
1918 long kernel__Int__unary_32d_45d(long self) {
1919 long var /* : Int */;
1920 long var1 /* : Int */;
1921 var1 = -self;
1922 var = var1;
1923 goto RET_LABEL;
1924 RET_LABEL:;
1925 return var;
1926 }
1927 /* method kernel#Int#unary - for (self: Object): Int */
1928 long VIRTUAL_kernel__Int__unary_32d_45d(val* self) {
1929 long var /* : Int */;
1930 long var1 /* : Int */;
1931 long var3 /* : Int */;
1932 long var4 /* : Int */;
1933 { /* Inline kernel#Int#unary - (self) */
1934 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1935 var4 = -var3;
1936 var1 = var4;
1937 goto RET_LABEL2;
1938 RET_LABEL2:(void)0;
1939 }
1940 var = var1;
1941 RET_LABEL:;
1942 return var;
1943 }
1944 /* method kernel#Int#- for (self: Int, Int): Int */
1945 long kernel__Int___45d(long self, long p0) {
1946 long var /* : Int */;
1947 long var1 /* : Int */;
1948 var1 = self - p0;
1949 var = var1;
1950 goto RET_LABEL;
1951 RET_LABEL:;
1952 return var;
1953 }
1954 /* method kernel#Int#- for (self: Object, Int): Discrete */
1955 val* VIRTUAL_kernel__Int___45d(val* self, long p0) {
1956 val* var /* : Discrete */;
1957 long var1 /* : Int */;
1958 long var3 /* : Int */;
1959 long var4 /* : Int */;
1960 val* var5 /* : Discrete */;
1961 { /* Inline kernel#Int#- (self,p0) */
1962 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1963 var4 = var3 - p0;
1964 var1 = var4;
1965 goto RET_LABEL2;
1966 RET_LABEL2:(void)0;
1967 }
1968 var5 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */
1969 var = var5;
1970 RET_LABEL:;
1971 return var;
1972 }
1973 /* method kernel#Int#* for (self: Int, Int): Int */
1974 long kernel__Int___42d(long self, long p0) {
1975 long var /* : Int */;
1976 long var1 /* : Int */;
1977 var1 = self * p0;
1978 var = var1;
1979 goto RET_LABEL;
1980 RET_LABEL:;
1981 return var;
1982 }
1983 /* method kernel#Int#* for (self: Object, Int): Int */
1984 long VIRTUAL_kernel__Int___42d(val* self, long p0) {
1985 long var /* : Int */;
1986 long var1 /* : Int */;
1987 long var3 /* : Int */;
1988 long var4 /* : Int */;
1989 { /* Inline kernel#Int#* (self,p0) */
1990 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1991 var4 = var3 * p0;
1992 var1 = var4;
1993 goto RET_LABEL2;
1994 RET_LABEL2:(void)0;
1995 }
1996 var = var1;
1997 RET_LABEL:;
1998 return var;
1999 }
2000 /* method kernel#Int#/ for (self: Int, Int): Int */
2001 long kernel__Int___47d(long self, long p0) {
2002 long var /* : Int */;
2003 long var1 /* : Int */;
2004 var1 = self / p0;
2005 var = var1;
2006 goto RET_LABEL;
2007 RET_LABEL:;
2008 return var;
2009 }
2010 /* method kernel#Int#/ for (self: Object, Int): Int */
2011 long VIRTUAL_kernel__Int___47d(val* self, long p0) {
2012 long var /* : Int */;
2013 long var1 /* : Int */;
2014 long var3 /* : Int */;
2015 long var4 /* : Int */;
2016 { /* Inline kernel#Int#/ (self,p0) */
2017 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2018 var4 = var3 / p0;
2019 var1 = var4;
2020 goto RET_LABEL2;
2021 RET_LABEL2:(void)0;
2022 }
2023 var = var1;
2024 RET_LABEL:;
2025 return var;
2026 }
2027 /* method kernel#Int#% for (self: Int, Int): Int */
2028 long kernel__Int___37d(long self, long p0) {
2029 long var /* : Int */;
2030 long var1 /* : Int */;
2031 var1 = self % p0;
2032 var = var1;
2033 goto RET_LABEL;
2034 RET_LABEL:;
2035 return var;
2036 }
2037 /* method kernel#Int#% for (self: Object, Int): Int */
2038 long VIRTUAL_kernel__Int___37d(val* self, long p0) {
2039 long var /* : Int */;
2040 long var1 /* : Int */;
2041 long var3 /* : Int */;
2042 long var4 /* : Int */;
2043 { /* Inline kernel#Int#% (self,p0) */
2044 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2045 var4 = var3 % p0;
2046 var1 = var4;
2047 goto RET_LABEL2;
2048 RET_LABEL2:(void)0;
2049 }
2050 var = var1;
2051 RET_LABEL:;
2052 return var;
2053 }
2054 /* method kernel#Int#lshift for (self: Int, Int): Int */
2055 long kernel__Int__lshift(long self, long p0) {
2056 long var /* : Int */;
2057 long var1 /* : Int */;
2058 var1 = self << p0;
2059 var = var1;
2060 goto RET_LABEL;
2061 RET_LABEL:;
2062 return var;
2063 }
2064 /* method kernel#Int#lshift for (self: Object, Int): Int */
2065 long VIRTUAL_kernel__Int__lshift(val* self, long p0) {
2066 long var /* : Int */;
2067 long var1 /* : Int */;
2068 long var3 /* : Int */;
2069 long var4 /* : Int */;
2070 { /* Inline kernel#Int#lshift (self,p0) */
2071 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2072 var4 = var3 << p0;
2073 var1 = var4;
2074 goto RET_LABEL2;
2075 RET_LABEL2:(void)0;
2076 }
2077 var = var1;
2078 RET_LABEL:;
2079 return var;
2080 }
2081 /* method kernel#Int#rshift for (self: Int, Int): Int */
2082 long kernel__Int__rshift(long self, long p0) {
2083 long var /* : Int */;
2084 long var1 /* : Int */;
2085 var1 = self >> p0;
2086 var = var1;
2087 goto RET_LABEL;
2088 RET_LABEL:;
2089 return var;
2090 }
2091 /* method kernel#Int#rshift for (self: Object, Int): Int */
2092 long VIRTUAL_kernel__Int__rshift(val* self, long p0) {
2093 long var /* : Int */;
2094 long var1 /* : Int */;
2095 long var3 /* : Int */;
2096 long var4 /* : Int */;
2097 { /* Inline kernel#Int#rshift (self,p0) */
2098 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2099 var4 = var3 >> p0;
2100 var1 = var4;
2101 goto RET_LABEL2;
2102 RET_LABEL2:(void)0;
2103 }
2104 var = var1;
2105 RET_LABEL:;
2106 return var;
2107 }
2108 /* method kernel#Int#to_f for (self: Int): Float */
2109 double kernel__Int__to_f(long self) {
2110 double var /* : Float */;
2111 double var1 /* : Float */;
2112 var1 = (double)self;
2113 var = var1;
2114 goto RET_LABEL;
2115 RET_LABEL:;
2116 return var;
2117 }
2118 /* method kernel#Int#to_f for (self: Object): Float */
2119 double VIRTUAL_kernel__Int__to_f(val* self) {
2120 double var /* : Float */;
2121 double var1 /* : Float */;
2122 long var3 /* : Int */;
2123 double var4 /* : Float */;
2124 { /* Inline kernel#Int#to_f (self) */
2125 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2126 var4 = (double)var3;
2127 var1 = var4;
2128 goto RET_LABEL2;
2129 RET_LABEL2:(void)0;
2130 }
2131 var = var1;
2132 RET_LABEL:;
2133 return var;
2134 }
2135 /* method kernel#Int#succ for (self: Int): Int */
2136 long kernel__Int__succ(long self) {
2137 long var /* : Int */;
2138 long var1 /* : Int */;
2139 var1 = self+1;
2140 var = var1;
2141 goto RET_LABEL;
2142 RET_LABEL:;
2143 return var;
2144 }
2145 /* method kernel#Int#succ for (self: Object): Discrete */
2146 val* VIRTUAL_kernel__Int__succ(val* self) {
2147 val* var /* : Discrete */;
2148 long var1 /* : Int */;
2149 long var3 /* : Int */;
2150 long var4 /* : Int */;
2151 val* var5 /* : Discrete */;
2152 { /* Inline kernel#Int#succ (self) */
2153 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2154 var4 = var3+1;
2155 var1 = var4;
2156 goto RET_LABEL2;
2157 RET_LABEL2:(void)0;
2158 }
2159 var5 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */
2160 var = var5;
2161 RET_LABEL:;
2162 return var;
2163 }
2164 /* method kernel#Int#prec for (self: Int): Int */
2165 long kernel__Int__prec(long self) {
2166 long var /* : Int */;
2167 long var1 /* : Int */;
2168 var1 = self-1;
2169 var = var1;
2170 goto RET_LABEL;
2171 RET_LABEL:;
2172 return var;
2173 }
2174 /* method kernel#Int#prec for (self: Object): Discrete */
2175 val* VIRTUAL_kernel__Int__prec(val* self) {
2176 val* var /* : Discrete */;
2177 long var1 /* : Int */;
2178 long var3 /* : Int */;
2179 long var4 /* : Int */;
2180 val* var5 /* : Discrete */;
2181 { /* Inline kernel#Int#prec (self) */
2182 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2183 var4 = var3-1;
2184 var1 = var4;
2185 goto RET_LABEL2;
2186 RET_LABEL2:(void)0;
2187 }
2188 var5 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */
2189 var = var5;
2190 RET_LABEL:;
2191 return var;
2192 }
2193 /* method kernel#Int#distance for (self: Int, Int): Int */
2194 long kernel__Int__distance(long self, long p0) {
2195 long var /* : Int */;
2196 short int var1 /* : Bool */;
2197 int cltype;
2198 int idtype;
2199 const char* var_class_name;
2200 long var_i /* var i: Int */;
2201 long var2 /* : Int */;
2202 long var4 /* : Int */;
2203 long var_d /* var d: Int */;
2204 long var5 /* : Int */;
2205 short int var6 /* : Bool */;
2206 short int var8 /* : Bool */;
2207 int cltype9;
2208 int idtype10;
2209 const char* var_class_name11;
2210 short int var12 /* : Bool */;
2211 long var13 /* : Int */;
2212 long var15 /* : Int */;
2213 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
2214 /* <p0:Int> isa OTHER */
2215 var1 = 1; /* easy <p0:Int> isa OTHER*/
2216 if (!var1) {
2217 var_class_name = type_kernel__Int.name;
2218 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2219 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 293);
2220 show_backtrace(1);
2221 }
2222 var_i = p0;
2223 { /* Inline kernel#Int#- (self,var_i) */
2224 var4 = self - var_i;
2225 var2 = var4;
2226 goto RET_LABEL3;
2227 RET_LABEL3:(void)0;
2228 }
2229 var_d = var2;
2230 var5 = 0;
2231 { /* Inline kernel#Int#>= (var_d,var5) */
2232 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
2233 /* <var5:Int> isa OTHER */
2234 var8 = 1; /* easy <var5:Int> isa OTHER*/
2235 if (!var8) {
2236 var_class_name11 = type_kernel__Int.name;
2237 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
2238 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
2239 show_backtrace(1);
2240 }
2241 var12 = var_d >= var5;
2242 var6 = var12;
2243 goto RET_LABEL7;
2244 RET_LABEL7:(void)0;
2245 }
2246 if (var6){
2247 var = var_d;
2248 goto RET_LABEL;
2249 } else {
2250 { /* Inline kernel#Int#unary - (var_d) */
2251 var15 = -var_d;
2252 var13 = var15;
2253 goto RET_LABEL14;
2254 RET_LABEL14:(void)0;
2255 }
2256 var = var13;
2257 goto RET_LABEL;
2258 }
2259 RET_LABEL:;
2260 return var;
2261 }
2262 /* method kernel#Int#distance for (self: Object, Discrete): Int */
2263 long VIRTUAL_kernel__Int__distance(val* self, val* p0) {
2264 long var /* : Int */;
2265 long var1 /* : Int */;
2266 long var2 /* : Int */;
2267 long var3 /* : Int */;
2268 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2269 var3 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Discrete to Int */;
2270 var1 = kernel__Int__distance(var2, var3);
2271 var = var1;
2272 RET_LABEL:;
2273 return var;
2274 }
2275 /* method kernel#Int#<=> for (self: Int, Int): Int */
2276 long kernel__Int___60d_61d_62d(long self, long p0) {
2277 long var /* : Int */;
2278 short int var1 /* : Bool */;
2279 int cltype;
2280 int idtype;
2281 const char* var_class_name;
2282 long var_other /* var other: Int */;
2283 short int var2 /* : Bool */;
2284 short int var4 /* : Bool */;
2285 int cltype5;
2286 int idtype6;
2287 const char* var_class_name7;
2288 short int var8 /* : Bool */;
2289 long var9 /* : Int */;
2290 long var10 /* : Int */;
2291 long var12 /* : Int */;
2292 short int var13 /* : Bool */;
2293 short int var15 /* : Bool */;
2294 int cltype16;
2295 int idtype17;
2296 const char* var_class_name18;
2297 short int var19 /* : Bool */;
2298 long var20 /* : Int */;
2299 long var21 /* : Int */;
2300 /* Covariant cast for argument 0 (other) <p0:Int> isa OTHER */
2301 /* <p0:Int> isa OTHER */
2302 var1 = 1; /* easy <p0:Int> isa OTHER*/
2303 if (!var1) {
2304 var_class_name = type_kernel__Int.name;
2305 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2306 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 303);
2307 show_backtrace(1);
2308 }
2309 var_other = p0;
2310 { /* Inline kernel#Int#< (self,var_other) */
2311 /* Covariant cast for argument 0 (i) <var_other:Int> isa OTHER */
2312 /* <var_other:Int> isa OTHER */
2313 var4 = 1; /* easy <var_other:Int> isa OTHER*/
2314 if (!var4) {
2315 var_class_name7 = type_kernel__Int.name;
2316 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
2317 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
2318 show_backtrace(1);
2319 }
2320 var8 = self < var_other;
2321 var2 = var8;
2322 goto RET_LABEL3;
2323 RET_LABEL3:(void)0;
2324 }
2325 if (var2){
2326 var9 = 1;
2327 { /* Inline kernel#Int#unary - (var9) */
2328 var12 = -var9;
2329 var10 = var12;
2330 goto RET_LABEL11;
2331 RET_LABEL11:(void)0;
2332 }
2333 var = var10;
2334 goto RET_LABEL;
2335 } else {
2336 { /* Inline kernel#Int#< (var_other,self) */
2337 /* Covariant cast for argument 0 (i) <self:Int> isa OTHER */
2338 /* <self:Int> isa OTHER */
2339 var15 = 1; /* easy <self:Int> isa OTHER*/
2340 if (!var15) {
2341 var_class_name18 = type_kernel__Int.name;
2342 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
2343 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
2344 show_backtrace(1);
2345 }
2346 var19 = var_other < self;
2347 var13 = var19;
2348 goto RET_LABEL14;
2349 RET_LABEL14:(void)0;
2350 }
2351 if (var13){
2352 var20 = 1;
2353 var = var20;
2354 goto RET_LABEL;
2355 } else {
2356 var21 = 0;
2357 var = var21;
2358 goto RET_LABEL;
2359 }
2360 }
2361 RET_LABEL:;
2362 return var;
2363 }
2364 /* method kernel#Int#<=> for (self: Object, Comparable): Int */
2365 long VIRTUAL_kernel__Int___60d_61d_62d(val* self, val* p0) {
2366 long var /* : Int */;
2367 long var1 /* : Int */;
2368 long var2 /* : Int */;
2369 long var3 /* : Int */;
2370 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2371 var3 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
2372 var1 = kernel__Int___60d_61d_62d(var2, var3);
2373 var = var1;
2374 RET_LABEL:;
2375 return var;
2376 }
2377 /* method kernel#Int#is_between for (self: Int, Int, Int): Bool */
2378 short int kernel__Int__is_between(long self, long p0, long p1) {
2379 short int var /* : Bool */;
2380 short int var1 /* : Bool */;
2381 int cltype;
2382 int idtype;
2383 const char* var_class_name;
2384 short int var2 /* : Bool */;
2385 int cltype3;
2386 int idtype4;
2387 const char* var_class_name5;
2388 long var_c /* var c: Int */;
2389 long var_d /* var d: Int */;
2390 short int var6 /* : Bool */;
2391 short int var7 /* : Bool */;
2392 short int var9 /* : Bool */;
2393 int cltype10;
2394 int idtype11;
2395 const char* var_class_name12;
2396 short int var13 /* : Bool */;
2397 short int var_ /* var : Bool */;
2398 short int var14 /* : Bool */;
2399 short int var16 /* : Bool */;
2400 int cltype17;
2401 int idtype18;
2402 const char* var_class_name19;
2403 short int var20 /* : Bool */;
2404 short int var21 /* : Bool */;
2405 short int var22 /* : Bool */;
2406 /* Covariant cast for argument 0 (c) <p0:Int> isa OTHER */
2407 /* <p0:Int> isa OTHER */
2408 var1 = 1; /* easy <p0:Int> isa OTHER*/
2409 if (!var1) {
2410 var_class_name = type_kernel__Int.name;
2411 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2412 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 314);
2413 show_backtrace(1);
2414 }
2415 /* Covariant cast for argument 1 (d) <p1:Int> isa OTHER */
2416 /* <p1:Int> isa OTHER */
2417 var2 = 1; /* easy <p1:Int> isa OTHER*/
2418 if (!var2) {
2419 var_class_name5 = type_kernel__Int.name;
2420 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name5);
2421 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 314);
2422 show_backtrace(1);
2423 }
2424 var_c = p0;
2425 var_d = p1;
2426 { /* Inline kernel#Int#< (self,var_c) */
2427 /* Covariant cast for argument 0 (i) <var_c:Int> isa OTHER */
2428 /* <var_c:Int> isa OTHER */
2429 var9 = 1; /* easy <var_c:Int> isa OTHER*/
2430 if (!var9) {
2431 var_class_name12 = type_kernel__Int.name;
2432 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
2433 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
2434 show_backtrace(1);
2435 }
2436 var13 = self < var_c;
2437 var7 = var13;
2438 goto RET_LABEL8;
2439 RET_LABEL8:(void)0;
2440 }
2441 var_ = var7;
2442 if (var7){
2443 var6 = var_;
2444 } else {
2445 { /* Inline kernel#Int#< (var_d,self) */
2446 /* Covariant cast for argument 0 (i) <self:Int> isa OTHER */
2447 /* <self:Int> isa OTHER */
2448 var16 = 1; /* easy <self:Int> isa OTHER*/
2449 if (!var16) {
2450 var_class_name19 = type_kernel__Int.name;
2451 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19);
2452 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
2453 show_backtrace(1);
2454 }
2455 var20 = var_d < self;
2456 var14 = var20;
2457 goto RET_LABEL15;
2458 RET_LABEL15:(void)0;
2459 }
2460 var6 = var14;
2461 }
2462 if (var6){
2463 var21 = 0;
2464 var = var21;
2465 goto RET_LABEL;
2466 } else {
2467 var22 = 1;
2468 var = var22;
2469 goto RET_LABEL;
2470 }
2471 RET_LABEL:;
2472 return var;
2473 }
2474 /* method kernel#Int#is_between for (self: Object, Comparable, Comparable): Bool */
2475 short int VIRTUAL_kernel__Int__is_between(val* self, val* p0, val* p1) {
2476 short int var /* : Bool */;
2477 short int var1 /* : Bool */;
2478 long var2 /* : Int */;
2479 long var3 /* : Int */;
2480 long var4 /* : Int */;
2481 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2482 var3 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
2483 var4 = ((struct instance_kernel__Int*)p1)->value; /* autounbox from Comparable to Int */;
2484 var1 = kernel__Int__is_between(var2, var3, var4);
2485 var = var1;
2486 RET_LABEL:;
2487 return var;
2488 }
2489 /* method kernel#Int#max for (self: Int, Int): Int */
2490 long kernel__Int__max(long self, long p0) {
2491 long var /* : Int */;
2492 short int var1 /* : Bool */;
2493 int cltype;
2494 int idtype;
2495 const char* var_class_name;
2496 long var_other /* var other: Int */;
2497 short int var2 /* : Bool */;
2498 short int var4 /* : Bool */;
2499 int cltype5;
2500 int idtype6;
2501 const char* var_class_name7;
2502 short int var8 /* : Bool */;
2503 /* Covariant cast for argument 0 (other) <p0:Int> isa OTHER */
2504 /* <p0:Int> isa OTHER */
2505 var1 = 1; /* easy <p0:Int> isa OTHER*/
2506 if (!var1) {
2507 var_class_name = type_kernel__Int.name;
2508 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2509 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 323);
2510 show_backtrace(1);
2511 }
2512 var_other = p0;
2513 { /* Inline kernel#Int#< (self,var_other) */
2514 /* Covariant cast for argument 0 (i) <var_other:Int> isa OTHER */
2515 /* <var_other:Int> isa OTHER */
2516 var4 = 1; /* easy <var_other:Int> isa OTHER*/
2517 if (!var4) {
2518 var_class_name7 = type_kernel__Int.name;
2519 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
2520 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
2521 show_backtrace(1);
2522 }
2523 var8 = self < var_other;
2524 var2 = var8;
2525 goto RET_LABEL3;
2526 RET_LABEL3:(void)0;
2527 }
2528 if (var2){
2529 var = var_other;
2530 goto RET_LABEL;
2531 } else {
2532 var = self;
2533 goto RET_LABEL;
2534 }
2535 RET_LABEL:;
2536 return var;
2537 }
2538 /* method kernel#Int#max for (self: Object, Comparable): Comparable */
2539 val* VIRTUAL_kernel__Int__max(val* self, val* p0) {
2540 val* var /* : Comparable */;
2541 long var1 /* : Int */;
2542 long var2 /* : Int */;
2543 long var3 /* : Int */;
2544 val* var4 /* : Comparable */;
2545 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2546 var3 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
2547 var1 = kernel__Int__max(var2, var3);
2548 var4 = BOX_kernel__Int(var1); /* autobox from Int to Comparable */
2549 var = var4;
2550 RET_LABEL:;
2551 return var;
2552 }
2553 /* method kernel#Int#min for (self: Int, Int): Int */
2554 long kernel__Int__min(long self, long p0) {
2555 long var /* : Int */;
2556 short int var1 /* : Bool */;
2557 int cltype;
2558 int idtype;
2559 const char* var_class_name;
2560 long var_c /* var c: Int */;
2561 short int var2 /* : Bool */;
2562 short int var4 /* : Bool */;
2563 int cltype5;
2564 int idtype6;
2565 const char* var_class_name7;
2566 short int var8 /* : Bool */;
2567 /* Covariant cast for argument 0 (c) <p0:Int> isa OTHER */
2568 /* <p0:Int> isa OTHER */
2569 var1 = 1; /* easy <p0:Int> isa OTHER*/
2570 if (!var1) {
2571 var_class_name = type_kernel__Int.name;
2572 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2573 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 332);
2574 show_backtrace(1);
2575 }
2576 var_c = p0;
2577 { /* Inline kernel#Int#< (var_c,self) */
2578 /* Covariant cast for argument 0 (i) <self:Int> isa OTHER */
2579 /* <self:Int> isa OTHER */
2580 var4 = 1; /* easy <self:Int> isa OTHER*/
2581 if (!var4) {
2582 var_class_name7 = type_kernel__Int.name;
2583 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
2584 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
2585 show_backtrace(1);
2586 }
2587 var8 = var_c < self;
2588 var2 = var8;
2589 goto RET_LABEL3;
2590 RET_LABEL3:(void)0;
2591 }
2592 if (var2){
2593 var = var_c;
2594 goto RET_LABEL;
2595 } else {
2596 var = self;
2597 goto RET_LABEL;
2598 }
2599 RET_LABEL:;
2600 return var;
2601 }
2602 /* method kernel#Int#min for (self: Object, Comparable): Comparable */
2603 val* VIRTUAL_kernel__Int__min(val* self, val* p0) {
2604 val* var /* : Comparable */;
2605 long var1 /* : Int */;
2606 long var2 /* : Int */;
2607 long var3 /* : Int */;
2608 val* var4 /* : Comparable */;
2609 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2610 var3 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
2611 var1 = kernel__Int__min(var2, var3);
2612 var4 = BOX_kernel__Int(var1); /* autobox from Int to Comparable */
2613 var = var4;
2614 RET_LABEL:;
2615 return var;
2616 }
2617 /* method kernel#Int#ascii for (self: Int): Char */
2618 char kernel__Int__ascii(long self) {
2619 char var /* : Char */;
2620 char var1 /* : Char */;
2621 var1 = self;
2622 var = var1;
2623 goto RET_LABEL;
2624 RET_LABEL:;
2625 return var;
2626 }
2627 /* method kernel#Int#ascii for (self: Object): Char */
2628 char VIRTUAL_kernel__Int__ascii(val* self) {
2629 char var /* : Char */;
2630 char var1 /* : Char */;
2631 long var3 /* : Int */;
2632 char var4 /* : Char */;
2633 { /* Inline kernel#Int#ascii (self) */
2634 var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2635 var4 = var3;
2636 var1 = var4;
2637 goto RET_LABEL2;
2638 RET_LABEL2:(void)0;
2639 }
2640 var = var1;
2641 RET_LABEL:;
2642 return var;
2643 }
2644 /* method kernel#Int#digit_count for (self: Int, Int): Int */
2645 long kernel__Int__digit_count(long self, long p0) {
2646 long var /* : Int */;
2647 long var_b /* var b: Int */;
2648 long var1 /* : Int */;
2649 short int var2 /* : Bool */;
2650 short int var4 /* : Bool */;
2651 long var5 /* : Int */;
2652 long var6 /* : Int */;
2653 short int var7 /* : Bool */;
2654 short int var9 /* : Bool */;
2655 int cltype;
2656 int idtype;
2657 const char* var_class_name;
2658 short int var10 /* : Bool */;
2659 long var11 /* : Int */;
2660 long var_d /* var d: Int */;
2661 long var12 /* : Int */;
2662 long var14 /* : Int */;
2663 long var_n /* var n: Int */;
2664 long var15 /* : Int */;
2665 short int var16 /* : Bool */;
2666 short int var18 /* : Bool */;
2667 long var19 /* : Int */;
2668 long var20 /* : Int */;
2669 long var21 /* : Int */;
2670 short int var22 /* : Bool */;
2671 short int var24 /* : Bool */;
2672 int cltype25;
2673 int idtype26;
2674 const char* var_class_name27;
2675 short int var28 /* : Bool */;
2676 long var29 /* : Int */;
2677 long var30 /* : Int */;
2678 long var32 /* : Int */;
2679 long var33 /* : Int */;
2680 long var35 /* : Int */;
2681 var_b = p0;
2682 var1 = 10;
2683 { /* Inline kernel#Int#== (var_b,var1) */
2684 var4 = var_b == var1;
2685 var2 = var4;
2686 goto RET_LABEL3;
2687 RET_LABEL3:(void)0;
2688 }
2689 if (var2){
2690 var5 = kernel__Int__digit_count_base_95d10(self);
2691 var = var5;
2692 goto RET_LABEL;
2693 } else {
2694 }
2695 var6 = 0;
2696 { /* Inline kernel#Int#< (self,var6) */
2697 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
2698 /* <var6:Int> isa OTHER */
2699 var9 = 1; /* easy <var6:Int> isa OTHER*/
2700 if (!var9) {
2701 var_class_name = type_kernel__Int.name;
2702 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2703 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
2704 show_backtrace(1);
2705 }
2706 var10 = self < var6;
2707 var7 = var10;
2708 goto RET_LABEL8;
2709 RET_LABEL8:(void)0;
2710 }
2711 if (var7){
2712 var11 = 1;
2713 var_d = var11;
2714 { /* Inline kernel#Int#unary - (self) */
2715 var14 = -self;
2716 var12 = var14;
2717 goto RET_LABEL13;
2718 RET_LABEL13:(void)0;
2719 }
2720 var_n = var12;
2721 } else {
2722 var15 = 0;
2723 { /* Inline kernel#Int#== (self,var15) */
2724 var18 = self == var15;
2725 var16 = var18;
2726 goto RET_LABEL17;
2727 RET_LABEL17:(void)0;
2728 }
2729 if (var16){
2730 var19 = 1;
2731 var = var19;
2732 goto RET_LABEL;
2733 } else {
2734 var20 = 0;
2735 var_d = var20;
2736 var_n = self;
2737 }
2738 }
2739 for(;;) {
2740 var21 = 0;
2741 { /* Inline kernel#Int#> (var_n,var21) */
2742 /* Covariant cast for argument 0 (i) <var21:Int> isa OTHER */
2743 /* <var21:Int> isa OTHER */
2744 var24 = 1; /* easy <var21:Int> isa OTHER*/
2745 if (!var24) {
2746 var_class_name27 = type_kernel__Int.name;
2747 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
2748 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
2749 show_backtrace(1);
2750 }
2751 var28 = var_n > var21;
2752 var22 = var28;
2753 goto RET_LABEL23;
2754 RET_LABEL23:(void)0;
2755 }
2756 if (!var22) break;
2757 var29 = 1;
2758 { /* Inline kernel#Int#+ (var_d,var29) */
2759 var32 = var_d + var29;
2760 var30 = var32;
2761 goto RET_LABEL31;
2762 RET_LABEL31:(void)0;
2763 }
2764 var_d = var30;
2765 { /* Inline kernel#Int#/ (var_n,var_b) */
2766 var35 = var_n / var_b;
2767 var33 = var35;
2768 goto RET_LABEL34;
2769 RET_LABEL34:(void)0;
2770 }
2771 var_n = var33;
2772 CONTINUE_label: (void)0;
2773 }
2774 BREAK_label: (void)0;
2775 var = var_d;
2776 goto RET_LABEL;
2777 RET_LABEL:;
2778 return var;
2779 }
2780 /* method kernel#Int#digit_count for (self: Object, Int): Int */
2781 long VIRTUAL_kernel__Int__digit_count(val* self, long p0) {
2782 long var /* : Int */;
2783 long var1 /* : Int */;
2784 long var2 /* : Int */;
2785 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
2786 var1 = kernel__Int__digit_count(var2, p0);
2787 var = var1;
2788 RET_LABEL:;
2789 return var;
2790 }
2791 /* method kernel#Int#digit_count_base_10 for (self: Int): Int */
2792 long kernel__Int__digit_count_base_95d10(long self) {
2793 long var /* : Int */;
2794 long var1 /* : Int */;
2795 short int var2 /* : Bool */;
2796 short int var4 /* : Bool */;
2797 int cltype;
2798 int idtype;
2799 const char* var_class_name;
2800 short int var5 /* : Bool */;
2801 long var6 /* : Int */;
2802 long var_result /* var result: Int */;
2803 long var7 /* : Int */;
2804 long var9 /* : Int */;
2805 long var_val /* var val: Int */;
2806 long var10 /* : Int */;
2807 long var11 /* : Int */;
2808 short int var12 /* : Bool */;
2809 short int var14 /* : Bool */;
2810 int cltype15;
2811 int idtype16;
2812 const char* var_class_name17;
2813 short int var18 /* : Bool */;
2814 long var19 /* : Int */;
2815 short int var20 /* : Bool */;
2816 short int var22 /* : Bool */;
2817 int cltype23;
2818 int idtype24;
2819 const char* var_class_name25;
2820 short int var26 /* : Bool */;
2821 long var27 /* : Int */;
2822 long var28 /* : Int */;
2823 long var30 /* : Int */;
2824 long var31 /* : Int */;
2825 short int var32 /* : Bool */;
2826 short int var34 /* : Bool */;
2827 int cltype35;
2828 int idtype36;
2829 const char* var_class_name37;
2830 short int var38 /* : Bool */;
2831 long var39 /* : Int */;
2832 long var40 /* : Int */;
2833 long var42 /* : Int */;
2834 long var43 /* : Int */;
2835 short int var44 /* : Bool */;
2836 short int var46 /* : Bool */;
2837 int cltype47;
2838 int idtype48;
2839 const char* var_class_name49;
2840 short int var50 /* : Bool */;
2841 long var51 /* : Int */;
2842 long var52 /* : Int */;
2843 long var54 /* : Int */;
2844 long var55 /* : Int */;
2845 long var56 /* : Int */;
2846 long var58 /* : Int */;
2847 long var59 /* : Int */;
2848 long var60 /* : Int */;
2849 long var62 /* : Int */;
2850 var1 = 0;
2851 { /* Inline kernel#Int#< (self,var1) */
2852 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
2853 /* <var1:Int> isa OTHER */
2854 var4 = 1; /* easy <var1:Int> isa OTHER*/
2855 if (!var4) {
2856 var_class_name = type_kernel__Int.name;
2857 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2858 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
2859 show_backtrace(1);
2860 }
2861 var5 = self < var1;
2862 var2 = var5;
2863 goto RET_LABEL3;
2864 RET_LABEL3:(void)0;
2865 }
2866 if (var2){
2867 var6 = 2;
2868 var_result = var6;
2869 { /* Inline kernel#Int#unary - (self) */
2870 var9 = -self;
2871 var7 = var9;
2872 goto RET_LABEL8;
2873 RET_LABEL8:(void)0;
2874 }
2875 var_val = var7;
2876 } else {
2877 var10 = 1;
2878 var_result = var10;
2879 var_val = self;
2880 }
2881 for(;;) {
2882 var11 = 10;
2883 { /* Inline kernel#Int#< (var_val,var11) */
2884 /* Covariant cast for argument 0 (i) <var11:Int> isa OTHER */
2885 /* <var11:Int> isa OTHER */
2886 var14 = 1; /* easy <var11:Int> isa OTHER*/
2887 if (!var14) {
2888 var_class_name17 = type_kernel__Int.name;
2889 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
2890 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
2891 show_backtrace(1);
2892 }
2893 var18 = var_val < var11;
2894 var12 = var18;
2895 goto RET_LABEL13;
2896 RET_LABEL13:(void)0;
2897 }
2898 if (var12){
2899 var = var_result;
2900 goto RET_LABEL;
2901 } else {
2902 }
2903 var19 = 100;
2904 { /* Inline kernel#Int#< (var_val,var19) */
2905 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
2906 /* <var19:Int> isa OTHER */
2907 var22 = 1; /* easy <var19:Int> isa OTHER*/
2908 if (!var22) {
2909 var_class_name25 = type_kernel__Int.name;
2910 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
2911 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
2912 show_backtrace(1);
2913 }
2914 var26 = var_val < var19;
2915 var20 = var26;
2916 goto RET_LABEL21;
2917 RET_LABEL21:(void)0;
2918 }
2919 if (var20){
2920 var27 = 1;
2921 { /* Inline kernel#Int#+ (var_result,var27) */
2922 var30 = var_result + var27;
2923 var28 = var30;
2924 goto RET_LABEL29;
2925 RET_LABEL29:(void)0;
2926 }
2927 var = var28;
2928 goto RET_LABEL;
2929 } else {
2930 }
2931 var31 = 1000;
2932 { /* Inline kernel#Int#< (var_val,var31) */
2933 /* Covariant cast for argument 0 (i) <var31:Int> isa OTHER */
2934 /* <var31:Int> isa OTHER */
2935 var34 = 1; /* easy <var31:Int> isa OTHER*/
2936 if (!var34) {
2937 var_class_name37 = type_kernel__Int.name;
2938 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
2939 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
2940 show_backtrace(1);
2941 }
2942 var38 = var_val < var31;
2943 var32 = var38;
2944 goto RET_LABEL33;
2945 RET_LABEL33:(void)0;
2946 }
2947 if (var32){
2948 var39 = 2;
2949 { /* Inline kernel#Int#+ (var_result,var39) */
2950 var42 = var_result + var39;
2951 var40 = var42;
2952 goto RET_LABEL41;
2953 RET_LABEL41:(void)0;
2954 }
2955 var = var40;
2956 goto RET_LABEL;
2957 } else {
2958 }
2959 var43 = 10000;
2960 { /* Inline kernel#Int#< (var_val,var43) */
2961 /* Covariant cast for argument 0 (i) <var43:Int> isa OTHER */
2962 /* <var43:Int> isa OTHER */
2963 var46 = 1; /* easy <var43:Int> isa OTHER*/
2964 if (!var46) {
2965 var_class_name49 = type_kernel__Int.name;
2966 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49);
2967 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
2968 show_backtrace(1);
2969 }
2970 var50 = var_val < var43;
2971 var44 = var50;
2972 goto RET_LABEL45;
2973 RET_LABEL45:(void)0;
2974 }
2975 if (var44){
2976 var51 = 3;
2977 { /* Inline kernel#Int#+ (var_result,var51) */
2978 var54 = var_result + var51;
2979 var52 = var54;
2980 goto RET_LABEL53;
2981 RET_LABEL53:(void)0;
2982 }
2983 var = var52;
2984 goto RET_LABEL;
2985 } else {
2986 }
2987 var55 = 10000;
2988 { /* Inline kernel#Int#/ (var_val,var55) */
2989 var58 = var_val / var55;
2990 var56 = var58;
2991 goto RET_LABEL57;
2992 RET_LABEL57:(void)0;
2993 }
2994 var_val = var56;
2995 var59 = 4;
2996 { /* Inline kernel#Int#+ (var_result,var59) */
2997 var62 = var_result + var59;
2998 var60 = var62;
2999 goto RET_LABEL61;
3000 RET_LABEL61:(void)0;
3001 }
3002 var_result = var60;
3003 CONTINUE_label: (void)0;
3004 }
3005 BREAK_label: (void)0;
3006 RET_LABEL:;
3007 return var;
3008 }
3009 /* method kernel#Int#digit_count_base_10 for (self: Object): Int */
3010 long VIRTUAL_kernel__Int__digit_count_base_95d10(val* self) {
3011 long var /* : Int */;
3012 long var1 /* : Int */;
3013 long var2 /* : Int */;
3014 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
3015 var1 = kernel__Int__digit_count_base_95d10(var2);
3016 var = var1;
3017 RET_LABEL:;
3018 return var;
3019 }
3020 /* method kernel#Int#to_c for (self: Int): Char */
3021 char kernel__Int__to_c(long self) {
3022 char var /* : Char */;
3023 short int var1 /* : Bool */;
3024 long var2 /* : Int */;
3025 short int var3 /* : Bool */;
3026 short int var5 /* : Bool */;
3027 int cltype;
3028 int idtype;
3029 const char* var_class_name;
3030 short int var6 /* : Bool */;
3031 short int var_ /* var : Bool */;
3032 long var7 /* : Int */;
3033 short int var8 /* : Bool */;
3034 short int var10 /* : Bool */;
3035 int cltype11;
3036 int idtype12;
3037 const char* var_class_name13;
3038 short int var14 /* : Bool */;
3039 long var15 /* : Int */;
3040 short int var16 /* : Bool */;
3041 short int var18 /* : Bool */;
3042 int cltype19;
3043 int idtype20;
3044 const char* var_class_name21;
3045 short int var22 /* : Bool */;
3046 char var23 /* : Char */;
3047 long var24 /* : Int */;
3048 long var26 /* : Int */;
3049 long var27 /* : Int */;
3050 long var29 /* : Int */;
3051 char var30 /* : Char */;
3052 char var32 /* : Char */;
3053 char var33 /* : Char */;
3054 long var34 /* : Int */;
3055 long var36 /* : Int */;
3056 long var37 /* : Int */;
3057 long var38 /* : Int */;
3058 long var40 /* : Int */;
3059 long var41 /* : Int */;
3060 long var43 /* : Int */;
3061 char var44 /* : Char */;
3062 char var46 /* : Char */;
3063 var2 = 0;
3064 { /* Inline kernel#Int#>= (self,var2) */
3065 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
3066 /* <var2:Int> isa OTHER */
3067 var5 = 1; /* easy <var2:Int> isa OTHER*/
3068 if (!var5) {
3069 var_class_name = type_kernel__Int.name;
3070 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3071 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
3072 show_backtrace(1);
3073 }
3074 var6 = self >= var2;
3075 var3 = var6;
3076 goto RET_LABEL4;
3077 RET_LABEL4:(void)0;
3078 }
3079 var_ = var3;
3080 if (var3){
3081 var7 = 36;
3082 { /* Inline kernel#Int#<= (self,var7) */
3083 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
3084 /* <var7:Int> isa OTHER */
3085 var10 = 1; /* easy <var7:Int> isa OTHER*/
3086 if (!var10) {
3087 var_class_name13 = type_kernel__Int.name;
3088 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
3089 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
3090 show_backtrace(1);
3091 }
3092 var14 = self <= var7;
3093 var8 = var14;
3094 goto RET_LABEL9;
3095 RET_LABEL9:(void)0;
3096 }
3097 var1 = var8;
3098 } else {
3099 var1 = var_;
3100 }
3101 if (!var1) {
3102 fprintf(stderr, "Runtime error: %s", "Assert failed");
3103 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 403);
3104 show_backtrace(1);
3105 }
3106 var15 = 10;
3107 { /* Inline kernel#Int#< (self,var15) */
3108 /* Covariant cast for argument 0 (i) <var15:Int> isa OTHER */
3109 /* <var15:Int> isa OTHER */
3110 var18 = 1; /* easy <var15:Int> isa OTHER*/
3111 if (!var18) {
3112 var_class_name21 = type_kernel__Int.name;
3113 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
3114 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
3115 show_backtrace(1);
3116 }
3117 var22 = self < var15;
3118 var16 = var22;
3119 goto RET_LABEL17;
3120 RET_LABEL17:(void)0;
3121 }
3122 if (var16){
3123 var23 = '0';
3124 { /* Inline kernel#Char#ascii (var23) */
3125 var26 = (unsigned char)var23;
3126 var24 = var26;
3127 goto RET_LABEL25;
3128 RET_LABEL25:(void)0;
3129 }
3130 { /* Inline kernel#Int#+ (self,var24) */
3131 var29 = self + var24;
3132 var27 = var29;
3133 goto RET_LABEL28;
3134 RET_LABEL28:(void)0;
3135 }
3136 { /* Inline kernel#Int#ascii (var27) */
3137 var32 = var27;
3138 var30 = var32;
3139 goto RET_LABEL31;
3140 RET_LABEL31:(void)0;
3141 }
3142 var = var30;
3143 goto RET_LABEL;
3144 } else {
3145 var33 = 'a';
3146 { /* Inline kernel#Char#ascii (var33) */
3147 var36 = (unsigned char)var33;
3148 var34 = var36;
3149 goto RET_LABEL35;
3150 RET_LABEL35:(void)0;
3151 }
3152 var37 = 10;
3153 { /* Inline kernel#Int#- (var34,var37) */
3154 var40 = var34 - var37;
3155 var38 = var40;
3156 goto RET_LABEL39;
3157 RET_LABEL39:(void)0;
3158 }
3159 { /* Inline kernel#Int#+ (self,var38) */
3160 var43 = self + var38;
3161 var41 = var43;
3162 goto RET_LABEL42;
3163 RET_LABEL42:(void)0;
3164 }
3165 { /* Inline kernel#Int#ascii (var41) */
3166 var46 = var41;
3167 var44 = var46;
3168 goto RET_LABEL45;
3169 RET_LABEL45:(void)0;
3170 }
3171 var = var44;
3172 goto RET_LABEL;
3173 }
3174 RET_LABEL:;
3175 return var;
3176 }
3177 /* method kernel#Int#to_c for (self: Object): Char */
3178 char VIRTUAL_kernel__Int__to_c(val* self) {
3179 char var /* : Char */;
3180 char var1 /* : Char */;
3181 long var2 /* : Int */;
3182 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
3183 var1 = kernel__Int__to_c(var2);
3184 var = var1;
3185 RET_LABEL:;
3186 return var;
3187 }
3188 /* method kernel#Int#abs for (self: Int): Int */
3189 long kernel__Int__abs(long self) {
3190 long var /* : Int */;
3191 long var1 /* : Int */;
3192 short int var2 /* : Bool */;
3193 short int var4 /* : Bool */;
3194 int cltype;
3195 int idtype;
3196 const char* var_class_name;
3197 short int var5 /* : Bool */;
3198 long var6 /* : Int */;
3199 long var7 /* : Int */;
3200 long var9 /* : Int */;
3201 long var10 /* : Int */;
3202 long var12 /* : Int */;
3203 var1 = 0;
3204 { /* Inline kernel#Int#>= (self,var1) */
3205 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
3206 /* <var1:Int> isa OTHER */
3207 var4 = 1; /* easy <var1:Int> isa OTHER*/
3208 if (!var4) {
3209 var_class_name = type_kernel__Int.name;
3210 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3211 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
3212 show_backtrace(1);
3213 }
3214 var5 = self >= var1;
3215 var2 = var5;
3216 goto RET_LABEL3;
3217 RET_LABEL3:(void)0;
3218 }
3219 if (var2){
3220 var = self;
3221 goto RET_LABEL;
3222 } else {
3223 var6 = 1;
3224 { /* Inline kernel#Int#unary - (var6) */
3225 var9 = -var6;
3226 var7 = var9;
3227 goto RET_LABEL8;
3228 RET_LABEL8:(void)0;
3229 }
3230 { /* Inline kernel#Int#* (var7,self) */
3231 var12 = var7 * self;
3232 var10 = var12;
3233 goto RET_LABEL11;
3234 RET_LABEL11:(void)0;
3235 }
3236 var = var10;
3237 goto RET_LABEL;
3238 }
3239 RET_LABEL:;
3240 return var;
3241 }
3242 /* method kernel#Int#abs for (self: Object): Int */
3243 long VIRTUAL_kernel__Int__abs(val* self) {
3244 long var /* : Int */;
3245 long var1 /* : Int */;
3246 long var2 /* : Int */;
3247 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
3248 var1 = kernel__Int__abs(var2);
3249 var = var1;
3250 RET_LABEL:;
3251 return var;
3252 }
3253 /* method kernel#Char#object_id for (self: Char): Int */
3254 long kernel__Char__object_id(char self) {
3255 long var /* : Int */;
3256 long var1 /* : Int */;
3257 var1 = (long)self;
3258 var = var1;
3259 goto RET_LABEL;
3260 RET_LABEL:;
3261 return var;
3262 }
3263 /* method kernel#Char#object_id for (self: Object): Int */
3264 long VIRTUAL_kernel__Char__object_id(val* self) {
3265 long var /* : Int */;
3266 long var1 /* : Int */;
3267 char var3 /* : Char */;
3268 long var4 /* : Int */;
3269 { /* Inline kernel#Char#object_id (self) */
3270 var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3271 var4 = (long)var3;
3272 var1 = var4;
3273 goto RET_LABEL2;
3274 RET_LABEL2:(void)0;
3275 }
3276 var = var1;
3277 RET_LABEL:;
3278 return var;
3279 }
3280 /* method kernel#Char#hash for (self: Char): Int */
3281 long kernel__Char__hash(char self) {
3282 long var /* : Int */;
3283 long var1 /* : Int */;
3284 long var3 /* : Int */;
3285 { /* Inline kernel#Char#ascii (self) */
3286 var3 = (unsigned char)self;
3287 var1 = var3;
3288 goto RET_LABEL2;
3289 RET_LABEL2:(void)0;
3290 }
3291 var = var1;
3292 goto RET_LABEL;
3293 RET_LABEL:;
3294 return var;
3295 }
3296 /* method kernel#Char#hash for (self: Object): Int */
3297 long VIRTUAL_kernel__Char__hash(val* self) {
3298 long var /* : Int */;
3299 long var1 /* : Int */;
3300 char var2 /* : Char */;
3301 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3302 var1 = kernel__Char__hash(var2);
3303 var = var1;
3304 RET_LABEL:;
3305 return var;
3306 }
3307 /* method kernel#Char#== for (self: Char, nullable Object): Bool */
3308 short int kernel__Char___61d_61d(char self, val* p0) {
3309 short int var /* : Bool */;
3310 short int var1 /* : Bool */;
3311 char var2 /* : Char */;
3312 var1 = (p0 != NULL) && (p0->class == &class_kernel__Char);
3313 if (var1) {
3314 var2 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from nullable Object to Char */;
3315 var1 = (var2 == self);
3316 }
3317 var = var1;
3318 goto RET_LABEL;
3319 RET_LABEL:;
3320 return var;
3321 }
3322 /* method kernel#Char#== for (self: Object, nullable Object): Bool */
3323 short int VIRTUAL_kernel__Char___61d_61d(val* self, val* p0) {
3324 short int var /* : Bool */;
3325 short int var1 /* : Bool */;
3326 short int var3 /* : Bool */;
3327 { /* Inline kernel#Char#== (self,p0) */
3328 var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)p0)->value);
3329 var1 = var3;
3330 goto RET_LABEL2;
3331 RET_LABEL2:(void)0;
3332 }
3333 var = var1;
3334 RET_LABEL:;
3335 return var;
3336 }
3337 /* method kernel#Char#!= for (self: Char, nullable Object): Bool */
3338 short int kernel__Char___33d_61d(char self, val* p0) {
3339 short int var /* : Bool */;
3340 short int var1 /* : Bool */;
3341 char var2 /* : Char */;
3342 short int var3 /* : Bool */;
3343 var1 = (p0 != NULL) && (p0->class == &class_kernel__Char);
3344 if (var1) {
3345 var2 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from nullable Object to Char */;
3346 var1 = (var2 == self);
3347 }
3348 var3 = !var1;
3349 var = var3;
3350 goto RET_LABEL;
3351 RET_LABEL:;
3352 return var;
3353 }
3354 /* method kernel#Char#!= for (self: Object, nullable Object): Bool */
3355 short int VIRTUAL_kernel__Char___33d_61d(val* self, val* p0) {
3356 short int var /* : Bool */;
3357 short int var1 /* : Bool */;
3358 short int var3 /* : Bool */;
3359 short int var4 /* : Bool */;
3360 { /* Inline kernel#Char#!= (self,p0) */
3361 var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)p0)->value);
3362 var4 = !var3;
3363 var1 = var4;
3364 goto RET_LABEL2;
3365 RET_LABEL2:(void)0;
3366 }
3367 var = var1;
3368 RET_LABEL:;
3369 return var;
3370 }
3371 /* method kernel#Char#output for (self: Char) */
3372 void kernel__Char__output(char self) {
3373 printf("%c", self);
3374 RET_LABEL:;
3375 }
3376 /* method kernel#Char#output for (self: Object) */
3377 void VIRTUAL_kernel__Char__output(val* self) {
3378 char var /* : Char */;
3379 { /* Inline kernel#Char#output (self) */
3380 var = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3381 printf("%c", var);
3382 RET_LABEL1:(void)0;
3383 }
3384 RET_LABEL:;
3385 }
3386 /* method kernel#Char#<= for (self: Char, Char): Bool */
3387 short int kernel__Char___60d_61d(char self, char p0) {
3388 short int var /* : Bool */;
3389 short int var1 /* : Bool */;
3390 int cltype;
3391 int idtype;
3392 const char* var_class_name;
3393 short int var2 /* : Bool */;
3394 /* Covariant cast for argument 0 (i) <p0:Char> isa OTHER */
3395 /* <p0:Char> isa OTHER */
3396 var1 = 1; /* easy <p0:Char> isa OTHER*/
3397 if (!var1) {
3398 var_class_name = type_kernel__Char.name;
3399 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3400 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 440);
3401 show_backtrace(1);
3402 }
3403 var2 = self <= p0;
3404 var = var2;
3405 goto RET_LABEL;
3406 RET_LABEL:;
3407 return var;
3408 }
3409 /* method kernel#Char#<= for (self: Object, Comparable): Bool */
3410 short int VIRTUAL_kernel__Char___60d_61d(val* self, val* p0) {
3411 short int var /* : Bool */;
3412 short int var1 /* : Bool */;
3413 short int var3 /* : Bool */;
3414 int cltype;
3415 int idtype;
3416 const struct type* type_struct;
3417 const char* var_class_name;
3418 char var4 /* : Char */;
3419 char var5 /* : Char */;
3420 short int var6 /* : Bool */;
3421 { /* Inline kernel#Char#<= (self,p0) */
3422 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
3423 /* <p0:Comparable> isa OTHER */
3424 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
3425 cltype = type_struct->color;
3426 idtype = type_struct->id;
3427 if(cltype >= p0->type->table_size) {
3428 var3 = 0;
3429 } else {
3430 var3 = p0->type->type_table[cltype] == idtype;
3431 }
3432 if (!var3) {
3433 var_class_name = p0 == NULL ? "null" : p0->type->name;
3434 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3435 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 440);
3436 show_backtrace(1);
3437 }
3438 var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3439 var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */;
3440 var6 = var4 <= var5;
3441 var1 = var6;
3442 goto RET_LABEL2;
3443 RET_LABEL2:(void)0;
3444 }
3445 var = var1;
3446 RET_LABEL:;
3447 return var;
3448 }
3449 /* method kernel#Char#< for (self: Char, Char): Bool */
3450 short int kernel__Char___60d(char self, char p0) {
3451 short int var /* : Bool */;
3452 short int var1 /* : Bool */;
3453 int cltype;
3454 int idtype;
3455 const char* var_class_name;
3456 short int var2 /* : Bool */;
3457 /* Covariant cast for argument 0 (i) <p0:Char> isa OTHER */
3458 /* <p0:Char> isa OTHER */
3459 var1 = 1; /* easy <p0:Char> isa OTHER*/
3460 if (!var1) {
3461 var_class_name = type_kernel__Char.name;
3462 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3463 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 441);
3464 show_backtrace(1);
3465 }
3466 var2 = self < p0;
3467 var = var2;
3468 goto RET_LABEL;
3469 RET_LABEL:;
3470 return var;
3471 }
3472 /* method kernel#Char#< for (self: Object, Comparable): Bool */
3473 short int VIRTUAL_kernel__Char___60d(val* self, val* p0) {
3474 short int var /* : Bool */;
3475 short int var1 /* : Bool */;
3476 short int var3 /* : Bool */;
3477 int cltype;
3478 int idtype;
3479 const struct type* type_struct;
3480 const char* var_class_name;
3481 char var4 /* : Char */;
3482 char var5 /* : Char */;
3483 short int var6 /* : Bool */;
3484 { /* Inline kernel#Char#< (self,p0) */
3485 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
3486 /* <p0:Comparable> isa OTHER */
3487 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
3488 cltype = type_struct->color;
3489 idtype = type_struct->id;
3490 if(cltype >= p0->type->table_size) {
3491 var3 = 0;
3492 } else {
3493 var3 = p0->type->type_table[cltype] == idtype;
3494 }
3495 if (!var3) {
3496 var_class_name = p0 == NULL ? "null" : p0->type->name;
3497 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3498 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 441);
3499 show_backtrace(1);
3500 }
3501 var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3502 var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */;
3503 var6 = var4 < var5;
3504 var1 = var6;
3505 goto RET_LABEL2;
3506 RET_LABEL2:(void)0;
3507 }
3508 var = var1;
3509 RET_LABEL:;
3510 return var;
3511 }
3512 /* method kernel#Char#>= for (self: Char, Char): Bool */
3513 short int kernel__Char___62d_61d(char self, char p0) {
3514 short int var /* : Bool */;
3515 short int var1 /* : Bool */;
3516 int cltype;
3517 int idtype;
3518 const char* var_class_name;
3519 short int var2 /* : Bool */;
3520 /* Covariant cast for argument 0 (i) <p0:Char> isa OTHER */
3521 /* <p0:Char> isa OTHER */
3522 var1 = 1; /* easy <p0:Char> isa OTHER*/
3523 if (!var1) {
3524 var_class_name = type_kernel__Char.name;
3525 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3526 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 442);
3527 show_backtrace(1);
3528 }
3529 var2 = self >= p0;
3530 var = var2;
3531 goto RET_LABEL;
3532 RET_LABEL:;
3533 return var;
3534 }
3535 /* method kernel#Char#>= for (self: Object, Comparable): Bool */
3536 short int VIRTUAL_kernel__Char___62d_61d(val* self, val* p0) {
3537 short int var /* : Bool */;
3538 short int var1 /* : Bool */;
3539 short int var3 /* : Bool */;
3540 int cltype;
3541 int idtype;
3542 const struct type* type_struct;
3543 const char* var_class_name;
3544 char var4 /* : Char */;
3545 char var5 /* : Char */;
3546 short int var6 /* : Bool */;
3547 { /* Inline kernel#Char#>= (self,p0) */
3548 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
3549 /* <p0:Comparable> isa OTHER */
3550 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
3551 cltype = type_struct->color;
3552 idtype = type_struct->id;
3553 if(cltype >= p0->type->table_size) {
3554 var3 = 0;
3555 } else {
3556 var3 = p0->type->type_table[cltype] == idtype;
3557 }
3558 if (!var3) {
3559 var_class_name = p0 == NULL ? "null" : p0->type->name;
3560 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3561 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 442);
3562 show_backtrace(1);
3563 }
3564 var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3565 var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */;
3566 var6 = var4 >= var5;
3567 var1 = var6;
3568 goto RET_LABEL2;
3569 RET_LABEL2:(void)0;
3570 }
3571 var = var1;
3572 RET_LABEL:;
3573 return var;
3574 }
3575 /* method kernel#Char#> for (self: Char, Char): Bool */
3576 short int kernel__Char___62d(char self, char p0) {
3577 short int var /* : Bool */;
3578 short int var1 /* : Bool */;
3579 int cltype;
3580 int idtype;
3581 const char* var_class_name;
3582 short int var2 /* : Bool */;
3583 /* Covariant cast for argument 0 (i) <p0:Char> isa OTHER */
3584 /* <p0:Char> isa OTHER */
3585 var1 = 1; /* easy <p0:Char> isa OTHER*/
3586 if (!var1) {
3587 var_class_name = type_kernel__Char.name;
3588 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3589 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 443);
3590 show_backtrace(1);
3591 }
3592 var2 = self > p0;
3593 var = var2;
3594 goto RET_LABEL;
3595 RET_LABEL:;
3596 return var;
3597 }
3598 /* method kernel#Char#> for (self: Object, Comparable): Bool */
3599 short int VIRTUAL_kernel__Char___62d(val* self, val* p0) {
3600 short int var /* : Bool */;
3601 short int var1 /* : Bool */;
3602 short int var3 /* : Bool */;
3603 int cltype;
3604 int idtype;
3605 const struct type* type_struct;
3606 const char* var_class_name;
3607 char var4 /* : Char */;
3608 char var5 /* : Char */;
3609 short int var6 /* : Bool */;
3610 { /* Inline kernel#Char#> (self,p0) */
3611 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
3612 /* <p0:Comparable> isa OTHER */
3613 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
3614 cltype = type_struct->color;
3615 idtype = type_struct->id;
3616 if(cltype >= p0->type->table_size) {
3617 var3 = 0;
3618 } else {
3619 var3 = p0->type->type_table[cltype] == idtype;
3620 }
3621 if (!var3) {
3622 var_class_name = p0 == NULL ? "null" : p0->type->name;
3623 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3624 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 443);
3625 show_backtrace(1);
3626 }
3627 var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3628 var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */;
3629 var6 = var4 > var5;
3630 var1 = var6;
3631 goto RET_LABEL2;
3632 RET_LABEL2:(void)0;
3633 }
3634 var = var1;
3635 RET_LABEL:;
3636 return var;
3637 }
3638 /* method kernel#Char#succ for (self: Char): Char */
3639 char kernel__Char__succ(char self) {
3640 char var /* : Char */;
3641 char var1 /* : Char */;
3642 var1 = self+1;
3643 var = var1;
3644 goto RET_LABEL;
3645 RET_LABEL:;
3646 return var;
3647 }
3648 /* method kernel#Char#succ for (self: Object): Discrete */
3649 val* VIRTUAL_kernel__Char__succ(val* self) {
3650 val* var /* : Discrete */;
3651 char var1 /* : Char */;
3652 char var3 /* : Char */;
3653 char var4 /* : Char */;
3654 val* var5 /* : Discrete */;
3655 { /* Inline kernel#Char#succ (self) */
3656 var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3657 var4 = var3+1;
3658 var1 = var4;
3659 goto RET_LABEL2;
3660 RET_LABEL2:(void)0;
3661 }
3662 var5 = BOX_kernel__Char(var1); /* autobox from Char to Discrete */
3663 var = var5;
3664 RET_LABEL:;
3665 return var;
3666 }
3667 /* method kernel#Char#prec for (self: Char): Char */
3668 char kernel__Char__prec(char self) {
3669 char var /* : Char */;
3670 char var1 /* : Char */;
3671 var1 = self-1;
3672 var = var1;
3673 goto RET_LABEL;
3674 RET_LABEL:;
3675 return var;
3676 }
3677 /* method kernel#Char#prec for (self: Object): Discrete */
3678 val* VIRTUAL_kernel__Char__prec(val* self) {
3679 val* var /* : Discrete */;
3680 char var1 /* : Char */;
3681 char var3 /* : Char */;
3682 char var4 /* : Char */;
3683 val* var5 /* : Discrete */;
3684 { /* Inline kernel#Char#prec (self) */
3685 var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3686 var4 = var3-1;
3687 var1 = var4;
3688 goto RET_LABEL2;
3689 RET_LABEL2:(void)0;
3690 }
3691 var5 = BOX_kernel__Char(var1); /* autobox from Char to Discrete */
3692 var = var5;
3693 RET_LABEL:;
3694 return var;
3695 }
3696 /* method kernel#Char#distance for (self: Char, Char): Int */
3697 long kernel__Char__distance(char self, char p0) {
3698 long var /* : Int */;
3699 short int var1 /* : Bool */;
3700 int cltype;
3701 int idtype;
3702 const char* var_class_name;
3703 char var_c /* var c: Char */;
3704 long var2 /* : Int */;
3705 long var4 /* : Int */;
3706 long var5 /* : Int */;
3707 long var7 /* : Int */;
3708 long var8 /* : Int */;
3709 long var10 /* : Int */;
3710 long var_d /* var d: Int */;
3711 long var11 /* : Int */;
3712 short int var12 /* : Bool */;
3713 short int var14 /* : Bool */;
3714 int cltype15;
3715 int idtype16;
3716 const char* var_class_name17;
3717 short int var18 /* : Bool */;
3718 long var19 /* : Int */;
3719 long var21 /* : Int */;
3720 /* Covariant cast for argument 0 (c) <p0:Char> isa OTHER */
3721 /* <p0:Char> isa OTHER */
3722 var1 = 1; /* easy <p0:Char> isa OTHER*/
3723 if (!var1) {
3724 var_class_name = type_kernel__Char.name;
3725 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3726 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 448);
3727 show_backtrace(1);
3728 }
3729 var_c = p0;
3730 { /* Inline kernel#Char#ascii (self) */
3731 var4 = (unsigned char)self;
3732 var2 = var4;
3733 goto RET_LABEL3;
3734 RET_LABEL3:(void)0;
3735 }
3736 { /* Inline kernel#Char#ascii (var_c) */
3737 var7 = (unsigned char)var_c;
3738 var5 = var7;
3739 goto RET_LABEL6;
3740 RET_LABEL6:(void)0;
3741 }
3742 { /* Inline kernel#Int#- (var2,var5) */
3743 var10 = var2 - var5;
3744 var8 = var10;
3745 goto RET_LABEL9;
3746 RET_LABEL9:(void)0;
3747 }
3748 var_d = var8;
3749 var11 = 0;
3750 { /* Inline kernel#Int#>= (var_d,var11) */
3751 /* Covariant cast for argument 0 (i) <var11:Int> isa OTHER */
3752 /* <var11:Int> isa OTHER */
3753 var14 = 1; /* easy <var11:Int> isa OTHER*/
3754 if (!var14) {
3755 var_class_name17 = type_kernel__Int.name;
3756 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
3757 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
3758 show_backtrace(1);
3759 }
3760 var18 = var_d >= var11;
3761 var12 = var18;
3762 goto RET_LABEL13;
3763 RET_LABEL13:(void)0;
3764 }
3765 if (var12){
3766 var = var_d;
3767 goto RET_LABEL;
3768 } else {
3769 { /* Inline kernel#Int#unary - (var_d) */
3770 var21 = -var_d;
3771 var19 = var21;
3772 goto RET_LABEL20;
3773 RET_LABEL20:(void)0;
3774 }
3775 var = var19;
3776 goto RET_LABEL;
3777 }
3778 RET_LABEL:;
3779 return var;
3780 }
3781 /* method kernel#Char#distance for (self: Object, Discrete): Int */
3782 long VIRTUAL_kernel__Char__distance(val* self, val* p0) {
3783 long var /* : Int */;
3784 long var1 /* : Int */;
3785 char var2 /* : Char */;
3786 char var3 /* : Char */;
3787 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3788 var3 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Discrete to Char */;
3789 var1 = kernel__Char__distance(var2, var3);
3790 var = var1;
3791 RET_LABEL:;
3792 return var;
3793 }
3794 /* method kernel#Char#to_i for (self: Char): Int */
3795 long kernel__Char__to_i(char self) {
3796 long var /* : Int */;
3797 char var1 /* : Char */;
3798 short int var2 /* : Bool */;
3799 short int var4 /* : Bool */;
3800 long var5 /* : Int */;
3801 long var6 /* : Int */;
3802 long var8 /* : Int */;
3803 short int var9 /* : Bool */;
3804 long var10 /* : Int */;
3805 long var12 /* : Int */;
3806 char var13 /* : Char */;
3807 long var14 /* : Int */;
3808 long var16 /* : Int */;
3809 long var17 /* : Int */;
3810 long var19 /* : Int */;
3811 char var20 /* : Char */;
3812 long var21 /* : Int */;
3813 long var23 /* : Int */;
3814 char var24 /* : Char */;
3815 long var25 /* : Int */;
3816 long var27 /* : Int */;
3817 long var28 /* : Int */;
3818 long var30 /* : Int */;
3819 long var31 /* : Int */;
3820 long var32 /* : Int */;
3821 long var34 /* : Int */;
3822 var1 = '-';
3823 { /* Inline kernel#Char#== (self,var1) */
3824 var4 = self == var1;
3825 var2 = var4;
3826 goto RET_LABEL3;
3827 RET_LABEL3:(void)0;
3828 }
3829 if (var2){
3830 var5 = 1;
3831 { /* Inline kernel#Int#unary - (var5) */
3832 var8 = -var5;
3833 var6 = var8;
3834 goto RET_LABEL7;
3835 RET_LABEL7:(void)0;
3836 }
3837 var = var6;
3838 goto RET_LABEL;
3839 } else {
3840 var9 = kernel__Char__is_digit(self);
3841 if (var9){
3842 { /* Inline kernel#Char#ascii (self) */
3843 var12 = (unsigned char)self;
3844 var10 = var12;
3845 goto RET_LABEL11;
3846 RET_LABEL11:(void)0;
3847 }
3848 var13 = '0';
3849 { /* Inline kernel#Char#ascii (var13) */
3850 var16 = (unsigned char)var13;
3851 var14 = var16;
3852 goto RET_LABEL15;
3853 RET_LABEL15:(void)0;
3854 }
3855 { /* Inline kernel#Int#- (var10,var14) */
3856 var19 = var10 - var14;
3857 var17 = var19;
3858 goto RET_LABEL18;
3859 RET_LABEL18:(void)0;
3860 }
3861 var = var17;
3862 goto RET_LABEL;
3863 } else {
3864 var20 = kernel__Char__to_lower(self);
3865 { /* Inline kernel#Char#ascii (var20) */
3866 var23 = (unsigned char)var20;
3867 var21 = var23;
3868 goto RET_LABEL22;
3869 RET_LABEL22:(void)0;
3870 }
3871 var24 = 'a';
3872 { /* Inline kernel#Char#ascii (var24) */
3873 var27 = (unsigned char)var24;
3874 var25 = var27;
3875 goto RET_LABEL26;
3876 RET_LABEL26:(void)0;
3877 }
3878 { /* Inline kernel#Int#- (var21,var25) */
3879 var30 = var21 - var25;
3880 var28 = var30;
3881 goto RET_LABEL29;
3882 RET_LABEL29:(void)0;
3883 }
3884 var31 = 10;
3885 { /* Inline kernel#Int#+ (var28,var31) */
3886 var34 = var28 + var31;
3887 var32 = var34;
3888 goto RET_LABEL33;
3889 RET_LABEL33:(void)0;
3890 }
3891 var = var32;
3892 goto RET_LABEL;
3893 }
3894 }
3895 RET_LABEL:;
3896 return var;
3897 }
3898 /* method kernel#Char#to_i for (self: Object): Int */
3899 long VIRTUAL_kernel__Char__to_i(val* self) {
3900 long var /* : Int */;
3901 long var1 /* : Int */;
3902 char var2 /* : Char */;
3903 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3904 var1 = kernel__Char__to_i(var2);
3905 var = var1;
3906 RET_LABEL:;
3907 return var;
3908 }
3909 /* method kernel#Char#ascii for (self: Char): Int */
3910 long kernel__Char__ascii(char self) {
3911 long var /* : Int */;
3912 long var1 /* : Int */;
3913 var1 = (unsigned char)self;
3914 var = var1;
3915 goto RET_LABEL;
3916 RET_LABEL:;
3917 return var;
3918 }
3919 /* method kernel#Char#ascii for (self: Object): Int */
3920 long VIRTUAL_kernel__Char__ascii(val* self) {
3921 long var /* : Int */;
3922 long var1 /* : Int */;
3923 char var3 /* : Char */;
3924 long var4 /* : Int */;
3925 { /* Inline kernel#Char#ascii (self) */
3926 var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3927 var4 = (unsigned char)var3;
3928 var1 = var4;
3929 goto RET_LABEL2;
3930 RET_LABEL2:(void)0;
3931 }
3932 var = var1;
3933 RET_LABEL:;
3934 return var;
3935 }
3936 /* method kernel#Char#+ for (self: Char, Int): Char */
3937 char kernel__Char___43d(char self, long p0) {
3938 char var /* : Char */;
3939 char var1 /* : Char */;
3940 var1 = self + p0;
3941 var = var1;
3942 goto RET_LABEL;
3943 RET_LABEL:;
3944 return var;
3945 }
3946 /* method kernel#Char#+ for (self: Object, Int): Discrete */
3947 val* VIRTUAL_kernel__Char___43d(val* self, long p0) {
3948 val* var /* : Discrete */;
3949 char var1 /* : Char */;
3950 char var3 /* : Char */;
3951 char var4 /* : Char */;
3952 val* var5 /* : Discrete */;
3953 { /* Inline kernel#Char#+ (self,p0) */
3954 var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3955 var4 = var3 + p0;
3956 var1 = var4;
3957 goto RET_LABEL2;
3958 RET_LABEL2:(void)0;
3959 }
3960 var5 = BOX_kernel__Char(var1); /* autobox from Char to Discrete */
3961 var = var5;
3962 RET_LABEL:;
3963 return var;
3964 }
3965 /* method kernel#Char#- for (self: Char, Int): Char */
3966 char kernel__Char___45d(char self, long p0) {
3967 char var /* : Char */;
3968 char var1 /* : Char */;
3969 var1 = self - p0;
3970 var = var1;
3971 goto RET_LABEL;
3972 RET_LABEL:;
3973 return var;
3974 }
3975 /* method kernel#Char#- for (self: Object, Int): Discrete */
3976 val* VIRTUAL_kernel__Char___45d(val* self, long p0) {
3977 val* var /* : Discrete */;
3978 char var1 /* : Char */;
3979 char var3 /* : Char */;
3980 char var4 /* : Char */;
3981 val* var5 /* : Discrete */;
3982 { /* Inline kernel#Char#- (self,p0) */
3983 var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
3984 var4 = var3 - p0;
3985 var1 = var4;
3986 goto RET_LABEL2;
3987 RET_LABEL2:(void)0;
3988 }
3989 var5 = BOX_kernel__Char(var1); /* autobox from Char to Discrete */
3990 var = var5;
3991 RET_LABEL:;
3992 return var;
3993 }
3994 /* method kernel#Char#to_lower for (self: Char): Char */
3995 char kernel__Char__to_lower(char self) {
3996 char var /* : Char */;
3997 short int var1 /* : Bool */;
3998 long var2 /* : Int */;
3999 long var4 /* : Int */;
4000 char var5 /* : Char */;
4001 char var6 /* : Char */;
4002 long var7 /* : Int */;
4003 long var8 /* : Int */;
4004 long var10 /* : Int */;
4005 char var11 /* : Char */;
4006 char var13 /* : Char */;
4007 var1 = kernel__Char__is_upper(self);
4008 if (var1){
4009 { /* Inline kernel#Char#ascii (self) */
4010 var4 = (unsigned char)self;
4011 var2 = var4;
4012 goto RET_LABEL3;
4013 RET_LABEL3:(void)0;
4014 }
4015 var5 = 'a';
4016 var6 = 'A';
4017 var7 = kernel__Char__distance(var5, var6);
4018 { /* Inline kernel#Int#+ (var2,var7) */
4019 var10 = var2 + var7;
4020 var8 = var10;
4021 goto RET_LABEL9;
4022 RET_LABEL9:(void)0;
4023 }
4024 { /* Inline kernel#Int#ascii (var8) */
4025 var13 = var8;
4026 var11 = var13;
4027 goto RET_LABEL12;
4028 RET_LABEL12:(void)0;
4029 }
4030 var = var11;
4031 goto RET_LABEL;
4032 } else {
4033 var = self;
4034 goto RET_LABEL;
4035 }
4036 RET_LABEL:;
4037 return var;
4038 }
4039 /* method kernel#Char#to_lower for (self: Object): Char */
4040 char VIRTUAL_kernel__Char__to_lower(val* self) {
4041 char var /* : Char */;
4042 char var1 /* : Char */;
4043 char var2 /* : Char */;
4044 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
4045 var1 = kernel__Char__to_lower(var2);
4046 var = var1;
4047 RET_LABEL:;
4048 return var;
4049 }
4050 /* method kernel#Char#to_upper for (self: Char): Char */
4051 char kernel__Char__to_upper(char self) {
4052 char var /* : Char */;
4053 short int var1 /* : Bool */;
4054 long var2 /* : Int */;
4055 long var4 /* : Int */;
4056 char var5 /* : Char */;
4057 char var6 /* : Char */;
4058 long var7 /* : Int */;
4059 long var8 /* : Int */;
4060 long var10 /* : Int */;
4061 char var11 /* : Char */;
4062 char var13 /* : Char */;
4063 var1 = kernel__Char__is_lower(self);
4064 if (var1){
4065 { /* Inline kernel#Char#ascii (self) */
4066 var4 = (unsigned char)self;
4067 var2 = var4;
4068 goto RET_LABEL3;
4069 RET_LABEL3:(void)0;
4070 }
4071 var5 = 'a';
4072 var6 = 'A';
4073 var7 = kernel__Char__distance(var5, var6);
4074 { /* Inline kernel#Int#- (var2,var7) */
4075 var10 = var2 - var7;
4076 var8 = var10;
4077 goto RET_LABEL9;
4078 RET_LABEL9:(void)0;
4079 }
4080 { /* Inline kernel#Int#ascii (var8) */
4081 var13 = var8;
4082 var11 = var13;
4083 goto RET_LABEL12;
4084 RET_LABEL12:(void)0;
4085 }
4086 var = var11;
4087 goto RET_LABEL;
4088 } else {
4089 var = self;
4090 goto RET_LABEL;
4091 }
4092 RET_LABEL:;
4093 return var;
4094 }
4095 /* method kernel#Char#to_upper for (self: Object): Char */
4096 char VIRTUAL_kernel__Char__to_upper(val* self) {
4097 char var /* : Char */;
4098 char var1 /* : Char */;
4099 char var2 /* : Char */;
4100 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
4101 var1 = kernel__Char__to_upper(var2);
4102 var = var1;
4103 RET_LABEL:;
4104 return var;
4105 }
4106 /* method kernel#Char#is_digit for (self: Char): Bool */
4107 short int kernel__Char__is_digit(char self) {
4108 short int var /* : Bool */;
4109 short int var1 /* : Bool */;
4110 char var2 /* : Char */;
4111 short int var3 /* : Bool */;
4112 short int var5 /* : Bool */;
4113 int cltype;
4114 int idtype;
4115 const char* var_class_name;
4116 short int var6 /* : Bool */;
4117 short int var_ /* var : Bool */;
4118 char var7 /* : Char */;
4119 short int var8 /* : Bool */;
4120 short int var10 /* : Bool */;
4121 int cltype11;
4122 int idtype12;
4123 const char* var_class_name13;
4124 short int var14 /* : Bool */;
4125 var2 = '0';
4126 { /* Inline kernel#Char#>= (self,var2) */
4127 /* Covariant cast for argument 0 (i) <var2:Char> isa OTHER */
4128 /* <var2:Char> isa OTHER */
4129 var5 = 1; /* easy <var2:Char> isa OTHER*/
4130 if (!var5) {
4131 var_class_name = type_kernel__Char.name;
4132 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4133 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 442);
4134 show_backtrace(1);
4135 }
4136 var6 = self >= var2;
4137 var3 = var6;
4138 goto RET_LABEL4;
4139 RET_LABEL4:(void)0;
4140 }
4141 var_ = var3;
4142 if (var3){
4143 var7 = '9';
4144 { /* Inline kernel#Char#<= (self,var7) */
4145 /* Covariant cast for argument 0 (i) <var7:Char> isa OTHER */
4146 /* <var7:Char> isa OTHER */
4147 var10 = 1; /* easy <var7:Char> isa OTHER*/
4148 if (!var10) {
4149 var_class_name13 = type_kernel__Char.name;
4150 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
4151 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 440);
4152 show_backtrace(1);
4153 }
4154 var14 = self <= var7;
4155 var8 = var14;
4156 goto RET_LABEL9;
4157 RET_LABEL9:(void)0;
4158 }
4159 var1 = var8;
4160 } else {
4161 var1 = var_;
4162 }
4163 var = var1;
4164 goto RET_LABEL;
4165 RET_LABEL:;
4166 return var;
4167 }
4168 /* method kernel#Char#is_digit for (self: Object): Bool */
4169 short int VIRTUAL_kernel__Char__is_digit(val* self) {
4170 short int var /* : Bool */;
4171 short int var1 /* : Bool */;
4172 char var2 /* : Char */;
4173 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
4174 var1 = kernel__Char__is_digit(var2);
4175 var = var1;
4176 RET_LABEL:;
4177 return var;
4178 }
4179 /* method kernel#Char#is_lower for (self: Char): Bool */
4180 short int kernel__Char__is_lower(char self) {
4181 short int var /* : Bool */;
4182 short int var1 /* : Bool */;
4183 char var2 /* : Char */;
4184 short int var3 /* : Bool */;
4185 short int var5 /* : Bool */;
4186 int cltype;
4187 int idtype;
4188 const char* var_class_name;
4189 short int var6 /* : Bool */;
4190 short int var_ /* var : Bool */;
4191 char var7 /* : Char */;
4192 short int var8 /* : Bool */;
4193 short int var10 /* : Bool */;
4194 int cltype11;
4195 int idtype12;
4196 const char* var_class_name13;
4197 short int var14 /* : Bool */;
4198 var2 = 'a';
4199 { /* Inline kernel#Char#>= (self,var2) */
4200 /* Covariant cast for argument 0 (i) <var2:Char> isa OTHER */
4201 /* <var2:Char> isa OTHER */
4202 var5 = 1; /* easy <var2:Char> isa OTHER*/
4203 if (!var5) {
4204 var_class_name = type_kernel__Char.name;
4205 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4206 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 442);
4207 show_backtrace(1);
4208 }
4209 var6 = self >= var2;
4210 var3 = var6;
4211 goto RET_LABEL4;
4212 RET_LABEL4:(void)0;
4213 }
4214 var_ = var3;
4215 if (var3){
4216 var7 = 'z';
4217 { /* Inline kernel#Char#<= (self,var7) */
4218 /* Covariant cast for argument 0 (i) <var7:Char> isa OTHER */
4219 /* <var7:Char> isa OTHER */
4220 var10 = 1; /* easy <var7:Char> isa OTHER*/
4221 if (!var10) {
4222 var_class_name13 = type_kernel__Char.name;
4223 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
4224 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 440);
4225 show_backtrace(1);
4226 }
4227 var14 = self <= var7;
4228 var8 = var14;
4229 goto RET_LABEL9;
4230 RET_LABEL9:(void)0;
4231 }
4232 var1 = var8;
4233 } else {
4234 var1 = var_;
4235 }
4236 var = var1;
4237 goto RET_LABEL;
4238 RET_LABEL:;
4239 return var;
4240 }
4241 /* method kernel#Char#is_lower for (self: Object): Bool */
4242 short int VIRTUAL_kernel__Char__is_lower(val* self) {
4243 short int var /* : Bool */;
4244 short int var1 /* : Bool */;
4245 char var2 /* : Char */;
4246 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
4247 var1 = kernel__Char__is_lower(var2);
4248 var = var1;
4249 RET_LABEL:;
4250 return var;
4251 }
4252 /* method kernel#Char#is_upper for (self: Char): Bool */
4253 short int kernel__Char__is_upper(char self) {
4254 short int var /* : Bool */;
4255 short int var1 /* : Bool */;
4256 char var2 /* : Char */;
4257 short int var3 /* : Bool */;
4258 short int var5 /* : Bool */;
4259 int cltype;
4260 int idtype;
4261 const char* var_class_name;
4262 short int var6 /* : Bool */;
4263 short int var_ /* var : Bool */;
4264 char var7 /* : Char */;
4265 short int var8 /* : Bool */;
4266 short int var10 /* : Bool */;
4267 int cltype11;
4268 int idtype12;
4269 const char* var_class_name13;
4270 short int var14 /* : Bool */;
4271 var2 = 'A';
4272 { /* Inline kernel#Char#>= (self,var2) */
4273 /* Covariant cast for argument 0 (i) <var2:Char> isa OTHER */
4274 /* <var2:Char> isa OTHER */
4275 var5 = 1; /* easy <var2:Char> isa OTHER*/
4276 if (!var5) {
4277 var_class_name = type_kernel__Char.name;
4278 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4279 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 442);
4280 show_backtrace(1);
4281 }
4282 var6 = self >= var2;
4283 var3 = var6;
4284 goto RET_LABEL4;
4285 RET_LABEL4:(void)0;
4286 }
4287 var_ = var3;
4288 if (var3){
4289 var7 = 'Z';
4290 { /* Inline kernel#Char#<= (self,var7) */
4291 /* Covariant cast for argument 0 (i) <var7:Char> isa OTHER */
4292 /* <var7:Char> isa OTHER */
4293 var10 = 1; /* easy <var7:Char> isa OTHER*/
4294 if (!var10) {
4295 var_class_name13 = type_kernel__Char.name;
4296 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
4297 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 440);
4298 show_backtrace(1);
4299 }
4300 var14 = self <= var7;
4301 var8 = var14;
4302 goto RET_LABEL9;
4303 RET_LABEL9:(void)0;
4304 }
4305 var1 = var8;
4306 } else {
4307 var1 = var_;
4308 }
4309 var = var1;
4310 goto RET_LABEL;
4311 RET_LABEL:;
4312 return var;
4313 }
4314 /* method kernel#Char#is_upper for (self: Object): Bool */
4315 short int VIRTUAL_kernel__Char__is_upper(val* self) {
4316 short int var /* : Bool */;
4317 short int var1 /* : Bool */;
4318 char var2 /* : Char */;
4319 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
4320 var1 = kernel__Char__is_upper(var2);
4321 var = var1;
4322 RET_LABEL:;
4323 return var;
4324 }
4325 /* method kernel#Char#is_letter for (self: Char): Bool */
4326 short int kernel__Char__is_letter(char self) {
4327 short int var /* : Bool */;
4328 short int var1 /* : Bool */;
4329 short int var2 /* : Bool */;
4330 short int var_ /* var : Bool */;
4331 short int var3 /* : Bool */;
4332 var2 = kernel__Char__is_lower(self);
4333 var_ = var2;
4334 if (var2){
4335 var1 = var_;
4336 } else {
4337 var3 = kernel__Char__is_upper(self);
4338 var1 = var3;
4339 }
4340 var = var1;
4341 goto RET_LABEL;
4342 RET_LABEL:;
4343 return var;
4344 }
4345 /* method kernel#Char#is_letter for (self: Object): Bool */
4346 short int VIRTUAL_kernel__Char__is_letter(val* self) {
4347 short int var /* : Bool */;
4348 short int var1 /* : Bool */;
4349 char var2 /* : Char */;
4350 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
4351 var1 = kernel__Char__is_letter(var2);
4352 var = var1;
4353 RET_LABEL:;
4354 return var;
4355 }
4356 /* method kernel#Pointer#address_is_null for (self: Pointer): Bool */
4357 short int kernel__Pointer__address_is_null(void* self) {
4358 short int var /* : Bool */;
4359 short int var1 /* : Bool */;
4360 var1 = kernel___Pointer_address_is_null___impl(self);
4361 var = var1;
4362 goto RET_LABEL;
4363 RET_LABEL:;
4364 return var;
4365 }
4366 /* method kernel#Pointer#address_is_null for (self: Object): Bool */
4367 short int VIRTUAL_kernel__Pointer__address_is_null(val* self) {
4368 short int var /* : Bool */;
4369 short int var1 /* : Bool */;
4370 void* var2 /* : Pointer */;
4371 var2 = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to Pointer */;
4372 var1 = kernel__Pointer__address_is_null(var2);
4373 var = var1;
4374 RET_LABEL:;
4375 return var;
4376 }