c_src: update with new intern methods
[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", "Receiver 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", "Receiver 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", "Receiver 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", 265);
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", 267);
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", 267);
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", 265);
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", 267);
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", 267);
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", "Receiver 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", "Receiver 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", 267);
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", 265);
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", 265);
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", 265);
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", 265);
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 val* var61 /* : StringCharView */;
1806 long var62 /* : Int */;
1807 long var63 /* : Int */;
1808 long var65 /* : Int */;
1809 val* var66 /* : nullable Object */;
1810 char var67 /* : Char */;
1811 short int var68 /* : Bool */;
1812 short int var70 /* : Bool */;
1813 char var71 /* : Char */;
1814 short int var72 /* : Bool */;
1815 short int var_73 /* var : Bool */;
1816 val* var74 /* : StringCharView */;
1817 long var75 /* : Int */;
1818 long var76 /* : Int */;
1819 long var78 /* : Int */;
1820 val* var79 /* : nullable Object */;
1821 char var80 /* : Char */;
1822 short int var81 /* : Bool */;
1823 short int var83 /* : Bool */;
1824 char var84 /* : Char */;
1825 short int var85 /* : Bool */;
1826 long var86 /* : Int */;
1827 long var87 /* : Int */;
1828 long var89 /* : Int */;
1829 long var90 /* : Int */;
1830 long var91 /* : Int */;
1831 long var92 /* : Int */;
1832 long var94 /* : Int */;
1833 val* var95 /* : String */;
1834 val* var_lstart /* var lstart: String */;
1835 long var96 /* : Int */;
1836 short int var97 /* : Bool */;
1837 short int var99 /* : Bool */;
1838 short int var100 /* : Bool */;
1839 long var101 /* : Int */;
1840 long var103 /* : Int */;
1841 long var104 /* : Int */;
1842 long var105 /* : Int */;
1843 long var107 /* : Int */;
1844 val* var108 /* : nullable Object */;
1845 val* var_cend /* var cend: nullable Object */;
1846 long var109 /* : Int */;
1847 val* var110 /* : nullable Object */;
1848 long var111 /* : Int */;
1849 long var113 /* : Int */;
1850 long var114 /* : Int */;
1851 long var115 /* : Int */;
1852 short int var116 /* : Bool */;
1853 short int var118 /* : Bool */;
1854 int cltype119;
1855 int idtype120;
1856 const char* var_class_name121;
1857 short int var122 /* : Bool */;
1858 long var123 /* : Int */;
1859 long var124 /* : Int */;
1860 long var126 /* : Int */;
1861 long var127 /* : Int */;
1862 long var128 /* : Int */;
1863 long var130 /* : Int */;
1864 long var131 /* : Int */;
1865 long var132 /* : Int */;
1866 long var134 /* : Int */;
1867 long var135 /* : Int */;
1868 long var136 /* : Int */;
1869 long var137 /* : Int */;
1870 long var139 /* : Int */;
1871 val* var140 /* : String */;
1872 val* var_lmid /* var lmid: nullable Object */;
1873 long var141 /* : Int */;
1874 long var143 /* : Int */;
1875 long var144 /* : Int */;
1876 long var145 /* : Int */;
1877 long var147 /* : Int */;
1878 long var148 /* : Int */;
1879 long var150 /* : Int */;
1880 long var151 /* : Int */;
1881 long var152 /* : Int */;
1882 long var153 /* : Int */;
1883 long var155 /* : Int */;
1884 val* var156 /* : String */;
1885 val* var_lend /* var lend: nullable Object */;
1886 static val* varonce157;
1887 val* var158 /* : String */;
1888 char* var159 /* : NativeString */;
1889 long var160 /* : Int */;
1890 val* var161 /* : String */;
1891 static val* varonce162;
1892 val* var163 /* : String */;
1893 char* var164 /* : NativeString */;
1894 long var165 /* : Int */;
1895 val* var166 /* : String */;
1896 val* var167 /* : Buffer */;
1897 val* var_indent /* var indent: Buffer */;
1898 val* var168 /* : Range[Int] */;
1899 long var169 /* : Int */;
1900 long var170 /* : Int */;
1901 long var172 /* : Int */;
1902 long var173 /* : Int */;
1903 long var174 /* : Int */;
1904 long var176 /* : Int */;
1905 val* var177 /* : Discrete */;
1906 val* var178 /* : Discrete */;
1907 val* var179 /* : Iterator[nullable Object] */;
1908 short int var180 /* : Bool */;
1909 val* var181 /* : nullable Object */;
1910 long var_j /* var j: Int */;
1911 long var182 /* : Int */;
1912 val* var183 /* : StringCharView */;
1913 val* var184 /* : nullable Object */;
1914 char var185 /* : Char */;
1915 short int var186 /* : Bool */;
1916 short int var188 /* : Bool */;
1917 char var189 /* : Char */;
1918 char var190 /* : Char */;
1919 val* var191 /* : nullable Object */;
1920 char var192 /* : Char */;
1921 val* var193 /* : nullable Object */;
1922 val* var195 /* : Array[Object] */;
1923 long var196 /* : Int */;
1924 val* var_197 /* var : Array[Object] */;
1925 static val* varonce198;
1926 val* var199 /* : String */;
1927 char* var200 /* : NativeString */;
1928 long var201 /* : Int */;
1929 val* var202 /* : String */;
1930 static val* varonce203;
1931 val* var204 /* : String */;
1932 char* var205 /* : NativeString */;
1933 long var206 /* : Int */;
1934 val* var207 /* : String */;
1935 static val* varonce208;
1936 val* var209 /* : String */;
1937 char* var210 /* : NativeString */;
1938 long var211 /* : Int */;
1939 val* var212 /* : String */;
1940 static val* varonce213;
1941 val* var214 /* : String */;
1942 char* var215 /* : NativeString */;
1943 long var216 /* : Int */;
1944 val* var217 /* : String */;
1945 static val* varonce218;
1946 val* var219 /* : String */;
1947 char* var220 /* : NativeString */;
1948 long var221 /* : Int */;
1949 val* var222 /* : String */;
1950 static val* varonce223;
1951 val* var224 /* : String */;
1952 char* var225 /* : NativeString */;
1953 long var226 /* : Int */;
1954 val* var227 /* : String */;
1955 static val* varonce228;
1956 val* var229 /* : String */;
1957 char* var230 /* : NativeString */;
1958 long var231 /* : Int */;
1959 val* var232 /* : String */;
1960 val* var233 /* : String */;
1961 var_color = p0;
1962 var1 = 27;
1963 { /* Inline kernel#Int#ascii (var1) */
1964 var4 = var1;
1965 var2 = var4;
1966 goto RET_LABEL3;
1967 RET_LABEL3:(void)0;
1968 }
1969 var_esc = var2;
1970 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1971 var6 = 3;
1972 ((void (*)(val*, long))(var5->class->vft[COLOR_array__Array__with_capacity]))(var5, var6) /* with_capacity on <var5:Array[Object]>*/;
1973 var_ = var5;
1974 if (varonce) {
1975 var7 = varonce;
1976 } else {
1977 var8 = "";
1978 var9 = 0;
1979 var10 = string__NativeString__to_s_with_length(var8, var9);
1980 var7 = var10;
1981 varonce = var7;
1982 }
1983 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var7) /* add on <var_:Array[Object]>*/;
1984 var11 = BOX_kernel__Char(var_esc); /* autobox from Char to nullable Object */
1985 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var11) /* add on <var_:Array[Object]>*/;
1986 if (varonce12) {
1987 var13 = varonce12;
1988 } else {
1989 var14 = "[0m";
1990 var15 = 3;
1991 var16 = string__NativeString__to_s_with_length(var14, var15);
1992 var13 = var16;
1993 varonce12 = var13;
1994 }
1995 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var13) /* add on <var_:Array[Object]>*/;
1996 var17 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
1997 var_def = var17;
1998 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
1999 var19 = 5;
2000 ((void (*)(val*, long))(var18->class->vft[COLOR_array__Array__with_capacity]))(var18, var19) /* with_capacity on <var18:Array[Object]>*/;
2001 var_20 = var18;
2002 if (varonce21) {
2003 var22 = varonce21;
2004 } else {
2005 var23 = "";
2006 var24 = 0;
2007 var25 = string__NativeString__to_s_with_length(var23, var24);
2008 var22 = var25;
2009 varonce21 = var22;
2010 }
2011 ((void (*)(val*, val*))(var_20->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_20, var22) /* add on <var_20:Array[Object]>*/;
2012 var26 = BOX_kernel__Char(var_esc); /* autobox from Char to nullable Object */
2013 ((void (*)(val*, val*))(var_20->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_20, var26) /* add on <var_20:Array[Object]>*/;
2014 if (varonce27) {
2015 var28 = varonce27;
2016 } else {
2017 var29 = "[";
2018 var30 = 1;
2019 var31 = string__NativeString__to_s_with_length(var29, var30);
2020 var28 = var31;
2021 varonce27 = var28;
2022 }
2023 ((void (*)(val*, val*))(var_20->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_20, var28) /* add on <var_20:Array[Object]>*/;
2024 ((void (*)(val*, val*))(var_20->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_20, var_color) /* add on <var_20:Array[Object]>*/;
2025 if (varonce32) {
2026 var33 = varonce32;
2027 } else {
2028 var34 = "m";
2029 var35 = 1;
2030 var36 = string__NativeString__to_s_with_length(var34, var35);
2031 var33 = var36;
2032 varonce32 = var33;
2033 }
2034 ((void (*)(val*, val*))(var_20->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_20, var33) /* add on <var_20:Array[Object]>*/;
2035 var37 = ((val* (*)(val*))(var_20->class->vft[COLOR_string__Object__to_s]))(var_20) /* to_s on <var_20:Array[Object]>*/;
2036 var_col = var37;
2037 var_l = self;
2038 var38 = ((long (*)(val*))(var_l->class->vft[COLOR_location__Location__line_start]))(var_l) /* line_start on <var_l:Location>*/;
2039 var_i = var38;
2040 var39 = ((val* (*)(val*))(var_l->class->vft[COLOR_location__Location__file]))(var_l) /* file on <var_l:Location>*/;
2041 if (var39 == NULL) {
2042 fprintf(stderr, "Runtime error: %s", "Receiver is null");
2043 fprintf(stderr, " (%s:%d)\n", "src/location.nit", 174);
2044 show_backtrace(1);
2045 } else {
2046 var40 = ((val* (*)(val*))(var39->class->vft[COLOR_location__SourceFile__line_starts]))(var39) /* line_starts on <var39:nullable SourceFile>*/;
2047 }
2048 var41 = 1;
2049 { /* Inline kernel#Int#- (var_i,var41) */
2050 var44 = var_i - var41;
2051 var42 = var44;
2052 goto RET_LABEL43;
2053 RET_LABEL43:(void)0;
2054 }
2055 var45 = ((val* (*)(val*, long))(var40->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var40, var42) /* [] on <var40:Array[Int]>*/;
2056 var46 = ((struct instance_kernel__Int*)var45)->value; /* autounbox from nullable Object to Int */;
2057 var_line_start = var46;
2058 var_line_end = var_line_start;
2059 var47 = ((val* (*)(val*))(var_l->class->vft[COLOR_location__Location__file]))(var_l) /* file on <var_l:Location>*/;
2060 if (var47 == NULL) {
2061 fprintf(stderr, "Runtime error: %s", "Receiver is null");
2062 fprintf(stderr, " (%s:%d)\n", "src/location.nit", 176);
2063 show_backtrace(1);
2064 } else {
2065 var48 = ((val* (*)(val*))(var47->class->vft[COLOR_location__SourceFile__string]))(var47) /* string on <var47:nullable SourceFile>*/;
2066 }
2067 var_string = var48;
2068 for(;;) {
2069 var51 = 1;
2070 { /* Inline kernel#Int#+ (var_line_end,var51) */
2071 var54 = var_line_end + var51;
2072 var52 = var54;
2073 goto RET_LABEL53;
2074 RET_LABEL53:(void)0;
2075 }
2076 var55 = ((long (*)(val*))(var_string->class->vft[COLOR_abstract_collection__Collection__length]))(var_string) /* length on <var_string:String>*/;
2077 { /* Inline kernel#Int#< (var52,var55) */
2078 /* Covariant cast for argument 0 (i) <var55:Int> isa OTHER */
2079 /* <var55:Int> isa OTHER */
2080 var58 = 1; /* easy <var55:Int> isa OTHER*/
2081 if (!var58) {
2082 var_class_name = type_kernel__Int.name;
2083 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2084 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
2085 show_backtrace(1);
2086 }
2087 var59 = var52 < var55;
2088 var56 = var59;
2089 goto RET_LABEL57;
2090 RET_LABEL57:(void)0;
2091 }
2092 var_60 = var56;
2093 if (var56){
2094 var61 = ((val* (*)(val*))(var_string->class->vft[COLOR_string__AbstractString__chars]))(var_string) /* chars on <var_string:String>*/;
2095 var62 = 1;
2096 { /* Inline kernel#Int#+ (var_line_end,var62) */
2097 var65 = var_line_end + var62;
2098 var63 = var65;
2099 goto RET_LABEL64;
2100 RET_LABEL64:(void)0;
2101 }
2102 var66 = ((val* (*)(val*, long))(var61->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var61, var63) /* [] on <var61:StringCharView>*/;
2103 var67 = '\n';
2104 { /* Inline kernel#Char#!= (var66,var67) */
2105 var70 = (var66 != NULL) && (var66->class == &class_kernel__Char);
2106 if (var70) {
2107 var71 = ((struct instance_kernel__Char*)var66)->value; /* autounbox from nullable Object to Char */;
2108 var70 = (var71 == var67);
2109 }
2110 var72 = !var70;
2111 var68 = var72;
2112 goto RET_LABEL69;
2113 RET_LABEL69:(void)0;
2114 }
2115 var50 = var68;
2116 } else {
2117 var50 = var_60;
2118 }
2119 var_73 = var50;
2120 if (var50){
2121 var74 = ((val* (*)(val*))(var_string->class->vft[COLOR_string__AbstractString__chars]))(var_string) /* chars on <var_string:String>*/;
2122 var75 = 1;
2123 { /* Inline kernel#Int#+ (var_line_end,var75) */
2124 var78 = var_line_end + var75;
2125 var76 = var78;
2126 goto RET_LABEL77;
2127 RET_LABEL77:(void)0;
2128 }
2129 var79 = ((val* (*)(val*, long))(var74->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var74, var76) /* [] on <var74:StringCharView>*/;
2130 var80 = '\15';
2131 { /* Inline kernel#Char#!= (var79,var80) */
2132 var83 = (var79 != NULL) && (var79->class == &class_kernel__Char);
2133 if (var83) {
2134 var84 = ((struct instance_kernel__Char*)var79)->value; /* autounbox from nullable Object to Char */;
2135 var83 = (var84 == var80);
2136 }
2137 var85 = !var83;
2138 var81 = var85;
2139 goto RET_LABEL82;
2140 RET_LABEL82:(void)0;
2141 }
2142 var49 = var81;
2143 } else {
2144 var49 = var_73;
2145 }
2146 if (!var49) break;
2147 var86 = 1;
2148 { /* Inline kernel#Int#+ (var_line_end,var86) */
2149 var89 = var_line_end + var86;
2150 var87 = var89;
2151 goto RET_LABEL88;
2152 RET_LABEL88:(void)0;
2153 }
2154 var_line_end = var87;
2155 CONTINUE_label: (void)0;
2156 }
2157 BREAK_label: (void)0;
2158 var90 = ((long (*)(val*))(var_l->class->vft[COLOR_location__Location__column_start]))(var_l) /* column_start on <var_l:Location>*/;
2159 var91 = 1;
2160 { /* Inline kernel#Int#- (var90,var91) */
2161 var94 = var90 - var91;
2162 var92 = var94;
2163 goto RET_LABEL93;
2164 RET_LABEL93:(void)0;
2165 }
2166 var95 = ((val* (*)(val*, long, long))(var_string->class->vft[COLOR_string__AbstractString__substring]))(var_string, var_line_start, var92) /* substring on <var_string:String>*/;
2167 var_lstart = var95;
2168 var96 = ((long (*)(val*))(var_l->class->vft[COLOR_location__Location__line_end]))(var_l) /* line_end on <var_l:Location>*/;
2169 { /* Inline kernel#Int#!= (var_i,var96) */
2170 var99 = var_i == var96;
2171 var100 = !var99;
2172 var97 = var100;
2173 goto RET_LABEL98;
2174 RET_LABEL98:(void)0;
2175 }
2176 if (var97){
2177 { /* Inline kernel#Int#- (var_line_end,var_line_start) */
2178 var103 = var_line_end - var_line_start;
2179 var101 = var103;
2180 goto RET_LABEL102;
2181 RET_LABEL102:(void)0;
2182 }
2183 var104 = 1;
2184 { /* Inline kernel#Int#+ (var101,var104) */
2185 var107 = var101 + var104;
2186 var105 = var107;
2187 goto RET_LABEL106;
2188 RET_LABEL106:(void)0;
2189 }
2190 var108 = BOX_kernel__Int(var105); /* autobox from Int to nullable Object */
2191 var_cend = var108;
2192 } else {
2193 var109 = ((long (*)(val*))(var_l->class->vft[COLOR_location__Location__column_end]))(var_l) /* column_end on <var_l:Location>*/;
2194 var110 = BOX_kernel__Int(var109); /* autobox from Int to nullable Object */
2195 var_cend = var110;
2196 }
2197 { /* Inline kernel#Int#+ (var_line_start,var_cend) */
2198 var113 = ((struct instance_kernel__Int*)var_cend)->value; /* autounbox from nullable Object to Int */;
2199 var114 = var_line_start + var113;
2200 var111 = var114;
2201 goto RET_LABEL112;
2202 RET_LABEL112:(void)0;
2203 }
2204 var115 = ((long (*)(val*))(var_string->class->vft[COLOR_abstract_collection__Collection__length]))(var_string) /* length on <var_string:String>*/;
2205 { /* Inline kernel#Int#<= (var111,var115) */
2206 /* Covariant cast for argument 0 (i) <var115:Int> isa OTHER */
2207 /* <var115:Int> isa OTHER */
2208 var118 = 1; /* easy <var115:Int> isa OTHER*/
2209 if (!var118) {
2210 var_class_name121 = type_kernel__Int.name;
2211 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name121);
2212 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
2213 show_backtrace(1);
2214 }
2215 var122 = var111 <= var115;
2216 var116 = var122;
2217 goto RET_LABEL117;
2218 RET_LABEL117:(void)0;
2219 }
2220 if (var116){
2221 var123 = ((long (*)(val*))(var_l->class->vft[COLOR_location__Location__column_start]))(var_l) /* column_start on <var_l:Location>*/;
2222 { /* Inline kernel#Int#+ (var_line_start,var123) */
2223 var126 = var_line_start + var123;
2224 var124 = var126;
2225 goto RET_LABEL125;
2226 RET_LABEL125:(void)0;
2227 }
2228 var127 = 1;
2229 { /* Inline kernel#Int#- (var124,var127) */
2230 var130 = var124 - var127;
2231 var128 = var130;
2232 goto RET_LABEL129;
2233 RET_LABEL129:(void)0;
2234 }
2235 var131 = ((long (*)(val*))(var_l->class->vft[COLOR_location__Location__column_start]))(var_l) /* column_start on <var_l:Location>*/;
2236 { /* Inline kernel#Int#- (var_cend,var131) */
2237 var134 = ((struct instance_kernel__Int*)var_cend)->value; /* autounbox from nullable Object to Int */;
2238 var135 = var134 - var131;
2239 var132 = var135;
2240 goto RET_LABEL133;
2241 RET_LABEL133:(void)0;
2242 }
2243 var136 = 1;
2244 { /* Inline kernel#Int#+ (var132,var136) */
2245 var139 = var132 + var136;
2246 var137 = var139;
2247 goto RET_LABEL138;
2248 RET_LABEL138:(void)0;
2249 }
2250 var140 = ((val* (*)(val*, long, long))(var_string->class->vft[COLOR_string__AbstractString__substring]))(var_string, var128, var137) /* substring on <var_string:String>*/;
2251 var_lmid = var140;
2252 { /* Inline kernel#Int#+ (var_line_start,var_cend) */
2253 var143 = ((struct instance_kernel__Int*)var_cend)->value; /* autounbox from nullable Object to Int */;
2254 var144 = var_line_start + var143;
2255 var141 = var144;
2256 goto RET_LABEL142;
2257 RET_LABEL142:(void)0;
2258 }
2259 { /* Inline kernel#Int#- (var_line_end,var_line_start) */
2260 var147 = var_line_end - var_line_start;
2261 var145 = var147;
2262 goto RET_LABEL146;
2263 RET_LABEL146:(void)0;
2264 }
2265 { /* Inline kernel#Int#- (var145,var_cend) */
2266 var150 = ((struct instance_kernel__Int*)var_cend)->value; /* autounbox from nullable Object to Int */;
2267 var151 = var145 - var150;
2268 var148 = var151;
2269 goto RET_LABEL149;
2270 RET_LABEL149:(void)0;
2271 }
2272 var152 = 1;
2273 { /* Inline kernel#Int#+ (var148,var152) */
2274 var155 = var148 + var152;
2275 var153 = var155;
2276 goto RET_LABEL154;
2277 RET_LABEL154:(void)0;
2278 }
2279 var156 = ((val* (*)(val*, long, long))(var_string->class->vft[COLOR_string__AbstractString__substring]))(var_string, var141, var153) /* substring on <var_string:String>*/;
2280 var_lend = var156;
2281 } else {
2282 if (varonce157) {
2283 var158 = varonce157;
2284 } else {
2285 var159 = "";
2286 var160 = 0;
2287 var161 = string__NativeString__to_s_with_length(var159, var160);
2288 var158 = var161;
2289 varonce157 = var158;
2290 }
2291 var_lmid = var158;
2292 if (varonce162) {
2293 var163 = varonce162;
2294 } else {
2295 var164 = "";
2296 var165 = 0;
2297 var166 = string__NativeString__to_s_with_length(var164, var165);
2298 var163 = var166;
2299 varonce162 = var163;
2300 }
2301 var_lend = var163;
2302 }
2303 var167 = NEW_string__Buffer(&type_string__Buffer);
2304 ((void (*)(val*))(var167->class->vft[COLOR_string__Buffer__init]))(var167) /* init on <var167:Buffer>*/;
2305 var_indent = var167;
2306 var168 = NEW_range__Range(&type_range__Rangekernel__Int);
2307 var169 = ((long (*)(val*))(var_l->class->vft[COLOR_location__Location__column_start]))(var_l) /* column_start on <var_l:Location>*/;
2308 { /* Inline kernel#Int#+ (var_line_start,var169) */
2309 var172 = var_line_start + var169;
2310 var170 = var172;
2311 goto RET_LABEL171;
2312 RET_LABEL171:(void)0;
2313 }
2314 var173 = 1;
2315 { /* Inline kernel#Int#- (var170,var173) */
2316 var176 = var170 - var173;
2317 var174 = var176;
2318 goto RET_LABEL175;
2319 RET_LABEL175:(void)0;
2320 }
2321 var177 = BOX_kernel__Int(var_line_start); /* autobox from Int to Discrete */
2322 var178 = BOX_kernel__Int(var174); /* autobox from Int to Discrete */
2323 ((void (*)(val*, val*, val*))(var168->class->vft[COLOR_range__Range__without_last]))(var168, var177, var178) /* without_last on <var168:Range[Int]>*/;
2324 var179 = ((val* (*)(val*))(var168->class->vft[COLOR_abstract_collection__Collection__iterator]))(var168) /* iterator on <var168:Range[Int]>*/;
2325 for(;;) {
2326 var180 = ((short int (*)(val*))(var179->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var179) /* is_ok on <var179:Iterator[nullable Object]>*/;
2327 if(!var180) break;
2328 var181 = ((val* (*)(val*))(var179->class->vft[COLOR_abstract_collection__Iterator__item]))(var179) /* item on <var179:Iterator[nullable Object]>*/;
2329 var182 = ((struct instance_kernel__Int*)var181)->value; /* autounbox from nullable Object to Int */;
2330 var_j = var182;
2331 var183 = ((val* (*)(val*))(var_string->class->vft[COLOR_string__AbstractString__chars]))(var_string) /* chars on <var_string:String>*/;
2332 var184 = ((val* (*)(val*, long))(var183->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var183, var_j) /* [] on <var183:StringCharView>*/;
2333 var185 = '\11';
2334 { /* Inline kernel#Char#== (var184,var185) */
2335 var188 = (var184 != NULL) && (var184->class == &class_kernel__Char);
2336 if (var188) {
2337 var189 = ((struct instance_kernel__Char*)var184)->value; /* autounbox from nullable Object to Char */;
2338 var188 = (var189 == var185);
2339 }
2340 var186 = var188;
2341 goto RET_LABEL187;
2342 RET_LABEL187:(void)0;
2343 }
2344 if (var186){
2345 var190 = '\11';
2346 var191 = BOX_kernel__Char(var190); /* autobox from Char to nullable Object */
2347 ((void (*)(val*, val*))(var_indent->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_indent, var191) /* add on <var_indent:Buffer>*/;
2348 } else {
2349 var192 = ' ';
2350 var193 = BOX_kernel__Char(var192); /* autobox from Char to nullable Object */
2351 ((void (*)(val*, val*))(var_indent->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_indent, var193) /* add on <var_indent:Buffer>*/;
2352 }
2353 CONTINUE_label194: (void)0;
2354 ((void (*)(val*))(var179->class->vft[COLOR_abstract_collection__Iterator__next]))(var179) /* next on <var179:Iterator[nullable Object]>*/;
2355 }
2356 BREAK_label194: (void)0;
2357 var195 = NEW_array__Array(&type_array__Arraykernel__Object);
2358 var196 = 13;
2359 ((void (*)(val*, long))(var195->class->vft[COLOR_array__Array__with_capacity]))(var195, var196) /* with_capacity on <var195:Array[Object]>*/;
2360 var_197 = var195;
2361 if (varonce198) {
2362 var199 = varonce198;
2363 } else {
2364 var200 = "\11";
2365 var201 = 1;
2366 var202 = string__NativeString__to_s_with_length(var200, var201);
2367 var199 = var202;
2368 varonce198 = var199;
2369 }
2370 ((void (*)(val*, val*))(var_197->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_197, var199) /* add on <var_197:Array[Object]>*/;
2371 ((void (*)(val*, val*))(var_197->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_197, var_lstart) /* add on <var_197:Array[Object]>*/;
2372 if (varonce203) {
2373 var204 = varonce203;
2374 } else {
2375 var205 = "";
2376 var206 = 0;
2377 var207 = string__NativeString__to_s_with_length(var205, var206);
2378 var204 = var207;
2379 varonce203 = var204;
2380 }
2381 ((void (*)(val*, val*))(var_197->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_197, var204) /* add on <var_197:Array[Object]>*/;
2382 ((void (*)(val*, val*))(var_197->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_197, var_col) /* add on <var_197:Array[Object]>*/;
2383 if (varonce208) {
2384 var209 = varonce208;
2385 } else {
2386 var210 = "";
2387 var211 = 0;
2388 var212 = string__NativeString__to_s_with_length(var210, var211);
2389 var209 = var212;
2390 varonce208 = var209;
2391 }
2392 ((void (*)(val*, val*))(var_197->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_197, var209) /* add on <var_197:Array[Object]>*/;
2393 ((void (*)(val*, val*))(var_197->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_197, var_lmid) /* add on <var_197:Array[Object]>*/;
2394 if (varonce213) {
2395 var214 = varonce213;
2396 } else {
2397 var215 = "";
2398 var216 = 0;
2399 var217 = string__NativeString__to_s_with_length(var215, var216);
2400 var214 = var217;
2401 varonce213 = var214;
2402 }
2403 ((void (*)(val*, val*))(var_197->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_197, var214) /* add on <var_197:Array[Object]>*/;
2404 ((void (*)(val*, val*))(var_197->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_197, var_def) /* add on <var_197:Array[Object]>*/;
2405 if (varonce218) {
2406 var219 = varonce218;
2407 } else {
2408 var220 = "";
2409 var221 = 0;
2410 var222 = string__NativeString__to_s_with_length(var220, var221);
2411 var219 = var222;
2412 varonce218 = var219;
2413 }
2414 ((void (*)(val*, val*))(var_197->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_197, var219) /* add on <var_197:Array[Object]>*/;
2415 ((void (*)(val*, val*))(var_197->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_197, var_lend) /* add on <var_197:Array[Object]>*/;
2416 if (varonce223) {
2417 var224 = varonce223;
2418 } else {
2419 var225 = "\n\11";
2420 var226 = 2;
2421 var227 = string__NativeString__to_s_with_length(var225, var226);
2422 var224 = var227;
2423 varonce223 = var224;
2424 }
2425 ((void (*)(val*, val*))(var_197->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_197, var224) /* add on <var_197:Array[Object]>*/;
2426 ((void (*)(val*, val*))(var_197->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_197, var_indent) /* add on <var_197:Array[Object]>*/;
2427 if (varonce228) {
2428 var229 = varonce228;
2429 } else {
2430 var230 = "^";
2431 var231 = 1;
2432 var232 = string__NativeString__to_s_with_length(var230, var231);
2433 var229 = var232;
2434 varonce228 = var229;
2435 }
2436 ((void (*)(val*, val*))(var_197->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_197, var229) /* add on <var_197:Array[Object]>*/;
2437 var233 = ((val* (*)(val*))(var_197->class->vft[COLOR_string__Object__to_s]))(var_197) /* to_s on <var_197:Array[Object]>*/;
2438 var = var233;
2439 goto RET_LABEL;
2440 RET_LABEL:;
2441 return var;
2442 }
2443 /* method location#Location#colored_line for (self: Object, String): String */
2444 val* VIRTUAL_location__Location__colored_line(val* self, val* p0) {
2445 val* var /* : String */;
2446 val* var1 /* : String */;
2447 var1 = location__Location__colored_line(self, p0);
2448 var = var1;
2449 RET_LABEL:;
2450 return var;
2451 }