README: Update libgc's URL
[nit.git] / c_src / core__kernel.sep.1.c
1 #include "core__kernel.sep.0.h"
2 /* method kernel#Object#object_id for (self: Object): Int */
3 long core___core__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#is_same_instance for (self: Object, nullable Object): Bool */
13 short int core___core__Object___is_same_instance(val* self, val* p0) {
14 short int var /* : Bool */;
15 short int var1 /* : Bool */;
16 var1 = self == p0 || (p0 != NULL && (!((long)self&3)) && (!((long)p0&3)) && self->class == p0->class && ((self->class->box_kind == 3 && ((struct instance_core__Byte*)self)->value == ((struct instance_core__Byte*)p0)->value) || (self->class->box_kind == 5 && ((struct instance_core__Float*)self)->value == ((struct instance_core__Float*)p0)->value) || (self->class->box_kind == 6 && ((struct instance_core__NativeString*)self)->value == ((struct instance_core__NativeString*)p0)->value) || (self->class->box_kind == 7 && ((struct instance_core__Pointer*)self)->value == ((struct instance_core__Pointer*)p0)->value) || (self->class->box_kind == 8 && ((struct instance_core__Int8*)self)->value == ((struct instance_core__Int8*)p0)->value) || (self->class->box_kind == 9 && ((struct instance_core__Int16*)self)->value == ((struct instance_core__Int16*)p0)->value) || (self->class->box_kind == 10 && ((struct instance_core__UInt16*)self)->value == ((struct instance_core__UInt16*)p0)->value) || (self->class->box_kind == 11 && ((struct instance_core__Int32*)self)->value == ((struct instance_core__Int32*)p0)->value) || (self->class->box_kind == 12 && ((struct instance_core__UInt32*)self)->value == ((struct instance_core__UInt32*)p0)->value)));
17 var = var1;
18 goto RET_LABEL;
19 RET_LABEL:;
20 return var;
21 }
22 /* method kernel#Object#== for (self: Object, nullable Object): Bool */
23 short int core___core__Object____61d_61d(val* self, val* p0) {
24 short int var /* : Bool */;
25 val* var_other /* var other: nullable Object */;
26 short int var1 /* : Bool */;
27 short int var3 /* : Bool */;
28 var_other = p0;
29 {
30 { /* Inline kernel#Object#is_same_instance (self,var_other) on <self:Object> */
31 var3 = self == var_other || (var_other != NULL && (!((long)self&3)) && (!((long)var_other&3)) && self->class == var_other->class && ((self->class->box_kind == 3 && ((struct instance_core__Byte*)self)->value == ((struct instance_core__Byte*)var_other)->value) || (self->class->box_kind == 5 && ((struct instance_core__Float*)self)->value == ((struct instance_core__Float*)var_other)->value) || (self->class->box_kind == 6 && ((struct instance_core__NativeString*)self)->value == ((struct instance_core__NativeString*)var_other)->value) || (self->class->box_kind == 7 && ((struct instance_core__Pointer*)self)->value == ((struct instance_core__Pointer*)var_other)->value) || (self->class->box_kind == 8 && ((struct instance_core__Int8*)self)->value == ((struct instance_core__Int8*)var_other)->value) || (self->class->box_kind == 9 && ((struct instance_core__Int16*)self)->value == ((struct instance_core__Int16*)var_other)->value) || (self->class->box_kind == 10 && ((struct instance_core__UInt16*)self)->value == ((struct instance_core__UInt16*)var_other)->value) || (self->class->box_kind == 11 && ((struct instance_core__Int32*)self)->value == ((struct instance_core__Int32*)var_other)->value) || (self->class->box_kind == 12 && ((struct instance_core__UInt32*)self)->value == ((struct instance_core__UInt32*)var_other)->value)));
32 var1 = var3;
33 goto RET_LABEL2;
34 RET_LABEL2:(void)0;
35 }
36 }
37 var = var1;
38 goto RET_LABEL;
39 RET_LABEL:;
40 return var;
41 }
42 /* method kernel#Object#!= for (self: Object, nullable Object): Bool */
43 short int core___core__Object____33d_61d(val* self, val* p0) {
44 short int var /* : Bool */;
45 val* var_other /* var other: nullable Object */;
46 short int var1 /* : Bool */;
47 short int var2 /* : Bool */;
48 var_other = p0;
49 {
50 var1 = ((short int(*)(val* self, val* p0))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__kernel__Object___61d_61d]))(self, var_other); /* == on <self:Object>*/
51 }
52 var2 = !var1;
53 var = var2;
54 goto RET_LABEL;
55 RET_LABEL:;
56 return var;
57 }
58 /* method kernel#Object#hash for (self: Object): Int */
59 long core___core__Object___hash(val* self) {
60 long var /* : Int */;
61 long var1 /* : Int */;
62 {
63 var1 = ((long(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__kernel__Object__object_id]))(self); /* object_id on <self:Object>*/
64 }
65 var = var1;
66 goto RET_LABEL;
67 RET_LABEL:;
68 return var;
69 }
70 /* method kernel#Object#sys for (self: Object): Sys */
71 val* core___core__Object___sys(val* self) {
72 val* var /* : Sys */;
73 val* var1 /* : Sys */;
74 var1 = glob_sys;
75 var = var1;
76 goto RET_LABEL;
77 RET_LABEL:;
78 return var;
79 }
80 /* method kernel#Object#init for (self: Object) */
81 void core___core__Object___init(val* self) {
82 RET_LABEL:;
83 }
84 /* method kernel#Sys#run for (self: Sys) */
85 void core___core__Sys___run(val* self) {
86 {
87 nitc__abstract_compiler___core__Sys___main(self); /* Direct call abstract_compiler#Sys#main on <self:Sys>*/
88 }
89 RET_LABEL:;
90 }
91 /* method kernel#Sys#errno for (self: Sys): Int */
92 long core___core__Sys___errno(val* self) {
93 long var /* : Int */;
94 long var1 /* : Int */;
95 struct nitni_instance* var_for_c_0;
96 var_for_c_0 = nit_alloc(sizeof(struct nitni_instance));
97 var_for_c_0->value = self;
98 var1 = kernel___Sys_errno___impl(var_for_c_0);
99 var = var1;
100 goto RET_LABEL;
101 RET_LABEL:;
102 return var;
103 }
104 /* method kernel#Sys#exit for (self: Sys, Int) */
105 void core___core__Sys___exit(val* self, long p0) {
106 exit(p0);
107 RET_LABEL:;
108 }
109 /* method kernel#Comparable#<= for (self: Comparable, Comparable): Bool */
110 short int core___core__Comparable____60d_61d(val* self, val* p0) {
111 short int var /* : Bool */;
112 short int var1 /* : Bool */;
113 int cltype;
114 int idtype;
115 const struct type* type_struct;
116 const char* var_class_name;
117 val* var_other /* var other: Comparable */;
118 short int var2 /* : Bool */;
119 short int var3 /* : Bool */;
120 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
121 /* <p0:Comparable> isa OTHER */
122 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
123 cltype = type_struct->color;
124 idtype = type_struct->id;
125 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
126 var1 = 0;
127 } else {
128 var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
129 }
130 if (unlikely(!var1)) {
131 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
132 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
133 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 322);
134 fatal_exit(1);
135 }
136 var_other = p0;
137 {
138 var2 = ((short int(*)(val* self, val* p0))((((long)var_other&3)?class_info[((long)var_other&3)]:var_other->class)->vft[COLOR_core__kernel__Comparable___60d]))(var_other, self); /* < on <var_other:Comparable>*/
139 }
140 var3 = !var2;
141 var = var3;
142 goto RET_LABEL;
143 RET_LABEL:;
144 return var;
145 }
146 /* method kernel#Comparable#>= for (self: Comparable, Comparable): Bool */
147 short int core___core__Comparable____62d_61d(val* self, val* p0) {
148 short int var /* : Bool */;
149 short int var1 /* : Bool */;
150 int cltype;
151 int idtype;
152 const struct type* type_struct;
153 const char* var_class_name;
154 val* var_other /* var other: Comparable */;
155 short int var2 /* : Bool */;
156 short int var3 /* : Bool */;
157 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
158 /* <p0:Comparable> isa OTHER */
159 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
160 cltype = type_struct->color;
161 idtype = type_struct->id;
162 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
163 var1 = 0;
164 } else {
165 var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
166 }
167 if (unlikely(!var1)) {
168 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
169 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
170 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 326);
171 fatal_exit(1);
172 }
173 var_other = p0;
174 {
175 var2 = ((short int(*)(val* self, val* p0))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__kernel__Comparable___60d]))(self, var_other); /* < on <self:Comparable>*/
176 }
177 var3 = !var2;
178 var = var3;
179 goto RET_LABEL;
180 RET_LABEL:;
181 return var;
182 }
183 /* method kernel#Comparable#> for (self: Comparable, Comparable): Bool */
184 short int core___core__Comparable____62d(val* self, val* p0) {
185 short int var /* : Bool */;
186 short int var1 /* : Bool */;
187 int cltype;
188 int idtype;
189 const struct type* type_struct;
190 const char* var_class_name;
191 val* var_other /* var other: Comparable */;
192 short int var2 /* : Bool */;
193 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
194 /* <p0:Comparable> isa OTHER */
195 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
196 cltype = type_struct->color;
197 idtype = type_struct->id;
198 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
199 var1 = 0;
200 } else {
201 var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
202 }
203 if (unlikely(!var1)) {
204 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
205 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
206 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 330);
207 fatal_exit(1);
208 }
209 var_other = p0;
210 {
211 var2 = ((short int(*)(val* self, val* p0))((((long)var_other&3)?class_info[((long)var_other&3)]:var_other->class)->vft[COLOR_core__kernel__Comparable___60d]))(var_other, self); /* < on <var_other:Comparable>*/
212 }
213 var = var2;
214 goto RET_LABEL;
215 RET_LABEL:;
216 return var;
217 }
218 /* method kernel#Comparable#<=> for (self: Comparable, Comparable): Int */
219 long core___core__Comparable____60d_61d_62d(val* self, val* p0) {
220 long var /* : Int */;
221 short int var1 /* : Bool */;
222 int cltype;
223 int idtype;
224 const struct type* type_struct;
225 const char* var_class_name;
226 val* var_other /* var other: Comparable */;
227 short int var2 /* : Bool */;
228 long var3 /* : Int */;
229 long var5 /* : Int */;
230 short int var6 /* : Bool */;
231 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
232 /* <p0:Comparable> isa OTHER */
233 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
234 cltype = type_struct->color;
235 idtype = type_struct->id;
236 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
237 var1 = 0;
238 } else {
239 var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
240 }
241 if (unlikely(!var1)) {
242 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
243 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
244 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 333);
245 fatal_exit(1);
246 }
247 var_other = p0;
248 {
249 var2 = ((short int(*)(val* self, val* p0))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__kernel__Comparable___60d]))(self, var_other); /* < on <self:Comparable>*/
250 }
251 if (var2){
252 {
253 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
254 var5 = -1l;
255 var3 = var5;
256 goto RET_LABEL4;
257 RET_LABEL4:(void)0;
258 }
259 }
260 var = var3;
261 goto RET_LABEL;
262 } else {
263 {
264 var6 = ((short int(*)(val* self, val* p0))((((long)var_other&3)?class_info[((long)var_other&3)]:var_other->class)->vft[COLOR_core__kernel__Comparable___60d]))(var_other, self); /* < on <var_other:Comparable>*/
265 }
266 if (var6){
267 var = 1l;
268 goto RET_LABEL;
269 } else {
270 var = 0l;
271 goto RET_LABEL;
272 }
273 }
274 RET_LABEL:;
275 return var;
276 }
277 /* method kernel#Bool#object_id for (self: Bool): Int */
278 long core___core__Bool___Object__object_id(short int self) {
279 long var /* : Int */;
280 long var1 /* : Int */;
281 var1 = (long)self;
282 var = var1;
283 goto RET_LABEL;
284 RET_LABEL:;
285 return var;
286 }
287 /* method kernel#Bool#object_id for (self: Object): Int */
288 long VIRTUAL_core___core__Bool___Object__object_id(val* self) {
289 long var /* : Int */;
290 long var1 /* : Int */;
291 short int var3 /* : Bool */;
292 long var4 /* : Int */;
293 { /* Inline kernel#Bool#object_id (self) on <self:Object(Bool)> */
294 var3 = (short int)((long)(self)>>2);
295 var4 = (long)var3;
296 var1 = var4;
297 goto RET_LABEL2;
298 RET_LABEL2:(void)0;
299 }
300 var = var1;
301 RET_LABEL:;
302 return var;
303 }
304 /* method kernel#Bool#== for (self: Bool, nullable Object): Bool */
305 short int core___core__Bool___Object___61d_61d(short int self, val* p0) {
306 short int var /* : Bool */;
307 short int var1 /* : Bool */;
308 short int var2 /* : Bool */;
309 if ((p0 != NULL) && (((long)p0&3) == 3)) {
310 var2 = (short int)((long)(p0)>>2);
311 var1 = var2 == self;
312 } else var1 = 0;
313 var = var1;
314 goto RET_LABEL;
315 RET_LABEL:;
316 return var;
317 }
318 /* method kernel#Bool#== for (self: Object, nullable Object): Bool */
319 short int VIRTUAL_core___core__Bool___Object___61d_61d(val* self, val* p0) {
320 short int var /* : Bool */;
321 short int var1 /* : Bool */;
322 short int var3 /* : Bool */;
323 { /* Inline kernel#Bool#== (self,p0) on <self:Object(Bool)> */
324 var3 = self == p0;
325 var1 = var3;
326 goto RET_LABEL2;
327 RET_LABEL2:(void)0;
328 }
329 var = var1;
330 RET_LABEL:;
331 return var;
332 }
333 /* method kernel#Bool#!= for (self: Bool, nullable Object): Bool */
334 short int core___core__Bool___Object___33d_61d(short int self, val* p0) {
335 short int var /* : Bool */;
336 short int var1 /* : Bool */;
337 short int var2 /* : Bool */;
338 short int var3 /* : Bool */;
339 if ((p0 != NULL) && (((long)p0&3) == 3)) {
340 var2 = (short int)((long)(p0)>>2);
341 var1 = var2 == self;
342 } else var1 = 0;
343 var3 = !var1;
344 var = var3;
345 goto RET_LABEL;
346 RET_LABEL:;
347 return var;
348 }
349 /* method kernel#Bool#!= for (self: Object, nullable Object): Bool */
350 short int VIRTUAL_core___core__Bool___Object___33d_61d(val* self, val* p0) {
351 short int var /* : Bool */;
352 short int var1 /* : Bool */;
353 short int var3 /* : Bool */;
354 short int var4 /* : Bool */;
355 { /* Inline kernel#Bool#!= (self,p0) on <self:Object(Bool)> */
356 var3 = self == p0;
357 var4 = !var3;
358 var1 = var4;
359 goto RET_LABEL2;
360 RET_LABEL2:(void)0;
361 }
362 var = var1;
363 RET_LABEL:;
364 return var;
365 }
366 /* method kernel#Bool#hash for (self: Bool): Int */
367 long core___core__Bool___Object__hash(short int self) {
368 long var /* : Int */;
369 long var1 /* : Int */;
370 {
371 var1 = core___core__Bool___to_i(self);
372 }
373 var = var1;
374 goto RET_LABEL;
375 RET_LABEL:;
376 return var;
377 }
378 /* method kernel#Bool#hash for (self: Object): Int */
379 long VIRTUAL_core___core__Bool___Object__hash(val* self) {
380 long var /* : Int */;
381 long var1 /* : Int */;
382 short int var2 /* : Bool */;
383 var2 = (short int)((long)(self)>>2);
384 var1 = core___core__Bool___Object__hash(var2);
385 var = var1;
386 RET_LABEL:;
387 return var;
388 }
389 /* method kernel#Bool#to_i for (self: Bool): Int */
390 long core___core__Bool___to_i(short int self) {
391 long var /* : Int */;
392 if (self){
393 var = 1l;
394 goto RET_LABEL;
395 } else {
396 var = 0l;
397 goto RET_LABEL;
398 }
399 RET_LABEL:;
400 return var;
401 }
402 /* method kernel#Float#object_id for (self: Float): Int */
403 long core___core__Float___Object__object_id(double self) {
404 long var /* : Int */;
405 long var1 /* : Int */;
406 var1 = (double)self;
407 var = var1;
408 goto RET_LABEL;
409 RET_LABEL:;
410 return var;
411 }
412 /* method kernel#Float#object_id for (self: Object): Int */
413 long VIRTUAL_core___core__Float___Object__object_id(val* self) {
414 long var /* : Int */;
415 long var1 /* : Int */;
416 double var3 /* : Float */;
417 long var4 /* : Int */;
418 { /* Inline kernel#Float#object_id (self) on <self:Object(Float)> */
419 var3 = ((struct instance_core__Float*)self)->value; /* autounbox from Object to Float */;
420 var4 = (double)var3;
421 var1 = var4;
422 goto RET_LABEL2;
423 RET_LABEL2:(void)0;
424 }
425 var = var1;
426 RET_LABEL:;
427 return var;
428 }
429 /* method kernel#Float#== for (self: Float, nullable Object): Bool */
430 short int core___core__Float___Object___61d_61d(double self, val* p0) {
431 short int var /* : Bool */;
432 short int var1 /* : Bool */;
433 double var2 /* : Float */;
434 if ((p0 != NULL) && ((((long)p0&3)?class_info[((long)p0&3)]:p0->class) == &class_core__Float)) {
435 var2 = ((struct instance_core__Float*)p0)->value; /* autounbox from nullable Object to Float */;
436 var1 = var2 == self;
437 } else var1 = 0;
438 var = var1;
439 goto RET_LABEL;
440 RET_LABEL:;
441 return var;
442 }
443 /* method kernel#Float#== for (self: Object, nullable Object): Bool */
444 short int VIRTUAL_core___core__Float___Object___61d_61d(val* self, val* p0) {
445 short int var /* : Bool */;
446 short int var1 /* : Bool */;
447 short int var3 /* : Bool */;
448 { /* Inline kernel#Float#== (self,p0) on <self:Object(Float)> */
449 var3 = self == p0 || (p0 != NULL && (!((long)p0&3)) && self->class == p0->class && ((struct instance_core__Float*)self)->value == ((struct instance_core__Float*)p0)->value);
450 var1 = var3;
451 goto RET_LABEL2;
452 RET_LABEL2:(void)0;
453 }
454 var = var1;
455 RET_LABEL:;
456 return var;
457 }
458 /* method kernel#Float#!= for (self: Float, nullable Object): Bool */
459 short int core___core__Float___Object___33d_61d(double self, val* p0) {
460 short int var /* : Bool */;
461 short int var1 /* : Bool */;
462 double var2 /* : Float */;
463 short int var3 /* : Bool */;
464 if ((p0 != NULL) && ((((long)p0&3)?class_info[((long)p0&3)]:p0->class) == &class_core__Float)) {
465 var2 = ((struct instance_core__Float*)p0)->value; /* autounbox from nullable Object to Float */;
466 var1 = var2 == self;
467 } else var1 = 0;
468 var3 = !var1;
469 var = var3;
470 goto RET_LABEL;
471 RET_LABEL:;
472 return var;
473 }
474 /* method kernel#Float#!= for (self: Object, nullable Object): Bool */
475 short int VIRTUAL_core___core__Float___Object___33d_61d(val* self, val* p0) {
476 short int var /* : Bool */;
477 short int var1 /* : Bool */;
478 short int var3 /* : Bool */;
479 short int var4 /* : Bool */;
480 { /* Inline kernel#Float#!= (self,p0) on <self:Object(Float)> */
481 var3 = self == p0 || (p0 != NULL && (!((long)p0&3)) && self->class == p0->class && ((struct instance_core__Float*)self)->value == ((struct instance_core__Float*)p0)->value);
482 var4 = !var3;
483 var1 = var4;
484 goto RET_LABEL2;
485 RET_LABEL2:(void)0;
486 }
487 var = var1;
488 RET_LABEL:;
489 return var;
490 }
491 /* method kernel#Float#<= for (self: Float, Float): Bool */
492 short int core___core__Float___Comparable___60d_61d(double self, double p0) {
493 short int var /* : Bool */;
494 short int var1 /* : Bool */;
495 int cltype;
496 int idtype;
497 const char* var_class_name;
498 short int var2 /* : Bool */;
499 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
500 /* <p0:Float> isa OTHER */
501 var1 = 1; /* easy <p0:Float> isa OTHER*/
502 if (unlikely(!var1)) {
503 var_class_name = type_core__Float.name;
504 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
505 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 529);
506 fatal_exit(1);
507 }
508 var2 = self <= p0;
509 var = var2;
510 goto RET_LABEL;
511 RET_LABEL:;
512 return var;
513 }
514 /* method kernel#Float#<= for (self: Comparable, Comparable): Bool */
515 short int VIRTUAL_core___core__Float___Comparable___60d_61d(val* self, val* p0) {
516 short int var /* : Bool */;
517 short int var1 /* : Bool */;
518 short int var3 /* : Bool */;
519 int cltype;
520 int idtype;
521 const struct type* type_struct;
522 const char* var_class_name;
523 double var4 /* : Float */;
524 double var5 /* : Float */;
525 short int var6 /* : Bool */;
526 { /* Inline kernel#Float#<= (self,p0) on <self:Comparable(Float)> */
527 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
528 /* <p0:Comparable> isa OTHER */
529 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
530 cltype = type_struct->color;
531 idtype = type_struct->id;
532 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
533 var3 = 0;
534 } else {
535 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
536 }
537 if (unlikely(!var3)) {
538 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
539 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
540 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 529);
541 fatal_exit(1);
542 }
543 var4 = ((struct instance_core__Float*)self)->value; /* autounbox from Comparable to Float */;
544 var5 = ((struct instance_core__Float*)p0)->value; /* autounbox from Comparable to Float */;
545 var6 = var4 <= var5;
546 var1 = var6;
547 goto RET_LABEL2;
548 RET_LABEL2:(void)0;
549 }
550 var = var1;
551 RET_LABEL:;
552 return var;
553 }
554 /* method kernel#Float#< for (self: Float, Float): Bool */
555 short int core___core__Float___Comparable___60d(double self, double p0) {
556 short int var /* : Bool */;
557 short int var1 /* : Bool */;
558 int cltype;
559 int idtype;
560 const char* var_class_name;
561 short int var2 /* : Bool */;
562 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
563 /* <p0:Float> isa OTHER */
564 var1 = 1; /* easy <p0:Float> isa OTHER*/
565 if (unlikely(!var1)) {
566 var_class_name = type_core__Float.name;
567 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
568 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 530);
569 fatal_exit(1);
570 }
571 var2 = self < p0;
572 var = var2;
573 goto RET_LABEL;
574 RET_LABEL:;
575 return var;
576 }
577 /* method kernel#Float#< for (self: Comparable, Comparable): Bool */
578 short int VIRTUAL_core___core__Float___Comparable___60d(val* self, val* p0) {
579 short int var /* : Bool */;
580 short int var1 /* : Bool */;
581 short int var3 /* : Bool */;
582 int cltype;
583 int idtype;
584 const struct type* type_struct;
585 const char* var_class_name;
586 double var4 /* : Float */;
587 double var5 /* : Float */;
588 short int var6 /* : Bool */;
589 { /* Inline kernel#Float#< (self,p0) on <self:Comparable(Float)> */
590 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
591 /* <p0:Comparable> isa OTHER */
592 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
593 cltype = type_struct->color;
594 idtype = type_struct->id;
595 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
596 var3 = 0;
597 } else {
598 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
599 }
600 if (unlikely(!var3)) {
601 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
602 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
603 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 530);
604 fatal_exit(1);
605 }
606 var4 = ((struct instance_core__Float*)self)->value; /* autounbox from Comparable to Float */;
607 var5 = ((struct instance_core__Float*)p0)->value; /* autounbox from Comparable to Float */;
608 var6 = var4 < var5;
609 var1 = var6;
610 goto RET_LABEL2;
611 RET_LABEL2:(void)0;
612 }
613 var = var1;
614 RET_LABEL:;
615 return var;
616 }
617 /* method kernel#Float#>= for (self: Float, Float): Bool */
618 short int core___core__Float___Comparable___62d_61d(double self, double p0) {
619 short int var /* : Bool */;
620 short int var1 /* : Bool */;
621 int cltype;
622 int idtype;
623 const char* var_class_name;
624 short int var2 /* : Bool */;
625 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
626 /* <p0:Float> isa OTHER */
627 var1 = 1; /* easy <p0:Float> isa OTHER*/
628 if (unlikely(!var1)) {
629 var_class_name = type_core__Float.name;
630 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
631 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 531);
632 fatal_exit(1);
633 }
634 var2 = self >= p0;
635 var = var2;
636 goto RET_LABEL;
637 RET_LABEL:;
638 return var;
639 }
640 /* method kernel#Float#>= for (self: Comparable, Comparable): Bool */
641 short int VIRTUAL_core___core__Float___Comparable___62d_61d(val* self, val* p0) {
642 short int var /* : Bool */;
643 short int var1 /* : Bool */;
644 short int var3 /* : Bool */;
645 int cltype;
646 int idtype;
647 const struct type* type_struct;
648 const char* var_class_name;
649 double var4 /* : Float */;
650 double var5 /* : Float */;
651 short int var6 /* : Bool */;
652 { /* Inline kernel#Float#>= (self,p0) on <self:Comparable(Float)> */
653 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
654 /* <p0:Comparable> isa OTHER */
655 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
656 cltype = type_struct->color;
657 idtype = type_struct->id;
658 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
659 var3 = 0;
660 } else {
661 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
662 }
663 if (unlikely(!var3)) {
664 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
665 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
666 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 531);
667 fatal_exit(1);
668 }
669 var4 = ((struct instance_core__Float*)self)->value; /* autounbox from Comparable to Float */;
670 var5 = ((struct instance_core__Float*)p0)->value; /* autounbox from Comparable to Float */;
671 var6 = var4 >= var5;
672 var1 = var6;
673 goto RET_LABEL2;
674 RET_LABEL2:(void)0;
675 }
676 var = var1;
677 RET_LABEL:;
678 return var;
679 }
680 /* method kernel#Float#> for (self: Float, Float): Bool */
681 short int core___core__Float___Comparable___62d(double self, double p0) {
682 short int var /* : Bool */;
683 short int var1 /* : Bool */;
684 int cltype;
685 int idtype;
686 const char* var_class_name;
687 short int var2 /* : Bool */;
688 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
689 /* <p0:Float> isa OTHER */
690 var1 = 1; /* easy <p0:Float> isa OTHER*/
691 if (unlikely(!var1)) {
692 var_class_name = type_core__Float.name;
693 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
694 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 532);
695 fatal_exit(1);
696 }
697 var2 = self > p0;
698 var = var2;
699 goto RET_LABEL;
700 RET_LABEL:;
701 return var;
702 }
703 /* method kernel#Float#> for (self: Comparable, Comparable): Bool */
704 short int VIRTUAL_core___core__Float___Comparable___62d(val* self, val* p0) {
705 short int var /* : Bool */;
706 short int var1 /* : Bool */;
707 short int var3 /* : Bool */;
708 int cltype;
709 int idtype;
710 const struct type* type_struct;
711 const char* var_class_name;
712 double var4 /* : Float */;
713 double var5 /* : Float */;
714 short int var6 /* : Bool */;
715 { /* Inline kernel#Float#> (self,p0) on <self:Comparable(Float)> */
716 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
717 /* <p0:Comparable> isa OTHER */
718 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
719 cltype = type_struct->color;
720 idtype = type_struct->id;
721 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
722 var3 = 0;
723 } else {
724 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
725 }
726 if (unlikely(!var3)) {
727 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
728 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
729 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 532);
730 fatal_exit(1);
731 }
732 var4 = ((struct instance_core__Float*)self)->value; /* autounbox from Comparable to Float */;
733 var5 = ((struct instance_core__Float*)p0)->value; /* autounbox from Comparable to Float */;
734 var6 = var4 > var5;
735 var1 = var6;
736 goto RET_LABEL2;
737 RET_LABEL2:(void)0;
738 }
739 var = var1;
740 RET_LABEL:;
741 return var;
742 }
743 /* method kernel#Float#+ for (self: Float, Float): Float */
744 double core___core__Float___Numeric___43d(double self, double p0) {
745 double var /* : Float */;
746 short int var1 /* : Bool */;
747 int cltype;
748 int idtype;
749 const char* var_class_name;
750 double var2 /* : Float */;
751 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
752 /* <p0:Float> isa OTHER */
753 var1 = 1; /* easy <p0:Float> isa OTHER*/
754 if (unlikely(!var1)) {
755 var_class_name = type_core__Float.name;
756 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
757 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 534);
758 fatal_exit(1);
759 }
760 var2 = self + p0;
761 var = var2;
762 goto RET_LABEL;
763 RET_LABEL:;
764 return var;
765 }
766 /* method kernel#Float#+ for (self: Numeric, Numeric): Numeric */
767 val* VIRTUAL_core___core__Float___Numeric___43d(val* self, val* p0) {
768 val* var /* : Numeric */;
769 double var1 /* : Float */;
770 short int var3 /* : Bool */;
771 int cltype;
772 int idtype;
773 const struct type* type_struct;
774 const char* var_class_name;
775 double var4 /* : Float */;
776 double var5 /* : Float */;
777 double var6 /* : Float */;
778 val* var7 /* : Numeric */;
779 { /* Inline kernel#Float#+ (self,p0) on <self:Numeric(Float)> */
780 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
781 /* <p0:Numeric> isa OTHER */
782 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
783 cltype = type_struct->color;
784 idtype = type_struct->id;
785 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
786 var3 = 0;
787 } else {
788 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
789 }
790 if (unlikely(!var3)) {
791 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
792 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
793 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 534);
794 fatal_exit(1);
795 }
796 var4 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
797 var5 = ((struct instance_core__Float*)p0)->value; /* autounbox from Numeric to Float */;
798 var6 = var4 + var5;
799 var1 = var6;
800 goto RET_LABEL2;
801 RET_LABEL2:(void)0;
802 }
803 var7 = BOX_core__Float(var1); /* autobox from Float to Numeric */
804 var = var7;
805 RET_LABEL:;
806 return var;
807 }
808 /* method kernel#Float#unary - for (self: Float): Float */
809 double core___core__Float___Numeric__unary_32d_45d(double self) {
810 double var /* : Float */;
811 double var1 /* : Float */;
812 var1 = -self;
813 var = var1;
814 goto RET_LABEL;
815 RET_LABEL:;
816 return var;
817 }
818 /* method kernel#Float#unary - for (self: Numeric): Numeric */
819 val* VIRTUAL_core___core__Float___Numeric__unary_32d_45d(val* self) {
820 val* var /* : Numeric */;
821 double var1 /* : Float */;
822 double var3 /* : Float */;
823 double var4 /* : Float */;
824 val* var5 /* : Numeric */;
825 { /* Inline kernel#Float#unary - (self) on <self:Numeric(Float)> */
826 var3 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
827 var4 = -var3;
828 var1 = var4;
829 goto RET_LABEL2;
830 RET_LABEL2:(void)0;
831 }
832 var5 = BOX_core__Float(var1); /* autobox from Float to Numeric */
833 var = var5;
834 RET_LABEL:;
835 return var;
836 }
837 /* method kernel#Float#- for (self: Float, Float): Float */
838 double core___core__Float___Numeric___45d(double self, double p0) {
839 double var /* : Float */;
840 short int var1 /* : Bool */;
841 int cltype;
842 int idtype;
843 const char* var_class_name;
844 double var2 /* : Float */;
845 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
846 /* <p0:Float> isa OTHER */
847 var1 = 1; /* easy <p0:Float> isa OTHER*/
848 if (unlikely(!var1)) {
849 var_class_name = type_core__Float.name;
850 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
851 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 536);
852 fatal_exit(1);
853 }
854 var2 = self - p0;
855 var = var2;
856 goto RET_LABEL;
857 RET_LABEL:;
858 return var;
859 }
860 /* method kernel#Float#- for (self: Numeric, Numeric): Numeric */
861 val* VIRTUAL_core___core__Float___Numeric___45d(val* self, val* p0) {
862 val* var /* : Numeric */;
863 double var1 /* : Float */;
864 short int var3 /* : Bool */;
865 int cltype;
866 int idtype;
867 const struct type* type_struct;
868 const char* var_class_name;
869 double var4 /* : Float */;
870 double var5 /* : Float */;
871 double var6 /* : Float */;
872 val* var7 /* : Numeric */;
873 { /* Inline kernel#Float#- (self,p0) on <self:Numeric(Float)> */
874 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
875 /* <p0:Numeric> isa OTHER */
876 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
877 cltype = type_struct->color;
878 idtype = type_struct->id;
879 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
880 var3 = 0;
881 } else {
882 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
883 }
884 if (unlikely(!var3)) {
885 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
886 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
887 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 536);
888 fatal_exit(1);
889 }
890 var4 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
891 var5 = ((struct instance_core__Float*)p0)->value; /* autounbox from Numeric to Float */;
892 var6 = var4 - var5;
893 var1 = var6;
894 goto RET_LABEL2;
895 RET_LABEL2:(void)0;
896 }
897 var7 = BOX_core__Float(var1); /* autobox from Float to Numeric */
898 var = var7;
899 RET_LABEL:;
900 return var;
901 }
902 /* method kernel#Float#* for (self: Float, Float): Float */
903 double core___core__Float___Numeric___42d(double self, double p0) {
904 double var /* : Float */;
905 short int var1 /* : Bool */;
906 int cltype;
907 int idtype;
908 const char* var_class_name;
909 double var2 /* : Float */;
910 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
911 /* <p0:Float> isa OTHER */
912 var1 = 1; /* easy <p0:Float> isa OTHER*/
913 if (unlikely(!var1)) {
914 var_class_name = type_core__Float.name;
915 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
916 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 537);
917 fatal_exit(1);
918 }
919 var2 = self * p0;
920 var = var2;
921 goto RET_LABEL;
922 RET_LABEL:;
923 return var;
924 }
925 /* method kernel#Float#* for (self: Numeric, Numeric): Numeric */
926 val* VIRTUAL_core___core__Float___Numeric___42d(val* self, val* p0) {
927 val* var /* : Numeric */;
928 double var1 /* : Float */;
929 short int var3 /* : Bool */;
930 int cltype;
931 int idtype;
932 const struct type* type_struct;
933 const char* var_class_name;
934 double var4 /* : Float */;
935 double var5 /* : Float */;
936 double var6 /* : Float */;
937 val* var7 /* : Numeric */;
938 { /* Inline kernel#Float#* (self,p0) on <self:Numeric(Float)> */
939 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
940 /* <p0:Numeric> isa OTHER */
941 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
942 cltype = type_struct->color;
943 idtype = type_struct->id;
944 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
945 var3 = 0;
946 } else {
947 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
948 }
949 if (unlikely(!var3)) {
950 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
951 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
952 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 537);
953 fatal_exit(1);
954 }
955 var4 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
956 var5 = ((struct instance_core__Float*)p0)->value; /* autounbox from Numeric to Float */;
957 var6 = var4 * var5;
958 var1 = var6;
959 goto RET_LABEL2;
960 RET_LABEL2:(void)0;
961 }
962 var7 = BOX_core__Float(var1); /* autobox from Float to Numeric */
963 var = var7;
964 RET_LABEL:;
965 return var;
966 }
967 /* method kernel#Float#/ for (self: Float, Float): Float */
968 double core___core__Float___Numeric___47d(double self, double p0) {
969 double var /* : Float */;
970 short int var1 /* : Bool */;
971 int cltype;
972 int idtype;
973 const char* var_class_name;
974 double var2 /* : Float */;
975 /* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
976 /* <p0:Float> isa OTHER */
977 var1 = 1; /* easy <p0:Float> isa OTHER*/
978 if (unlikely(!var1)) {
979 var_class_name = type_core__Float.name;
980 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
981 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 538);
982 fatal_exit(1);
983 }
984 var2 = self / p0;
985 var = var2;
986 goto RET_LABEL;
987 RET_LABEL:;
988 return var;
989 }
990 /* method kernel#Float#/ for (self: Numeric, Numeric): Numeric */
991 val* VIRTUAL_core___core__Float___Numeric___47d(val* self, val* p0) {
992 val* var /* : Numeric */;
993 double var1 /* : Float */;
994 short int var3 /* : Bool */;
995 int cltype;
996 int idtype;
997 const struct type* type_struct;
998 const char* var_class_name;
999 double var4 /* : Float */;
1000 double var5 /* : Float */;
1001 double var6 /* : Float */;
1002 val* var7 /* : Numeric */;
1003 { /* Inline kernel#Float#/ (self,p0) on <self:Numeric(Float)> */
1004 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
1005 /* <p0:Numeric> isa OTHER */
1006 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
1007 cltype = type_struct->color;
1008 idtype = type_struct->id;
1009 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1010 var3 = 0;
1011 } else {
1012 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1013 }
1014 if (unlikely(!var3)) {
1015 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1016 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1017 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 538);
1018 fatal_exit(1);
1019 }
1020 var4 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
1021 var5 = ((struct instance_core__Float*)p0)->value; /* autounbox from Numeric to Float */;
1022 var6 = var4 / var5;
1023 var1 = var6;
1024 goto RET_LABEL2;
1025 RET_LABEL2:(void)0;
1026 }
1027 var7 = BOX_core__Float(var1); /* autobox from Float to Numeric */
1028 var = var7;
1029 RET_LABEL:;
1030 return var;
1031 }
1032 /* method kernel#Float#to_i for (self: Float): Int */
1033 long core___core__Float___Numeric__to_i(double self) {
1034 long var /* : Int */;
1035 long var1 /* : Int */;
1036 var1 = (long)self;
1037 var = var1;
1038 goto RET_LABEL;
1039 RET_LABEL:;
1040 return var;
1041 }
1042 /* method kernel#Float#to_i for (self: Numeric): Int */
1043 long VIRTUAL_core___core__Float___Numeric__to_i(val* self) {
1044 long var /* : Int */;
1045 long var1 /* : Int */;
1046 double var3 /* : Float */;
1047 long var4 /* : Int */;
1048 { /* Inline kernel#Float#to_i (self) on <self:Numeric(Float)> */
1049 var3 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
1050 var4 = (long)var3;
1051 var1 = var4;
1052 goto RET_LABEL2;
1053 RET_LABEL2:(void)0;
1054 }
1055 var = var1;
1056 RET_LABEL:;
1057 return var;
1058 }
1059 /* method kernel#Float#to_f for (self: Float): Float */
1060 double core___core__Float___Numeric__to_f(double self) {
1061 double var /* : Float */;
1062 var = self;
1063 goto RET_LABEL;
1064 RET_LABEL:;
1065 return var;
1066 }
1067 /* method kernel#Float#to_f for (self: Numeric): Float */
1068 double VIRTUAL_core___core__Float___Numeric__to_f(val* self) {
1069 double var /* : Float */;
1070 double var1 /* : Float */;
1071 double var2 /* : Float */;
1072 var2 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
1073 var1 = core___core__Float___Numeric__to_f(var2);
1074 var = var1;
1075 RET_LABEL:;
1076 return var;
1077 }
1078 /* method kernel#Float#to_b for (self: Float): Byte */
1079 unsigned char core___core__Float___Numeric__to_b(double self) {
1080 unsigned char var /* : Byte */;
1081 unsigned char var1 /* : Byte */;
1082 var1 = (unsigned char)self;
1083 var = var1;
1084 goto RET_LABEL;
1085 RET_LABEL:;
1086 return var;
1087 }
1088 /* method kernel#Float#to_b for (self: Numeric): Byte */
1089 unsigned char VIRTUAL_core___core__Float___Numeric__to_b(val* self) {
1090 unsigned char var /* : Byte */;
1091 unsigned char var1 /* : Byte */;
1092 double var3 /* : Float */;
1093 unsigned char var4 /* : Byte */;
1094 { /* Inline kernel#Float#to_b (self) on <self:Numeric(Float)> */
1095 var3 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
1096 var4 = (unsigned char)var3;
1097 var1 = var4;
1098 goto RET_LABEL2;
1099 RET_LABEL2:(void)0;
1100 }
1101 var = var1;
1102 RET_LABEL:;
1103 return var;
1104 }
1105 /* method kernel#Float#<=> for (self: Float, Float): Int */
1106 long core___core__Float___Comparable___60d_61d_62d(double self, double p0) {
1107 long var /* : Int */;
1108 short int var1 /* : Bool */;
1109 int cltype;
1110 int idtype;
1111 const char* var_class_name;
1112 double var_other /* var other: Float */;
1113 short int var2 /* : Bool */;
1114 short int var4 /* : Bool */;
1115 int cltype5;
1116 int idtype6;
1117 const char* var_class_name7;
1118 short int var8 /* : Bool */;
1119 long var9 /* : Int */;
1120 long var11 /* : Int */;
1121 short int var12 /* : Bool */;
1122 short int var14 /* : Bool */;
1123 int cltype15;
1124 int idtype16;
1125 const char* var_class_name17;
1126 short int var18 /* : Bool */;
1127 /* Covariant cast for argument 0 (other) <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_core__Float.name;
1132 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1133 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 547);
1134 fatal_exit(1);
1135 }
1136 var_other = p0;
1137 {
1138 { /* Inline kernel#Float#< (self,var_other) on <self:Float> */
1139 /* Covariant cast for argument 0 (i) <var_other:Float> isa OTHER */
1140 /* <var_other:Float> isa OTHER */
1141 var4 = 1; /* easy <var_other:Float> isa OTHER*/
1142 if (unlikely(!var4)) {
1143 var_class_name7 = type_core__Float.name;
1144 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
1145 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 530);
1146 fatal_exit(1);
1147 }
1148 var8 = self < var_other;
1149 var2 = var8;
1150 goto RET_LABEL3;
1151 RET_LABEL3:(void)0;
1152 }
1153 }
1154 if (var2){
1155 {
1156 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
1157 var11 = -1l;
1158 var9 = var11;
1159 goto RET_LABEL10;
1160 RET_LABEL10:(void)0;
1161 }
1162 }
1163 var = var9;
1164 goto RET_LABEL;
1165 } else {
1166 {
1167 { /* Inline kernel#Float#< (var_other,self) on <var_other:Float> */
1168 /* Covariant cast for argument 0 (i) <self:Float> isa OTHER */
1169 /* <self:Float> isa OTHER */
1170 var14 = 1; /* easy <self:Float> isa OTHER*/
1171 if (unlikely(!var14)) {
1172 var_class_name17 = type_core__Float.name;
1173 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
1174 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 530);
1175 fatal_exit(1);
1176 }
1177 var18 = var_other < self;
1178 var12 = var18;
1179 goto RET_LABEL13;
1180 RET_LABEL13:(void)0;
1181 }
1182 }
1183 if (var12){
1184 var = 1l;
1185 goto RET_LABEL;
1186 } else {
1187 var = 0l;
1188 goto RET_LABEL;
1189 }
1190 }
1191 RET_LABEL:;
1192 return var;
1193 }
1194 /* method kernel#Float#<=> for (self: Comparable, Comparable): Int */
1195 long VIRTUAL_core___core__Float___Comparable___60d_61d_62d(val* self, val* p0) {
1196 long var /* : Int */;
1197 long var1 /* : Int */;
1198 double var2 /* : Float */;
1199 double var3 /* : Float */;
1200 var2 = ((struct instance_core__Float*)self)->value; /* autounbox from Comparable to Float */;
1201 var3 = ((struct instance_core__Float*)p0)->value; /* autounbox from Comparable to Float */;
1202 var1 = core___core__Float___Comparable___60d_61d_62d(var2, var3);
1203 var = var1;
1204 RET_LABEL:;
1205 return var;
1206 }
1207 /* method kernel#Byte#successor for (self: Byte, Int): Byte */
1208 unsigned char core___core__Byte___Discrete__successor(unsigned char self, long p0) {
1209 unsigned char var /* : Byte */;
1210 long var_i /* var i: Int */;
1211 unsigned char var1 /* : Byte */;
1212 unsigned char var3 /* : Byte */;
1213 unsigned char var4 /* : Byte */;
1214 short int var6 /* : Bool */;
1215 int cltype;
1216 int idtype;
1217 const char* var_class_name;
1218 unsigned char var7 /* : Byte */;
1219 var_i = p0;
1220 {
1221 { /* Inline kernel#Int#to_b (var_i) on <var_i:Int> */
1222 var3 = (unsigned char)var_i;
1223 var1 = var3;
1224 goto RET_LABEL2;
1225 RET_LABEL2:(void)0;
1226 }
1227 }
1228 {
1229 { /* Inline kernel#Byte#+ (self,var1) on <self:Byte> */
1230 /* Covariant cast for argument 0 (i) <var1:Byte> isa OTHER */
1231 /* <var1:Byte> isa OTHER */
1232 var6 = 1; /* easy <var1:Byte> isa OTHER*/
1233 if (unlikely(!var6)) {
1234 var_class_name = type_core__Byte.name;
1235 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1236 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 622);
1237 fatal_exit(1);
1238 }
1239 var7 = self + var1;
1240 var4 = var7;
1241 goto RET_LABEL5;
1242 RET_LABEL5:(void)0;
1243 }
1244 }
1245 var = var4;
1246 goto RET_LABEL;
1247 RET_LABEL:;
1248 return var;
1249 }
1250 /* method kernel#Byte#successor for (self: Discrete, Int): Discrete */
1251 val* VIRTUAL_core___core__Byte___Discrete__successor(val* self, long p0) {
1252 val* var /* : Discrete */;
1253 unsigned char var1 /* : Byte */;
1254 unsigned char var2 /* : Byte */;
1255 val* var3 /* : Discrete */;
1256 var2 = ((struct instance_core__Byte*)self)->value; /* autounbox from Discrete to Byte */;
1257 var1 = core___core__Byte___Discrete__successor(var2, p0);
1258 var3 = BOX_core__Byte(var1); /* autobox from Byte to Discrete */
1259 var = var3;
1260 RET_LABEL:;
1261 return var;
1262 }
1263 /* method kernel#Byte#object_id for (self: Byte): Int */
1264 long core___core__Byte___Object__object_id(unsigned char self) {
1265 long var /* : Int */;
1266 long var1 /* : Int */;
1267 var1 = (long)self;
1268 var = var1;
1269 goto RET_LABEL;
1270 RET_LABEL:;
1271 return var;
1272 }
1273 /* method kernel#Byte#object_id for (self: Object): Int */
1274 long VIRTUAL_core___core__Byte___Object__object_id(val* self) {
1275 long var /* : Int */;
1276 long var1 /* : Int */;
1277 unsigned char var3 /* : Byte */;
1278 long var4 /* : Int */;
1279 { /* Inline kernel#Byte#object_id (self) on <self:Object(Byte)> */
1280 var3 = ((struct instance_core__Byte*)self)->value; /* autounbox from Object to Byte */;
1281 var4 = (long)var3;
1282 var1 = var4;
1283 goto RET_LABEL2;
1284 RET_LABEL2:(void)0;
1285 }
1286 var = var1;
1287 RET_LABEL:;
1288 return var;
1289 }
1290 /* method kernel#Byte#hash for (self: Byte): Int */
1291 long core___core__Byte___Object__hash(unsigned char self) {
1292 long var /* : Int */;
1293 long var1 /* : Int */;
1294 long var3 /* : Int */;
1295 {
1296 { /* Inline kernel#Byte#to_i (self) on <self:Byte> */
1297 var3 = (long)self;
1298 var1 = var3;
1299 goto RET_LABEL2;
1300 RET_LABEL2:(void)0;
1301 }
1302 }
1303 var = var1;
1304 goto RET_LABEL;
1305 RET_LABEL:;
1306 return var;
1307 }
1308 /* method kernel#Byte#hash for (self: Object): Int */
1309 long VIRTUAL_core___core__Byte___Object__hash(val* self) {
1310 long var /* : Int */;
1311 long var1 /* : Int */;
1312 unsigned char var2 /* : Byte */;
1313 var2 = ((struct instance_core__Byte*)self)->value; /* autounbox from Object to Byte */;
1314 var1 = core___core__Byte___Object__hash(var2);
1315 var = var1;
1316 RET_LABEL:;
1317 return var;
1318 }
1319 /* method kernel#Byte#== for (self: Byte, nullable Object): Bool */
1320 short int core___core__Byte___Object___61d_61d(unsigned char self, val* p0) {
1321 short int var /* : Bool */;
1322 short int var1 /* : Bool */;
1323 unsigned char var2 /* : Byte */;
1324 if ((p0 != NULL) && ((((long)p0&3)?class_info[((long)p0&3)]:p0->class) == &class_core__Byte)) {
1325 var2 = ((struct instance_core__Byte*)p0)->value; /* autounbox from nullable Object to Byte */;
1326 var1 = var2 == self;
1327 } else var1 = 0;
1328 var = var1;
1329 goto RET_LABEL;
1330 RET_LABEL:;
1331 return var;
1332 }
1333 /* method kernel#Byte#== for (self: Object, nullable Object): Bool */
1334 short int VIRTUAL_core___core__Byte___Object___61d_61d(val* self, val* p0) {
1335 short int var /* : Bool */;
1336 short int var1 /* : Bool */;
1337 short int var3 /* : Bool */;
1338 { /* Inline kernel#Byte#== (self,p0) on <self:Object(Byte)> */
1339 var3 = self == p0 || (p0 != NULL && (!((long)p0&3)) && self->class == p0->class && ((struct instance_core__Byte*)self)->value == ((struct instance_core__Byte*)p0)->value);
1340 var1 = var3;
1341 goto RET_LABEL2;
1342 RET_LABEL2:(void)0;
1343 }
1344 var = var1;
1345 RET_LABEL:;
1346 return var;
1347 }
1348 /* method kernel#Byte#!= for (self: Byte, nullable Object): Bool */
1349 short int core___core__Byte___Object___33d_61d(unsigned char self, val* p0) {
1350 short int var /* : Bool */;
1351 short int var1 /* : Bool */;
1352 unsigned char var2 /* : Byte */;
1353 short int var3 /* : Bool */;
1354 if ((p0 != NULL) && ((((long)p0&3)?class_info[((long)p0&3)]:p0->class) == &class_core__Byte)) {
1355 var2 = ((struct instance_core__Byte*)p0)->value; /* autounbox from nullable Object to Byte */;
1356 var1 = var2 == self;
1357 } else var1 = 0;
1358 var3 = !var1;
1359 var = var3;
1360 goto RET_LABEL;
1361 RET_LABEL:;
1362 return var;
1363 }
1364 /* method kernel#Byte#!= for (self: Object, nullable Object): Bool */
1365 short int VIRTUAL_core___core__Byte___Object___33d_61d(val* self, val* p0) {
1366 short int var /* : Bool */;
1367 short int var1 /* : Bool */;
1368 short int var3 /* : Bool */;
1369 short int var4 /* : Bool */;
1370 { /* Inline kernel#Byte#!= (self,p0) on <self:Object(Byte)> */
1371 var3 = self == p0 || (p0 != NULL && (!((long)p0&3)) && self->class == p0->class && ((struct instance_core__Byte*)self)->value == ((struct instance_core__Byte*)p0)->value);
1372 var4 = !var3;
1373 var1 = var4;
1374 goto RET_LABEL2;
1375 RET_LABEL2:(void)0;
1376 }
1377 var = var1;
1378 RET_LABEL:;
1379 return var;
1380 }
1381 /* method kernel#Byte#<= for (self: Byte, Byte): Bool */
1382 short int core___core__Byte___Comparable___60d_61d(unsigned char self, unsigned char p0) {
1383 short int var /* : Bool */;
1384 short int var1 /* : Bool */;
1385 int cltype;
1386 int idtype;
1387 const char* var_class_name;
1388 short int var2 /* : Bool */;
1389 /* Covariant cast for argument 0 (i) <p0:Byte> isa OTHER */
1390 /* <p0:Byte> isa OTHER */
1391 var1 = 1; /* easy <p0:Byte> isa OTHER*/
1392 if (unlikely(!var1)) {
1393 var_class_name = type_core__Byte.name;
1394 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1395 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 618);
1396 fatal_exit(1);
1397 }
1398 var2 = self <= p0;
1399 var = var2;
1400 goto RET_LABEL;
1401 RET_LABEL:;
1402 return var;
1403 }
1404 /* method kernel#Byte#<= for (self: Comparable, Comparable): Bool */
1405 short int VIRTUAL_core___core__Byte___Comparable___60d_61d(val* self, val* p0) {
1406 short int var /* : Bool */;
1407 short int var1 /* : Bool */;
1408 short int var3 /* : Bool */;
1409 int cltype;
1410 int idtype;
1411 const struct type* type_struct;
1412 const char* var_class_name;
1413 unsigned char var4 /* : Byte */;
1414 unsigned char var5 /* : Byte */;
1415 short int var6 /* : Bool */;
1416 { /* Inline kernel#Byte#<= (self,p0) on <self:Comparable(Byte)> */
1417 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1418 /* <p0:Comparable> isa OTHER */
1419 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
1420 cltype = type_struct->color;
1421 idtype = type_struct->id;
1422 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1423 var3 = 0;
1424 } else {
1425 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1426 }
1427 if (unlikely(!var3)) {
1428 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1429 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1430 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 618);
1431 fatal_exit(1);
1432 }
1433 var4 = ((struct instance_core__Byte*)self)->value; /* autounbox from Comparable to Byte */;
1434 var5 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Comparable to Byte */;
1435 var6 = var4 <= var5;
1436 var1 = var6;
1437 goto RET_LABEL2;
1438 RET_LABEL2:(void)0;
1439 }
1440 var = var1;
1441 RET_LABEL:;
1442 return var;
1443 }
1444 /* method kernel#Byte#< for (self: Byte, Byte): Bool */
1445 short int core___core__Byte___Comparable___60d(unsigned char self, unsigned char p0) {
1446 short int var /* : Bool */;
1447 short int var1 /* : Bool */;
1448 int cltype;
1449 int idtype;
1450 const char* var_class_name;
1451 short int var2 /* : Bool */;
1452 /* Covariant cast for argument 0 (i) <p0:Byte> isa OTHER */
1453 /* <p0:Byte> isa OTHER */
1454 var1 = 1; /* easy <p0:Byte> isa OTHER*/
1455 if (unlikely(!var1)) {
1456 var_class_name = type_core__Byte.name;
1457 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1458 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 619);
1459 fatal_exit(1);
1460 }
1461 var2 = self < p0;
1462 var = var2;
1463 goto RET_LABEL;
1464 RET_LABEL:;
1465 return var;
1466 }
1467 /* method kernel#Byte#< for (self: Comparable, Comparable): Bool */
1468 short int VIRTUAL_core___core__Byte___Comparable___60d(val* self, val* p0) {
1469 short int var /* : Bool */;
1470 short int var1 /* : Bool */;
1471 short int var3 /* : Bool */;
1472 int cltype;
1473 int idtype;
1474 const struct type* type_struct;
1475 const char* var_class_name;
1476 unsigned char var4 /* : Byte */;
1477 unsigned char var5 /* : Byte */;
1478 short int var6 /* : Bool */;
1479 { /* Inline kernel#Byte#< (self,p0) on <self:Comparable(Byte)> */
1480 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1481 /* <p0:Comparable> isa OTHER */
1482 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
1483 cltype = type_struct->color;
1484 idtype = type_struct->id;
1485 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1486 var3 = 0;
1487 } else {
1488 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1489 }
1490 if (unlikely(!var3)) {
1491 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1492 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1493 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 619);
1494 fatal_exit(1);
1495 }
1496 var4 = ((struct instance_core__Byte*)self)->value; /* autounbox from Comparable to Byte */;
1497 var5 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Comparable to Byte */;
1498 var6 = var4 < var5;
1499 var1 = var6;
1500 goto RET_LABEL2;
1501 RET_LABEL2:(void)0;
1502 }
1503 var = var1;
1504 RET_LABEL:;
1505 return var;
1506 }
1507 /* method kernel#Byte#>= for (self: Byte, Byte): Bool */
1508 short int core___core__Byte___Comparable___62d_61d(unsigned char self, unsigned char p0) {
1509 short int var /* : Bool */;
1510 short int var1 /* : Bool */;
1511 int cltype;
1512 int idtype;
1513 const char* var_class_name;
1514 short int var2 /* : Bool */;
1515 /* Covariant cast for argument 0 (i) <p0:Byte> isa OTHER */
1516 /* <p0:Byte> isa OTHER */
1517 var1 = 1; /* easy <p0:Byte> isa OTHER*/
1518 if (unlikely(!var1)) {
1519 var_class_name = type_core__Byte.name;
1520 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1521 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 620);
1522 fatal_exit(1);
1523 }
1524 var2 = self >= p0;
1525 var = var2;
1526 goto RET_LABEL;
1527 RET_LABEL:;
1528 return var;
1529 }
1530 /* method kernel#Byte#>= for (self: Comparable, Comparable): Bool */
1531 short int VIRTUAL_core___core__Byte___Comparable___62d_61d(val* self, val* p0) {
1532 short int var /* : Bool */;
1533 short int var1 /* : Bool */;
1534 short int var3 /* : Bool */;
1535 int cltype;
1536 int idtype;
1537 const struct type* type_struct;
1538 const char* var_class_name;
1539 unsigned char var4 /* : Byte */;
1540 unsigned char var5 /* : Byte */;
1541 short int var6 /* : Bool */;
1542 { /* Inline kernel#Byte#>= (self,p0) on <self:Comparable(Byte)> */
1543 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1544 /* <p0:Comparable> isa OTHER */
1545 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
1546 cltype = type_struct->color;
1547 idtype = type_struct->id;
1548 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1549 var3 = 0;
1550 } else {
1551 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1552 }
1553 if (unlikely(!var3)) {
1554 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1555 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1556 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 620);
1557 fatal_exit(1);
1558 }
1559 var4 = ((struct instance_core__Byte*)self)->value; /* autounbox from Comparable to Byte */;
1560 var5 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Comparable to Byte */;
1561 var6 = var4 >= var5;
1562 var1 = var6;
1563 goto RET_LABEL2;
1564 RET_LABEL2:(void)0;
1565 }
1566 var = var1;
1567 RET_LABEL:;
1568 return var;
1569 }
1570 /* method kernel#Byte#> for (self: Byte, Byte): Bool */
1571 short int core___core__Byte___Comparable___62d(unsigned char self, unsigned char p0) {
1572 short int var /* : Bool */;
1573 short int var1 /* : Bool */;
1574 int cltype;
1575 int idtype;
1576 const char* var_class_name;
1577 short int var2 /* : Bool */;
1578 /* Covariant cast for argument 0 (i) <p0:Byte> isa OTHER */
1579 /* <p0:Byte> isa OTHER */
1580 var1 = 1; /* easy <p0:Byte> isa OTHER*/
1581 if (unlikely(!var1)) {
1582 var_class_name = type_core__Byte.name;
1583 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1584 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 621);
1585 fatal_exit(1);
1586 }
1587 var2 = self > p0;
1588 var = var2;
1589 goto RET_LABEL;
1590 RET_LABEL:;
1591 return var;
1592 }
1593 /* method kernel#Byte#> for (self: Comparable, Comparable): Bool */
1594 short int VIRTUAL_core___core__Byte___Comparable___62d(val* self, val* p0) {
1595 short int var /* : Bool */;
1596 short int var1 /* : Bool */;
1597 short int var3 /* : Bool */;
1598 int cltype;
1599 int idtype;
1600 const struct type* type_struct;
1601 const char* var_class_name;
1602 unsigned char var4 /* : Byte */;
1603 unsigned char var5 /* : Byte */;
1604 short int var6 /* : Bool */;
1605 { /* Inline kernel#Byte#> (self,p0) on <self:Comparable(Byte)> */
1606 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
1607 /* <p0:Comparable> isa OTHER */
1608 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
1609 cltype = type_struct->color;
1610 idtype = type_struct->id;
1611 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1612 var3 = 0;
1613 } else {
1614 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1615 }
1616 if (unlikely(!var3)) {
1617 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1618 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1619 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 621);
1620 fatal_exit(1);
1621 }
1622 var4 = ((struct instance_core__Byte*)self)->value; /* autounbox from Comparable to Byte */;
1623 var5 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Comparable to Byte */;
1624 var6 = var4 > var5;
1625 var1 = var6;
1626 goto RET_LABEL2;
1627 RET_LABEL2:(void)0;
1628 }
1629 var = var1;
1630 RET_LABEL:;
1631 return var;
1632 }
1633 /* method kernel#Byte#+ for (self: Byte, Byte): Byte */
1634 unsigned char core___core__Byte___Numeric___43d(unsigned char self, unsigned char p0) {
1635 unsigned char var /* : Byte */;
1636 short int var1 /* : Bool */;
1637 int cltype;
1638 int idtype;
1639 const char* var_class_name;
1640 unsigned char var2 /* : Byte */;
1641 /* Covariant cast for argument 0 (i) <p0:Byte> isa OTHER */
1642 /* <p0:Byte> isa OTHER */
1643 var1 = 1; /* easy <p0:Byte> isa OTHER*/
1644 if (unlikely(!var1)) {
1645 var_class_name = type_core__Byte.name;
1646 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1647 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 622);
1648 fatal_exit(1);
1649 }
1650 var2 = self + p0;
1651 var = var2;
1652 goto RET_LABEL;
1653 RET_LABEL:;
1654 return var;
1655 }
1656 /* method kernel#Byte#+ for (self: Numeric, Numeric): Numeric */
1657 val* VIRTUAL_core___core__Byte___Numeric___43d(val* self, val* p0) {
1658 val* var /* : Numeric */;
1659 unsigned char var1 /* : Byte */;
1660 short int var3 /* : Bool */;
1661 int cltype;
1662 int idtype;
1663 const struct type* type_struct;
1664 const char* var_class_name;
1665 unsigned char var4 /* : Byte */;
1666 unsigned char var5 /* : Byte */;
1667 unsigned char var6 /* : Byte */;
1668 val* var7 /* : Numeric */;
1669 { /* Inline kernel#Byte#+ (self,p0) on <self:Numeric(Byte)> */
1670 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
1671 /* <p0:Numeric> isa OTHER */
1672 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
1673 cltype = type_struct->color;
1674 idtype = type_struct->id;
1675 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1676 var3 = 0;
1677 } else {
1678 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1679 }
1680 if (unlikely(!var3)) {
1681 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1682 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1683 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 622);
1684 fatal_exit(1);
1685 }
1686 var4 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
1687 var5 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Numeric to Byte */;
1688 var6 = var4 + var5;
1689 var1 = var6;
1690 goto RET_LABEL2;
1691 RET_LABEL2:(void)0;
1692 }
1693 var7 = BOX_core__Byte(var1); /* autobox from Byte to Numeric */
1694 var = var7;
1695 RET_LABEL:;
1696 return var;
1697 }
1698 /* method kernel#Byte#unary - for (self: Byte): Byte */
1699 unsigned char core___core__Byte___Numeric__unary_32d_45d(unsigned char self) {
1700 unsigned char var /* : Byte */;
1701 unsigned char var1 /* : Byte */;
1702 var1 = -self;
1703 var = var1;
1704 goto RET_LABEL;
1705 RET_LABEL:;
1706 return var;
1707 }
1708 /* method kernel#Byte#unary - for (self: Numeric): Numeric */
1709 val* VIRTUAL_core___core__Byte___Numeric__unary_32d_45d(val* self) {
1710 val* var /* : Numeric */;
1711 unsigned char var1 /* : Byte */;
1712 unsigned char var3 /* : Byte */;
1713 unsigned char var4 /* : Byte */;
1714 val* var5 /* : Numeric */;
1715 { /* Inline kernel#Byte#unary - (self) on <self:Numeric(Byte)> */
1716 var3 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
1717 var4 = -var3;
1718 var1 = var4;
1719 goto RET_LABEL2;
1720 RET_LABEL2:(void)0;
1721 }
1722 var5 = BOX_core__Byte(var1); /* autobox from Byte to Numeric */
1723 var = var5;
1724 RET_LABEL:;
1725 return var;
1726 }
1727 /* method kernel#Byte#- for (self: Byte, Byte): Byte */
1728 unsigned char core___core__Byte___Numeric___45d(unsigned char self, unsigned char p0) {
1729 unsigned char var /* : Byte */;
1730 short int var1 /* : Bool */;
1731 int cltype;
1732 int idtype;
1733 const char* var_class_name;
1734 unsigned char var2 /* : Byte */;
1735 /* Covariant cast for argument 0 (i) <p0:Byte> isa OTHER */
1736 /* <p0:Byte> isa OTHER */
1737 var1 = 1; /* easy <p0:Byte> isa OTHER*/
1738 if (unlikely(!var1)) {
1739 var_class_name = type_core__Byte.name;
1740 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1741 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 629);
1742 fatal_exit(1);
1743 }
1744 var2 = self - p0;
1745 var = var2;
1746 goto RET_LABEL;
1747 RET_LABEL:;
1748 return var;
1749 }
1750 /* method kernel#Byte#- for (self: Numeric, Numeric): Numeric */
1751 val* VIRTUAL_core___core__Byte___Numeric___45d(val* self, val* p0) {
1752 val* var /* : Numeric */;
1753 unsigned char var1 /* : Byte */;
1754 short int var3 /* : Bool */;
1755 int cltype;
1756 int idtype;
1757 const struct type* type_struct;
1758 const char* var_class_name;
1759 unsigned char var4 /* : Byte */;
1760 unsigned char var5 /* : Byte */;
1761 unsigned char var6 /* : Byte */;
1762 val* var7 /* : Numeric */;
1763 { /* Inline kernel#Byte#- (self,p0) on <self:Numeric(Byte)> */
1764 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
1765 /* <p0:Numeric> isa OTHER */
1766 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
1767 cltype = type_struct->color;
1768 idtype = type_struct->id;
1769 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1770 var3 = 0;
1771 } else {
1772 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1773 }
1774 if (unlikely(!var3)) {
1775 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1776 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1777 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 629);
1778 fatal_exit(1);
1779 }
1780 var4 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
1781 var5 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Numeric to Byte */;
1782 var6 = var4 - var5;
1783 var1 = var6;
1784 goto RET_LABEL2;
1785 RET_LABEL2:(void)0;
1786 }
1787 var7 = BOX_core__Byte(var1); /* autobox from Byte to Numeric */
1788 var = var7;
1789 RET_LABEL:;
1790 return var;
1791 }
1792 /* method kernel#Byte#* for (self: Byte, Byte): Byte */
1793 unsigned char core___core__Byte___Numeric___42d(unsigned char self, unsigned char p0) {
1794 unsigned char var /* : Byte */;
1795 short int var1 /* : Bool */;
1796 int cltype;
1797 int idtype;
1798 const char* var_class_name;
1799 unsigned char var2 /* : Byte */;
1800 /* Covariant cast for argument 0 (i) <p0:Byte> isa OTHER */
1801 /* <p0:Byte> isa OTHER */
1802 var1 = 1; /* easy <p0:Byte> isa OTHER*/
1803 if (unlikely(!var1)) {
1804 var_class_name = type_core__Byte.name;
1805 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1806 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 630);
1807 fatal_exit(1);
1808 }
1809 var2 = self * p0;
1810 var = var2;
1811 goto RET_LABEL;
1812 RET_LABEL:;
1813 return var;
1814 }
1815 /* method kernel#Byte#* for (self: Numeric, Numeric): Numeric */
1816 val* VIRTUAL_core___core__Byte___Numeric___42d(val* self, val* p0) {
1817 val* var /* : Numeric */;
1818 unsigned char var1 /* : Byte */;
1819 short int var3 /* : Bool */;
1820 int cltype;
1821 int idtype;
1822 const struct type* type_struct;
1823 const char* var_class_name;
1824 unsigned char var4 /* : Byte */;
1825 unsigned char var5 /* : Byte */;
1826 unsigned char var6 /* : Byte */;
1827 val* var7 /* : Numeric */;
1828 { /* Inline kernel#Byte#* (self,p0) on <self:Numeric(Byte)> */
1829 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
1830 /* <p0:Numeric> isa OTHER */
1831 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
1832 cltype = type_struct->color;
1833 idtype = type_struct->id;
1834 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1835 var3 = 0;
1836 } else {
1837 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1838 }
1839 if (unlikely(!var3)) {
1840 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1841 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1842 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 630);
1843 fatal_exit(1);
1844 }
1845 var4 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
1846 var5 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Numeric to Byte */;
1847 var6 = var4 * var5;
1848 var1 = var6;
1849 goto RET_LABEL2;
1850 RET_LABEL2:(void)0;
1851 }
1852 var7 = BOX_core__Byte(var1); /* autobox from Byte to Numeric */
1853 var = var7;
1854 RET_LABEL:;
1855 return var;
1856 }
1857 /* method kernel#Byte#/ for (self: Byte, Byte): Byte */
1858 unsigned char core___core__Byte___Numeric___47d(unsigned char self, unsigned char p0) {
1859 unsigned char var /* : Byte */;
1860 short int var1 /* : Bool */;
1861 int cltype;
1862 int idtype;
1863 const char* var_class_name;
1864 unsigned char var2 /* : Byte */;
1865 /* Covariant cast for argument 0 (i) <p0:Byte> isa OTHER */
1866 /* <p0:Byte> isa OTHER */
1867 var1 = 1; /* easy <p0:Byte> isa OTHER*/
1868 if (unlikely(!var1)) {
1869 var_class_name = type_core__Byte.name;
1870 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1871 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 631);
1872 fatal_exit(1);
1873 }
1874 var2 = self / p0;
1875 var = var2;
1876 goto RET_LABEL;
1877 RET_LABEL:;
1878 return var;
1879 }
1880 /* method kernel#Byte#/ for (self: Numeric, Numeric): Numeric */
1881 val* VIRTUAL_core___core__Byte___Numeric___47d(val* self, val* p0) {
1882 val* var /* : Numeric */;
1883 unsigned char var1 /* : Byte */;
1884 short int var3 /* : Bool */;
1885 int cltype;
1886 int idtype;
1887 const struct type* type_struct;
1888 const char* var_class_name;
1889 unsigned char var4 /* : Byte */;
1890 unsigned char var5 /* : Byte */;
1891 unsigned char var6 /* : Byte */;
1892 val* var7 /* : Numeric */;
1893 { /* Inline kernel#Byte#/ (self,p0) on <self:Numeric(Byte)> */
1894 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
1895 /* <p0:Numeric> isa OTHER */
1896 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
1897 cltype = type_struct->color;
1898 idtype = type_struct->id;
1899 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1900 var3 = 0;
1901 } else {
1902 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1903 }
1904 if (unlikely(!var3)) {
1905 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1906 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1907 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 631);
1908 fatal_exit(1);
1909 }
1910 var4 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
1911 var5 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Numeric to Byte */;
1912 var6 = var4 / var5;
1913 var1 = var6;
1914 goto RET_LABEL2;
1915 RET_LABEL2:(void)0;
1916 }
1917 var7 = BOX_core__Byte(var1); /* autobox from Byte to Numeric */
1918 var = var7;
1919 RET_LABEL:;
1920 return var;
1921 }
1922 /* method kernel#Byte#>> for (self: Byte, Int): Byte */
1923 unsigned char core___core__Byte____62d_62d(unsigned char self, long p0) {
1924 unsigned char var /* : Byte */;
1925 unsigned char var1 /* : Byte */;
1926 var1 = self >> p0;
1927 var = var1;
1928 goto RET_LABEL;
1929 RET_LABEL:;
1930 return var;
1931 }
1932 /* method kernel#Byte#rsh for (self: Byte, Int): Byte */
1933 unsigned char core___core__Byte___rsh(unsigned char self, long p0) {
1934 unsigned char var /* : Byte */;
1935 unsigned char var1 /* : Byte */;
1936 var1 = kernel___Byte_rsh___impl(self, p0);
1937 var = var1;
1938 goto RET_LABEL;
1939 RET_LABEL:;
1940 return var;
1941 }
1942 /* method kernel#Byte#ascii for (self: Byte): Char */
1943 uint32_t core___core__Byte___ascii(unsigned char self) {
1944 uint32_t var /* : Char */;
1945 uint32_t var1 /* : Char */;
1946 var1 = (uint32_t)self;
1947 var = var1;
1948 goto RET_LABEL;
1949 RET_LABEL:;
1950 return var;
1951 }
1952 /* method kernel#Byte#ffi_ascii for (self: Byte): Char */
1953 uint32_t core___core__Byte___ffi_ascii(unsigned char self) {
1954 uint32_t var /* : Char */;
1955 uint32_t var1 /* : Char */;
1956 var1 = kernel___Byte_ffi_ascii___impl(self);
1957 var = var1;
1958 goto RET_LABEL;
1959 RET_LABEL:;
1960 return var;
1961 }
1962 /* method kernel#Byte#to_i for (self: Byte): Int */
1963 long core___core__Byte___Numeric__to_i(unsigned char self) {
1964 long var /* : Int */;
1965 long var1 /* : Int */;
1966 var1 = (long)self;
1967 var = var1;
1968 goto RET_LABEL;
1969 RET_LABEL:;
1970 return var;
1971 }
1972 /* method kernel#Byte#to_i for (self: Numeric): Int */
1973 long VIRTUAL_core___core__Byte___Numeric__to_i(val* self) {
1974 long var /* : Int */;
1975 long var1 /* : Int */;
1976 unsigned char var3 /* : Byte */;
1977 long var4 /* : Int */;
1978 { /* Inline kernel#Byte#to_i (self) on <self:Numeric(Byte)> */
1979 var3 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
1980 var4 = (long)var3;
1981 var1 = var4;
1982 goto RET_LABEL2;
1983 RET_LABEL2:(void)0;
1984 }
1985 var = var1;
1986 RET_LABEL:;
1987 return var;
1988 }
1989 /* method kernel#Byte#to_f for (self: Byte): Float */
1990 double core___core__Byte___Numeric__to_f(unsigned char self) {
1991 double var /* : Float */;
1992 double var1 /* : Float */;
1993 var1 = (double)self;
1994 var = var1;
1995 goto RET_LABEL;
1996 RET_LABEL:;
1997 return var;
1998 }
1999 /* method kernel#Byte#to_f for (self: Numeric): Float */
2000 double VIRTUAL_core___core__Byte___Numeric__to_f(val* self) {
2001 double var /* : Float */;
2002 double var1 /* : Float */;
2003 unsigned char var3 /* : Byte */;
2004 double var4 /* : Float */;
2005 { /* Inline kernel#Byte#to_f (self) on <self:Numeric(Byte)> */
2006 var3 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
2007 var4 = (double)var3;
2008 var1 = var4;
2009 goto RET_LABEL2;
2010 RET_LABEL2:(void)0;
2011 }
2012 var = var1;
2013 RET_LABEL:;
2014 return var;
2015 }
2016 /* method kernel#Byte#to_b for (self: Byte): Byte */
2017 unsigned char core___core__Byte___Numeric__to_b(unsigned char self) {
2018 unsigned char var /* : Byte */;
2019 var = self;
2020 goto RET_LABEL;
2021 RET_LABEL:;
2022 return var;
2023 }
2024 /* method kernel#Byte#to_b for (self: Numeric): Byte */
2025 unsigned char VIRTUAL_core___core__Byte___Numeric__to_b(val* self) {
2026 unsigned char var /* : Byte */;
2027 unsigned char var1 /* : Byte */;
2028 unsigned char var2 /* : Byte */;
2029 var2 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
2030 var1 = core___core__Byte___Numeric__to_b(var2);
2031 var = var1;
2032 RET_LABEL:;
2033 return var;
2034 }
2035 /* method kernel#Byte#distance for (self: Byte, Byte): Int */
2036 long core___core__Byte___Discrete__distance(unsigned char self, unsigned char p0) {
2037 long var /* : Int */;
2038 short int var1 /* : Bool */;
2039 int cltype;
2040 int idtype;
2041 const char* var_class_name;
2042 unsigned char var_i /* var i: Byte */;
2043 unsigned char var2 /* : Byte */;
2044 short int var4 /* : Bool */;
2045 int cltype5;
2046 int idtype6;
2047 const char* var_class_name7;
2048 unsigned char var8 /* : Byte */;
2049 long var9 /* : Int */;
2050 long var11 /* : Int */;
2051 /* Covariant cast for argument 0 (i) <p0:Byte> isa OTHER */
2052 /* <p0:Byte> isa OTHER */
2053 var1 = 1; /* easy <p0:Byte> isa OTHER*/
2054 if (unlikely(!var1)) {
2055 var_class_name = type_core__Byte.name;
2056 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2057 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 669);
2058 fatal_exit(1);
2059 }
2060 var_i = p0;
2061 {
2062 { /* Inline kernel#Byte#- (self,var_i) on <self:Byte> */
2063 /* Covariant cast for argument 0 (i) <var_i:Byte> isa OTHER */
2064 /* <var_i:Byte> isa OTHER */
2065 var4 = 1; /* easy <var_i:Byte> isa OTHER*/
2066 if (unlikely(!var4)) {
2067 var_class_name7 = type_core__Byte.name;
2068 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
2069 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 629);
2070 fatal_exit(1);
2071 }
2072 var8 = self - var_i;
2073 var2 = var8;
2074 goto RET_LABEL3;
2075 RET_LABEL3:(void)0;
2076 }
2077 }
2078 {
2079 { /* Inline kernel#Byte#to_i (var2) on <var2:Byte> */
2080 var11 = (long)var2;
2081 var9 = var11;
2082 goto RET_LABEL10;
2083 RET_LABEL10:(void)0;
2084 }
2085 }
2086 var = var9;
2087 goto RET_LABEL;
2088 RET_LABEL:;
2089 return var;
2090 }
2091 /* method kernel#Byte#distance for (self: Discrete, Discrete): Int */
2092 long VIRTUAL_core___core__Byte___Discrete__distance(val* self, val* p0) {
2093 long var /* : Int */;
2094 long var1 /* : Int */;
2095 unsigned char var2 /* : Byte */;
2096 unsigned char var3 /* : Byte */;
2097 var2 = ((struct instance_core__Byte*)self)->value; /* autounbox from Discrete to Byte */;
2098 var3 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Discrete to Byte */;
2099 var1 = core___core__Byte___Discrete__distance(var2, var3);
2100 var = var1;
2101 RET_LABEL:;
2102 return var;
2103 }
2104 /* method kernel#Byte#<=> for (self: Byte, Byte): Int */
2105 long core___core__Byte___Comparable___60d_61d_62d(unsigned char self, unsigned char p0) {
2106 long var /* : Int */;
2107 short int var1 /* : Bool */;
2108 int cltype;
2109 int idtype;
2110 const char* var_class_name;
2111 unsigned char var_other /* var other: Byte */;
2112 short int var2 /* : Bool */;
2113 short int var4 /* : Bool */;
2114 int cltype5;
2115 int idtype6;
2116 const char* var_class_name7;
2117 short int var8 /* : Bool */;
2118 long var9 /* : Int */;
2119 long var11 /* : Int */;
2120 short int var12 /* : Bool */;
2121 short int var14 /* : Bool */;
2122 int cltype15;
2123 int idtype16;
2124 const char* var_class_name17;
2125 short int var18 /* : Bool */;
2126 /* Covariant cast for argument 0 (other) <p0:Byte> isa OTHER */
2127 /* <p0:Byte> isa OTHER */
2128 var1 = 1; /* easy <p0:Byte> isa OTHER*/
2129 if (unlikely(!var1)) {
2130 var_class_name = type_core__Byte.name;
2131 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2132 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 671);
2133 fatal_exit(1);
2134 }
2135 var_other = p0;
2136 {
2137 { /* Inline kernel#Byte#< (self,var_other) on <self:Byte> */
2138 /* Covariant cast for argument 0 (i) <var_other:Byte> isa OTHER */
2139 /* <var_other:Byte> isa OTHER */
2140 var4 = 1; /* easy <var_other:Byte> isa OTHER*/
2141 if (unlikely(!var4)) {
2142 var_class_name7 = type_core__Byte.name;
2143 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
2144 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 619);
2145 fatal_exit(1);
2146 }
2147 var8 = self < var_other;
2148 var2 = var8;
2149 goto RET_LABEL3;
2150 RET_LABEL3:(void)0;
2151 }
2152 }
2153 if (var2){
2154 {
2155 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
2156 var11 = -1l;
2157 var9 = var11;
2158 goto RET_LABEL10;
2159 RET_LABEL10:(void)0;
2160 }
2161 }
2162 var = var9;
2163 goto RET_LABEL;
2164 } else {
2165 {
2166 { /* Inline kernel#Byte#< (var_other,self) on <var_other:Byte> */
2167 /* Covariant cast for argument 0 (i) <self:Byte> isa OTHER */
2168 /* <self:Byte> isa OTHER */
2169 var14 = 1; /* easy <self:Byte> isa OTHER*/
2170 if (unlikely(!var14)) {
2171 var_class_name17 = type_core__Byte.name;
2172 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
2173 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 619);
2174 fatal_exit(1);
2175 }
2176 var18 = var_other < self;
2177 var12 = var18;
2178 goto RET_LABEL13;
2179 RET_LABEL13:(void)0;
2180 }
2181 }
2182 if (var12){
2183 var = 1l;
2184 goto RET_LABEL;
2185 } else {
2186 var = 0l;
2187 goto RET_LABEL;
2188 }
2189 }
2190 RET_LABEL:;
2191 return var;
2192 }
2193 /* method kernel#Byte#<=> for (self: Comparable, Comparable): Int */
2194 long VIRTUAL_core___core__Byte___Comparable___60d_61d_62d(val* self, val* p0) {
2195 long var /* : Int */;
2196 long var1 /* : Int */;
2197 unsigned char var2 /* : Byte */;
2198 unsigned char var3 /* : Byte */;
2199 var2 = ((struct instance_core__Byte*)self)->value; /* autounbox from Comparable to Byte */;
2200 var3 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Comparable to Byte */;
2201 var1 = core___core__Byte___Comparable___60d_61d_62d(var2, var3);
2202 var = var1;
2203 RET_LABEL:;
2204 return var;
2205 }
2206 /* method kernel#Int#successor for (self: Int, Int): Int */
2207 long core___core__Int___Discrete__successor(long self, long p0) {
2208 long var /* : Int */;
2209 long var_i /* var i: Int */;
2210 long var1 /* : Int */;
2211 short int var3 /* : Bool */;
2212 int cltype;
2213 int idtype;
2214 const char* var_class_name;
2215 long var4 /* : Int */;
2216 var_i = p0;
2217 {
2218 { /* Inline kernel#Int#+ (self,var_i) on <self:Int> */
2219 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
2220 /* <var_i:Int> isa OTHER */
2221 var3 = 1; /* easy <var_i:Int> isa OTHER*/
2222 if (unlikely(!var3)) {
2223 var_class_name = type_core__Int.name;
2224 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2225 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2226 fatal_exit(1);
2227 }
2228 var4 = self + var_i;
2229 var1 = var4;
2230 goto RET_LABEL2;
2231 RET_LABEL2:(void)0;
2232 }
2233 }
2234 var = var1;
2235 goto RET_LABEL;
2236 RET_LABEL:;
2237 return var;
2238 }
2239 /* method kernel#Int#successor for (self: Discrete, Int): Discrete */
2240 val* VIRTUAL_core___core__Int___Discrete__successor(val* self, long p0) {
2241 val* var /* : Discrete */;
2242 long var1 /* : Int */;
2243 long var2 /* : Int */;
2244 val* var3 /* : Discrete */;
2245 var2 = (long)(self)>>2;
2246 var1 = core___core__Int___Discrete__successor(var2, p0);
2247 var3 = (val*)(var1<<2|1);
2248 var = var3;
2249 RET_LABEL:;
2250 return var;
2251 }
2252 /* method kernel#Int#object_id for (self: Int): Int */
2253 long core___core__Int___Object__object_id(long self) {
2254 long var /* : Int */;
2255 var = self;
2256 goto RET_LABEL;
2257 RET_LABEL:;
2258 return var;
2259 }
2260 /* method kernel#Int#object_id for (self: Object): Int */
2261 long VIRTUAL_core___core__Int___Object__object_id(val* self) {
2262 long var /* : Int */;
2263 long var1 /* : Int */;
2264 long var3 /* : Int */;
2265 { /* Inline kernel#Int#object_id (self) on <self:Object(Int)> */
2266 var3 = (long)(self)>>2;
2267 var1 = var3;
2268 goto RET_LABEL2;
2269 RET_LABEL2:(void)0;
2270 }
2271 var = var1;
2272 RET_LABEL:;
2273 return var;
2274 }
2275 /* method kernel#Int#hash for (self: Int): Int */
2276 long core___core__Int___Object__hash(long self) {
2277 long var /* : Int */;
2278 var = self;
2279 goto RET_LABEL;
2280 RET_LABEL:;
2281 return var;
2282 }
2283 /* method kernel#Int#hash for (self: Object): Int */
2284 long VIRTUAL_core___core__Int___Object__hash(val* self) {
2285 long var /* : Int */;
2286 long var1 /* : Int */;
2287 long var2 /* : Int */;
2288 var2 = (long)(self)>>2;
2289 var1 = core___core__Int___Object__hash(var2);
2290 var = var1;
2291 RET_LABEL:;
2292 return var;
2293 }
2294 /* method kernel#Int#== for (self: Int, nullable Object): Bool */
2295 short int core___core__Int___Object___61d_61d(long self, val* p0) {
2296 short int var /* : Bool */;
2297 short int var1 /* : Bool */;
2298 long var2 /* : Int */;
2299 if ((p0 != NULL) && (((long)p0&3) == 1)) {
2300 var2 = (long)(p0)>>2;
2301 var1 = var2 == self;
2302 } else var1 = 0;
2303 var = var1;
2304 goto RET_LABEL;
2305 RET_LABEL:;
2306 return var;
2307 }
2308 /* method kernel#Int#== for (self: Object, nullable Object): Bool */
2309 short int VIRTUAL_core___core__Int___Object___61d_61d(val* self, val* p0) {
2310 short int var /* : Bool */;
2311 short int var1 /* : Bool */;
2312 short int var3 /* : Bool */;
2313 { /* Inline kernel#Int#== (self,p0) on <self:Object(Int)> */
2314 var3 = self == p0;
2315 var1 = var3;
2316 goto RET_LABEL2;
2317 RET_LABEL2:(void)0;
2318 }
2319 var = var1;
2320 RET_LABEL:;
2321 return var;
2322 }
2323 /* method kernel#Int#!= for (self: Int, nullable Object): Bool */
2324 short int core___core__Int___Object___33d_61d(long self, val* p0) {
2325 short int var /* : Bool */;
2326 short int var1 /* : Bool */;
2327 long var2 /* : Int */;
2328 short int var3 /* : Bool */;
2329 if ((p0 != NULL) && (((long)p0&3) == 1)) {
2330 var2 = (long)(p0)>>2;
2331 var1 = var2 == self;
2332 } else var1 = 0;
2333 var3 = !var1;
2334 var = var3;
2335 goto RET_LABEL;
2336 RET_LABEL:;
2337 return var;
2338 }
2339 /* method kernel#Int#!= for (self: Object, nullable Object): Bool */
2340 short int VIRTUAL_core___core__Int___Object___33d_61d(val* self, val* p0) {
2341 short int var /* : Bool */;
2342 short int var1 /* : Bool */;
2343 short int var3 /* : Bool */;
2344 short int var4 /* : Bool */;
2345 { /* Inline kernel#Int#!= (self,p0) on <self:Object(Int)> */
2346 var3 = self == p0;
2347 var4 = !var3;
2348 var1 = var4;
2349 goto RET_LABEL2;
2350 RET_LABEL2:(void)0;
2351 }
2352 var = var1;
2353 RET_LABEL:;
2354 return var;
2355 }
2356 /* method kernel#Int#<= for (self: Int, Int): Bool */
2357 short int core___core__Int___Comparable___60d_61d(long self, long p0) {
2358 short int var /* : Bool */;
2359 short int var1 /* : Bool */;
2360 int cltype;
2361 int idtype;
2362 const char* var_class_name;
2363 short int var2 /* : Bool */;
2364 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
2365 /* <p0:Int> isa OTHER */
2366 var1 = 1; /* easy <p0:Int> isa OTHER*/
2367 if (unlikely(!var1)) {
2368 var_class_name = type_core__Int.name;
2369 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2370 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
2371 fatal_exit(1);
2372 }
2373 var2 = self <= p0;
2374 var = var2;
2375 goto RET_LABEL;
2376 RET_LABEL:;
2377 return var;
2378 }
2379 /* method kernel#Int#<= for (self: Comparable, Comparable): Bool */
2380 short int VIRTUAL_core___core__Int___Comparable___60d_61d(val* self, val* p0) {
2381 short int var /* : Bool */;
2382 short int var1 /* : Bool */;
2383 short int var3 /* : Bool */;
2384 int cltype;
2385 int idtype;
2386 const struct type* type_struct;
2387 const char* var_class_name;
2388 long var4 /* : Int */;
2389 long var5 /* : Int */;
2390 short int var6 /* : Bool */;
2391 { /* Inline kernel#Int#<= (self,p0) on <self:Comparable(Int)> */
2392 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
2393 /* <p0:Comparable> isa OTHER */
2394 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
2395 cltype = type_struct->color;
2396 idtype = type_struct->id;
2397 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2398 var3 = 0;
2399 } else {
2400 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2401 }
2402 if (unlikely(!var3)) {
2403 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2404 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2405 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
2406 fatal_exit(1);
2407 }
2408 var4 = (long)(self)>>2;
2409 var5 = (long)(p0)>>2;
2410 var6 = var4 <= var5;
2411 var1 = var6;
2412 goto RET_LABEL2;
2413 RET_LABEL2:(void)0;
2414 }
2415 var = var1;
2416 RET_LABEL:;
2417 return var;
2418 }
2419 /* method kernel#Int#< for (self: Int, Int): Bool */
2420 short int core___core__Int___Comparable___60d(long self, long p0) {
2421 short int var /* : Bool */;
2422 short int var1 /* : Bool */;
2423 int cltype;
2424 int idtype;
2425 const char* var_class_name;
2426 short int var2 /* : Bool */;
2427 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
2428 /* <p0:Int> isa OTHER */
2429 var1 = 1; /* easy <p0:Int> isa OTHER*/
2430 if (unlikely(!var1)) {
2431 var_class_name = type_core__Int.name;
2432 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2433 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2434 fatal_exit(1);
2435 }
2436 var2 = self < p0;
2437 var = var2;
2438 goto RET_LABEL;
2439 RET_LABEL:;
2440 return var;
2441 }
2442 /* method kernel#Int#< for (self: Comparable, Comparable): Bool */
2443 short int VIRTUAL_core___core__Int___Comparable___60d(val* self, val* p0) {
2444 short int var /* : Bool */;
2445 short int var1 /* : Bool */;
2446 short int var3 /* : Bool */;
2447 int cltype;
2448 int idtype;
2449 const struct type* type_struct;
2450 const char* var_class_name;
2451 long var4 /* : Int */;
2452 long var5 /* : Int */;
2453 short int var6 /* : Bool */;
2454 { /* Inline kernel#Int#< (self,p0) on <self:Comparable(Int)> */
2455 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
2456 /* <p0:Comparable> isa OTHER */
2457 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
2458 cltype = type_struct->color;
2459 idtype = type_struct->id;
2460 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2461 var3 = 0;
2462 } else {
2463 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2464 }
2465 if (unlikely(!var3)) {
2466 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2467 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2468 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2469 fatal_exit(1);
2470 }
2471 var4 = (long)(self)>>2;
2472 var5 = (long)(p0)>>2;
2473 var6 = var4 < var5;
2474 var1 = var6;
2475 goto RET_LABEL2;
2476 RET_LABEL2:(void)0;
2477 }
2478 var = var1;
2479 RET_LABEL:;
2480 return var;
2481 }
2482 /* method kernel#Int#>= for (self: Int, Int): Bool */
2483 short int core___core__Int___Comparable___62d_61d(long self, long p0) {
2484 short int var /* : Bool */;
2485 short int var1 /* : Bool */;
2486 int cltype;
2487 int idtype;
2488 const char* var_class_name;
2489 short int var2 /* : Bool */;
2490 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
2491 /* <p0:Int> isa OTHER */
2492 var1 = 1; /* easy <p0:Int> isa OTHER*/
2493 if (unlikely(!var1)) {
2494 var_class_name = type_core__Int.name;
2495 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2496 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
2497 fatal_exit(1);
2498 }
2499 var2 = self >= p0;
2500 var = var2;
2501 goto RET_LABEL;
2502 RET_LABEL:;
2503 return var;
2504 }
2505 /* method kernel#Int#>= for (self: Comparable, Comparable): Bool */
2506 short int VIRTUAL_core___core__Int___Comparable___62d_61d(val* self, val* p0) {
2507 short int var /* : Bool */;
2508 short int var1 /* : Bool */;
2509 short int var3 /* : Bool */;
2510 int cltype;
2511 int idtype;
2512 const struct type* type_struct;
2513 const char* var_class_name;
2514 long var4 /* : Int */;
2515 long var5 /* : Int */;
2516 short int var6 /* : Bool */;
2517 { /* Inline kernel#Int#>= (self,p0) on <self:Comparable(Int)> */
2518 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
2519 /* <p0:Comparable> isa OTHER */
2520 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
2521 cltype = type_struct->color;
2522 idtype = type_struct->id;
2523 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2524 var3 = 0;
2525 } else {
2526 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2527 }
2528 if (unlikely(!var3)) {
2529 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2530 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2531 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
2532 fatal_exit(1);
2533 }
2534 var4 = (long)(self)>>2;
2535 var5 = (long)(p0)>>2;
2536 var6 = var4 >= var5;
2537 var1 = var6;
2538 goto RET_LABEL2;
2539 RET_LABEL2:(void)0;
2540 }
2541 var = var1;
2542 RET_LABEL:;
2543 return var;
2544 }
2545 /* method kernel#Int#> for (self: Int, Int): Bool */
2546 short int core___core__Int___Comparable___62d(long self, long p0) {
2547 short int var /* : Bool */;
2548 short int var1 /* : Bool */;
2549 int cltype;
2550 int idtype;
2551 const char* var_class_name;
2552 short int var2 /* : Bool */;
2553 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
2554 /* <p0:Int> isa OTHER */
2555 var1 = 1; /* easy <p0:Int> isa OTHER*/
2556 if (unlikely(!var1)) {
2557 var_class_name = type_core__Int.name;
2558 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2559 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
2560 fatal_exit(1);
2561 }
2562 var2 = self > p0;
2563 var = var2;
2564 goto RET_LABEL;
2565 RET_LABEL:;
2566 return var;
2567 }
2568 /* method kernel#Int#> for (self: Comparable, Comparable): Bool */
2569 short int VIRTUAL_core___core__Int___Comparable___62d(val* self, val* p0) {
2570 short int var /* : Bool */;
2571 short int var1 /* : Bool */;
2572 short int var3 /* : Bool */;
2573 int cltype;
2574 int idtype;
2575 const struct type* type_struct;
2576 const char* var_class_name;
2577 long var4 /* : Int */;
2578 long var5 /* : Int */;
2579 short int var6 /* : Bool */;
2580 { /* Inline kernel#Int#> (self,p0) on <self:Comparable(Int)> */
2581 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
2582 /* <p0:Comparable> isa OTHER */
2583 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
2584 cltype = type_struct->color;
2585 idtype = type_struct->id;
2586 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2587 var3 = 0;
2588 } else {
2589 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2590 }
2591 if (unlikely(!var3)) {
2592 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2593 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2594 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
2595 fatal_exit(1);
2596 }
2597 var4 = (long)(self)>>2;
2598 var5 = (long)(p0)>>2;
2599 var6 = var4 > var5;
2600 var1 = var6;
2601 goto RET_LABEL2;
2602 RET_LABEL2:(void)0;
2603 }
2604 var = var1;
2605 RET_LABEL:;
2606 return var;
2607 }
2608 /* method kernel#Int#+ for (self: Int, Int): Int */
2609 long core___core__Int___Numeric___43d(long self, long p0) {
2610 long var /* : Int */;
2611 short int var1 /* : Bool */;
2612 int cltype;
2613 int idtype;
2614 const char* var_class_name;
2615 long var2 /* : Int */;
2616 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
2617 /* <p0:Int> isa OTHER */
2618 var1 = 1; /* easy <p0:Int> isa OTHER*/
2619 if (unlikely(!var1)) {
2620 var_class_name = type_core__Int.name;
2621 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2622 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2623 fatal_exit(1);
2624 }
2625 var2 = self + p0;
2626 var = var2;
2627 goto RET_LABEL;
2628 RET_LABEL:;
2629 return var;
2630 }
2631 /* method kernel#Int#+ for (self: Numeric, Numeric): Numeric */
2632 val* VIRTUAL_core___core__Int___Numeric___43d(val* self, val* p0) {
2633 val* var /* : Numeric */;
2634 long var1 /* : Int */;
2635 short int var3 /* : Bool */;
2636 int cltype;
2637 int idtype;
2638 const struct type* type_struct;
2639 const char* var_class_name;
2640 long var4 /* : Int */;
2641 long var5 /* : Int */;
2642 long var6 /* : Int */;
2643 val* var7 /* : Numeric */;
2644 { /* Inline kernel#Int#+ (self,p0) on <self:Numeric(Int)> */
2645 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
2646 /* <p0:Numeric> isa OTHER */
2647 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
2648 cltype = type_struct->color;
2649 idtype = type_struct->id;
2650 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2651 var3 = 0;
2652 } else {
2653 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2654 }
2655 if (unlikely(!var3)) {
2656 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2657 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2658 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
2659 fatal_exit(1);
2660 }
2661 var4 = (long)(self)>>2;
2662 var5 = (long)(p0)>>2;
2663 var6 = var4 + var5;
2664 var1 = var6;
2665 goto RET_LABEL2;
2666 RET_LABEL2:(void)0;
2667 }
2668 var7 = (val*)(var1<<2|1);
2669 var = var7;
2670 RET_LABEL:;
2671 return var;
2672 }
2673 /* method kernel#Int#unary - for (self: Int): Int */
2674 long core___core__Int___Numeric__unary_32d_45d(long self) {
2675 long var /* : Int */;
2676 long var1 /* : Int */;
2677 var1 = -self;
2678 var = var1;
2679 goto RET_LABEL;
2680 RET_LABEL:;
2681 return var;
2682 }
2683 /* method kernel#Int#unary - for (self: Numeric): Numeric */
2684 val* VIRTUAL_core___core__Int___Numeric__unary_32d_45d(val* self) {
2685 val* var /* : Numeric */;
2686 long var1 /* : Int */;
2687 long var3 /* : Int */;
2688 long var4 /* : Int */;
2689 val* var5 /* : Numeric */;
2690 { /* Inline kernel#Int#unary - (self) on <self:Numeric(Int)> */
2691 var3 = (long)(self)>>2;
2692 var4 = -var3;
2693 var1 = var4;
2694 goto RET_LABEL2;
2695 RET_LABEL2:(void)0;
2696 }
2697 var5 = (val*)(var1<<2|1);
2698 var = var5;
2699 RET_LABEL:;
2700 return var;
2701 }
2702 /* method kernel#Int#- for (self: Int, Int): Int */
2703 long core___core__Int___Numeric___45d(long self, long p0) {
2704 long var /* : Int */;
2705 short int var1 /* : Bool */;
2706 int cltype;
2707 int idtype;
2708 const char* var_class_name;
2709 long var2 /* : Int */;
2710 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
2711 /* <p0:Int> isa OTHER */
2712 var1 = 1; /* easy <p0:Int> isa OTHER*/
2713 if (unlikely(!var1)) {
2714 var_class_name = type_core__Int.name;
2715 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2716 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
2717 fatal_exit(1);
2718 }
2719 var2 = self - p0;
2720 var = var2;
2721 goto RET_LABEL;
2722 RET_LABEL:;
2723 return var;
2724 }
2725 /* method kernel#Int#- for (self: Numeric, Numeric): Numeric */
2726 val* VIRTUAL_core___core__Int___Numeric___45d(val* self, val* p0) {
2727 val* var /* : Numeric */;
2728 long var1 /* : Int */;
2729 short int var3 /* : Bool */;
2730 int cltype;
2731 int idtype;
2732 const struct type* type_struct;
2733 const char* var_class_name;
2734 long var4 /* : Int */;
2735 long var5 /* : Int */;
2736 long var6 /* : Int */;
2737 val* var7 /* : Numeric */;
2738 { /* Inline kernel#Int#- (self,p0) on <self:Numeric(Int)> */
2739 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
2740 /* <p0:Numeric> isa OTHER */
2741 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
2742 cltype = type_struct->color;
2743 idtype = type_struct->id;
2744 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2745 var3 = 0;
2746 } else {
2747 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2748 }
2749 if (unlikely(!var3)) {
2750 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2751 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2752 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
2753 fatal_exit(1);
2754 }
2755 var4 = (long)(self)>>2;
2756 var5 = (long)(p0)>>2;
2757 var6 = var4 - var5;
2758 var1 = var6;
2759 goto RET_LABEL2;
2760 RET_LABEL2:(void)0;
2761 }
2762 var7 = (val*)(var1<<2|1);
2763 var = var7;
2764 RET_LABEL:;
2765 return var;
2766 }
2767 /* method kernel#Int#* for (self: Int, Int): Int */
2768 long core___core__Int___Numeric___42d(long self, long p0) {
2769 long var /* : Int */;
2770 short int var1 /* : Bool */;
2771 int cltype;
2772 int idtype;
2773 const char* var_class_name;
2774 long var2 /* : Int */;
2775 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
2776 /* <p0:Int> isa OTHER */
2777 var1 = 1; /* easy <p0:Int> isa OTHER*/
2778 if (unlikely(!var1)) {
2779 var_class_name = type_core__Int.name;
2780 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2781 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 735);
2782 fatal_exit(1);
2783 }
2784 var2 = self * p0;
2785 var = var2;
2786 goto RET_LABEL;
2787 RET_LABEL:;
2788 return var;
2789 }
2790 /* method kernel#Int#* for (self: Numeric, Numeric): Numeric */
2791 val* VIRTUAL_core___core__Int___Numeric___42d(val* self, val* p0) {
2792 val* var /* : Numeric */;
2793 long var1 /* : Int */;
2794 short int var3 /* : Bool */;
2795 int cltype;
2796 int idtype;
2797 const struct type* type_struct;
2798 const char* var_class_name;
2799 long var4 /* : Int */;
2800 long var5 /* : Int */;
2801 long var6 /* : Int */;
2802 val* var7 /* : Numeric */;
2803 { /* Inline kernel#Int#* (self,p0) on <self:Numeric(Int)> */
2804 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
2805 /* <p0:Numeric> isa OTHER */
2806 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
2807 cltype = type_struct->color;
2808 idtype = type_struct->id;
2809 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2810 var3 = 0;
2811 } else {
2812 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2813 }
2814 if (unlikely(!var3)) {
2815 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2816 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2817 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 735);
2818 fatal_exit(1);
2819 }
2820 var4 = (long)(self)>>2;
2821 var5 = (long)(p0)>>2;
2822 var6 = var4 * var5;
2823 var1 = var6;
2824 goto RET_LABEL2;
2825 RET_LABEL2:(void)0;
2826 }
2827 var7 = (val*)(var1<<2|1);
2828 var = var7;
2829 RET_LABEL:;
2830 return var;
2831 }
2832 /* method kernel#Int#/ for (self: Int, Int): Int */
2833 long core___core__Int___Numeric___47d(long self, long p0) {
2834 long var /* : Int */;
2835 short int var1 /* : Bool */;
2836 int cltype;
2837 int idtype;
2838 const char* var_class_name;
2839 long var2 /* : Int */;
2840 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
2841 /* <p0:Int> isa OTHER */
2842 var1 = 1; /* easy <p0:Int> isa OTHER*/
2843 if (unlikely(!var1)) {
2844 var_class_name = type_core__Int.name;
2845 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2846 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 736);
2847 fatal_exit(1);
2848 }
2849 var2 = self / p0;
2850 var = var2;
2851 goto RET_LABEL;
2852 RET_LABEL:;
2853 return var;
2854 }
2855 /* method kernel#Int#/ for (self: Numeric, Numeric): Numeric */
2856 val* VIRTUAL_core___core__Int___Numeric___47d(val* self, val* p0) {
2857 val* var /* : Numeric */;
2858 long var1 /* : Int */;
2859 short int var3 /* : Bool */;
2860 int cltype;
2861 int idtype;
2862 const struct type* type_struct;
2863 const char* var_class_name;
2864 long var4 /* : Int */;
2865 long var5 /* : Int */;
2866 long var6 /* : Int */;
2867 val* var7 /* : Numeric */;
2868 { /* Inline kernel#Int#/ (self,p0) on <self:Numeric(Int)> */
2869 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
2870 /* <p0:Numeric> isa OTHER */
2871 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
2872 cltype = type_struct->color;
2873 idtype = type_struct->id;
2874 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2875 var3 = 0;
2876 } else {
2877 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2878 }
2879 if (unlikely(!var3)) {
2880 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2881 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2882 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 736);
2883 fatal_exit(1);
2884 }
2885 var4 = (long)(self)>>2;
2886 var5 = (long)(p0)>>2;
2887 var6 = var4 / var5;
2888 var1 = var6;
2889 goto RET_LABEL2;
2890 RET_LABEL2:(void)0;
2891 }
2892 var7 = (val*)(var1<<2|1);
2893 var = var7;
2894 RET_LABEL:;
2895 return var;
2896 }
2897 /* method kernel#Int#% for (self: Int, Int): Int */
2898 long core___core__Int____37d(long self, long p0) {
2899 long var /* : Int */;
2900 long var1 /* : Int */;
2901 var1 = self % p0;
2902 var = var1;
2903 goto RET_LABEL;
2904 RET_LABEL:;
2905 return var;
2906 }
2907 /* method kernel#Int#<< for (self: Int, Int): Int */
2908 long core___core__Int____60d_60d(long self, long p0) {
2909 long var /* : Int */;
2910 long var1 /* : Int */;
2911 var1 = self << p0;
2912 var = var1;
2913 goto RET_LABEL;
2914 RET_LABEL:;
2915 return var;
2916 }
2917 /* method kernel#Int#lsh for (self: Int, Int): Int */
2918 long core___core__Int___lsh(long self, long p0) {
2919 long var /* : Int */;
2920 long var1 /* : Int */;
2921 var1 = kernel___Int_lsh___impl(self, p0);
2922 var = var1;
2923 goto RET_LABEL;
2924 RET_LABEL:;
2925 return var;
2926 }
2927 /* method kernel#Int#>> for (self: Int, Int): Int */
2928 long core___core__Int____62d_62d(long self, long p0) {
2929 long var /* : Int */;
2930 long var1 /* : Int */;
2931 var1 = self >> p0;
2932 var = var1;
2933 goto RET_LABEL;
2934 RET_LABEL:;
2935 return var;
2936 }
2937 /* method kernel#Int#rsh for (self: Int, Int): Int */
2938 long core___core__Int___rsh(long self, long p0) {
2939 long var /* : Int */;
2940 long var1 /* : Int */;
2941 var1 = kernel___Int_rsh___impl(self, p0);
2942 var = var1;
2943 goto RET_LABEL;
2944 RET_LABEL:;
2945 return var;
2946 }
2947 /* method kernel#Int#to_i for (self: Int): Int */
2948 long core___core__Int___Numeric__to_i(long self) {
2949 long var /* : Int */;
2950 var = self;
2951 goto RET_LABEL;
2952 RET_LABEL:;
2953 return var;
2954 }
2955 /* method kernel#Int#to_i for (self: Numeric): Int */
2956 long VIRTUAL_core___core__Int___Numeric__to_i(val* self) {
2957 long var /* : Int */;
2958 long var1 /* : Int */;
2959 long var2 /* : Int */;
2960 var2 = (long)(self)>>2;
2961 var1 = core___core__Int___Numeric__to_i(var2);
2962 var = var1;
2963 RET_LABEL:;
2964 return var;
2965 }
2966 /* method kernel#Int#to_f for (self: Int): Float */
2967 double core___core__Int___Numeric__to_f(long self) {
2968 double var /* : Float */;
2969 double var1 /* : Float */;
2970 var1 = (double)self;
2971 var = var1;
2972 goto RET_LABEL;
2973 RET_LABEL:;
2974 return var;
2975 }
2976 /* method kernel#Int#to_f for (self: Numeric): Float */
2977 double VIRTUAL_core___core__Int___Numeric__to_f(val* self) {
2978 double var /* : Float */;
2979 double var1 /* : Float */;
2980 long var3 /* : Int */;
2981 double var4 /* : Float */;
2982 { /* Inline kernel#Int#to_f (self) on <self:Numeric(Int)> */
2983 var3 = (long)(self)>>2;
2984 var4 = (double)var3;
2985 var1 = var4;
2986 goto RET_LABEL2;
2987 RET_LABEL2:(void)0;
2988 }
2989 var = var1;
2990 RET_LABEL:;
2991 return var;
2992 }
2993 /* method kernel#Int#to_b for (self: Int): Byte */
2994 unsigned char core___core__Int___Numeric__to_b(long self) {
2995 unsigned char var /* : Byte */;
2996 unsigned char var1 /* : Byte */;
2997 var1 = (unsigned char)self;
2998 var = var1;
2999 goto RET_LABEL;
3000 RET_LABEL:;
3001 return var;
3002 }
3003 /* method kernel#Int#to_b for (self: Numeric): Byte */
3004 unsigned char VIRTUAL_core___core__Int___Numeric__to_b(val* self) {
3005 unsigned char var /* : Byte */;
3006 unsigned char var1 /* : Byte */;
3007 long var3 /* : Int */;
3008 unsigned char var4 /* : Byte */;
3009 { /* Inline kernel#Int#to_b (self) on <self:Numeric(Int)> */
3010 var3 = (long)(self)>>2;
3011 var4 = (unsigned char)var3;
3012 var1 = var4;
3013 goto RET_LABEL2;
3014 RET_LABEL2:(void)0;
3015 }
3016 var = var1;
3017 RET_LABEL:;
3018 return var;
3019 }
3020 /* method kernel#Int#distance for (self: Int, Int): Int */
3021 long core___core__Int___Discrete__distance(long self, long p0) {
3022 long var /* : Int */;
3023 short int var1 /* : Bool */;
3024 int cltype;
3025 int idtype;
3026 const char* var_class_name;
3027 long var_i /* var i: Int */;
3028 long var2 /* : Int */;
3029 short int var4 /* : Bool */;
3030 int cltype5;
3031 int idtype6;
3032 const char* var_class_name7;
3033 long var8 /* : Int */;
3034 long var_d /* var d: Int */;
3035 short int var9 /* : Bool */;
3036 short int var11 /* : Bool */;
3037 int cltype12;
3038 int idtype13;
3039 const char* var_class_name14;
3040 short int var15 /* : Bool */;
3041 long var16 /* : Int */;
3042 long var18 /* : Int */;
3043 /* Covariant cast for argument 0 (i) <p0:Int> isa OTHER */
3044 /* <p0:Int> isa OTHER */
3045 var1 = 1; /* easy <p0:Int> isa OTHER*/
3046 if (unlikely(!var1)) {
3047 var_class_name = type_core__Int.name;
3048 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3049 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 767);
3050 fatal_exit(1);
3051 }
3052 var_i = p0;
3053 {
3054 { /* Inline kernel#Int#- (self,var_i) on <self:Int> */
3055 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
3056 /* <var_i:Int> isa OTHER */
3057 var4 = 1; /* easy <var_i:Int> isa OTHER*/
3058 if (unlikely(!var4)) {
3059 var_class_name7 = type_core__Int.name;
3060 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
3061 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
3062 fatal_exit(1);
3063 }
3064 var8 = self - var_i;
3065 var2 = var8;
3066 goto RET_LABEL3;
3067 RET_LABEL3:(void)0;
3068 }
3069 }
3070 var_d = var2;
3071 {
3072 { /* Inline kernel#Int#>= (var_d,0l) on <var_d:Int> */
3073 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3074 /* <0l:Int> isa OTHER */
3075 var11 = 1; /* easy <0l:Int> isa OTHER*/
3076 if (unlikely(!var11)) {
3077 var_class_name14 = type_core__Int.name;
3078 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
3079 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
3080 fatal_exit(1);
3081 }
3082 var15 = var_d >= 0l;
3083 var9 = var15;
3084 goto RET_LABEL10;
3085 RET_LABEL10:(void)0;
3086 }
3087 }
3088 if (var9){
3089 var = var_d;
3090 goto RET_LABEL;
3091 } else {
3092 {
3093 { /* Inline kernel#Int#unary - (var_d) on <var_d:Int> */
3094 var18 = -var_d;
3095 var16 = var18;
3096 goto RET_LABEL17;
3097 RET_LABEL17:(void)0;
3098 }
3099 }
3100 var = var16;
3101 goto RET_LABEL;
3102 }
3103 RET_LABEL:;
3104 return var;
3105 }
3106 /* method kernel#Int#distance for (self: Discrete, Discrete): Int */
3107 long VIRTUAL_core___core__Int___Discrete__distance(val* self, val* p0) {
3108 long var /* : Int */;
3109 long var1 /* : Int */;
3110 long var2 /* : Int */;
3111 long var3 /* : Int */;
3112 var2 = (long)(self)>>2;
3113 var3 = (long)(p0)>>2;
3114 var1 = core___core__Int___Discrete__distance(var2, var3);
3115 var = var1;
3116 RET_LABEL:;
3117 return var;
3118 }
3119 /* method kernel#Int#<=> for (self: Int, Int): Int */
3120 long core___core__Int___Comparable___60d_61d_62d(long self, long p0) {
3121 long var /* : Int */;
3122 short int var1 /* : Bool */;
3123 int cltype;
3124 int idtype;
3125 const char* var_class_name;
3126 long var_other /* var other: Int */;
3127 short int var2 /* : Bool */;
3128 short int var4 /* : Bool */;
3129 int cltype5;
3130 int idtype6;
3131 const char* var_class_name7;
3132 short int var8 /* : Bool */;
3133 long var9 /* : Int */;
3134 long var11 /* : Int */;
3135 short int var12 /* : Bool */;
3136 short int var14 /* : Bool */;
3137 int cltype15;
3138 int idtype16;
3139 const char* var_class_name17;
3140 short int var18 /* : Bool */;
3141 /* Covariant cast for argument 0 (other) <p0:Int> isa OTHER */
3142 /* <p0:Int> isa OTHER */
3143 var1 = 1; /* easy <p0:Int> isa OTHER*/
3144 if (unlikely(!var1)) {
3145 var_class_name = type_core__Int.name;
3146 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3147 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 777);
3148 fatal_exit(1);
3149 }
3150 var_other = p0;
3151 {
3152 { /* Inline kernel#Int#< (self,var_other) on <self:Int> */
3153 /* Covariant cast for argument 0 (i) <var_other:Int> isa OTHER */
3154 /* <var_other:Int> isa OTHER */
3155 var4 = 1; /* easy <var_other:Int> isa OTHER*/
3156 if (unlikely(!var4)) {
3157 var_class_name7 = type_core__Int.name;
3158 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
3159 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3160 fatal_exit(1);
3161 }
3162 var8 = self < var_other;
3163 var2 = var8;
3164 goto RET_LABEL3;
3165 RET_LABEL3:(void)0;
3166 }
3167 }
3168 if (var2){
3169 {
3170 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
3171 var11 = -1l;
3172 var9 = var11;
3173 goto RET_LABEL10;
3174 RET_LABEL10:(void)0;
3175 }
3176 }
3177 var = var9;
3178 goto RET_LABEL;
3179 } else {
3180 {
3181 { /* Inline kernel#Int#< (var_other,self) on <var_other:Int> */
3182 /* Covariant cast for argument 0 (i) <self:Int> isa OTHER */
3183 /* <self:Int> isa OTHER */
3184 var14 = 1; /* easy <self:Int> isa OTHER*/
3185 if (unlikely(!var14)) {
3186 var_class_name17 = type_core__Int.name;
3187 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
3188 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3189 fatal_exit(1);
3190 }
3191 var18 = var_other < self;
3192 var12 = var18;
3193 goto RET_LABEL13;
3194 RET_LABEL13:(void)0;
3195 }
3196 }
3197 if (var12){
3198 var = 1l;
3199 goto RET_LABEL;
3200 } else {
3201 var = 0l;
3202 goto RET_LABEL;
3203 }
3204 }
3205 RET_LABEL:;
3206 return var;
3207 }
3208 /* method kernel#Int#<=> for (self: Comparable, Comparable): Int */
3209 long VIRTUAL_core___core__Int___Comparable___60d_61d_62d(val* self, val* p0) {
3210 long var /* : Int */;
3211 long var1 /* : Int */;
3212 long var2 /* : Int */;
3213 long var3 /* : Int */;
3214 var2 = (long)(self)>>2;
3215 var3 = (long)(p0)>>2;
3216 var1 = core___core__Int___Comparable___60d_61d_62d(var2, var3);
3217 var = var1;
3218 RET_LABEL:;
3219 return var;
3220 }
3221 /* method kernel#Int#code_point for (self: Int): Char */
3222 uint32_t core___core__Int___code_point(long self) {
3223 uint32_t var /* : Char */;
3224 uint32_t var1 /* : Char */;
3225 var1 = (uint32_t)self;
3226 var = var1;
3227 goto RET_LABEL;
3228 RET_LABEL:;
3229 return var;
3230 }
3231 /* method kernel#Int#cp for (self: Int): Char */
3232 uint32_t core___core__Int___cp(long self) {
3233 uint32_t var /* : Char */;
3234 uint32_t var1 /* : Char */;
3235 var1 = kernel___Int_cp___impl(self);
3236 var = var1;
3237 goto RET_LABEL;
3238 RET_LABEL:;
3239 return var;
3240 }
3241 /* method kernel#Int#digit_count for (self: Int, Int): Int */
3242 long core___core__Int___digit_count(long self, long p0) {
3243 long var /* : Int */;
3244 long var_b /* var b: Int */;
3245 short int var1 /* : Bool */;
3246 short int var3 /* : Bool */;
3247 long var4 /* : Int */;
3248 short int var5 /* : Bool */;
3249 short int var7 /* : Bool */;
3250 int cltype;
3251 int idtype;
3252 const char* var_class_name;
3253 short int var8 /* : Bool */;
3254 long var_d /* var d: Int */;
3255 long var9 /* : Int */;
3256 long var11 /* : Int */;
3257 long var_n /* var n: Int */;
3258 short int var12 /* : Bool */;
3259 short int var14 /* : Bool */;
3260 short int var15 /* : Bool */;
3261 short int var17 /* : Bool */;
3262 int cltype18;
3263 int idtype19;
3264 const char* var_class_name20;
3265 short int var21 /* : Bool */;
3266 long var22 /* : Int */;
3267 short int var24 /* : Bool */;
3268 int cltype25;
3269 int idtype26;
3270 const char* var_class_name27;
3271 long var28 /* : Int */;
3272 long var29 /* : Int */;
3273 short int var31 /* : Bool */;
3274 int cltype32;
3275 int idtype33;
3276 const char* var_class_name34;
3277 long var35 /* : Int */;
3278 var_b = p0;
3279 {
3280 { /* Inline kernel#Int#== (var_b,10l) on <var_b:Int> */
3281 var3 = var_b == 10l;
3282 var1 = var3;
3283 goto RET_LABEL2;
3284 RET_LABEL2:(void)0;
3285 }
3286 }
3287 if (var1){
3288 {
3289 var4 = core___core__Int___digit_count_base_95d10(self);
3290 }
3291 var = var4;
3292 goto RET_LABEL;
3293 } else {
3294 }
3295 {
3296 { /* Inline kernel#Int#< (self,0l) on <self:Int> */
3297 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3298 /* <0l:Int> isa OTHER */
3299 var7 = 1; /* easy <0l:Int> isa OTHER*/
3300 if (unlikely(!var7)) {
3301 var_class_name = type_core__Int.name;
3302 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3303 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3304 fatal_exit(1);
3305 }
3306 var8 = self < 0l;
3307 var5 = var8;
3308 goto RET_LABEL6;
3309 RET_LABEL6:(void)0;
3310 }
3311 }
3312 if (var5){
3313 var_d = 1l;
3314 {
3315 { /* Inline kernel#Int#unary - (self) on <self:Int> */
3316 var11 = -self;
3317 var9 = var11;
3318 goto RET_LABEL10;
3319 RET_LABEL10:(void)0;
3320 }
3321 }
3322 var_n = var9;
3323 } else {
3324 {
3325 { /* Inline kernel#Int#== (self,0l) on <self:Int> */
3326 var14 = self == 0l;
3327 var12 = var14;
3328 goto RET_LABEL13;
3329 RET_LABEL13:(void)0;
3330 }
3331 }
3332 if (var12){
3333 var = 1l;
3334 goto RET_LABEL;
3335 } else {
3336 var_d = 0l;
3337 var_n = self;
3338 }
3339 }
3340 for(;;) {
3341 {
3342 { /* Inline kernel#Int#> (var_n,0l) on <var_n:Int> */
3343 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3344 /* <0l:Int> isa OTHER */
3345 var17 = 1; /* easy <0l:Int> isa OTHER*/
3346 if (unlikely(!var17)) {
3347 var_class_name20 = type_core__Int.name;
3348 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
3349 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
3350 fatal_exit(1);
3351 }
3352 var21 = var_n > 0l;
3353 var15 = var21;
3354 goto RET_LABEL16;
3355 RET_LABEL16:(void)0;
3356 }
3357 }
3358 if (var15){
3359 {
3360 { /* Inline kernel#Int#+ (var_d,1l) on <var_d:Int> */
3361 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3362 /* <1l:Int> isa OTHER */
3363 var24 = 1; /* easy <1l:Int> isa OTHER*/
3364 if (unlikely(!var24)) {
3365 var_class_name27 = type_core__Int.name;
3366 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
3367 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3368 fatal_exit(1);
3369 }
3370 var28 = var_d + 1l;
3371 var22 = var28;
3372 goto RET_LABEL23;
3373 RET_LABEL23:(void)0;
3374 }
3375 }
3376 var_d = var22;
3377 {
3378 { /* Inline kernel#Int#/ (var_n,var_b) on <var_n:Int> */
3379 /* Covariant cast for argument 0 (i) <var_b:Int> isa OTHER */
3380 /* <var_b:Int> isa OTHER */
3381 var31 = 1; /* easy <var_b:Int> isa OTHER*/
3382 if (unlikely(!var31)) {
3383 var_class_name34 = type_core__Int.name;
3384 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
3385 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 736);
3386 fatal_exit(1);
3387 }
3388 var35 = var_n / var_b;
3389 var29 = var35;
3390 goto RET_LABEL30;
3391 RET_LABEL30:(void)0;
3392 }
3393 }
3394 var_n = var29;
3395 } else {
3396 goto BREAK_label;
3397 }
3398 }
3399 BREAK_label: (void)0;
3400 var = var_d;
3401 goto RET_LABEL;
3402 RET_LABEL:;
3403 return var;
3404 }
3405 /* method kernel#Int#digit_count_base_10 for (self: Int): Int */
3406 long core___core__Int___digit_count_base_95d10(long self) {
3407 long var /* : Int */;
3408 short int var1 /* : Bool */;
3409 short int var3 /* : Bool */;
3410 int cltype;
3411 int idtype;
3412 const char* var_class_name;
3413 short int var4 /* : Bool */;
3414 long var_result /* var result: Int */;
3415 long var5 /* : Int */;
3416 long var7 /* : Int */;
3417 long var_val /* var val: Int */;
3418 short int var8 /* : Bool */;
3419 short int var10 /* : Bool */;
3420 int cltype11;
3421 int idtype12;
3422 const char* var_class_name13;
3423 short int var14 /* : Bool */;
3424 short int var15 /* : Bool */;
3425 short int var17 /* : Bool */;
3426 int cltype18;
3427 int idtype19;
3428 const char* var_class_name20;
3429 short int var21 /* : Bool */;
3430 long var22 /* : Int */;
3431 short int var24 /* : Bool */;
3432 int cltype25;
3433 int idtype26;
3434 const char* var_class_name27;
3435 long var28 /* : Int */;
3436 short int var29 /* : Bool */;
3437 short int var31 /* : Bool */;
3438 int cltype32;
3439 int idtype33;
3440 const char* var_class_name34;
3441 short int var35 /* : Bool */;
3442 long var36 /* : Int */;
3443 short int var38 /* : Bool */;
3444 int cltype39;
3445 int idtype40;
3446 const char* var_class_name41;
3447 long var42 /* : Int */;
3448 short int var43 /* : Bool */;
3449 short int var45 /* : Bool */;
3450 int cltype46;
3451 int idtype47;
3452 const char* var_class_name48;
3453 short int var49 /* : Bool */;
3454 long var50 /* : Int */;
3455 short int var52 /* : Bool */;
3456 int cltype53;
3457 int idtype54;
3458 const char* var_class_name55;
3459 long var56 /* : Int */;
3460 long var57 /* : Int */;
3461 short int var59 /* : Bool */;
3462 int cltype60;
3463 int idtype61;
3464 const char* var_class_name62;
3465 long var63 /* : Int */;
3466 long var64 /* : Int */;
3467 short int var66 /* : Bool */;
3468 int cltype67;
3469 int idtype68;
3470 const char* var_class_name69;
3471 long var70 /* : Int */;
3472 {
3473 { /* Inline kernel#Int#< (self,0l) on <self:Int> */
3474 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3475 /* <0l:Int> isa OTHER */
3476 var3 = 1; /* easy <0l:Int> isa OTHER*/
3477 if (unlikely(!var3)) {
3478 var_class_name = type_core__Int.name;
3479 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3480 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3481 fatal_exit(1);
3482 }
3483 var4 = self < 0l;
3484 var1 = var4;
3485 goto RET_LABEL2;
3486 RET_LABEL2:(void)0;
3487 }
3488 }
3489 if (var1){
3490 var_result = 2l;
3491 {
3492 { /* Inline kernel#Int#unary - (self) on <self:Int> */
3493 var7 = -self;
3494 var5 = var7;
3495 goto RET_LABEL6;
3496 RET_LABEL6:(void)0;
3497 }
3498 }
3499 var_val = var5;
3500 } else {
3501 var_result = 1l;
3502 var_val = self;
3503 }
3504 for(;;) {
3505 {
3506 { /* Inline kernel#Int#< (var_val,10l) on <var_val:Int> */
3507 /* Covariant cast for argument 0 (i) <10l:Int> isa OTHER */
3508 /* <10l:Int> isa OTHER */
3509 var10 = 1; /* easy <10l:Int> isa OTHER*/
3510 if (unlikely(!var10)) {
3511 var_class_name13 = type_core__Int.name;
3512 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
3513 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3514 fatal_exit(1);
3515 }
3516 var14 = var_val < 10l;
3517 var8 = var14;
3518 goto RET_LABEL9;
3519 RET_LABEL9:(void)0;
3520 }
3521 }
3522 if (var8){
3523 var = var_result;
3524 goto RET_LABEL;
3525 } else {
3526 }
3527 {
3528 { /* Inline kernel#Int#< (var_val,100l) on <var_val:Int> */
3529 /* Covariant cast for argument 0 (i) <100l:Int> isa OTHER */
3530 /* <100l:Int> isa OTHER */
3531 var17 = 1; /* easy <100l:Int> isa OTHER*/
3532 if (unlikely(!var17)) {
3533 var_class_name20 = type_core__Int.name;
3534 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
3535 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3536 fatal_exit(1);
3537 }
3538 var21 = var_val < 100l;
3539 var15 = var21;
3540 goto RET_LABEL16;
3541 RET_LABEL16:(void)0;
3542 }
3543 }
3544 if (var15){
3545 {
3546 { /* Inline kernel#Int#+ (var_result,1l) on <var_result:Int> */
3547 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3548 /* <1l:Int> isa OTHER */
3549 var24 = 1; /* easy <1l:Int> isa OTHER*/
3550 if (unlikely(!var24)) {
3551 var_class_name27 = type_core__Int.name;
3552 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
3553 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3554 fatal_exit(1);
3555 }
3556 var28 = var_result + 1l;
3557 var22 = var28;
3558 goto RET_LABEL23;
3559 RET_LABEL23:(void)0;
3560 }
3561 }
3562 var = var22;
3563 goto RET_LABEL;
3564 } else {
3565 }
3566 {
3567 { /* Inline kernel#Int#< (var_val,1000l) on <var_val:Int> */
3568 /* Covariant cast for argument 0 (i) <1000l:Int> isa OTHER */
3569 /* <1000l:Int> isa OTHER */
3570 var31 = 1; /* easy <1000l:Int> isa OTHER*/
3571 if (unlikely(!var31)) {
3572 var_class_name34 = type_core__Int.name;
3573 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
3574 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3575 fatal_exit(1);
3576 }
3577 var35 = var_val < 1000l;
3578 var29 = var35;
3579 goto RET_LABEL30;
3580 RET_LABEL30:(void)0;
3581 }
3582 }
3583 if (var29){
3584 {
3585 { /* Inline kernel#Int#+ (var_result,2l) on <var_result:Int> */
3586 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
3587 /* <2l:Int> isa OTHER */
3588 var38 = 1; /* easy <2l:Int> isa OTHER*/
3589 if (unlikely(!var38)) {
3590 var_class_name41 = type_core__Int.name;
3591 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
3592 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3593 fatal_exit(1);
3594 }
3595 var42 = var_result + 2l;
3596 var36 = var42;
3597 goto RET_LABEL37;
3598 RET_LABEL37:(void)0;
3599 }
3600 }
3601 var = var36;
3602 goto RET_LABEL;
3603 } else {
3604 }
3605 {
3606 { /* Inline kernel#Int#< (var_val,10000l) on <var_val:Int> */
3607 /* Covariant cast for argument 0 (i) <10000l:Int> isa OTHER */
3608 /* <10000l:Int> isa OTHER */
3609 var45 = 1; /* easy <10000l:Int> isa OTHER*/
3610 if (unlikely(!var45)) {
3611 var_class_name48 = type_core__Int.name;
3612 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
3613 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3614 fatal_exit(1);
3615 }
3616 var49 = var_val < 10000l;
3617 var43 = var49;
3618 goto RET_LABEL44;
3619 RET_LABEL44:(void)0;
3620 }
3621 }
3622 if (var43){
3623 {
3624 { /* Inline kernel#Int#+ (var_result,3l) on <var_result:Int> */
3625 /* Covariant cast for argument 0 (i) <3l:Int> isa OTHER */
3626 /* <3l:Int> isa OTHER */
3627 var52 = 1; /* easy <3l:Int> isa OTHER*/
3628 if (unlikely(!var52)) {
3629 var_class_name55 = type_core__Int.name;
3630 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55);
3631 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3632 fatal_exit(1);
3633 }
3634 var56 = var_result + 3l;
3635 var50 = var56;
3636 goto RET_LABEL51;
3637 RET_LABEL51:(void)0;
3638 }
3639 }
3640 var = var50;
3641 goto RET_LABEL;
3642 } else {
3643 }
3644 {
3645 { /* Inline kernel#Int#/ (var_val,10000l) on <var_val:Int> */
3646 /* Covariant cast for argument 0 (i) <10000l:Int> isa OTHER */
3647 /* <10000l:Int> isa OTHER */
3648 var59 = 1; /* easy <10000l:Int> isa OTHER*/
3649 if (unlikely(!var59)) {
3650 var_class_name62 = type_core__Int.name;
3651 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name62);
3652 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 736);
3653 fatal_exit(1);
3654 }
3655 var63 = var_val / 10000l;
3656 var57 = var63;
3657 goto RET_LABEL58;
3658 RET_LABEL58:(void)0;
3659 }
3660 }
3661 var_val = var57;
3662 {
3663 { /* Inline kernel#Int#+ (var_result,4l) on <var_result:Int> */
3664 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
3665 /* <4l:Int> isa OTHER */
3666 var66 = 1; /* easy <4l:Int> isa OTHER*/
3667 if (unlikely(!var66)) {
3668 var_class_name69 = type_core__Int.name;
3669 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name69);
3670 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3671 fatal_exit(1);
3672 }
3673 var70 = var_result + 4l;
3674 var64 = var70;
3675 goto RET_LABEL65;
3676 RET_LABEL65:(void)0;
3677 }
3678 }
3679 var_result = var64;
3680 }
3681 RET_LABEL:;
3682 return var;
3683 }
3684 /* method kernel#Int#to_c for (self: Int): Char */
3685 uint32_t core___core__Int___to_c(long self) {
3686 uint32_t var /* : Char */;
3687 short int var1 /* : Bool */;
3688 short int var2 /* : Bool */;
3689 short int var4 /* : Bool */;
3690 int cltype;
3691 int idtype;
3692 const char* var_class_name;
3693 short int var5 /* : Bool */;
3694 short int var_ /* var : Bool */;
3695 short int var6 /* : Bool */;
3696 short int var8 /* : Bool */;
3697 int cltype9;
3698 int idtype10;
3699 const char* var_class_name11;
3700 short int var12 /* : Bool */;
3701 short int var13 /* : Bool */;
3702 short int var15 /* : Bool */;
3703 int cltype16;
3704 int idtype17;
3705 const char* var_class_name18;
3706 short int var19 /* : Bool */;
3707 long var20 /* : Int */;
3708 long var22 /* : Int */;
3709 long var23 /* : Int */;
3710 short int var25 /* : Bool */;
3711 int cltype26;
3712 int idtype27;
3713 const char* var_class_name28;
3714 long var29 /* : Int */;
3715 uint32_t var30 /* : Char */;
3716 uint32_t var32 /* : Char */;
3717 long var33 /* : Int */;
3718 short int var35 /* : Bool */;
3719 int cltype36;
3720 int idtype37;
3721 const char* var_class_name38;
3722 long var39 /* : Int */;
3723 long var40 /* : Int */;
3724 long var42 /* : Int */;
3725 long var43 /* : Int */;
3726 short int var45 /* : Bool */;
3727 int cltype46;
3728 int idtype47;
3729 const char* var_class_name48;
3730 long var49 /* : Int */;
3731 uint32_t var50 /* : Char */;
3732 uint32_t var52 /* : Char */;
3733 {
3734 { /* Inline kernel#Int#>= (self,0l) on <self:Int> */
3735 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3736 /* <0l:Int> isa OTHER */
3737 var4 = 1; /* easy <0l:Int> isa OTHER*/
3738 if (unlikely(!var4)) {
3739 var_class_name = type_core__Int.name;
3740 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3741 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
3742 fatal_exit(1);
3743 }
3744 var5 = self >= 0l;
3745 var2 = var5;
3746 goto RET_LABEL3;
3747 RET_LABEL3:(void)0;
3748 }
3749 }
3750 var_ = var2;
3751 if (var2){
3752 {
3753 { /* Inline kernel#Int#<= (self,36l) on <self:Int> */
3754 /* Covariant cast for argument 0 (i) <36l:Int> isa OTHER */
3755 /* <36l:Int> isa OTHER */
3756 var8 = 1; /* easy <36l:Int> isa OTHER*/
3757 if (unlikely(!var8)) {
3758 var_class_name11 = type_core__Int.name;
3759 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
3760 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
3761 fatal_exit(1);
3762 }
3763 var12 = self <= 36l;
3764 var6 = var12;
3765 goto RET_LABEL7;
3766 RET_LABEL7:(void)0;
3767 }
3768 }
3769 var1 = var6;
3770 } else {
3771 var1 = var_;
3772 }
3773 if (unlikely(!var1)) {
3774 PRINT_ERROR("Runtime error: %s", "Assert failed");
3775 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 880);
3776 fatal_exit(1);
3777 }
3778 {
3779 { /* Inline kernel#Int#< (self,10l) on <self:Int> */
3780 /* Covariant cast for argument 0 (i) <10l:Int> isa OTHER */
3781 /* <10l:Int> isa OTHER */
3782 var15 = 1; /* easy <10l:Int> isa OTHER*/
3783 if (unlikely(!var15)) {
3784 var_class_name18 = type_core__Int.name;
3785 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
3786 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3787 fatal_exit(1);
3788 }
3789 var19 = self < 10l;
3790 var13 = var19;
3791 goto RET_LABEL14;
3792 RET_LABEL14:(void)0;
3793 }
3794 }
3795 if (var13){
3796 {
3797 { /* Inline kernel#Char#code_point ('0') on <'0':Char> */
3798 var22 = (long)'0';
3799 var20 = var22;
3800 goto RET_LABEL21;
3801 RET_LABEL21:(void)0;
3802 }
3803 }
3804 {
3805 { /* Inline kernel#Int#+ (self,var20) on <self:Int> */
3806 /* Covariant cast for argument 0 (i) <var20:Int> isa OTHER */
3807 /* <var20:Int> isa OTHER */
3808 var25 = 1; /* easy <var20:Int> isa OTHER*/
3809 if (unlikely(!var25)) {
3810 var_class_name28 = type_core__Int.name;
3811 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
3812 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3813 fatal_exit(1);
3814 }
3815 var29 = self + var20;
3816 var23 = var29;
3817 goto RET_LABEL24;
3818 RET_LABEL24:(void)0;
3819 }
3820 }
3821 {
3822 { /* Inline kernel#Int#code_point (var23) on <var23:Int> */
3823 var32 = (uint32_t)var23;
3824 var30 = var32;
3825 goto RET_LABEL31;
3826 RET_LABEL31:(void)0;
3827 }
3828 }
3829 var = var30;
3830 goto RET_LABEL;
3831 } else {
3832 {
3833 { /* Inline kernel#Int#- (self,10l) on <self:Int> */
3834 /* Covariant cast for argument 0 (i) <10l:Int> isa OTHER */
3835 /* <10l:Int> isa OTHER */
3836 var35 = 1; /* easy <10l:Int> isa OTHER*/
3837 if (unlikely(!var35)) {
3838 var_class_name38 = type_core__Int.name;
3839 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name38);
3840 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
3841 fatal_exit(1);
3842 }
3843 var39 = self - 10l;
3844 var33 = var39;
3845 goto RET_LABEL34;
3846 RET_LABEL34:(void)0;
3847 }
3848 }
3849 {
3850 { /* Inline kernel#Char#code_point ('a') on <'a':Char> */
3851 var42 = (long)'a';
3852 var40 = var42;
3853 goto RET_LABEL41;
3854 RET_LABEL41:(void)0;
3855 }
3856 }
3857 {
3858 { /* Inline kernel#Int#+ (var33,var40) on <var33:Int> */
3859 /* Covariant cast for argument 0 (i) <var40:Int> isa OTHER */
3860 /* <var40:Int> isa OTHER */
3861 var45 = 1; /* easy <var40:Int> isa OTHER*/
3862 if (unlikely(!var45)) {
3863 var_class_name48 = type_core__Int.name;
3864 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
3865 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3866 fatal_exit(1);
3867 }
3868 var49 = var33 + var40;
3869 var43 = var49;
3870 goto RET_LABEL44;
3871 RET_LABEL44:(void)0;
3872 }
3873 }
3874 {
3875 { /* Inline kernel#Int#code_point (var43) on <var43:Int> */
3876 var52 = (uint32_t)var43;
3877 var50 = var52;
3878 goto RET_LABEL51;
3879 RET_LABEL51:(void)0;
3880 }
3881 }
3882 var = var50;
3883 goto RET_LABEL;
3884 }
3885 RET_LABEL:;
3886 return var;
3887 }
3888 /* method kernel#Int#abs for (self: Int): Int */
3889 long core___core__Int___abs(long self) {
3890 long var /* : Int */;
3891 long var1 /* : Int */;
3892 short int var2 /* : Bool */;
3893 short int var4 /* : Bool */;
3894 int cltype;
3895 int idtype;
3896 const char* var_class_name;
3897 short int var5 /* : Bool */;
3898 long var6 /* : Int */;
3899 long var8 /* : Int */;
3900 {
3901 { /* Inline kernel#Int#>= (self,0l) on <self:Int> */
3902 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3903 /* <0l:Int> isa OTHER */
3904 var4 = 1; /* easy <0l:Int> isa OTHER*/
3905 if (unlikely(!var4)) {
3906 var_class_name = type_core__Int.name;
3907 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3908 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
3909 fatal_exit(1);
3910 }
3911 var5 = self >= 0l;
3912 var2 = var5;
3913 goto RET_LABEL3;
3914 RET_LABEL3:(void)0;
3915 }
3916 }
3917 if (var2){
3918 var1 = self;
3919 } else {
3920 {
3921 { /* Inline kernel#Int#unary - (self) on <self:Int> */
3922 var8 = -self;
3923 var6 = var8;
3924 goto RET_LABEL7;
3925 RET_LABEL7:(void)0;
3926 }
3927 }
3928 var1 = var6;
3929 }
3930 var = var1;
3931 goto RET_LABEL;
3932 RET_LABEL:;
3933 return var;
3934 }
3935 /* method kernel#Char#object_id for (self: Char): Int */
3936 long core___core__Char___Object__object_id(uint32_t self) {
3937 long var /* : Int */;
3938 long var1 /* : Int */;
3939 var1 = (long)self;
3940 var = var1;
3941 goto RET_LABEL;
3942 RET_LABEL:;
3943 return var;
3944 }
3945 /* method kernel#Char#object_id for (self: Object): Int */
3946 long VIRTUAL_core___core__Char___Object__object_id(val* self) {
3947 long var /* : Int */;
3948 long var1 /* : Int */;
3949 uint32_t var3 /* : Char */;
3950 long var4 /* : Int */;
3951 { /* Inline kernel#Char#object_id (self) on <self:Object(Char)> */
3952 var3 = (uint32_t)((long)(self)>>2);
3953 var4 = (long)var3;
3954 var1 = var4;
3955 goto RET_LABEL2;
3956 RET_LABEL2:(void)0;
3957 }
3958 var = var1;
3959 RET_LABEL:;
3960 return var;
3961 }
3962 /* method kernel#Char#hash for (self: Char): Int */
3963 long core___core__Char___Object__hash(uint32_t self) {
3964 long var /* : Int */;
3965 long var1 /* : Int */;
3966 long var3 /* : Int */;
3967 {
3968 { /* Inline kernel#Char#code_point (self) on <self:Char> */
3969 var3 = (long)self;
3970 var1 = var3;
3971 goto RET_LABEL2;
3972 RET_LABEL2:(void)0;
3973 }
3974 }
3975 var = var1;
3976 goto RET_LABEL;
3977 RET_LABEL:;
3978 return var;
3979 }
3980 /* method kernel#Char#hash for (self: Object): Int */
3981 long VIRTUAL_core___core__Char___Object__hash(val* self) {
3982 long var /* : Int */;
3983 long var1 /* : Int */;
3984 uint32_t var2 /* : Char */;
3985 var2 = (uint32_t)((long)(self)>>2);
3986 var1 = core___core__Char___Object__hash(var2);
3987 var = var1;
3988 RET_LABEL:;
3989 return var;
3990 }
3991 /* method kernel#Char#== for (self: Char, nullable Object): Bool */
3992 short int core___core__Char___Object___61d_61d(uint32_t self, val* p0) {
3993 short int var /* : Bool */;
3994 short int var1 /* : Bool */;
3995 uint32_t var2 /* : Char */;
3996 if ((p0 != NULL) && (((long)p0&3) == 2)) {
3997 var2 = (uint32_t)((long)(p0)>>2);
3998 var1 = var2 == self;
3999 } else var1 = 0;
4000 var = var1;
4001 goto RET_LABEL;
4002 RET_LABEL:;
4003 return var;
4004 }
4005 /* method kernel#Char#== for (self: Object, nullable Object): Bool */
4006 short int VIRTUAL_core___core__Char___Object___61d_61d(val* self, val* p0) {
4007 short int var /* : Bool */;
4008 short int var1 /* : Bool */;
4009 short int var3 /* : Bool */;
4010 { /* Inline kernel#Char#== (self,p0) on <self:Object(Char)> */
4011 var3 = self == p0;
4012 var1 = var3;
4013 goto RET_LABEL2;
4014 RET_LABEL2:(void)0;
4015 }
4016 var = var1;
4017 RET_LABEL:;
4018 return var;
4019 }
4020 /* method kernel#Char#!= for (self: Char, nullable Object): Bool */
4021 short int core___core__Char___Object___33d_61d(uint32_t self, val* p0) {
4022 short int var /* : Bool */;
4023 short int var1 /* : Bool */;
4024 uint32_t var2 /* : Char */;
4025 short int var3 /* : Bool */;
4026 if ((p0 != NULL) && (((long)p0&3) == 2)) {
4027 var2 = (uint32_t)((long)(p0)>>2);
4028 var1 = var2 == self;
4029 } else var1 = 0;
4030 var3 = !var1;
4031 var = var3;
4032 goto RET_LABEL;
4033 RET_LABEL:;
4034 return var;
4035 }
4036 /* method kernel#Char#!= for (self: Object, nullable Object): Bool */
4037 short int VIRTUAL_core___core__Char___Object___33d_61d(val* self, val* p0) {
4038 short int var /* : Bool */;
4039 short int var1 /* : Bool */;
4040 short int var3 /* : Bool */;
4041 short int var4 /* : Bool */;
4042 { /* Inline kernel#Char#!= (self,p0) on <self:Object(Char)> */
4043 var3 = self == p0;
4044 var4 = !var3;
4045 var1 = var4;
4046 goto RET_LABEL2;
4047 RET_LABEL2:(void)0;
4048 }
4049 var = var1;
4050 RET_LABEL:;
4051 return var;
4052 }
4053 /* method kernel#Char#<= for (self: Char, Char): Bool */
4054 short int core___core__Char___Comparable___60d_61d(uint32_t self, uint32_t p0) {
4055 short int var /* : Bool */;
4056 short int var1 /* : Bool */;
4057 int cltype;
4058 int idtype;
4059 const char* var_class_name;
4060 short int var2 /* : Bool */;
4061 /* Covariant cast for argument 0 (i) <p0:Char> isa OTHER */
4062 /* <p0:Char> isa OTHER */
4063 var1 = 1; /* easy <p0:Char> isa OTHER*/
4064 if (unlikely(!var1)) {
4065 var_class_name = type_core__Char.name;
4066 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4067 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
4068 fatal_exit(1);
4069 }
4070 var2 = self <= p0;
4071 var = var2;
4072 goto RET_LABEL;
4073 RET_LABEL:;
4074 return var;
4075 }
4076 /* method kernel#Char#<= for (self: Comparable, Comparable): Bool */
4077 short int VIRTUAL_core___core__Char___Comparable___60d_61d(val* self, val* p0) {
4078 short int var /* : Bool */;
4079 short int var1 /* : Bool */;
4080 short int var3 /* : Bool */;
4081 int cltype;
4082 int idtype;
4083 const struct type* type_struct;
4084 const char* var_class_name;
4085 uint32_t var4 /* : Char */;
4086 uint32_t var5 /* : Char */;
4087 short int var6 /* : Bool */;
4088 { /* Inline kernel#Char#<= (self,p0) on <self:Comparable(Char)> */
4089 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
4090 /* <p0:Comparable> isa OTHER */
4091 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
4092 cltype = type_struct->color;
4093 idtype = type_struct->id;
4094 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
4095 var3 = 0;
4096 } else {
4097 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
4098 }
4099 if (unlikely(!var3)) {
4100 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
4101 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4102 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
4103 fatal_exit(1);
4104 }
4105 var4 = (uint32_t)((long)(self)>>2);
4106 var5 = (uint32_t)((long)(p0)>>2);
4107 var6 = var4 <= var5;
4108 var1 = var6;
4109 goto RET_LABEL2;
4110 RET_LABEL2:(void)0;
4111 }
4112 var = var1;
4113 RET_LABEL:;
4114 return var;
4115 }
4116 /* method kernel#Char#< for (self: Char, Char): Bool */
4117 short int core___core__Char___Comparable___60d(uint32_t self, uint32_t p0) {
4118 short int var /* : Bool */;
4119 short int var1 /* : Bool */;
4120 int cltype;
4121 int idtype;
4122 const char* var_class_name;
4123 short int var2 /* : Bool */;
4124 /* Covariant cast for argument 0 (i) <p0:Char> isa OTHER */
4125 /* <p0:Char> isa OTHER */
4126 var1 = 1; /* easy <p0:Char> isa OTHER*/
4127 if (unlikely(!var1)) {
4128 var_class_name = type_core__Char.name;
4129 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4130 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 923);
4131 fatal_exit(1);
4132 }
4133 var2 = self < p0;
4134 var = var2;
4135 goto RET_LABEL;
4136 RET_LABEL:;
4137 return var;
4138 }
4139 /* method kernel#Char#< for (self: Comparable, Comparable): Bool */
4140 short int VIRTUAL_core___core__Char___Comparable___60d(val* self, val* p0) {
4141 short int var /* : Bool */;
4142 short int var1 /* : Bool */;
4143 short int var3 /* : Bool */;
4144 int cltype;
4145 int idtype;
4146 const struct type* type_struct;
4147 const char* var_class_name;
4148 uint32_t var4 /* : Char */;
4149 uint32_t var5 /* : Char */;
4150 short int var6 /* : Bool */;
4151 { /* Inline kernel#Char#< (self,p0) on <self:Comparable(Char)> */
4152 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
4153 /* <p0:Comparable> isa OTHER */
4154 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
4155 cltype = type_struct->color;
4156 idtype = type_struct->id;
4157 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
4158 var3 = 0;
4159 } else {
4160 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
4161 }
4162 if (unlikely(!var3)) {
4163 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
4164 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4165 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 923);
4166 fatal_exit(1);
4167 }
4168 var4 = (uint32_t)((long)(self)>>2);
4169 var5 = (uint32_t)((long)(p0)>>2);
4170 var6 = var4 < var5;
4171 var1 = var6;
4172 goto RET_LABEL2;
4173 RET_LABEL2:(void)0;
4174 }
4175 var = var1;
4176 RET_LABEL:;
4177 return var;
4178 }
4179 /* method kernel#Char#>= for (self: Char, Char): Bool */
4180 short int core___core__Char___Comparable___62d_61d(uint32_t self, uint32_t p0) {
4181 short int var /* : Bool */;
4182 short int var1 /* : Bool */;
4183 int cltype;
4184 int idtype;
4185 const char* var_class_name;
4186 short int var2 /* : Bool */;
4187 /* Covariant cast for argument 0 (i) <p0:Char> isa OTHER */
4188 /* <p0:Char> isa OTHER */
4189 var1 = 1; /* easy <p0:Char> isa OTHER*/
4190 if (unlikely(!var1)) {
4191 var_class_name = type_core__Char.name;
4192 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4193 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
4194 fatal_exit(1);
4195 }
4196 var2 = self >= p0;
4197 var = var2;
4198 goto RET_LABEL;
4199 RET_LABEL:;
4200 return var;
4201 }
4202 /* method kernel#Char#>= for (self: Comparable, Comparable): Bool */
4203 short int VIRTUAL_core___core__Char___Comparable___62d_61d(val* self, val* p0) {
4204 short int var /* : Bool */;
4205 short int var1 /* : Bool */;
4206 short int var3 /* : Bool */;
4207 int cltype;
4208 int idtype;
4209 const struct type* type_struct;
4210 const char* var_class_name;
4211 uint32_t var4 /* : Char */;
4212 uint32_t var5 /* : Char */;
4213 short int var6 /* : Bool */;
4214 { /* Inline kernel#Char#>= (self,p0) on <self:Comparable(Char)> */
4215 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
4216 /* <p0:Comparable> isa OTHER */
4217 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
4218 cltype = type_struct->color;
4219 idtype = type_struct->id;
4220 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
4221 var3 = 0;
4222 } else {
4223 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
4224 }
4225 if (unlikely(!var3)) {
4226 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
4227 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4228 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
4229 fatal_exit(1);
4230 }
4231 var4 = (uint32_t)((long)(self)>>2);
4232 var5 = (uint32_t)((long)(p0)>>2);
4233 var6 = var4 >= var5;
4234 var1 = var6;
4235 goto RET_LABEL2;
4236 RET_LABEL2:(void)0;
4237 }
4238 var = var1;
4239 RET_LABEL:;
4240 return var;
4241 }
4242 /* method kernel#Char#> for (self: Char, Char): Bool */
4243 short int core___core__Char___Comparable___62d(uint32_t self, uint32_t p0) {
4244 short int var /* : Bool */;
4245 short int var1 /* : Bool */;
4246 int cltype;
4247 int idtype;
4248 const char* var_class_name;
4249 short int var2 /* : Bool */;
4250 /* Covariant cast for argument 0 (i) <p0:Char> isa OTHER */
4251 /* <p0:Char> isa OTHER */
4252 var1 = 1; /* easy <p0:Char> isa OTHER*/
4253 if (unlikely(!var1)) {
4254 var_class_name = type_core__Char.name;
4255 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4256 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 925);
4257 fatal_exit(1);
4258 }
4259 var2 = self > p0;
4260 var = var2;
4261 goto RET_LABEL;
4262 RET_LABEL:;
4263 return var;
4264 }
4265 /* method kernel#Char#> for (self: Comparable, Comparable): Bool */
4266 short int VIRTUAL_core___core__Char___Comparable___62d(val* self, val* p0) {
4267 short int var /* : Bool */;
4268 short int var1 /* : Bool */;
4269 short int var3 /* : Bool */;
4270 int cltype;
4271 int idtype;
4272 const struct type* type_struct;
4273 const char* var_class_name;
4274 uint32_t var4 /* : Char */;
4275 uint32_t var5 /* : Char */;
4276 short int var6 /* : Bool */;
4277 { /* Inline kernel#Char#> (self,p0) on <self:Comparable(Char)> */
4278 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
4279 /* <p0:Comparable> isa OTHER */
4280 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
4281 cltype = type_struct->color;
4282 idtype = type_struct->id;
4283 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
4284 var3 = 0;
4285 } else {
4286 var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
4287 }
4288 if (unlikely(!var3)) {
4289 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
4290 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4291 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 925);
4292 fatal_exit(1);
4293 }
4294 var4 = (uint32_t)((long)(self)>>2);
4295 var5 = (uint32_t)((long)(p0)>>2);
4296 var6 = var4 > var5;
4297 var1 = var6;
4298 goto RET_LABEL2;
4299 RET_LABEL2:(void)0;
4300 }
4301 var = var1;
4302 RET_LABEL:;
4303 return var;
4304 }
4305 /* method kernel#Char#successor for (self: Char, Int): Char */
4306 uint32_t core___core__Char___Discrete__successor(uint32_t self, long p0) {
4307 uint32_t var /* : Char */;
4308 uint32_t var1 /* : Char */;
4309 var1 = self + p0;
4310 var = var1;
4311 goto RET_LABEL;
4312 RET_LABEL:;
4313 return var;
4314 }
4315 /* method kernel#Char#successor for (self: Discrete, Int): Discrete */
4316 val* VIRTUAL_core___core__Char___Discrete__successor(val* self, long p0) {
4317 val* var /* : Discrete */;
4318 uint32_t var1 /* : Char */;
4319 uint32_t var3 /* : Char */;
4320 uint32_t var4 /* : Char */;
4321 val* var5 /* : Discrete */;
4322 { /* Inline kernel#Char#successor (self,p0) on <self:Discrete(Char)> */
4323 var3 = (uint32_t)((long)(self)>>2);
4324 var4 = var3 + p0;
4325 var1 = var4;
4326 goto RET_LABEL2;
4327 RET_LABEL2:(void)0;
4328 }
4329 var5 = (val*)((long)(var1)<<2|2);
4330 var = var5;
4331 RET_LABEL:;
4332 return var;
4333 }
4334 /* method kernel#Char#distance for (self: Char, Char): Int */
4335 long core___core__Char___Discrete__distance(uint32_t self, uint32_t p0) {
4336 long var /* : Int */;
4337 short int var1 /* : Bool */;
4338 int cltype;
4339 int idtype;
4340 const char* var_class_name;
4341 uint32_t var_c /* var c: Char */;
4342 long var2 /* : Int */;
4343 long var4 /* : Int */;
4344 long var5 /* : Int */;
4345 long var7 /* : Int */;
4346 long var8 /* : Int */;
4347 short int var10 /* : Bool */;
4348 int cltype11;
4349 int idtype12;
4350 const char* var_class_name13;
4351 long var14 /* : Int */;
4352 long var_d /* var d: Int */;
4353 short int var15 /* : Bool */;
4354 short int var17 /* : Bool */;
4355 int cltype18;
4356 int idtype19;
4357 const char* var_class_name20;
4358 short int var21 /* : Bool */;
4359 long var22 /* : Int */;
4360 long var24 /* : Int */;
4361 /* Covariant cast for argument 0 (c) <p0:Char> isa OTHER */
4362 /* <p0:Char> isa OTHER */
4363 var1 = 1; /* easy <p0:Char> isa OTHER*/
4364 if (unlikely(!var1)) {
4365 var_class_name = type_core__Char.name;
4366 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4367 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 930);
4368 fatal_exit(1);
4369 }
4370 var_c = p0;
4371 {
4372 { /* Inline kernel#Char#code_point (self) on <self:Char> */
4373 var4 = (long)self;
4374 var2 = var4;
4375 goto RET_LABEL3;
4376 RET_LABEL3:(void)0;
4377 }
4378 }
4379 {
4380 { /* Inline kernel#Char#code_point (var_c) on <var_c:Char> */
4381 var7 = (long)var_c;
4382 var5 = var7;
4383 goto RET_LABEL6;
4384 RET_LABEL6:(void)0;
4385 }
4386 }
4387 {
4388 { /* Inline kernel#Int#- (var2,var5) on <var2:Int> */
4389 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
4390 /* <var5:Int> isa OTHER */
4391 var10 = 1; /* easy <var5:Int> isa OTHER*/
4392 if (unlikely(!var10)) {
4393 var_class_name13 = type_core__Int.name;
4394 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
4395 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
4396 fatal_exit(1);
4397 }
4398 var14 = var2 - var5;
4399 var8 = var14;
4400 goto RET_LABEL9;
4401 RET_LABEL9:(void)0;
4402 }
4403 }
4404 var_d = var8;
4405 {
4406 { /* Inline kernel#Int#>= (var_d,0l) on <var_d:Int> */
4407 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4408 /* <0l:Int> isa OTHER */
4409 var17 = 1; /* easy <0l:Int> isa OTHER*/
4410 if (unlikely(!var17)) {
4411 var_class_name20 = type_core__Int.name;
4412 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
4413 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
4414 fatal_exit(1);
4415 }
4416 var21 = var_d >= 0l;
4417 var15 = var21;
4418 goto RET_LABEL16;
4419 RET_LABEL16:(void)0;
4420 }
4421 }
4422 if (var15){
4423 var = var_d;
4424 goto RET_LABEL;
4425 } else {
4426 {
4427 { /* Inline kernel#Int#unary - (var_d) on <var_d:Int> */
4428 var24 = -var_d;
4429 var22 = var24;
4430 goto RET_LABEL23;
4431 RET_LABEL23:(void)0;
4432 }
4433 }
4434 var = var22;
4435 goto RET_LABEL;
4436 }
4437 RET_LABEL:;
4438 return var;
4439 }
4440 /* method kernel#Char#distance for (self: Discrete, Discrete): Int */
4441 long VIRTUAL_core___core__Char___Discrete__distance(val* self, val* p0) {
4442 long var /* : Int */;
4443 long var1 /* : Int */;
4444 uint32_t var2 /* : Char */;
4445 uint32_t var3 /* : Char */;
4446 var2 = (uint32_t)((long)(self)>>2);
4447 var3 = (uint32_t)((long)(p0)>>2);
4448 var1 = core___core__Char___Discrete__distance(var2, var3);
4449 var = var1;
4450 RET_LABEL:;
4451 return var;
4452 }
4453 /* method kernel#Char#to_i for (self: Char): Int */
4454 long core___core__Char___to_i(uint32_t self) {
4455 long var /* : Int */;
4456 short int var1 /* : Bool */;
4457 short int var3 /* : Bool */;
4458 long var4 /* : Int */;
4459 long var6 /* : Int */;
4460 short int var7 /* : Bool */;
4461 long var8 /* : Int */;
4462 long var10 /* : Int */;
4463 long var11 /* : Int */;
4464 long var13 /* : Int */;
4465 long var14 /* : Int */;
4466 short int var16 /* : Bool */;
4467 int cltype;
4468 int idtype;
4469 const char* var_class_name;
4470 long var17 /* : Int */;
4471 uint32_t var18 /* : Char */;
4472 long var19 /* : Int */;
4473 long var21 /* : Int */;
4474 long var22 /* : Int */;
4475 long var24 /* : Int */;
4476 long var25 /* : Int */;
4477 short int var27 /* : Bool */;
4478 int cltype28;
4479 int idtype29;
4480 const char* var_class_name30;
4481 long var31 /* : Int */;
4482 long var32 /* : Int */;
4483 short int var34 /* : Bool */;
4484 int cltype35;
4485 int idtype36;
4486 const char* var_class_name37;
4487 long var38 /* : Int */;
4488 {
4489 { /* Inline kernel#Char#== (self,'-') on <self:Char> */
4490 var3 = self == '-';
4491 var1 = var3;
4492 goto RET_LABEL2;
4493 RET_LABEL2:(void)0;
4494 }
4495 }
4496 if (var1){
4497 {
4498 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
4499 var6 = -1l;
4500 var4 = var6;
4501 goto RET_LABEL5;
4502 RET_LABEL5:(void)0;
4503 }
4504 }
4505 var = var4;
4506 goto RET_LABEL;
4507 } else {
4508 {
4509 var7 = core___core__Char___is_digit(self);
4510 }
4511 if (var7){
4512 {
4513 { /* Inline kernel#Char#code_point (self) on <self:Char> */
4514 var10 = (long)self;
4515 var8 = var10;
4516 goto RET_LABEL9;
4517 RET_LABEL9:(void)0;
4518 }
4519 }
4520 {
4521 { /* Inline kernel#Char#code_point ('0') on <'0':Char> */
4522 var13 = (long)'0';
4523 var11 = var13;
4524 goto RET_LABEL12;
4525 RET_LABEL12:(void)0;
4526 }
4527 }
4528 {
4529 { /* Inline kernel#Int#- (var8,var11) on <var8:Int> */
4530 /* Covariant cast for argument 0 (i) <var11:Int> isa OTHER */
4531 /* <var11:Int> isa OTHER */
4532 var16 = 1; /* easy <var11:Int> isa OTHER*/
4533 if (unlikely(!var16)) {
4534 var_class_name = type_core__Int.name;
4535 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4536 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
4537 fatal_exit(1);
4538 }
4539 var17 = var8 - var11;
4540 var14 = var17;
4541 goto RET_LABEL15;
4542 RET_LABEL15:(void)0;
4543 }
4544 }
4545 var = var14;
4546 goto RET_LABEL;
4547 } else {
4548 {
4549 var18 = core___core__Char___to_lower(self);
4550 }
4551 {
4552 { /* Inline kernel#Char#code_point (var18) on <var18:Char> */
4553 var21 = (long)var18;
4554 var19 = var21;
4555 goto RET_LABEL20;
4556 RET_LABEL20:(void)0;
4557 }
4558 }
4559 {
4560 { /* Inline kernel#Char#code_point ('a') on <'a':Char> */
4561 var24 = (long)'a';
4562 var22 = var24;
4563 goto RET_LABEL23;
4564 RET_LABEL23:(void)0;
4565 }
4566 }
4567 {
4568 { /* Inline kernel#Int#- (var19,var22) on <var19:Int> */
4569 /* Covariant cast for argument 0 (i) <var22:Int> isa OTHER */
4570 /* <var22:Int> isa OTHER */
4571 var27 = 1; /* easy <var22:Int> isa OTHER*/
4572 if (unlikely(!var27)) {
4573 var_class_name30 = type_core__Int.name;
4574 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
4575 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
4576 fatal_exit(1);
4577 }
4578 var31 = var19 - var22;
4579 var25 = var31;
4580 goto RET_LABEL26;
4581 RET_LABEL26:(void)0;
4582 }
4583 }
4584 {
4585 { /* Inline kernel#Int#+ (var25,10l) on <var25:Int> */
4586 /* Covariant cast for argument 0 (i) <10l:Int> isa OTHER */
4587 /* <10l:Int> isa OTHER */
4588 var34 = 1; /* easy <10l:Int> isa OTHER*/
4589 if (unlikely(!var34)) {
4590 var_class_name37 = type_core__Int.name;
4591 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
4592 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4593 fatal_exit(1);
4594 }
4595 var38 = var25 + 10l;
4596 var32 = var38;
4597 goto RET_LABEL33;
4598 RET_LABEL33:(void)0;
4599 }
4600 }
4601 var = var32;
4602 goto RET_LABEL;
4603 }
4604 }
4605 RET_LABEL:;
4606 return var;
4607 }
4608 /* method kernel#Char#ascii for (self: Char): Byte */
4609 unsigned char core___core__Char___ascii(uint32_t self) {
4610 unsigned char var /* : Byte */;
4611 long var1 /* : Int */;
4612 long var3 /* : Int */;
4613 unsigned char var4 /* : Byte */;
4614 unsigned char var6 /* : Byte */;
4615 {
4616 { /* Inline kernel#Char#code_point (self) on <self:Char> */
4617 var3 = (long)self;
4618 var1 = var3;
4619 goto RET_LABEL2;
4620 RET_LABEL2:(void)0;
4621 }
4622 }
4623 {
4624 { /* Inline kernel#Int#to_b (var1) on <var1:Int> */
4625 var6 = (unsigned char)var1;
4626 var4 = var6;
4627 goto RET_LABEL5;
4628 RET_LABEL5:(void)0;
4629 }
4630 }
4631 var = var4;
4632 goto RET_LABEL;
4633 RET_LABEL:;
4634 return var;
4635 }
4636 /* method kernel#Char#code_point for (self: Char): Int */
4637 long core___core__Char___code_point(uint32_t self) {
4638 long var /* : Int */;
4639 long var1 /* : Int */;
4640 var1 = (long)self;
4641 var = var1;
4642 goto RET_LABEL;
4643 RET_LABEL:;
4644 return var;
4645 }
4646 /* method kernel#Char#cp for (self: Char): Int */
4647 long core___core__Char___cp(uint32_t self) {
4648 long var /* : Int */;
4649 long var1 /* : Int */;
4650 var1 = kernel___Char_cp___impl(self);
4651 var = var1;
4652 goto RET_LABEL;
4653 RET_LABEL:;
4654 return var;
4655 }
4656 /* method kernel#Char#to_lower for (self: Char): Char */
4657 uint32_t core___core__Char___to_lower(uint32_t self) {
4658 uint32_t var /* : Char */;
4659 short int var1 /* : Bool */;
4660 long var2 /* : Int */;
4661 long var4 /* : Int */;
4662 long var5 /* : Int */;
4663 long var6 /* : Int */;
4664 short int var8 /* : Bool */;
4665 int cltype;
4666 int idtype;
4667 const char* var_class_name;
4668 long var9 /* : Int */;
4669 uint32_t var10 /* : Char */;
4670 uint32_t var12 /* : Char */;
4671 {
4672 var1 = core___core__Char___is_upper(self);
4673 }
4674 if (var1){
4675 {
4676 { /* Inline kernel#Char#code_point (self) on <self:Char> */
4677 var4 = (long)self;
4678 var2 = var4;
4679 goto RET_LABEL3;
4680 RET_LABEL3:(void)0;
4681 }
4682 }
4683 {
4684 var5 = core___core__Char___Discrete__distance('a', 'A');
4685 }
4686 {
4687 { /* Inline kernel#Int#+ (var2,var5) on <var2:Int> */
4688 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
4689 /* <var5:Int> isa OTHER */
4690 var8 = 1; /* easy <var5:Int> isa OTHER*/
4691 if (unlikely(!var8)) {
4692 var_class_name = type_core__Int.name;
4693 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4694 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4695 fatal_exit(1);
4696 }
4697 var9 = var2 + var5;
4698 var6 = var9;
4699 goto RET_LABEL7;
4700 RET_LABEL7:(void)0;
4701 }
4702 }
4703 {
4704 { /* Inline kernel#Int#code_point (var6) on <var6:Int> */
4705 var12 = (uint32_t)var6;
4706 var10 = var12;
4707 goto RET_LABEL11;
4708 RET_LABEL11:(void)0;
4709 }
4710 }
4711 var = var10;
4712 goto RET_LABEL;
4713 } else {
4714 var = self;
4715 goto RET_LABEL;
4716 }
4717 RET_LABEL:;
4718 return var;
4719 }
4720 /* method kernel#Char#to_upper for (self: Char): Char */
4721 uint32_t core___core__Char___to_upper(uint32_t self) {
4722 uint32_t var /* : Char */;
4723 short int var1 /* : Bool */;
4724 long var2 /* : Int */;
4725 long var4 /* : Int */;
4726 long var5 /* : Int */;
4727 long var6 /* : Int */;
4728 short int var8 /* : Bool */;
4729 int cltype;
4730 int idtype;
4731 const char* var_class_name;
4732 long var9 /* : Int */;
4733 uint32_t var10 /* : Char */;
4734 uint32_t var12 /* : Char */;
4735 {
4736 var1 = core___core__Char___is_lower(self);
4737 }
4738 if (var1){
4739 {
4740 { /* Inline kernel#Char#code_point (self) on <self:Char> */
4741 var4 = (long)self;
4742 var2 = var4;
4743 goto RET_LABEL3;
4744 RET_LABEL3:(void)0;
4745 }
4746 }
4747 {
4748 var5 = core___core__Char___Discrete__distance('a', 'A');
4749 }
4750 {
4751 { /* Inline kernel#Int#- (var2,var5) on <var2:Int> */
4752 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
4753 /* <var5:Int> isa OTHER */
4754 var8 = 1; /* easy <var5:Int> isa OTHER*/
4755 if (unlikely(!var8)) {
4756 var_class_name = type_core__Int.name;
4757 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4758 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
4759 fatal_exit(1);
4760 }
4761 var9 = var2 - var5;
4762 var6 = var9;
4763 goto RET_LABEL7;
4764 RET_LABEL7:(void)0;
4765 }
4766 }
4767 {
4768 { /* Inline kernel#Int#code_point (var6) on <var6:Int> */
4769 var12 = (uint32_t)var6;
4770 var10 = var12;
4771 goto RET_LABEL11;
4772 RET_LABEL11:(void)0;
4773 }
4774 }
4775 var = var10;
4776 goto RET_LABEL;
4777 } else {
4778 var = self;
4779 goto RET_LABEL;
4780 }
4781 RET_LABEL:;
4782 return var;
4783 }
4784 /* method kernel#Char#is_digit for (self: Char): Bool */
4785 short int core___core__Char___is_digit(uint32_t self) {
4786 short int var /* : Bool */;
4787 short int var1 /* : Bool */;
4788 short int var2 /* : Bool */;
4789 short int var4 /* : Bool */;
4790 int cltype;
4791 int idtype;
4792 const char* var_class_name;
4793 short int var5 /* : Bool */;
4794 short int var_ /* var : Bool */;
4795 short int var6 /* : Bool */;
4796 short int var8 /* : Bool */;
4797 int cltype9;
4798 int idtype10;
4799 const char* var_class_name11;
4800 short int var12 /* : Bool */;
4801 {
4802 { /* Inline kernel#Char#>= (self,'0') on <self:Char> */
4803 /* Covariant cast for argument 0 (i) <'0':Char> isa OTHER */
4804 /* <'0':Char> isa OTHER */
4805 var4 = 1; /* easy <'0':Char> isa OTHER*/
4806 if (unlikely(!var4)) {
4807 var_class_name = type_core__Char.name;
4808 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4809 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
4810 fatal_exit(1);
4811 }
4812 var5 = self >= '0';
4813 var2 = var5;
4814 goto RET_LABEL3;
4815 RET_LABEL3:(void)0;
4816 }
4817 }
4818 var_ = var2;
4819 if (var2){
4820 {
4821 { /* Inline kernel#Char#<= (self,'9') on <self:Char> */
4822 /* Covariant cast for argument 0 (i) <'9':Char> isa OTHER */
4823 /* <'9':Char> isa OTHER */
4824 var8 = 1; /* easy <'9':Char> isa OTHER*/
4825 if (unlikely(!var8)) {
4826 var_class_name11 = type_core__Char.name;
4827 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
4828 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
4829 fatal_exit(1);
4830 }
4831 var12 = self <= '9';
4832 var6 = var12;
4833 goto RET_LABEL7;
4834 RET_LABEL7:(void)0;
4835 }
4836 }
4837 var1 = var6;
4838 } else {
4839 var1 = var_;
4840 }
4841 var = var1;
4842 goto RET_LABEL;
4843 RET_LABEL:;
4844 return var;
4845 }
4846 /* method kernel#Char#is_lower for (self: Char): Bool */
4847 short int core___core__Char___is_lower(uint32_t self) {
4848 short int var /* : Bool */;
4849 short int var1 /* : Bool */;
4850 short int var2 /* : Bool */;
4851 short int var4 /* : Bool */;
4852 int cltype;
4853 int idtype;
4854 const char* var_class_name;
4855 short int var5 /* : Bool */;
4856 short int var_ /* var : Bool */;
4857 short int var6 /* : Bool */;
4858 short int var8 /* : Bool */;
4859 int cltype9;
4860 int idtype10;
4861 const char* var_class_name11;
4862 short int var12 /* : Bool */;
4863 {
4864 { /* Inline kernel#Char#>= (self,'a') on <self:Char> */
4865 /* Covariant cast for argument 0 (i) <'a':Char> isa OTHER */
4866 /* <'a':Char> isa OTHER */
4867 var4 = 1; /* easy <'a':Char> isa OTHER*/
4868 if (unlikely(!var4)) {
4869 var_class_name = type_core__Char.name;
4870 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4871 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
4872 fatal_exit(1);
4873 }
4874 var5 = self >= 'a';
4875 var2 = var5;
4876 goto RET_LABEL3;
4877 RET_LABEL3:(void)0;
4878 }
4879 }
4880 var_ = var2;
4881 if (var2){
4882 {
4883 { /* Inline kernel#Char#<= (self,'z') on <self:Char> */
4884 /* Covariant cast for argument 0 (i) <'z':Char> isa OTHER */
4885 /* <'z':Char> isa OTHER */
4886 var8 = 1; /* easy <'z':Char> isa OTHER*/
4887 if (unlikely(!var8)) {
4888 var_class_name11 = type_core__Char.name;
4889 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
4890 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
4891 fatal_exit(1);
4892 }
4893 var12 = self <= 'z';
4894 var6 = var12;
4895 goto RET_LABEL7;
4896 RET_LABEL7:(void)0;
4897 }
4898 }
4899 var1 = var6;
4900 } else {
4901 var1 = var_;
4902 }
4903 var = var1;
4904 goto RET_LABEL;
4905 RET_LABEL:;
4906 return var;
4907 }
4908 /* method kernel#Char#is_upper for (self: Char): Bool */
4909 short int core___core__Char___is_upper(uint32_t self) {
4910 short int var /* : Bool */;
4911 short int var1 /* : Bool */;
4912 short int var2 /* : Bool */;
4913 short int var4 /* : Bool */;
4914 int cltype;
4915 int idtype;
4916 const char* var_class_name;
4917 short int var5 /* : Bool */;
4918 short int var_ /* var : Bool */;
4919 short int var6 /* : Bool */;
4920 short int var8 /* : Bool */;
4921 int cltype9;
4922 int idtype10;
4923 const char* var_class_name11;
4924 short int var12 /* : Bool */;
4925 {
4926 { /* Inline kernel#Char#>= (self,'A') on <self:Char> */
4927 /* Covariant cast for argument 0 (i) <'A':Char> isa OTHER */
4928 /* <'A':Char> isa OTHER */
4929 var4 = 1; /* easy <'A':Char> isa OTHER*/
4930 if (unlikely(!var4)) {
4931 var_class_name = type_core__Char.name;
4932 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4933 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
4934 fatal_exit(1);
4935 }
4936 var5 = self >= 'A';
4937 var2 = var5;
4938 goto RET_LABEL3;
4939 RET_LABEL3:(void)0;
4940 }
4941 }
4942 var_ = var2;
4943 if (var2){
4944 {
4945 { /* Inline kernel#Char#<= (self,'Z') on <self:Char> */
4946 /* Covariant cast for argument 0 (i) <'Z':Char> isa OTHER */
4947 /* <'Z':Char> isa OTHER */
4948 var8 = 1; /* easy <'Z':Char> isa OTHER*/
4949 if (unlikely(!var8)) {
4950 var_class_name11 = type_core__Char.name;
4951 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
4952 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
4953 fatal_exit(1);
4954 }
4955 var12 = self <= 'Z';
4956 var6 = var12;
4957 goto RET_LABEL7;
4958 RET_LABEL7:(void)0;
4959 }
4960 }
4961 var1 = var6;
4962 } else {
4963 var1 = var_;
4964 }
4965 var = var1;
4966 goto RET_LABEL;
4967 RET_LABEL:;
4968 return var;
4969 }
4970 /* method kernel#Char#is_whitespace for (self: Char): Bool */
4971 short int core___core__Char___is_whitespace(uint32_t self) {
4972 short int var /* : Bool */;
4973 long var1 /* : Int */;
4974 long var3 /* : Int */;
4975 long var_i /* var i: Int */;
4976 short int var4 /* : Bool */;
4977 short int var5 /* : Bool */;
4978 short int var7 /* : Bool */;
4979 int cltype;
4980 int idtype;
4981 const char* var_class_name;
4982 short int var8 /* : Bool */;
4983 short int var_ /* var : Bool */;
4984 short int var9 /* : Bool */;
4985 short int var11 /* : Bool */;
4986 {
4987 { /* Inline kernel#Char#code_point (self) on <self:Char> */
4988 var3 = (long)self;
4989 var1 = var3;
4990 goto RET_LABEL2;
4991 RET_LABEL2:(void)0;
4992 }
4993 }
4994 var_i = var1;
4995 {
4996 { /* Inline kernel#Int#<= (var_i,32l) on <var_i:Int> */
4997 /* Covariant cast for argument 0 (i) <32l:Int> isa OTHER */
4998 /* <32l:Int> isa OTHER */
4999 var7 = 1; /* easy <32l:Int> isa OTHER*/
5000 if (unlikely(!var7)) {
5001 var_class_name = type_core__Int.name;
5002 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5003 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
5004 fatal_exit(1);
5005 }
5006 var8 = var_i <= 32l;
5007 var5 = var8;
5008 goto RET_LABEL6;
5009 RET_LABEL6:(void)0;
5010 }
5011 }
5012 var_ = var5;
5013 if (var5){
5014 var4 = var_;
5015 } else {
5016 {
5017 { /* Inline kernel#Int#== (var_i,127l) on <var_i:Int> */
5018 var11 = var_i == 127l;
5019 var9 = var11;
5020 goto RET_LABEL10;
5021 RET_LABEL10:(void)0;
5022 }
5023 }
5024 var4 = var9;
5025 }
5026 var = var4;
5027 goto RET_LABEL;
5028 RET_LABEL:;
5029 return var;
5030 }
5031 /* method kernel#Pointer#address_is_null for (self: Pointer): Bool */
5032 short int core___core__Pointer___address_is_null(val* self) {
5033 short int var /* : Bool */;
5034 short int var1 /* : Bool */;
5035 void* var2 /* : Pointer for extern */;
5036 var2 = ((struct instance_core__Pointer*)self)->value; /* unboxing Pointer */
5037 var1 = kernel___Pointer_address_is_null___impl(var2);
5038 var = var1;
5039 goto RET_LABEL;
5040 RET_LABEL:;
5041 return var;
5042 }
5043 /* method kernel#Pointer#free for (self: Pointer) */
5044 void core___core__Pointer___free(val* self) {
5045 void* var /* : Pointer for extern */;
5046 var = ((struct instance_core__Pointer*)self)->value; /* unboxing Pointer */
5047 kernel___Pointer_free___impl(var);
5048 RET_LABEL:;
5049 }