c_src: update for new ffi syntax
[nit.git] / c_src / location.sep.1.c
1 #include "location.sep.0.h"
2 /* method location#SourceFile#filename for (self: SourceFile): String */
3 val* location__SourceFile__filename(val* self) {
4 val* var /* : String */;
5 val* var1 /* : String */;
6 var1 = self->attrs[COLOR_location__SourceFile___64dfilename].val; /* @filename on <self:SourceFile> */
7 if (var1 == NULL) {
8 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @filename");
9 fprintf(stderr, " (%s:%d)\n", "src/location.nit", 22);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method location#SourceFile#filename for (self: Object): String */
17 val* VIRTUAL_location__SourceFile__filename(val* self) {
18 val* var /* : String */;
19 val* var1 /* : String */;
20 var1 = location__SourceFile__filename(self);
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method location#SourceFile#filename= for (self: SourceFile, String) */
26 void location__SourceFile__filename_61d(val* self, val* p0) {
27 self->attrs[COLOR_location__SourceFile___64dfilename].val = p0; /* @filename on <self:SourceFile> */
28 RET_LABEL:;
29 }
30 /* method location#SourceFile#filename= for (self: Object, String) */
31 void VIRTUAL_location__SourceFile__filename_61d(val* self, val* p0) {
32 location__SourceFile__filename_61d(self, p0);
33 RET_LABEL:;
34 }
35 /* method location#SourceFile#string for (self: SourceFile): String */
36 val* location__SourceFile__string(val* self) {
37 val* var /* : String */;
38 val* var1 /* : String */;
39 var1 = self->attrs[COLOR_location__SourceFile___64dstring].val; /* @string on <self:SourceFile> */
40 if (var1 == NULL) {
41 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @string");
42 fprintf(stderr, " (%s:%d)\n", "src/location.nit", 25);
43 show_backtrace(1);
44 }
45 var = var1;
46 RET_LABEL:;
47 return var;
48 }
49 /* method location#SourceFile#string for (self: Object): String */
50 val* VIRTUAL_location__SourceFile__string(val* self) {
51 val* var /* : String */;
52 val* var1 /* : String */;
53 var1 = location__SourceFile__string(self);
54 var = var1;
55 RET_LABEL:;
56 return var;
57 }
58 /* method location#SourceFile#string= for (self: SourceFile, String) */
59 void location__SourceFile__string_61d(val* self, val* p0) {
60 self->attrs[COLOR_location__SourceFile___64dstring].val = p0; /* @string on <self:SourceFile> */
61 RET_LABEL:;
62 }
63 /* method location#SourceFile#string= for (self: Object, String) */
64 void VIRTUAL_location__SourceFile__string_61d(val* self, val* p0) {
65 location__SourceFile__string_61d(self, p0);
66 RET_LABEL:;
67 }
68 /* method location#SourceFile#init for (self: SourceFile, String, IStream) */
69 void location__SourceFile__init(val* self, val* p0, val* p1) {
70 val* var_filename /* var filename: String */;
71 val* var_stream /* var stream: IStream */;
72 val* var /* : String */;
73 val* var1 /* : Array[Int] */;
74 long var2 /* : Int */;
75 long var3 /* : Int */;
76 val* var4 /* : nullable Object */;
77 var_filename = p0;
78 var_stream = p1;
79 ((void (*)(val*, val*))(self->class->vft[COLOR_location__SourceFile__filename_61d]))(self, var_filename) /* filename= on <self:SourceFile>*/;
80 var = ((val* (*)(val*))(var_stream->class->vft[COLOR_stream__IStream__read_all]))(var_stream) /* read_all on <var_stream:IStream>*/;
81 ((void (*)(val*, val*))(self->class->vft[COLOR_location__SourceFile__string_61d]))(self, var) /* string= on <self:SourceFile>*/;
82 var1 = ((val* (*)(val*))(self->class->vft[COLOR_location__SourceFile__line_starts]))(self) /* line_starts on <self:SourceFile>*/;
83 var2 = 0;
84 var3 = 0;
85 var4 = BOX_kernel__Int(var3); /* autobox from Int to nullable Object */
86 ((void (*)(val*, long, val*))(var1->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var1, var2, var4) /* []= on <var1:Array[Int]>*/;
87 RET_LABEL:;
88 }
89 /* method location#SourceFile#init for (self: Object, String, IStream) */
90 void VIRTUAL_location__SourceFile__init(val* self, val* p0, val* p1) {
91 location__SourceFile__init(self, p0, p1);
92 RET_LABEL:;
93 }
94 /* method location#SourceFile#from_string for (self: SourceFile, String, String) */
95 void location__SourceFile__from_string(val* self, val* p0, val* p1) {
96 val* var_filename /* var filename: String */;
97 val* var_string /* var string: String */;
98 val* var /* : Array[Int] */;
99 long var1 /* : Int */;
100 long var2 /* : Int */;
101 val* var3 /* : nullable Object */;
102 var_filename = p0;
103 var_string = p1;
104 ((void (*)(val*, val*))(self->class->vft[COLOR_location__SourceFile__filename_61d]))(self, var_filename) /* filename= on <self:SourceFile>*/;
105 ((void (*)(val*, val*))(self->class->vft[COLOR_location__SourceFile__string_61d]))(self, var_string) /* string= on <self:SourceFile>*/;
106 var = ((val* (*)(val*))(self->class->vft[COLOR_location__SourceFile__line_starts]))(self) /* line_starts on <self:SourceFile>*/;
107 var1 = 0;
108 var2 = 0;
109 var3 = BOX_kernel__Int(var2); /* autobox from Int to nullable Object */
110 ((void (*)(val*, long, val*))(var->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var, var1, var3) /* []= on <var:Array[Int]>*/;
111 RET_LABEL:;
112 }
113 /* method location#SourceFile#from_string for (self: Object, String, String) */
114 void VIRTUAL_location__SourceFile__from_string(val* self, val* p0, val* p1) {
115 location__SourceFile__from_string(self, p0, p1);
116 RET_LABEL:;
117 }
118 /* method location#SourceFile#line_starts for (self: SourceFile): Array[Int] */
119 val* location__SourceFile__line_starts(val* self) {
120 val* var /* : Array[Int] */;
121 val* var1 /* : Array[Int] */;
122 var1 = self->attrs[COLOR_location__SourceFile___64dline_starts].val; /* @line_starts on <self:SourceFile> */
123 if (var1 == NULL) {
124 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @line_starts");
125 fprintf(stderr, " (%s:%d)\n", "src/location.nit", 44);
126 show_backtrace(1);
127 }
128 var = var1;
129 RET_LABEL:;
130 return var;
131 }
132 /* method location#SourceFile#line_starts for (self: Object): Array[Int] */
133 val* VIRTUAL_location__SourceFile__line_starts(val* self) {
134 val* var /* : Array[Int] */;
135 val* var1 /* : Array[Int] */;
136 var1 = location__SourceFile__line_starts(self);
137 var = var1;
138 RET_LABEL:;
139 return var;
140 }
141 /* method location#SourceFile#line_starts= for (self: SourceFile, Array[Int]) */
142 void location__SourceFile__line_starts_61d(val* self, val* p0) {
143 self->attrs[COLOR_location__SourceFile___64dline_starts].val = p0; /* @line_starts on <self:SourceFile> */
144 RET_LABEL:;
145 }
146 /* method location#SourceFile#line_starts= for (self: Object, Array[Int]) */
147 void VIRTUAL_location__SourceFile__line_starts_61d(val* self, val* p0) {
148 location__SourceFile__line_starts_61d(self, p0);
149 RET_LABEL:;
150 }
151 /* method location#Location#file for (self: Location): nullable SourceFile */
152 val* location__Location__file(val* self) {
153 val* var /* : nullable SourceFile */;
154 val* var1 /* : nullable SourceFile */;
155 var1 = self->attrs[COLOR_location__Location___64dfile].val; /* @file on <self:Location> */
156 var = var1;
157 RET_LABEL:;
158 return var;
159 }
160 /* method location#Location#file for (self: Object): nullable SourceFile */
161 val* VIRTUAL_location__Location__file(val* self) {
162 val* var /* : nullable SourceFile */;
163 val* var1 /* : nullable SourceFile */;
164 var1 = location__Location__file(self);
165 var = var1;
166 RET_LABEL:;
167 return var;
168 }
169 /* method location#Location#file= for (self: Location, nullable SourceFile) */
170 void location__Location__file_61d(val* self, val* p0) {
171 self->attrs[COLOR_location__Location___64dfile].val = p0; /* @file on <self:Location> */
172 RET_LABEL:;
173 }
174 /* method location#Location#file= for (self: Object, nullable SourceFile) */
175 void VIRTUAL_location__Location__file_61d(val* self, val* p0) {
176 location__Location__file_61d(self, p0);
177 RET_LABEL:;
178 }
179 /* method location#Location#line_start for (self: Location): Int */
180 long location__Location__line_start(val* self) {
181 long var /* : Int */;
182 long var1 /* : Int */;
183 var1 = self->attrs[COLOR_location__Location___64dline_start].l; /* @line_start on <self:Location> */
184 var = var1;
185 RET_LABEL:;
186 return var;
187 }
188 /* method location#Location#line_start for (self: Object): Int */
189 long VIRTUAL_location__Location__line_start(val* self) {
190 long var /* : Int */;
191 long var1 /* : Int */;
192 var1 = location__Location__line_start(self);
193 var = var1;
194 RET_LABEL:;
195 return var;
196 }
197 /* method location#Location#line_start= for (self: Location, Int) */
198 void location__Location__line_start_61d(val* self, long p0) {
199 self->attrs[COLOR_location__Location___64dline_start].l = p0; /* @line_start on <self:Location> */
200 RET_LABEL:;
201 }
202 /* method location#Location#line_start= for (self: Object, Int) */
203 void VIRTUAL_location__Location__line_start_61d(val* self, long p0) {
204 location__Location__line_start_61d(self, p0);
205 RET_LABEL:;
206 }
207 /* method location#Location#line_end for (self: Location): Int */
208 long location__Location__line_end(val* self) {
209 long var /* : Int */;
210 long var1 /* : Int */;
211 var1 = self->attrs[COLOR_location__Location___64dline_end].l; /* @line_end on <self:Location> */
212 var = var1;
213 RET_LABEL:;
214 return var;
215 }
216 /* method location#Location#line_end for (self: Object): Int */
217 long VIRTUAL_location__Location__line_end(val* self) {
218 long var /* : Int */;
219 long var1 /* : Int */;
220 var1 = location__Location__line_end(self);
221 var = var1;
222 RET_LABEL:;
223 return var;
224 }
225 /* method location#Location#line_end= for (self: Location, Int) */
226 void location__Location__line_end_61d(val* self, long p0) {
227 self->attrs[COLOR_location__Location___64dline_end].l = p0; /* @line_end on <self:Location> */
228 RET_LABEL:;
229 }
230 /* method location#Location#line_end= for (self: Object, Int) */
231 void VIRTUAL_location__Location__line_end_61d(val* self, long p0) {
232 location__Location__line_end_61d(self, p0);
233 RET_LABEL:;
234 }
235 /* method location#Location#column_start for (self: Location): Int */
236 long location__Location__column_start(val* self) {
237 long var /* : Int */;
238 long var1 /* : Int */;
239 var1 = self->attrs[COLOR_location__Location___64dcolumn_start].l; /* @column_start on <self:Location> */
240 var = var1;
241 RET_LABEL:;
242 return var;
243 }
244 /* method location#Location#column_start for (self: Object): Int */
245 long VIRTUAL_location__Location__column_start(val* self) {
246 long var /* : Int */;
247 long var1 /* : Int */;
248 var1 = location__Location__column_start(self);
249 var = var1;
250 RET_LABEL:;
251 return var;
252 }
253 /* method location#Location#column_start= for (self: Location, Int) */
254 void location__Location__column_start_61d(val* self, long p0) {
255 self->attrs[COLOR_location__Location___64dcolumn_start].l = p0; /* @column_start on <self:Location> */
256 RET_LABEL:;
257 }
258 /* method location#Location#column_start= for (self: Object, Int) */
259 void VIRTUAL_location__Location__column_start_61d(val* self, long p0) {
260 location__Location__column_start_61d(self, p0);
261 RET_LABEL:;
262 }
263 /* method location#Location#column_end for (self: Location): Int */
264 long location__Location__column_end(val* self) {
265 long var /* : Int */;
266 long var1 /* : Int */;
267 var1 = self->attrs[COLOR_location__Location___64dcolumn_end].l; /* @column_end on <self:Location> */
268 var = var1;
269 RET_LABEL:;
270 return var;
271 }
272 /* method location#Location#column_end for (self: Object): Int */
273 long VIRTUAL_location__Location__column_end(val* self) {
274 long var /* : Int */;
275 long var1 /* : Int */;
276 var1 = location__Location__column_end(self);
277 var = var1;
278 RET_LABEL:;
279 return var;
280 }
281 /* method location#Location#column_end= for (self: Location, Int) */
282 void location__Location__column_end_61d(val* self, long p0) {
283 self->attrs[COLOR_location__Location___64dcolumn_end].l = p0; /* @column_end on <self:Location> */
284 RET_LABEL:;
285 }
286 /* method location#Location#column_end= for (self: Object, Int) */
287 void VIRTUAL_location__Location__column_end_61d(val* self, long p0) {
288 location__Location__column_end_61d(self, p0);
289 RET_LABEL:;
290 }
291 /* method location#Location#init for (self: Location, nullable SourceFile, Int, Int, Int, Int) */
292 void location__Location__init(val* self, val* p0, long p1, long p2, long p3, long p4) {
293 val* var_f /* var f: nullable SourceFile */;
294 long var_line_s /* var line_s: Int */;
295 long var_line_e /* var line_e: Int */;
296 long var_column_s /* var column_s: Int */;
297 long var_column_e /* var column_e: Int */;
298 var_f = p0;
299 var_line_s = p1;
300 var_line_e = p2;
301 var_column_s = p3;
302 var_column_e = p4;
303 ((void (*)(val*, val*))(self->class->vft[COLOR_location__Location__file_61d]))(self, var_f) /* file= on <self:Location>*/;
304 ((void (*)(val*, long))(self->class->vft[COLOR_location__Location__line_start_61d]))(self, var_line_s) /* line_start= on <self:Location>*/;
305 ((void (*)(val*, long))(self->class->vft[COLOR_location__Location__line_end_61d]))(self, var_line_e) /* line_end= on <self:Location>*/;
306 ((void (*)(val*, long))(self->class->vft[COLOR_location__Location__column_start_61d]))(self, var_column_s) /* column_start= on <self:Location>*/;
307 ((void (*)(val*, long))(self->class->vft[COLOR_location__Location__column_end_61d]))(self, var_column_e) /* column_end= on <self:Location>*/;
308 RET_LABEL:;
309 }
310 /* method location#Location#init for (self: Object, nullable SourceFile, Int, Int, Int, Int) */
311 void VIRTUAL_location__Location__init(val* self, val* p0, long p1, long p2, long p3, long p4) {
312 location__Location__init(self, p0, p1, p2, p3, p4);
313 RET_LABEL:;
314 }
315 /* method location#Location#pstart for (self: Location): Int */
316 long location__Location__pstart(val* self) {
317 long var /* : Int */;
318 val* var1 /* : nullable SourceFile */;
319 val* var2 /* : Array[Int] */;
320 long var3 /* : Int */;
321 long var4 /* : Int */;
322 long var5 /* : Int */;
323 long var7 /* : Int */;
324 val* var8 /* : nullable Object */;
325 long var9 /* : Int */;
326 long var10 /* : Int */;
327 long var12 /* : Int */;
328 long var13 /* : Int */;
329 long var14 /* : Int */;
330 long var15 /* : Int */;
331 long var17 /* : Int */;
332 var1 = ((val* (*)(val*))(self->class->vft[COLOR_location__Location__file]))(self) /* file on <self:Location>*/;
333 if (var1 == NULL) {
334 fprintf(stderr, "Runtime error: %s", "Reciever is null");
335 fprintf(stderr, " (%s:%d)\n", "src/location.nit", 68);
336 show_backtrace(1);
337 } else {
338 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_location__SourceFile__line_starts]))(var1) /* line_starts on <var1:nullable SourceFile>*/;
339 }
340 var3 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_start]))(self) /* line_start on <self:Location>*/;
341 var4 = 1;
342 { /* Inline kernel#Int#- (var3,var4) */
343 var7 = var3 - var4;
344 var5 = var7;
345 goto RET_LABEL6;
346 RET_LABEL6:(void)0;
347 }
348 var8 = ((val* (*)(val*, long))(var2->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var2, var5) /* [] on <var2:Array[Int]>*/;
349 var9 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_start]))(self) /* column_start on <self:Location>*/;
350 { /* Inline kernel#Int#+ (var8,var9) */
351 var12 = ((struct instance_kernel__Int*)var8)->value; /* autounbox from nullable Object to Int */;
352 var13 = var12 + var9;
353 var10 = var13;
354 goto RET_LABEL11;
355 RET_LABEL11:(void)0;
356 }
357 var14 = 1;
358 { /* Inline kernel#Int#- (var10,var14) */
359 var17 = var10 - var14;
360 var15 = var17;
361 goto RET_LABEL16;
362 RET_LABEL16:(void)0;
363 }
364 var = var15;
365 goto RET_LABEL;
366 RET_LABEL:;
367 return var;
368 }
369 /* method location#Location#pstart for (self: Object): Int */
370 long VIRTUAL_location__Location__pstart(val* self) {
371 long var /* : Int */;
372 long var1 /* : Int */;
373 var1 = location__Location__pstart(self);
374 var = var1;
375 RET_LABEL:;
376 return var;
377 }
378 /* method location#Location#pend for (self: Location): Int */
379 long location__Location__pend(val* self) {
380 long var /* : Int */;
381 val* var1 /* : nullable SourceFile */;
382 val* var2 /* : Array[Int] */;
383 long var3 /* : Int */;
384 long var4 /* : Int */;
385 long var5 /* : Int */;
386 long var7 /* : Int */;
387 val* var8 /* : nullable Object */;
388 long var9 /* : Int */;
389 long var10 /* : Int */;
390 long var12 /* : Int */;
391 long var13 /* : Int */;
392 long var14 /* : Int */;
393 long var15 /* : Int */;
394 long var17 /* : Int */;
395 var1 = ((val* (*)(val*))(self->class->vft[COLOR_location__Location__file]))(self) /* file on <self:Location>*/;
396 if (var1 == NULL) {
397 fprintf(stderr, "Runtime error: %s", "Reciever is null");
398 fprintf(stderr, " (%s:%d)\n", "src/location.nit", 71);
399 show_backtrace(1);
400 } else {
401 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_location__SourceFile__line_starts]))(var1) /* line_starts on <var1:nullable SourceFile>*/;
402 }
403 var3 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_end]))(self) /* line_end on <self:Location>*/;
404 var4 = 1;
405 { /* Inline kernel#Int#- (var3,var4) */
406 var7 = var3 - var4;
407 var5 = var7;
408 goto RET_LABEL6;
409 RET_LABEL6:(void)0;
410 }
411 var8 = ((val* (*)(val*, long))(var2->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var2, var5) /* [] on <var2:Array[Int]>*/;
412 var9 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_end]))(self) /* column_end on <self:Location>*/;
413 { /* Inline kernel#Int#+ (var8,var9) */
414 var12 = ((struct instance_kernel__Int*)var8)->value; /* autounbox from nullable Object to Int */;
415 var13 = var12 + var9;
416 var10 = var13;
417 goto RET_LABEL11;
418 RET_LABEL11:(void)0;
419 }
420 var14 = 1;
421 { /* Inline kernel#Int#- (var10,var14) */
422 var17 = var10 - var14;
423 var15 = var17;
424 goto RET_LABEL16;
425 RET_LABEL16:(void)0;
426 }
427 var = var15;
428 goto RET_LABEL;
429 RET_LABEL:;
430 return var;
431 }
432 /* method location#Location#pend for (self: Object): Int */
433 long VIRTUAL_location__Location__pend(val* self) {
434 long var /* : Int */;
435 long var1 /* : Int */;
436 var1 = location__Location__pend(self);
437 var = var1;
438 RET_LABEL:;
439 return var;
440 }
441 /* method location#Location#text for (self: Location): String */
442 val* location__Location__text(val* self) {
443 val* var /* : String */;
444 val* var1 /* : nullable String */;
445 val* var_res /* var res: nullable String */;
446 val* var2 /* : null */;
447 short int var3 /* : Bool */;
448 val* var_l /* var l: Location */;
449 long var4 /* : Int */;
450 long var_pstart /* var pstart: Int */;
451 long var5 /* : Int */;
452 long var_pend /* var pend: Int */;
453 val* var6 /* : nullable SourceFile */;
454 val* var7 /* : String */;
455 long var8 /* : Int */;
456 long var10 /* : Int */;
457 long var11 /* : Int */;
458 long var12 /* : Int */;
459 long var14 /* : Int */;
460 val* var15 /* : String */;
461 var1 = ((val* (*)(val*))(self->class->vft[COLOR_location__Location__text_cache]))(self) /* text_cache on <self:Location>*/;
462 var_res = var1;
463 var2 = NULL;
464 if (var_res == NULL) {
465 var3 = 0; /* is null */
466 } else {
467 var3 = 1; /* arg is null and recv is not */
468 }
469 if (var3){
470 var = var_res;
471 goto RET_LABEL;
472 } else {
473 }
474 var_l = self;
475 var4 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__pstart]))(self) /* pstart on <self:Location>*/;
476 var_pstart = var4;
477 var5 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__pend]))(self) /* pend on <self:Location>*/;
478 var_pend = var5;
479 var6 = ((val* (*)(val*))(var_l->class->vft[COLOR_location__Location__file]))(var_l) /* file on <var_l:Location>*/;
480 if (var6 == NULL) {
481 fprintf(stderr, "Runtime error: %s", "Reciever is null");
482 fprintf(stderr, " (%s:%d)\n", "src/location.nit", 81);
483 show_backtrace(1);
484 } else {
485 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_location__SourceFile__string]))(var6) /* string on <var6:nullable SourceFile>*/;
486 }
487 { /* Inline kernel#Int#- (var_pend,var_pstart) */
488 var10 = var_pend - var_pstart;
489 var8 = var10;
490 goto RET_LABEL9;
491 RET_LABEL9:(void)0;
492 }
493 var11 = 1;
494 { /* Inline kernel#Int#+ (var8,var11) */
495 var14 = var8 + var11;
496 var12 = var14;
497 goto RET_LABEL13;
498 RET_LABEL13:(void)0;
499 }
500 var15 = ((val* (*)(val*, long, long))(var7->class->vft[COLOR_string__AbstractString__substring]))(var7, var_pstart, var12) /* substring on <var7:String>*/;
501 var_res = var15;
502 ((void (*)(val*, val*))(self->class->vft[COLOR_location__Location__text_cache_61d]))(self, var_res) /* text_cache= on <self:Location>*/;
503 var = var_res;
504 goto RET_LABEL;
505 RET_LABEL:;
506 return var;
507 }
508 /* method location#Location#text for (self: Object): String */
509 val* VIRTUAL_location__Location__text(val* self) {
510 val* var /* : String */;
511 val* var1 /* : String */;
512 var1 = location__Location__text(self);
513 var = var1;
514 RET_LABEL:;
515 return var;
516 }
517 /* method location#Location#text_cache for (self: Location): nullable String */
518 val* location__Location__text_cache(val* self) {
519 val* var /* : nullable String */;
520 val* var1 /* : nullable String */;
521 var1 = self->attrs[COLOR_location__Location___64dtext_cache].val; /* @text_cache on <self:Location> */
522 var = var1;
523 RET_LABEL:;
524 return var;
525 }
526 /* method location#Location#text_cache for (self: Object): nullable String */
527 val* VIRTUAL_location__Location__text_cache(val* self) {
528 val* var /* : nullable String */;
529 val* var1 /* : nullable String */;
530 var1 = location__Location__text_cache(self);
531 var = var1;
532 RET_LABEL:;
533 return var;
534 }
535 /* method location#Location#text_cache= for (self: Location, nullable String) */
536 void location__Location__text_cache_61d(val* self, val* p0) {
537 self->attrs[COLOR_location__Location___64dtext_cache].val = p0; /* @text_cache on <self:Location> */
538 RET_LABEL:;
539 }
540 /* method location#Location#text_cache= for (self: Object, nullable String) */
541 void VIRTUAL_location__Location__text_cache_61d(val* self, val* p0) {
542 location__Location__text_cache_61d(self, p0);
543 RET_LABEL:;
544 }
545 /* method location#Location#with_file for (self: Location, SourceFile) */
546 void location__Location__with_file(val* self, val* p0) {
547 val* var_f /* var f: SourceFile */;
548 long var /* : Int */;
549 long var1 /* : Int */;
550 long var2 /* : Int */;
551 long var3 /* : Int */;
552 var_f = p0;
553 var = 0;
554 var1 = 0;
555 var2 = 0;
556 var3 = 0;
557 ((void (*)(val*, val*, long, long, long, long))(self->class->vft[COLOR_location__Location__init]))(self, var_f, var, var1, var2, var3) /* init on <self:Location>*/;
558 RET_LABEL:;
559 }
560 /* method location#Location#with_file for (self: Object, SourceFile) */
561 void VIRTUAL_location__Location__with_file(val* self, val* p0) {
562 location__Location__with_file(self, p0);
563 RET_LABEL:;
564 }
565 /* method location#Location#== for (self: Location, nullable Object): Bool */
566 short int location__Location___61d_61d(val* self, val* p0) {
567 short int var /* : Bool */;
568 val* var_other /* var other: nullable Object */;
569 val* var1 /* : null */;
570 short int var2 /* : Bool */;
571 short int var3 /* : Bool */;
572 short int var4 /* : Bool */;
573 int cltype;
574 int idtype;
575 short int var5 /* : Bool */;
576 short int var6 /* : Bool */;
577 val* var7 /* : nullable SourceFile */;
578 val* var8 /* : nullable SourceFile */;
579 short int var9 /* : Bool */;
580 short int var10 /* : Bool */;
581 long var11 /* : Int */;
582 long var12 /* : Int */;
583 short int var13 /* : Bool */;
584 short int var15 /* : Bool */;
585 short int var16 /* : Bool */;
586 short int var17 /* : Bool */;
587 long var18 /* : Int */;
588 long var19 /* : Int */;
589 short int var20 /* : Bool */;
590 short int var22 /* : Bool */;
591 short int var23 /* : Bool */;
592 short int var24 /* : Bool */;
593 long var25 /* : Int */;
594 long var26 /* : Int */;
595 short int var27 /* : Bool */;
596 short int var29 /* : Bool */;
597 short int var30 /* : Bool */;
598 short int var31 /* : Bool */;
599 long var32 /* : Int */;
600 long var33 /* : Int */;
601 short int var34 /* : Bool */;
602 short int var36 /* : Bool */;
603 short int var37 /* : Bool */;
604 short int var38 /* : Bool */;
605 short int var39 /* : Bool */;
606 var_other = p0;
607 var1 = NULL;
608 if (var_other == NULL) {
609 var2 = 1; /* is null */
610 } else {
611 var2 = 0; /* arg is null but recv is not */
612 }
613 if (var2){
614 var3 = 0;
615 var = var3;
616 goto RET_LABEL;
617 } else {
618 }
619 /* <var_other:nullable Object(Object)> isa Location */
620 cltype = type_location__Location.color;
621 idtype = type_location__Location.id;
622 if(cltype >= var_other->type->table_size) {
623 var4 = 0;
624 } else {
625 var4 = var_other->type->type_table[cltype] == idtype;
626 }
627 var5 = !var4;
628 if (var5){
629 var6 = 0;
630 var = var6;
631 goto RET_LABEL;
632 } else {
633 }
634 var7 = ((val* (*)(val*))(var_other->class->vft[COLOR_location__Location__file]))(var_other) /* file on <var_other:nullable Object(Location)>*/;
635 var8 = ((val* (*)(val*))(self->class->vft[COLOR_location__Location__file]))(self) /* file on <self:Location>*/;
636 if (var7 == NULL) {
637 var9 = (var8 != NULL);
638 } else {
639 var9 = ((short int (*)(val*, val*))(var7->class->vft[COLOR_kernel__Object___33d_61d]))(var7, var8) /* != on <var7:nullable SourceFile>*/;
640 }
641 if (var9){
642 var10 = 0;
643 var = var10;
644 goto RET_LABEL;
645 } else {
646 }
647 var11 = ((long (*)(val*))(var_other->class->vft[COLOR_location__Location__line_start]))(var_other) /* line_start on <var_other:nullable Object(Location)>*/;
648 var12 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_start]))(self) /* line_start on <self:Location>*/;
649 { /* Inline kernel#Int#!= (var11,var12) */
650 var15 = var11 == var12;
651 var16 = !var15;
652 var13 = var16;
653 goto RET_LABEL14;
654 RET_LABEL14:(void)0;
655 }
656 if (var13){
657 var17 = 0;
658 var = var17;
659 goto RET_LABEL;
660 } else {
661 }
662 var18 = ((long (*)(val*))(var_other->class->vft[COLOR_location__Location__line_end]))(var_other) /* line_end on <var_other:nullable Object(Location)>*/;
663 var19 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_end]))(self) /* line_end on <self:Location>*/;
664 { /* Inline kernel#Int#!= (var18,var19) */
665 var22 = var18 == var19;
666 var23 = !var22;
667 var20 = var23;
668 goto RET_LABEL21;
669 RET_LABEL21:(void)0;
670 }
671 if (var20){
672 var24 = 0;
673 var = var24;
674 goto RET_LABEL;
675 } else {
676 }
677 var25 = ((long (*)(val*))(var_other->class->vft[COLOR_location__Location__column_start]))(var_other) /* column_start on <var_other:nullable Object(Location)>*/;
678 var26 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_start]))(self) /* column_start on <self:Location>*/;
679 { /* Inline kernel#Int#!= (var25,var26) */
680 var29 = var25 == var26;
681 var30 = !var29;
682 var27 = var30;
683 goto RET_LABEL28;
684 RET_LABEL28:(void)0;
685 }
686 if (var27){
687 var31 = 0;
688 var = var31;
689 goto RET_LABEL;
690 } else {
691 }
692 var32 = ((long (*)(val*))(var_other->class->vft[COLOR_location__Location__column_end]))(var_other) /* column_end on <var_other:nullable Object(Location)>*/;
693 var33 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_end]))(self) /* column_end on <self:Location>*/;
694 { /* Inline kernel#Int#!= (var32,var33) */
695 var36 = var32 == var33;
696 var37 = !var36;
697 var34 = var37;
698 goto RET_LABEL35;
699 RET_LABEL35:(void)0;
700 }
701 if (var34){
702 var38 = 0;
703 var = var38;
704 goto RET_LABEL;
705 } else {
706 }
707 var39 = 1;
708 var = var39;
709 goto RET_LABEL;
710 RET_LABEL:;
711 return var;
712 }
713 /* method location#Location#== for (self: Object, nullable Object): Bool */
714 short int VIRTUAL_location__Location___61d_61d(val* self, val* p0) {
715 short int var /* : Bool */;
716 short int var1 /* : Bool */;
717 var1 = location__Location___61d_61d(self, p0);
718 var = var1;
719 RET_LABEL:;
720 return var;
721 }
722 /* method location#Location#located_in for (self: Location, nullable Location): Bool */
723 short int location__Location__located_in(val* self, val* p0) {
724 short int var /* : Bool */;
725 val* var_loc /* var loc: nullable Location */;
726 val* var1 /* : null */;
727 short int var2 /* : Bool */;
728 short int var3 /* : Bool */;
729 long var4 /* : Int */;
730 long var5 /* : Int */;
731 short int var6 /* : Bool */;
732 short int var8 /* : Bool */;
733 int cltype;
734 int idtype;
735 const char* var_class_name;
736 short int var9 /* : Bool */;
737 short int var10 /* : Bool */;
738 long var11 /* : Int */;
739 long var12 /* : Int */;
740 short int var13 /* : Bool */;
741 short int var15 /* : Bool */;
742 int cltype16;
743 int idtype17;
744 const char* var_class_name18;
745 short int var19 /* : Bool */;
746 short int var20 /* : Bool */;
747 long var21 /* : Int */;
748 long var22 /* : Int */;
749 short int var23 /* : Bool */;
750 short int var25 /* : Bool */;
751 int cltype26;
752 int idtype27;
753 const char* var_class_name28;
754 short int var29 /* : Bool */;
755 short int var30 /* : Bool */;
756 long var31 /* : Int */;
757 long var32 /* : Int */;
758 short int var33 /* : Bool */;
759 short int var35 /* : Bool */;
760 long var36 /* : Int */;
761 long var37 /* : Int */;
762 short int var38 /* : Bool */;
763 short int var40 /* : Bool */;
764 int cltype41;
765 int idtype42;
766 const char* var_class_name43;
767 short int var44 /* : Bool */;
768 short int var45 /* : Bool */;
769 long var46 /* : Int */;
770 long var47 /* : Int */;
771 short int var48 /* : Bool */;
772 short int var50 /* : Bool */;
773 int cltype51;
774 int idtype52;
775 const char* var_class_name53;
776 short int var54 /* : Bool */;
777 short int var55 /* : Bool */;
778 short int var56 /* : Bool */;
779 long var57 /* : Int */;
780 long var58 /* : Int */;
781 short int var59 /* : Bool */;
782 short int var61 /* : Bool */;
783 short int var_ /* var : Bool */;
784 long var62 /* : Int */;
785 long var63 /* : Int */;
786 short int var64 /* : Bool */;
787 short int var66 /* : Bool */;
788 int cltype67;
789 int idtype68;
790 const char* var_class_name69;
791 short int var70 /* : Bool */;
792 short int var71 /* : Bool */;
793 short int var72 /* : Bool */;
794 var_loc = p0;
795 var1 = NULL;
796 if (var_loc == NULL) {
797 var2 = 1; /* is null */
798 } else {
799 var2 = 0; /* arg is null but recv is not */
800 }
801 if (var2){
802 var3 = 0;
803 var = var3;
804 goto RET_LABEL;
805 } else {
806 }
807 var4 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_start]))(self) /* line_start on <self:Location>*/;
808 var5 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__line_start]))(var_loc) /* line_start on <var_loc:nullable Location(Location)>*/;
809 { /* Inline kernel#Int#< (var4,var5) */
810 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
811 /* <var5:Int> isa OTHER */
812 var8 = 1; /* easy <var5:Int> isa OTHER*/
813 if (!var8) {
814 var_class_name = type_kernel__Int.name;
815 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
816 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
817 show_backtrace(1);
818 }
819 var9 = var4 < var5;
820 var6 = var9;
821 goto RET_LABEL7;
822 RET_LABEL7:(void)0;
823 }
824 if (var6){
825 var10 = 0;
826 var = var10;
827 goto RET_LABEL;
828 } else {
829 }
830 var11 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_start]))(self) /* line_start on <self:Location>*/;
831 var12 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__line_end]))(var_loc) /* line_end on <var_loc:nullable Location(Location)>*/;
832 { /* Inline kernel#Int#> (var11,var12) */
833 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
834 /* <var12:Int> isa OTHER */
835 var15 = 1; /* easy <var12:Int> isa OTHER*/
836 if (!var15) {
837 var_class_name18 = type_kernel__Int.name;
838 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
839 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
840 show_backtrace(1);
841 }
842 var19 = var11 > var12;
843 var13 = var19;
844 goto RET_LABEL14;
845 RET_LABEL14:(void)0;
846 }
847 if (var13){
848 var20 = 0;
849 var = var20;
850 goto RET_LABEL;
851 } else {
852 }
853 var21 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_end]))(self) /* line_end on <self:Location>*/;
854 var22 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__line_end]))(var_loc) /* line_end on <var_loc:nullable Location(Location)>*/;
855 { /* Inline kernel#Int#> (var21,var22) */
856 /* Covariant cast for argument 0 (i) <var22:Int> isa OTHER */
857 /* <var22:Int> isa OTHER */
858 var25 = 1; /* easy <var22:Int> isa OTHER*/
859 if (!var25) {
860 var_class_name28 = type_kernel__Int.name;
861 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
862 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
863 show_backtrace(1);
864 }
865 var29 = var21 > var22;
866 var23 = var29;
867 goto RET_LABEL24;
868 RET_LABEL24:(void)0;
869 }
870 if (var23){
871 var30 = 0;
872 var = var30;
873 goto RET_LABEL;
874 } else {
875 }
876 var31 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_start]))(self) /* line_start on <self:Location>*/;
877 var32 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__line_start]))(var_loc) /* line_start on <var_loc:nullable Location(Location)>*/;
878 { /* Inline kernel#Int#== (var31,var32) */
879 var35 = var31 == var32;
880 var33 = var35;
881 goto RET_LABEL34;
882 RET_LABEL34:(void)0;
883 }
884 if (var33){
885 var36 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_start]))(self) /* column_start on <self:Location>*/;
886 var37 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__column_start]))(var_loc) /* column_start on <var_loc:nullable Location(Location)>*/;
887 { /* Inline kernel#Int#< (var36,var37) */
888 /* Covariant cast for argument 0 (i) <var37:Int> isa OTHER */
889 /* <var37:Int> isa OTHER */
890 var40 = 1; /* easy <var37:Int> isa OTHER*/
891 if (!var40) {
892 var_class_name43 = type_kernel__Int.name;
893 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43);
894 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
895 show_backtrace(1);
896 }
897 var44 = var36 < var37;
898 var38 = var44;
899 goto RET_LABEL39;
900 RET_LABEL39:(void)0;
901 }
902 if (var38){
903 var45 = 0;
904 var = var45;
905 goto RET_LABEL;
906 } else {
907 }
908 var46 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_start]))(self) /* column_start on <self:Location>*/;
909 var47 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__column_end]))(var_loc) /* column_end on <var_loc:nullable Location(Location)>*/;
910 { /* Inline kernel#Int#> (var46,var47) */
911 /* Covariant cast for argument 0 (i) <var47:Int> isa OTHER */
912 /* <var47:Int> isa OTHER */
913 var50 = 1; /* easy <var47:Int> isa OTHER*/
914 if (!var50) {
915 var_class_name53 = type_kernel__Int.name;
916 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
917 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
918 show_backtrace(1);
919 }
920 var54 = var46 > var47;
921 var48 = var54;
922 goto RET_LABEL49;
923 RET_LABEL49:(void)0;
924 }
925 if (var48){
926 var55 = 0;
927 var = var55;
928 goto RET_LABEL;
929 } else {
930 }
931 } else {
932 }
933 var57 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_end]))(self) /* line_end on <self:Location>*/;
934 var58 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__line_end]))(var_loc) /* line_end on <var_loc:nullable Location(Location)>*/;
935 { /* Inline kernel#Int#== (var57,var58) */
936 var61 = var57 == var58;
937 var59 = var61;
938 goto RET_LABEL60;
939 RET_LABEL60:(void)0;
940 }
941 var_ = var59;
942 if (var59){
943 var62 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_end]))(self) /* column_end on <self:Location>*/;
944 var63 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__column_end]))(var_loc) /* column_end on <var_loc:nullable Location(Location)>*/;
945 { /* Inline kernel#Int#> (var62,var63) */
946 /* Covariant cast for argument 0 (i) <var63:Int> isa OTHER */
947 /* <var63:Int> isa OTHER */
948 var66 = 1; /* easy <var63:Int> isa OTHER*/
949 if (!var66) {
950 var_class_name69 = type_kernel__Int.name;
951 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name69);
952 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
953 show_backtrace(1);
954 }
955 var70 = var62 > var63;
956 var64 = var70;
957 goto RET_LABEL65;
958 RET_LABEL65:(void)0;
959 }
960 var56 = var64;
961 } else {
962 var56 = var_;
963 }
964 if (var56){
965 var71 = 0;
966 var = var71;
967 goto RET_LABEL;
968 } else {
969 }
970 var72 = 1;
971 var = var72;
972 goto RET_LABEL;
973 RET_LABEL:;
974 return var;
975 }
976 /* method location#Location#located_in for (self: Object, nullable Location): Bool */
977 short int VIRTUAL_location__Location__located_in(val* self, val* p0) {
978 short int var /* : Bool */;
979 short int var1 /* : Bool */;
980 var1 = location__Location__located_in(self, p0);
981 var = var1;
982 RET_LABEL:;
983 return var;
984 }
985 /* method location#Location#to_s for (self: Location): String */
986 val* location__Location__to_s(val* self) {
987 val* var /* : String */;
988 static val* varonce;
989 val* var1 /* : String */;
990 char* var2 /* : NativeString */;
991 long var3 /* : Int */;
992 val* var4 /* : String */;
993 val* var_file_part /* var file_part: String */;
994 val* var5 /* : nullable SourceFile */;
995 val* var6 /* : null */;
996 short int var7 /* : Bool */;
997 val* var8 /* : nullable SourceFile */;
998 val* var9 /* : String */;
999 val* var10 /* : nullable SourceFile */;
1000 val* var11 /* : String */;
1001 long var12 /* : Int */;
1002 long var13 /* : Int */;
1003 short int var14 /* : Bool */;
1004 short int var16 /* : Bool */;
1005 int cltype;
1006 int idtype;
1007 const char* var_class_name;
1008 short int var17 /* : Bool */;
1009 static val* varonce18;
1010 val* var19 /* : String */;
1011 char* var20 /* : NativeString */;
1012 long var21 /* : Int */;
1013 val* var22 /* : String */;
1014 val* var23 /* : String */;
1015 long var24 /* : Int */;
1016 long var25 /* : Int */;
1017 short int var26 /* : Bool */;
1018 short int var28 /* : Bool */;
1019 long var29 /* : Int */;
1020 long var30 /* : Int */;
1021 short int var31 /* : Bool */;
1022 short int var33 /* : Bool */;
1023 val* var34 /* : Array[Object] */;
1024 long var35 /* : Int */;
1025 val* var_ /* var : Array[Object] */;
1026 static val* varonce36;
1027 val* var37 /* : String */;
1028 char* var38 /* : NativeString */;
1029 long var39 /* : Int */;
1030 val* var40 /* : String */;
1031 static val* varonce41;
1032 val* var42 /* : String */;
1033 char* var43 /* : NativeString */;
1034 long var44 /* : Int */;
1035 val* var45 /* : String */;
1036 long var46 /* : Int */;
1037 val* var47 /* : nullable Object */;
1038 static val* varonce48;
1039 val* var49 /* : String */;
1040 char* var50 /* : NativeString */;
1041 long var51 /* : Int */;
1042 val* var52 /* : String */;
1043 long var53 /* : Int */;
1044 val* var54 /* : nullable Object */;
1045 static val* varonce55;
1046 val* var56 /* : String */;
1047 char* var57 /* : NativeString */;
1048 long var58 /* : Int */;
1049 val* var59 /* : String */;
1050 val* var60 /* : String */;
1051 val* var61 /* : Array[Object] */;
1052 long var62 /* : Int */;
1053 val* var_63 /* var : Array[Object] */;
1054 static val* varonce64;
1055 val* var65 /* : String */;
1056 char* var66 /* : NativeString */;
1057 long var67 /* : Int */;
1058 val* var68 /* : String */;
1059 static val* varonce69;
1060 val* var70 /* : String */;
1061 char* var71 /* : NativeString */;
1062 long var72 /* : Int */;
1063 val* var73 /* : String */;
1064 long var74 /* : Int */;
1065 val* var75 /* : nullable Object */;
1066 static val* varonce76;
1067 val* var77 /* : String */;
1068 char* var78 /* : NativeString */;
1069 long var79 /* : Int */;
1070 val* var80 /* : String */;
1071 long var81 /* : Int */;
1072 val* var82 /* : nullable Object */;
1073 static val* varonce83;
1074 val* var84 /* : String */;
1075 char* var85 /* : NativeString */;
1076 long var86 /* : Int */;
1077 val* var87 /* : String */;
1078 long var88 /* : Int */;
1079 val* var89 /* : nullable Object */;
1080 static val* varonce90;
1081 val* var91 /* : String */;
1082 char* var92 /* : NativeString */;
1083 long var93 /* : Int */;
1084 val* var94 /* : String */;
1085 val* var95 /* : String */;
1086 val* var96 /* : Array[Object] */;
1087 long var97 /* : Int */;
1088 val* var_98 /* var : Array[Object] */;
1089 static val* varonce99;
1090 val* var100 /* : String */;
1091 char* var101 /* : NativeString */;
1092 long var102 /* : Int */;
1093 val* var103 /* : String */;
1094 static val* varonce104;
1095 val* var105 /* : String */;
1096 char* var106 /* : NativeString */;
1097 long var107 /* : Int */;
1098 val* var108 /* : String */;
1099 long var109 /* : Int */;
1100 val* var110 /* : nullable Object */;
1101 static val* varonce111;
1102 val* var112 /* : String */;
1103 char* var113 /* : NativeString */;
1104 long var114 /* : Int */;
1105 val* var115 /* : String */;
1106 long var116 /* : Int */;
1107 val* var117 /* : nullable Object */;
1108 static val* varonce118;
1109 val* var119 /* : String */;
1110 char* var120 /* : NativeString */;
1111 long var121 /* : Int */;
1112 val* var122 /* : String */;
1113 long var123 /* : Int */;
1114 val* var124 /* : nullable Object */;
1115 static val* varonce125;
1116 val* var126 /* : String */;
1117 char* var127 /* : NativeString */;
1118 long var128 /* : Int */;
1119 val* var129 /* : String */;
1120 long var130 /* : Int */;
1121 val* var131 /* : nullable Object */;
1122 static val* varonce132;
1123 val* var133 /* : String */;
1124 char* var134 /* : NativeString */;
1125 long var135 /* : Int */;
1126 val* var136 /* : String */;
1127 val* var137 /* : String */;
1128 if (varonce) {
1129 var1 = varonce;
1130 } else {
1131 var2 = "";
1132 var3 = 0;
1133 var4 = string__NativeString__to_s_with_length(var2, var3);
1134 var1 = var4;
1135 varonce = var1;
1136 }
1137 var_file_part = var1;
1138 var5 = ((val* (*)(val*))(self->class->vft[COLOR_location__Location__file]))(self) /* file on <self:Location>*/;
1139 var6 = NULL;
1140 if (var5 == NULL) {
1141 var7 = 0; /* is null */
1142 } else {
1143 var7 = 1; /* arg is null and recv is not */
1144 }
1145 if (var7){
1146 var8 = ((val* (*)(val*))(self->class->vft[COLOR_location__Location__file]))(self) /* file on <self:Location>*/;
1147 if (var8 == NULL) {
1148 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1149 fprintf(stderr, " (%s:%d)\n", "src/location.nit", 124);
1150 show_backtrace(1);
1151 } else {
1152 var9 = ((val* (*)(val*))(var8->class->vft[COLOR_location__SourceFile__filename]))(var8) /* filename on <var8:nullable SourceFile>*/;
1153 }
1154 var_file_part = var9;
1155 var10 = ((val* (*)(val*))(self->class->vft[COLOR_location__Location__file]))(self) /* file on <self:Location>*/;
1156 if (var10 == NULL) {
1157 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1158 fprintf(stderr, " (%s:%d)\n", "src/location.nit", 125);
1159 show_backtrace(1);
1160 } else {
1161 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_location__SourceFile__filename]))(var10) /* filename on <var10:nullable SourceFile>*/;
1162 }
1163 var12 = ((long (*)(val*))(var11->class->vft[COLOR_abstract_collection__Collection__length]))(var11) /* length on <var11:String>*/;
1164 var13 = 0;
1165 { /* Inline kernel#Int#> (var12,var13) */
1166 /* Covariant cast for argument 0 (i) <var13:Int> isa OTHER */
1167 /* <var13:Int> isa OTHER */
1168 var16 = 1; /* easy <var13:Int> isa OTHER*/
1169 if (!var16) {
1170 var_class_name = type_kernel__Int.name;
1171 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1172 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
1173 show_backtrace(1);
1174 }
1175 var17 = var12 > var13;
1176 var14 = var17;
1177 goto RET_LABEL15;
1178 RET_LABEL15:(void)0;
1179 }
1180 if (var14){
1181 if (varonce18) {
1182 var19 = varonce18;
1183 } else {
1184 var20 = ":";
1185 var21 = 1;
1186 var22 = string__NativeString__to_s_with_length(var20, var21);
1187 var19 = var22;
1188 varonce18 = var19;
1189 }
1190 var23 = ((val* (*)(val*, val*))(var_file_part->class->vft[COLOR_string__String___43d]))(var_file_part, var19) /* + on <var_file_part:String>*/;
1191 var_file_part = var23;
1192 } else {
1193 }
1194 } else {
1195 }
1196 var24 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_start]))(self) /* line_start on <self:Location>*/;
1197 var25 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_end]))(self) /* line_end on <self:Location>*/;
1198 { /* Inline kernel#Int#== (var24,var25) */
1199 var28 = var24 == var25;
1200 var26 = var28;
1201 goto RET_LABEL27;
1202 RET_LABEL27:(void)0;
1203 }
1204 if (var26){
1205 var29 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_start]))(self) /* column_start on <self:Location>*/;
1206 var30 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_end]))(self) /* column_end on <self:Location>*/;
1207 { /* Inline kernel#Int#== (var29,var30) */
1208 var33 = var29 == var30;
1209 var31 = var33;
1210 goto RET_LABEL32;
1211 RET_LABEL32:(void)0;
1212 }
1213 if (var31){
1214 var34 = NEW_array__Array(&type_array__Arraykernel__Object);
1215 var35 = 7;
1216 ((void (*)(val*, long))(var34->class->vft[COLOR_array__Array__with_capacity]))(var34, var35) /* with_capacity on <var34:Array[Object]>*/;
1217 var_ = var34;
1218 if (varonce36) {
1219 var37 = varonce36;
1220 } else {
1221 var38 = "";
1222 var39 = 0;
1223 var40 = string__NativeString__to_s_with_length(var38, var39);
1224 var37 = var40;
1225 varonce36 = var37;
1226 }
1227 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var37) /* add on <var_:Array[Object]>*/;
1228 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_file_part) /* add on <var_:Array[Object]>*/;
1229 if (varonce41) {
1230 var42 = varonce41;
1231 } else {
1232 var43 = "";
1233 var44 = 0;
1234 var45 = string__NativeString__to_s_with_length(var43, var44);
1235 var42 = var45;
1236 varonce41 = var42;
1237 }
1238 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var42) /* add on <var_:Array[Object]>*/;
1239 var46 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_start]))(self) /* line_start on <self:Location>*/;
1240 var47 = BOX_kernel__Int(var46); /* autobox from Int to nullable Object */
1241 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var47) /* add on <var_:Array[Object]>*/;
1242 if (varonce48) {
1243 var49 = varonce48;
1244 } else {
1245 var50 = ",";
1246 var51 = 1;
1247 var52 = string__NativeString__to_s_with_length(var50, var51);
1248 var49 = var52;
1249 varonce48 = var49;
1250 }
1251 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var49) /* add on <var_:Array[Object]>*/;
1252 var53 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_start]))(self) /* column_start on <self:Location>*/;
1253 var54 = BOX_kernel__Int(var53); /* autobox from Int to nullable Object */
1254 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var54) /* add on <var_:Array[Object]>*/;
1255 if (varonce55) {
1256 var56 = varonce55;
1257 } else {
1258 var57 = "";
1259 var58 = 0;
1260 var59 = string__NativeString__to_s_with_length(var57, var58);
1261 var56 = var59;
1262 varonce55 = var56;
1263 }
1264 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var56) /* add on <var_:Array[Object]>*/;
1265 var60 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
1266 var = var60;
1267 goto RET_LABEL;
1268 } else {
1269 var61 = NEW_array__Array(&type_array__Arraykernel__Object);
1270 var62 = 9;
1271 ((void (*)(val*, long))(var61->class->vft[COLOR_array__Array__with_capacity]))(var61, var62) /* with_capacity on <var61:Array[Object]>*/;
1272 var_63 = var61;
1273 if (varonce64) {
1274 var65 = varonce64;
1275 } else {
1276 var66 = "";
1277 var67 = 0;
1278 var68 = string__NativeString__to_s_with_length(var66, var67);
1279 var65 = var68;
1280 varonce64 = var65;
1281 }
1282 ((void (*)(val*, val*))(var_63->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_63, var65) /* add on <var_63:Array[Object]>*/;
1283 ((void (*)(val*, val*))(var_63->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_63, var_file_part) /* add on <var_63:Array[Object]>*/;
1284 if (varonce69) {
1285 var70 = varonce69;
1286 } else {
1287 var71 = "";
1288 var72 = 0;
1289 var73 = string__NativeString__to_s_with_length(var71, var72);
1290 var70 = var73;
1291 varonce69 = var70;
1292 }
1293 ((void (*)(val*, val*))(var_63->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_63, var70) /* add on <var_63:Array[Object]>*/;
1294 var74 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_start]))(self) /* line_start on <self:Location>*/;
1295 var75 = BOX_kernel__Int(var74); /* autobox from Int to nullable Object */
1296 ((void (*)(val*, val*))(var_63->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_63, var75) /* add on <var_63:Array[Object]>*/;
1297 if (varonce76) {
1298 var77 = varonce76;
1299 } else {
1300 var78 = ",";
1301 var79 = 1;
1302 var80 = string__NativeString__to_s_with_length(var78, var79);
1303 var77 = var80;
1304 varonce76 = var77;
1305 }
1306 ((void (*)(val*, val*))(var_63->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_63, var77) /* add on <var_63:Array[Object]>*/;
1307 var81 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_start]))(self) /* column_start on <self:Location>*/;
1308 var82 = BOX_kernel__Int(var81); /* autobox from Int to nullable Object */
1309 ((void (*)(val*, val*))(var_63->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_63, var82) /* add on <var_63:Array[Object]>*/;
1310 if (varonce83) {
1311 var84 = varonce83;
1312 } else {
1313 var85 = "--";
1314 var86 = 2;
1315 var87 = string__NativeString__to_s_with_length(var85, var86);
1316 var84 = var87;
1317 varonce83 = var84;
1318 }
1319 ((void (*)(val*, val*))(var_63->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_63, var84) /* add on <var_63:Array[Object]>*/;
1320 var88 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_end]))(self) /* column_end on <self:Location>*/;
1321 var89 = BOX_kernel__Int(var88); /* autobox from Int to nullable Object */
1322 ((void (*)(val*, val*))(var_63->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_63, var89) /* add on <var_63:Array[Object]>*/;
1323 if (varonce90) {
1324 var91 = varonce90;
1325 } else {
1326 var92 = "";
1327 var93 = 0;
1328 var94 = string__NativeString__to_s_with_length(var92, var93);
1329 var91 = var94;
1330 varonce90 = var91;
1331 }
1332 ((void (*)(val*, val*))(var_63->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_63, var91) /* add on <var_63:Array[Object]>*/;
1333 var95 = ((val* (*)(val*))(var_63->class->vft[COLOR_string__Object__to_s]))(var_63) /* to_s on <var_63:Array[Object]>*/;
1334 var = var95;
1335 goto RET_LABEL;
1336 }
1337 } else {
1338 var96 = NEW_array__Array(&type_array__Arraykernel__Object);
1339 var97 = 11;
1340 ((void (*)(val*, long))(var96->class->vft[COLOR_array__Array__with_capacity]))(var96, var97) /* with_capacity on <var96:Array[Object]>*/;
1341 var_98 = var96;
1342 if (varonce99) {
1343 var100 = varonce99;
1344 } else {
1345 var101 = "";
1346 var102 = 0;
1347 var103 = string__NativeString__to_s_with_length(var101, var102);
1348 var100 = var103;
1349 varonce99 = var100;
1350 }
1351 ((void (*)(val*, val*))(var_98->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_98, var100) /* add on <var_98:Array[Object]>*/;
1352 ((void (*)(val*, val*))(var_98->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_98, var_file_part) /* add on <var_98:Array[Object]>*/;
1353 if (varonce104) {
1354 var105 = varonce104;
1355 } else {
1356 var106 = "";
1357 var107 = 0;
1358 var108 = string__NativeString__to_s_with_length(var106, var107);
1359 var105 = var108;
1360 varonce104 = var105;
1361 }
1362 ((void (*)(val*, val*))(var_98->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_98, var105) /* add on <var_98:Array[Object]>*/;
1363 var109 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_start]))(self) /* line_start on <self:Location>*/;
1364 var110 = BOX_kernel__Int(var109); /* autobox from Int to nullable Object */
1365 ((void (*)(val*, val*))(var_98->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_98, var110) /* add on <var_98:Array[Object]>*/;
1366 if (varonce111) {
1367 var112 = varonce111;
1368 } else {
1369 var113 = ",";
1370 var114 = 1;
1371 var115 = string__NativeString__to_s_with_length(var113, var114);
1372 var112 = var115;
1373 varonce111 = var112;
1374 }
1375 ((void (*)(val*, val*))(var_98->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_98, var112) /* add on <var_98:Array[Object]>*/;
1376 var116 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_start]))(self) /* column_start on <self:Location>*/;
1377 var117 = BOX_kernel__Int(var116); /* autobox from Int to nullable Object */
1378 ((void (*)(val*, val*))(var_98->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_98, var117) /* add on <var_98:Array[Object]>*/;
1379 if (varonce118) {
1380 var119 = varonce118;
1381 } else {
1382 var120 = "--";
1383 var121 = 2;
1384 var122 = string__NativeString__to_s_with_length(var120, var121);
1385 var119 = var122;
1386 varonce118 = var119;
1387 }
1388 ((void (*)(val*, val*))(var_98->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_98, var119) /* add on <var_98:Array[Object]>*/;
1389 var123 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_end]))(self) /* line_end on <self:Location>*/;
1390 var124 = BOX_kernel__Int(var123); /* autobox from Int to nullable Object */
1391 ((void (*)(val*, val*))(var_98->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_98, var124) /* add on <var_98:Array[Object]>*/;
1392 if (varonce125) {
1393 var126 = varonce125;
1394 } else {
1395 var127 = ",";
1396 var128 = 1;
1397 var129 = string__NativeString__to_s_with_length(var127, var128);
1398 var126 = var129;
1399 varonce125 = var126;
1400 }
1401 ((void (*)(val*, val*))(var_98->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_98, var126) /* add on <var_98:Array[Object]>*/;
1402 var130 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_end]))(self) /* column_end on <self:Location>*/;
1403 var131 = BOX_kernel__Int(var130); /* autobox from Int to nullable Object */
1404 ((void (*)(val*, val*))(var_98->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_98, var131) /* add on <var_98:Array[Object]>*/;
1405 if (varonce132) {
1406 var133 = varonce132;
1407 } else {
1408 var134 = "";
1409 var135 = 0;
1410 var136 = string__NativeString__to_s_with_length(var134, var135);
1411 var133 = var136;
1412 varonce132 = var133;
1413 }
1414 ((void (*)(val*, val*))(var_98->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_98, var133) /* add on <var_98:Array[Object]>*/;
1415 var137 = ((val* (*)(val*))(var_98->class->vft[COLOR_string__Object__to_s]))(var_98) /* to_s on <var_98:Array[Object]>*/;
1416 var = var137;
1417 goto RET_LABEL;
1418 }
1419 RET_LABEL:;
1420 return var;
1421 }
1422 /* method location#Location#to_s for (self: Object): String */
1423 val* VIRTUAL_location__Location__to_s(val* self) {
1424 val* var /* : String */;
1425 val* var1 /* : String */;
1426 var1 = location__Location__to_s(self);
1427 var = var1;
1428 RET_LABEL:;
1429 return var;
1430 }
1431 /* method location#Location#relative_to for (self: Location, nullable Location): String */
1432 val* location__Location__relative_to(val* self, val* p0) {
1433 val* var /* : String */;
1434 val* var_loc /* var loc: nullable Location */;
1435 short int var1 /* : Bool */;
1436 val* var2 /* : null */;
1437 short int var3 /* : Bool */;
1438 val* var4 /* : nullable SourceFile */;
1439 val* var5 /* : nullable SourceFile */;
1440 short int var6 /* : Bool */;
1441 val* var7 /* : Location */;
1442 val* var8 /* : null */;
1443 long var9 /* : Int */;
1444 long var10 /* : Int */;
1445 long var11 /* : Int */;
1446 long var12 /* : Int */;
1447 val* var_relative /* var relative: Location */;
1448 val* var13 /* : Location */;
1449 val* var14 /* : nullable SourceFile */;
1450 long var15 /* : Int */;
1451 long var16 /* : Int */;
1452 long var17 /* : Int */;
1453 long var18 /* : Int */;
1454 val* var19 /* : String */;
1455 var_loc = p0;
1456 var2 = NULL;
1457 if (var_loc == NULL) {
1458 var3 = 0; /* is null */
1459 } else {
1460 var3 = 1; /* arg is null and recv is not */
1461 }
1462 if (!var3) {
1463 var1 = 0;
1464 } else {
1465 var4 = ((val* (*)(val*))(var_loc->class->vft[COLOR_location__Location__file]))(var_loc) /* file on <var_loc:nullable Location(Location)>*/;
1466 var5 = ((val* (*)(val*))(self->class->vft[COLOR_location__Location__file]))(self) /* file on <self:Location>*/;
1467 if (var4 == NULL) {
1468 var6 = (var5 == NULL);
1469 } else {
1470 var6 = ((short int (*)(val*, val*))(var4->class->vft[COLOR_kernel__Object___61d_61d]))(var4, var5) /* == on <var4:nullable SourceFile>*/;
1471 }
1472 var1 = var6;
1473 }
1474 if (var1){
1475 var7 = NEW_location__Location(&type_location__Location);
1476 var8 = NULL;
1477 var9 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_start]))(self) /* line_start on <self:Location>*/;
1478 var10 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_end]))(self) /* line_end on <self:Location>*/;
1479 var11 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_start]))(self) /* column_start on <self:Location>*/;
1480 var12 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_end]))(self) /* column_end on <self:Location>*/;
1481 ((void (*)(val*, val*, long, long, long, long))(var7->class->vft[COLOR_location__Location__init]))(var7, var8, var9, var10, var11, var12) /* init on <var7:Location>*/;
1482 var_relative = var7;
1483 } else {
1484 var13 = NEW_location__Location(&type_location__Location);
1485 var14 = ((val* (*)(val*))(self->class->vft[COLOR_location__Location__file]))(self) /* file on <self:Location>*/;
1486 var15 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_start]))(self) /* line_start on <self:Location>*/;
1487 var16 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_end]))(self) /* line_end on <self:Location>*/;
1488 var17 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_start]))(self) /* column_start on <self:Location>*/;
1489 var18 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_end]))(self) /* column_end on <self:Location>*/;
1490 ((void (*)(val*, val*, long, long, long, long))(var13->class->vft[COLOR_location__Location__init]))(var13, var14, var15, var16, var17, var18) /* init on <var13:Location>*/;
1491 var_relative = var13;
1492 }
1493 var19 = ((val* (*)(val*))(var_relative->class->vft[COLOR_string__Object__to_s]))(var_relative) /* to_s on <var_relative:Location>*/;
1494 var = var19;
1495 goto RET_LABEL;
1496 RET_LABEL:;
1497 return var;
1498 }
1499 /* method location#Location#relative_to for (self: Object, nullable Location): String */
1500 val* VIRTUAL_location__Location__relative_to(val* self, val* p0) {
1501 val* var /* : String */;
1502 val* var1 /* : String */;
1503 var1 = location__Location__relative_to(self, p0);
1504 var = var1;
1505 RET_LABEL:;
1506 return var;
1507 }
1508 /* method location#Location#< for (self: Location, Location): Bool */
1509 short int location__Location___60d(val* self, val* p0) {
1510 short int var /* : Bool */;
1511 short int var1 /* : Bool */;
1512 int cltype;
1513 int idtype;
1514 const struct type* type_struct;
1515 const char* var_class_name;
1516 val* var_other /* var other: Location */;
1517 short int var2 /* : Bool */;
1518 short int var3 /* : Bool */;
1519 short int var4 /* : Bool */;
1520 short int var5 /* : Bool */;
1521 short int var6 /* : Bool */;
1522 short int var7 /* : Bool */;
1523 long var8 /* : Int */;
1524 long var9 /* : Int */;
1525 short int var10 /* : Bool */;
1526 short int var12 /* : Bool */;
1527 short int var13 /* : Bool */;
1528 long var14 /* : Int */;
1529 long var15 /* : Int */;
1530 short int var16 /* : Bool */;
1531 short int var18 /* : Bool */;
1532 int cltype19;
1533 int idtype20;
1534 const char* var_class_name21;
1535 short int var22 /* : Bool */;
1536 long var23 /* : Int */;
1537 long var24 /* : Int */;
1538 short int var25 /* : Bool */;
1539 short int var27 /* : Bool */;
1540 short int var28 /* : Bool */;
1541 long var29 /* : Int */;
1542 long var30 /* : Int */;
1543 short int var31 /* : Bool */;
1544 short int var33 /* : Bool */;
1545 int cltype34;
1546 int idtype35;
1547 const char* var_class_name36;
1548 short int var37 /* : Bool */;
1549 long var38 /* : Int */;
1550 long var39 /* : Int */;
1551 short int var40 /* : Bool */;
1552 short int var42 /* : Bool */;
1553 short int var43 /* : Bool */;
1554 long var44 /* : Int */;
1555 long var45 /* : Int */;
1556 short int var46 /* : Bool */;
1557 short int var48 /* : Bool */;
1558 int cltype49;
1559 int idtype50;
1560 const char* var_class_name51;
1561 short int var52 /* : Bool */;
1562 long var53 /* : Int */;
1563 long var54 /* : Int */;
1564 short int var55 /* : Bool */;
1565 short int var57 /* : Bool */;
1566 int cltype58;
1567 int idtype59;
1568 const char* var_class_name60;
1569 short int var61 /* : Bool */;
1570 /* Covariant cast for argument 0 (other) <p0:Location> isa OTHER */
1571 /* <p0:Location> isa OTHER */
1572 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
1573 cltype = type_struct->color;
1574 idtype = type_struct->id;
1575 if(cltype >= p0->type->table_size) {
1576 var1 = 0;
1577 } else {
1578 var1 = p0->type->type_table[cltype] == idtype;
1579 }
1580 if (!var1) {
1581 var_class_name = p0 == NULL ? "null" : p0->type->name;
1582 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1583 fprintf(stderr, " (%s:%d)\n", "src/location.nit", 149);
1584 show_backtrace(1);
1585 }
1586 var_other = p0;
1587 var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Object___61d_61d]))(self, var_other) /* == on <self:Location>*/;
1588 if (var2){
1589 var3 = 0;
1590 var = var3;
1591 goto RET_LABEL;
1592 } else {
1593 }
1594 var4 = ((short int (*)(val*, val*))(self->class->vft[COLOR_location__Location__located_in]))(self, var_other) /* located_in on <self:Location>*/;
1595 if (var4){
1596 var5 = 1;
1597 var = var5;
1598 goto RET_LABEL;
1599 } else {
1600 }
1601 var6 = ((short int (*)(val*, val*))(var_other->class->vft[COLOR_location__Location__located_in]))(var_other, self) /* located_in on <var_other:Location>*/;
1602 if (var6){
1603 var7 = 0;
1604 var = var7;
1605 goto RET_LABEL;
1606 } else {
1607 }
1608 var8 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_start]))(self) /* line_start on <self:Location>*/;
1609 var9 = ((long (*)(val*))(var_other->class->vft[COLOR_location__Location__line_start]))(var_other) /* line_start on <var_other:Location>*/;
1610 { /* Inline kernel#Int#!= (var8,var9) */
1611 var12 = var8 == var9;
1612 var13 = !var12;
1613 var10 = var13;
1614 goto RET_LABEL11;
1615 RET_LABEL11:(void)0;
1616 }
1617 if (var10){
1618 var14 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_start]))(self) /* line_start on <self:Location>*/;
1619 var15 = ((long (*)(val*))(var_other->class->vft[COLOR_location__Location__line_start]))(var_other) /* line_start on <var_other:Location>*/;
1620 { /* Inline kernel#Int#< (var14,var15) */
1621 /* Covariant cast for argument 0 (i) <var15:Int> isa OTHER */
1622 /* <var15:Int> isa OTHER */
1623 var18 = 1; /* easy <var15:Int> isa OTHER*/
1624 if (!var18) {
1625 var_class_name21 = type_kernel__Int.name;
1626 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
1627 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1628 show_backtrace(1);
1629 }
1630 var22 = var14 < var15;
1631 var16 = var22;
1632 goto RET_LABEL17;
1633 RET_LABEL17:(void)0;
1634 }
1635 var = var16;
1636 goto RET_LABEL;
1637 } else {
1638 }
1639 var23 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_start]))(self) /* column_start on <self:Location>*/;
1640 var24 = ((long (*)(val*))(var_other->class->vft[COLOR_location__Location__column_start]))(var_other) /* column_start on <var_other:Location>*/;
1641 { /* Inline kernel#Int#!= (var23,var24) */
1642 var27 = var23 == var24;
1643 var28 = !var27;
1644 var25 = var28;
1645 goto RET_LABEL26;
1646 RET_LABEL26:(void)0;
1647 }
1648 if (var25){
1649 var29 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_start]))(self) /* column_start on <self:Location>*/;
1650 var30 = ((long (*)(val*))(var_other->class->vft[COLOR_location__Location__column_start]))(var_other) /* column_start on <var_other:Location>*/;
1651 { /* Inline kernel#Int#< (var29,var30) */
1652 /* Covariant cast for argument 0 (i) <var30:Int> isa OTHER */
1653 /* <var30:Int> isa OTHER */
1654 var33 = 1; /* easy <var30:Int> isa OTHER*/
1655 if (!var33) {
1656 var_class_name36 = type_kernel__Int.name;
1657 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36);
1658 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1659 show_backtrace(1);
1660 }
1661 var37 = var29 < var30;
1662 var31 = var37;
1663 goto RET_LABEL32;
1664 RET_LABEL32:(void)0;
1665 }
1666 var = var31;
1667 goto RET_LABEL;
1668 } else {
1669 }
1670 var38 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_end]))(self) /* line_end on <self:Location>*/;
1671 var39 = ((long (*)(val*))(var_other->class->vft[COLOR_location__Location__line_end]))(var_other) /* line_end on <var_other:Location>*/;
1672 { /* Inline kernel#Int#!= (var38,var39) */
1673 var42 = var38 == var39;
1674 var43 = !var42;
1675 var40 = var43;
1676 goto RET_LABEL41;
1677 RET_LABEL41:(void)0;
1678 }
1679 if (var40){
1680 var44 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__line_end]))(self) /* line_end on <self:Location>*/;
1681 var45 = ((long (*)(val*))(var_other->class->vft[COLOR_location__Location__line_end]))(var_other) /* line_end on <var_other:Location>*/;
1682 { /* Inline kernel#Int#< (var44,var45) */
1683 /* Covariant cast for argument 0 (i) <var45:Int> isa OTHER */
1684 /* <var45:Int> isa OTHER */
1685 var48 = 1; /* easy <var45:Int> isa OTHER*/
1686 if (!var48) {
1687 var_class_name51 = type_kernel__Int.name;
1688 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name51);
1689 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1690 show_backtrace(1);
1691 }
1692 var52 = var44 < var45;
1693 var46 = var52;
1694 goto RET_LABEL47;
1695 RET_LABEL47:(void)0;
1696 }
1697 var = var46;
1698 goto RET_LABEL;
1699 } else {
1700 }
1701 var53 = ((long (*)(val*))(self->class->vft[COLOR_location__Location__column_end]))(self) /* column_end on <self:Location>*/;
1702 var54 = ((long (*)(val*))(var_other->class->vft[COLOR_location__Location__column_end]))(var_other) /* column_end on <var_other:Location>*/;
1703 { /* Inline kernel#Int#< (var53,var54) */
1704 /* Covariant cast for argument 0 (i) <var54:Int> isa OTHER */
1705 /* <var54:Int> isa OTHER */
1706 var57 = 1; /* easy <var54:Int> isa OTHER*/
1707 if (!var57) {
1708 var_class_name60 = type_kernel__Int.name;
1709 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name60);
1710 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
1711 show_backtrace(1);
1712 }
1713 var61 = var53 < var54;
1714 var55 = var61;
1715 goto RET_LABEL56;
1716 RET_LABEL56:(void)0;
1717 }
1718 var = var55;
1719 goto RET_LABEL;
1720 RET_LABEL:;
1721 return var;
1722 }
1723 /* method location#Location#< for (self: Object, Comparable): Bool */
1724 short int VIRTUAL_location__Location___60d(val* self, val* p0) {
1725 short int var /* : Bool */;
1726 short int var1 /* : Bool */;
1727 var1 = location__Location___60d(self, p0);
1728 var = var1;
1729 RET_LABEL:;
1730 return var;
1731 }
1732 /* method location#Location#colored_line for (self: Location, String): String */
1733 val* location__Location__colored_line(val* self, val* p0) {
1734 val* var /* : String */;
1735 val* var_color /* var color: String */;
1736 long var1 /* : Int */;
1737 char var2 /* : Char */;
1738 char var4 /* : Char */;
1739 char var_esc /* var esc: Char */;
1740 val* var5 /* : Array[Object] */;
1741 long var6 /* : Int */;
1742 val* var_ /* var : Array[Object] */;
1743 static val* varonce;
1744 val* var7 /* : String */;
1745 char* var8 /* : NativeString */;
1746 long var9 /* : Int */;
1747 val* var10 /* : String */;
1748 val* var11 /* : nullable Object */;
1749 static val* varonce12;
1750 val* var13 /* : String */;
1751 char* var14 /* : NativeString */;
1752 long var15 /* : Int */;
1753 val* var16 /* : String */;
1754 val* var17 /* : String */;
1755 val* var_def /* var def: String */;
1756 val* var18 /* : Array[Object] */;
1757 long var19 /* : Int */;
1758 val* var_20 /* var : Array[Object] */;
1759 static val* varonce21;
1760 val* var22 /* : String */;
1761 char* var23 /* : NativeString */;
1762 long var24 /* : Int */;
1763 val* var25 /* : String */;
1764 val* var26 /* : nullable Object */;
1765 static val* varonce27;
1766 val* var28 /* : String */;
1767 char* var29 /* : NativeString */;
1768 long var30 /* : Int */;
1769 val* var31 /* : String */;
1770 static val* varonce32;
1771 val* var33 /* : String */;
1772 char* var34 /* : NativeString */;
1773 long var35 /* : Int */;
1774 val* var36 /* : String */;
1775 val* var37 /* : String */;
1776 val* var_col /* var col: String */;
1777 val* var_l /* var l: Location */;
1778 long var38 /* : Int */;
1779 long var_i /* var i: Int */;
1780 val* var39 /* : nullable SourceFile */;
1781 val* var40 /* : Array[Int] */;
1782 long var41 /* : Int */;
1783 long var42 /* : Int */;
1784 long var44 /* : Int */;
1785 val* var45 /* : nullable Object */;
1786 long var46 /* : Int */;
1787 long var_line_start /* var line_start: Int */;
1788 long var_line_end /* var line_end: Int */;
1789 val* var47 /* : nullable SourceFile */;
1790 val* var48 /* : String */;
1791 val* var_string /* var string: String */;
1792 short int var49 /* : Bool */;
1793 short int var50 /* : Bool */;
1794 long var51 /* : Int */;
1795 long var52 /* : Int */;
1796 long var54 /* : Int */;
1797 long var55 /* : Int */;
1798 short int var56 /* : Bool */;
1799 short int var58 /* : Bool */;
1800 int cltype;
1801 int idtype;
1802 const char* var_class_name;
1803 short int var59 /* : Bool */;
1804 short int var_60 /* var : Bool */;
1805 long var61 /* : Int */;
1806 long var62 /* : Int */;
1807 long var64 /* : Int */;
1808 val* var65 /* : nullable Object */;
1809 char var66 /* : Char */;
1810 short int var67 /* : Bool */;
1811 short int var69 /* : Bool */;
1812 char var70 /* : Char */;
1813 short int var71 /* : Bool */;
1814 short int var_72 /* var : Bool */;
1815 long var73 /* : Int */;
1816 long var74 /* : Int */;
1817 long var76 /* : Int */;
1818 val* var77 /* : nullable Object */;
1819 char var78 /* : Char */;
1820 short int var79 /* : Bool */;
1821 short int var81 /* : Bool */;
1822 char var82 /* : Char */;
1823 short int var83 /* : Bool */;
1824 long var84 /* : Int */;
1825 long var85 /* : Int */;
1826 long var87 /* : Int */;
1827 long var88 /* : Int */;
1828 long var89 /* : Int */;
1829 long var90 /* : Int */;
1830 long var92 /* : Int */;
1831 val* var93 /* : String */;
1832 val* var_lstart /* var lstart: String */;
1833 long var94 /* : Int */;
1834 short int var95 /* : Bool */;
1835 short int var97 /* : Bool */;
1836 short int var98 /* : Bool */;
1837 long var99 /* : Int */;
1838 long var101 /* : Int */;
1839 long var102 /* : Int */;
1840 long var103 /* : Int */;
1841 long var105 /* : Int */;
1842 val* var106 /* : nullable Object */;
1843 val* var_cend /* var cend: nullable Object */;
1844 long var107 /* : Int */;
1845 val* var108 /* : nullable Object */;
1846 long var109 /* : Int */;
1847 long var111 /* : Int */;
1848 long var112 /* : Int */;
1849 long var113 /* : Int */;
1850 short int var114 /* : Bool */;
1851 short int var116 /* : Bool */;
1852 int cltype117;
1853 int idtype118;
1854 const char* var_class_name119;
1855 short int var120 /* : Bool */;
1856 long var121 /* : Int */;
1857 long var122 /* : Int */;
1858 long var124 /* : Int */;
1859 long var125 /* : Int */;
1860 long var126 /* : Int */;
1861 long var128 /* : Int */;
1862 long var129 /* : Int */;
1863 long var130 /* : Int */;
1864 long var132 /* : Int */;
1865 long var133 /* : Int */;
1866 long var134 /* : Int */;
1867 long var135 /* : Int */;
1868 long var137 /* : Int */;
1869 val* var138 /* : String */;
1870 val* var_lmid /* var lmid: nullable Object */;
1871 long var139 /* : Int */;
1872 long var141 /* : Int */;
1873 long var142 /* : Int */;
1874 long var143 /* : Int */;
1875 long var145 /* : Int */;
1876 long var146 /* : Int */;
1877 long var148 /* : Int */;
1878 long var149 /* : Int */;
1879 long var150 /* : Int */;
1880 long var151 /* : Int */;
1881 long var153 /* : Int */;
1882 val* var154 /* : String */;
1883 val* var_lend /* var lend: nullable Object */;
1884 static val* varonce155;
1885 val* var156 /* : String */;
1886 char* var157 /* : NativeString */;
1887 long var158 /* : Int */;
1888 val* var159 /* : String */;
1889 static val* varonce160;
1890 val* var161 /* : String */;
1891 char* var162 /* : NativeString */;
1892 long var163 /* : Int */;
1893 val* var164 /* : String */;
1894 val* var165 /* : Buffer */;
1895 val* var_indent /* var indent: Buffer */;
1896 val* var166 /* : Range[Int] */;
1897 long var167 /* : Int */;
1898 long var168 /* : Int */;
1899 long var170 /* : Int */;
1900 long var171 /* : Int */;
1901 long var172 /* : Int */;
1902 long var174 /* : Int */;
1903 val* var175 /* : Discrete */;
1904 val* var176 /* : Discrete */;
1905 val* var177 /* : Iterator[nullable Object] */;
1906 short int var178 /* : Bool */;
1907 val* var179 /* : nullable Object */;
1908 long var_j /* var j: Int */;
1909 long var180 /* : Int */;
1910 val* var181 /* : nullable Object */;
1911 char var182 /* : Char */;
1912 short int var183 /* : Bool */;
1913 short int var185 /* : Bool */;
1914 char var186 /* : Char */;
1915 char var187 /* : Char */;
1916 val* var188 /* : nullable Object */;
1917 char var189 /* : Char */;
1918 val* var190 /* : nullable Object */;
1919 val* var192 /* : Array[Object] */;
1920 long var193 /* : Int */;
1921 val* var_194 /* var : Array[Object] */;
1922 static val* varonce195;
1923 val* var196 /* : String */;
1924 char* var197 /* : NativeString */;
1925 long var198 /* : Int */;
1926 val* var199 /* : String */;
1927 static val* varonce200;
1928 val* var201 /* : String */;
1929 char* var202 /* : NativeString */;
1930 long var203 /* : Int */;
1931 val* var204 /* : String */;
1932 static val* varonce205;
1933 val* var206 /* : String */;
1934 char* var207 /* : NativeString */;
1935 long var208 /* : Int */;
1936 val* var209 /* : String */;
1937 static val* varonce210;
1938 val* var211 /* : String */;
1939 char* var212 /* : NativeString */;
1940 long var213 /* : Int */;
1941 val* var214 /* : String */;
1942 static val* varonce215;
1943 val* var216 /* : String */;
1944 char* var217 /* : NativeString */;
1945 long var218 /* : Int */;
1946 val* var219 /* : String */;
1947 static val* varonce220;
1948 val* var221 /* : String */;
1949 char* var222 /* : NativeString */;
1950 long var223 /* : Int */;
1951 val* var224 /* : String */;
1952 static val* varonce225;
1953 val* var226 /* : String */;
1954 char* var227 /* : NativeString */;
1955 long var228 /* : Int */;
1956 val* var229 /* : String */;
1957 val* var230 /* : String */;
1958 var_color = p0;
1959 var1 = 27;
1960 { /* Inline kernel#Int#ascii (var1) */
1961 var4 = var1;
1962 var2 = var4;
1963 goto RET_LABEL3;
1964 RET_LABEL3:(void)0;
1965 }
1966 var_esc = var2;
1967 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1968 var6 = 3;
1969 ((void (*)(val*, long))(var5->class->vft[COLOR_array__Array__with_capacity]))(var5, var6) /* with_capacity on <var5:Array[Object]>*/;
1970 var_ = var5;
1971 if (varonce) {
1972 var7 = varonce;
1973 } else {
1974 var8 = "";
1975 var9 = 0;
1976 var10 = string__NativeString__to_s_with_length(var8, var9);
1977 var7 = var10;
1978 varonce = var7;
1979 }
1980 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var7) /* add on <var_:Array[Object]>*/;
1981 var11 = BOX_kernel__Char(var_esc); /* autobox from Char to nullable Object */
1982 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var11) /* add on <var_:Array[Object]>*/;
1983 if (varonce12) {
1984 var13 = varonce12;
1985 } else {
1986 var14 = "[0m";
1987 var15 = 3;
1988 var16 = string__NativeString__to_s_with_length(var14, var15);
1989 var13 = var16;
1990 varonce12 = var13;
1991 }
1992 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var13) /* add on <var_:Array[Object]>*/;
1993 var17 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
1994 var_def = var17;
1995 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
1996 var19 = 5;
1997 ((void (*)(val*, long))(var18->class->vft[COLOR_array__Array__with_capacity]))(var18, var19) /* with_capacity on <var18:Array[Object]>*/;
1998 var_20 = var18;
1999 if (varonce21) {
2000 var22 = varonce21;
2001 } else {
2002 var23 = "";
2003 var24 = 0;
2004 var25 = string__NativeString__to_s_with_length(var23, var24);
2005 var22 = var25;
2006 varonce21 = var22;
2007 }
2008 ((void (*)(val*, val*))(var_20->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_20, var22) /* add on <var_20:Array[Object]>*/;
2009 var26 = BOX_kernel__Char(var_esc); /* autobox from Char to nullable Object */
2010 ((void (*)(val*, val*))(var_20->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_20, var26) /* add on <var_20:Array[Object]>*/;
2011 if (varonce27) {
2012 var28 = varonce27;
2013 } else {
2014 var29 = "[";
2015 var30 = 1;
2016 var31 = string__NativeString__to_s_with_length(var29, var30);
2017 var28 = var31;
2018 varonce27 = var28;
2019 }
2020 ((void (*)(val*, val*))(var_20->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_20, var28) /* add on <var_20:Array[Object]>*/;
2021 ((void (*)(val*, val*))(var_20->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_20, var_color) /* add on <var_20:Array[Object]>*/;
2022 if (varonce32) {
2023 var33 = varonce32;
2024 } else {
2025 var34 = "m";
2026 var35 = 1;
2027 var36 = string__NativeString__to_s_with_length(var34, var35);
2028 var33 = var36;
2029 varonce32 = var33;
2030 }
2031 ((void (*)(val*, val*))(var_20->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_20, var33) /* add on <var_20:Array[Object]>*/;
2032 var37 = ((val* (*)(val*))(var_20->class->vft[COLOR_string__Object__to_s]))(var_20) /* to_s on <var_20:Array[Object]>*/;
2033 var_col = var37;
2034 var_l = self;
2035 var38 = ((long (*)(val*))(var_l->class->vft[COLOR_location__Location__line_start]))(var_l) /* line_start on <var_l:Location>*/;
2036 var_i = var38;
2037 var39 = ((val* (*)(val*))(var_l->class->vft[COLOR_location__Location__file]))(var_l) /* file on <var_l:Location>*/;
2038 if (var39 == NULL) {
2039 fprintf(stderr, "Runtime error: %s", "Reciever is null");
2040 fprintf(stderr, " (%s:%d)\n", "src/location.nit", 174);
2041 show_backtrace(1);
2042 } else {
2043 var40 = ((val* (*)(val*))(var39->class->vft[COLOR_location__SourceFile__line_starts]))(var39) /* line_starts on <var39:nullable SourceFile>*/;
2044 }
2045 var41 = 1;
2046 { /* Inline kernel#Int#- (var_i,var41) */
2047 var44 = var_i - var41;
2048 var42 = var44;
2049 goto RET_LABEL43;
2050 RET_LABEL43:(void)0;
2051 }
2052 var45 = ((val* (*)(val*, long))(var40->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var40, var42) /* [] on <var40:Array[Int]>*/;
2053 var46 = ((struct instance_kernel__Int*)var45)->value; /* autounbox from nullable Object to Int */;
2054 var_line_start = var46;
2055 var_line_end = var_line_start;
2056 var47 = ((val* (*)(val*))(var_l->class->vft[COLOR_location__Location__file]))(var_l) /* file on <var_l:Location>*/;
2057 if (var47 == NULL) {
2058 fprintf(stderr, "Runtime error: %s", "Reciever is null");
2059 fprintf(stderr, " (%s:%d)\n", "src/location.nit", 176);
2060 show_backtrace(1);
2061 } else {
2062 var48 = ((val* (*)(val*))(var47->class->vft[COLOR_location__SourceFile__string]))(var47) /* string on <var47:nullable SourceFile>*/;
2063 }
2064 var_string = var48;
2065 for(;;) {
2066 var51 = 1;
2067 { /* Inline kernel#Int#+ (var_line_end,var51) */
2068 var54 = var_line_end + var51;
2069 var52 = var54;
2070 goto RET_LABEL53;
2071 RET_LABEL53:(void)0;
2072 }
2073 var55 = ((long (*)(val*))(var_string->class->vft[COLOR_abstract_collection__Collection__length]))(var_string) /* length on <var_string:String>*/;
2074 { /* Inline kernel#Int#< (var52,var55) */
2075 /* Covariant cast for argument 0 (i) <var55:Int> isa OTHER */
2076 /* <var55:Int> isa OTHER */
2077 var58 = 1; /* easy <var55:Int> isa OTHER*/
2078 if (!var58) {
2079 var_class_name = type_kernel__Int.name;
2080 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2081 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
2082 show_backtrace(1);
2083 }
2084 var59 = var52 < var55;
2085 var56 = var59;
2086 goto RET_LABEL57;
2087 RET_LABEL57:(void)0;
2088 }
2089 var_60 = var56;
2090 if (var56){
2091 var61 = 1;
2092 { /* Inline kernel#Int#+ (var_line_end,var61) */
2093 var64 = var_line_end + var61;
2094 var62 = var64;
2095 goto RET_LABEL63;
2096 RET_LABEL63:(void)0;
2097 }
2098 var65 = ((val* (*)(val*, long))(var_string->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_string, var62) /* [] on <var_string:String>*/;
2099 var66 = '\n';
2100 { /* Inline kernel#Char#!= (var65,var66) */
2101 var69 = (var65 != NULL) && (var65->class == &class_kernel__Char);
2102 if (var69) {
2103 var70 = ((struct instance_kernel__Char*)var65)->value; /* autounbox from nullable Object to Char */;
2104 var69 = (var70 == var66);
2105 }
2106 var71 = !var69;
2107 var67 = var71;
2108 goto RET_LABEL68;
2109 RET_LABEL68:(void)0;
2110 }
2111 var50 = var67;
2112 } else {
2113 var50 = var_60;
2114 }
2115 var_72 = var50;
2116 if (var50){
2117 var73 = 1;
2118 { /* Inline kernel#Int#+ (var_line_end,var73) */
2119 var76 = var_line_end + var73;
2120 var74 = var76;
2121 goto RET_LABEL75;
2122 RET_LABEL75:(void)0;
2123 }
2124 var77 = ((val* (*)(val*, long))(var_string->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_string, var74) /* [] on <var_string:String>*/;
2125 var78 = '\15';
2126 { /* Inline kernel#Char#!= (var77,var78) */
2127 var81 = (var77 != NULL) && (var77->class == &class_kernel__Char);
2128 if (var81) {
2129 var82 = ((struct instance_kernel__Char*)var77)->value; /* autounbox from nullable Object to Char */;
2130 var81 = (var82 == var78);
2131 }
2132 var83 = !var81;
2133 var79 = var83;
2134 goto RET_LABEL80;
2135 RET_LABEL80:(void)0;
2136 }
2137 var49 = var79;
2138 } else {
2139 var49 = var_72;
2140 }
2141 if (!var49) break;
2142 var84 = 1;
2143 { /* Inline kernel#Int#+ (var_line_end,var84) */
2144 var87 = var_line_end + var84;
2145 var85 = var87;
2146 goto RET_LABEL86;
2147 RET_LABEL86:(void)0;
2148 }
2149 var_line_end = var85;
2150 CONTINUE_label: (void)0;
2151 }
2152 BREAK_label: (void)0;
2153 var88 = ((long (*)(val*))(var_l->class->vft[COLOR_location__Location__column_start]))(var_l) /* column_start on <var_l:Location>*/;
2154 var89 = 1;
2155 { /* Inline kernel#Int#- (var88,var89) */
2156 var92 = var88 - var89;
2157 var90 = var92;
2158 goto RET_LABEL91;
2159 RET_LABEL91:(void)0;
2160 }
2161 var93 = ((val* (*)(val*, long, long))(var_string->class->vft[COLOR_string__AbstractString__substring]))(var_string, var_line_start, var90) /* substring on <var_string:String>*/;
2162 var_lstart = var93;
2163 var94 = ((long (*)(val*))(var_l->class->vft[COLOR_location__Location__line_end]))(var_l) /* line_end on <var_l:Location>*/;
2164 { /* Inline kernel#Int#!= (var_i,var94) */
2165 var97 = var_i == var94;
2166 var98 = !var97;
2167 var95 = var98;
2168 goto RET_LABEL96;
2169 RET_LABEL96:(void)0;
2170 }
2171 if (var95){
2172 { /* Inline kernel#Int#- (var_line_end,var_line_start) */
2173 var101 = var_line_end - var_line_start;
2174 var99 = var101;
2175 goto RET_LABEL100;
2176 RET_LABEL100:(void)0;
2177 }
2178 var102 = 1;
2179 { /* Inline kernel#Int#+ (var99,var102) */
2180 var105 = var99 + var102;
2181 var103 = var105;
2182 goto RET_LABEL104;
2183 RET_LABEL104:(void)0;
2184 }
2185 var106 = BOX_kernel__Int(var103); /* autobox from Int to nullable Object */
2186 var_cend = var106;
2187 } else {
2188 var107 = ((long (*)(val*))(var_l->class->vft[COLOR_location__Location__column_end]))(var_l) /* column_end on <var_l:Location>*/;
2189 var108 = BOX_kernel__Int(var107); /* autobox from Int to nullable Object */
2190 var_cend = var108;
2191 }
2192 { /* Inline kernel#Int#+ (var_line_start,var_cend) */
2193 var111 = ((struct instance_kernel__Int*)var_cend)->value; /* autounbox from nullable Object to Int */;
2194 var112 = var_line_start + var111;
2195 var109 = var112;
2196 goto RET_LABEL110;
2197 RET_LABEL110:(void)0;
2198 }
2199 var113 = ((long (*)(val*))(var_string->class->vft[COLOR_abstract_collection__Collection__length]))(var_string) /* length on <var_string:String>*/;
2200 { /* Inline kernel#Int#<= (var109,var113) */
2201 /* Covariant cast for argument 0 (i) <var113:Int> isa OTHER */
2202 /* <var113:Int> isa OTHER */
2203 var116 = 1; /* easy <var113:Int> isa OTHER*/
2204 if (!var116) {
2205 var_class_name119 = type_kernel__Int.name;
2206 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name119);
2207 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
2208 show_backtrace(1);
2209 }
2210 var120 = var109 <= var113;
2211 var114 = var120;
2212 goto RET_LABEL115;
2213 RET_LABEL115:(void)0;
2214 }
2215 if (var114){
2216 var121 = ((long (*)(val*))(var_l->class->vft[COLOR_location__Location__column_start]))(var_l) /* column_start on <var_l:Location>*/;
2217 { /* Inline kernel#Int#+ (var_line_start,var121) */
2218 var124 = var_line_start + var121;
2219 var122 = var124;
2220 goto RET_LABEL123;
2221 RET_LABEL123:(void)0;
2222 }
2223 var125 = 1;
2224 { /* Inline kernel#Int#- (var122,var125) */
2225 var128 = var122 - var125;
2226 var126 = var128;
2227 goto RET_LABEL127;
2228 RET_LABEL127:(void)0;
2229 }
2230 var129 = ((long (*)(val*))(var_l->class->vft[COLOR_location__Location__column_start]))(var_l) /* column_start on <var_l:Location>*/;
2231 { /* Inline kernel#Int#- (var_cend,var129) */
2232 var132 = ((struct instance_kernel__Int*)var_cend)->value; /* autounbox from nullable Object to Int */;
2233 var133 = var132 - var129;
2234 var130 = var133;
2235 goto RET_LABEL131;
2236 RET_LABEL131:(void)0;
2237 }
2238 var134 = 1;
2239 { /* Inline kernel#Int#+ (var130,var134) */
2240 var137 = var130 + var134;
2241 var135 = var137;
2242 goto RET_LABEL136;
2243 RET_LABEL136:(void)0;
2244 }
2245 var138 = ((val* (*)(val*, long, long))(var_string->class->vft[COLOR_string__AbstractString__substring]))(var_string, var126, var135) /* substring on <var_string:String>*/;
2246 var_lmid = var138;
2247 { /* Inline kernel#Int#+ (var_line_start,var_cend) */
2248 var141 = ((struct instance_kernel__Int*)var_cend)->value; /* autounbox from nullable Object to Int */;
2249 var142 = var_line_start + var141;
2250 var139 = var142;
2251 goto RET_LABEL140;
2252 RET_LABEL140:(void)0;
2253 }
2254 { /* Inline kernel#Int#- (var_line_end,var_line_start) */
2255 var145 = var_line_end - var_line_start;
2256 var143 = var145;
2257 goto RET_LABEL144;
2258 RET_LABEL144:(void)0;
2259 }
2260 { /* Inline kernel#Int#- (var143,var_cend) */
2261 var148 = ((struct instance_kernel__Int*)var_cend)->value; /* autounbox from nullable Object to Int */;
2262 var149 = var143 - var148;
2263 var146 = var149;
2264 goto RET_LABEL147;
2265 RET_LABEL147:(void)0;
2266 }
2267 var150 = 1;
2268 { /* Inline kernel#Int#+ (var146,var150) */
2269 var153 = var146 + var150;
2270 var151 = var153;
2271 goto RET_LABEL152;
2272 RET_LABEL152:(void)0;
2273 }
2274 var154 = ((val* (*)(val*, long, long))(var_string->class->vft[COLOR_string__AbstractString__substring]))(var_string, var139, var151) /* substring on <var_string:String>*/;
2275 var_lend = var154;
2276 } else {
2277 if (varonce155) {
2278 var156 = varonce155;
2279 } else {
2280 var157 = "";
2281 var158 = 0;
2282 var159 = string__NativeString__to_s_with_length(var157, var158);
2283 var156 = var159;
2284 varonce155 = var156;
2285 }
2286 var_lmid = var156;
2287 if (varonce160) {
2288 var161 = varonce160;
2289 } else {
2290 var162 = "";
2291 var163 = 0;
2292 var164 = string__NativeString__to_s_with_length(var162, var163);
2293 var161 = var164;
2294 varonce160 = var161;
2295 }
2296 var_lend = var161;
2297 }
2298 var165 = NEW_string__Buffer(&type_string__Buffer);
2299 ((void (*)(val*))(var165->class->vft[COLOR_string__Buffer__init]))(var165) /* init on <var165:Buffer>*/;
2300 var_indent = var165;
2301 var166 = NEW_range__Range(&type_range__Rangekernel__Int);
2302 var167 = ((long (*)(val*))(var_l->class->vft[COLOR_location__Location__column_start]))(var_l) /* column_start on <var_l:Location>*/;
2303 { /* Inline kernel#Int#+ (var_line_start,var167) */
2304 var170 = var_line_start + var167;
2305 var168 = var170;
2306 goto RET_LABEL169;
2307 RET_LABEL169:(void)0;
2308 }
2309 var171 = 1;
2310 { /* Inline kernel#Int#- (var168,var171) */
2311 var174 = var168 - var171;
2312 var172 = var174;
2313 goto RET_LABEL173;
2314 RET_LABEL173:(void)0;
2315 }
2316 var175 = BOX_kernel__Int(var_line_start); /* autobox from Int to Discrete */
2317 var176 = BOX_kernel__Int(var172); /* autobox from Int to Discrete */
2318 ((void (*)(val*, val*, val*))(var166->class->vft[COLOR_range__Range__without_last]))(var166, var175, var176) /* without_last on <var166:Range[Int]>*/;
2319 var177 = ((val* (*)(val*))(var166->class->vft[COLOR_abstract_collection__Collection__iterator]))(var166) /* iterator on <var166:Range[Int]>*/;
2320 for(;;) {
2321 var178 = ((short int (*)(val*))(var177->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var177) /* is_ok on <var177:Iterator[nullable Object]>*/;
2322 if(!var178) break;
2323 var179 = ((val* (*)(val*))(var177->class->vft[COLOR_abstract_collection__Iterator__item]))(var177) /* item on <var177:Iterator[nullable Object]>*/;
2324 var180 = ((struct instance_kernel__Int*)var179)->value; /* autounbox from nullable Object to Int */;
2325 var_j = var180;
2326 var181 = ((val* (*)(val*, long))(var_string->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_string, var_j) /* [] on <var_string:String>*/;
2327 var182 = '\11';
2328 { /* Inline kernel#Char#== (var181,var182) */
2329 var185 = (var181 != NULL) && (var181->class == &class_kernel__Char);
2330 if (var185) {
2331 var186 = ((struct instance_kernel__Char*)var181)->value; /* autounbox from nullable Object to Char */;
2332 var185 = (var186 == var182);
2333 }
2334 var183 = var185;
2335 goto RET_LABEL184;
2336 RET_LABEL184:(void)0;
2337 }
2338 if (var183){
2339 var187 = '\11';
2340 var188 = BOX_kernel__Char(var187); /* autobox from Char to nullable Object */
2341 ((void (*)(val*, val*))(var_indent->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_indent, var188) /* add on <var_indent:Buffer>*/;
2342 } else {
2343 var189 = ' ';
2344 var190 = BOX_kernel__Char(var189); /* autobox from Char to nullable Object */
2345 ((void (*)(val*, val*))(var_indent->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_indent, var190) /* add on <var_indent:Buffer>*/;
2346 }
2347 CONTINUE_label191: (void)0;
2348 ((void (*)(val*))(var177->class->vft[COLOR_abstract_collection__Iterator__next]))(var177) /* next on <var177:Iterator[nullable Object]>*/;
2349 }
2350 BREAK_label191: (void)0;
2351 var192 = NEW_array__Array(&type_array__Arraykernel__Object);
2352 var193 = 13;
2353 ((void (*)(val*, long))(var192->class->vft[COLOR_array__Array__with_capacity]))(var192, var193) /* with_capacity on <var192:Array[Object]>*/;
2354 var_194 = var192;
2355 if (varonce195) {
2356 var196 = varonce195;
2357 } else {
2358 var197 = "\11";
2359 var198 = 1;
2360 var199 = string__NativeString__to_s_with_length(var197, var198);
2361 var196 = var199;
2362 varonce195 = var196;
2363 }
2364 ((void (*)(val*, val*))(var_194->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_194, var196) /* add on <var_194:Array[Object]>*/;
2365 ((void (*)(val*, val*))(var_194->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_194, var_lstart) /* add on <var_194:Array[Object]>*/;
2366 if (varonce200) {
2367 var201 = varonce200;
2368 } else {
2369 var202 = "";
2370 var203 = 0;
2371 var204 = string__NativeString__to_s_with_length(var202, var203);
2372 var201 = var204;
2373 varonce200 = var201;
2374 }
2375 ((void (*)(val*, val*))(var_194->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_194, var201) /* add on <var_194:Array[Object]>*/;
2376 ((void (*)(val*, val*))(var_194->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_194, var_col) /* add on <var_194:Array[Object]>*/;
2377 if (varonce205) {
2378 var206 = varonce205;
2379 } else {
2380 var207 = "";
2381 var208 = 0;
2382 var209 = string__NativeString__to_s_with_length(var207, var208);
2383 var206 = var209;
2384 varonce205 = var206;
2385 }
2386 ((void (*)(val*, val*))(var_194->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_194, var206) /* add on <var_194:Array[Object]>*/;
2387 ((void (*)(val*, val*))(var_194->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_194, var_lmid) /* add on <var_194:Array[Object]>*/;
2388 if (varonce210) {
2389 var211 = varonce210;
2390 } else {
2391 var212 = "";
2392 var213 = 0;
2393 var214 = string__NativeString__to_s_with_length(var212, var213);
2394 var211 = var214;
2395 varonce210 = var211;
2396 }
2397 ((void (*)(val*, val*))(var_194->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_194, var211) /* add on <var_194:Array[Object]>*/;
2398 ((void (*)(val*, val*))(var_194->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_194, var_def) /* add on <var_194:Array[Object]>*/;
2399 if (varonce215) {
2400 var216 = varonce215;
2401 } else {
2402 var217 = "";
2403 var218 = 0;
2404 var219 = string__NativeString__to_s_with_length(var217, var218);
2405 var216 = var219;
2406 varonce215 = var216;
2407 }
2408 ((void (*)(val*, val*))(var_194->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_194, var216) /* add on <var_194:Array[Object]>*/;
2409 ((void (*)(val*, val*))(var_194->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_194, var_lend) /* add on <var_194:Array[Object]>*/;
2410 if (varonce220) {
2411 var221 = varonce220;
2412 } else {
2413 var222 = "\n\11";
2414 var223 = 2;
2415 var224 = string__NativeString__to_s_with_length(var222, var223);
2416 var221 = var224;
2417 varonce220 = var221;
2418 }
2419 ((void (*)(val*, val*))(var_194->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_194, var221) /* add on <var_194:Array[Object]>*/;
2420 ((void (*)(val*, val*))(var_194->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_194, var_indent) /* add on <var_194:Array[Object]>*/;
2421 if (varonce225) {
2422 var226 = varonce225;
2423 } else {
2424 var227 = "^";
2425 var228 = 1;
2426 var229 = string__NativeString__to_s_with_length(var227, var228);
2427 var226 = var229;
2428 varonce225 = var226;
2429 }
2430 ((void (*)(val*, val*))(var_194->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_194, var226) /* add on <var_194:Array[Object]>*/;
2431 var230 = ((val* (*)(val*))(var_194->class->vft[COLOR_string__Object__to_s]))(var_194) /* to_s on <var_194:Array[Object]>*/;
2432 var = var230;
2433 goto RET_LABEL;
2434 RET_LABEL:;
2435 return var;
2436 }
2437 /* method location#Location#colored_line for (self: Object, String): String */
2438 val* VIRTUAL_location__Location__colored_line(val* self, val* p0) {
2439 val* var /* : String */;
2440 val* var1 /* : String */;
2441 var1 = location__Location__colored_line(self, p0);
2442 var = var1;
2443 RET_LABEL:;
2444 return var;
2445 }