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