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