update NOTICE
[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___filename].val; /* _filename on <self:SourceFile> */
7 if (unlikely(var1 == NULL)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
9 PRINT_ERROR(" (%s:%d)\n", "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 val* var3 /* : String */;
21 { /* Inline location#SourceFile#filename (self) on <self:Object(SourceFile)> */
22 var3 = self->attrs[COLOR_location__SourceFile___filename].val; /* _filename on <self:Object(SourceFile)> */
23 if (unlikely(var3 == NULL)) {
24 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
25 PRINT_ERROR(" (%s:%d)\n", "location.nit", 22);
26 show_backtrace(1);
27 }
28 var1 = var3;
29 RET_LABEL2:(void)0;
30 }
31 var = var1;
32 RET_LABEL:;
33 return var;
34 }
35 /* method location#SourceFile#filename= for (self: SourceFile, String) */
36 void location__SourceFile__filename_61d(val* self, val* p0) {
37 self->attrs[COLOR_location__SourceFile___filename].val = p0; /* _filename on <self:SourceFile> */
38 RET_LABEL:;
39 }
40 /* method location#SourceFile#filename= for (self: Object, String) */
41 void VIRTUAL_location__SourceFile__filename_61d(val* self, val* p0) {
42 { /* Inline location#SourceFile#filename= (self,p0) on <self:Object(SourceFile)> */
43 self->attrs[COLOR_location__SourceFile___filename].val = p0; /* _filename on <self:Object(SourceFile)> */
44 RET_LABEL1:(void)0;
45 }
46 RET_LABEL:;
47 }
48 /* method location#SourceFile#string for (self: SourceFile): String */
49 val* location__SourceFile__string(val* self) {
50 val* var /* : String */;
51 val* var1 /* : String */;
52 var1 = self->attrs[COLOR_location__SourceFile___string].val; /* _string on <self:SourceFile> */
53 if (unlikely(var1 == NULL)) {
54 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _string");
55 PRINT_ERROR(" (%s:%d)\n", "location.nit", 25);
56 show_backtrace(1);
57 }
58 var = var1;
59 RET_LABEL:;
60 return var;
61 }
62 /* method location#SourceFile#string for (self: Object): String */
63 val* VIRTUAL_location__SourceFile__string(val* self) {
64 val* var /* : String */;
65 val* var1 /* : String */;
66 val* var3 /* : String */;
67 { /* Inline location#SourceFile#string (self) on <self:Object(SourceFile)> */
68 var3 = self->attrs[COLOR_location__SourceFile___string].val; /* _string on <self:Object(SourceFile)> */
69 if (unlikely(var3 == NULL)) {
70 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _string");
71 PRINT_ERROR(" (%s:%d)\n", "location.nit", 25);
72 show_backtrace(1);
73 }
74 var1 = var3;
75 RET_LABEL2:(void)0;
76 }
77 var = var1;
78 RET_LABEL:;
79 return var;
80 }
81 /* method location#SourceFile#string= for (self: SourceFile, String) */
82 void location__SourceFile__string_61d(val* self, val* p0) {
83 self->attrs[COLOR_location__SourceFile___string].val = p0; /* _string on <self:SourceFile> */
84 RET_LABEL:;
85 }
86 /* method location#SourceFile#string= for (self: Object, String) */
87 void VIRTUAL_location__SourceFile__string_61d(val* self, val* p0) {
88 { /* Inline location#SourceFile#string= (self,p0) on <self:Object(SourceFile)> */
89 self->attrs[COLOR_location__SourceFile___string].val = p0; /* _string on <self:Object(SourceFile)> */
90 RET_LABEL1:(void)0;
91 }
92 RET_LABEL:;
93 }
94 /* method location#SourceFile#init for (self: SourceFile, String, IStream) */
95 void location__SourceFile__init(val* self, val* p0, val* p1) {
96 val* var_filename /* var filename: String */;
97 val* var_stream /* var stream: IStream */;
98 val* var /* : String */;
99 val* var3 /* : Array[Int] */;
100 val* var5 /* : Array[Int] */;
101 long var6 /* : Int */;
102 long var7 /* : Int */;
103 val* var8 /* : nullable Object */;
104 var_filename = p0;
105 var_stream = p1;
106 {
107 { /* Inline location#SourceFile#filename= (self,var_filename) on <self:SourceFile> */
108 self->attrs[COLOR_location__SourceFile___filename].val = var_filename; /* _filename on <self:SourceFile> */
109 RET_LABEL1:(void)0;
110 }
111 }
112 {
113 var = stream__BufferedIStream__read_all(var_stream);
114 }
115 {
116 { /* Inline location#SourceFile#string= (self,var) on <self:SourceFile> */
117 self->attrs[COLOR_location__SourceFile___string].val = var; /* _string on <self:SourceFile> */
118 RET_LABEL2:(void)0;
119 }
120 }
121 {
122 { /* Inline location#SourceFile#line_starts (self) on <self:SourceFile> */
123 var5 = self->attrs[COLOR_location__SourceFile___line_starts].val; /* _line_starts on <self:SourceFile> */
124 if (unlikely(var5 == NULL)) {
125 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _line_starts");
126 PRINT_ERROR(" (%s:%d)\n", "location.nit", 44);
127 show_backtrace(1);
128 }
129 var3 = var5;
130 RET_LABEL4:(void)0;
131 }
132 }
133 var6 = 0;
134 var7 = 0;
135 {
136 var8 = BOX_kernel__Int(var7); /* autobox from Int to nullable Object */
137 array__Array___91d_93d_61d(var3, var6, var8); /* Direct call array#Array#[]= on <var3:Array[Int]>*/
138 }
139 RET_LABEL:;
140 }
141 /* method location#SourceFile#init for (self: Object, String, IStream) */
142 void VIRTUAL_location__SourceFile__init(val* self, val* p0, val* p1) {
143 location__SourceFile__init(self, p0, p1); /* Direct call location#SourceFile#init on <self:Object(SourceFile)>*/
144 RET_LABEL:;
145 }
146 /* method location#SourceFile#line_starts for (self: SourceFile): Array[Int] */
147 val* location__SourceFile__line_starts(val* self) {
148 val* var /* : Array[Int] */;
149 val* var1 /* : Array[Int] */;
150 var1 = self->attrs[COLOR_location__SourceFile___line_starts].val; /* _line_starts on <self:SourceFile> */
151 if (unlikely(var1 == NULL)) {
152 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _line_starts");
153 PRINT_ERROR(" (%s:%d)\n", "location.nit", 44);
154 show_backtrace(1);
155 }
156 var = var1;
157 RET_LABEL:;
158 return var;
159 }
160 /* method location#SourceFile#line_starts for (self: Object): Array[Int] */
161 val* VIRTUAL_location__SourceFile__line_starts(val* self) {
162 val* var /* : Array[Int] */;
163 val* var1 /* : Array[Int] */;
164 val* var3 /* : Array[Int] */;
165 { /* Inline location#SourceFile#line_starts (self) on <self:Object(SourceFile)> */
166 var3 = self->attrs[COLOR_location__SourceFile___line_starts].val; /* _line_starts on <self:Object(SourceFile)> */
167 if (unlikely(var3 == NULL)) {
168 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _line_starts");
169 PRINT_ERROR(" (%s:%d)\n", "location.nit", 44);
170 show_backtrace(1);
171 }
172 var1 = var3;
173 RET_LABEL2:(void)0;
174 }
175 var = var1;
176 RET_LABEL:;
177 return var;
178 }
179 /* method location#Location#file for (self: Location): nullable SourceFile */
180 val* location__Location__file(val* self) {
181 val* var /* : nullable SourceFile */;
182 val* var1 /* : nullable SourceFile */;
183 var1 = self->attrs[COLOR_location__Location___file].val; /* _file on <self:Location> */
184 var = var1;
185 RET_LABEL:;
186 return var;
187 }
188 /* method location#Location#file for (self: Object): nullable SourceFile */
189 val* VIRTUAL_location__Location__file(val* self) {
190 val* var /* : nullable SourceFile */;
191 val* var1 /* : nullable SourceFile */;
192 val* var3 /* : nullable SourceFile */;
193 { /* Inline location#Location#file (self) on <self:Object(Location)> */
194 var3 = self->attrs[COLOR_location__Location___file].val; /* _file on <self:Object(Location)> */
195 var1 = var3;
196 RET_LABEL2:(void)0;
197 }
198 var = var1;
199 RET_LABEL:;
200 return var;
201 }
202 /* method location#Location#file= for (self: Location, nullable SourceFile) */
203 void location__Location__file_61d(val* self, val* p0) {
204 self->attrs[COLOR_location__Location___file].val = p0; /* _file on <self:Location> */
205 RET_LABEL:;
206 }
207 /* method location#Location#file= for (self: Object, nullable SourceFile) */
208 void VIRTUAL_location__Location__file_61d(val* self, val* p0) {
209 { /* Inline location#Location#file= (self,p0) on <self:Object(Location)> */
210 self->attrs[COLOR_location__Location___file].val = p0; /* _file on <self:Object(Location)> */
211 RET_LABEL1:(void)0;
212 }
213 RET_LABEL:;
214 }
215 /* method location#Location#line_start for (self: Location): Int */
216 long location__Location__line_start(val* self) {
217 long var /* : Int */;
218 long var1 /* : Int */;
219 var1 = self->attrs[COLOR_location__Location___line_start].l; /* _line_start on <self:Location> */
220 var = var1;
221 RET_LABEL:;
222 return var;
223 }
224 /* method location#Location#line_start for (self: Object): Int */
225 long VIRTUAL_location__Location__line_start(val* self) {
226 long var /* : Int */;
227 long var1 /* : Int */;
228 long var3 /* : Int */;
229 { /* Inline location#Location#line_start (self) on <self:Object(Location)> */
230 var3 = self->attrs[COLOR_location__Location___line_start].l; /* _line_start on <self:Object(Location)> */
231 var1 = var3;
232 RET_LABEL2:(void)0;
233 }
234 var = var1;
235 RET_LABEL:;
236 return var;
237 }
238 /* method location#Location#line_start= for (self: Location, Int) */
239 void location__Location__line_start_61d(val* self, long p0) {
240 self->attrs[COLOR_location__Location___line_start].l = p0; /* _line_start on <self:Location> */
241 RET_LABEL:;
242 }
243 /* method location#Location#line_start= for (self: Object, Int) */
244 void VIRTUAL_location__Location__line_start_61d(val* self, long p0) {
245 { /* Inline location#Location#line_start= (self,p0) on <self:Object(Location)> */
246 self->attrs[COLOR_location__Location___line_start].l = p0; /* _line_start on <self:Object(Location)> */
247 RET_LABEL1:(void)0;
248 }
249 RET_LABEL:;
250 }
251 /* method location#Location#line_end for (self: Location): Int */
252 long location__Location__line_end(val* self) {
253 long var /* : Int */;
254 long var1 /* : Int */;
255 var1 = self->attrs[COLOR_location__Location___line_end].l; /* _line_end on <self:Location> */
256 var = var1;
257 RET_LABEL:;
258 return var;
259 }
260 /* method location#Location#line_end for (self: Object): Int */
261 long VIRTUAL_location__Location__line_end(val* self) {
262 long var /* : Int */;
263 long var1 /* : Int */;
264 long var3 /* : Int */;
265 { /* Inline location#Location#line_end (self) on <self:Object(Location)> */
266 var3 = self->attrs[COLOR_location__Location___line_end].l; /* _line_end on <self:Object(Location)> */
267 var1 = var3;
268 RET_LABEL2:(void)0;
269 }
270 var = var1;
271 RET_LABEL:;
272 return var;
273 }
274 /* method location#Location#line_end= for (self: Location, Int) */
275 void location__Location__line_end_61d(val* self, long p0) {
276 self->attrs[COLOR_location__Location___line_end].l = p0; /* _line_end on <self:Location> */
277 RET_LABEL:;
278 }
279 /* method location#Location#line_end= for (self: Object, Int) */
280 void VIRTUAL_location__Location__line_end_61d(val* self, long p0) {
281 { /* Inline location#Location#line_end= (self,p0) on <self:Object(Location)> */
282 self->attrs[COLOR_location__Location___line_end].l = p0; /* _line_end on <self:Object(Location)> */
283 RET_LABEL1:(void)0;
284 }
285 RET_LABEL:;
286 }
287 /* method location#Location#column_start for (self: Location): Int */
288 long location__Location__column_start(val* self) {
289 long var /* : Int */;
290 long var1 /* : Int */;
291 var1 = self->attrs[COLOR_location__Location___column_start].l; /* _column_start on <self:Location> */
292 var = var1;
293 RET_LABEL:;
294 return var;
295 }
296 /* method location#Location#column_start for (self: Object): Int */
297 long VIRTUAL_location__Location__column_start(val* self) {
298 long var /* : Int */;
299 long var1 /* : Int */;
300 long var3 /* : Int */;
301 { /* Inline location#Location#column_start (self) on <self:Object(Location)> */
302 var3 = self->attrs[COLOR_location__Location___column_start].l; /* _column_start on <self:Object(Location)> */
303 var1 = var3;
304 RET_LABEL2:(void)0;
305 }
306 var = var1;
307 RET_LABEL:;
308 return var;
309 }
310 /* method location#Location#column_start= for (self: Location, Int) */
311 void location__Location__column_start_61d(val* self, long p0) {
312 self->attrs[COLOR_location__Location___column_start].l = p0; /* _column_start on <self:Location> */
313 RET_LABEL:;
314 }
315 /* method location#Location#column_start= for (self: Object, Int) */
316 void VIRTUAL_location__Location__column_start_61d(val* self, long p0) {
317 { /* Inline location#Location#column_start= (self,p0) on <self:Object(Location)> */
318 self->attrs[COLOR_location__Location___column_start].l = p0; /* _column_start on <self:Object(Location)> */
319 RET_LABEL1:(void)0;
320 }
321 RET_LABEL:;
322 }
323 /* method location#Location#column_end for (self: Location): Int */
324 long location__Location__column_end(val* self) {
325 long var /* : Int */;
326 long var1 /* : Int */;
327 var1 = self->attrs[COLOR_location__Location___column_end].l; /* _column_end on <self:Location> */
328 var = var1;
329 RET_LABEL:;
330 return var;
331 }
332 /* method location#Location#column_end for (self: Object): Int */
333 long VIRTUAL_location__Location__column_end(val* self) {
334 long var /* : Int */;
335 long var1 /* : Int */;
336 long var3 /* : Int */;
337 { /* Inline location#Location#column_end (self) on <self:Object(Location)> */
338 var3 = self->attrs[COLOR_location__Location___column_end].l; /* _column_end on <self:Object(Location)> */
339 var1 = var3;
340 RET_LABEL2:(void)0;
341 }
342 var = var1;
343 RET_LABEL:;
344 return var;
345 }
346 /* method location#Location#column_end= for (self: Location, Int) */
347 void location__Location__column_end_61d(val* self, long p0) {
348 self->attrs[COLOR_location__Location___column_end].l = p0; /* _column_end on <self:Location> */
349 RET_LABEL:;
350 }
351 /* method location#Location#column_end= for (self: Object, Int) */
352 void VIRTUAL_location__Location__column_end_61d(val* self, long p0) {
353 { /* Inline location#Location#column_end= (self,p0) on <self:Object(Location)> */
354 self->attrs[COLOR_location__Location___column_end].l = p0; /* _column_end on <self:Object(Location)> */
355 RET_LABEL1:(void)0;
356 }
357 RET_LABEL:;
358 }
359 /* method location#Location#init for (self: Location, nullable SourceFile, Int, Int, Int, Int) */
360 void location__Location__init(val* self, val* p0, long p1, long p2, long p3, long p4) {
361 val* var_f /* var f: nullable SourceFile */;
362 long var_line_s /* var line_s: Int */;
363 long var_line_e /* var line_e: Int */;
364 long var_column_s /* var column_s: Int */;
365 long var_column_e /* var column_e: Int */;
366 var_f = p0;
367 var_line_s = p1;
368 var_line_e = p2;
369 var_column_s = p3;
370 var_column_e = p4;
371 {
372 { /* Inline location#Location#file= (self,var_f) on <self:Location> */
373 self->attrs[COLOR_location__Location___file].val = var_f; /* _file on <self:Location> */
374 RET_LABEL1:(void)0;
375 }
376 }
377 {
378 { /* Inline location#Location#line_start= (self,var_line_s) on <self:Location> */
379 self->attrs[COLOR_location__Location___line_start].l = var_line_s; /* _line_start on <self:Location> */
380 RET_LABEL2:(void)0;
381 }
382 }
383 {
384 { /* Inline location#Location#line_end= (self,var_line_e) on <self:Location> */
385 self->attrs[COLOR_location__Location___line_end].l = var_line_e; /* _line_end on <self:Location> */
386 RET_LABEL3:(void)0;
387 }
388 }
389 {
390 { /* Inline location#Location#column_start= (self,var_column_s) on <self:Location> */
391 self->attrs[COLOR_location__Location___column_start].l = var_column_s; /* _column_start on <self:Location> */
392 RET_LABEL4:(void)0;
393 }
394 }
395 {
396 { /* Inline location#Location#column_end= (self,var_column_e) on <self:Location> */
397 self->attrs[COLOR_location__Location___column_end].l = var_column_e; /* _column_end on <self:Location> */
398 RET_LABEL5:(void)0;
399 }
400 }
401 RET_LABEL:;
402 }
403 /* method location#Location#init for (self: Object, nullable SourceFile, Int, Int, Int, Int) */
404 void VIRTUAL_location__Location__init(val* self, val* p0, long p1, long p2, long p3, long p4) {
405 location__Location__init(self, p0, p1, p2, p3, p4); /* Direct call location#Location#init on <self:Object(Location)>*/
406 RET_LABEL:;
407 }
408 /* method location#Location#pstart for (self: Location): Int */
409 long location__Location__pstart(val* self) {
410 long var /* : Int */;
411 val* var1 /* : nullable SourceFile */;
412 val* var3 /* : nullable SourceFile */;
413 val* var4 /* : Array[Int] */;
414 val* var6 /* : Array[Int] */;
415 long var7 /* : Int */;
416 long var9 /* : Int */;
417 long var10 /* : Int */;
418 long var11 /* : Int */;
419 short int var13 /* : Bool */;
420 int cltype;
421 int idtype;
422 const char* var_class_name;
423 long var14 /* : Int */;
424 val* var15 /* : nullable Object */;
425 long var16 /* : Int */;
426 long var18 /* : Int */;
427 long var19 /* : Int */;
428 short int var21 /* : Bool */;
429 int cltype22;
430 int idtype23;
431 const char* var_class_name24;
432 long var25 /* : Int */;
433 long var26 /* : Int */;
434 long var27 /* : Int */;
435 long var28 /* : Int */;
436 short int var30 /* : Bool */;
437 int cltype31;
438 int idtype32;
439 const char* var_class_name33;
440 long var34 /* : Int */;
441 {
442 { /* Inline location#Location#file (self) on <self:Location> */
443 var3 = self->attrs[COLOR_location__Location___file].val; /* _file on <self:Location> */
444 var1 = var3;
445 RET_LABEL2:(void)0;
446 }
447 }
448 if (var1 == NULL) {
449 PRINT_ERROR("Runtime error: %s", "Receiver is null");
450 PRINT_ERROR(" (%s:%d)\n", "location.nit", 68);
451 show_backtrace(1);
452 } else {
453 { /* Inline location#SourceFile#line_starts (var1) on <var1:nullable SourceFile> */
454 if (unlikely(var1 == NULL)) {
455 PRINT_ERROR("Runtime error: %s", "Receiver is null");
456 PRINT_ERROR(" (%s:%d)\n", "location.nit", 44);
457 show_backtrace(1);
458 }
459 var6 = var1->attrs[COLOR_location__SourceFile___line_starts].val; /* _line_starts on <var1:nullable SourceFile> */
460 if (unlikely(var6 == NULL)) {
461 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _line_starts");
462 PRINT_ERROR(" (%s:%d)\n", "location.nit", 44);
463 show_backtrace(1);
464 }
465 var4 = var6;
466 RET_LABEL5:(void)0;
467 }
468 }
469 {
470 { /* Inline location#Location#line_start (self) on <self:Location> */
471 var9 = self->attrs[COLOR_location__Location___line_start].l; /* _line_start on <self:Location> */
472 var7 = var9;
473 RET_LABEL8:(void)0;
474 }
475 }
476 var10 = 1;
477 {
478 { /* Inline kernel#Int#- (var7,var10) on <var7:Int> */
479 /* Covariant cast for argument 0 (i) <var10:Int> isa OTHER */
480 /* <var10:Int> isa OTHER */
481 var13 = 1; /* easy <var10:Int> isa OTHER*/
482 if (unlikely(!var13)) {
483 var_class_name = type_kernel__Int.name;
484 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
485 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
486 show_backtrace(1);
487 }
488 var14 = var7 - var10;
489 var11 = var14;
490 goto RET_LABEL12;
491 RET_LABEL12:(void)0;
492 }
493 }
494 {
495 var15 = array__Array___91d_93d(var4, var11);
496 }
497 {
498 { /* Inline location#Location#column_start (self) on <self:Location> */
499 var18 = self->attrs[COLOR_location__Location___column_start].l; /* _column_start on <self:Location> */
500 var16 = var18;
501 RET_LABEL17:(void)0;
502 }
503 }
504 {
505 { /* Inline kernel#Int#+ (var15,var16) on <var15:nullable Object(Int)> */
506 /* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
507 /* <var16:Int> isa OTHER */
508 var21 = 1; /* easy <var16:Int> isa OTHER*/
509 if (unlikely(!var21)) {
510 var_class_name24 = type_kernel__Int.name;
511 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
512 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
513 show_backtrace(1);
514 }
515 var25 = ((struct instance_kernel__Int*)var15)->value; /* autounbox from nullable Object to Int */;
516 var26 = var25 + var16;
517 var19 = var26;
518 goto RET_LABEL20;
519 RET_LABEL20:(void)0;
520 }
521 }
522 var27 = 1;
523 {
524 { /* Inline kernel#Int#- (var19,var27) on <var19:Int> */
525 /* Covariant cast for argument 0 (i) <var27:Int> isa OTHER */
526 /* <var27:Int> isa OTHER */
527 var30 = 1; /* easy <var27:Int> isa OTHER*/
528 if (unlikely(!var30)) {
529 var_class_name33 = type_kernel__Int.name;
530 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
531 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
532 show_backtrace(1);
533 }
534 var34 = var19 - var27;
535 var28 = var34;
536 goto RET_LABEL29;
537 RET_LABEL29:(void)0;
538 }
539 }
540 var = var28;
541 goto RET_LABEL;
542 RET_LABEL:;
543 return var;
544 }
545 /* method location#Location#pstart for (self: Object): Int */
546 long VIRTUAL_location__Location__pstart(val* self) {
547 long var /* : Int */;
548 long var1 /* : Int */;
549 var1 = location__Location__pstart(self);
550 var = var1;
551 RET_LABEL:;
552 return var;
553 }
554 /* method location#Location#pend for (self: Location): Int */
555 long location__Location__pend(val* self) {
556 long var /* : Int */;
557 val* var1 /* : nullable SourceFile */;
558 val* var3 /* : nullable SourceFile */;
559 val* var4 /* : Array[Int] */;
560 val* var6 /* : Array[Int] */;
561 long var7 /* : Int */;
562 long var9 /* : Int */;
563 long var10 /* : Int */;
564 long var11 /* : Int */;
565 short int var13 /* : Bool */;
566 int cltype;
567 int idtype;
568 const char* var_class_name;
569 long var14 /* : Int */;
570 val* var15 /* : nullable Object */;
571 long var16 /* : Int */;
572 long var18 /* : Int */;
573 long var19 /* : Int */;
574 short int var21 /* : Bool */;
575 int cltype22;
576 int idtype23;
577 const char* var_class_name24;
578 long var25 /* : Int */;
579 long var26 /* : Int */;
580 long var27 /* : Int */;
581 long var28 /* : Int */;
582 short int var30 /* : Bool */;
583 int cltype31;
584 int idtype32;
585 const char* var_class_name33;
586 long var34 /* : Int */;
587 {
588 { /* Inline location#Location#file (self) on <self:Location> */
589 var3 = self->attrs[COLOR_location__Location___file].val; /* _file on <self:Location> */
590 var1 = var3;
591 RET_LABEL2:(void)0;
592 }
593 }
594 if (var1 == NULL) {
595 PRINT_ERROR("Runtime error: %s", "Receiver is null");
596 PRINT_ERROR(" (%s:%d)\n", "location.nit", 71);
597 show_backtrace(1);
598 } else {
599 { /* Inline location#SourceFile#line_starts (var1) on <var1:nullable SourceFile> */
600 if (unlikely(var1 == NULL)) {
601 PRINT_ERROR("Runtime error: %s", "Receiver is null");
602 PRINT_ERROR(" (%s:%d)\n", "location.nit", 44);
603 show_backtrace(1);
604 }
605 var6 = var1->attrs[COLOR_location__SourceFile___line_starts].val; /* _line_starts on <var1:nullable SourceFile> */
606 if (unlikely(var6 == NULL)) {
607 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _line_starts");
608 PRINT_ERROR(" (%s:%d)\n", "location.nit", 44);
609 show_backtrace(1);
610 }
611 var4 = var6;
612 RET_LABEL5:(void)0;
613 }
614 }
615 {
616 { /* Inline location#Location#line_end (self) on <self:Location> */
617 var9 = self->attrs[COLOR_location__Location___line_end].l; /* _line_end on <self:Location> */
618 var7 = var9;
619 RET_LABEL8:(void)0;
620 }
621 }
622 var10 = 1;
623 {
624 { /* Inline kernel#Int#- (var7,var10) on <var7:Int> */
625 /* Covariant cast for argument 0 (i) <var10:Int> isa OTHER */
626 /* <var10:Int> isa OTHER */
627 var13 = 1; /* easy <var10:Int> isa OTHER*/
628 if (unlikely(!var13)) {
629 var_class_name = type_kernel__Int.name;
630 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
631 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
632 show_backtrace(1);
633 }
634 var14 = var7 - var10;
635 var11 = var14;
636 goto RET_LABEL12;
637 RET_LABEL12:(void)0;
638 }
639 }
640 {
641 var15 = array__Array___91d_93d(var4, var11);
642 }
643 {
644 { /* Inline location#Location#column_end (self) on <self:Location> */
645 var18 = self->attrs[COLOR_location__Location___column_end].l; /* _column_end on <self:Location> */
646 var16 = var18;
647 RET_LABEL17:(void)0;
648 }
649 }
650 {
651 { /* Inline kernel#Int#+ (var15,var16) on <var15:nullable Object(Int)> */
652 /* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
653 /* <var16:Int> isa OTHER */
654 var21 = 1; /* easy <var16:Int> isa OTHER*/
655 if (unlikely(!var21)) {
656 var_class_name24 = type_kernel__Int.name;
657 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
658 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
659 show_backtrace(1);
660 }
661 var25 = ((struct instance_kernel__Int*)var15)->value; /* autounbox from nullable Object to Int */;
662 var26 = var25 + var16;
663 var19 = var26;
664 goto RET_LABEL20;
665 RET_LABEL20:(void)0;
666 }
667 }
668 var27 = 1;
669 {
670 { /* Inline kernel#Int#- (var19,var27) on <var19:Int> */
671 /* Covariant cast for argument 0 (i) <var27:Int> isa OTHER */
672 /* <var27:Int> isa OTHER */
673 var30 = 1; /* easy <var27:Int> isa OTHER*/
674 if (unlikely(!var30)) {
675 var_class_name33 = type_kernel__Int.name;
676 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
677 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
678 show_backtrace(1);
679 }
680 var34 = var19 - var27;
681 var28 = var34;
682 goto RET_LABEL29;
683 RET_LABEL29:(void)0;
684 }
685 }
686 var = var28;
687 goto RET_LABEL;
688 RET_LABEL:;
689 return var;
690 }
691 /* method location#Location#pend for (self: Object): Int */
692 long VIRTUAL_location__Location__pend(val* self) {
693 long var /* : Int */;
694 long var1 /* : Int */;
695 var1 = location__Location__pend(self);
696 var = var1;
697 RET_LABEL:;
698 return var;
699 }
700 /* method location#Location#text for (self: Location): String */
701 val* location__Location__text(val* self) {
702 val* var /* : String */;
703 val* var1 /* : nullable String */;
704 val* var3 /* : nullable String */;
705 val* var_res /* var res: nullable String */;
706 val* var4 /* : null */;
707 short int var5 /* : Bool */;
708 short int var6 /* : Bool */;
709 val* var_other /* var other: nullable Object */;
710 short int var8 /* : Bool */;
711 short int var9 /* : Bool */;
712 short int var10 /* : Bool */;
713 val* var_l /* var l: Location */;
714 long var11 /* : Int */;
715 long var_pstart /* var pstart: Int */;
716 long var12 /* : Int */;
717 long var_pend /* var pend: Int */;
718 val* var13 /* : nullable SourceFile */;
719 val* var15 /* : nullable SourceFile */;
720 val* var16 /* : String */;
721 val* var18 /* : String */;
722 long var19 /* : Int */;
723 short int var21 /* : Bool */;
724 int cltype;
725 int idtype;
726 const char* var_class_name;
727 long var22 /* : Int */;
728 long var23 /* : Int */;
729 long var24 /* : Int */;
730 short int var26 /* : Bool */;
731 int cltype27;
732 int idtype28;
733 const char* var_class_name29;
734 long var30 /* : Int */;
735 val* var31 /* : String */;
736 {
737 { /* Inline location#Location#text_cache (self) on <self:Location> */
738 var3 = self->attrs[COLOR_location__Location___text_cache].val; /* _text_cache on <self:Location> */
739 var1 = var3;
740 RET_LABEL2:(void)0;
741 }
742 }
743 var_res = var1;
744 var4 = NULL;
745 if (var_res == NULL) {
746 var5 = 0; /* is null */
747 } else {
748 var5 = 1; /* arg is null and recv is not */
749 }
750 if (0) {
751 { /* Inline kernel#Object#!= (var_res,var4) on <var_res:nullable String> */
752 var_other = var4;
753 {
754 var9 = ((short int (*)(val*, val*))(var_res->class->vft[COLOR_kernel__Object___61d_61d]))(var_res, var_other) /* == on <var_res:nullable String(String)>*/;
755 var8 = var9;
756 }
757 var10 = !var8;
758 var6 = var10;
759 goto RET_LABEL7;
760 RET_LABEL7:(void)0;
761 }
762 var5 = var6;
763 }
764 if (var5){
765 var = var_res;
766 goto RET_LABEL;
767 } else {
768 }
769 var_l = self;
770 {
771 var11 = location__Location__pstart(self);
772 }
773 var_pstart = var11;
774 {
775 var12 = location__Location__pend(self);
776 }
777 var_pend = var12;
778 {
779 { /* Inline location#Location#file (var_l) on <var_l:Location> */
780 var15 = var_l->attrs[COLOR_location__Location___file].val; /* _file on <var_l:Location> */
781 var13 = var15;
782 RET_LABEL14:(void)0;
783 }
784 }
785 if (var13 == NULL) {
786 PRINT_ERROR("Runtime error: %s", "Receiver is null");
787 PRINT_ERROR(" (%s:%d)\n", "location.nit", 81);
788 show_backtrace(1);
789 } else {
790 { /* Inline location#SourceFile#string (var13) on <var13:nullable SourceFile> */
791 if (unlikely(var13 == NULL)) {
792 PRINT_ERROR("Runtime error: %s", "Receiver is null");
793 PRINT_ERROR(" (%s:%d)\n", "location.nit", 25);
794 show_backtrace(1);
795 }
796 var18 = var13->attrs[COLOR_location__SourceFile___string].val; /* _string on <var13:nullable SourceFile> */
797 if (unlikely(var18 == NULL)) {
798 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _string");
799 PRINT_ERROR(" (%s:%d)\n", "location.nit", 25);
800 show_backtrace(1);
801 }
802 var16 = var18;
803 RET_LABEL17:(void)0;
804 }
805 }
806 {
807 { /* Inline kernel#Int#- (var_pend,var_pstart) on <var_pend:Int> */
808 /* Covariant cast for argument 0 (i) <var_pstart:Int> isa OTHER */
809 /* <var_pstart:Int> isa OTHER */
810 var21 = 1; /* easy <var_pstart:Int> isa OTHER*/
811 if (unlikely(!var21)) {
812 var_class_name = type_kernel__Int.name;
813 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
814 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
815 show_backtrace(1);
816 }
817 var22 = var_pend - var_pstart;
818 var19 = var22;
819 goto RET_LABEL20;
820 RET_LABEL20:(void)0;
821 }
822 }
823 var23 = 1;
824 {
825 { /* Inline kernel#Int#+ (var19,var23) on <var19:Int> */
826 /* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
827 /* <var23:Int> isa OTHER */
828 var26 = 1; /* easy <var23:Int> isa OTHER*/
829 if (unlikely(!var26)) {
830 var_class_name29 = type_kernel__Int.name;
831 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
832 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
833 show_backtrace(1);
834 }
835 var30 = var19 + var23;
836 var24 = var30;
837 goto RET_LABEL25;
838 RET_LABEL25:(void)0;
839 }
840 }
841 {
842 var31 = string__FlatString__substring(var16, var_pstart, var24);
843 }
844 var_res = var31;
845 {
846 { /* Inline location#Location#text_cache= (self,var_res) on <self:Location> */
847 self->attrs[COLOR_location__Location___text_cache].val = var_res; /* _text_cache on <self:Location> */
848 RET_LABEL32:(void)0;
849 }
850 }
851 var = var_res;
852 goto RET_LABEL;
853 RET_LABEL:;
854 return var;
855 }
856 /* method location#Location#text for (self: Object): String */
857 val* VIRTUAL_location__Location__text(val* self) {
858 val* var /* : String */;
859 val* var1 /* : String */;
860 var1 = location__Location__text(self);
861 var = var1;
862 RET_LABEL:;
863 return var;
864 }
865 /* method location#Location#text_cache for (self: Location): nullable String */
866 val* location__Location__text_cache(val* self) {
867 val* var /* : nullable String */;
868 val* var1 /* : nullable String */;
869 var1 = self->attrs[COLOR_location__Location___text_cache].val; /* _text_cache on <self:Location> */
870 var = var1;
871 RET_LABEL:;
872 return var;
873 }
874 /* method location#Location#text_cache for (self: Object): nullable String */
875 val* VIRTUAL_location__Location__text_cache(val* self) {
876 val* var /* : nullable String */;
877 val* var1 /* : nullable String */;
878 val* var3 /* : nullable String */;
879 { /* Inline location#Location#text_cache (self) on <self:Object(Location)> */
880 var3 = self->attrs[COLOR_location__Location___text_cache].val; /* _text_cache on <self:Object(Location)> */
881 var1 = var3;
882 RET_LABEL2:(void)0;
883 }
884 var = var1;
885 RET_LABEL:;
886 return var;
887 }
888 /* method location#Location#text_cache= for (self: Location, nullable String) */
889 void location__Location__text_cache_61d(val* self, val* p0) {
890 self->attrs[COLOR_location__Location___text_cache].val = p0; /* _text_cache on <self:Location> */
891 RET_LABEL:;
892 }
893 /* method location#Location#text_cache= for (self: Object, nullable String) */
894 void VIRTUAL_location__Location__text_cache_61d(val* self, val* p0) {
895 { /* Inline location#Location#text_cache= (self,p0) on <self:Object(Location)> */
896 self->attrs[COLOR_location__Location___text_cache].val = p0; /* _text_cache on <self:Object(Location)> */
897 RET_LABEL1:(void)0;
898 }
899 RET_LABEL:;
900 }
901 /* method location#Location#== for (self: Location, nullable Object): Bool */
902 short int location__Location___61d_61d(val* self, val* p0) {
903 short int var /* : Bool */;
904 val* var_other /* var other: nullable Object */;
905 val* var1 /* : null */;
906 short int var2 /* : Bool */;
907 short int var3 /* : Bool */;
908 short int var4 /* : Bool */;
909 short int var5 /* : Bool */;
910 int cltype;
911 int idtype;
912 short int var6 /* : Bool */;
913 short int var7 /* : Bool */;
914 val* var8 /* : nullable SourceFile */;
915 val* var10 /* : nullable SourceFile */;
916 val* var11 /* : nullable SourceFile */;
917 val* var13 /* : nullable SourceFile */;
918 short int var14 /* : Bool */;
919 short int var15 /* : Bool */;
920 val* var_other17 /* var other: nullable Object */;
921 short int var18 /* : Bool */;
922 short int var19 /* : Bool */;
923 short int var20 /* : Bool */;
924 short int var21 /* : Bool */;
925 long var22 /* : Int */;
926 long var24 /* : Int */;
927 long var25 /* : Int */;
928 long var27 /* : Int */;
929 short int var28 /* : Bool */;
930 short int var29 /* : Bool */;
931 short int var31 /* : Bool */;
932 short int var32 /* : Bool */;
933 short int var33 /* : Bool */;
934 long var34 /* : Int */;
935 long var36 /* : Int */;
936 long var37 /* : Int */;
937 long var39 /* : Int */;
938 short int var40 /* : Bool */;
939 short int var41 /* : Bool */;
940 short int var43 /* : Bool */;
941 short int var44 /* : Bool */;
942 short int var45 /* : Bool */;
943 long var46 /* : Int */;
944 long var48 /* : Int */;
945 long var49 /* : Int */;
946 long var51 /* : Int */;
947 short int var52 /* : Bool */;
948 short int var53 /* : Bool */;
949 short int var55 /* : Bool */;
950 short int var56 /* : Bool */;
951 short int var57 /* : Bool */;
952 long var58 /* : Int */;
953 long var60 /* : Int */;
954 long var61 /* : Int */;
955 long var63 /* : Int */;
956 short int var64 /* : Bool */;
957 short int var65 /* : Bool */;
958 short int var67 /* : Bool */;
959 short int var68 /* : Bool */;
960 short int var69 /* : Bool */;
961 short int var70 /* : Bool */;
962 var_other = p0;
963 var1 = NULL;
964 if (var_other == NULL) {
965 var2 = 1; /* is null */
966 } else {
967 var2 = 0; /* arg is null but recv is not */
968 }
969 if (0) {
970 var3 = ((short int (*)(val*, val*))(var_other->class->vft[COLOR_kernel__Object___61d_61d]))(var_other, var1) /* == on <var_other:nullable Object>*/;
971 var2 = var3;
972 }
973 if (var2){
974 var4 = 0;
975 var = var4;
976 goto RET_LABEL;
977 } else {
978 }
979 /* <var_other:nullable Object(Object)> isa Location */
980 cltype = type_location__Location.color;
981 idtype = type_location__Location.id;
982 if(cltype >= var_other->type->table_size) {
983 var5 = 0;
984 } else {
985 var5 = var_other->type->type_table[cltype] == idtype;
986 }
987 var6 = !var5;
988 if (var6){
989 var7 = 0;
990 var = var7;
991 goto RET_LABEL;
992 } else {
993 }
994 {
995 { /* Inline location#Location#file (var_other) on <var_other:nullable Object(Location)> */
996 var10 = var_other->attrs[COLOR_location__Location___file].val; /* _file on <var_other:nullable Object(Location)> */
997 var8 = var10;
998 RET_LABEL9:(void)0;
999 }
1000 }
1001 {
1002 { /* Inline location#Location#file (self) on <self:Location> */
1003 var13 = self->attrs[COLOR_location__Location___file].val; /* _file on <self:Location> */
1004 var11 = var13;
1005 RET_LABEL12:(void)0;
1006 }
1007 }
1008 if (var8 == NULL) {
1009 var14 = (var11 != NULL);
1010 } else {
1011 { /* Inline kernel#Object#!= (var8,var11) on <var8:nullable SourceFile> */
1012 var_other17 = var11;
1013 {
1014 var19 = ((short int (*)(val*, val*))(var8->class->vft[COLOR_kernel__Object___61d_61d]))(var8, var_other17) /* == on <var8:nullable SourceFile(SourceFile)>*/;
1015 var18 = var19;
1016 }
1017 var20 = !var18;
1018 var15 = var20;
1019 goto RET_LABEL16;
1020 RET_LABEL16:(void)0;
1021 }
1022 var14 = var15;
1023 }
1024 if (var14){
1025 var21 = 0;
1026 var = var21;
1027 goto RET_LABEL;
1028 } else {
1029 }
1030 {
1031 { /* Inline location#Location#line_start (var_other) on <var_other:nullable Object(Location)> */
1032 var24 = var_other->attrs[COLOR_location__Location___line_start].l; /* _line_start on <var_other:nullable Object(Location)> */
1033 var22 = var24;
1034 RET_LABEL23:(void)0;
1035 }
1036 }
1037 {
1038 { /* Inline location#Location#line_start (self) on <self:Location> */
1039 var27 = self->attrs[COLOR_location__Location___line_start].l; /* _line_start on <self:Location> */
1040 var25 = var27;
1041 RET_LABEL26:(void)0;
1042 }
1043 }
1044 {
1045 { /* Inline kernel#Int#!= (var22,var25) on <var22:Int> */
1046 var31 = var22 == var25;
1047 var32 = !var31;
1048 var29 = var32;
1049 goto RET_LABEL30;
1050 RET_LABEL30:(void)0;
1051 }
1052 var28 = var29;
1053 }
1054 if (var28){
1055 var33 = 0;
1056 var = var33;
1057 goto RET_LABEL;
1058 } else {
1059 }
1060 {
1061 { /* Inline location#Location#line_end (var_other) on <var_other:nullable Object(Location)> */
1062 var36 = var_other->attrs[COLOR_location__Location___line_end].l; /* _line_end on <var_other:nullable Object(Location)> */
1063 var34 = var36;
1064 RET_LABEL35:(void)0;
1065 }
1066 }
1067 {
1068 { /* Inline location#Location#line_end (self) on <self:Location> */
1069 var39 = self->attrs[COLOR_location__Location___line_end].l; /* _line_end on <self:Location> */
1070 var37 = var39;
1071 RET_LABEL38:(void)0;
1072 }
1073 }
1074 {
1075 { /* Inline kernel#Int#!= (var34,var37) on <var34:Int> */
1076 var43 = var34 == var37;
1077 var44 = !var43;
1078 var41 = var44;
1079 goto RET_LABEL42;
1080 RET_LABEL42:(void)0;
1081 }
1082 var40 = var41;
1083 }
1084 if (var40){
1085 var45 = 0;
1086 var = var45;
1087 goto RET_LABEL;
1088 } else {
1089 }
1090 {
1091 { /* Inline location#Location#column_start (var_other) on <var_other:nullable Object(Location)> */
1092 var48 = var_other->attrs[COLOR_location__Location___column_start].l; /* _column_start on <var_other:nullable Object(Location)> */
1093 var46 = var48;
1094 RET_LABEL47:(void)0;
1095 }
1096 }
1097 {
1098 { /* Inline location#Location#column_start (self) on <self:Location> */
1099 var51 = self->attrs[COLOR_location__Location___column_start].l; /* _column_start on <self:Location> */
1100 var49 = var51;
1101 RET_LABEL50:(void)0;
1102 }
1103 }
1104 {
1105 { /* Inline kernel#Int#!= (var46,var49) on <var46:Int> */
1106 var55 = var46 == var49;
1107 var56 = !var55;
1108 var53 = var56;
1109 goto RET_LABEL54;
1110 RET_LABEL54:(void)0;
1111 }
1112 var52 = var53;
1113 }
1114 if (var52){
1115 var57 = 0;
1116 var = var57;
1117 goto RET_LABEL;
1118 } else {
1119 }
1120 {
1121 { /* Inline location#Location#column_end (var_other) on <var_other:nullable Object(Location)> */
1122 var60 = var_other->attrs[COLOR_location__Location___column_end].l; /* _column_end on <var_other:nullable Object(Location)> */
1123 var58 = var60;
1124 RET_LABEL59:(void)0;
1125 }
1126 }
1127 {
1128 { /* Inline location#Location#column_end (self) on <self:Location> */
1129 var63 = self->attrs[COLOR_location__Location___column_end].l; /* _column_end on <self:Location> */
1130 var61 = var63;
1131 RET_LABEL62:(void)0;
1132 }
1133 }
1134 {
1135 { /* Inline kernel#Int#!= (var58,var61) on <var58:Int> */
1136 var67 = var58 == var61;
1137 var68 = !var67;
1138 var65 = var68;
1139 goto RET_LABEL66;
1140 RET_LABEL66:(void)0;
1141 }
1142 var64 = var65;
1143 }
1144 if (var64){
1145 var69 = 0;
1146 var = var69;
1147 goto RET_LABEL;
1148 } else {
1149 }
1150 var70 = 1;
1151 var = var70;
1152 goto RET_LABEL;
1153 RET_LABEL:;
1154 return var;
1155 }
1156 /* method location#Location#== for (self: Object, nullable Object): Bool */
1157 short int VIRTUAL_location__Location___61d_61d(val* self, val* p0) {
1158 short int var /* : Bool */;
1159 short int var1 /* : Bool */;
1160 var1 = location__Location___61d_61d(self, p0);
1161 var = var1;
1162 RET_LABEL:;
1163 return var;
1164 }
1165 /* method location#Location#located_in for (self: Location, nullable Location): Bool */
1166 short int location__Location__located_in(val* self, val* p0) {
1167 short int var /* : Bool */;
1168 val* var_loc /* var loc: nullable Location */;
1169 val* var1 /* : null */;
1170 short int var2 /* : Bool */;
1171 short int var3 /* : Bool */;
1172 short int var4 /* : Bool */;
1173 long var5 /* : Int */;
1174 long var7 /* : Int */;
1175 long var8 /* : Int */;
1176 long var10 /* : Int */;
1177 short int var11 /* : Bool */;
1178 short int var13 /* : Bool */;
1179 int cltype;
1180 int idtype;
1181 const char* var_class_name;
1182 short int var14 /* : Bool */;
1183 short int var15 /* : Bool */;
1184 long var16 /* : Int */;
1185 long var18 /* : Int */;
1186 long var19 /* : Int */;
1187 long var21 /* : Int */;
1188 short int var22 /* : Bool */;
1189 short int var24 /* : Bool */;
1190 int cltype25;
1191 int idtype26;
1192 const char* var_class_name27;
1193 short int var28 /* : Bool */;
1194 short int var29 /* : Bool */;
1195 long var30 /* : Int */;
1196 long var32 /* : Int */;
1197 long var33 /* : Int */;
1198 long var35 /* : Int */;
1199 short int var36 /* : Bool */;
1200 short int var38 /* : Bool */;
1201 int cltype39;
1202 int idtype40;
1203 const char* var_class_name41;
1204 short int var42 /* : Bool */;
1205 short int var43 /* : Bool */;
1206 long var44 /* : Int */;
1207 long var46 /* : Int */;
1208 long var47 /* : Int */;
1209 long var49 /* : Int */;
1210 short int var50 /* : Bool */;
1211 short int var51 /* : Bool */;
1212 short int var53 /* : Bool */;
1213 long var54 /* : Int */;
1214 long var56 /* : Int */;
1215 long var57 /* : Int */;
1216 long var59 /* : Int */;
1217 short int var60 /* : Bool */;
1218 short int var62 /* : Bool */;
1219 int cltype63;
1220 int idtype64;
1221 const char* var_class_name65;
1222 short int var66 /* : Bool */;
1223 short int var67 /* : Bool */;
1224 long var68 /* : Int */;
1225 long var70 /* : Int */;
1226 long var71 /* : Int */;
1227 long var73 /* : Int */;
1228 short int var74 /* : Bool */;
1229 short int var76 /* : Bool */;
1230 int cltype77;
1231 int idtype78;
1232 const char* var_class_name79;
1233 short int var80 /* : Bool */;
1234 short int var81 /* : Bool */;
1235 short int var82 /* : Bool */;
1236 long var83 /* : Int */;
1237 long var85 /* : Int */;
1238 long var86 /* : Int */;
1239 long var88 /* : Int */;
1240 short int var89 /* : Bool */;
1241 short int var90 /* : Bool */;
1242 short int var92 /* : Bool */;
1243 short int var_ /* var : Bool */;
1244 long var93 /* : Int */;
1245 long var95 /* : Int */;
1246 long var96 /* : Int */;
1247 long var98 /* : Int */;
1248 short int var99 /* : Bool */;
1249 short int var101 /* : Bool */;
1250 int cltype102;
1251 int idtype103;
1252 const char* var_class_name104;
1253 short int var105 /* : Bool */;
1254 short int var106 /* : Bool */;
1255 short int var107 /* : Bool */;
1256 var_loc = p0;
1257 var1 = NULL;
1258 if (var_loc == NULL) {
1259 var2 = 1; /* is null */
1260 } else {
1261 var2 = 0; /* arg is null but recv is not */
1262 }
1263 if (0) {
1264 var3 = location__Location___61d_61d(var_loc, var1);
1265 var2 = var3;
1266 }
1267 if (var2){
1268 var4 = 0;
1269 var = var4;
1270 goto RET_LABEL;
1271 } else {
1272 }
1273 {
1274 { /* Inline location#Location#line_start (self) on <self:Location> */
1275 var7 = self->attrs[COLOR_location__Location___line_start].l; /* _line_start on <self:Location> */
1276 var5 = var7;
1277 RET_LABEL6:(void)0;
1278 }
1279 }
1280 {
1281 { /* Inline location#Location#line_start (var_loc) on <var_loc:nullable Location(Location)> */
1282 var10 = var_loc->attrs[COLOR_location__Location___line_start].l; /* _line_start on <var_loc:nullable Location(Location)> */
1283 var8 = var10;
1284 RET_LABEL9:(void)0;
1285 }
1286 }
1287 {
1288 { /* Inline kernel#Int#< (var5,var8) on <var5:Int> */
1289 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
1290 /* <var8:Int> isa OTHER */
1291 var13 = 1; /* easy <var8:Int> isa OTHER*/
1292 if (unlikely(!var13)) {
1293 var_class_name = type_kernel__Int.name;
1294 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1295 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
1296 show_backtrace(1);
1297 }
1298 var14 = var5 < var8;
1299 var11 = var14;
1300 goto RET_LABEL12;
1301 RET_LABEL12:(void)0;
1302 }
1303 }
1304 if (var11){
1305 var15 = 0;
1306 var = var15;
1307 goto RET_LABEL;
1308 } else {
1309 }
1310 {
1311 { /* Inline location#Location#line_start (self) on <self:Location> */
1312 var18 = self->attrs[COLOR_location__Location___line_start].l; /* _line_start on <self:Location> */
1313 var16 = var18;
1314 RET_LABEL17:(void)0;
1315 }
1316 }
1317 {
1318 { /* Inline location#Location#line_end (var_loc) on <var_loc:nullable Location(Location)> */
1319 var21 = var_loc->attrs[COLOR_location__Location___line_end].l; /* _line_end on <var_loc:nullable Location(Location)> */
1320 var19 = var21;
1321 RET_LABEL20:(void)0;
1322 }
1323 }
1324 {
1325 { /* Inline kernel#Int#> (var16,var19) on <var16:Int> */
1326 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
1327 /* <var19:Int> isa OTHER */
1328 var24 = 1; /* easy <var19:Int> isa OTHER*/
1329 if (unlikely(!var24)) {
1330 var_class_name27 = type_kernel__Int.name;
1331 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
1332 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
1333 show_backtrace(1);
1334 }
1335 var28 = var16 > var19;
1336 var22 = var28;
1337 goto RET_LABEL23;
1338 RET_LABEL23:(void)0;
1339 }
1340 }
1341 if (var22){
1342 var29 = 0;
1343 var = var29;
1344 goto RET_LABEL;
1345 } else {
1346 }
1347 {
1348 { /* Inline location#Location#line_end (self) on <self:Location> */
1349 var32 = self->attrs[COLOR_location__Location___line_end].l; /* _line_end on <self:Location> */
1350 var30 = var32;
1351 RET_LABEL31:(void)0;
1352 }
1353 }
1354 {
1355 { /* Inline location#Location#line_end (var_loc) on <var_loc:nullable Location(Location)> */
1356 var35 = var_loc->attrs[COLOR_location__Location___line_end].l; /* _line_end on <var_loc:nullable Location(Location)> */
1357 var33 = var35;
1358 RET_LABEL34:(void)0;
1359 }
1360 }
1361 {
1362 { /* Inline kernel#Int#> (var30,var33) on <var30:Int> */
1363 /* Covariant cast for argument 0 (i) <var33:Int> isa OTHER */
1364 /* <var33:Int> isa OTHER */
1365 var38 = 1; /* easy <var33:Int> isa OTHER*/
1366 if (unlikely(!var38)) {
1367 var_class_name41 = type_kernel__Int.name;
1368 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
1369 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
1370 show_backtrace(1);
1371 }
1372 var42 = var30 > var33;
1373 var36 = var42;
1374 goto RET_LABEL37;
1375 RET_LABEL37:(void)0;
1376 }
1377 }
1378 if (var36){
1379 var43 = 0;
1380 var = var43;
1381 goto RET_LABEL;
1382 } else {
1383 }
1384 {
1385 { /* Inline location#Location#line_start (self) on <self:Location> */
1386 var46 = self->attrs[COLOR_location__Location___line_start].l; /* _line_start on <self:Location> */
1387 var44 = var46;
1388 RET_LABEL45:(void)0;
1389 }
1390 }
1391 {
1392 { /* Inline location#Location#line_start (var_loc) on <var_loc:nullable Location(Location)> */
1393 var49 = var_loc->attrs[COLOR_location__Location___line_start].l; /* _line_start on <var_loc:nullable Location(Location)> */
1394 var47 = var49;
1395 RET_LABEL48:(void)0;
1396 }
1397 }
1398 {
1399 { /* Inline kernel#Int#== (var44,var47) on <var44:Int> */
1400 var53 = var44 == var47;
1401 var51 = var53;
1402 goto RET_LABEL52;
1403 RET_LABEL52:(void)0;
1404 }
1405 var50 = var51;
1406 }
1407 if (var50){
1408 {
1409 { /* Inline location#Location#column_start (self) on <self:Location> */
1410 var56 = self->attrs[COLOR_location__Location___column_start].l; /* _column_start on <self:Location> */
1411 var54 = var56;
1412 RET_LABEL55:(void)0;
1413 }
1414 }
1415 {
1416 { /* Inline location#Location#column_start (var_loc) on <var_loc:nullable Location(Location)> */
1417 var59 = var_loc->attrs[COLOR_location__Location___column_start].l; /* _column_start on <var_loc:nullable Location(Location)> */
1418 var57 = var59;
1419 RET_LABEL58:(void)0;
1420 }
1421 }
1422 {
1423 { /* Inline kernel#Int#< (var54,var57) on <var54:Int> */
1424 /* Covariant cast for argument 0 (i) <var57:Int> isa OTHER */
1425 /* <var57:Int> isa OTHER */
1426 var62 = 1; /* easy <var57:Int> isa OTHER*/
1427 if (unlikely(!var62)) {
1428 var_class_name65 = type_kernel__Int.name;
1429 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name65);
1430 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
1431 show_backtrace(1);
1432 }
1433 var66 = var54 < var57;
1434 var60 = var66;
1435 goto RET_LABEL61;
1436 RET_LABEL61:(void)0;
1437 }
1438 }
1439 if (var60){
1440 var67 = 0;
1441 var = var67;
1442 goto RET_LABEL;
1443 } else {
1444 }
1445 {
1446 { /* Inline location#Location#column_start (self) on <self:Location> */
1447 var70 = self->attrs[COLOR_location__Location___column_start].l; /* _column_start on <self:Location> */
1448 var68 = var70;
1449 RET_LABEL69:(void)0;
1450 }
1451 }
1452 {
1453 { /* Inline location#Location#column_end (var_loc) on <var_loc:nullable Location(Location)> */
1454 var73 = var_loc->attrs[COLOR_location__Location___column_end].l; /* _column_end on <var_loc:nullable Location(Location)> */
1455 var71 = var73;
1456 RET_LABEL72:(void)0;
1457 }
1458 }
1459 {
1460 { /* Inline kernel#Int#> (var68,var71) on <var68:Int> */
1461 /* Covariant cast for argument 0 (i) <var71:Int> isa OTHER */
1462 /* <var71:Int> isa OTHER */
1463 var76 = 1; /* easy <var71:Int> isa OTHER*/
1464 if (unlikely(!var76)) {
1465 var_class_name79 = type_kernel__Int.name;
1466 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name79);
1467 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
1468 show_backtrace(1);
1469 }
1470 var80 = var68 > var71;
1471 var74 = var80;
1472 goto RET_LABEL75;
1473 RET_LABEL75:(void)0;
1474 }
1475 }
1476 if (var74){
1477 var81 = 0;
1478 var = var81;
1479 goto RET_LABEL;
1480 } else {
1481 }
1482 } else {
1483 }
1484 {
1485 { /* Inline location#Location#line_end (self) on <self:Location> */
1486 var85 = self->attrs[COLOR_location__Location___line_end].l; /* _line_end on <self:Location> */
1487 var83 = var85;
1488 RET_LABEL84:(void)0;
1489 }
1490 }
1491 {
1492 { /* Inline location#Location#line_end (var_loc) on <var_loc:nullable Location(Location)> */
1493 var88 = var_loc->attrs[COLOR_location__Location___line_end].l; /* _line_end on <var_loc:nullable Location(Location)> */
1494 var86 = var88;
1495 RET_LABEL87:(void)0;
1496 }
1497 }
1498 {
1499 { /* Inline kernel#Int#== (var83,var86) on <var83:Int> */
1500 var92 = var83 == var86;
1501 var90 = var92;
1502 goto RET_LABEL91;
1503 RET_LABEL91:(void)0;
1504 }
1505 var89 = var90;
1506 }
1507 var_ = var89;
1508 if (var89){
1509 {
1510 { /* Inline location#Location#column_end (self) on <self:Location> */
1511 var95 = self->attrs[COLOR_location__Location___column_end].l; /* _column_end on <self:Location> */
1512 var93 = var95;
1513 RET_LABEL94:(void)0;
1514 }
1515 }
1516 {
1517 { /* Inline location#Location#column_end (var_loc) on <var_loc:nullable Location(Location)> */
1518 var98 = var_loc->attrs[COLOR_location__Location___column_end].l; /* _column_end on <var_loc:nullable Location(Location)> */
1519 var96 = var98;
1520 RET_LABEL97:(void)0;
1521 }
1522 }
1523 {
1524 { /* Inline kernel#Int#> (var93,var96) on <var93:Int> */
1525 /* Covariant cast for argument 0 (i) <var96:Int> isa OTHER */
1526 /* <var96:Int> isa OTHER */
1527 var101 = 1; /* easy <var96:Int> isa OTHER*/
1528 if (unlikely(!var101)) {
1529 var_class_name104 = type_kernel__Int.name;
1530 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name104);
1531 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
1532 show_backtrace(1);
1533 }
1534 var105 = var93 > var96;
1535 var99 = var105;
1536 goto RET_LABEL100;
1537 RET_LABEL100:(void)0;
1538 }
1539 }
1540 var82 = var99;
1541 } else {
1542 var82 = var_;
1543 }
1544 if (var82){
1545 var106 = 0;
1546 var = var106;
1547 goto RET_LABEL;
1548 } else {
1549 }
1550 var107 = 1;
1551 var = var107;
1552 goto RET_LABEL;
1553 RET_LABEL:;
1554 return var;
1555 }
1556 /* method location#Location#located_in for (self: Object, nullable Location): Bool */
1557 short int VIRTUAL_location__Location__located_in(val* self, val* p0) {
1558 short int var /* : Bool */;
1559 short int var1 /* : Bool */;
1560 var1 = location__Location__located_in(self, p0);
1561 var = var1;
1562 RET_LABEL:;
1563 return var;
1564 }
1565 /* method location#Location#to_s for (self: Location): String */
1566 val* location__Location__to_s(val* self) {
1567 val* var /* : String */;
1568 static val* varonce;
1569 val* var1 /* : String */;
1570 char* var2 /* : NativeString */;
1571 long var3 /* : Int */;
1572 val* var4 /* : FlatString */;
1573 val* var_file_part /* var file_part: String */;
1574 val* var5 /* : nullable SourceFile */;
1575 val* var7 /* : nullable SourceFile */;
1576 val* var8 /* : null */;
1577 short int var9 /* : Bool */;
1578 short int var10 /* : Bool */;
1579 val* var_other /* var other: nullable Object */;
1580 short int var12 /* : Bool */;
1581 short int var13 /* : Bool */;
1582 short int var14 /* : Bool */;
1583 val* var15 /* : nullable SourceFile */;
1584 val* var17 /* : nullable SourceFile */;
1585 val* var18 /* : String */;
1586 val* var20 /* : String */;
1587 val* var21 /* : nullable SourceFile */;
1588 val* var23 /* : nullable SourceFile */;
1589 val* var24 /* : String */;
1590 val* var26 /* : String */;
1591 long var27 /* : Int */;
1592 long var29 /* : Int */;
1593 long var30 /* : Int */;
1594 short int var31 /* : Bool */;
1595 short int var33 /* : Bool */;
1596 int cltype;
1597 int idtype;
1598 const char* var_class_name;
1599 short int var34 /* : Bool */;
1600 static val* varonce35;
1601 val* var36 /* : String */;
1602 char* var37 /* : NativeString */;
1603 long var38 /* : Int */;
1604 val* var39 /* : FlatString */;
1605 val* var40 /* : String */;
1606 long var41 /* : Int */;
1607 long var43 /* : Int */;
1608 long var44 /* : Int */;
1609 long var46 /* : Int */;
1610 short int var47 /* : Bool */;
1611 short int var48 /* : Bool */;
1612 short int var50 /* : Bool */;
1613 long var51 /* : Int */;
1614 long var53 /* : Int */;
1615 long var54 /* : Int */;
1616 long var56 /* : Int */;
1617 short int var57 /* : Bool */;
1618 short int var58 /* : Bool */;
1619 short int var60 /* : Bool */;
1620 long var61 /* : Int */;
1621 long var63 /* : Int */;
1622 static val* varonce64;
1623 val* var65 /* : String */;
1624 char* var66 /* : NativeString */;
1625 long var67 /* : Int */;
1626 val* var68 /* : FlatString */;
1627 long var69 /* : Int */;
1628 long var71 /* : Int */;
1629 val* var72 /* : Array[Object] */;
1630 long var73 /* : Int */;
1631 val* var74 /* : NativeArray[Object] */;
1632 val* var75 /* : Object */;
1633 val* var76 /* : Object */;
1634 val* var77 /* : String */;
1635 long var78 /* : Int */;
1636 long var80 /* : Int */;
1637 static val* varonce81;
1638 val* var82 /* : String */;
1639 char* var83 /* : NativeString */;
1640 long var84 /* : Int */;
1641 val* var85 /* : FlatString */;
1642 long var86 /* : Int */;
1643 long var88 /* : Int */;
1644 static val* varonce89;
1645 val* var90 /* : String */;
1646 char* var91 /* : NativeString */;
1647 long var92 /* : Int */;
1648 val* var93 /* : FlatString */;
1649 long var94 /* : Int */;
1650 long var96 /* : Int */;
1651 val* var97 /* : Array[Object] */;
1652 long var98 /* : Int */;
1653 val* var99 /* : NativeArray[Object] */;
1654 val* var100 /* : Object */;
1655 val* var101 /* : Object */;
1656 val* var102 /* : Object */;
1657 val* var103 /* : String */;
1658 long var104 /* : Int */;
1659 long var106 /* : Int */;
1660 static val* varonce107;
1661 val* var108 /* : String */;
1662 char* var109 /* : NativeString */;
1663 long var110 /* : Int */;
1664 val* var111 /* : FlatString */;
1665 long var112 /* : Int */;
1666 long var114 /* : Int */;
1667 static val* varonce115;
1668 val* var116 /* : String */;
1669 char* var117 /* : NativeString */;
1670 long var118 /* : Int */;
1671 val* var119 /* : FlatString */;
1672 long var120 /* : Int */;
1673 long var122 /* : Int */;
1674 static val* varonce123;
1675 val* var124 /* : String */;
1676 char* var125 /* : NativeString */;
1677 long var126 /* : Int */;
1678 val* var127 /* : FlatString */;
1679 long var128 /* : Int */;
1680 long var130 /* : Int */;
1681 val* var131 /* : Array[Object] */;
1682 long var132 /* : Int */;
1683 val* var133 /* : NativeArray[Object] */;
1684 val* var134 /* : Object */;
1685 val* var135 /* : Object */;
1686 val* var136 /* : Object */;
1687 val* var137 /* : Object */;
1688 val* var138 /* : String */;
1689 if (varonce) {
1690 var1 = varonce;
1691 } else {
1692 var2 = "";
1693 var3 = 0;
1694 var4 = string__NativeString__to_s_with_length(var2, var3);
1695 var1 = var4;
1696 varonce = var1;
1697 }
1698 var_file_part = var1;
1699 {
1700 { /* Inline location#Location#file (self) on <self:Location> */
1701 var7 = self->attrs[COLOR_location__Location___file].val; /* _file on <self:Location> */
1702 var5 = var7;
1703 RET_LABEL6:(void)0;
1704 }
1705 }
1706 var8 = NULL;
1707 if (var5 == NULL) {
1708 var9 = 0; /* is null */
1709 } else {
1710 var9 = 1; /* arg is null and recv is not */
1711 }
1712 if (0) {
1713 { /* Inline kernel#Object#!= (var5,var8) on <var5:nullable SourceFile> */
1714 var_other = var8;
1715 {
1716 var13 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_other) /* == on <var5:nullable SourceFile(SourceFile)>*/;
1717 var12 = var13;
1718 }
1719 var14 = !var12;
1720 var10 = var14;
1721 goto RET_LABEL11;
1722 RET_LABEL11:(void)0;
1723 }
1724 var9 = var10;
1725 }
1726 if (var9){
1727 {
1728 { /* Inline location#Location#file (self) on <self:Location> */
1729 var17 = self->attrs[COLOR_location__Location___file].val; /* _file on <self:Location> */
1730 var15 = var17;
1731 RET_LABEL16:(void)0;
1732 }
1733 }
1734 if (var15 == NULL) {
1735 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1736 PRINT_ERROR(" (%s:%d)\n", "location.nit", 125);
1737 show_backtrace(1);
1738 } else {
1739 { /* Inline location#SourceFile#filename (var15) on <var15:nullable SourceFile> */
1740 if (unlikely(var15 == NULL)) {
1741 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1742 PRINT_ERROR(" (%s:%d)\n", "location.nit", 22);
1743 show_backtrace(1);
1744 }
1745 var20 = var15->attrs[COLOR_location__SourceFile___filename].val; /* _filename on <var15:nullable SourceFile> */
1746 if (unlikely(var20 == NULL)) {
1747 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
1748 PRINT_ERROR(" (%s:%d)\n", "location.nit", 22);
1749 show_backtrace(1);
1750 }
1751 var18 = var20;
1752 RET_LABEL19:(void)0;
1753 }
1754 }
1755 var_file_part = var18;
1756 {
1757 { /* Inline location#Location#file (self) on <self:Location> */
1758 var23 = self->attrs[COLOR_location__Location___file].val; /* _file on <self:Location> */
1759 var21 = var23;
1760 RET_LABEL22:(void)0;
1761 }
1762 }
1763 if (var21 == NULL) {
1764 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1765 PRINT_ERROR(" (%s:%d)\n", "location.nit", 126);
1766 show_backtrace(1);
1767 } else {
1768 { /* Inline location#SourceFile#filename (var21) on <var21:nullable SourceFile> */
1769 if (unlikely(var21 == NULL)) {
1770 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1771 PRINT_ERROR(" (%s:%d)\n", "location.nit", 22);
1772 show_backtrace(1);
1773 }
1774 var26 = var21->attrs[COLOR_location__SourceFile___filename].val; /* _filename on <var21:nullable SourceFile> */
1775 if (unlikely(var26 == NULL)) {
1776 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
1777 PRINT_ERROR(" (%s:%d)\n", "location.nit", 22);
1778 show_backtrace(1);
1779 }
1780 var24 = var26;
1781 RET_LABEL25:(void)0;
1782 }
1783 }
1784 {
1785 { /* Inline string#FlatText#length (var24) on <var24:String> */
1786 var29 = var24->attrs[COLOR_string__FlatText___length].l; /* _length on <var24:String> */
1787 var27 = var29;
1788 RET_LABEL28:(void)0;
1789 }
1790 }
1791 var30 = 0;
1792 {
1793 { /* Inline kernel#Int#> (var27,var30) on <var27:Int> */
1794 /* Covariant cast for argument 0 (i) <var30:Int> isa OTHER */
1795 /* <var30:Int> isa OTHER */
1796 var33 = 1; /* easy <var30:Int> isa OTHER*/
1797 if (unlikely(!var33)) {
1798 var_class_name = type_kernel__Int.name;
1799 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1800 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
1801 show_backtrace(1);
1802 }
1803 var34 = var27 > var30;
1804 var31 = var34;
1805 goto RET_LABEL32;
1806 RET_LABEL32:(void)0;
1807 }
1808 }
1809 if (var31){
1810 if (varonce35) {
1811 var36 = varonce35;
1812 } else {
1813 var37 = ":";
1814 var38 = 1;
1815 var39 = string__NativeString__to_s_with_length(var37, var38);
1816 var36 = var39;
1817 varonce35 = var36;
1818 }
1819 {
1820 var40 = string__FlatString___43d(var_file_part, var36);
1821 }
1822 var_file_part = var40;
1823 } else {
1824 }
1825 } else {
1826 }
1827 {
1828 { /* Inline location#Location#line_start (self) on <self:Location> */
1829 var43 = self->attrs[COLOR_location__Location___line_start].l; /* _line_start on <self:Location> */
1830 var41 = var43;
1831 RET_LABEL42:(void)0;
1832 }
1833 }
1834 {
1835 { /* Inline location#Location#line_end (self) on <self:Location> */
1836 var46 = self->attrs[COLOR_location__Location___line_end].l; /* _line_end on <self:Location> */
1837 var44 = var46;
1838 RET_LABEL45:(void)0;
1839 }
1840 }
1841 {
1842 { /* Inline kernel#Int#== (var41,var44) on <var41:Int> */
1843 var50 = var41 == var44;
1844 var48 = var50;
1845 goto RET_LABEL49;
1846 RET_LABEL49:(void)0;
1847 }
1848 var47 = var48;
1849 }
1850 if (var47){
1851 {
1852 { /* Inline location#Location#column_start (self) on <self:Location> */
1853 var53 = self->attrs[COLOR_location__Location___column_start].l; /* _column_start on <self:Location> */
1854 var51 = var53;
1855 RET_LABEL52:(void)0;
1856 }
1857 }
1858 {
1859 { /* Inline location#Location#column_end (self) on <self:Location> */
1860 var56 = self->attrs[COLOR_location__Location___column_end].l; /* _column_end on <self:Location> */
1861 var54 = var56;
1862 RET_LABEL55:(void)0;
1863 }
1864 }
1865 {
1866 { /* Inline kernel#Int#== (var51,var54) on <var51:Int> */
1867 var60 = var51 == var54;
1868 var58 = var60;
1869 goto RET_LABEL59;
1870 RET_LABEL59:(void)0;
1871 }
1872 var57 = var58;
1873 }
1874 if (var57){
1875 {
1876 { /* Inline location#Location#line_start (self) on <self:Location> */
1877 var63 = self->attrs[COLOR_location__Location___line_start].l; /* _line_start on <self:Location> */
1878 var61 = var63;
1879 RET_LABEL62:(void)0;
1880 }
1881 }
1882 if (varonce64) {
1883 var65 = varonce64;
1884 } else {
1885 var66 = ",";
1886 var67 = 1;
1887 var68 = string__NativeString__to_s_with_length(var66, var67);
1888 var65 = var68;
1889 varonce64 = var65;
1890 }
1891 {
1892 { /* Inline location#Location#column_start (self) on <self:Location> */
1893 var71 = self->attrs[COLOR_location__Location___column_start].l; /* _column_start on <self:Location> */
1894 var69 = var71;
1895 RET_LABEL70:(void)0;
1896 }
1897 }
1898 var72 = NEW_array__Array(&type_array__Arraykernel__Object);
1899 { /* var72 = array_instance Array[Object] */
1900 var73 = 4;
1901 var74 = NEW_array__NativeArray(var73, &type_array__NativeArraykernel__Object);
1902 ((struct instance_array__NativeArray*)var74)->values[0] = (val*) var_file_part;
1903 var75 = BOX_kernel__Int(var61); /* autobox from Int to Object */
1904 ((struct instance_array__NativeArray*)var74)->values[1] = (val*) var75;
1905 ((struct instance_array__NativeArray*)var74)->values[2] = (val*) var65;
1906 var76 = BOX_kernel__Int(var69); /* autobox from Int to Object */
1907 ((struct instance_array__NativeArray*)var74)->values[3] = (val*) var76;
1908 {
1909 ((void (*)(val*, val*, long))(var72->class->vft[COLOR_array__Array__with_native]))(var72, var74, var73) /* with_native on <var72:Array[Object]>*/;
1910 }
1911 }
1912 {
1913 var77 = ((val* (*)(val*))(var72->class->vft[COLOR_string__Object__to_s]))(var72) /* to_s on <var72:Array[Object]>*/;
1914 }
1915 var = var77;
1916 goto RET_LABEL;
1917 } else {
1918 {
1919 { /* Inline location#Location#line_start (self) on <self:Location> */
1920 var80 = self->attrs[COLOR_location__Location___line_start].l; /* _line_start on <self:Location> */
1921 var78 = var80;
1922 RET_LABEL79:(void)0;
1923 }
1924 }
1925 if (varonce81) {
1926 var82 = varonce81;
1927 } else {
1928 var83 = ",";
1929 var84 = 1;
1930 var85 = string__NativeString__to_s_with_length(var83, var84);
1931 var82 = var85;
1932 varonce81 = var82;
1933 }
1934 {
1935 { /* Inline location#Location#column_start (self) on <self:Location> */
1936 var88 = self->attrs[COLOR_location__Location___column_start].l; /* _column_start on <self:Location> */
1937 var86 = var88;
1938 RET_LABEL87:(void)0;
1939 }
1940 }
1941 if (varonce89) {
1942 var90 = varonce89;
1943 } else {
1944 var91 = "--";
1945 var92 = 2;
1946 var93 = string__NativeString__to_s_with_length(var91, var92);
1947 var90 = var93;
1948 varonce89 = var90;
1949 }
1950 {
1951 { /* Inline location#Location#column_end (self) on <self:Location> */
1952 var96 = self->attrs[COLOR_location__Location___column_end].l; /* _column_end on <self:Location> */
1953 var94 = var96;
1954 RET_LABEL95:(void)0;
1955 }
1956 }
1957 var97 = NEW_array__Array(&type_array__Arraykernel__Object);
1958 { /* var97 = array_instance Array[Object] */
1959 var98 = 6;
1960 var99 = NEW_array__NativeArray(var98, &type_array__NativeArraykernel__Object);
1961 ((struct instance_array__NativeArray*)var99)->values[0] = (val*) var_file_part;
1962 var100 = BOX_kernel__Int(var78); /* autobox from Int to Object */
1963 ((struct instance_array__NativeArray*)var99)->values[1] = (val*) var100;
1964 ((struct instance_array__NativeArray*)var99)->values[2] = (val*) var82;
1965 var101 = BOX_kernel__Int(var86); /* autobox from Int to Object */
1966 ((struct instance_array__NativeArray*)var99)->values[3] = (val*) var101;
1967 ((struct instance_array__NativeArray*)var99)->values[4] = (val*) var90;
1968 var102 = BOX_kernel__Int(var94); /* autobox from Int to Object */
1969 ((struct instance_array__NativeArray*)var99)->values[5] = (val*) var102;
1970 {
1971 ((void (*)(val*, val*, long))(var97->class->vft[COLOR_array__Array__with_native]))(var97, var99, var98) /* with_native on <var97:Array[Object]>*/;
1972 }
1973 }
1974 {
1975 var103 = ((val* (*)(val*))(var97->class->vft[COLOR_string__Object__to_s]))(var97) /* to_s on <var97:Array[Object]>*/;
1976 }
1977 var = var103;
1978 goto RET_LABEL;
1979 }
1980 } else {
1981 {
1982 { /* Inline location#Location#line_start (self) on <self:Location> */
1983 var106 = self->attrs[COLOR_location__Location___line_start].l; /* _line_start on <self:Location> */
1984 var104 = var106;
1985 RET_LABEL105:(void)0;
1986 }
1987 }
1988 if (varonce107) {
1989 var108 = varonce107;
1990 } else {
1991 var109 = ",";
1992 var110 = 1;
1993 var111 = string__NativeString__to_s_with_length(var109, var110);
1994 var108 = var111;
1995 varonce107 = var108;
1996 }
1997 {
1998 { /* Inline location#Location#column_start (self) on <self:Location> */
1999 var114 = self->attrs[COLOR_location__Location___column_start].l; /* _column_start on <self:Location> */
2000 var112 = var114;
2001 RET_LABEL113:(void)0;
2002 }
2003 }
2004 if (varonce115) {
2005 var116 = varonce115;
2006 } else {
2007 var117 = "--";
2008 var118 = 2;
2009 var119 = string__NativeString__to_s_with_length(var117, var118);
2010 var116 = var119;
2011 varonce115 = var116;
2012 }
2013 {
2014 { /* Inline location#Location#line_end (self) on <self:Location> */
2015 var122 = self->attrs[COLOR_location__Location___line_end].l; /* _line_end on <self:Location> */
2016 var120 = var122;
2017 RET_LABEL121:(void)0;
2018 }
2019 }
2020 if (varonce123) {
2021 var124 = varonce123;
2022 } else {
2023 var125 = ",";
2024 var126 = 1;
2025 var127 = string__NativeString__to_s_with_length(var125, var126);
2026 var124 = var127;
2027 varonce123 = var124;
2028 }
2029 {
2030 { /* Inline location#Location#column_end (self) on <self:Location> */
2031 var130 = self->attrs[COLOR_location__Location___column_end].l; /* _column_end on <self:Location> */
2032 var128 = var130;
2033 RET_LABEL129:(void)0;
2034 }
2035 }
2036 var131 = NEW_array__Array(&type_array__Arraykernel__Object);
2037 { /* var131 = array_instance Array[Object] */
2038 var132 = 8;
2039 var133 = NEW_array__NativeArray(var132, &type_array__NativeArraykernel__Object);
2040 ((struct instance_array__NativeArray*)var133)->values[0] = (val*) var_file_part;
2041 var134 = BOX_kernel__Int(var104); /* autobox from Int to Object */
2042 ((struct instance_array__NativeArray*)var133)->values[1] = (val*) var134;
2043 ((struct instance_array__NativeArray*)var133)->values[2] = (val*) var108;
2044 var135 = BOX_kernel__Int(var112); /* autobox from Int to Object */
2045 ((struct instance_array__NativeArray*)var133)->values[3] = (val*) var135;
2046 ((struct instance_array__NativeArray*)var133)->values[4] = (val*) var116;
2047 var136 = BOX_kernel__Int(var120); /* autobox from Int to Object */
2048 ((struct instance_array__NativeArray*)var133)->values[5] = (val*) var136;
2049 ((struct instance_array__NativeArray*)var133)->values[6] = (val*) var124;
2050 var137 = BOX_kernel__Int(var128); /* autobox from Int to Object */
2051 ((struct instance_array__NativeArray*)var133)->values[7] = (val*) var137;
2052 {
2053 ((void (*)(val*, val*, long))(var131->class->vft[COLOR_array__Array__with_native]))(var131, var133, var132) /* with_native on <var131:Array[Object]>*/;
2054 }
2055 }
2056 {
2057 var138 = ((val* (*)(val*))(var131->class->vft[COLOR_string__Object__to_s]))(var131) /* to_s on <var131:Array[Object]>*/;
2058 }
2059 var = var138;
2060 goto RET_LABEL;
2061 }
2062 RET_LABEL:;
2063 return var;
2064 }
2065 /* method location#Location#to_s for (self: Object): String */
2066 val* VIRTUAL_location__Location__to_s(val* self) {
2067 val* var /* : String */;
2068 val* var1 /* : String */;
2069 var1 = location__Location__to_s(self);
2070 var = var1;
2071 RET_LABEL:;
2072 return var;
2073 }
2074 /* method location#Location#< for (self: Location, Location): Bool */
2075 short int location__Location___60d(val* self, val* p0) {
2076 short int var /* : Bool */;
2077 short int var1 /* : Bool */;
2078 int cltype;
2079 int idtype;
2080 const struct type* type_struct;
2081 const char* var_class_name;
2082 val* var_other /* var other: Location */;
2083 short int var2 /* : Bool */;
2084 short int var3 /* : Bool */;
2085 short int var4 /* : Bool */;
2086 short int var5 /* : Bool */;
2087 short int var6 /* : Bool */;
2088 short int var7 /* : Bool */;
2089 short int var8 /* : Bool */;
2090 long var9 /* : Int */;
2091 long var11 /* : Int */;
2092 long var12 /* : Int */;
2093 long var14 /* : Int */;
2094 short int var15 /* : Bool */;
2095 short int var16 /* : Bool */;
2096 short int var18 /* : Bool */;
2097 short int var19 /* : Bool */;
2098 long var20 /* : Int */;
2099 long var22 /* : Int */;
2100 long var23 /* : Int */;
2101 long var25 /* : Int */;
2102 short int var26 /* : Bool */;
2103 short int var28 /* : Bool */;
2104 int cltype29;
2105 int idtype30;
2106 const char* var_class_name31;
2107 short int var32 /* : Bool */;
2108 long var33 /* : Int */;
2109 long var35 /* : Int */;
2110 long var36 /* : Int */;
2111 long var38 /* : Int */;
2112 short int var39 /* : Bool */;
2113 short int var40 /* : Bool */;
2114 short int var42 /* : Bool */;
2115 short int var43 /* : Bool */;
2116 long var44 /* : Int */;
2117 long var46 /* : Int */;
2118 long var47 /* : Int */;
2119 long var49 /* : Int */;
2120 short int var50 /* : Bool */;
2121 short int var52 /* : Bool */;
2122 int cltype53;
2123 int idtype54;
2124 const char* var_class_name55;
2125 short int var56 /* : Bool */;
2126 long var57 /* : Int */;
2127 long var59 /* : Int */;
2128 long var60 /* : Int */;
2129 long var62 /* : Int */;
2130 short int var63 /* : Bool */;
2131 short int var64 /* : Bool */;
2132 short int var66 /* : Bool */;
2133 short int var67 /* : Bool */;
2134 long var68 /* : Int */;
2135 long var70 /* : Int */;
2136 long var71 /* : Int */;
2137 long var73 /* : Int */;
2138 short int var74 /* : Bool */;
2139 short int var76 /* : Bool */;
2140 int cltype77;
2141 int idtype78;
2142 const char* var_class_name79;
2143 short int var80 /* : Bool */;
2144 long var81 /* : Int */;
2145 long var83 /* : Int */;
2146 long var84 /* : Int */;
2147 long var86 /* : Int */;
2148 short int var87 /* : Bool */;
2149 short int var89 /* : Bool */;
2150 int cltype90;
2151 int idtype91;
2152 const char* var_class_name92;
2153 short int var93 /* : Bool */;
2154 /* Covariant cast for argument 0 (other) <p0:Location> isa OTHER */
2155 /* <p0:Location> isa OTHER */
2156 type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
2157 cltype = type_struct->color;
2158 idtype = type_struct->id;
2159 if(cltype >= p0->type->table_size) {
2160 var1 = 0;
2161 } else {
2162 var1 = p0->type->type_table[cltype] == idtype;
2163 }
2164 if (unlikely(!var1)) {
2165 var_class_name = p0 == NULL ? "null" : p0->type->name;
2166 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2167 PRINT_ERROR(" (%s:%d)\n", "location.nit", 153);
2168 show_backtrace(1);
2169 }
2170 var_other = p0;
2171 {
2172 var3 = location__Location___61d_61d(self, var_other);
2173 var2 = var3;
2174 }
2175 if (var2){
2176 var4 = 0;
2177 var = var4;
2178 goto RET_LABEL;
2179 } else {
2180 }
2181 {
2182 var5 = location__Location__located_in(self, var_other);
2183 }
2184 if (var5){
2185 var6 = 1;
2186 var = var6;
2187 goto RET_LABEL;
2188 } else {
2189 }
2190 {
2191 var7 = location__Location__located_in(var_other, self);
2192 }
2193 if (var7){
2194 var8 = 0;
2195 var = var8;
2196 goto RET_LABEL;
2197 } else {
2198 }
2199 {
2200 { /* Inline location#Location#line_start (self) on <self:Location> */
2201 var11 = self->attrs[COLOR_location__Location___line_start].l; /* _line_start on <self:Location> */
2202 var9 = var11;
2203 RET_LABEL10:(void)0;
2204 }
2205 }
2206 {
2207 { /* Inline location#Location#line_start (var_other) on <var_other:Location> */
2208 var14 = var_other->attrs[COLOR_location__Location___line_start].l; /* _line_start on <var_other:Location> */
2209 var12 = var14;
2210 RET_LABEL13:(void)0;
2211 }
2212 }
2213 {
2214 { /* Inline kernel#Int#!= (var9,var12) on <var9:Int> */
2215 var18 = var9 == var12;
2216 var19 = !var18;
2217 var16 = var19;
2218 goto RET_LABEL17;
2219 RET_LABEL17:(void)0;
2220 }
2221 var15 = var16;
2222 }
2223 if (var15){
2224 {
2225 { /* Inline location#Location#line_start (self) on <self:Location> */
2226 var22 = self->attrs[COLOR_location__Location___line_start].l; /* _line_start on <self:Location> */
2227 var20 = var22;
2228 RET_LABEL21:(void)0;
2229 }
2230 }
2231 {
2232 { /* Inline location#Location#line_start (var_other) on <var_other:Location> */
2233 var25 = var_other->attrs[COLOR_location__Location___line_start].l; /* _line_start on <var_other:Location> */
2234 var23 = var25;
2235 RET_LABEL24:(void)0;
2236 }
2237 }
2238 {
2239 { /* Inline kernel#Int#< (var20,var23) on <var20:Int> */
2240 /* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
2241 /* <var23:Int> isa OTHER */
2242 var28 = 1; /* easy <var23:Int> isa OTHER*/
2243 if (unlikely(!var28)) {
2244 var_class_name31 = type_kernel__Int.name;
2245 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
2246 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
2247 show_backtrace(1);
2248 }
2249 var32 = var20 < var23;
2250 var26 = var32;
2251 goto RET_LABEL27;
2252 RET_LABEL27:(void)0;
2253 }
2254 }
2255 var = var26;
2256 goto RET_LABEL;
2257 } else {
2258 }
2259 {
2260 { /* Inline location#Location#column_start (self) on <self:Location> */
2261 var35 = self->attrs[COLOR_location__Location___column_start].l; /* _column_start on <self:Location> */
2262 var33 = var35;
2263 RET_LABEL34:(void)0;
2264 }
2265 }
2266 {
2267 { /* Inline location#Location#column_start (var_other) on <var_other:Location> */
2268 var38 = var_other->attrs[COLOR_location__Location___column_start].l; /* _column_start on <var_other:Location> */
2269 var36 = var38;
2270 RET_LABEL37:(void)0;
2271 }
2272 }
2273 {
2274 { /* Inline kernel#Int#!= (var33,var36) on <var33:Int> */
2275 var42 = var33 == var36;
2276 var43 = !var42;
2277 var40 = var43;
2278 goto RET_LABEL41;
2279 RET_LABEL41:(void)0;
2280 }
2281 var39 = var40;
2282 }
2283 if (var39){
2284 {
2285 { /* Inline location#Location#column_start (self) on <self:Location> */
2286 var46 = self->attrs[COLOR_location__Location___column_start].l; /* _column_start on <self:Location> */
2287 var44 = var46;
2288 RET_LABEL45:(void)0;
2289 }
2290 }
2291 {
2292 { /* Inline location#Location#column_start (var_other) on <var_other:Location> */
2293 var49 = var_other->attrs[COLOR_location__Location___column_start].l; /* _column_start on <var_other:Location> */
2294 var47 = var49;
2295 RET_LABEL48:(void)0;
2296 }
2297 }
2298 {
2299 { /* Inline kernel#Int#< (var44,var47) on <var44:Int> */
2300 /* Covariant cast for argument 0 (i) <var47:Int> isa OTHER */
2301 /* <var47:Int> isa OTHER */
2302 var52 = 1; /* easy <var47:Int> isa OTHER*/
2303 if (unlikely(!var52)) {
2304 var_class_name55 = type_kernel__Int.name;
2305 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55);
2306 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
2307 show_backtrace(1);
2308 }
2309 var56 = var44 < var47;
2310 var50 = var56;
2311 goto RET_LABEL51;
2312 RET_LABEL51:(void)0;
2313 }
2314 }
2315 var = var50;
2316 goto RET_LABEL;
2317 } else {
2318 }
2319 {
2320 { /* Inline location#Location#line_end (self) on <self:Location> */
2321 var59 = self->attrs[COLOR_location__Location___line_end].l; /* _line_end on <self:Location> */
2322 var57 = var59;
2323 RET_LABEL58:(void)0;
2324 }
2325 }
2326 {
2327 { /* Inline location#Location#line_end (var_other) on <var_other:Location> */
2328 var62 = var_other->attrs[COLOR_location__Location___line_end].l; /* _line_end on <var_other:Location> */
2329 var60 = var62;
2330 RET_LABEL61:(void)0;
2331 }
2332 }
2333 {
2334 { /* Inline kernel#Int#!= (var57,var60) on <var57:Int> */
2335 var66 = var57 == var60;
2336 var67 = !var66;
2337 var64 = var67;
2338 goto RET_LABEL65;
2339 RET_LABEL65:(void)0;
2340 }
2341 var63 = var64;
2342 }
2343 if (var63){
2344 {
2345 { /* Inline location#Location#line_end (self) on <self:Location> */
2346 var70 = self->attrs[COLOR_location__Location___line_end].l; /* _line_end on <self:Location> */
2347 var68 = var70;
2348 RET_LABEL69:(void)0;
2349 }
2350 }
2351 {
2352 { /* Inline location#Location#line_end (var_other) on <var_other:Location> */
2353 var73 = var_other->attrs[COLOR_location__Location___line_end].l; /* _line_end on <var_other:Location> */
2354 var71 = var73;
2355 RET_LABEL72:(void)0;
2356 }
2357 }
2358 {
2359 { /* Inline kernel#Int#< (var68,var71) on <var68:Int> */
2360 /* Covariant cast for argument 0 (i) <var71:Int> isa OTHER */
2361 /* <var71:Int> isa OTHER */
2362 var76 = 1; /* easy <var71:Int> isa OTHER*/
2363 if (unlikely(!var76)) {
2364 var_class_name79 = type_kernel__Int.name;
2365 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name79);
2366 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
2367 show_backtrace(1);
2368 }
2369 var80 = var68 < var71;
2370 var74 = var80;
2371 goto RET_LABEL75;
2372 RET_LABEL75:(void)0;
2373 }
2374 }
2375 var = var74;
2376 goto RET_LABEL;
2377 } else {
2378 }
2379 {
2380 { /* Inline location#Location#column_end (self) on <self:Location> */
2381 var83 = self->attrs[COLOR_location__Location___column_end].l; /* _column_end on <self:Location> */
2382 var81 = var83;
2383 RET_LABEL82:(void)0;
2384 }
2385 }
2386 {
2387 { /* Inline location#Location#column_end (var_other) on <var_other:Location> */
2388 var86 = var_other->attrs[COLOR_location__Location___column_end].l; /* _column_end on <var_other:Location> */
2389 var84 = var86;
2390 RET_LABEL85:(void)0;
2391 }
2392 }
2393 {
2394 { /* Inline kernel#Int#< (var81,var84) on <var81:Int> */
2395 /* Covariant cast for argument 0 (i) <var84:Int> isa OTHER */
2396 /* <var84:Int> isa OTHER */
2397 var89 = 1; /* easy <var84:Int> isa OTHER*/
2398 if (unlikely(!var89)) {
2399 var_class_name92 = type_kernel__Int.name;
2400 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name92);
2401 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
2402 show_backtrace(1);
2403 }
2404 var93 = var81 < var84;
2405 var87 = var93;
2406 goto RET_LABEL88;
2407 RET_LABEL88:(void)0;
2408 }
2409 }
2410 var = var87;
2411 goto RET_LABEL;
2412 RET_LABEL:;
2413 return var;
2414 }
2415 /* method location#Location#< for (self: Object, Comparable): Bool */
2416 short int VIRTUAL_location__Location___60d(val* self, val* p0) {
2417 short int var /* : Bool */;
2418 short int var1 /* : Bool */;
2419 var1 = location__Location___60d(self, p0);
2420 var = var1;
2421 RET_LABEL:;
2422 return var;
2423 }
2424 /* method location#Location#colored_line for (self: Location, String): String */
2425 val* location__Location__colored_line(val* self, val* p0) {
2426 val* var /* : String */;
2427 val* var_color /* var color: String */;
2428 long var1 /* : Int */;
2429 char var2 /* : Char */;
2430 char var4 /* : Char */;
2431 char var_esc /* var esc: Char */;
2432 static val* varonce;
2433 val* var5 /* : String */;
2434 char* var6 /* : NativeString */;
2435 long var7 /* : Int */;
2436 val* var8 /* : FlatString */;
2437 val* var9 /* : Array[Object] */;
2438 long var10 /* : Int */;
2439 val* var11 /* : NativeArray[Object] */;
2440 val* var12 /* : Object */;
2441 val* var13 /* : String */;
2442 val* var_def /* var def: String */;
2443 static val* varonce14;
2444 val* var15 /* : String */;
2445 char* var16 /* : NativeString */;
2446 long var17 /* : Int */;
2447 val* var18 /* : FlatString */;
2448 static val* varonce19;
2449 val* var20 /* : String */;
2450 char* var21 /* : NativeString */;
2451 long var22 /* : Int */;
2452 val* var23 /* : FlatString */;
2453 val* var24 /* : Array[Object] */;
2454 long var25 /* : Int */;
2455 val* var26 /* : NativeArray[Object] */;
2456 val* var27 /* : Object */;
2457 val* var28 /* : String */;
2458 val* var_col /* var col: String */;
2459 val* var_l /* var l: Location */;
2460 long var29 /* : Int */;
2461 long var31 /* : Int */;
2462 long var_i /* var i: Int */;
2463 val* var32 /* : nullable SourceFile */;
2464 val* var34 /* : nullable SourceFile */;
2465 val* var35 /* : Array[Int] */;
2466 val* var37 /* : Array[Int] */;
2467 long var38 /* : Int */;
2468 long var39 /* : Int */;
2469 short int var41 /* : Bool */;
2470 int cltype;
2471 int idtype;
2472 const char* var_class_name;
2473 long var42 /* : Int */;
2474 val* var43 /* : nullable Object */;
2475 long var44 /* : Int */;
2476 long var_line_start /* var line_start: Int */;
2477 long var_line_end /* var line_end: Int */;
2478 val* var45 /* : nullable SourceFile */;
2479 val* var47 /* : nullable SourceFile */;
2480 val* var48 /* : String */;
2481 val* var50 /* : String */;
2482 val* var_string /* var string: String */;
2483 short int var51 /* : Bool */;
2484 short int var52 /* : Bool */;
2485 long var53 /* : Int */;
2486 long var54 /* : Int */;
2487 short int var56 /* : Bool */;
2488 int cltype57;
2489 int idtype58;
2490 const char* var_class_name59;
2491 long var60 /* : Int */;
2492 long var61 /* : Int */;
2493 long var63 /* : Int */;
2494 short int var64 /* : Bool */;
2495 short int var66 /* : Bool */;
2496 int cltype67;
2497 int idtype68;
2498 const char* var_class_name69;
2499 short int var70 /* : Bool */;
2500 short int var_ /* var : Bool */;
2501 val* var71 /* : SequenceRead[Char] */;
2502 val* var73 /* : SequenceRead[Char] */;
2503 long var74 /* : Int */;
2504 long var75 /* : Int */;
2505 short int var77 /* : Bool */;
2506 int cltype78;
2507 int idtype79;
2508 const char* var_class_name80;
2509 long var81 /* : Int */;
2510 val* var82 /* : nullable Object */;
2511 char var83 /* : Char */;
2512 short int var84 /* : Bool */;
2513 short int var85 /* : Bool */;
2514 short int var87 /* : Bool */;
2515 char var88 /* : Char */;
2516 short int var89 /* : Bool */;
2517 short int var_90 /* var : Bool */;
2518 val* var91 /* : SequenceRead[Char] */;
2519 val* var93 /* : SequenceRead[Char] */;
2520 long var94 /* : Int */;
2521 long var95 /* : Int */;
2522 short int var97 /* : Bool */;
2523 int cltype98;
2524 int idtype99;
2525 const char* var_class_name100;
2526 long var101 /* : Int */;
2527 val* var102 /* : nullable Object */;
2528 char var103 /* : Char */;
2529 short int var104 /* : Bool */;
2530 short int var105 /* : Bool */;
2531 short int var107 /* : Bool */;
2532 char var108 /* : Char */;
2533 short int var109 /* : Bool */;
2534 long var110 /* : Int */;
2535 long var111 /* : Int */;
2536 short int var113 /* : Bool */;
2537 int cltype114;
2538 int idtype115;
2539 const char* var_class_name116;
2540 long var117 /* : Int */;
2541 long var118 /* : Int */;
2542 long var120 /* : Int */;
2543 long var121 /* : Int */;
2544 long var122 /* : Int */;
2545 short int var124 /* : Bool */;
2546 int cltype125;
2547 int idtype126;
2548 const char* var_class_name127;
2549 long var128 /* : Int */;
2550 val* var129 /* : String */;
2551 val* var_lstart /* var lstart: String */;
2552 long var130 /* : Int */;
2553 long var132 /* : Int */;
2554 short int var133 /* : Bool */;
2555 short int var134 /* : Bool */;
2556 short int var136 /* : Bool */;
2557 short int var137 /* : Bool */;
2558 long var138 /* : Int */;
2559 short int var140 /* : Bool */;
2560 int cltype141;
2561 int idtype142;
2562 const char* var_class_name143;
2563 long var144 /* : Int */;
2564 long var145 /* : Int */;
2565 long var146 /* : Int */;
2566 short int var148 /* : Bool */;
2567 int cltype149;
2568 int idtype150;
2569 const char* var_class_name151;
2570 long var152 /* : Int */;
2571 val* var153 /* : nullable Object */;
2572 val* var_cend /* var cend: nullable Object */;
2573 long var154 /* : Int */;
2574 long var156 /* : Int */;
2575 val* var157 /* : nullable Object */;
2576 long var158 /* : Int */;
2577 short int var160 /* : Bool */;
2578 int cltype161;
2579 int idtype162;
2580 const char* var_class_name163;
2581 long var164 /* : Int */;
2582 long var165 /* : Int */;
2583 long var166 /* : Int */;
2584 long var168 /* : Int */;
2585 short int var169 /* : Bool */;
2586 short int var171 /* : Bool */;
2587 int cltype172;
2588 int idtype173;
2589 const char* var_class_name174;
2590 short int var175 /* : Bool */;
2591 long var176 /* : Int */;
2592 long var178 /* : Int */;
2593 long var179 /* : Int */;
2594 short int var181 /* : Bool */;
2595 int cltype182;
2596 int idtype183;
2597 const char* var_class_name184;
2598 long var185 /* : Int */;
2599 long var186 /* : Int */;
2600 long var187 /* : Int */;
2601 short int var189 /* : Bool */;
2602 int cltype190;
2603 int idtype191;
2604 const char* var_class_name192;
2605 long var193 /* : Int */;
2606 long var194 /* : Int */;
2607 long var196 /* : Int */;
2608 long var197 /* : Int */;
2609 short int var199 /* : Bool */;
2610 int cltype200;
2611 int idtype201;
2612 const char* var_class_name202;
2613 long var203 /* : Int */;
2614 long var204 /* : Int */;
2615 long var205 /* : Int */;
2616 long var206 /* : Int */;
2617 short int var208 /* : Bool */;
2618 int cltype209;
2619 int idtype210;
2620 const char* var_class_name211;
2621 long var212 /* : Int */;
2622 val* var213 /* : String */;
2623 val* var_lmid /* var lmid: nullable Object */;
2624 long var214 /* : Int */;
2625 short int var216 /* : Bool */;
2626 int cltype217;
2627 int idtype218;
2628 const char* var_class_name219;
2629 long var220 /* : Int */;
2630 long var221 /* : Int */;
2631 long var222 /* : Int */;
2632 short int var224 /* : Bool */;
2633 int cltype225;
2634 int idtype226;
2635 const char* var_class_name227;
2636 long var228 /* : Int */;
2637 long var229 /* : Int */;
2638 short int var231 /* : Bool */;
2639 int cltype232;
2640 int idtype233;
2641 const char* var_class_name234;
2642 long var235 /* : Int */;
2643 long var236 /* : Int */;
2644 long var237 /* : Int */;
2645 long var238 /* : Int */;
2646 short int var240 /* : Bool */;
2647 int cltype241;
2648 int idtype242;
2649 const char* var_class_name243;
2650 long var244 /* : Int */;
2651 val* var245 /* : String */;
2652 val* var_lend /* var lend: nullable Object */;
2653 static val* varonce246;
2654 val* var247 /* : String */;
2655 char* var248 /* : NativeString */;
2656 long var249 /* : Int */;
2657 val* var250 /* : FlatString */;
2658 static val* varonce251;
2659 val* var252 /* : String */;
2660 char* var253 /* : NativeString */;
2661 long var254 /* : Int */;
2662 val* var255 /* : FlatString */;
2663 val* var256 /* : FlatBuffer */;
2664 val* var_indent /* var indent: FlatBuffer */;
2665 long var_j /* var j: Int */;
2666 long var257 /* : Int */;
2667 long var259 /* : Int */;
2668 long var260 /* : Int */;
2669 short int var262 /* : Bool */;
2670 int cltype263;
2671 int idtype264;
2672 const char* var_class_name265;
2673 long var266 /* : Int */;
2674 long var267 /* : Int */;
2675 long var268 /* : Int */;
2676 short int var270 /* : Bool */;
2677 int cltype271;
2678 int idtype272;
2679 const char* var_class_name273;
2680 long var274 /* : Int */;
2681 long var_275 /* var : Int */;
2682 short int var276 /* : Bool */;
2683 short int var278 /* : Bool */;
2684 int cltype279;
2685 int idtype280;
2686 const char* var_class_name281;
2687 short int var282 /* : Bool */;
2688 val* var283 /* : SequenceRead[Char] */;
2689 val* var285 /* : SequenceRead[Char] */;
2690 val* var286 /* : nullable Object */;
2691 char var287 /* : Char */;
2692 short int var288 /* : Bool */;
2693 short int var289 /* : Bool */;
2694 short int var291 /* : Bool */;
2695 char var292 /* : Char */;
2696 char var293 /* : Char */;
2697 char var294 /* : Char */;
2698 long var295 /* : Int */;
2699 long var296 /* : Int */;
2700 static val* varonce298;
2701 val* var299 /* : String */;
2702 char* var300 /* : NativeString */;
2703 long var301 /* : Int */;
2704 val* var302 /* : FlatString */;
2705 static val* varonce303;
2706 val* var304 /* : String */;
2707 char* var305 /* : NativeString */;
2708 long var306 /* : Int */;
2709 val* var307 /* : FlatString */;
2710 static val* varonce308;
2711 val* var309 /* : String */;
2712 char* var310 /* : NativeString */;
2713 long var311 /* : Int */;
2714 val* var312 /* : FlatString */;
2715 val* var313 /* : Array[Object] */;
2716 long var314 /* : Int */;
2717 val* var315 /* : NativeArray[Object] */;
2718 val* var316 /* : String */;
2719 var_color = p0;
2720 var1 = 27;
2721 {
2722 { /* Inline kernel#Int#ascii (var1) on <var1:Int> */
2723 var4 = var1;
2724 var2 = var4;
2725 goto RET_LABEL3;
2726 RET_LABEL3:(void)0;
2727 }
2728 }
2729 var_esc = var2;
2730 if (varonce) {
2731 var5 = varonce;
2732 } else {
2733 var6 = "[0m";
2734 var7 = 3;
2735 var8 = string__NativeString__to_s_with_length(var6, var7);
2736 var5 = var8;
2737 varonce = var5;
2738 }
2739 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
2740 { /* var9 = array_instance Array[Object] */
2741 var10 = 2;
2742 var11 = NEW_array__NativeArray(var10, &type_array__NativeArraykernel__Object);
2743 var12 = BOX_kernel__Char(var_esc); /* autobox from Char to Object */
2744 ((struct instance_array__NativeArray*)var11)->values[0] = (val*) var12;
2745 ((struct instance_array__NativeArray*)var11)->values[1] = (val*) var5;
2746 {
2747 ((void (*)(val*, val*, long))(var9->class->vft[COLOR_array__Array__with_native]))(var9, var11, var10) /* with_native on <var9:Array[Object]>*/;
2748 }
2749 }
2750 {
2751 var13 = ((val* (*)(val*))(var9->class->vft[COLOR_string__Object__to_s]))(var9) /* to_s on <var9:Array[Object]>*/;
2752 }
2753 var_def = var13;
2754 if (varonce14) {
2755 var15 = varonce14;
2756 } else {
2757 var16 = "[";
2758 var17 = 1;
2759 var18 = string__NativeString__to_s_with_length(var16, var17);
2760 var15 = var18;
2761 varonce14 = var15;
2762 }
2763 if (varonce19) {
2764 var20 = varonce19;
2765 } else {
2766 var21 = "m";
2767 var22 = 1;
2768 var23 = string__NativeString__to_s_with_length(var21, var22);
2769 var20 = var23;
2770 varonce19 = var20;
2771 }
2772 var24 = NEW_array__Array(&type_array__Arraykernel__Object);
2773 { /* var24 = array_instance Array[Object] */
2774 var25 = 4;
2775 var26 = NEW_array__NativeArray(var25, &type_array__NativeArraykernel__Object);
2776 var27 = BOX_kernel__Char(var_esc); /* autobox from Char to Object */
2777 ((struct instance_array__NativeArray*)var26)->values[0] = (val*) var27;
2778 ((struct instance_array__NativeArray*)var26)->values[1] = (val*) var15;
2779 ((struct instance_array__NativeArray*)var26)->values[2] = (val*) var_color;
2780 ((struct instance_array__NativeArray*)var26)->values[3] = (val*) var20;
2781 {
2782 ((void (*)(val*, val*, long))(var24->class->vft[COLOR_array__Array__with_native]))(var24, var26, var25) /* with_native on <var24:Array[Object]>*/;
2783 }
2784 }
2785 {
2786 var28 = ((val* (*)(val*))(var24->class->vft[COLOR_string__Object__to_s]))(var24) /* to_s on <var24:Array[Object]>*/;
2787 }
2788 var_col = var28;
2789 var_l = self;
2790 {
2791 { /* Inline location#Location#line_start (var_l) on <var_l:Location> */
2792 var31 = var_l->attrs[COLOR_location__Location___line_start].l; /* _line_start on <var_l:Location> */
2793 var29 = var31;
2794 RET_LABEL30:(void)0;
2795 }
2796 }
2797 var_i = var29;
2798 {
2799 { /* Inline location#Location#file (var_l) on <var_l:Location> */
2800 var34 = var_l->attrs[COLOR_location__Location___file].val; /* _file on <var_l:Location> */
2801 var32 = var34;
2802 RET_LABEL33:(void)0;
2803 }
2804 }
2805 if (var32 == NULL) {
2806 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2807 PRINT_ERROR(" (%s:%d)\n", "location.nit", 178);
2808 show_backtrace(1);
2809 } else {
2810 { /* Inline location#SourceFile#line_starts (var32) on <var32:nullable SourceFile> */
2811 if (unlikely(var32 == NULL)) {
2812 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2813 PRINT_ERROR(" (%s:%d)\n", "location.nit", 44);
2814 show_backtrace(1);
2815 }
2816 var37 = var32->attrs[COLOR_location__SourceFile___line_starts].val; /* _line_starts on <var32:nullable SourceFile> */
2817 if (unlikely(var37 == NULL)) {
2818 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _line_starts");
2819 PRINT_ERROR(" (%s:%d)\n", "location.nit", 44);
2820 show_backtrace(1);
2821 }
2822 var35 = var37;
2823 RET_LABEL36:(void)0;
2824 }
2825 }
2826 var38 = 1;
2827 {
2828 { /* Inline kernel#Int#- (var_i,var38) on <var_i:Int> */
2829 /* Covariant cast for argument 0 (i) <var38:Int> isa OTHER */
2830 /* <var38:Int> isa OTHER */
2831 var41 = 1; /* easy <var38:Int> isa OTHER*/
2832 if (unlikely(!var41)) {
2833 var_class_name = type_kernel__Int.name;
2834 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2835 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
2836 show_backtrace(1);
2837 }
2838 var42 = var_i - var38;
2839 var39 = var42;
2840 goto RET_LABEL40;
2841 RET_LABEL40:(void)0;
2842 }
2843 }
2844 {
2845 var43 = array__Array___91d_93d(var35, var39);
2846 }
2847 var44 = ((struct instance_kernel__Int*)var43)->value; /* autounbox from nullable Object to Int */;
2848 var_line_start = var44;
2849 var_line_end = var_line_start;
2850 {
2851 { /* Inline location#Location#file (var_l) on <var_l:Location> */
2852 var47 = var_l->attrs[COLOR_location__Location___file].val; /* _file on <var_l:Location> */
2853 var45 = var47;
2854 RET_LABEL46:(void)0;
2855 }
2856 }
2857 if (var45 == NULL) {
2858 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2859 PRINT_ERROR(" (%s:%d)\n", "location.nit", 180);
2860 show_backtrace(1);
2861 } else {
2862 { /* Inline location#SourceFile#string (var45) on <var45:nullable SourceFile> */
2863 if (unlikely(var45 == NULL)) {
2864 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2865 PRINT_ERROR(" (%s:%d)\n", "location.nit", 25);
2866 show_backtrace(1);
2867 }
2868 var50 = var45->attrs[COLOR_location__SourceFile___string].val; /* _string on <var45:nullable SourceFile> */
2869 if (unlikely(var50 == NULL)) {
2870 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _string");
2871 PRINT_ERROR(" (%s:%d)\n", "location.nit", 25);
2872 show_backtrace(1);
2873 }
2874 var48 = var50;
2875 RET_LABEL49:(void)0;
2876 }
2877 }
2878 var_string = var48;
2879 for(;;) {
2880 var53 = 1;
2881 {
2882 { /* Inline kernel#Int#+ (var_line_end,var53) on <var_line_end:Int> */
2883 /* Covariant cast for argument 0 (i) <var53:Int> isa OTHER */
2884 /* <var53:Int> isa OTHER */
2885 var56 = 1; /* easy <var53:Int> isa OTHER*/
2886 if (unlikely(!var56)) {
2887 var_class_name59 = type_kernel__Int.name;
2888 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name59);
2889 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
2890 show_backtrace(1);
2891 }
2892 var60 = var_line_end + var53;
2893 var54 = var60;
2894 goto RET_LABEL55;
2895 RET_LABEL55:(void)0;
2896 }
2897 }
2898 {
2899 { /* Inline string#FlatText#length (var_string) on <var_string:String> */
2900 var63 = var_string->attrs[COLOR_string__FlatText___length].l; /* _length on <var_string:String> */
2901 var61 = var63;
2902 RET_LABEL62:(void)0;
2903 }
2904 }
2905 {
2906 { /* Inline kernel#Int#< (var54,var61) on <var54:Int> */
2907 /* Covariant cast for argument 0 (i) <var61:Int> isa OTHER */
2908 /* <var61:Int> isa OTHER */
2909 var66 = 1; /* easy <var61:Int> isa OTHER*/
2910 if (unlikely(!var66)) {
2911 var_class_name69 = type_kernel__Int.name;
2912 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name69);
2913 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
2914 show_backtrace(1);
2915 }
2916 var70 = var54 < var61;
2917 var64 = var70;
2918 goto RET_LABEL65;
2919 RET_LABEL65:(void)0;
2920 }
2921 }
2922 var_ = var64;
2923 if (var64){
2924 {
2925 { /* Inline string#FlatString#chars (var_string) on <var_string:String> */
2926 var73 = var_string->attrs[COLOR_string__FlatString___chars].val; /* _chars on <var_string:String> */
2927 if (unlikely(var73 == NULL)) {
2928 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
2929 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 939);
2930 show_backtrace(1);
2931 }
2932 var71 = var73;
2933 RET_LABEL72:(void)0;
2934 }
2935 }
2936 var74 = 1;
2937 {
2938 { /* Inline kernel#Int#+ (var_line_end,var74) on <var_line_end:Int> */
2939 /* Covariant cast for argument 0 (i) <var74:Int> isa OTHER */
2940 /* <var74:Int> isa OTHER */
2941 var77 = 1; /* easy <var74:Int> isa OTHER*/
2942 if (unlikely(!var77)) {
2943 var_class_name80 = type_kernel__Int.name;
2944 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name80);
2945 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
2946 show_backtrace(1);
2947 }
2948 var81 = var_line_end + var74;
2949 var75 = var81;
2950 goto RET_LABEL76;
2951 RET_LABEL76:(void)0;
2952 }
2953 }
2954 {
2955 var82 = ((val* (*)(val*, long))(var71->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var71, var75) /* [] on <var71:SequenceRead[Char]>*/;
2956 }
2957 var83 = '\n';
2958 {
2959 { /* Inline kernel#Char#!= (var82,var83) on <var82:nullable Object(Char)> */
2960 var87 = (var82 != NULL) && (var82->class == &class_kernel__Char);
2961 if (var87) {
2962 var88 = ((struct instance_kernel__Char*)var82)->value; /* autounbox from nullable Object to Char */;
2963 var87 = (var88 == var83);
2964 }
2965 var89 = !var87;
2966 var85 = var89;
2967 goto RET_LABEL86;
2968 RET_LABEL86:(void)0;
2969 }
2970 var84 = var85;
2971 }
2972 var52 = var84;
2973 } else {
2974 var52 = var_;
2975 }
2976 var_90 = var52;
2977 if (var52){
2978 {
2979 { /* Inline string#FlatString#chars (var_string) on <var_string:String> */
2980 var93 = var_string->attrs[COLOR_string__FlatString___chars].val; /* _chars on <var_string:String> */
2981 if (unlikely(var93 == NULL)) {
2982 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
2983 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 939);
2984 show_backtrace(1);
2985 }
2986 var91 = var93;
2987 RET_LABEL92:(void)0;
2988 }
2989 }
2990 var94 = 1;
2991 {
2992 { /* Inline kernel#Int#+ (var_line_end,var94) on <var_line_end:Int> */
2993 /* Covariant cast for argument 0 (i) <var94:Int> isa OTHER */
2994 /* <var94:Int> isa OTHER */
2995 var97 = 1; /* easy <var94:Int> isa OTHER*/
2996 if (unlikely(!var97)) {
2997 var_class_name100 = type_kernel__Int.name;
2998 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name100);
2999 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
3000 show_backtrace(1);
3001 }
3002 var101 = var_line_end + var94;
3003 var95 = var101;
3004 goto RET_LABEL96;
3005 RET_LABEL96:(void)0;
3006 }
3007 }
3008 {
3009 var102 = ((val* (*)(val*, long))(var91->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var91, var95) /* [] on <var91:SequenceRead[Char]>*/;
3010 }
3011 var103 = '\15';
3012 {
3013 { /* Inline kernel#Char#!= (var102,var103) on <var102:nullable Object(Char)> */
3014 var107 = (var102 != NULL) && (var102->class == &class_kernel__Char);
3015 if (var107) {
3016 var108 = ((struct instance_kernel__Char*)var102)->value; /* autounbox from nullable Object to Char */;
3017 var107 = (var108 == var103);
3018 }
3019 var109 = !var107;
3020 var105 = var109;
3021 goto RET_LABEL106;
3022 RET_LABEL106:(void)0;
3023 }
3024 var104 = var105;
3025 }
3026 var51 = var104;
3027 } else {
3028 var51 = var_90;
3029 }
3030 if (var51){
3031 var110 = 1;
3032 {
3033 { /* Inline kernel#Int#+ (var_line_end,var110) on <var_line_end:Int> */
3034 /* Covariant cast for argument 0 (i) <var110:Int> isa OTHER */
3035 /* <var110:Int> isa OTHER */
3036 var113 = 1; /* easy <var110:Int> isa OTHER*/
3037 if (unlikely(!var113)) {
3038 var_class_name116 = type_kernel__Int.name;
3039 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name116);
3040 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
3041 show_backtrace(1);
3042 }
3043 var117 = var_line_end + var110;
3044 var111 = var117;
3045 goto RET_LABEL112;
3046 RET_LABEL112:(void)0;
3047 }
3048 }
3049 var_line_end = var111;
3050 } else {
3051 goto BREAK_label;
3052 }
3053 }
3054 BREAK_label: (void)0;
3055 {
3056 { /* Inline location#Location#column_start (var_l) on <var_l:Location> */
3057 var120 = var_l->attrs[COLOR_location__Location___column_start].l; /* _column_start on <var_l:Location> */
3058 var118 = var120;
3059 RET_LABEL119:(void)0;
3060 }
3061 }
3062 var121 = 1;
3063 {
3064 { /* Inline kernel#Int#- (var118,var121) on <var118:Int> */
3065 /* Covariant cast for argument 0 (i) <var121:Int> isa OTHER */
3066 /* <var121:Int> isa OTHER */
3067 var124 = 1; /* easy <var121:Int> isa OTHER*/
3068 if (unlikely(!var124)) {
3069 var_class_name127 = type_kernel__Int.name;
3070 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name127);
3071 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
3072 show_backtrace(1);
3073 }
3074 var128 = var118 - var121;
3075 var122 = var128;
3076 goto RET_LABEL123;
3077 RET_LABEL123:(void)0;
3078 }
3079 }
3080 {
3081 var129 = string__FlatString__substring(var_string, var_line_start, var122);
3082 }
3083 var_lstart = var129;
3084 {
3085 { /* Inline location#Location#line_end (var_l) on <var_l:Location> */
3086 var132 = var_l->attrs[COLOR_location__Location___line_end].l; /* _line_end on <var_l:Location> */
3087 var130 = var132;
3088 RET_LABEL131:(void)0;
3089 }
3090 }
3091 {
3092 { /* Inline kernel#Int#!= (var_i,var130) on <var_i:Int> */
3093 var136 = var_i == var130;
3094 var137 = !var136;
3095 var134 = var137;
3096 goto RET_LABEL135;
3097 RET_LABEL135:(void)0;
3098 }
3099 var133 = var134;
3100 }
3101 if (var133){
3102 {
3103 { /* Inline kernel#Int#- (var_line_end,var_line_start) on <var_line_end:Int> */
3104 /* Covariant cast for argument 0 (i) <var_line_start:Int> isa OTHER */
3105 /* <var_line_start:Int> isa OTHER */
3106 var140 = 1; /* easy <var_line_start:Int> isa OTHER*/
3107 if (unlikely(!var140)) {
3108 var_class_name143 = type_kernel__Int.name;
3109 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name143);
3110 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
3111 show_backtrace(1);
3112 }
3113 var144 = var_line_end - var_line_start;
3114 var138 = var144;
3115 goto RET_LABEL139;
3116 RET_LABEL139:(void)0;
3117 }
3118 }
3119 var145 = 1;
3120 {
3121 { /* Inline kernel#Int#+ (var138,var145) on <var138:Int> */
3122 /* Covariant cast for argument 0 (i) <var145:Int> isa OTHER */
3123 /* <var145:Int> isa OTHER */
3124 var148 = 1; /* easy <var145:Int> isa OTHER*/
3125 if (unlikely(!var148)) {
3126 var_class_name151 = type_kernel__Int.name;
3127 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name151);
3128 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
3129 show_backtrace(1);
3130 }
3131 var152 = var138 + var145;
3132 var146 = var152;
3133 goto RET_LABEL147;
3134 RET_LABEL147:(void)0;
3135 }
3136 }
3137 var153 = BOX_kernel__Int(var146); /* autobox from Int to nullable Object */
3138 var_cend = var153;
3139 } else {
3140 {
3141 { /* Inline location#Location#column_end (var_l) on <var_l:Location> */
3142 var156 = var_l->attrs[COLOR_location__Location___column_end].l; /* _column_end on <var_l:Location> */
3143 var154 = var156;
3144 RET_LABEL155:(void)0;
3145 }
3146 }
3147 var157 = BOX_kernel__Int(var154); /* autobox from Int to nullable Object */
3148 var_cend = var157;
3149 }
3150 {
3151 { /* Inline kernel#Int#+ (var_line_start,var_cend) on <var_line_start:Int> */
3152 /* Covariant cast for argument 0 (i) <var_cend:nullable Object(Int)> isa OTHER */
3153 /* <var_cend:nullable Object(Int)> isa OTHER */
3154 var160 = 1; /* easy <var_cend:nullable Object(Int)> isa OTHER*/
3155 if (unlikely(!var160)) {
3156 var_class_name163 = var_cend == NULL ? "null" : var_cend->type->name;
3157 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name163);
3158 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
3159 show_backtrace(1);
3160 }
3161 var164 = ((struct instance_kernel__Int*)var_cend)->value; /* autounbox from nullable Object to Int */;
3162 var165 = var_line_start + var164;
3163 var158 = var165;
3164 goto RET_LABEL159;
3165 RET_LABEL159:(void)0;
3166 }
3167 }
3168 {
3169 { /* Inline string#FlatText#length (var_string) on <var_string:String> */
3170 var168 = var_string->attrs[COLOR_string__FlatText___length].l; /* _length on <var_string:String> */
3171 var166 = var168;
3172 RET_LABEL167:(void)0;
3173 }
3174 }
3175 {
3176 { /* Inline kernel#Int#<= (var158,var166) on <var158:Int> */
3177 /* Covariant cast for argument 0 (i) <var166:Int> isa OTHER */
3178 /* <var166:Int> isa OTHER */
3179 var171 = 1; /* easy <var166:Int> isa OTHER*/
3180 if (unlikely(!var171)) {
3181 var_class_name174 = type_kernel__Int.name;
3182 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name174);
3183 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
3184 show_backtrace(1);
3185 }
3186 var175 = var158 <= var166;
3187 var169 = var175;
3188 goto RET_LABEL170;
3189 RET_LABEL170:(void)0;
3190 }
3191 }
3192 if (var169){
3193 {
3194 { /* Inline location#Location#column_start (var_l) on <var_l:Location> */
3195 var178 = var_l->attrs[COLOR_location__Location___column_start].l; /* _column_start on <var_l:Location> */
3196 var176 = var178;
3197 RET_LABEL177:(void)0;
3198 }
3199 }
3200 {
3201 { /* Inline kernel#Int#+ (var_line_start,var176) on <var_line_start:Int> */
3202 /* Covariant cast for argument 0 (i) <var176:Int> isa OTHER */
3203 /* <var176:Int> isa OTHER */
3204 var181 = 1; /* easy <var176:Int> isa OTHER*/
3205 if (unlikely(!var181)) {
3206 var_class_name184 = type_kernel__Int.name;
3207 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name184);
3208 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
3209 show_backtrace(1);
3210 }
3211 var185 = var_line_start + var176;
3212 var179 = var185;
3213 goto RET_LABEL180;
3214 RET_LABEL180:(void)0;
3215 }
3216 }
3217 var186 = 1;
3218 {
3219 { /* Inline kernel#Int#- (var179,var186) on <var179:Int> */
3220 /* Covariant cast for argument 0 (i) <var186:Int> isa OTHER */
3221 /* <var186:Int> isa OTHER */
3222 var189 = 1; /* easy <var186:Int> isa OTHER*/
3223 if (unlikely(!var189)) {
3224 var_class_name192 = type_kernel__Int.name;
3225 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name192);
3226 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
3227 show_backtrace(1);
3228 }
3229 var193 = var179 - var186;
3230 var187 = var193;
3231 goto RET_LABEL188;
3232 RET_LABEL188:(void)0;
3233 }
3234 }
3235 {
3236 { /* Inline location#Location#column_start (var_l) on <var_l:Location> */
3237 var196 = var_l->attrs[COLOR_location__Location___column_start].l; /* _column_start on <var_l:Location> */
3238 var194 = var196;
3239 RET_LABEL195:(void)0;
3240 }
3241 }
3242 {
3243 { /* Inline kernel#Int#- (var_cend,var194) on <var_cend:nullable Object(Int)> */
3244 /* Covariant cast for argument 0 (i) <var194:Int> isa OTHER */
3245 /* <var194:Int> isa OTHER */
3246 var199 = 1; /* easy <var194:Int> isa OTHER*/
3247 if (unlikely(!var199)) {
3248 var_class_name202 = type_kernel__Int.name;
3249 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name202);
3250 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
3251 show_backtrace(1);
3252 }
3253 var203 = ((struct instance_kernel__Int*)var_cend)->value; /* autounbox from nullable Object to Int */;
3254 var204 = var203 - var194;
3255 var197 = var204;
3256 goto RET_LABEL198;
3257 RET_LABEL198:(void)0;
3258 }
3259 }
3260 var205 = 1;
3261 {
3262 { /* Inline kernel#Int#+ (var197,var205) on <var197:Int> */
3263 /* Covariant cast for argument 0 (i) <var205:Int> isa OTHER */
3264 /* <var205:Int> isa OTHER */
3265 var208 = 1; /* easy <var205:Int> isa OTHER*/
3266 if (unlikely(!var208)) {
3267 var_class_name211 = type_kernel__Int.name;
3268 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name211);
3269 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
3270 show_backtrace(1);
3271 }
3272 var212 = var197 + var205;
3273 var206 = var212;
3274 goto RET_LABEL207;
3275 RET_LABEL207:(void)0;
3276 }
3277 }
3278 {
3279 var213 = string__FlatString__substring(var_string, var187, var206);
3280 }
3281 var_lmid = var213;
3282 {
3283 { /* Inline kernel#Int#+ (var_line_start,var_cend) on <var_line_start:Int> */
3284 /* Covariant cast for argument 0 (i) <var_cend:nullable Object(Int)> isa OTHER */
3285 /* <var_cend:nullable Object(Int)> isa OTHER */
3286 var216 = 1; /* easy <var_cend:nullable Object(Int)> isa OTHER*/
3287 if (unlikely(!var216)) {
3288 var_class_name219 = var_cend == NULL ? "null" : var_cend->type->name;
3289 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name219);
3290 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
3291 show_backtrace(1);
3292 }
3293 var220 = ((struct instance_kernel__Int*)var_cend)->value; /* autounbox from nullable Object to Int */;
3294 var221 = var_line_start + var220;
3295 var214 = var221;
3296 goto RET_LABEL215;
3297 RET_LABEL215:(void)0;
3298 }
3299 }
3300 {
3301 { /* Inline kernel#Int#- (var_line_end,var_line_start) on <var_line_end:Int> */
3302 /* Covariant cast for argument 0 (i) <var_line_start:Int> isa OTHER */
3303 /* <var_line_start:Int> isa OTHER */
3304 var224 = 1; /* easy <var_line_start:Int> isa OTHER*/
3305 if (unlikely(!var224)) {
3306 var_class_name227 = type_kernel__Int.name;
3307 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name227);
3308 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
3309 show_backtrace(1);
3310 }
3311 var228 = var_line_end - var_line_start;
3312 var222 = var228;
3313 goto RET_LABEL223;
3314 RET_LABEL223:(void)0;
3315 }
3316 }
3317 {
3318 { /* Inline kernel#Int#- (var222,var_cend) on <var222:Int> */
3319 /* Covariant cast for argument 0 (i) <var_cend:nullable Object(Int)> isa OTHER */
3320 /* <var_cend:nullable Object(Int)> isa OTHER */
3321 var231 = 1; /* easy <var_cend:nullable Object(Int)> isa OTHER*/
3322 if (unlikely(!var231)) {
3323 var_class_name234 = var_cend == NULL ? "null" : var_cend->type->name;
3324 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name234);
3325 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
3326 show_backtrace(1);
3327 }
3328 var235 = ((struct instance_kernel__Int*)var_cend)->value; /* autounbox from nullable Object to Int */;
3329 var236 = var222 - var235;
3330 var229 = var236;
3331 goto RET_LABEL230;
3332 RET_LABEL230:(void)0;
3333 }
3334 }
3335 var237 = 1;
3336 {
3337 { /* Inline kernel#Int#+ (var229,var237) on <var229:Int> */
3338 /* Covariant cast for argument 0 (i) <var237:Int> isa OTHER */
3339 /* <var237:Int> isa OTHER */
3340 var240 = 1; /* easy <var237:Int> isa OTHER*/
3341 if (unlikely(!var240)) {
3342 var_class_name243 = type_kernel__Int.name;
3343 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name243);
3344 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
3345 show_backtrace(1);
3346 }
3347 var244 = var229 + var237;
3348 var238 = var244;
3349 goto RET_LABEL239;
3350 RET_LABEL239:(void)0;
3351 }
3352 }
3353 {
3354 var245 = string__FlatString__substring(var_string, var214, var238);
3355 }
3356 var_lend = var245;
3357 } else {
3358 if (varonce246) {
3359 var247 = varonce246;
3360 } else {
3361 var248 = "";
3362 var249 = 0;
3363 var250 = string__NativeString__to_s_with_length(var248, var249);
3364 var247 = var250;
3365 varonce246 = var247;
3366 }
3367 var_lmid = var247;
3368 if (varonce251) {
3369 var252 = varonce251;
3370 } else {
3371 var253 = "";
3372 var254 = 0;
3373 var255 = string__NativeString__to_s_with_length(var253, var254);
3374 var252 = var255;
3375 varonce251 = var252;
3376 }
3377 var_lend = var252;
3378 }
3379 var256 = NEW_string__FlatBuffer(&type_string__FlatBuffer);
3380 {
3381 ((void (*)(val*))(var256->class->vft[COLOR_kernel__Object__init]))(var256) /* init on <var256:FlatBuffer>*/;
3382 }
3383 var_indent = var256;
3384 var_j = var_line_start;
3385 {
3386 { /* Inline location#Location#column_start (var_l) on <var_l:Location> */
3387 var259 = var_l->attrs[COLOR_location__Location___column_start].l; /* _column_start on <var_l:Location> */
3388 var257 = var259;
3389 RET_LABEL258:(void)0;
3390 }
3391 }
3392 {
3393 { /* Inline kernel#Int#+ (var_line_start,var257) on <var_line_start:Int> */
3394 /* Covariant cast for argument 0 (i) <var257:Int> isa OTHER */
3395 /* <var257:Int> isa OTHER */
3396 var262 = 1; /* easy <var257:Int> isa OTHER*/
3397 if (unlikely(!var262)) {
3398 var_class_name265 = type_kernel__Int.name;
3399 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name265);
3400 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
3401 show_backtrace(1);
3402 }
3403 var266 = var_line_start + var257;
3404 var260 = var266;
3405 goto RET_LABEL261;
3406 RET_LABEL261:(void)0;
3407 }
3408 }
3409 var267 = 1;
3410 {
3411 { /* Inline kernel#Int#- (var260,var267) on <var260:Int> */
3412 /* Covariant cast for argument 0 (i) <var267:Int> isa OTHER */
3413 /* <var267:Int> isa OTHER */
3414 var270 = 1; /* easy <var267:Int> isa OTHER*/
3415 if (unlikely(!var270)) {
3416 var_class_name273 = type_kernel__Int.name;
3417 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name273);
3418 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
3419 show_backtrace(1);
3420 }
3421 var274 = var260 - var267;
3422 var268 = var274;
3423 goto RET_LABEL269;
3424 RET_LABEL269:(void)0;
3425 }
3426 }
3427 var_275 = var268;
3428 for(;;) {
3429 {
3430 { /* Inline kernel#Int#< (var_j,var_275) on <var_j:Int> */
3431 /* Covariant cast for argument 0 (i) <var_275:Int> isa OTHER */
3432 /* <var_275:Int> isa OTHER */
3433 var278 = 1; /* easy <var_275:Int> isa OTHER*/
3434 if (unlikely(!var278)) {
3435 var_class_name281 = type_kernel__Int.name;
3436 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name281);
3437 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
3438 show_backtrace(1);
3439 }
3440 var282 = var_j < var_275;
3441 var276 = var282;
3442 goto RET_LABEL277;
3443 RET_LABEL277:(void)0;
3444 }
3445 }
3446 if (var276){
3447 {
3448 { /* Inline string#FlatString#chars (var_string) on <var_string:String> */
3449 var285 = var_string->attrs[COLOR_string__FlatString___chars].val; /* _chars on <var_string:String> */
3450 if (unlikely(var285 == NULL)) {
3451 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
3452 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 939);
3453 show_backtrace(1);
3454 }
3455 var283 = var285;
3456 RET_LABEL284:(void)0;
3457 }
3458 }
3459 {
3460 var286 = ((val* (*)(val*, long))(var283->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var283, var_j) /* [] on <var283:SequenceRead[Char]>*/;
3461 }
3462 var287 = '\11';
3463 {
3464 { /* Inline kernel#Char#== (var286,var287) on <var286:nullable Object(Char)> */
3465 var291 = (var286 != NULL) && (var286->class == &class_kernel__Char);
3466 if (var291) {
3467 var292 = ((struct instance_kernel__Char*)var286)->value; /* autounbox from nullable Object to Char */;
3468 var291 = (var292 == var287);
3469 }
3470 var289 = var291;
3471 goto RET_LABEL290;
3472 RET_LABEL290:(void)0;
3473 }
3474 var288 = var289;
3475 }
3476 if (var288){
3477 var293 = '\11';
3478 {
3479 string__FlatBuffer__add(var_indent, var293); /* Direct call string#FlatBuffer#add on <var_indent:FlatBuffer>*/
3480 }
3481 } else {
3482 var294 = ' ';
3483 {
3484 string__FlatBuffer__add(var_indent, var294); /* Direct call string#FlatBuffer#add on <var_indent:FlatBuffer>*/
3485 }
3486 }
3487 var295 = 1;
3488 {
3489 var296 = kernel__Int__successor(var_j, var295);
3490 }
3491 var_j = var296;
3492 } else {
3493 goto BREAK_label297;
3494 }
3495 }
3496 BREAK_label297: (void)0;
3497 if (varonce298) {
3498 var299 = varonce298;
3499 } else {
3500 var300 = "\11";
3501 var301 = 1;
3502 var302 = string__NativeString__to_s_with_length(var300, var301);
3503 var299 = var302;
3504 varonce298 = var299;
3505 }
3506 if (varonce303) {
3507 var304 = varonce303;
3508 } else {
3509 var305 = "\n\11";
3510 var306 = 2;
3511 var307 = string__NativeString__to_s_with_length(var305, var306);
3512 var304 = var307;
3513 varonce303 = var304;
3514 }
3515 if (varonce308) {
3516 var309 = varonce308;
3517 } else {
3518 var310 = "^";
3519 var311 = 1;
3520 var312 = string__NativeString__to_s_with_length(var310, var311);
3521 var309 = var312;
3522 varonce308 = var309;
3523 }
3524 var313 = NEW_array__Array(&type_array__Arraykernel__Object);
3525 { /* var313 = array_instance Array[Object] */
3526 var314 = 9;
3527 var315 = NEW_array__NativeArray(var314, &type_array__NativeArraykernel__Object);
3528 ((struct instance_array__NativeArray*)var315)->values[0] = (val*) var299;
3529 ((struct instance_array__NativeArray*)var315)->values[1] = (val*) var_lstart;
3530 ((struct instance_array__NativeArray*)var315)->values[2] = (val*) var_col;
3531 ((struct instance_array__NativeArray*)var315)->values[3] = (val*) var_lmid;
3532 ((struct instance_array__NativeArray*)var315)->values[4] = (val*) var_def;
3533 ((struct instance_array__NativeArray*)var315)->values[5] = (val*) var_lend;
3534 ((struct instance_array__NativeArray*)var315)->values[6] = (val*) var304;
3535 ((struct instance_array__NativeArray*)var315)->values[7] = (val*) var_indent;
3536 ((struct instance_array__NativeArray*)var315)->values[8] = (val*) var309;
3537 {
3538 ((void (*)(val*, val*, long))(var313->class->vft[COLOR_array__Array__with_native]))(var313, var315, var314) /* with_native on <var313:Array[Object]>*/;
3539 }
3540 }
3541 {
3542 var316 = ((val* (*)(val*))(var313->class->vft[COLOR_string__Object__to_s]))(var313) /* to_s on <var313:Array[Object]>*/;
3543 }
3544 var = var316;
3545 goto RET_LABEL;
3546 RET_LABEL:;
3547 return var;
3548 }
3549 /* method location#Location#colored_line for (self: Object, String): String */
3550 val* VIRTUAL_location__Location__colored_line(val* self, val* p0) {
3551 val* var /* : String */;
3552 val* var1 /* : String */;
3553 var1 = location__Location__colored_line(self, p0);
3554 var = var1;
3555 RET_LABEL:;
3556 return var;
3557 }