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