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