misc/vim: inform the user when no results are found
[nit.git] / c_src / nit__toolcontext.sep.1.c
1 #include "nit__toolcontext.sep.0.h"
2 /* method toolcontext#Message#location for (self: Message): nullable Location */
3 val* nit___nit__Message___location(val* self) {
4 val* var /* : nullable Location */;
5 val* var1 /* : nullable Location */;
6 var1 = self->attrs[COLOR_nit__toolcontext__Message___location].val; /* _location on <self:Message> */
7 var = var1;
8 RET_LABEL:;
9 return var;
10 }
11 /* method toolcontext#Message#location= for (self: Message, nullable Location) */
12 void nit___nit__Message___location_61d(val* self, val* p0) {
13 self->attrs[COLOR_nit__toolcontext__Message___location].val = p0; /* _location on <self:Message> */
14 RET_LABEL:;
15 }
16 /* method toolcontext#Message#tag for (self: Message): nullable String */
17 val* nit___nit__Message___tag(val* self) {
18 val* var /* : nullable String */;
19 val* var1 /* : nullable String */;
20 var1 = self->attrs[COLOR_nit__toolcontext__Message___tag].val; /* _tag on <self:Message> */
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method toolcontext#Message#tag= for (self: Message, nullable String) */
26 void nit___nit__Message___tag_61d(val* self, val* p0) {
27 self->attrs[COLOR_nit__toolcontext__Message___tag].val = p0; /* _tag on <self:Message> */
28 RET_LABEL:;
29 }
30 /* method toolcontext#Message#text for (self: Message): String */
31 val* nit___nit__Message___text(val* self) {
32 val* var /* : String */;
33 val* var1 /* : String */;
34 var1 = self->attrs[COLOR_nit__toolcontext__Message___text].val; /* _text on <self:Message> */
35 if (unlikely(var1 == NULL)) {
36 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
37 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 42);
38 show_backtrace(1);
39 }
40 var = var1;
41 RET_LABEL:;
42 return var;
43 }
44 /* method toolcontext#Message#text= for (self: Message, String) */
45 void nit___nit__Message___text_61d(val* self, val* p0) {
46 self->attrs[COLOR_nit__toolcontext__Message___text].val = p0; /* _text on <self:Message> */
47 RET_LABEL:;
48 }
49 /* method toolcontext#Message#< for (self: Message, Message): Bool */
50 short int nit___nit__Message___standard__kernel__Comparable___60d(val* self, val* p0) {
51 short int var /* : Bool */;
52 short int var1 /* : Bool */;
53 int cltype;
54 int idtype;
55 const struct type* type_struct;
56 const char* var_class_name;
57 val* var_other /* var other: Message */;
58 val* var2 /* : nullable Location */;
59 val* var4 /* : nullable Location */;
60 val* var5 /* : null */;
61 short int var6 /* : Bool */;
62 short int var7 /* : Bool */;
63 short int var8 /* : Bool */;
64 val* var9 /* : nullable Location */;
65 val* var11 /* : nullable Location */;
66 val* var12 /* : null */;
67 short int var13 /* : Bool */;
68 short int var14 /* : Bool */;
69 short int var15 /* : Bool */;
70 val* var16 /* : nullable Location */;
71 val* var18 /* : nullable Location */;
72 val* var19 /* : nullable Location */;
73 val* var21 /* : nullable Location */;
74 short int var22 /* : Bool */;
75 /* Covariant cast for argument 0 (other) <p0:Message> isa OTHER */
76 /* <p0:Message> isa OTHER */
77 type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
78 cltype = type_struct->color;
79 idtype = type_struct->id;
80 if(cltype >= p0->type->table_size) {
81 var1 = 0;
82 } else {
83 var1 = p0->type->type_table[cltype] == idtype;
84 }
85 if (unlikely(!var1)) {
86 var_class_name = p0 == NULL ? "null" : p0->type->name;
87 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
88 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 49);
89 show_backtrace(1);
90 }
91 var_other = p0;
92 {
93 { /* Inline toolcontext#Message#location (self) on <self:Message> */
94 var4 = self->attrs[COLOR_nit__toolcontext__Message___location].val; /* _location on <self:Message> */
95 var2 = var4;
96 RET_LABEL3:(void)0;
97 }
98 }
99 var5 = NULL;
100 if (var2 == NULL) {
101 var6 = 1; /* is null */
102 } else {
103 var6 = 0; /* arg is null but recv is not */
104 }
105 if (0) {
106 var7 = nit___nit__Location___standard__kernel__Object___61d_61d(var2, var5);
107 var6 = var7;
108 }
109 if (var6){
110 var8 = 1;
111 var = var8;
112 goto RET_LABEL;
113 } else {
114 }
115 {
116 { /* Inline toolcontext#Message#location (var_other) on <var_other:Message> */
117 var11 = var_other->attrs[COLOR_nit__toolcontext__Message___location].val; /* _location on <var_other:Message> */
118 var9 = var11;
119 RET_LABEL10:(void)0;
120 }
121 }
122 var12 = NULL;
123 if (var9 == NULL) {
124 var13 = 1; /* is null */
125 } else {
126 var13 = 0; /* arg is null but recv is not */
127 }
128 if (0) {
129 var14 = nit___nit__Location___standard__kernel__Object___61d_61d(var9, var12);
130 var13 = var14;
131 }
132 if (var13){
133 var15 = 0;
134 var = var15;
135 goto RET_LABEL;
136 } else {
137 }
138 {
139 { /* Inline toolcontext#Message#location (self) on <self:Message> */
140 var18 = self->attrs[COLOR_nit__toolcontext__Message___location].val; /* _location on <self:Message> */
141 var16 = var18;
142 RET_LABEL17:(void)0;
143 }
144 }
145 if (unlikely(var16 == NULL)) {
146 PRINT_ERROR("Runtime error: %s", "Cast failed");
147 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 54);
148 show_backtrace(1);
149 }
150 {
151 { /* Inline toolcontext#Message#location (var_other) on <var_other:Message> */
152 var21 = var_other->attrs[COLOR_nit__toolcontext__Message___location].val; /* _location on <var_other:Message> */
153 var19 = var21;
154 RET_LABEL20:(void)0;
155 }
156 }
157 if (unlikely(var19 == NULL)) {
158 PRINT_ERROR("Runtime error: %s", "Cast failed");
159 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 54);
160 show_backtrace(1);
161 }
162 {
163 var22 = nit___nit__Location___standard__kernel__Comparable___60d(var16, var19);
164 }
165 var = var22;
166 goto RET_LABEL;
167 RET_LABEL:;
168 return var;
169 }
170 /* method toolcontext#Message#to_s for (self: Message): String */
171 val* nit___nit__Message___standard__string__Object__to_s(val* self) {
172 val* var /* : String */;
173 val* var1 /* : nullable Location */;
174 val* var3 /* : nullable Location */;
175 val* var_l /* var l: nullable Location */;
176 val* var4 /* : null */;
177 short int var5 /* : Bool */;
178 short int var6 /* : Bool */;
179 val* var7 /* : String */;
180 val* var9 /* : String */;
181 static val* varonce;
182 val* var10 /* : String */;
183 char* var11 /* : NativeString */;
184 long var12 /* : Int */;
185 val* var13 /* : FlatString */;
186 val* var14 /* : String */;
187 val* var16 /* : String */;
188 val* var17 /* : Array[Object] */;
189 long var18 /* : Int */;
190 val* var19 /* : NativeArray[Object] */;
191 val* var20 /* : String */;
192 {
193 { /* Inline toolcontext#Message#location (self) on <self:Message> */
194 var3 = self->attrs[COLOR_nit__toolcontext__Message___location].val; /* _location on <self:Message> */
195 var1 = var3;
196 RET_LABEL2:(void)0;
197 }
198 }
199 var_l = var1;
200 var4 = NULL;
201 if (var_l == NULL) {
202 var5 = 1; /* is null */
203 } else {
204 var5 = 0; /* arg is null but recv is not */
205 }
206 if (0) {
207 var6 = nit___nit__Location___standard__kernel__Object___61d_61d(var_l, var4);
208 var5 = var6;
209 }
210 if (var5){
211 {
212 { /* Inline toolcontext#Message#text (self) on <self:Message> */
213 var9 = self->attrs[COLOR_nit__toolcontext__Message___text].val; /* _text on <self:Message> */
214 if (unlikely(var9 == NULL)) {
215 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
216 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 42);
217 show_backtrace(1);
218 }
219 var7 = var9;
220 RET_LABEL8:(void)0;
221 }
222 }
223 var = var7;
224 goto RET_LABEL;
225 } else {
226 if (varonce) {
227 var10 = varonce;
228 } else {
229 var11 = ": ";
230 var12 = 2;
231 var13 = standard___standard__NativeString___to_s_with_length(var11, var12);
232 var10 = var13;
233 varonce = var10;
234 }
235 {
236 { /* Inline toolcontext#Message#text (self) on <self:Message> */
237 var16 = self->attrs[COLOR_nit__toolcontext__Message___text].val; /* _text on <self:Message> */
238 if (unlikely(var16 == NULL)) {
239 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
240 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 42);
241 show_backtrace(1);
242 }
243 var14 = var16;
244 RET_LABEL15:(void)0;
245 }
246 }
247 var17 = NEW_standard__Array(&type_standard__Array__standard__Object);
248 { /* var17 = array_instance Array[Object] */
249 var18 = 3;
250 var19 = NEW_standard__NativeArray(var18, &type_standard__NativeArray__standard__Object);
251 ((struct instance_standard__NativeArray*)var19)->values[0] = (val*) var_l;
252 ((struct instance_standard__NativeArray*)var19)->values[1] = (val*) var10;
253 ((struct instance_standard__NativeArray*)var19)->values[2] = (val*) var14;
254 {
255 ((void (*)(val* self, val* p0, long p1))(var17->class->vft[COLOR_standard__array__Array__with_native]))(var17, var19, var18) /* with_native on <var17:Array[Object]>*/;
256 }
257 }
258 {
259 var20 = ((val* (*)(val* self))(var17->class->vft[COLOR_standard__string__Object__to_s]))(var17) /* to_s on <var17:Array[Object]>*/;
260 }
261 var = var20;
262 goto RET_LABEL;
263 }
264 RET_LABEL:;
265 return var;
266 }
267 /* method toolcontext#Message#to_color_string for (self: Message): String */
268 val* nit___nit__Message___to_color_string(val* self) {
269 val* var /* : String */;
270 long var1 /* : Int */;
271 char var2 /* : Char */;
272 char var4 /* : Char */;
273 char var_esc /* var esc: Char */;
274 static val* varonce;
275 val* var5 /* : String */;
276 char* var6 /* : NativeString */;
277 long var7 /* : Int */;
278 val* var8 /* : FlatString */;
279 val* var9 /* : Array[Object] */;
280 long var10 /* : Int */;
281 val* var11 /* : NativeArray[Object] */;
282 val* var12 /* : Object */;
283 val* var13 /* : String */;
284 val* var_yellow /* var yellow: String */;
285 static val* varonce14;
286 val* var15 /* : String */;
287 char* var16 /* : NativeString */;
288 long var17 /* : Int */;
289 val* var18 /* : FlatString */;
290 val* var19 /* : Array[Object] */;
291 long var20 /* : Int */;
292 val* var21 /* : NativeArray[Object] */;
293 val* var22 /* : Object */;
294 val* var23 /* : String */;
295 val* var_def /* var def: String */;
296 val* var24 /* : nullable String */;
297 val* var26 /* : nullable String */;
298 val* var_tag /* var tag: nullable String */;
299 val* var27 /* : null */;
300 short int var28 /* : Bool */;
301 short int var29 /* : Bool */;
302 val* var_other /* var other: nullable Object */;
303 short int var31 /* : Bool */;
304 short int var32 /* : Bool */;
305 static val* varonce33;
306 val* var34 /* : String */;
307 char* var35 /* : NativeString */;
308 long var36 /* : Int */;
309 val* var37 /* : FlatString */;
310 static val* varonce38;
311 val* var39 /* : String */;
312 char* var40 /* : NativeString */;
313 long var41 /* : Int */;
314 val* var42 /* : FlatString */;
315 val* var43 /* : Array[Object] */;
316 long var44 /* : Int */;
317 val* var45 /* : NativeArray[Object] */;
318 val* var46 /* : String */;
319 static val* varonce47;
320 val* var48 /* : String */;
321 char* var49 /* : NativeString */;
322 long var50 /* : Int */;
323 val* var51 /* : FlatString */;
324 val* var52 /* : nullable Location */;
325 val* var54 /* : nullable Location */;
326 val* var_l /* var l: nullable Location */;
327 val* var55 /* : null */;
328 short int var56 /* : Bool */;
329 short int var57 /* : Bool */;
330 val* var58 /* : String */;
331 val* var60 /* : String */;
332 val* var61 /* : Array[Object] */;
333 long var62 /* : Int */;
334 val* var63 /* : NativeArray[Object] */;
335 val* var64 /* : String */;
336 val* var65 /* : nullable SourceFile */;
337 val* var67 /* : nullable SourceFile */;
338 val* var68 /* : null */;
339 short int var69 /* : Bool */;
340 short int var70 /* : Bool */;
341 val* var_other72 /* var other: nullable Object */;
342 short int var73 /* : Bool */;
343 short int var75 /* : Bool */;
344 static val* varonce76;
345 val* var77 /* : String */;
346 char* var78 /* : NativeString */;
347 long var79 /* : Int */;
348 val* var80 /* : FlatString */;
349 val* var81 /* : String */;
350 val* var83 /* : String */;
351 val* var84 /* : Array[Object] */;
352 long var85 /* : Int */;
353 val* var86 /* : NativeArray[Object] */;
354 val* var87 /* : String */;
355 static val* varonce88;
356 val* var89 /* : String */;
357 char* var90 /* : NativeString */;
358 long var91 /* : Int */;
359 val* var92 /* : FlatString */;
360 val* var93 /* : String */;
361 val* var95 /* : String */;
362 static val* varonce96;
363 val* var97 /* : String */;
364 char* var98 /* : NativeString */;
365 long var99 /* : Int */;
366 val* var100 /* : FlatString */;
367 static val* varonce101;
368 val* var102 /* : String */;
369 char* var103 /* : NativeString */;
370 long var104 /* : Int */;
371 val* var105 /* : FlatString */;
372 val* var106 /* : String */;
373 val* var107 /* : Array[Object] */;
374 long var108 /* : Int */;
375 val* var109 /* : NativeArray[Object] */;
376 val* var110 /* : String */;
377 var1 = 27;
378 {
379 { /* Inline kernel#Int#ascii (var1) on <var1:Int> */
380 var4 = var1;
381 var2 = var4;
382 goto RET_LABEL3;
383 RET_LABEL3:(void)0;
384 }
385 }
386 var_esc = var2;
387 if (varonce) {
388 var5 = varonce;
389 } else {
390 var6 = "[0;33m";
391 var7 = 6;
392 var8 = standard___standard__NativeString___to_s_with_length(var6, var7);
393 var5 = var8;
394 varonce = var5;
395 }
396 var9 = NEW_standard__Array(&type_standard__Array__standard__Object);
397 { /* var9 = array_instance Array[Object] */
398 var10 = 2;
399 var11 = NEW_standard__NativeArray(var10, &type_standard__NativeArray__standard__Object);
400 var12 = BOX_standard__Char(var_esc); /* autobox from Char to Object */
401 ((struct instance_standard__NativeArray*)var11)->values[0] = (val*) var12;
402 ((struct instance_standard__NativeArray*)var11)->values[1] = (val*) var5;
403 {
404 ((void (*)(val* self, val* p0, long p1))(var9->class->vft[COLOR_standard__array__Array__with_native]))(var9, var11, var10) /* with_native on <var9:Array[Object]>*/;
405 }
406 }
407 {
408 var13 = ((val* (*)(val* self))(var9->class->vft[COLOR_standard__string__Object__to_s]))(var9) /* to_s on <var9:Array[Object]>*/;
409 }
410 var_yellow = var13;
411 if (varonce14) {
412 var15 = varonce14;
413 } else {
414 var16 = "[0m";
415 var17 = 3;
416 var18 = standard___standard__NativeString___to_s_with_length(var16, var17);
417 var15 = var18;
418 varonce14 = var15;
419 }
420 var19 = NEW_standard__Array(&type_standard__Array__standard__Object);
421 { /* var19 = array_instance Array[Object] */
422 var20 = 2;
423 var21 = NEW_standard__NativeArray(var20, &type_standard__NativeArray__standard__Object);
424 var22 = BOX_standard__Char(var_esc); /* autobox from Char to Object */
425 ((struct instance_standard__NativeArray*)var21)->values[0] = (val*) var22;
426 ((struct instance_standard__NativeArray*)var21)->values[1] = (val*) var15;
427 {
428 ((void (*)(val* self, val* p0, long p1))(var19->class->vft[COLOR_standard__array__Array__with_native]))(var19, var21, var20) /* with_native on <var19:Array[Object]>*/;
429 }
430 }
431 {
432 var23 = ((val* (*)(val* self))(var19->class->vft[COLOR_standard__string__Object__to_s]))(var19) /* to_s on <var19:Array[Object]>*/;
433 }
434 var_def = var23;
435 {
436 { /* Inline toolcontext#Message#tag (self) on <self:Message> */
437 var26 = self->attrs[COLOR_nit__toolcontext__Message___tag].val; /* _tag on <self:Message> */
438 var24 = var26;
439 RET_LABEL25:(void)0;
440 }
441 }
442 var_tag = var24;
443 var27 = NULL;
444 if (var_tag == NULL) {
445 var28 = 0; /* is null */
446 } else {
447 var28 = 1; /* arg is null and recv is not */
448 }
449 if (0) {
450 { /* Inline kernel#Object#!= (var_tag,var27) on <var_tag:nullable String> */
451 var_other = var27;
452 {
453 var31 = ((short int (*)(val* self, val* p0))(var_tag->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_tag, var_other) /* == on <var_tag:nullable String(String)>*/;
454 }
455 var32 = !var31;
456 var29 = var32;
457 goto RET_LABEL30;
458 RET_LABEL30:(void)0;
459 }
460 var28 = var29;
461 }
462 if (var28){
463 if (varonce33) {
464 var34 = varonce33;
465 } else {
466 var35 = " (";
467 var36 = 2;
468 var37 = standard___standard__NativeString___to_s_with_length(var35, var36);
469 var34 = var37;
470 varonce33 = var34;
471 }
472 if (varonce38) {
473 var39 = varonce38;
474 } else {
475 var40 = ")";
476 var41 = 1;
477 var42 = standard___standard__NativeString___to_s_with_length(var40, var41);
478 var39 = var42;
479 varonce38 = var39;
480 }
481 var43 = NEW_standard__Array(&type_standard__Array__standard__Object);
482 { /* var43 = array_instance Array[Object] */
483 var44 = 3;
484 var45 = NEW_standard__NativeArray(var44, &type_standard__NativeArray__standard__Object);
485 ((struct instance_standard__NativeArray*)var45)->values[0] = (val*) var34;
486 ((struct instance_standard__NativeArray*)var45)->values[1] = (val*) var_tag;
487 ((struct instance_standard__NativeArray*)var45)->values[2] = (val*) var39;
488 {
489 ((void (*)(val* self, val* p0, long p1))(var43->class->vft[COLOR_standard__array__Array__with_native]))(var43, var45, var44) /* with_native on <var43:Array[Object]>*/;
490 }
491 }
492 {
493 var46 = ((val* (*)(val* self))(var43->class->vft[COLOR_standard__string__Object__to_s]))(var43) /* to_s on <var43:Array[Object]>*/;
494 }
495 var_tag = var46;
496 } else {
497 if (varonce47) {
498 var48 = varonce47;
499 } else {
500 var49 = "";
501 var50 = 0;
502 var51 = standard___standard__NativeString___to_s_with_length(var49, var50);
503 var48 = var51;
504 varonce47 = var48;
505 }
506 var_tag = var48;
507 }
508 {
509 { /* Inline toolcontext#Message#location (self) on <self:Message> */
510 var54 = self->attrs[COLOR_nit__toolcontext__Message___location].val; /* _location on <self:Message> */
511 var52 = var54;
512 RET_LABEL53:(void)0;
513 }
514 }
515 var_l = var52;
516 var55 = NULL;
517 if (var_l == NULL) {
518 var56 = 1; /* is null */
519 } else {
520 var56 = 0; /* arg is null but recv is not */
521 }
522 if (0) {
523 var57 = nit___nit__Location___standard__kernel__Object___61d_61d(var_l, var55);
524 var56 = var57;
525 }
526 if (var56){
527 {
528 { /* Inline toolcontext#Message#text (self) on <self:Message> */
529 var60 = self->attrs[COLOR_nit__toolcontext__Message___text].val; /* _text on <self:Message> */
530 if (unlikely(var60 == NULL)) {
531 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
532 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 42);
533 show_backtrace(1);
534 }
535 var58 = var60;
536 RET_LABEL59:(void)0;
537 }
538 }
539 var61 = NEW_standard__Array(&type_standard__Array__standard__Object);
540 { /* var61 = array_instance Array[Object] */
541 var62 = 2;
542 var63 = NEW_standard__NativeArray(var62, &type_standard__NativeArray__standard__Object);
543 ((struct instance_standard__NativeArray*)var63)->values[0] = (val*) var58;
544 ((struct instance_standard__NativeArray*)var63)->values[1] = (val*) var_tag;
545 {
546 ((void (*)(val* self, val* p0, long p1))(var61->class->vft[COLOR_standard__array__Array__with_native]))(var61, var63, var62) /* with_native on <var61:Array[Object]>*/;
547 }
548 }
549 {
550 var64 = ((val* (*)(val* self))(var61->class->vft[COLOR_standard__string__Object__to_s]))(var61) /* to_s on <var61:Array[Object]>*/;
551 }
552 var = var64;
553 goto RET_LABEL;
554 } else {
555 {
556 { /* Inline location#Location#file (var_l) on <var_l:nullable Location(Location)> */
557 var67 = var_l->attrs[COLOR_nit__location__Location___file].val; /* _file on <var_l:nullable Location(Location)> */
558 var65 = var67;
559 RET_LABEL66:(void)0;
560 }
561 }
562 var68 = NULL;
563 if (var65 == NULL) {
564 var69 = 1; /* is null */
565 } else {
566 var69 = 0; /* arg is null but recv is not */
567 }
568 if (0) {
569 { /* Inline kernel#Object#== (var65,var68) on <var65:nullable SourceFile> */
570 var_other72 = var68;
571 {
572 { /* Inline kernel#Object#is_same_instance (var65,var_other72) on <var65:nullable SourceFile(SourceFile)> */
573 var75 = var65 == var_other72;
574 var73 = var75;
575 goto RET_LABEL74;
576 RET_LABEL74:(void)0;
577 }
578 }
579 var70 = var73;
580 goto RET_LABEL71;
581 RET_LABEL71:(void)0;
582 }
583 var69 = var70;
584 }
585 if (var69){
586 if (varonce76) {
587 var77 = varonce76;
588 } else {
589 var78 = ": ";
590 var79 = 2;
591 var80 = standard___standard__NativeString___to_s_with_length(var78, var79);
592 var77 = var80;
593 varonce76 = var77;
594 }
595 {
596 { /* Inline toolcontext#Message#text (self) on <self:Message> */
597 var83 = self->attrs[COLOR_nit__toolcontext__Message___text].val; /* _text on <self:Message> */
598 if (unlikely(var83 == NULL)) {
599 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
600 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 42);
601 show_backtrace(1);
602 }
603 var81 = var83;
604 RET_LABEL82:(void)0;
605 }
606 }
607 var84 = NEW_standard__Array(&type_standard__Array__standard__Object);
608 { /* var84 = array_instance Array[Object] */
609 var85 = 6;
610 var86 = NEW_standard__NativeArray(var85, &type_standard__NativeArray__standard__Object);
611 ((struct instance_standard__NativeArray*)var86)->values[0] = (val*) var_yellow;
612 ((struct instance_standard__NativeArray*)var86)->values[1] = (val*) var_l;
613 ((struct instance_standard__NativeArray*)var86)->values[2] = (val*) var_def;
614 ((struct instance_standard__NativeArray*)var86)->values[3] = (val*) var77;
615 ((struct instance_standard__NativeArray*)var86)->values[4] = (val*) var81;
616 ((struct instance_standard__NativeArray*)var86)->values[5] = (val*) var_tag;
617 {
618 ((void (*)(val* self, val* p0, long p1))(var84->class->vft[COLOR_standard__array__Array__with_native]))(var84, var86, var85) /* with_native on <var84:Array[Object]>*/;
619 }
620 }
621 {
622 var87 = ((val* (*)(val* self))(var84->class->vft[COLOR_standard__string__Object__to_s]))(var84) /* to_s on <var84:Array[Object]>*/;
623 }
624 var = var87;
625 goto RET_LABEL;
626 } else {
627 if (varonce88) {
628 var89 = varonce88;
629 } else {
630 var90 = ": ";
631 var91 = 2;
632 var92 = standard___standard__NativeString___to_s_with_length(var90, var91);
633 var89 = var92;
634 varonce88 = var89;
635 }
636 {
637 { /* Inline toolcontext#Message#text (self) on <self:Message> */
638 var95 = self->attrs[COLOR_nit__toolcontext__Message___text].val; /* _text on <self:Message> */
639 if (unlikely(var95 == NULL)) {
640 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _text");
641 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 42);
642 show_backtrace(1);
643 }
644 var93 = var95;
645 RET_LABEL94:(void)0;
646 }
647 }
648 if (varonce96) {
649 var97 = varonce96;
650 } else {
651 var98 = "\n";
652 var99 = 1;
653 var100 = standard___standard__NativeString___to_s_with_length(var98, var99);
654 var97 = var100;
655 varonce96 = var97;
656 }
657 if (varonce101) {
658 var102 = varonce101;
659 } else {
660 var103 = "1;31";
661 var104 = 4;
662 var105 = standard___standard__NativeString___to_s_with_length(var103, var104);
663 var102 = var105;
664 varonce101 = var102;
665 }
666 {
667 var106 = nit___nit__Location___colored_line(var_l, var102);
668 }
669 var107 = NEW_standard__Array(&type_standard__Array__standard__Object);
670 { /* var107 = array_instance Array[Object] */
671 var108 = 8;
672 var109 = NEW_standard__NativeArray(var108, &type_standard__NativeArray__standard__Object);
673 ((struct instance_standard__NativeArray*)var109)->values[0] = (val*) var_yellow;
674 ((struct instance_standard__NativeArray*)var109)->values[1] = (val*) var_l;
675 ((struct instance_standard__NativeArray*)var109)->values[2] = (val*) var_def;
676 ((struct instance_standard__NativeArray*)var109)->values[3] = (val*) var89;
677 ((struct instance_standard__NativeArray*)var109)->values[4] = (val*) var93;
678 ((struct instance_standard__NativeArray*)var109)->values[5] = (val*) var_tag;
679 ((struct instance_standard__NativeArray*)var109)->values[6] = (val*) var97;
680 ((struct instance_standard__NativeArray*)var109)->values[7] = (val*) var106;
681 {
682 ((void (*)(val* self, val* p0, long p1))(var107->class->vft[COLOR_standard__array__Array__with_native]))(var107, var109, var108) /* with_native on <var107:Array[Object]>*/;
683 }
684 }
685 {
686 var110 = ((val* (*)(val* self))(var107->class->vft[COLOR_standard__string__Object__to_s]))(var107) /* to_s on <var107:Array[Object]>*/;
687 }
688 var = var110;
689 goto RET_LABEL;
690 }
691 }
692 RET_LABEL:;
693 return var;
694 }
695 /* method toolcontext#Message#init for (self: Message) */
696 void nit___nit__Message___standard__kernel__Object__init(val* self) {
697 {
698 ((void (*)(val* self))(self->class->vft[COLOR_nit___nit__Message___standard__kernel__Object__init]))(self) /* init on <self:Message>*/;
699 }
700 RET_LABEL:;
701 }
702 /* method toolcontext#ToolContext#error_count for (self: ToolContext): Int */
703 long nit___nit__ToolContext___error_count(val* self) {
704 long var /* : Int */;
705 long var1 /* : Int */;
706 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
707 var = var1;
708 RET_LABEL:;
709 return var;
710 }
711 /* method toolcontext#ToolContext#error_count= for (self: ToolContext, Int) */
712 void nit___nit__ToolContext___error_count_61d(val* self, long p0) {
713 self->attrs[COLOR_nit__toolcontext__ToolContext___error_count].l = p0; /* _error_count on <self:ToolContext> */
714 RET_LABEL:;
715 }
716 /* method toolcontext#ToolContext#warning_count for (self: ToolContext): Int */
717 long nit___nit__ToolContext___warning_count(val* self) {
718 long var /* : Int */;
719 long var1 /* : Int */;
720 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___warning_count].l; /* _warning_count on <self:ToolContext> */
721 var = var1;
722 RET_LABEL:;
723 return var;
724 }
725 /* method toolcontext#ToolContext#warning_count= for (self: ToolContext, Int) */
726 void nit___nit__ToolContext___warning_count_61d(val* self, long p0) {
727 self->attrs[COLOR_nit__toolcontext__ToolContext___warning_count].l = p0; /* _warning_count on <self:ToolContext> */
728 RET_LABEL:;
729 }
730 /* method toolcontext#ToolContext#log_directory for (self: ToolContext): String */
731 val* nit___nit__ToolContext___log_directory(val* self) {
732 val* var /* : String */;
733 val* var1 /* : String */;
734 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___log_directory].val; /* _log_directory on <self:ToolContext> */
735 if (unlikely(var1 == NULL)) {
736 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _log_directory");
737 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 102);
738 show_backtrace(1);
739 }
740 var = var1;
741 RET_LABEL:;
742 return var;
743 }
744 /* method toolcontext#ToolContext#log_directory= for (self: ToolContext, String) */
745 void nit___nit__ToolContext___log_directory_61d(val* self, val* p0) {
746 self->attrs[COLOR_nit__toolcontext__ToolContext___log_directory].val = p0; /* _log_directory on <self:ToolContext> */
747 RET_LABEL:;
748 }
749 /* method toolcontext#ToolContext#messages for (self: ToolContext): Array[Message] */
750 val* nit___nit__ToolContext___messages(val* self) {
751 val* var /* : Array[Message] */;
752 val* var1 /* : Array[Message] */;
753 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
754 if (unlikely(var1 == NULL)) {
755 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
756 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 105);
757 show_backtrace(1);
758 }
759 var = var1;
760 RET_LABEL:;
761 return var;
762 }
763 /* method toolcontext#ToolContext#message_sorter for (self: ToolContext): Comparator */
764 val* nit___nit__ToolContext___message_sorter(val* self) {
765 val* var /* : Comparator */;
766 val* var1 /* : Comparator */;
767 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___message_sorter].val; /* _message_sorter on <self:ToolContext> */
768 if (unlikely(var1 == NULL)) {
769 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _message_sorter");
770 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 107);
771 show_backtrace(1);
772 }
773 var = var1;
774 RET_LABEL:;
775 return var;
776 }
777 /* method toolcontext#ToolContext#keep_going for (self: ToolContext): Bool */
778 short int nit___nit__ToolContext___keep_going(val* self) {
779 short int var /* : Bool */;
780 short int var1 /* : Bool */;
781 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___keep_going].s; /* _keep_going on <self:ToolContext> */
782 var = var1;
783 RET_LABEL:;
784 return var;
785 }
786 /* method toolcontext#ToolContext#warning_blacklist for (self: ToolContext): MultiHashMap[SourceFile, String] */
787 val* nit___nit__ToolContext___warning_blacklist(val* self) {
788 val* var /* : MultiHashMap[SourceFile, String] */;
789 val* var1 /* : MultiHashMap[SourceFile, String] */;
790 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___warning_blacklist].val; /* _warning_blacklist on <self:ToolContext> */
791 if (unlikely(var1 == NULL)) {
792 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _warning_blacklist");
793 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 115);
794 show_backtrace(1);
795 }
796 var = var1;
797 RET_LABEL:;
798 return var;
799 }
800 /* method toolcontext#ToolContext#is_warning_blacklisted for (self: ToolContext, nullable Location, String): Bool */
801 short int nit___nit__ToolContext___is_warning_blacklisted(val* self, val* p0, val* p1) {
802 short int var /* : Bool */;
803 val* var_l /* var l: nullable Location */;
804 val* var_tag /* var tag: String */;
805 val* var1 /* : null */;
806 short int var2 /* : Bool */;
807 short int var3 /* : Bool */;
808 short int var4 /* : Bool */;
809 val* var5 /* : nullable SourceFile */;
810 val* var7 /* : nullable SourceFile */;
811 val* var_f /* var f: nullable SourceFile */;
812 val* var8 /* : null */;
813 short int var9 /* : Bool */;
814 short int var10 /* : Bool */;
815 val* var_other /* var other: nullable Object */;
816 short int var12 /* : Bool */;
817 short int var14 /* : Bool */;
818 short int var15 /* : Bool */;
819 val* var16 /* : MultiHashMap[SourceFile, String] */;
820 val* var18 /* : MultiHashMap[SourceFile, String] */;
821 val* var19 /* : nullable Object */;
822 val* var_tags /* var tags: nullable Array[String] */;
823 val* var20 /* : null */;
824 short int var21 /* : Bool */;
825 short int var22 /* : Bool */;
826 short int var23 /* : Bool */;
827 short int var24 /* : Bool */;
828 static val* varonce;
829 val* var25 /* : String */;
830 char* var26 /* : NativeString */;
831 long var27 /* : Int */;
832 val* var28 /* : FlatString */;
833 short int var29 /* : Bool */;
834 short int var_ /* var : Bool */;
835 short int var30 /* : Bool */;
836 var_l = p0;
837 var_tag = p1;
838 var1 = NULL;
839 if (var_l == NULL) {
840 var2 = 1; /* is null */
841 } else {
842 var2 = 0; /* arg is null but recv is not */
843 }
844 if (0) {
845 var3 = nit___nit__Location___standard__kernel__Object___61d_61d(var_l, var1);
846 var2 = var3;
847 }
848 if (var2){
849 var4 = 0;
850 var = var4;
851 goto RET_LABEL;
852 } else {
853 }
854 {
855 { /* Inline location#Location#file (var_l) on <var_l:nullable Location(Location)> */
856 var7 = var_l->attrs[COLOR_nit__location__Location___file].val; /* _file on <var_l:nullable Location(Location)> */
857 var5 = var7;
858 RET_LABEL6:(void)0;
859 }
860 }
861 var_f = var5;
862 var8 = NULL;
863 if (var_f == NULL) {
864 var9 = 1; /* is null */
865 } else {
866 var9 = 0; /* arg is null but recv is not */
867 }
868 if (0) {
869 { /* Inline kernel#Object#== (var_f,var8) on <var_f:nullable SourceFile> */
870 var_other = var8;
871 {
872 { /* Inline kernel#Object#is_same_instance (var_f,var_other) on <var_f:nullable SourceFile(SourceFile)> */
873 var14 = var_f == var_other;
874 var12 = var14;
875 goto RET_LABEL13;
876 RET_LABEL13:(void)0;
877 }
878 }
879 var10 = var12;
880 goto RET_LABEL11;
881 RET_LABEL11:(void)0;
882 }
883 var9 = var10;
884 }
885 if (var9){
886 var15 = 0;
887 var = var15;
888 goto RET_LABEL;
889 } else {
890 }
891 {
892 { /* Inline toolcontext#ToolContext#warning_blacklist (self) on <self:ToolContext> */
893 var18 = self->attrs[COLOR_nit__toolcontext__ToolContext___warning_blacklist].val; /* _warning_blacklist on <self:ToolContext> */
894 if (unlikely(var18 == NULL)) {
895 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _warning_blacklist");
896 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 115);
897 show_backtrace(1);
898 }
899 var16 = var18;
900 RET_LABEL17:(void)0;
901 }
902 }
903 {
904 var19 = standard___standard__HashMap___standard__abstract_collection__MapRead__get_or_null(var16, var_f);
905 }
906 var_tags = var19;
907 var20 = NULL;
908 if (var_tags == NULL) {
909 var21 = 1; /* is null */
910 } else {
911 var21 = 0; /* arg is null but recv is not */
912 }
913 if (0) {
914 var22 = standard___standard__Array___standard__kernel__Object___61d_61d(var_tags, var20);
915 var21 = var22;
916 }
917 if (var21){
918 var23 = 0;
919 var = var23;
920 goto RET_LABEL;
921 } else {
922 }
923 if (varonce) {
924 var25 = varonce;
925 } else {
926 var26 = "all";
927 var27 = 3;
928 var28 = standard___standard__NativeString___to_s_with_length(var26, var27);
929 var25 = var28;
930 varonce = var25;
931 }
932 {
933 var29 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__has(var_tags, var25);
934 }
935 var_ = var29;
936 if (var29){
937 var24 = var_;
938 } else {
939 {
940 var30 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__has(var_tags, var_tag);
941 }
942 var24 = var30;
943 }
944 var = var24;
945 goto RET_LABEL;
946 RET_LABEL:;
947 return var;
948 }
949 /* method toolcontext#ToolContext#check_errors for (self: ToolContext): Bool */
950 short int nit___nit__ToolContext___check_errors(val* self) {
951 short int var /* : Bool */;
952 val* var1 /* : Array[Message] */;
953 val* var3 /* : Array[Message] */;
954 long var4 /* : Int */;
955 long var6 /* : Int */;
956 long var7 /* : Int */;
957 short int var8 /* : Bool */;
958 short int var10 /* : Bool */;
959 int cltype;
960 int idtype;
961 const char* var_class_name;
962 short int var11 /* : Bool */;
963 val* var12 /* : Comparator */;
964 val* var14 /* : Comparator */;
965 val* var15 /* : Array[Message] */;
966 val* var17 /* : Array[Message] */;
967 val* var18 /* : Array[Message] */;
968 val* var20 /* : Array[Message] */;
969 val* var_ /* var : Array[Message] */;
970 val* var21 /* : ArrayIterator[nullable Object] */;
971 val* var_22 /* var : ArrayIterator[Message] */;
972 short int var23 /* : Bool */;
973 val* var24 /* : nullable Object */;
974 val* var_m /* var m: Message */;
975 val* var25 /* : OptionBool */;
976 val* var27 /* : OptionBool */;
977 val* var28 /* : nullable Object */;
978 val* var30 /* : nullable Object */;
979 short int var31 /* : Bool */;
980 val* var32 /* : Sys */;
981 val* var34 /* : Sys */;
982 val* var35 /* : OStream */;
983 val* var37 /* : OStream */;
984 static val* varonce;
985 val* var38 /* : String */;
986 char* var39 /* : NativeString */;
987 long var40 /* : Int */;
988 val* var41 /* : FlatString */;
989 val* var42 /* : Array[Object] */;
990 long var43 /* : Int */;
991 val* var44 /* : NativeArray[Object] */;
992 val* var45 /* : String */;
993 val* var46 /* : Sys */;
994 val* var48 /* : Sys */;
995 val* var49 /* : OStream */;
996 val* var51 /* : OStream */;
997 val* var52 /* : String */;
998 static val* varonce53;
999 val* var54 /* : String */;
1000 char* var55 /* : NativeString */;
1001 long var56 /* : Int */;
1002 val* var57 /* : FlatString */;
1003 val* var58 /* : Array[Object] */;
1004 long var59 /* : Int */;
1005 val* var60 /* : NativeArray[Object] */;
1006 val* var61 /* : String */;
1007 val* var63 /* : Array[Message] */;
1008 val* var65 /* : Array[Message] */;
1009 long var66 /* : Int */;
1010 long var68 /* : Int */;
1011 long var69 /* : Int */;
1012 short int var70 /* : Bool */;
1013 short int var72 /* : Bool */;
1014 int cltype73;
1015 int idtype74;
1016 const char* var_class_name75;
1017 short int var76 /* : Bool */;
1018 short int var77 /* : Bool */;
1019 short int var79 /* : Bool */;
1020 short int var80 /* : Bool */;
1021 long var81 /* : Int */;
1022 short int var83 /* : Bool */;
1023 short int var84 /* : Bool */;
1024 {
1025 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
1026 var3 = self->attrs[COLOR_nit__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
1027 if (unlikely(var3 == NULL)) {
1028 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
1029 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 105);
1030 show_backtrace(1);
1031 }
1032 var1 = var3;
1033 RET_LABEL2:(void)0;
1034 }
1035 }
1036 {
1037 { /* Inline array#AbstractArrayRead#length (var1) on <var1:Array[Message]> */
1038 var6 = var1->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var1:Array[Message]> */
1039 var4 = var6;
1040 RET_LABEL5:(void)0;
1041 }
1042 }
1043 var7 = 0;
1044 {
1045 { /* Inline kernel#Int#> (var4,var7) on <var4:Int> */
1046 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
1047 /* <var7:Int> isa OTHER */
1048 var10 = 1; /* easy <var7:Int> isa OTHER*/
1049 if (unlikely(!var10)) {
1050 var_class_name = type_standard__Int.name;
1051 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1052 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
1053 show_backtrace(1);
1054 }
1055 var11 = var4 > var7;
1056 var8 = var11;
1057 goto RET_LABEL9;
1058 RET_LABEL9:(void)0;
1059 }
1060 }
1061 if (var8){
1062 {
1063 { /* Inline toolcontext#ToolContext#message_sorter (self) on <self:ToolContext> */
1064 var14 = self->attrs[COLOR_nit__toolcontext__ToolContext___message_sorter].val; /* _message_sorter on <self:ToolContext> */
1065 if (unlikely(var14 == NULL)) {
1066 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _message_sorter");
1067 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 107);
1068 show_backtrace(1);
1069 }
1070 var12 = var14;
1071 RET_LABEL13:(void)0;
1072 }
1073 }
1074 {
1075 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
1076 var17 = self->attrs[COLOR_nit__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
1077 if (unlikely(var17 == NULL)) {
1078 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
1079 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 105);
1080 show_backtrace(1);
1081 }
1082 var15 = var17;
1083 RET_LABEL16:(void)0;
1084 }
1085 }
1086 {
1087 standard___standard__Comparator___sort(var12, var15); /* Direct call sorter#Comparator#sort on <var12:Comparator>*/
1088 }
1089 {
1090 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
1091 var20 = self->attrs[COLOR_nit__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
1092 if (unlikely(var20 == NULL)) {
1093 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
1094 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 105);
1095 show_backtrace(1);
1096 }
1097 var18 = var20;
1098 RET_LABEL19:(void)0;
1099 }
1100 }
1101 var_ = var18;
1102 {
1103 var21 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
1104 }
1105 var_22 = var21;
1106 for(;;) {
1107 {
1108 var23 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_22);
1109 }
1110 if (var23){
1111 {
1112 var24 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_22);
1113 }
1114 var_m = var24;
1115 {
1116 { /* Inline toolcontext#ToolContext#opt_no_color (self) on <self:ToolContext> */
1117 var27 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_no_color].val; /* _opt_no_color on <self:ToolContext> */
1118 if (unlikely(var27 == NULL)) {
1119 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_color");
1120 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 306);
1121 show_backtrace(1);
1122 }
1123 var25 = var27;
1124 RET_LABEL26:(void)0;
1125 }
1126 }
1127 {
1128 { /* Inline opts#Option#value (var25) on <var25:OptionBool> */
1129 var30 = var25->attrs[COLOR_opts__Option___value].val; /* _value on <var25:OptionBool> */
1130 var28 = var30;
1131 RET_LABEL29:(void)0;
1132 }
1133 }
1134 var31 = ((struct instance_standard__Bool*)var28)->value; /* autounbox from nullable Object to Bool */;
1135 if (var31){
1136 {
1137 { /* Inline kernel#Object#sys (self) on <self:ToolContext> */
1138 var34 = glob_sys;
1139 var32 = var34;
1140 goto RET_LABEL33;
1141 RET_LABEL33:(void)0;
1142 }
1143 }
1144 {
1145 { /* Inline file#Sys#stderr (var32) on <var32:Sys> */
1146 var37 = var32->attrs[COLOR_standard__file__Sys___stderr].val; /* _stderr on <var32:Sys> */
1147 if (unlikely(var37 == NULL)) {
1148 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stderr");
1149 PRINT_ERROR(" (%s:%d)\n", FILE_standard__file, 1011);
1150 show_backtrace(1);
1151 }
1152 var35 = var37;
1153 RET_LABEL36:(void)0;
1154 }
1155 }
1156 if (varonce) {
1157 var38 = varonce;
1158 } else {
1159 var39 = "\n";
1160 var40 = 1;
1161 var41 = standard___standard__NativeString___to_s_with_length(var39, var40);
1162 var38 = var41;
1163 varonce = var38;
1164 }
1165 var42 = NEW_standard__Array(&type_standard__Array__standard__Object);
1166 { /* var42 = array_instance Array[Object] */
1167 var43 = 2;
1168 var44 = NEW_standard__NativeArray(var43, &type_standard__NativeArray__standard__Object);
1169 ((struct instance_standard__NativeArray*)var44)->values[0] = (val*) var_m;
1170 ((struct instance_standard__NativeArray*)var44)->values[1] = (val*) var38;
1171 {
1172 ((void (*)(val* self, val* p0, long p1))(var42->class->vft[COLOR_standard__array__Array__with_native]))(var42, var44, var43) /* with_native on <var42:Array[Object]>*/;
1173 }
1174 }
1175 {
1176 var45 = ((val* (*)(val* self))(var42->class->vft[COLOR_standard__string__Object__to_s]))(var42) /* to_s on <var42:Array[Object]>*/;
1177 }
1178 {
1179 standard___standard__OFStream___standard__stream__OStream__write(var35, var45); /* Direct call file#OFStream#write on <var35:OStream>*/
1180 }
1181 } else {
1182 {
1183 { /* Inline kernel#Object#sys (self) on <self:ToolContext> */
1184 var48 = glob_sys;
1185 var46 = var48;
1186 goto RET_LABEL47;
1187 RET_LABEL47:(void)0;
1188 }
1189 }
1190 {
1191 { /* Inline file#Sys#stderr (var46) on <var46:Sys> */
1192 var51 = var46->attrs[COLOR_standard__file__Sys___stderr].val; /* _stderr on <var46:Sys> */
1193 if (unlikely(var51 == NULL)) {
1194 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stderr");
1195 PRINT_ERROR(" (%s:%d)\n", FILE_standard__file, 1011);
1196 show_backtrace(1);
1197 }
1198 var49 = var51;
1199 RET_LABEL50:(void)0;
1200 }
1201 }
1202 {
1203 var52 = nit___nit__Message___to_color_string(var_m);
1204 }
1205 if (varonce53) {
1206 var54 = varonce53;
1207 } else {
1208 var55 = "\n";
1209 var56 = 1;
1210 var57 = standard___standard__NativeString___to_s_with_length(var55, var56);
1211 var54 = var57;
1212 varonce53 = var54;
1213 }
1214 var58 = NEW_standard__Array(&type_standard__Array__standard__Object);
1215 { /* var58 = array_instance Array[Object] */
1216 var59 = 2;
1217 var60 = NEW_standard__NativeArray(var59, &type_standard__NativeArray__standard__Object);
1218 ((struct instance_standard__NativeArray*)var60)->values[0] = (val*) var52;
1219 ((struct instance_standard__NativeArray*)var60)->values[1] = (val*) var54;
1220 {
1221 ((void (*)(val* self, val* p0, long p1))(var58->class->vft[COLOR_standard__array__Array__with_native]))(var58, var60, var59) /* with_native on <var58:Array[Object]>*/;
1222 }
1223 }
1224 {
1225 var61 = ((val* (*)(val* self))(var58->class->vft[COLOR_standard__string__Object__to_s]))(var58) /* to_s on <var58:Array[Object]>*/;
1226 }
1227 {
1228 standard___standard__OFStream___standard__stream__OStream__write(var49, var61); /* Direct call file#OFStream#write on <var49:OStream>*/
1229 }
1230 }
1231 {
1232 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_22); /* Direct call array#ArrayIterator#next on <var_22:ArrayIterator[Message]>*/
1233 }
1234 } else {
1235 goto BREAK_label;
1236 }
1237 }
1238 BREAK_label: (void)0;
1239 {
1240 { /* Inline abstract_collection#Iterator#finish (var_22) on <var_22:ArrayIterator[Message]> */
1241 RET_LABEL62:(void)0;
1242 }
1243 }
1244 {
1245 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
1246 var65 = self->attrs[COLOR_nit__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
1247 if (unlikely(var65 == NULL)) {
1248 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
1249 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 105);
1250 show_backtrace(1);
1251 }
1252 var63 = var65;
1253 RET_LABEL64:(void)0;
1254 }
1255 }
1256 {
1257 standard___standard__AbstractArray___standard__abstract_collection__RemovableCollection__clear(var63); /* Direct call array#AbstractArray#clear on <var63:Array[Message]>*/
1258 }
1259 } else {
1260 }
1261 {
1262 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
1263 var68 = self->attrs[COLOR_nit__toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
1264 var66 = var68;
1265 RET_LABEL67:(void)0;
1266 }
1267 }
1268 var69 = 0;
1269 {
1270 { /* Inline kernel#Int#> (var66,var69) on <var66:Int> */
1271 /* Covariant cast for argument 0 (i) <var69:Int> isa OTHER */
1272 /* <var69:Int> isa OTHER */
1273 var72 = 1; /* easy <var69:Int> isa OTHER*/
1274 if (unlikely(!var72)) {
1275 var_class_name75 = type_standard__Int.name;
1276 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name75);
1277 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
1278 show_backtrace(1);
1279 }
1280 var76 = var66 > var69;
1281 var70 = var76;
1282 goto RET_LABEL71;
1283 RET_LABEL71:(void)0;
1284 }
1285 }
1286 if (var70){
1287 {
1288 nit___nit__ToolContext___errors_info(self); /* Direct call toolcontext#ToolContext#errors_info on <self:ToolContext>*/
1289 }
1290 {
1291 { /* Inline toolcontext#ToolContext#keep_going (self) on <self:ToolContext> */
1292 var79 = self->attrs[COLOR_nit__toolcontext__ToolContext___keep_going].s; /* _keep_going on <self:ToolContext> */
1293 var77 = var79;
1294 RET_LABEL78:(void)0;
1295 }
1296 }
1297 var80 = !var77;
1298 if (var80){
1299 var81 = 1;
1300 {
1301 { /* Inline kernel#Object#exit (self,var81) on <self:ToolContext> */
1302 exit(var81);
1303 RET_LABEL82:(void)0;
1304 }
1305 }
1306 } else {
1307 }
1308 var83 = 0;
1309 var = var83;
1310 goto RET_LABEL;
1311 } else {
1312 }
1313 var84 = 1;
1314 var = var84;
1315 goto RET_LABEL;
1316 RET_LABEL:;
1317 return var;
1318 }
1319 /* method toolcontext#ToolContext#errors_info for (self: ToolContext) */
1320 void nit___nit__ToolContext___errors_info(val* self) {
1321 short int var /* : Bool */;
1322 long var1 /* : Int */;
1323 long var3 /* : Int */;
1324 long var4 /* : Int */;
1325 short int var5 /* : Bool */;
1326 short int var7 /* : Bool */;
1327 short int var_ /* var : Bool */;
1328 long var8 /* : Int */;
1329 long var10 /* : Int */;
1330 long var11 /* : Int */;
1331 short int var12 /* : Bool */;
1332 short int var14 /* : Bool */;
1333 val* var15 /* : OptionBool */;
1334 val* var17 /* : OptionBool */;
1335 val* var18 /* : nullable Object */;
1336 val* var20 /* : nullable Object */;
1337 short int var21 /* : Bool */;
1338 val* var22 /* : Sys */;
1339 val* var24 /* : Sys */;
1340 val* var25 /* : OStream */;
1341 val* var27 /* : OStream */;
1342 static val* varonce;
1343 val* var28 /* : String */;
1344 char* var29 /* : NativeString */;
1345 long var30 /* : Int */;
1346 val* var31 /* : FlatString */;
1347 long var32 /* : Int */;
1348 long var34 /* : Int */;
1349 static val* varonce35;
1350 val* var36 /* : String */;
1351 char* var37 /* : NativeString */;
1352 long var38 /* : Int */;
1353 val* var39 /* : FlatString */;
1354 long var40 /* : Int */;
1355 long var42 /* : Int */;
1356 static val* varonce43;
1357 val* var44 /* : String */;
1358 char* var45 /* : NativeString */;
1359 long var46 /* : Int */;
1360 val* var47 /* : FlatString */;
1361 val* var48 /* : Array[Object] */;
1362 long var49 /* : Int */;
1363 val* var50 /* : NativeArray[Object] */;
1364 val* var51 /* : Object */;
1365 val* var52 /* : Object */;
1366 val* var53 /* : String */;
1367 long var54 /* : Int */;
1368 long var56 /* : Int */;
1369 {
1370 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
1371 var3 = self->attrs[COLOR_nit__toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
1372 var1 = var3;
1373 RET_LABEL2:(void)0;
1374 }
1375 }
1376 var4 = 0;
1377 {
1378 { /* Inline kernel#Int#== (var1,var4) on <var1:Int> */
1379 var7 = var1 == var4;
1380 var5 = var7;
1381 goto RET_LABEL6;
1382 RET_LABEL6:(void)0;
1383 }
1384 }
1385 var_ = var5;
1386 if (var5){
1387 {
1388 { /* Inline toolcontext#ToolContext#warning_count (self) on <self:ToolContext> */
1389 var10 = self->attrs[COLOR_nit__toolcontext__ToolContext___warning_count].l; /* _warning_count on <self:ToolContext> */
1390 var8 = var10;
1391 RET_LABEL9:(void)0;
1392 }
1393 }
1394 var11 = 0;
1395 {
1396 { /* Inline kernel#Int#== (var8,var11) on <var8:Int> */
1397 var14 = var8 == var11;
1398 var12 = var14;
1399 goto RET_LABEL13;
1400 RET_LABEL13:(void)0;
1401 }
1402 }
1403 var = var12;
1404 } else {
1405 var = var_;
1406 }
1407 if (var){
1408 goto RET_LABEL;
1409 } else {
1410 }
1411 {
1412 { /* Inline toolcontext#ToolContext#opt_no_color (self) on <self:ToolContext> */
1413 var17 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_no_color].val; /* _opt_no_color on <self:ToolContext> */
1414 if (unlikely(var17 == NULL)) {
1415 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_color");
1416 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 306);
1417 show_backtrace(1);
1418 }
1419 var15 = var17;
1420 RET_LABEL16:(void)0;
1421 }
1422 }
1423 {
1424 { /* Inline opts#Option#value (var15) on <var15:OptionBool> */
1425 var20 = var15->attrs[COLOR_opts__Option___value].val; /* _value on <var15:OptionBool> */
1426 var18 = var20;
1427 RET_LABEL19:(void)0;
1428 }
1429 }
1430 var21 = ((struct instance_standard__Bool*)var18)->value; /* autounbox from nullable Object to Bool */;
1431 if (var21){
1432 goto RET_LABEL;
1433 } else {
1434 }
1435 {
1436 { /* Inline kernel#Object#sys (self) on <self:ToolContext> */
1437 var24 = glob_sys;
1438 var22 = var24;
1439 goto RET_LABEL23;
1440 RET_LABEL23:(void)0;
1441 }
1442 }
1443 {
1444 { /* Inline file#Sys#stderr (var22) on <var22:Sys> */
1445 var27 = var22->attrs[COLOR_standard__file__Sys___stderr].val; /* _stderr on <var22:Sys> */
1446 if (unlikely(var27 == NULL)) {
1447 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stderr");
1448 PRINT_ERROR(" (%s:%d)\n", FILE_standard__file, 1011);
1449 show_backtrace(1);
1450 }
1451 var25 = var27;
1452 RET_LABEL26:(void)0;
1453 }
1454 }
1455 if (varonce) {
1456 var28 = varonce;
1457 } else {
1458 var29 = "Errors: ";
1459 var30 = 8;
1460 var31 = standard___standard__NativeString___to_s_with_length(var29, var30);
1461 var28 = var31;
1462 varonce = var28;
1463 }
1464 {
1465 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
1466 var34 = self->attrs[COLOR_nit__toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
1467 var32 = var34;
1468 RET_LABEL33:(void)0;
1469 }
1470 }
1471 if (varonce35) {
1472 var36 = varonce35;
1473 } else {
1474 var37 = ". Warnings: ";
1475 var38 = 12;
1476 var39 = standard___standard__NativeString___to_s_with_length(var37, var38);
1477 var36 = var39;
1478 varonce35 = var36;
1479 }
1480 {
1481 { /* Inline toolcontext#ToolContext#warning_count (self) on <self:ToolContext> */
1482 var42 = self->attrs[COLOR_nit__toolcontext__ToolContext___warning_count].l; /* _warning_count on <self:ToolContext> */
1483 var40 = var42;
1484 RET_LABEL41:(void)0;
1485 }
1486 }
1487 if (varonce43) {
1488 var44 = varonce43;
1489 } else {
1490 var45 = ".\n";
1491 var46 = 2;
1492 var47 = standard___standard__NativeString___to_s_with_length(var45, var46);
1493 var44 = var47;
1494 varonce43 = var44;
1495 }
1496 var48 = NEW_standard__Array(&type_standard__Array__standard__Object);
1497 { /* var48 = array_instance Array[Object] */
1498 var49 = 5;
1499 var50 = NEW_standard__NativeArray(var49, &type_standard__NativeArray__standard__Object);
1500 ((struct instance_standard__NativeArray*)var50)->values[0] = (val*) var28;
1501 var51 = BOX_standard__Int(var32); /* autobox from Int to Object */
1502 ((struct instance_standard__NativeArray*)var50)->values[1] = (val*) var51;
1503 ((struct instance_standard__NativeArray*)var50)->values[2] = (val*) var36;
1504 var52 = BOX_standard__Int(var40); /* autobox from Int to Object */
1505 ((struct instance_standard__NativeArray*)var50)->values[3] = (val*) var52;
1506 ((struct instance_standard__NativeArray*)var50)->values[4] = (val*) var44;
1507 {
1508 ((void (*)(val* self, val* p0, long p1))(var48->class->vft[COLOR_standard__array__Array__with_native]))(var48, var50, var49) /* with_native on <var48:Array[Object]>*/;
1509 }
1510 }
1511 {
1512 var53 = ((val* (*)(val* self))(var48->class->vft[COLOR_standard__string__Object__to_s]))(var48) /* to_s on <var48:Array[Object]>*/;
1513 }
1514 {
1515 standard___standard__OFStream___standard__stream__OStream__write(var25, var53); /* Direct call file#OFStream#write on <var25:OStream>*/
1516 }
1517 var54 = 0;
1518 {
1519 { /* Inline toolcontext#ToolContext#error_count= (self,var54) on <self:ToolContext> */
1520 self->attrs[COLOR_nit__toolcontext__ToolContext___error_count].l = var54; /* _error_count on <self:ToolContext> */
1521 RET_LABEL55:(void)0;
1522 }
1523 }
1524 var56 = 0;
1525 {
1526 { /* Inline toolcontext#ToolContext#warning_count= (self,var56) on <self:ToolContext> */
1527 self->attrs[COLOR_nit__toolcontext__ToolContext___warning_count].l = var56; /* _warning_count on <self:ToolContext> */
1528 RET_LABEL57:(void)0;
1529 }
1530 }
1531 RET_LABEL:;
1532 }
1533 /* method toolcontext#ToolContext#error for (self: ToolContext, nullable Location, String) */
1534 void nit___nit__ToolContext___error(val* self, val* p0, val* p1) {
1535 val* var_l /* var l: nullable Location */;
1536 val* var_s /* var s: String */;
1537 val* var /* : Array[Message] */;
1538 val* var2 /* : Array[Message] */;
1539 val* var3 /* : Message */;
1540 val* var4 /* : null */;
1541 long var5 /* : Int */;
1542 long var7 /* : Int */;
1543 long var8 /* : Int */;
1544 long var9 /* : Int */;
1545 short int var11 /* : Bool */;
1546 int cltype;
1547 int idtype;
1548 const char* var_class_name;
1549 long var12 /* : Int */;
1550 val* var14 /* : OptionBool */;
1551 val* var16 /* : OptionBool */;
1552 val* var17 /* : nullable Object */;
1553 val* var19 /* : nullable Object */;
1554 short int var20 /* : Bool */;
1555 short int var21 /* : Bool */;
1556 var_l = p0;
1557 var_s = p1;
1558 {
1559 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
1560 var2 = self->attrs[COLOR_nit__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
1561 if (unlikely(var2 == NULL)) {
1562 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
1563 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 105);
1564 show_backtrace(1);
1565 }
1566 var = var2;
1567 RET_LABEL1:(void)0;
1568 }
1569 }
1570 var3 = NEW_nit__Message(&type_nit__Message);
1571 var4 = NULL;
1572 {
1573 ((void (*)(val* self, val* p0))(var3->class->vft[COLOR_nit__toolcontext__Message__location_61d]))(var3, var_l) /* location= on <var3:Message>*/;
1574 }
1575 {
1576 ((void (*)(val* self, val* p0))(var3->class->vft[COLOR_nit__toolcontext__Message__tag_61d]))(var3, var4) /* tag= on <var3:Message>*/;
1577 }
1578 {
1579 ((void (*)(val* self, val* p0))(var3->class->vft[COLOR_nit__toolcontext__Message__text_61d]))(var3, var_s) /* text= on <var3:Message>*/;
1580 }
1581 {
1582 ((void (*)(val* self))(var3->class->vft[COLOR_standard__kernel__Object__init]))(var3) /* init on <var3:Message>*/;
1583 }
1584 {
1585 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var, var3); /* Direct call array#Array#add on <var:Array[Message]>*/
1586 }
1587 {
1588 { /* Inline toolcontext#ToolContext#error_count (self) on <self:ToolContext> */
1589 var7 = self->attrs[COLOR_nit__toolcontext__ToolContext___error_count].l; /* _error_count on <self:ToolContext> */
1590 var5 = var7;
1591 RET_LABEL6:(void)0;
1592 }
1593 }
1594 var8 = 1;
1595 {
1596 { /* Inline kernel#Int#+ (var5,var8) on <var5:Int> */
1597 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
1598 /* <var8:Int> isa OTHER */
1599 var11 = 1; /* easy <var8:Int> isa OTHER*/
1600 if (unlikely(!var11)) {
1601 var_class_name = type_standard__Int.name;
1602 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1603 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
1604 show_backtrace(1);
1605 }
1606 var12 = var5 + var8;
1607 var9 = var12;
1608 goto RET_LABEL10;
1609 RET_LABEL10:(void)0;
1610 }
1611 }
1612 {
1613 { /* Inline toolcontext#ToolContext#error_count= (self,var9) on <self:ToolContext> */
1614 self->attrs[COLOR_nit__toolcontext__ToolContext___error_count].l = var9; /* _error_count on <self:ToolContext> */
1615 RET_LABEL13:(void)0;
1616 }
1617 }
1618 {
1619 { /* Inline toolcontext#ToolContext#opt_stop_on_first_error (self) on <self:ToolContext> */
1620 var16 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:ToolContext> */
1621 if (unlikely(var16 == NULL)) {
1622 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
1623 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 303);
1624 show_backtrace(1);
1625 }
1626 var14 = var16;
1627 RET_LABEL15:(void)0;
1628 }
1629 }
1630 {
1631 { /* Inline opts#Option#value (var14) on <var14:OptionBool> */
1632 var19 = var14->attrs[COLOR_opts__Option___value].val; /* _value on <var14:OptionBool> */
1633 var17 = var19;
1634 RET_LABEL18:(void)0;
1635 }
1636 }
1637 var20 = ((struct instance_standard__Bool*)var17)->value; /* autounbox from nullable Object to Bool */;
1638 if (var20){
1639 {
1640 var21 = nit___nit__ToolContext___check_errors(self);
1641 }
1642 } else {
1643 }
1644 RET_LABEL:;
1645 }
1646 /* method toolcontext#ToolContext#fatal_error for (self: ToolContext, nullable Location, String) */
1647 void nit___nit__ToolContext___fatal_error(val* self, val* p0, val* p1) {
1648 val* var_l /* var l: nullable Location */;
1649 val* var_s /* var s: String */;
1650 short int var /* : Bool */;
1651 var_l = p0;
1652 var_s = p1;
1653 {
1654 nit___nit__ToolContext___error(self, var_l, var_s); /* Direct call toolcontext#ToolContext#error on <self:ToolContext>*/
1655 }
1656 {
1657 var = nit___nit__ToolContext___check_errors(self);
1658 }
1659 RET_LABEL:;
1660 }
1661 /* method toolcontext#ToolContext#warning for (self: ToolContext, nullable Location, String, String) */
1662 void nit___nit__ToolContext___warning(val* self, val* p0, val* p1, val* p2) {
1663 val* var_l /* var l: nullable Location */;
1664 val* var_tag /* var tag: String */;
1665 val* var_text /* var text: String */;
1666 val* var /* : OptionArray */;
1667 val* var2 /* : OptionArray */;
1668 val* var3 /* : nullable Object */;
1669 val* var5 /* : nullable Object */;
1670 static val* varonce;
1671 val* var6 /* : String */;
1672 char* var7 /* : NativeString */;
1673 long var8 /* : Int */;
1674 val* var9 /* : FlatString */;
1675 val* var10 /* : Array[Object] */;
1676 long var11 /* : Int */;
1677 val* var12 /* : NativeArray[Object] */;
1678 val* var13 /* : String */;
1679 short int var14 /* : Bool */;
1680 short int var15 /* : Bool */;
1681 val* var16 /* : OptionArray */;
1682 val* var18 /* : OptionArray */;
1683 val* var19 /* : nullable Object */;
1684 val* var21 /* : nullable Object */;
1685 short int var22 /* : Bool */;
1686 short int var23 /* : Bool */;
1687 short int var_ /* var : Bool */;
1688 val* var24 /* : OptionCount */;
1689 val* var26 /* : OptionCount */;
1690 val* var27 /* : nullable Object */;
1691 val* var29 /* : nullable Object */;
1692 long var30 /* : Int */;
1693 short int var31 /* : Bool */;
1694 short int var33 /* : Bool */;
1695 long var34 /* : Int */;
1696 short int var35 /* : Bool */;
1697 val* var36 /* : Array[Message] */;
1698 val* var38 /* : Array[Message] */;
1699 val* var39 /* : Message */;
1700 long var40 /* : Int */;
1701 long var42 /* : Int */;
1702 long var43 /* : Int */;
1703 long var44 /* : Int */;
1704 short int var46 /* : Bool */;
1705 int cltype;
1706 int idtype;
1707 const char* var_class_name;
1708 long var47 /* : Int */;
1709 val* var49 /* : OptionBool */;
1710 val* var51 /* : OptionBool */;
1711 val* var52 /* : nullable Object */;
1712 val* var54 /* : nullable Object */;
1713 short int var55 /* : Bool */;
1714 short int var56 /* : Bool */;
1715 var_l = p0;
1716 var_tag = p1;
1717 var_text = p2;
1718 {
1719 { /* Inline toolcontext#ToolContext#opt_warning (self) on <self:ToolContext> */
1720 var2 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_warning].val; /* _opt_warning on <self:ToolContext> */
1721 if (unlikely(var2 == NULL)) {
1722 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warning");
1723 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 276);
1724 show_backtrace(1);
1725 }
1726 var = var2;
1727 RET_LABEL1:(void)0;
1728 }
1729 }
1730 {
1731 { /* Inline opts#Option#value (var) on <var:OptionArray> */
1732 var5 = var->attrs[COLOR_opts__Option___value].val; /* _value on <var:OptionArray> */
1733 var3 = var5;
1734 RET_LABEL4:(void)0;
1735 }
1736 }
1737 if (varonce) {
1738 var6 = varonce;
1739 } else {
1740 var7 = "no-";
1741 var8 = 3;
1742 var9 = standard___standard__NativeString___to_s_with_length(var7, var8);
1743 var6 = var9;
1744 varonce = var6;
1745 }
1746 var10 = NEW_standard__Array(&type_standard__Array__standard__Object);
1747 { /* var10 = array_instance Array[Object] */
1748 var11 = 2;
1749 var12 = NEW_standard__NativeArray(var11, &type_standard__NativeArray__standard__Object);
1750 ((struct instance_standard__NativeArray*)var12)->values[0] = (val*) var6;
1751 ((struct instance_standard__NativeArray*)var12)->values[1] = (val*) var_tag;
1752 {
1753 ((void (*)(val* self, val* p0, long p1))(var10->class->vft[COLOR_standard__array__Array__with_native]))(var10, var12, var11) /* with_native on <var10:Array[Object]>*/;
1754 }
1755 }
1756 {
1757 var13 = ((val* (*)(val* self))(var10->class->vft[COLOR_standard__string__Object__to_s]))(var10) /* to_s on <var10:Array[Object]>*/;
1758 }
1759 {
1760 var14 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__has(var3, var13);
1761 }
1762 if (var14){
1763 goto RET_LABEL;
1764 } else {
1765 }
1766 {
1767 { /* Inline toolcontext#ToolContext#opt_warning (self) on <self:ToolContext> */
1768 var18 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_warning].val; /* _opt_warning on <self:ToolContext> */
1769 if (unlikely(var18 == NULL)) {
1770 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warning");
1771 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 276);
1772 show_backtrace(1);
1773 }
1774 var16 = var18;
1775 RET_LABEL17:(void)0;
1776 }
1777 }
1778 {
1779 { /* Inline opts#Option#value (var16) on <var16:OptionArray> */
1780 var21 = var16->attrs[COLOR_opts__Option___value].val; /* _value on <var16:OptionArray> */
1781 var19 = var21;
1782 RET_LABEL20:(void)0;
1783 }
1784 }
1785 {
1786 var22 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__has(var19, var_tag);
1787 }
1788 var23 = !var22;
1789 var_ = var23;
1790 if (var23){
1791 {
1792 { /* Inline toolcontext#ToolContext#opt_warn (self) on <self:ToolContext> */
1793 var26 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
1794 if (unlikely(var26 == NULL)) {
1795 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
1796 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 273);
1797 show_backtrace(1);
1798 }
1799 var24 = var26;
1800 RET_LABEL25:(void)0;
1801 }
1802 }
1803 {
1804 { /* Inline opts#Option#value (var24) on <var24:OptionCount> */
1805 var29 = var24->attrs[COLOR_opts__Option___value].val; /* _value on <var24:OptionCount> */
1806 var27 = var29;
1807 RET_LABEL28:(void)0;
1808 }
1809 }
1810 var30 = 0;
1811 {
1812 { /* Inline kernel#Int#== (var27,var30) on <var27:nullable Object(Int)> */
1813 var33 = (var27 != NULL) && (var27->class == &class_standard__Int);
1814 if (var33) {
1815 var34 = ((struct instance_standard__Int*)var27)->value; /* autounbox from nullable Object to Int */;
1816 var33 = (var34 == var30);
1817 }
1818 var31 = var33;
1819 goto RET_LABEL32;
1820 RET_LABEL32:(void)0;
1821 }
1822 }
1823 var15 = var31;
1824 } else {
1825 var15 = var_;
1826 }
1827 if (var15){
1828 goto RET_LABEL;
1829 } else {
1830 }
1831 {
1832 var35 = nit___nit__ToolContext___is_warning_blacklisted(self, var_l, var_tag);
1833 }
1834 if (var35){
1835 goto RET_LABEL;
1836 } else {
1837 }
1838 {
1839 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
1840 var38 = self->attrs[COLOR_nit__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
1841 if (unlikely(var38 == NULL)) {
1842 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
1843 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 105);
1844 show_backtrace(1);
1845 }
1846 var36 = var38;
1847 RET_LABEL37:(void)0;
1848 }
1849 }
1850 var39 = NEW_nit__Message(&type_nit__Message);
1851 {
1852 ((void (*)(val* self, val* p0))(var39->class->vft[COLOR_nit__toolcontext__Message__location_61d]))(var39, var_l) /* location= on <var39:Message>*/;
1853 }
1854 {
1855 ((void (*)(val* self, val* p0))(var39->class->vft[COLOR_nit__toolcontext__Message__tag_61d]))(var39, var_tag) /* tag= on <var39:Message>*/;
1856 }
1857 {
1858 ((void (*)(val* self, val* p0))(var39->class->vft[COLOR_nit__toolcontext__Message__text_61d]))(var39, var_text) /* text= on <var39:Message>*/;
1859 }
1860 {
1861 ((void (*)(val* self))(var39->class->vft[COLOR_standard__kernel__Object__init]))(var39) /* init on <var39:Message>*/;
1862 }
1863 {
1864 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var36, var39); /* Direct call array#Array#add on <var36:Array[Message]>*/
1865 }
1866 {
1867 { /* Inline toolcontext#ToolContext#warning_count (self) on <self:ToolContext> */
1868 var42 = self->attrs[COLOR_nit__toolcontext__ToolContext___warning_count].l; /* _warning_count on <self:ToolContext> */
1869 var40 = var42;
1870 RET_LABEL41:(void)0;
1871 }
1872 }
1873 var43 = 1;
1874 {
1875 { /* Inline kernel#Int#+ (var40,var43) on <var40:Int> */
1876 /* Covariant cast for argument 0 (i) <var43:Int> isa OTHER */
1877 /* <var43:Int> isa OTHER */
1878 var46 = 1; /* easy <var43:Int> isa OTHER*/
1879 if (unlikely(!var46)) {
1880 var_class_name = type_standard__Int.name;
1881 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1882 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
1883 show_backtrace(1);
1884 }
1885 var47 = var40 + var43;
1886 var44 = var47;
1887 goto RET_LABEL45;
1888 RET_LABEL45:(void)0;
1889 }
1890 }
1891 {
1892 { /* Inline toolcontext#ToolContext#warning_count= (self,var44) on <self:ToolContext> */
1893 self->attrs[COLOR_nit__toolcontext__ToolContext___warning_count].l = var44; /* _warning_count on <self:ToolContext> */
1894 RET_LABEL48:(void)0;
1895 }
1896 }
1897 {
1898 { /* Inline toolcontext#ToolContext#opt_stop_on_first_error (self) on <self:ToolContext> */
1899 var51 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:ToolContext> */
1900 if (unlikely(var51 == NULL)) {
1901 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
1902 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 303);
1903 show_backtrace(1);
1904 }
1905 var49 = var51;
1906 RET_LABEL50:(void)0;
1907 }
1908 }
1909 {
1910 { /* Inline opts#Option#value (var49) on <var49:OptionBool> */
1911 var54 = var49->attrs[COLOR_opts__Option___value].val; /* _value on <var49:OptionBool> */
1912 var52 = var54;
1913 RET_LABEL53:(void)0;
1914 }
1915 }
1916 var55 = ((struct instance_standard__Bool*)var52)->value; /* autounbox from nullable Object to Bool */;
1917 if (var55){
1918 {
1919 var56 = nit___nit__ToolContext___check_errors(self);
1920 }
1921 } else {
1922 }
1923 RET_LABEL:;
1924 }
1925 /* method toolcontext#ToolContext#advice for (self: ToolContext, nullable Location, String, String) */
1926 void nit___nit__ToolContext___advice(val* self, val* p0, val* p1, val* p2) {
1927 val* var_l /* var l: nullable Location */;
1928 val* var_tag /* var tag: String */;
1929 val* var_text /* var text: String */;
1930 val* var /* : OptionArray */;
1931 val* var2 /* : OptionArray */;
1932 val* var3 /* : nullable Object */;
1933 val* var5 /* : nullable Object */;
1934 static val* varonce;
1935 val* var6 /* : String */;
1936 char* var7 /* : NativeString */;
1937 long var8 /* : Int */;
1938 val* var9 /* : FlatString */;
1939 val* var10 /* : Array[Object] */;
1940 long var11 /* : Int */;
1941 val* var12 /* : NativeArray[Object] */;
1942 val* var13 /* : String */;
1943 short int var14 /* : Bool */;
1944 short int var15 /* : Bool */;
1945 val* var16 /* : OptionArray */;
1946 val* var18 /* : OptionArray */;
1947 val* var19 /* : nullable Object */;
1948 val* var21 /* : nullable Object */;
1949 short int var22 /* : Bool */;
1950 short int var23 /* : Bool */;
1951 short int var_ /* var : Bool */;
1952 val* var24 /* : OptionCount */;
1953 val* var26 /* : OptionCount */;
1954 val* var27 /* : nullable Object */;
1955 val* var29 /* : nullable Object */;
1956 long var30 /* : Int */;
1957 short int var31 /* : Bool */;
1958 short int var33 /* : Bool */;
1959 int cltype;
1960 int idtype;
1961 const char* var_class_name;
1962 long var34 /* : Int */;
1963 short int var35 /* : Bool */;
1964 short int var36 /* : Bool */;
1965 val* var37 /* : Array[Message] */;
1966 val* var39 /* : Array[Message] */;
1967 val* var40 /* : Message */;
1968 long var41 /* : Int */;
1969 long var43 /* : Int */;
1970 long var44 /* : Int */;
1971 long var45 /* : Int */;
1972 short int var47 /* : Bool */;
1973 int cltype48;
1974 int idtype49;
1975 const char* var_class_name50;
1976 long var51 /* : Int */;
1977 val* var53 /* : OptionBool */;
1978 val* var55 /* : OptionBool */;
1979 val* var56 /* : nullable Object */;
1980 val* var58 /* : nullable Object */;
1981 short int var59 /* : Bool */;
1982 short int var60 /* : Bool */;
1983 var_l = p0;
1984 var_tag = p1;
1985 var_text = p2;
1986 {
1987 { /* Inline toolcontext#ToolContext#opt_warning (self) on <self:ToolContext> */
1988 var2 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_warning].val; /* _opt_warning on <self:ToolContext> */
1989 if (unlikely(var2 == NULL)) {
1990 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warning");
1991 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 276);
1992 show_backtrace(1);
1993 }
1994 var = var2;
1995 RET_LABEL1:(void)0;
1996 }
1997 }
1998 {
1999 { /* Inline opts#Option#value (var) on <var:OptionArray> */
2000 var5 = var->attrs[COLOR_opts__Option___value].val; /* _value on <var:OptionArray> */
2001 var3 = var5;
2002 RET_LABEL4:(void)0;
2003 }
2004 }
2005 if (varonce) {
2006 var6 = varonce;
2007 } else {
2008 var7 = "no-";
2009 var8 = 3;
2010 var9 = standard___standard__NativeString___to_s_with_length(var7, var8);
2011 var6 = var9;
2012 varonce = var6;
2013 }
2014 var10 = NEW_standard__Array(&type_standard__Array__standard__Object);
2015 { /* var10 = array_instance Array[Object] */
2016 var11 = 2;
2017 var12 = NEW_standard__NativeArray(var11, &type_standard__NativeArray__standard__Object);
2018 ((struct instance_standard__NativeArray*)var12)->values[0] = (val*) var6;
2019 ((struct instance_standard__NativeArray*)var12)->values[1] = (val*) var_tag;
2020 {
2021 ((void (*)(val* self, val* p0, long p1))(var10->class->vft[COLOR_standard__array__Array__with_native]))(var10, var12, var11) /* with_native on <var10:Array[Object]>*/;
2022 }
2023 }
2024 {
2025 var13 = ((val* (*)(val* self))(var10->class->vft[COLOR_standard__string__Object__to_s]))(var10) /* to_s on <var10:Array[Object]>*/;
2026 }
2027 {
2028 var14 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__has(var3, var13);
2029 }
2030 if (var14){
2031 goto RET_LABEL;
2032 } else {
2033 }
2034 {
2035 { /* Inline toolcontext#ToolContext#opt_warning (self) on <self:ToolContext> */
2036 var18 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_warning].val; /* _opt_warning on <self:ToolContext> */
2037 if (unlikely(var18 == NULL)) {
2038 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warning");
2039 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 276);
2040 show_backtrace(1);
2041 }
2042 var16 = var18;
2043 RET_LABEL17:(void)0;
2044 }
2045 }
2046 {
2047 { /* Inline opts#Option#value (var16) on <var16:OptionArray> */
2048 var21 = var16->attrs[COLOR_opts__Option___value].val; /* _value on <var16:OptionArray> */
2049 var19 = var21;
2050 RET_LABEL20:(void)0;
2051 }
2052 }
2053 {
2054 var22 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__has(var19, var_tag);
2055 }
2056 var23 = !var22;
2057 var_ = var23;
2058 if (var23){
2059 {
2060 { /* Inline toolcontext#ToolContext#opt_warn (self) on <self:ToolContext> */
2061 var26 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
2062 if (unlikely(var26 == NULL)) {
2063 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
2064 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 273);
2065 show_backtrace(1);
2066 }
2067 var24 = var26;
2068 RET_LABEL25:(void)0;
2069 }
2070 }
2071 {
2072 { /* Inline opts#Option#value (var24) on <var24:OptionCount> */
2073 var29 = var24->attrs[COLOR_opts__Option___value].val; /* _value on <var24:OptionCount> */
2074 var27 = var29;
2075 RET_LABEL28:(void)0;
2076 }
2077 }
2078 var30 = 1;
2079 {
2080 { /* Inline kernel#Int#<= (var27,var30) on <var27:nullable Object(Int)> */
2081 /* Covariant cast for argument 0 (i) <var30:Int> isa OTHER */
2082 /* <var30:Int> isa OTHER */
2083 var33 = 1; /* easy <var30:Int> isa OTHER*/
2084 if (unlikely(!var33)) {
2085 var_class_name = type_standard__Int.name;
2086 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2087 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409);
2088 show_backtrace(1);
2089 }
2090 var34 = ((struct instance_standard__Int*)var27)->value; /* autounbox from nullable Object to Int */;
2091 var35 = var34 <= var30;
2092 var31 = var35;
2093 goto RET_LABEL32;
2094 RET_LABEL32:(void)0;
2095 }
2096 }
2097 var15 = var31;
2098 } else {
2099 var15 = var_;
2100 }
2101 if (var15){
2102 goto RET_LABEL;
2103 } else {
2104 }
2105 {
2106 var36 = nit___nit__ToolContext___is_warning_blacklisted(self, var_l, var_tag);
2107 }
2108 if (var36){
2109 goto RET_LABEL;
2110 } else {
2111 }
2112 {
2113 { /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
2114 var39 = self->attrs[COLOR_nit__toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
2115 if (unlikely(var39 == NULL)) {
2116 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
2117 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 105);
2118 show_backtrace(1);
2119 }
2120 var37 = var39;
2121 RET_LABEL38:(void)0;
2122 }
2123 }
2124 var40 = NEW_nit__Message(&type_nit__Message);
2125 {
2126 ((void (*)(val* self, val* p0))(var40->class->vft[COLOR_nit__toolcontext__Message__location_61d]))(var40, var_l) /* location= on <var40:Message>*/;
2127 }
2128 {
2129 ((void (*)(val* self, val* p0))(var40->class->vft[COLOR_nit__toolcontext__Message__tag_61d]))(var40, var_tag) /* tag= on <var40:Message>*/;
2130 }
2131 {
2132 ((void (*)(val* self, val* p0))(var40->class->vft[COLOR_nit__toolcontext__Message__text_61d]))(var40, var_text) /* text= on <var40:Message>*/;
2133 }
2134 {
2135 ((void (*)(val* self))(var40->class->vft[COLOR_standard__kernel__Object__init]))(var40) /* init on <var40:Message>*/;
2136 }
2137 {
2138 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var37, var40); /* Direct call array#Array#add on <var37:Array[Message]>*/
2139 }
2140 {
2141 { /* Inline toolcontext#ToolContext#warning_count (self) on <self:ToolContext> */
2142 var43 = self->attrs[COLOR_nit__toolcontext__ToolContext___warning_count].l; /* _warning_count on <self:ToolContext> */
2143 var41 = var43;
2144 RET_LABEL42:(void)0;
2145 }
2146 }
2147 var44 = 1;
2148 {
2149 { /* Inline kernel#Int#+ (var41,var44) on <var41:Int> */
2150 /* Covariant cast for argument 0 (i) <var44:Int> isa OTHER */
2151 /* <var44:Int> isa OTHER */
2152 var47 = 1; /* easy <var44:Int> isa OTHER*/
2153 if (unlikely(!var47)) {
2154 var_class_name50 = type_standard__Int.name;
2155 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name50);
2156 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
2157 show_backtrace(1);
2158 }
2159 var51 = var41 + var44;
2160 var45 = var51;
2161 goto RET_LABEL46;
2162 RET_LABEL46:(void)0;
2163 }
2164 }
2165 {
2166 { /* Inline toolcontext#ToolContext#warning_count= (self,var45) on <self:ToolContext> */
2167 self->attrs[COLOR_nit__toolcontext__ToolContext___warning_count].l = var45; /* _warning_count on <self:ToolContext> */
2168 RET_LABEL52:(void)0;
2169 }
2170 }
2171 {
2172 { /* Inline toolcontext#ToolContext#opt_stop_on_first_error (self) on <self:ToolContext> */
2173 var55 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:ToolContext> */
2174 if (unlikely(var55 == NULL)) {
2175 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
2176 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 303);
2177 show_backtrace(1);
2178 }
2179 var53 = var55;
2180 RET_LABEL54:(void)0;
2181 }
2182 }
2183 {
2184 { /* Inline opts#Option#value (var53) on <var53:OptionBool> */
2185 var58 = var53->attrs[COLOR_opts__Option___value].val; /* _value on <var53:OptionBool> */
2186 var56 = var58;
2187 RET_LABEL57:(void)0;
2188 }
2189 }
2190 var59 = ((struct instance_standard__Bool*)var56)->value; /* autounbox from nullable Object to Bool */;
2191 if (var59){
2192 {
2193 var60 = nit___nit__ToolContext___check_errors(self);
2194 }
2195 } else {
2196 }
2197 RET_LABEL:;
2198 }
2199 /* method toolcontext#ToolContext#info for (self: ToolContext, String, Int) */
2200 void nit___nit__ToolContext___info(val* self, val* p0, long p1) {
2201 val* var_s /* var s: String */;
2202 long var_level /* var level: Int */;
2203 long var /* : Int */;
2204 long var2 /* : Int */;
2205 short int var3 /* : Bool */;
2206 short int var5 /* : Bool */;
2207 int cltype;
2208 int idtype;
2209 const char* var_class_name;
2210 short int var6 /* : Bool */;
2211 val* var7 /* : Array[Object] */;
2212 long var8 /* : Int */;
2213 val* var9 /* : NativeArray[Object] */;
2214 val* var10 /* : String */;
2215 var_s = p0;
2216 var_level = p1;
2217 {
2218 { /* Inline toolcontext#ToolContext#verbose_level (self) on <self:ToolContext> */
2219 var2 = self->attrs[COLOR_nit__toolcontext__ToolContext___verbose_level].l; /* _verbose_level on <self:ToolContext> */
2220 var = var2;
2221 RET_LABEL1:(void)0;
2222 }
2223 }
2224 {
2225 { /* Inline kernel#Int#<= (var_level,var) on <var_level:Int> */
2226 /* Covariant cast for argument 0 (i) <var:Int> isa OTHER */
2227 /* <var:Int> isa OTHER */
2228 var5 = 1; /* easy <var:Int> isa OTHER*/
2229 if (unlikely(!var5)) {
2230 var_class_name = type_standard__Int.name;
2231 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2232 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409);
2233 show_backtrace(1);
2234 }
2235 var6 = var_level <= var;
2236 var3 = var6;
2237 goto RET_LABEL4;
2238 RET_LABEL4:(void)0;
2239 }
2240 }
2241 if (var3){
2242 var7 = NEW_standard__Array(&type_standard__Array__standard__Object);
2243 { /* var7 = array_instance Array[Object] */
2244 var8 = 1;
2245 var9 = NEW_standard__NativeArray(var8, &type_standard__NativeArray__standard__Object);
2246 ((struct instance_standard__NativeArray*)var9)->values[0] = (val*) var_s;
2247 {
2248 ((void (*)(val* self, val* p0, long p1))(var7->class->vft[COLOR_standard__array__Array__with_native]))(var7, var9, var8) /* with_native on <var7:Array[Object]>*/;
2249 }
2250 }
2251 {
2252 var10 = ((val* (*)(val* self))(var7->class->vft[COLOR_standard__string__Object__to_s]))(var7) /* to_s on <var7:Array[Object]>*/;
2253 }
2254 {
2255 standard__file___Object___print(self, var10); /* Direct call file#Object#print on <self:ToolContext>*/
2256 }
2257 } else {
2258 }
2259 RET_LABEL:;
2260 }
2261 /* method toolcontext#ToolContext#option_context for (self: ToolContext): OptionContext */
2262 val* nit___nit__ToolContext___option_context(val* self) {
2263 val* var /* : OptionContext */;
2264 val* var1 /* : OptionContext */;
2265 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
2266 if (unlikely(var1 == NULL)) {
2267 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
2268 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 270);
2269 show_backtrace(1);
2270 }
2271 var = var1;
2272 RET_LABEL:;
2273 return var;
2274 }
2275 /* method toolcontext#ToolContext#opt_warn for (self: ToolContext): OptionCount */
2276 val* nit___nit__ToolContext___opt_warn(val* self) {
2277 val* var /* : OptionCount */;
2278 val* var1 /* : OptionCount */;
2279 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
2280 if (unlikely(var1 == NULL)) {
2281 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
2282 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 273);
2283 show_backtrace(1);
2284 }
2285 var = var1;
2286 RET_LABEL:;
2287 return var;
2288 }
2289 /* method toolcontext#ToolContext#opt_warning for (self: ToolContext): OptionArray */
2290 val* nit___nit__ToolContext___opt_warning(val* self) {
2291 val* var /* : OptionArray */;
2292 val* var1 /* : OptionArray */;
2293 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_warning].val; /* _opt_warning on <self:ToolContext> */
2294 if (unlikely(var1 == NULL)) {
2295 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warning");
2296 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 276);
2297 show_backtrace(1);
2298 }
2299 var = var1;
2300 RET_LABEL:;
2301 return var;
2302 }
2303 /* method toolcontext#ToolContext#opt_quiet for (self: ToolContext): OptionBool */
2304 val* nit___nit__ToolContext___opt_quiet(val* self) {
2305 val* var /* : OptionBool */;
2306 val* var1 /* : OptionBool */;
2307 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_quiet].val; /* _opt_quiet on <self:ToolContext> */
2308 if (unlikely(var1 == NULL)) {
2309 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_quiet");
2310 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 279);
2311 show_backtrace(1);
2312 }
2313 var = var1;
2314 RET_LABEL:;
2315 return var;
2316 }
2317 /* method toolcontext#ToolContext#opt_log for (self: ToolContext): OptionBool */
2318 val* nit___nit__ToolContext___opt_log(val* self) {
2319 val* var /* : OptionBool */;
2320 val* var1 /* : OptionBool */;
2321 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_log].val; /* _opt_log on <self:ToolContext> */
2322 if (unlikely(var1 == NULL)) {
2323 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log");
2324 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 282);
2325 show_backtrace(1);
2326 }
2327 var = var1;
2328 RET_LABEL:;
2329 return var;
2330 }
2331 /* method toolcontext#ToolContext#opt_log_dir for (self: ToolContext): OptionString */
2332 val* nit___nit__ToolContext___opt_log_dir(val* self) {
2333 val* var /* : OptionString */;
2334 val* var1 /* : OptionString */;
2335 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_log_dir].val; /* _opt_log_dir on <self:ToolContext> */
2336 if (unlikely(var1 == NULL)) {
2337 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log_dir");
2338 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 285);
2339 show_backtrace(1);
2340 }
2341 var = var1;
2342 RET_LABEL:;
2343 return var;
2344 }
2345 /* method toolcontext#ToolContext#opt_nit_dir for (self: ToolContext): OptionString */
2346 val* nit___nit__ToolContext___opt_nit_dir(val* self) {
2347 val* var /* : OptionString */;
2348 val* var1 /* : OptionString */;
2349 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_nit_dir].val; /* _opt_nit_dir on <self:ToolContext> */
2350 if (unlikely(var1 == NULL)) {
2351 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_nit_dir");
2352 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 288);
2353 show_backtrace(1);
2354 }
2355 var = var1;
2356 RET_LABEL:;
2357 return var;
2358 }
2359 /* method toolcontext#ToolContext#opt_help for (self: ToolContext): OptionBool */
2360 val* nit___nit__ToolContext___opt_help(val* self) {
2361 val* var /* : OptionBool */;
2362 val* var1 /* : OptionBool */;
2363 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_help].val; /* _opt_help on <self:ToolContext> */
2364 if (unlikely(var1 == NULL)) {
2365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_help");
2366 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 291);
2367 show_backtrace(1);
2368 }
2369 var = var1;
2370 RET_LABEL:;
2371 return var;
2372 }
2373 /* method toolcontext#ToolContext#opt_version for (self: ToolContext): OptionBool */
2374 val* nit___nit__ToolContext___opt_version(val* self) {
2375 val* var /* : OptionBool */;
2376 val* var1 /* : OptionBool */;
2377 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_version].val; /* _opt_version on <self:ToolContext> */
2378 if (unlikely(var1 == NULL)) {
2379 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_version");
2380 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 294);
2381 show_backtrace(1);
2382 }
2383 var = var1;
2384 RET_LABEL:;
2385 return var;
2386 }
2387 /* method toolcontext#ToolContext#opt_set_dummy_tool for (self: ToolContext): OptionBool */
2388 val* nit___nit__ToolContext___opt_set_dummy_tool(val* self) {
2389 val* var /* : OptionBool */;
2390 val* var1 /* : OptionBool */;
2391 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_set_dummy_tool].val; /* _opt_set_dummy_tool on <self:ToolContext> */
2392 if (unlikely(var1 == NULL)) {
2393 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_set_dummy_tool");
2394 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 297);
2395 show_backtrace(1);
2396 }
2397 var = var1;
2398 RET_LABEL:;
2399 return var;
2400 }
2401 /* method toolcontext#ToolContext#opt_verbose for (self: ToolContext): OptionCount */
2402 val* nit___nit__ToolContext___opt_verbose(val* self) {
2403 val* var /* : OptionCount */;
2404 val* var1 /* : OptionCount */;
2405 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_verbose].val; /* _opt_verbose on <self:ToolContext> */
2406 if (unlikely(var1 == NULL)) {
2407 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_verbose");
2408 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 300);
2409 show_backtrace(1);
2410 }
2411 var = var1;
2412 RET_LABEL:;
2413 return var;
2414 }
2415 /* method toolcontext#ToolContext#opt_stop_on_first_error for (self: ToolContext): OptionBool */
2416 val* nit___nit__ToolContext___opt_stop_on_first_error(val* self) {
2417 val* var /* : OptionBool */;
2418 val* var1 /* : OptionBool */;
2419 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:ToolContext> */
2420 if (unlikely(var1 == NULL)) {
2421 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
2422 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 303);
2423 show_backtrace(1);
2424 }
2425 var = var1;
2426 RET_LABEL:;
2427 return var;
2428 }
2429 /* method toolcontext#ToolContext#opt_no_color for (self: ToolContext): OptionBool */
2430 val* nit___nit__ToolContext___opt_no_color(val* self) {
2431 val* var /* : OptionBool */;
2432 val* var1 /* : OptionBool */;
2433 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_no_color].val; /* _opt_no_color on <self:ToolContext> */
2434 if (unlikely(var1 == NULL)) {
2435 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_color");
2436 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 306);
2437 show_backtrace(1);
2438 }
2439 var = var1;
2440 RET_LABEL:;
2441 return var;
2442 }
2443 /* method toolcontext#ToolContext#opt_bash_completion for (self: ToolContext): OptionBool */
2444 val* nit___nit__ToolContext___opt_bash_completion(val* self) {
2445 val* var /* : OptionBool */;
2446 val* var1 /* : OptionBool */;
2447 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_bash_completion].val; /* _opt_bash_completion on <self:ToolContext> */
2448 if (unlikely(var1 == NULL)) {
2449 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_bash_completion");
2450 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 309);
2451 show_backtrace(1);
2452 }
2453 var = var1;
2454 RET_LABEL:;
2455 return var;
2456 }
2457 /* method toolcontext#ToolContext#opt_stub_man for (self: ToolContext): OptionBool */
2458 val* nit___nit__ToolContext___opt_stub_man(val* self) {
2459 val* var /* : OptionBool */;
2460 val* var1 /* : OptionBool */;
2461 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_stub_man].val; /* _opt_stub_man on <self:ToolContext> */
2462 if (unlikely(var1 == NULL)) {
2463 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stub_man");
2464 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 312);
2465 show_backtrace(1);
2466 }
2467 var = var1;
2468 RET_LABEL:;
2469 return var;
2470 }
2471 /* method toolcontext#ToolContext#verbose_level for (self: ToolContext): Int */
2472 long nit___nit__ToolContext___verbose_level(val* self) {
2473 long var /* : Int */;
2474 long var1 /* : Int */;
2475 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___verbose_level].l; /* _verbose_level on <self:ToolContext> */
2476 var = var1;
2477 RET_LABEL:;
2478 return var;
2479 }
2480 /* method toolcontext#ToolContext#verbose_level= for (self: ToolContext, Int) */
2481 void nit___nit__ToolContext___verbose_level_61d(val* self, long p0) {
2482 self->attrs[COLOR_nit__toolcontext__ToolContext___verbose_level].l = p0; /* _verbose_level on <self:ToolContext> */
2483 RET_LABEL:;
2484 }
2485 /* method toolcontext#ToolContext#init for (self: ToolContext) */
2486 void nit___nit__ToolContext___standard__kernel__Object__init(val* self) {
2487 val* var /* : OptionContext */;
2488 val* var2 /* : OptionContext */;
2489 val* var3 /* : OptionCount */;
2490 val* var5 /* : OptionCount */;
2491 val* var6 /* : OptionArray */;
2492 val* var8 /* : OptionArray */;
2493 val* var9 /* : OptionBool */;
2494 val* var11 /* : OptionBool */;
2495 val* var12 /* : OptionBool */;
2496 val* var14 /* : OptionBool */;
2497 val* var15 /* : OptionBool */;
2498 val* var17 /* : OptionBool */;
2499 val* var18 /* : OptionBool */;
2500 val* var20 /* : OptionBool */;
2501 val* var21 /* : OptionString */;
2502 val* var23 /* : OptionString */;
2503 val* var24 /* : OptionString */;
2504 val* var26 /* : OptionString */;
2505 val* var27 /* : OptionBool */;
2506 val* var29 /* : OptionBool */;
2507 val* var30 /* : OptionBool */;
2508 val* var32 /* : OptionBool */;
2509 val* var33 /* : OptionBool */;
2510 val* var35 /* : OptionBool */;
2511 val* var36 /* : OptionCount */;
2512 val* var38 /* : OptionCount */;
2513 val* var39 /* : OptionBool */;
2514 val* var41 /* : OptionBool */;
2515 val* var42 /* : OptionBool */;
2516 val* var44 /* : OptionBool */;
2517 val* var45 /* : Array[Option] */;
2518 long var46 /* : Int */;
2519 val* var47 /* : NativeArray[Option] */;
2520 val* var48 /* : OptionBool */;
2521 val* var50 /* : OptionBool */;
2522 short int var51 /* : Bool */;
2523 val* var53 /* : OptionBool */;
2524 val* var55 /* : OptionBool */;
2525 short int var56 /* : Bool */;
2526 val* var58 /* : OptionBool */;
2527 val* var60 /* : OptionBool */;
2528 short int var61 /* : Bool */;
2529 {
2530 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
2531 var2 = self->attrs[COLOR_nit__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
2532 if (unlikely(var2 == NULL)) {
2533 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
2534 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 270);
2535 show_backtrace(1);
2536 }
2537 var = var2;
2538 RET_LABEL1:(void)0;
2539 }
2540 }
2541 {
2542 { /* Inline toolcontext#ToolContext#opt_warn (self) on <self:ToolContext> */
2543 var5 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
2544 if (unlikely(var5 == NULL)) {
2545 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
2546 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 273);
2547 show_backtrace(1);
2548 }
2549 var3 = var5;
2550 RET_LABEL4:(void)0;
2551 }
2552 }
2553 {
2554 { /* Inline toolcontext#ToolContext#opt_warning (self) on <self:ToolContext> */
2555 var8 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_warning].val; /* _opt_warning on <self:ToolContext> */
2556 if (unlikely(var8 == NULL)) {
2557 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warning");
2558 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 276);
2559 show_backtrace(1);
2560 }
2561 var6 = var8;
2562 RET_LABEL7:(void)0;
2563 }
2564 }
2565 {
2566 { /* Inline toolcontext#ToolContext#opt_quiet (self) on <self:ToolContext> */
2567 var11 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_quiet].val; /* _opt_quiet on <self:ToolContext> */
2568 if (unlikely(var11 == NULL)) {
2569 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_quiet");
2570 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 279);
2571 show_backtrace(1);
2572 }
2573 var9 = var11;
2574 RET_LABEL10:(void)0;
2575 }
2576 }
2577 {
2578 { /* Inline toolcontext#ToolContext#opt_stop_on_first_error (self) on <self:ToolContext> */
2579 var14 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:ToolContext> */
2580 if (unlikely(var14 == NULL)) {
2581 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
2582 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 303);
2583 show_backtrace(1);
2584 }
2585 var12 = var14;
2586 RET_LABEL13:(void)0;
2587 }
2588 }
2589 {
2590 { /* Inline toolcontext#ToolContext#opt_no_color (self) on <self:ToolContext> */
2591 var17 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_no_color].val; /* _opt_no_color on <self:ToolContext> */
2592 if (unlikely(var17 == NULL)) {
2593 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_color");
2594 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 306);
2595 show_backtrace(1);
2596 }
2597 var15 = var17;
2598 RET_LABEL16:(void)0;
2599 }
2600 }
2601 {
2602 { /* Inline toolcontext#ToolContext#opt_log (self) on <self:ToolContext> */
2603 var20 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_log].val; /* _opt_log on <self:ToolContext> */
2604 if (unlikely(var20 == NULL)) {
2605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log");
2606 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 282);
2607 show_backtrace(1);
2608 }
2609 var18 = var20;
2610 RET_LABEL19:(void)0;
2611 }
2612 }
2613 {
2614 { /* Inline toolcontext#ToolContext#opt_log_dir (self) on <self:ToolContext> */
2615 var23 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_log_dir].val; /* _opt_log_dir on <self:ToolContext> */
2616 if (unlikely(var23 == NULL)) {
2617 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log_dir");
2618 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 285);
2619 show_backtrace(1);
2620 }
2621 var21 = var23;
2622 RET_LABEL22:(void)0;
2623 }
2624 }
2625 {
2626 { /* Inline toolcontext#ToolContext#opt_nit_dir (self) on <self:ToolContext> */
2627 var26 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_nit_dir].val; /* _opt_nit_dir on <self:ToolContext> */
2628 if (unlikely(var26 == NULL)) {
2629 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_nit_dir");
2630 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 288);
2631 show_backtrace(1);
2632 }
2633 var24 = var26;
2634 RET_LABEL25:(void)0;
2635 }
2636 }
2637 {
2638 { /* Inline toolcontext#ToolContext#opt_help (self) on <self:ToolContext> */
2639 var29 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_help].val; /* _opt_help on <self:ToolContext> */
2640 if (unlikely(var29 == NULL)) {
2641 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_help");
2642 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 291);
2643 show_backtrace(1);
2644 }
2645 var27 = var29;
2646 RET_LABEL28:(void)0;
2647 }
2648 }
2649 {
2650 { /* Inline toolcontext#ToolContext#opt_version (self) on <self:ToolContext> */
2651 var32 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_version].val; /* _opt_version on <self:ToolContext> */
2652 if (unlikely(var32 == NULL)) {
2653 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_version");
2654 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 294);
2655 show_backtrace(1);
2656 }
2657 var30 = var32;
2658 RET_LABEL31:(void)0;
2659 }
2660 }
2661 {
2662 { /* Inline toolcontext#ToolContext#opt_set_dummy_tool (self) on <self:ToolContext> */
2663 var35 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_set_dummy_tool].val; /* _opt_set_dummy_tool on <self:ToolContext> */
2664 if (unlikely(var35 == NULL)) {
2665 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_set_dummy_tool");
2666 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 297);
2667 show_backtrace(1);
2668 }
2669 var33 = var35;
2670 RET_LABEL34:(void)0;
2671 }
2672 }
2673 {
2674 { /* Inline toolcontext#ToolContext#opt_verbose (self) on <self:ToolContext> */
2675 var38 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_verbose].val; /* _opt_verbose on <self:ToolContext> */
2676 if (unlikely(var38 == NULL)) {
2677 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_verbose");
2678 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 300);
2679 show_backtrace(1);
2680 }
2681 var36 = var38;
2682 RET_LABEL37:(void)0;
2683 }
2684 }
2685 {
2686 { /* Inline toolcontext#ToolContext#opt_bash_completion (self) on <self:ToolContext> */
2687 var41 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_bash_completion].val; /* _opt_bash_completion on <self:ToolContext> */
2688 if (unlikely(var41 == NULL)) {
2689 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_bash_completion");
2690 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 309);
2691 show_backtrace(1);
2692 }
2693 var39 = var41;
2694 RET_LABEL40:(void)0;
2695 }
2696 }
2697 {
2698 { /* Inline toolcontext#ToolContext#opt_stub_man (self) on <self:ToolContext> */
2699 var44 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_stub_man].val; /* _opt_stub_man on <self:ToolContext> */
2700 if (unlikely(var44 == NULL)) {
2701 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stub_man");
2702 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 312);
2703 show_backtrace(1);
2704 }
2705 var42 = var44;
2706 RET_LABEL43:(void)0;
2707 }
2708 }
2709 var45 = NEW_standard__Array(&type_standard__Array__opts__Option);
2710 { /* var45 = array_instance Array[Option] */
2711 var46 = 14;
2712 var47 = NEW_standard__NativeArray(var46, &type_standard__NativeArray__opts__Option);
2713 ((struct instance_standard__NativeArray*)var47)->values[0] = (val*) var3;
2714 ((struct instance_standard__NativeArray*)var47)->values[1] = (val*) var6;
2715 ((struct instance_standard__NativeArray*)var47)->values[2] = (val*) var9;
2716 ((struct instance_standard__NativeArray*)var47)->values[3] = (val*) var12;
2717 ((struct instance_standard__NativeArray*)var47)->values[4] = (val*) var15;
2718 ((struct instance_standard__NativeArray*)var47)->values[5] = (val*) var18;
2719 ((struct instance_standard__NativeArray*)var47)->values[6] = (val*) var21;
2720 ((struct instance_standard__NativeArray*)var47)->values[7] = (val*) var24;
2721 ((struct instance_standard__NativeArray*)var47)->values[8] = (val*) var27;
2722 ((struct instance_standard__NativeArray*)var47)->values[9] = (val*) var30;
2723 ((struct instance_standard__NativeArray*)var47)->values[10] = (val*) var33;
2724 ((struct instance_standard__NativeArray*)var47)->values[11] = (val*) var36;
2725 ((struct instance_standard__NativeArray*)var47)->values[12] = (val*) var39;
2726 ((struct instance_standard__NativeArray*)var47)->values[13] = (val*) var42;
2727 {
2728 ((void (*)(val* self, val* p0, long p1))(var45->class->vft[COLOR_standard__array__Array__with_native]))(var45, var47, var46) /* with_native on <var45:Array[Option]>*/;
2729 }
2730 }
2731 {
2732 opts___opts__OptionContext___add_option(var, var45); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
2733 }
2734 {
2735 { /* Inline toolcontext#ToolContext#opt_stub_man (self) on <self:ToolContext> */
2736 var50 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_stub_man].val; /* _opt_stub_man on <self:ToolContext> */
2737 if (unlikely(var50 == NULL)) {
2738 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stub_man");
2739 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 312);
2740 show_backtrace(1);
2741 }
2742 var48 = var50;
2743 RET_LABEL49:(void)0;
2744 }
2745 }
2746 var51 = 1;
2747 {
2748 { /* Inline opts#Option#hidden= (var48,var51) on <var48:OptionBool> */
2749 var48->attrs[COLOR_opts__Option___hidden].s = var51; /* _hidden on <var48:OptionBool> */
2750 RET_LABEL52:(void)0;
2751 }
2752 }
2753 {
2754 { /* Inline toolcontext#ToolContext#opt_bash_completion (self) on <self:ToolContext> */
2755 var55 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_bash_completion].val; /* _opt_bash_completion on <self:ToolContext> */
2756 if (unlikely(var55 == NULL)) {
2757 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_bash_completion");
2758 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 309);
2759 show_backtrace(1);
2760 }
2761 var53 = var55;
2762 RET_LABEL54:(void)0;
2763 }
2764 }
2765 var56 = 1;
2766 {
2767 { /* Inline opts#Option#hidden= (var53,var56) on <var53:OptionBool> */
2768 var53->attrs[COLOR_opts__Option___hidden].s = var56; /* _hidden on <var53:OptionBool> */
2769 RET_LABEL57:(void)0;
2770 }
2771 }
2772 {
2773 { /* Inline toolcontext#ToolContext#opt_set_dummy_tool (self) on <self:ToolContext> */
2774 var60 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_set_dummy_tool].val; /* _opt_set_dummy_tool on <self:ToolContext> */
2775 if (unlikely(var60 == NULL)) {
2776 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_set_dummy_tool");
2777 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 297);
2778 show_backtrace(1);
2779 }
2780 var58 = var60;
2781 RET_LABEL59:(void)0;
2782 }
2783 }
2784 var61 = 1;
2785 {
2786 { /* Inline opts#Option#hidden= (var58,var61) on <var58:OptionBool> */
2787 var58->attrs[COLOR_opts__Option___hidden].s = var61; /* _hidden on <var58:OptionBool> */
2788 RET_LABEL62:(void)0;
2789 }
2790 }
2791 RET_LABEL:;
2792 }
2793 /* method toolcontext#ToolContext#tooldescription for (self: ToolContext): String */
2794 val* nit___nit__ToolContext___tooldescription(val* self) {
2795 val* var /* : String */;
2796 val* var1 /* : String */;
2797 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:ToolContext> */
2798 if (unlikely(var1 == NULL)) {
2799 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
2800 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 328);
2801 show_backtrace(1);
2802 }
2803 var = var1;
2804 RET_LABEL:;
2805 return var;
2806 }
2807 /* method toolcontext#ToolContext#tooldescription= for (self: ToolContext, String) */
2808 void nit___nit__ToolContext___tooldescription_61d(val* self, val* p0) {
2809 self->attrs[COLOR_nit__toolcontext__ToolContext___tooldescription].val = p0; /* _tooldescription on <self:ToolContext> */
2810 RET_LABEL:;
2811 }
2812 /* method toolcontext#ToolContext#accept_no_arguments for (self: ToolContext): Bool */
2813 short int nit___nit__ToolContext___accept_no_arguments(val* self) {
2814 short int var /* : Bool */;
2815 short int var1 /* : Bool */;
2816 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___accept_no_arguments].s; /* _accept_no_arguments on <self:ToolContext> */
2817 var = var1;
2818 RET_LABEL:;
2819 return var;
2820 }
2821 /* method toolcontext#ToolContext#usage for (self: ToolContext) */
2822 void nit___nit__ToolContext___usage(val* self) {
2823 val* var /* : String */;
2824 val* var2 /* : String */;
2825 val* var3 /* : OptionContext */;
2826 val* var5 /* : OptionContext */;
2827 {
2828 { /* Inline toolcontext#ToolContext#tooldescription (self) on <self:ToolContext> */
2829 var2 = self->attrs[COLOR_nit__toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:ToolContext> */
2830 if (unlikely(var2 == NULL)) {
2831 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
2832 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 328);
2833 show_backtrace(1);
2834 }
2835 var = var2;
2836 RET_LABEL1:(void)0;
2837 }
2838 }
2839 {
2840 standard__file___Object___print(self, var); /* Direct call file#Object#print on <self:ToolContext>*/
2841 }
2842 {
2843 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
2844 var5 = self->attrs[COLOR_nit__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
2845 if (unlikely(var5 == NULL)) {
2846 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
2847 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 270);
2848 show_backtrace(1);
2849 }
2850 var3 = var5;
2851 RET_LABEL4:(void)0;
2852 }
2853 }
2854 {
2855 opts___opts__OptionContext___usage(var3); /* Direct call opts#OptionContext#usage on <var3:OptionContext>*/
2856 }
2857 RET_LABEL:;
2858 }
2859 /* method toolcontext#ToolContext#process_options for (self: ToolContext, Sequence[String]) */
2860 void nit___nit__ToolContext___process_options(val* self, val* p0) {
2861 val* var_args /* var args: Sequence[String] */;
2862 val* var /* : OptionCount */;
2863 val* var2 /* : OptionCount */;
2864 long var3 /* : Int */;
2865 short int var5 /* : Bool */;
2866 int cltype;
2867 int idtype;
2868 const struct type* type_struct;
2869 const char* var_class_name;
2870 val* var6 /* : nullable Object */;
2871 val* var7 /* : OptionContext */;
2872 val* var9 /* : OptionContext */;
2873 val* var10 /* : OptionBool */;
2874 val* var12 /* : OptionBool */;
2875 val* var13 /* : nullable Object */;
2876 val* var15 /* : nullable Object */;
2877 short int var16 /* : Bool */;
2878 long var17 /* : Int */;
2879 val* var19 /* : OptionBool */;
2880 val* var21 /* : OptionBool */;
2881 val* var22 /* : nullable Object */;
2882 val* var24 /* : nullable Object */;
2883 short int var25 /* : Bool */;
2884 val* var26 /* : String */;
2885 long var27 /* : Int */;
2886 val* var29 /* : OptionBool */;
2887 val* var31 /* : OptionBool */;
2888 val* var32 /* : nullable Object */;
2889 val* var34 /* : nullable Object */;
2890 short int var35 /* : Bool */;
2891 val* var36 /* : BashCompletion */;
2892 val* var_bash_completion /* var bash_completion: BashCompletion */;
2893 val* var37 /* : Sys */;
2894 val* var39 /* : Sys */;
2895 val* var40 /* : OStream */;
2896 val* var42 /* : OStream */;
2897 long var43 /* : Int */;
2898 val* var45 /* : OptionBool */;
2899 val* var47 /* : OptionBool */;
2900 val* var48 /* : nullable Object */;
2901 val* var50 /* : nullable Object */;
2902 short int var51 /* : Bool */;
2903 static val* varonce;
2904 val* var52 /* : String */;
2905 char* var53 /* : NativeString */;
2906 long var54 /* : Int */;
2907 val* var55 /* : FlatString */;
2908 val* var56 /* : String */;
2909 val* var57 /* : String */;
2910 static val* varonce58;
2911 val* var59 /* : String */;
2912 char* var60 /* : NativeString */;
2913 long var61 /* : Int */;
2914 val* var62 /* : FlatString */;
2915 val* var63 /* : String */;
2916 val* var65 /* : String */;
2917 static val* varonce66;
2918 val* var67 /* : String */;
2919 char* var68 /* : NativeString */;
2920 long var69 /* : Int */;
2921 val* var70 /* : FlatString */;
2922 val* var71 /* : Array[String] */;
2923 long var72 /* : Int */;
2924 val* var73 /* : nullable Object */;
2925 static val* varonce74;
2926 val* var75 /* : String */;
2927 char* var76 /* : NativeString */;
2928 long var77 /* : Int */;
2929 val* var78 /* : FlatString */;
2930 val* var79 /* : String */;
2931 static val* varonce80;
2932 val* var81 /* : String */;
2933 char* var82 /* : NativeString */;
2934 long var83 /* : Int */;
2935 val* var84 /* : FlatString */;
2936 val* var85 /* : Array[Object] */;
2937 long var86 /* : Int */;
2938 val* var87 /* : NativeArray[Object] */;
2939 val* var88 /* : String */;
2940 val* var89 /* : OptionContext */;
2941 val* var91 /* : OptionContext */;
2942 val* var92 /* : Array[Option] */;
2943 val* var94 /* : Array[Option] */;
2944 val* var_ /* var : Array[Option] */;
2945 val* var95 /* : ArrayIterator[nullable Object] */;
2946 val* var_96 /* var : ArrayIterator[Option] */;
2947 short int var97 /* : Bool */;
2948 val* var98 /* : nullable Object */;
2949 val* var_o /* var o: Option */;
2950 short int var99 /* : Bool */;
2951 short int var_first /* var first: Bool */;
2952 val* var100 /* : Array[String] */;
2953 val* var102 /* : Array[String] */;
2954 val* var_103 /* var : Array[String] */;
2955 val* var104 /* : ArrayIterator[nullable Object] */;
2956 val* var_105 /* var : ArrayIterator[String] */;
2957 short int var106 /* : Bool */;
2958 val* var107 /* : nullable Object */;
2959 val* var_n /* var n: String */;
2960 short int var108 /* : Bool */;
2961 static val* varonce109;
2962 val* var110 /* : String */;
2963 char* var111 /* : NativeString */;
2964 long var112 /* : Int */;
2965 val* var113 /* : FlatString */;
2966 val* var114 /* : Array[Object] */;
2967 long var115 /* : Int */;
2968 val* var116 /* : NativeArray[Object] */;
2969 static val* varonce117;
2970 val* var118 /* : String */;
2971 char* var119 /* : NativeString */;
2972 long var120 /* : Int */;
2973 val* var121 /* : FlatString */;
2974 static val* varonce122;
2975 val* var123 /* : String */;
2976 char* var124 /* : NativeString */;
2977 long var125 /* : Int */;
2978 val* var126 /* : FlatString */;
2979 val* var127 /* : Array[Object] */;
2980 long var128 /* : Int */;
2981 val* var129 /* : NativeArray[Object] */;
2982 val* var130 /* : String */;
2983 val* var131 /* : Array[Object] */;
2984 long var132 /* : Int */;
2985 val* var133 /* : NativeArray[Object] */;
2986 static val* varonce135;
2987 val* var136 /* : String */;
2988 char* var137 /* : NativeString */;
2989 long var138 /* : Int */;
2990 val* var139 /* : FlatString */;
2991 static val* varonce140;
2992 val* var141 /* : String */;
2993 char* var142 /* : NativeString */;
2994 long var143 /* : Int */;
2995 val* var144 /* : FlatString */;
2996 val* var145 /* : String */;
2997 val* var147 /* : String */;
2998 val* var148 /* : Array[Object] */;
2999 long var149 /* : Int */;
3000 val* var150 /* : NativeArray[Object] */;
3001 val* var151 /* : String */;
3002 static val* varonce152;
3003 val* var153 /* : String */;
3004 char* var154 /* : NativeString */;
3005 long var155 /* : Int */;
3006 val* var156 /* : FlatString */;
3007 static val* varonce159;
3008 val* var160 /* : String */;
3009 char* var161 /* : NativeString */;
3010 long var162 /* : Int */;
3011 val* var163 /* : FlatString */;
3012 long var164 /* : Int */;
3013 val* var166 /* : OptionContext */;
3014 val* var168 /* : OptionContext */;
3015 val* var169 /* : Array[String] */;
3016 val* var_errors /* var errors: Array[String] */;
3017 short int var170 /* : Bool */;
3018 short int var171 /* : Bool */;
3019 val* var_172 /* var : Array[String] */;
3020 val* var173 /* : ArrayIterator[nullable Object] */;
3021 val* var_174 /* var : ArrayIterator[String] */;
3022 short int var175 /* : Bool */;
3023 val* var176 /* : nullable Object */;
3024 val* var_e /* var e: String */;
3025 static val* varonce177;
3026 val* var178 /* : String */;
3027 char* var179 /* : NativeString */;
3028 long var180 /* : Int */;
3029 val* var181 /* : FlatString */;
3030 val* var182 /* : Array[Object] */;
3031 long var183 /* : Int */;
3032 val* var184 /* : NativeArray[Object] */;
3033 val* var185 /* : String */;
3034 val* var188 /* : String */;
3035 val* var190 /* : String */;
3036 static val* varonce191;
3037 val* var192 /* : String */;
3038 char* var193 /* : NativeString */;
3039 long var194 /* : Int */;
3040 val* var195 /* : FlatString */;
3041 long var196 /* : Int */;
3042 val* var198 /* : String */;
3043 short int var200 /* : Bool */;
3044 val* var201 /* : OptionContext */;
3045 val* var203 /* : OptionContext */;
3046 val* var204 /* : Array[String] */;
3047 val* var206 /* : Array[String] */;
3048 short int var207 /* : Bool */;
3049 short int var_208 /* var : Bool */;
3050 short int var209 /* : Bool */;
3051 short int var211 /* : Bool */;
3052 short int var212 /* : Bool */;
3053 val* var213 /* : String */;
3054 val* var215 /* : String */;
3055 static val* varonce216;
3056 val* var217 /* : String */;
3057 char* var218 /* : NativeString */;
3058 long var219 /* : Int */;
3059 val* var220 /* : FlatString */;
3060 long var221 /* : Int */;
3061 val* var223 /* : OptionCount */;
3062 val* var225 /* : OptionCount */;
3063 val* var226 /* : nullable Object */;
3064 val* var228 /* : nullable Object */;
3065 long var230 /* : Int */;
3066 val* var231 /* : OptionBool */;
3067 val* var233 /* : OptionBool */;
3068 val* var234 /* : nullable Object */;
3069 val* var236 /* : nullable Object */;
3070 short int var237 /* : Bool */;
3071 val* var238 /* : OptionCount */;
3072 val* var240 /* : OptionCount */;
3073 long var241 /* : Int */;
3074 short int var243 /* : Bool */;
3075 int cltype244;
3076 int idtype245;
3077 const struct type* type_struct246;
3078 const char* var_class_name247;
3079 val* var248 /* : nullable Object */;
3080 val* var249 /* : OptionString */;
3081 val* var251 /* : OptionString */;
3082 val* var252 /* : nullable Object */;
3083 val* var254 /* : nullable Object */;
3084 val* var255 /* : null */;
3085 short int var256 /* : Bool */;
3086 short int var257 /* : Bool */;
3087 val* var_other /* var other: nullable Object */;
3088 short int var259 /* : Bool */;
3089 short int var260 /* : Bool */;
3090 val* var261 /* : OptionString */;
3091 val* var263 /* : OptionString */;
3092 val* var264 /* : nullable Object */;
3093 val* var266 /* : nullable Object */;
3094 val* var268 /* : OptionBool */;
3095 val* var270 /* : OptionBool */;
3096 val* var271 /* : nullable Object */;
3097 val* var273 /* : nullable Object */;
3098 short int var274 /* : Bool */;
3099 val* var275 /* : String */;
3100 val* var277 /* : String */;
3101 var_args = p0;
3102 {
3103 { /* Inline toolcontext#ToolContext#opt_warn (self) on <self:ToolContext> */
3104 var2 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
3105 if (unlikely(var2 == NULL)) {
3106 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
3107 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 273);
3108 show_backtrace(1);
3109 }
3110 var = var2;
3111 RET_LABEL1:(void)0;
3112 }
3113 }
3114 var3 = 1;
3115 {
3116 { /* Inline opts#Option#value= (var,var3) on <var:OptionCount> */
3117 /* Covariant cast for argument 0 (value) <var3:Int> isa VALUE */
3118 /* <var3:Int> isa VALUE */
3119 type_struct = var->type->resolution_table->types[COLOR_opts__Option__VALUE];
3120 cltype = type_struct->color;
3121 idtype = type_struct->id;
3122 if(cltype >= (&type_standard__Int)->table_size) {
3123 var5 = 0;
3124 } else {
3125 var5 = (&type_standard__Int)->type_table[cltype] == idtype;
3126 }
3127 if (unlikely(!var5)) {
3128 var_class_name = type_standard__Int.name;
3129 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name);
3130 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 40);
3131 show_backtrace(1);
3132 }
3133 var6 = BOX_standard__Int(var3); /* autobox from Int to nullable Object */
3134 var->attrs[COLOR_opts__Option___value].val = var6; /* _value on <var:OptionCount> */
3135 RET_LABEL4:(void)0;
3136 }
3137 }
3138 {
3139 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
3140 var9 = self->attrs[COLOR_nit__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
3141 if (unlikely(var9 == NULL)) {
3142 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
3143 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 270);
3144 show_backtrace(1);
3145 }
3146 var7 = var9;
3147 RET_LABEL8:(void)0;
3148 }
3149 }
3150 {
3151 opts___opts__OptionContext___parse(var7, var_args); /* Direct call opts#OptionContext#parse on <var7:OptionContext>*/
3152 }
3153 {
3154 { /* Inline toolcontext#ToolContext#opt_help (self) on <self:ToolContext> */
3155 var12 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_help].val; /* _opt_help on <self:ToolContext> */
3156 if (unlikely(var12 == NULL)) {
3157 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_help");
3158 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 291);
3159 show_backtrace(1);
3160 }
3161 var10 = var12;
3162 RET_LABEL11:(void)0;
3163 }
3164 }
3165 {
3166 { /* Inline opts#Option#value (var10) on <var10:OptionBool> */
3167 var15 = var10->attrs[COLOR_opts__Option___value].val; /* _value on <var10:OptionBool> */
3168 var13 = var15;
3169 RET_LABEL14:(void)0;
3170 }
3171 }
3172 var16 = ((struct instance_standard__Bool*)var13)->value; /* autounbox from nullable Object to Bool */;
3173 if (var16){
3174 {
3175 nit___nit__ToolContext___usage(self); /* Direct call toolcontext#ToolContext#usage on <self:ToolContext>*/
3176 }
3177 var17 = 0;
3178 {
3179 { /* Inline kernel#Object#exit (self,var17) on <self:ToolContext> */
3180 exit(var17);
3181 RET_LABEL18:(void)0;
3182 }
3183 }
3184 } else {
3185 }
3186 {
3187 { /* Inline toolcontext#ToolContext#opt_version (self) on <self:ToolContext> */
3188 var21 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_version].val; /* _opt_version on <self:ToolContext> */
3189 if (unlikely(var21 == NULL)) {
3190 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_version");
3191 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 294);
3192 show_backtrace(1);
3193 }
3194 var19 = var21;
3195 RET_LABEL20:(void)0;
3196 }
3197 }
3198 {
3199 { /* Inline opts#Option#value (var19) on <var19:OptionBool> */
3200 var24 = var19->attrs[COLOR_opts__Option___value].val; /* _value on <var19:OptionBool> */
3201 var22 = var24;
3202 RET_LABEL23:(void)0;
3203 }
3204 }
3205 var25 = ((struct instance_standard__Bool*)var22)->value; /* autounbox from nullable Object to Bool */;
3206 if (var25){
3207 {
3208 var26 = nit___nit__ToolContext___version(self);
3209 }
3210 {
3211 standard__file___Object___print(self, var26); /* Direct call file#Object#print on <self:ToolContext>*/
3212 }
3213 var27 = 0;
3214 {
3215 { /* Inline kernel#Object#exit (self,var27) on <self:ToolContext> */
3216 exit(var27);
3217 RET_LABEL28:(void)0;
3218 }
3219 }
3220 } else {
3221 }
3222 {
3223 { /* Inline toolcontext#ToolContext#opt_bash_completion (self) on <self:ToolContext> */
3224 var31 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_bash_completion].val; /* _opt_bash_completion on <self:ToolContext> */
3225 if (unlikely(var31 == NULL)) {
3226 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_bash_completion");
3227 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 309);
3228 show_backtrace(1);
3229 }
3230 var29 = var31;
3231 RET_LABEL30:(void)0;
3232 }
3233 }
3234 {
3235 { /* Inline opts#Option#value (var29) on <var29:OptionBool> */
3236 var34 = var29->attrs[COLOR_opts__Option___value].val; /* _value on <var29:OptionBool> */
3237 var32 = var34;
3238 RET_LABEL33:(void)0;
3239 }
3240 }
3241 var35 = ((struct instance_standard__Bool*)var32)->value; /* autounbox from nullable Object to Bool */;
3242 if (var35){
3243 var36 = NEW_nit__BashCompletion(&type_nit__BashCompletion);
3244 {
3245 ((void (*)(val* self, val* p0))(var36->class->vft[COLOR_nit__toolcontext__BashCompletion__toolcontext_61d]))(var36, self) /* toolcontext= on <var36:BashCompletion>*/;
3246 }
3247 {
3248 ((void (*)(val* self))(var36->class->vft[COLOR_standard__kernel__Object__init]))(var36) /* init on <var36:BashCompletion>*/;
3249 }
3250 var_bash_completion = var36;
3251 {
3252 { /* Inline kernel#Object#sys (self) on <self:ToolContext> */
3253 var39 = glob_sys;
3254 var37 = var39;
3255 goto RET_LABEL38;
3256 RET_LABEL38:(void)0;
3257 }
3258 }
3259 {
3260 { /* Inline file#Sys#stdout (var37) on <var37:Sys> */
3261 var42 = var37->attrs[COLOR_standard__file__Sys___stdout].val; /* _stdout on <var37:Sys> */
3262 if (unlikely(var42 == NULL)) {
3263 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _stdout");
3264 PRINT_ERROR(" (%s:%d)\n", FILE_standard__file, 1008);
3265 show_backtrace(1);
3266 }
3267 var40 = var42;
3268 RET_LABEL41:(void)0;
3269 }
3270 }
3271 {
3272 template___template__Template___standard__stream__Streamable__write_to(var_bash_completion, var40); /* Direct call template#Template#write_to on <var_bash_completion:BashCompletion>*/
3273 }
3274 var43 = 0;
3275 {
3276 { /* Inline kernel#Object#exit (self,var43) on <self:ToolContext> */
3277 exit(var43);
3278 RET_LABEL44:(void)0;
3279 }
3280 }
3281 } else {
3282 }
3283 {
3284 { /* Inline toolcontext#ToolContext#opt_stub_man (self) on <self:ToolContext> */
3285 var47 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_stub_man].val; /* _opt_stub_man on <self:ToolContext> */
3286 if (unlikely(var47 == NULL)) {
3287 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stub_man");
3288 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 312);
3289 show_backtrace(1);
3290 }
3291 var45 = var47;
3292 RET_LABEL46:(void)0;
3293 }
3294 }
3295 {
3296 { /* Inline opts#Option#value (var45) on <var45:OptionBool> */
3297 var50 = var45->attrs[COLOR_opts__Option___value].val; /* _value on <var45:OptionBool> */
3298 var48 = var50;
3299 RET_LABEL49:(void)0;
3300 }
3301 }
3302 var51 = ((struct instance_standard__Bool*)var48)->value; /* autounbox from nullable Object to Bool */;
3303 if (var51){
3304 if (varonce) {
3305 var52 = varonce;
3306 } else {
3307 var53 = "% ";
3308 var54 = 2;
3309 var55 = standard___standard__NativeString___to_s_with_length(var53, var54);
3310 var52 = var55;
3311 varonce = var52;
3312 }
3313 {
3314 var56 = nit___nit__ToolContext___toolname(self);
3315 }
3316 {
3317 var57 = ((val* (*)(val* self))(var56->class->vft[COLOR_standard__string__String__to_upper]))(var56) /* to_upper on <var56:String>*/;
3318 }
3319 if (varonce58) {
3320 var59 = varonce58;
3321 } else {
3322 var60 = "(1)\n\n# NAME\n\n";
3323 var61 = 13;
3324 var62 = standard___standard__NativeString___to_s_with_length(var60, var61);
3325 var59 = var62;
3326 varonce58 = var59;
3327 }
3328 {
3329 { /* Inline toolcontext#ToolContext#tooldescription (self) on <self:ToolContext> */
3330 var65 = self->attrs[COLOR_nit__toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:ToolContext> */
3331 if (unlikely(var65 == NULL)) {
3332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
3333 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 328);
3334 show_backtrace(1);
3335 }
3336 var63 = var65;
3337 RET_LABEL64:(void)0;
3338 }
3339 }
3340 if (varonce66) {
3341 var67 = varonce66;
3342 } else {
3343 var68 = "\n";
3344 var69 = 1;
3345 var70 = standard___standard__NativeString___to_s_with_length(var68, var69);
3346 var67 = var70;
3347 varonce66 = var67;
3348 }
3349 {
3350 var71 = standard__string_search___Text___split(var63, var67);
3351 }
3352 var72 = 1;
3353 {
3354 var73 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var71, var72);
3355 }
3356 if (varonce74) {
3357 var75 = varonce74;
3358 } else {
3359 var76 = "\n\n# SYNOPSYS\n\n";
3360 var77 = 14;
3361 var78 = standard___standard__NativeString___to_s_with_length(var76, var77);
3362 var75 = var78;
3363 varonce74 = var75;
3364 }
3365 {
3366 var79 = nit___nit__ToolContext___toolname(self);
3367 }
3368 if (varonce80) {
3369 var81 = varonce80;
3370 } else {
3371 var82 = " [*options*]...\n\n# OPTIONS\n";
3372 var83 = 27;
3373 var84 = standard___standard__NativeString___to_s_with_length(var82, var83);
3374 var81 = var84;
3375 varonce80 = var81;
3376 }
3377 var85 = NEW_standard__Array(&type_standard__Array__standard__Object);
3378 { /* var85 = array_instance Array[Object] */
3379 var86 = 7;
3380 var87 = NEW_standard__NativeArray(var86, &type_standard__NativeArray__standard__Object);
3381 ((struct instance_standard__NativeArray*)var87)->values[0] = (val*) var52;
3382 ((struct instance_standard__NativeArray*)var87)->values[1] = (val*) var57;
3383 ((struct instance_standard__NativeArray*)var87)->values[2] = (val*) var59;
3384 ((struct instance_standard__NativeArray*)var87)->values[3] = (val*) var73;
3385 ((struct instance_standard__NativeArray*)var87)->values[4] = (val*) var75;
3386 ((struct instance_standard__NativeArray*)var87)->values[5] = (val*) var79;
3387 ((struct instance_standard__NativeArray*)var87)->values[6] = (val*) var81;
3388 {
3389 ((void (*)(val* self, val* p0, long p1))(var85->class->vft[COLOR_standard__array__Array__with_native]))(var85, var87, var86) /* with_native on <var85:Array[Object]>*/;
3390 }
3391 }
3392 {
3393 var88 = ((val* (*)(val* self))(var85->class->vft[COLOR_standard__string__Object__to_s]))(var85) /* to_s on <var85:Array[Object]>*/;
3394 }
3395 {
3396 standard__file___Object___print(self, var88); /* Direct call file#Object#print on <self:ToolContext>*/
3397 }
3398 {
3399 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
3400 var91 = self->attrs[COLOR_nit__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
3401 if (unlikely(var91 == NULL)) {
3402 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
3403 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 270);
3404 show_backtrace(1);
3405 }
3406 var89 = var91;
3407 RET_LABEL90:(void)0;
3408 }
3409 }
3410 {
3411 { /* Inline opts#OptionContext#options (var89) on <var89:OptionContext> */
3412 var94 = var89->attrs[COLOR_opts__OptionContext___options].val; /* _options on <var89:OptionContext> */
3413 if (unlikely(var94 == NULL)) {
3414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
3415 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 264);
3416 show_backtrace(1);
3417 }
3418 var92 = var94;
3419 RET_LABEL93:(void)0;
3420 }
3421 }
3422 var_ = var92;
3423 {
3424 var95 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
3425 }
3426 var_96 = var95;
3427 for(;;) {
3428 {
3429 var97 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_96);
3430 }
3431 if (var97){
3432 {
3433 var98 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_96);
3434 }
3435 var_o = var98;
3436 var99 = 1;
3437 var_first = var99;
3438 {
3439 { /* Inline opts#Option#names (var_o) on <var_o:Option> */
3440 var102 = var_o->attrs[COLOR_opts__Option___names].val; /* _names on <var_o:Option> */
3441 if (unlikely(var102 == NULL)) {
3442 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
3443 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
3444 show_backtrace(1);
3445 }
3446 var100 = var102;
3447 RET_LABEL101:(void)0;
3448 }
3449 }
3450 var_103 = var100;
3451 {
3452 var104 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_103);
3453 }
3454 var_105 = var104;
3455 for(;;) {
3456 {
3457 var106 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_105);
3458 }
3459 if (var106){
3460 {
3461 var107 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_105);
3462 }
3463 var_n = var107;
3464 if (var_first){
3465 var108 = 0;
3466 var_first = var108;
3467 } else {
3468 if (varonce109) {
3469 var110 = varonce109;
3470 } else {
3471 var111 = ", ";
3472 var112 = 2;
3473 var113 = standard___standard__NativeString___to_s_with_length(var111, var112);
3474 var110 = var113;
3475 varonce109 = var110;
3476 }
3477 var114 = NEW_standard__Array(&type_standard__Array__standard__Object);
3478 { /* var114 = array_instance Array[Object] */
3479 var115 = 1;
3480 var116 = NEW_standard__NativeArray(var115, &type_standard__NativeArray__standard__Object);
3481 ((struct instance_standard__NativeArray*)var116)->values[0] = (val*) var110;
3482 {
3483 ((void (*)(val* self, val* p0, long p1))(var114->class->vft[COLOR_standard__array__Array__with_native]))(var114, var116, var115) /* with_native on <var114:Array[Object]>*/;
3484 }
3485 }
3486 {
3487 standard__file___Object___printn(self, var114); /* Direct call file#Object#printn on <self:ToolContext>*/
3488 }
3489 }
3490 if (varonce117) {
3491 var118 = varonce117;
3492 } else {
3493 var119 = "`";
3494 var120 = 1;
3495 var121 = standard___standard__NativeString___to_s_with_length(var119, var120);
3496 var118 = var121;
3497 varonce117 = var118;
3498 }
3499 if (varonce122) {
3500 var123 = varonce122;
3501 } else {
3502 var124 = "`";
3503 var125 = 1;
3504 var126 = standard___standard__NativeString___to_s_with_length(var124, var125);
3505 var123 = var126;
3506 varonce122 = var123;
3507 }
3508 var127 = NEW_standard__Array(&type_standard__Array__standard__Object);
3509 { /* var127 = array_instance Array[Object] */
3510 var128 = 3;
3511 var129 = NEW_standard__NativeArray(var128, &type_standard__NativeArray__standard__Object);
3512 ((struct instance_standard__NativeArray*)var129)->values[0] = (val*) var118;
3513 ((struct instance_standard__NativeArray*)var129)->values[1] = (val*) var_n;
3514 ((struct instance_standard__NativeArray*)var129)->values[2] = (val*) var123;
3515 {
3516 ((void (*)(val* self, val* p0, long p1))(var127->class->vft[COLOR_standard__array__Array__with_native]))(var127, var129, var128) /* with_native on <var127:Array[Object]>*/;
3517 }
3518 }
3519 {
3520 var130 = ((val* (*)(val* self))(var127->class->vft[COLOR_standard__string__Object__to_s]))(var127) /* to_s on <var127:Array[Object]>*/;
3521 }
3522 var131 = NEW_standard__Array(&type_standard__Array__standard__Object);
3523 { /* var131 = array_instance Array[Object] */
3524 var132 = 1;
3525 var133 = NEW_standard__NativeArray(var132, &type_standard__NativeArray__standard__Object);
3526 ((struct instance_standard__NativeArray*)var133)->values[0] = (val*) var130;
3527 {
3528 ((void (*)(val* self, val* p0, long p1))(var131->class->vft[COLOR_standard__array__Array__with_native]))(var131, var133, var132) /* with_native on <var131:Array[Object]>*/;
3529 }
3530 }
3531 {
3532 standard__file___Object___printn(self, var131); /* Direct call file#Object#printn on <self:ToolContext>*/
3533 }
3534 {
3535 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_105); /* Direct call array#ArrayIterator#next on <var_105:ArrayIterator[String]>*/
3536 }
3537 } else {
3538 goto BREAK_label;
3539 }
3540 }
3541 BREAK_label: (void)0;
3542 {
3543 { /* Inline abstract_collection#Iterator#finish (var_105) on <var_105:ArrayIterator[String]> */
3544 RET_LABEL134:(void)0;
3545 }
3546 }
3547 if (varonce135) {
3548 var136 = varonce135;
3549 } else {
3550 var137 = "";
3551 var138 = 0;
3552 var139 = standard___standard__NativeString___to_s_with_length(var137, var138);
3553 var136 = var139;
3554 varonce135 = var136;
3555 }
3556 {
3557 standard__file___Object___print(self, var136); /* Direct call file#Object#print on <self:ToolContext>*/
3558 }
3559 if (varonce140) {
3560 var141 = varonce140;
3561 } else {
3562 var142 = ": ";
3563 var143 = 4;
3564 var144 = standard___standard__NativeString___to_s_with_length(var142, var143);
3565 var141 = var144;
3566 varonce140 = var141;
3567 }
3568 {
3569 { /* Inline opts#Option#helptext (var_o) on <var_o:Option> */
3570 var147 = var_o->attrs[COLOR_opts__Option___helptext].val; /* _helptext on <var_o:Option> */
3571 if (unlikely(var147 == NULL)) {
3572 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _helptext");
3573 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 25);
3574 show_backtrace(1);
3575 }
3576 var145 = var147;
3577 RET_LABEL146:(void)0;
3578 }
3579 }
3580 var148 = NEW_standard__Array(&type_standard__Array__standard__Object);
3581 { /* var148 = array_instance Array[Object] */
3582 var149 = 2;
3583 var150 = NEW_standard__NativeArray(var149, &type_standard__NativeArray__standard__Object);
3584 ((struct instance_standard__NativeArray*)var150)->values[0] = (val*) var141;
3585 ((struct instance_standard__NativeArray*)var150)->values[1] = (val*) var145;
3586 {
3587 ((void (*)(val* self, val* p0, long p1))(var148->class->vft[COLOR_standard__array__Array__with_native]))(var148, var150, var149) /* with_native on <var148:Array[Object]>*/;
3588 }
3589 }
3590 {
3591 var151 = ((val* (*)(val* self))(var148->class->vft[COLOR_standard__string__Object__to_s]))(var148) /* to_s on <var148:Array[Object]>*/;
3592 }
3593 {
3594 standard__file___Object___print(self, var151); /* Direct call file#Object#print on <self:ToolContext>*/
3595 }
3596 if (varonce152) {
3597 var153 = varonce152;
3598 } else {
3599 var154 = "";
3600 var155 = 0;
3601 var156 = standard___standard__NativeString___to_s_with_length(var154, var155);
3602 var153 = var156;
3603 varonce152 = var153;
3604 }
3605 {
3606 standard__file___Object___print(self, var153); /* Direct call file#Object#print on <self:ToolContext>*/
3607 }
3608 {
3609 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_96); /* Direct call array#ArrayIterator#next on <var_96:ArrayIterator[Option]>*/
3610 }
3611 } else {
3612 goto BREAK_label157;
3613 }
3614 }
3615 BREAK_label157: (void)0;
3616 {
3617 { /* Inline abstract_collection#Iterator#finish (var_96) on <var_96:ArrayIterator[Option]> */
3618 RET_LABEL158:(void)0;
3619 }
3620 }
3621 if (varonce159) {
3622 var160 = varonce159;
3623 } else {
3624 var161 = "# SEE ALSO\n\nThe Nit language documentation and the source code of its tools and libraries may be downloaded from <http://nitlanguage.org>";
3625 var162 = 137;
3626 var163 = standard___standard__NativeString___to_s_with_length(var161, var162);
3627 var160 = var163;
3628 varonce159 = var160;
3629 }
3630 {
3631 standard__file___Object___print(self, var160); /* Direct call file#Object#print on <self:ToolContext>*/
3632 }
3633 var164 = 0;
3634 {
3635 { /* Inline kernel#Object#exit (self,var164) on <self:ToolContext> */
3636 exit(var164);
3637 RET_LABEL165:(void)0;
3638 }
3639 }
3640 } else {
3641 }
3642 {
3643 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
3644 var168 = self->attrs[COLOR_nit__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
3645 if (unlikely(var168 == NULL)) {
3646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
3647 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 270);
3648 show_backtrace(1);
3649 }
3650 var166 = var168;
3651 RET_LABEL167:(void)0;
3652 }
3653 }
3654 {
3655 var169 = opts___opts__OptionContext___get_errors(var166);
3656 }
3657 var_errors = var169;
3658 {
3659 var170 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_errors);
3660 }
3661 var171 = !var170;
3662 if (var171){
3663 var_172 = var_errors;
3664 {
3665 var173 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_172);
3666 }
3667 var_174 = var173;
3668 for(;;) {
3669 {
3670 var175 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_174);
3671 }
3672 if (var175){
3673 {
3674 var176 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_174);
3675 }
3676 var_e = var176;
3677 if (varonce177) {
3678 var178 = varonce177;
3679 } else {
3680 var179 = "Error: ";
3681 var180 = 7;
3682 var181 = standard___standard__NativeString___to_s_with_length(var179, var180);
3683 var178 = var181;
3684 varonce177 = var178;
3685 }
3686 var182 = NEW_standard__Array(&type_standard__Array__standard__Object);
3687 { /* var182 = array_instance Array[Object] */
3688 var183 = 2;
3689 var184 = NEW_standard__NativeArray(var183, &type_standard__NativeArray__standard__Object);
3690 ((struct instance_standard__NativeArray*)var184)->values[0] = (val*) var178;
3691 ((struct instance_standard__NativeArray*)var184)->values[1] = (val*) var_e;
3692 {
3693 ((void (*)(val* self, val* p0, long p1))(var182->class->vft[COLOR_standard__array__Array__with_native]))(var182, var184, var183) /* with_native on <var182:Array[Object]>*/;
3694 }
3695 }
3696 {
3697 var185 = ((val* (*)(val* self))(var182->class->vft[COLOR_standard__string__Object__to_s]))(var182) /* to_s on <var182:Array[Object]>*/;
3698 }
3699 {
3700 standard__file___Object___print(self, var185); /* Direct call file#Object#print on <self:ToolContext>*/
3701 }
3702 {
3703 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_174); /* Direct call array#ArrayIterator#next on <var_174:ArrayIterator[String]>*/
3704 }
3705 } else {
3706 goto BREAK_label186;
3707 }
3708 }
3709 BREAK_label186: (void)0;
3710 {
3711 { /* Inline abstract_collection#Iterator#finish (var_174) on <var_174:ArrayIterator[String]> */
3712 RET_LABEL187:(void)0;
3713 }
3714 }
3715 {
3716 { /* Inline toolcontext#ToolContext#tooldescription (self) on <self:ToolContext> */
3717 var190 = self->attrs[COLOR_nit__toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:ToolContext> */
3718 if (unlikely(var190 == NULL)) {
3719 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
3720 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 328);
3721 show_backtrace(1);
3722 }
3723 var188 = var190;
3724 RET_LABEL189:(void)0;
3725 }
3726 }
3727 {
3728 standard__file___Object___print(self, var188); /* Direct call file#Object#print on <self:ToolContext>*/
3729 }
3730 if (varonce191) {
3731 var192 = varonce191;
3732 } else {
3733 var193 = "Use --help for help";
3734 var194 = 19;
3735 var195 = standard___standard__NativeString___to_s_with_length(var193, var194);
3736 var192 = var195;
3737 varonce191 = var192;
3738 }
3739 {
3740 standard__file___Object___print(self, var192); /* Direct call file#Object#print on <self:ToolContext>*/
3741 }
3742 var196 = 1;
3743 {
3744 { /* Inline kernel#Object#exit (self,var196) on <self:ToolContext> */
3745 exit(var196);
3746 RET_LABEL197:(void)0;
3747 }
3748 }
3749 } else {
3750 }
3751 {
3752 var198 = nit___nit__ToolContext___compute_nit_dir(self);
3753 }
3754 {
3755 { /* Inline toolcontext#ToolContext#nit_dir= (self,var198) on <self:ToolContext> */
3756 self->attrs[COLOR_nit__toolcontext__ToolContext___nit_dir].val = var198; /* _nit_dir on <self:ToolContext> */
3757 RET_LABEL199:(void)0;
3758 }
3759 }
3760 {
3761 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
3762 var203 = self->attrs[COLOR_nit__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
3763 if (unlikely(var203 == NULL)) {
3764 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
3765 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 270);
3766 show_backtrace(1);
3767 }
3768 var201 = var203;
3769 RET_LABEL202:(void)0;
3770 }
3771 }
3772 {
3773 { /* Inline opts#OptionContext#rest (var201) on <var201:OptionContext> */
3774 var206 = var201->attrs[COLOR_opts__OptionContext___rest].val; /* _rest on <var201:OptionContext> */
3775 if (unlikely(var206 == NULL)) {
3776 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _rest");
3777 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 267);
3778 show_backtrace(1);
3779 }
3780 var204 = var206;
3781 RET_LABEL205:(void)0;
3782 }
3783 }
3784 {
3785 var207 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var204);
3786 }
3787 var_208 = var207;
3788 if (var207){
3789 {
3790 { /* Inline toolcontext#ToolContext#accept_no_arguments (self) on <self:ToolContext> */
3791 var211 = self->attrs[COLOR_nit__toolcontext__ToolContext___accept_no_arguments].s; /* _accept_no_arguments on <self:ToolContext> */
3792 var209 = var211;
3793 RET_LABEL210:(void)0;
3794 }
3795 }
3796 var212 = !var209;
3797 var200 = var212;
3798 } else {
3799 var200 = var_208;
3800 }
3801 if (var200){
3802 {
3803 { /* Inline toolcontext#ToolContext#tooldescription (self) on <self:ToolContext> */
3804 var215 = self->attrs[COLOR_nit__toolcontext__ToolContext___tooldescription].val; /* _tooldescription on <self:ToolContext> */
3805 if (unlikely(var215 == NULL)) {
3806 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tooldescription");
3807 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 328);
3808 show_backtrace(1);
3809 }
3810 var213 = var215;
3811 RET_LABEL214:(void)0;
3812 }
3813 }
3814 {
3815 standard__file___Object___print(self, var213); /* Direct call file#Object#print on <self:ToolContext>*/
3816 }
3817 if (varonce216) {
3818 var217 = varonce216;
3819 } else {
3820 var218 = "Use --help for help";
3821 var219 = 19;
3822 var220 = standard___standard__NativeString___to_s_with_length(var218, var219);
3823 var217 = var220;
3824 varonce216 = var217;
3825 }
3826 {
3827 standard__file___Object___print(self, var217); /* Direct call file#Object#print on <self:ToolContext>*/
3828 }
3829 var221 = 1;
3830 {
3831 { /* Inline kernel#Object#exit (self,var221) on <self:ToolContext> */
3832 exit(var221);
3833 RET_LABEL222:(void)0;
3834 }
3835 }
3836 } else {
3837 }
3838 {
3839 { /* Inline toolcontext#ToolContext#opt_verbose (self) on <self:ToolContext> */
3840 var225 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_verbose].val; /* _opt_verbose on <self:ToolContext> */
3841 if (unlikely(var225 == NULL)) {
3842 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_verbose");
3843 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 300);
3844 show_backtrace(1);
3845 }
3846 var223 = var225;
3847 RET_LABEL224:(void)0;
3848 }
3849 }
3850 {
3851 { /* Inline opts#Option#value (var223) on <var223:OptionCount> */
3852 var228 = var223->attrs[COLOR_opts__Option___value].val; /* _value on <var223:OptionCount> */
3853 var226 = var228;
3854 RET_LABEL227:(void)0;
3855 }
3856 }
3857 {
3858 { /* Inline toolcontext#ToolContext#verbose_level= (self,var226) on <self:ToolContext> */
3859 var230 = ((struct instance_standard__Int*)var226)->value; /* autounbox from nullable Object to Int */;
3860 self->attrs[COLOR_nit__toolcontext__ToolContext___verbose_level].l = var230; /* _verbose_level on <self:ToolContext> */
3861 RET_LABEL229:(void)0;
3862 }
3863 }
3864 {
3865 { /* Inline toolcontext#ToolContext#opt_quiet (self) on <self:ToolContext> */
3866 var233 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_quiet].val; /* _opt_quiet on <self:ToolContext> */
3867 if (unlikely(var233 == NULL)) {
3868 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_quiet");
3869 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 279);
3870 show_backtrace(1);
3871 }
3872 var231 = var233;
3873 RET_LABEL232:(void)0;
3874 }
3875 }
3876 {
3877 { /* Inline opts#Option#value (var231) on <var231:OptionBool> */
3878 var236 = var231->attrs[COLOR_opts__Option___value].val; /* _value on <var231:OptionBool> */
3879 var234 = var236;
3880 RET_LABEL235:(void)0;
3881 }
3882 }
3883 var237 = ((struct instance_standard__Bool*)var234)->value; /* autounbox from nullable Object to Bool */;
3884 if (var237){
3885 {
3886 { /* Inline toolcontext#ToolContext#opt_warn (self) on <self:ToolContext> */
3887 var240 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
3888 if (unlikely(var240 == NULL)) {
3889 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
3890 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 273);
3891 show_backtrace(1);
3892 }
3893 var238 = var240;
3894 RET_LABEL239:(void)0;
3895 }
3896 }
3897 var241 = 0;
3898 {
3899 { /* Inline opts#Option#value= (var238,var241) on <var238:OptionCount> */
3900 /* Covariant cast for argument 0 (value) <var241:Int> isa VALUE */
3901 /* <var241:Int> isa VALUE */
3902 type_struct246 = var238->type->resolution_table->types[COLOR_opts__Option__VALUE];
3903 cltype244 = type_struct246->color;
3904 idtype245 = type_struct246->id;
3905 if(cltype244 >= (&type_standard__Int)->table_size) {
3906 var243 = 0;
3907 } else {
3908 var243 = (&type_standard__Int)->type_table[cltype244] == idtype245;
3909 }
3910 if (unlikely(!var243)) {
3911 var_class_name247 = type_standard__Int.name;
3912 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name247);
3913 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 40);
3914 show_backtrace(1);
3915 }
3916 var248 = BOX_standard__Int(var241); /* autobox from Int to nullable Object */
3917 var238->attrs[COLOR_opts__Option___value].val = var248; /* _value on <var238:OptionCount> */
3918 RET_LABEL242:(void)0;
3919 }
3920 }
3921 } else {
3922 }
3923 {
3924 { /* Inline toolcontext#ToolContext#opt_log_dir (self) on <self:ToolContext> */
3925 var251 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_log_dir].val; /* _opt_log_dir on <self:ToolContext> */
3926 if (unlikely(var251 == NULL)) {
3927 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log_dir");
3928 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 285);
3929 show_backtrace(1);
3930 }
3931 var249 = var251;
3932 RET_LABEL250:(void)0;
3933 }
3934 }
3935 {
3936 { /* Inline opts#Option#value (var249) on <var249:OptionString> */
3937 var254 = var249->attrs[COLOR_opts__Option___value].val; /* _value on <var249:OptionString> */
3938 var252 = var254;
3939 RET_LABEL253:(void)0;
3940 }
3941 }
3942 var255 = NULL;
3943 if (var252 == NULL) {
3944 var256 = 0; /* is null */
3945 } else {
3946 var256 = 1; /* arg is null and recv is not */
3947 }
3948 if (0) {
3949 { /* Inline kernel#Object#!= (var252,var255) on <var252:nullable Object(nullable String)> */
3950 var_other = var255;
3951 {
3952 var259 = ((short int (*)(val* self, val* p0))(var252->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var252, var_other) /* == on <var252:nullable String(String)>*/;
3953 }
3954 var260 = !var259;
3955 var257 = var260;
3956 goto RET_LABEL258;
3957 RET_LABEL258:(void)0;
3958 }
3959 var256 = var257;
3960 }
3961 if (var256){
3962 {
3963 { /* Inline toolcontext#ToolContext#opt_log_dir (self) on <self:ToolContext> */
3964 var263 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_log_dir].val; /* _opt_log_dir on <self:ToolContext> */
3965 if (unlikely(var263 == NULL)) {
3966 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log_dir");
3967 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 285);
3968 show_backtrace(1);
3969 }
3970 var261 = var263;
3971 RET_LABEL262:(void)0;
3972 }
3973 }
3974 {
3975 { /* Inline opts#Option#value (var261) on <var261:OptionString> */
3976 var266 = var261->attrs[COLOR_opts__Option___value].val; /* _value on <var261:OptionString> */
3977 var264 = var266;
3978 RET_LABEL265:(void)0;
3979 }
3980 }
3981 if (unlikely(var264 == NULL)) {
3982 PRINT_ERROR("Runtime error: %s", "Cast failed");
3983 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 428);
3984 show_backtrace(1);
3985 }
3986 {
3987 { /* Inline toolcontext#ToolContext#log_directory= (self,var264) on <self:ToolContext> */
3988 self->attrs[COLOR_nit__toolcontext__ToolContext___log_directory].val = var264; /* _log_directory on <self:ToolContext> */
3989 RET_LABEL267:(void)0;
3990 }
3991 }
3992 } else {
3993 }
3994 {
3995 { /* Inline toolcontext#ToolContext#opt_log (self) on <self:ToolContext> */
3996 var270 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_log].val; /* _opt_log on <self:ToolContext> */
3997 if (unlikely(var270 == NULL)) {
3998 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log");
3999 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 282);
4000 show_backtrace(1);
4001 }
4002 var268 = var270;
4003 RET_LABEL269:(void)0;
4004 }
4005 }
4006 {
4007 { /* Inline opts#Option#value (var268) on <var268:OptionBool> */
4008 var273 = var268->attrs[COLOR_opts__Option___value].val; /* _value on <var268:OptionBool> */
4009 var271 = var273;
4010 RET_LABEL272:(void)0;
4011 }
4012 }
4013 var274 = ((struct instance_standard__Bool*)var271)->value; /* autounbox from nullable Object to Bool */;
4014 if (var274){
4015 {
4016 { /* Inline toolcontext#ToolContext#log_directory (self) on <self:ToolContext> */
4017 var277 = self->attrs[COLOR_nit__toolcontext__ToolContext___log_directory].val; /* _log_directory on <self:ToolContext> */
4018 if (unlikely(var277 == NULL)) {
4019 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _log_directory");
4020 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 102);
4021 show_backtrace(1);
4022 }
4023 var275 = var277;
4024 RET_LABEL276:(void)0;
4025 }
4026 }
4027 {
4028 standard__file___String___mkdir(var275); /* Direct call file#String#mkdir on <var275:String>*/
4029 }
4030 } else {
4031 }
4032 RET_LABEL:;
4033 }
4034 /* method toolcontext#ToolContext#version for (self: ToolContext): String */
4035 val* nit___nit__ToolContext___version(val* self) {
4036 val* var /* : String */;
4037 val* var1 /* : OptionBool */;
4038 val* var3 /* : OptionBool */;
4039 val* var4 /* : nullable Object */;
4040 val* var6 /* : nullable Object */;
4041 short int var7 /* : Bool */;
4042 static val* varonce;
4043 val* var8 /* : String */;
4044 char* var9 /* : NativeString */;
4045 long var10 /* : Int */;
4046 val* var11 /* : FlatString */;
4047 val* var12 /* : String */;
4048 {
4049 { /* Inline toolcontext#ToolContext#opt_set_dummy_tool (self) on <self:ToolContext> */
4050 var3 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_set_dummy_tool].val; /* _opt_set_dummy_tool on <self:ToolContext> */
4051 if (unlikely(var3 == NULL)) {
4052 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_set_dummy_tool");
4053 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 297);
4054 show_backtrace(1);
4055 }
4056 var1 = var3;
4057 RET_LABEL2:(void)0;
4058 }
4059 }
4060 {
4061 { /* Inline opts#Option#value (var1) on <var1:OptionBool> */
4062 var6 = var1->attrs[COLOR_opts__Option___value].val; /* _value on <var1:OptionBool> */
4063 var4 = var6;
4064 RET_LABEL5:(void)0;
4065 }
4066 }
4067 var7 = ((struct instance_standard__Bool*)var4)->value; /* autounbox from nullable Object to Bool */;
4068 if (var7){
4069 if (varonce) {
4070 var8 = varonce;
4071 } else {
4072 var9 = "DUMMY_VERSION";
4073 var10 = 13;
4074 var11 = standard___standard__NativeString___to_s_with_length(var9, var10);
4075 var8 = var11;
4076 varonce = var8;
4077 }
4078 var = var8;
4079 goto RET_LABEL;
4080 } else {
4081 }
4082 {
4083 var12 = nit__version___standard__Object___nit_version(self);
4084 }
4085 var = var12;
4086 goto RET_LABEL;
4087 RET_LABEL:;
4088 return var;
4089 }
4090 /* method toolcontext#ToolContext#toolname for (self: ToolContext): String */
4091 val* nit___nit__ToolContext___toolname(val* self) {
4092 val* var /* : String */;
4093 val* var1 /* : OptionBool */;
4094 val* var3 /* : OptionBool */;
4095 val* var4 /* : nullable Object */;
4096 val* var6 /* : nullable Object */;
4097 short int var7 /* : Bool */;
4098 static val* varonce;
4099 val* var8 /* : String */;
4100 char* var9 /* : NativeString */;
4101 long var10 /* : Int */;
4102 val* var11 /* : FlatString */;
4103 val* var12 /* : Sys */;
4104 val* var14 /* : Sys */;
4105 val* var15 /* : String */;
4106 static val* varonce16;
4107 val* var17 /* : String */;
4108 char* var18 /* : NativeString */;
4109 long var19 /* : Int */;
4110 val* var20 /* : FlatString */;
4111 val* var21 /* : String */;
4112 {
4113 { /* Inline toolcontext#ToolContext#opt_set_dummy_tool (self) on <self:ToolContext> */
4114 var3 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_set_dummy_tool].val; /* _opt_set_dummy_tool on <self:ToolContext> */
4115 if (unlikely(var3 == NULL)) {
4116 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_set_dummy_tool");
4117 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 297);
4118 show_backtrace(1);
4119 }
4120 var1 = var3;
4121 RET_LABEL2:(void)0;
4122 }
4123 }
4124 {
4125 { /* Inline opts#Option#value (var1) on <var1:OptionBool> */
4126 var6 = var1->attrs[COLOR_opts__Option___value].val; /* _value on <var1:OptionBool> */
4127 var4 = var6;
4128 RET_LABEL5:(void)0;
4129 }
4130 }
4131 var7 = ((struct instance_standard__Bool*)var4)->value; /* autounbox from nullable Object to Bool */;
4132 if (var7){
4133 if (varonce) {
4134 var8 = varonce;
4135 } else {
4136 var9 = "DUMMY_TOOL";
4137 var10 = 10;
4138 var11 = standard___standard__NativeString___to_s_with_length(var9, var10);
4139 var8 = var11;
4140 varonce = var8;
4141 }
4142 var = var8;
4143 goto RET_LABEL;
4144 } else {
4145 }
4146 {
4147 { /* Inline kernel#Object#sys (self) on <self:ToolContext> */
4148 var14 = glob_sys;
4149 var12 = var14;
4150 goto RET_LABEL13;
4151 RET_LABEL13:(void)0;
4152 }
4153 }
4154 {
4155 var15 = standard__string___Sys___program_name(var12);
4156 }
4157 if (varonce16) {
4158 var17 = varonce16;
4159 } else {
4160 var18 = "";
4161 var19 = 0;
4162 var20 = standard___standard__NativeString___to_s_with_length(var18, var19);
4163 var17 = var20;
4164 varonce16 = var17;
4165 }
4166 {
4167 var21 = standard__file___String___basename(var15, var17);
4168 }
4169 var = var21;
4170 goto RET_LABEL;
4171 RET_LABEL:;
4172 return var;
4173 }
4174 /* method toolcontext#ToolContext#nit_dir for (self: ToolContext): String */
4175 val* nit___nit__ToolContext___nit_dir(val* self) {
4176 val* var /* : String */;
4177 val* var1 /* : String */;
4178 var1 = self->attrs[COLOR_nit__toolcontext__ToolContext___nit_dir].val; /* _nit_dir on <self:ToolContext> */
4179 if (unlikely(var1 == NULL)) {
4180 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _nit_dir");
4181 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 452);
4182 show_backtrace(1);
4183 }
4184 var = var1;
4185 RET_LABEL:;
4186 return var;
4187 }
4188 /* method toolcontext#ToolContext#nit_dir= for (self: ToolContext, String) */
4189 void nit___nit__ToolContext___nit_dir_61d(val* self, val* p0) {
4190 self->attrs[COLOR_nit__toolcontext__ToolContext___nit_dir].val = p0; /* _nit_dir on <self:ToolContext> */
4191 RET_LABEL:;
4192 }
4193 /* method toolcontext#ToolContext#compute_nit_dir for (self: ToolContext): String */
4194 val* nit___nit__ToolContext___compute_nit_dir(val* self) {
4195 val* var /* : String */;
4196 val* var1 /* : OptionString */;
4197 val* var3 /* : OptionString */;
4198 val* var4 /* : nullable Object */;
4199 val* var6 /* : nullable Object */;
4200 val* var_res /* var res: nullable String */;
4201 val* var7 /* : null */;
4202 short int var8 /* : Bool */;
4203 short int var9 /* : Bool */;
4204 val* var_other /* var other: nullable Object */;
4205 short int var11 /* : Bool */;
4206 short int var12 /* : Bool */;
4207 short int var13 /* : Bool */;
4208 short int var14 /* : Bool */;
4209 val* var15 /* : null */;
4210 static val* varonce;
4211 val* var16 /* : String */;
4212 char* var17 /* : NativeString */;
4213 long var18 /* : Int */;
4214 val* var19 /* : FlatString */;
4215 val* var20 /* : Array[Object] */;
4216 long var21 /* : Int */;
4217 val* var22 /* : NativeArray[Object] */;
4218 val* var23 /* : String */;
4219 static val* varonce24;
4220 val* var25 /* : String */;
4221 char* var26 /* : NativeString */;
4222 long var27 /* : Int */;
4223 val* var28 /* : FlatString */;
4224 val* var29 /* : String */;
4225 short int var30 /* : Bool */;
4226 short int var31 /* : Bool */;
4227 short int var32 /* : Bool */;
4228 short int var33 /* : Bool */;
4229 val* var34 /* : null */;
4230 static val* varonce35;
4231 val* var36 /* : String */;
4232 char* var37 /* : NativeString */;
4233 long var38 /* : Int */;
4234 val* var39 /* : FlatString */;
4235 val* var40 /* : Array[Object] */;
4236 long var41 /* : Int */;
4237 val* var42 /* : NativeArray[Object] */;
4238 val* var43 /* : String */;
4239 val* var44 /* : Sys */;
4240 val* var46 /* : Sys */;
4241 val* var47 /* : String */;
4242 val* var48 /* : String */;
4243 static val* varonce49;
4244 val* var50 /* : String */;
4245 char* var51 /* : NativeString */;
4246 long var52 /* : Int */;
4247 val* var53 /* : FlatString */;
4248 val* var54 /* : Array[Object] */;
4249 long var55 /* : Int */;
4250 val* var56 /* : NativeArray[Object] */;
4251 val* var57 /* : String */;
4252 short int var58 /* : Bool */;
4253 val* var59 /* : String */;
4254 static val* varonce60;
4255 val* var61 /* : String */;
4256 char* var62 /* : NativeString */;
4257 long var63 /* : Int */;
4258 val* var64 /* : FlatString */;
4259 val* var_exe /* var exe: String */;
4260 short int var65 /* : Bool */;
4261 val* var66 /* : String */;
4262 val* var67 /* : String */;
4263 static val* varonce68;
4264 val* var69 /* : String */;
4265 char* var70 /* : NativeString */;
4266 long var71 /* : Int */;
4267 val* var72 /* : FlatString */;
4268 val* var73 /* : String */;
4269 short int var74 /* : Bool */;
4270 val* var75 /* : String */;
4271 static val* varonce76;
4272 val* var77 /* : String */;
4273 char* var78 /* : NativeString */;
4274 long var79 /* : Int */;
4275 val* var80 /* : FlatString */;
4276 val* var81 /* : String */;
4277 static val* varonce82;
4278 val* var83 /* : String */;
4279 char* var84 /* : NativeString */;
4280 long var85 /* : Int */;
4281 val* var86 /* : FlatString */;
4282 val* var87 /* : Array[String] */;
4283 val* var_ps /* var ps: Array[String] */;
4284 val* var_ /* var : Array[String] */;
4285 val* var88 /* : ArrayIterator[nullable Object] */;
4286 val* var_89 /* var : ArrayIterator[String] */;
4287 short int var90 /* : Bool */;
4288 val* var91 /* : nullable Object */;
4289 val* var_p /* var p: String */;
4290 static val* varonce92;
4291 val* var93 /* : String */;
4292 char* var94 /* : NativeString */;
4293 long var95 /* : Int */;
4294 val* var96 /* : FlatString */;
4295 val* var97 /* : String */;
4296 short int var98 /* : Bool */;
4297 val* var99 /* : String */;
4298 val* var101 /* : null */;
4299 static val* varonce102;
4300 val* var103 /* : String */;
4301 char* var104 /* : NativeString */;
4302 long var105 /* : Int */;
4303 val* var106 /* : FlatString */;
4304 {
4305 { /* Inline toolcontext#ToolContext#opt_nit_dir (self) on <self:ToolContext> */
4306 var3 = self->attrs[COLOR_nit__toolcontext__ToolContext___opt_nit_dir].val; /* _opt_nit_dir on <self:ToolContext> */
4307 if (unlikely(var3 == NULL)) {
4308 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_nit_dir");
4309 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 288);
4310 show_backtrace(1);
4311 }
4312 var1 = var3;
4313 RET_LABEL2:(void)0;
4314 }
4315 }
4316 {
4317 { /* Inline opts#Option#value (var1) on <var1:OptionString> */
4318 var6 = var1->attrs[COLOR_opts__Option___value].val; /* _value on <var1:OptionString> */
4319 var4 = var6;
4320 RET_LABEL5:(void)0;
4321 }
4322 }
4323 var_res = var4;
4324 var7 = NULL;
4325 if (var_res == NULL) {
4326 var8 = 0; /* is null */
4327 } else {
4328 var8 = 1; /* arg is null and recv is not */
4329 }
4330 if (0) {
4331 { /* Inline kernel#Object#!= (var_res,var7) on <var_res:nullable String> */
4332 var_other = var7;
4333 {
4334 var11 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other) /* == on <var_res:nullable String(String)>*/;
4335 }
4336 var12 = !var11;
4337 var9 = var12;
4338 goto RET_LABEL10;
4339 RET_LABEL10:(void)0;
4340 }
4341 var8 = var9;
4342 }
4343 if (var8){
4344 {
4345 var13 = nit___nit__ToolContext___check_nit_dir(self, var_res);
4346 }
4347 var14 = !var13;
4348 if (var14){
4349 var15 = NULL;
4350 if (varonce) {
4351 var16 = varonce;
4352 } else {
4353 var17 = "Fatal Error: the value of --nit-dir does not seem to be a valid base Nit directory: ";
4354 var18 = 84;
4355 var19 = standard___standard__NativeString___to_s_with_length(var17, var18);
4356 var16 = var19;
4357 varonce = var16;
4358 }
4359 var20 = NEW_standard__Array(&type_standard__Array__standard__Object);
4360 { /* var20 = array_instance Array[Object] */
4361 var21 = 2;
4362 var22 = NEW_standard__NativeArray(var21, &type_standard__NativeArray__standard__Object);
4363 ((struct instance_standard__NativeArray*)var22)->values[0] = (val*) var16;
4364 ((struct instance_standard__NativeArray*)var22)->values[1] = (val*) var_res;
4365 {
4366 ((void (*)(val* self, val* p0, long p1))(var20->class->vft[COLOR_standard__array__Array__with_native]))(var20, var22, var21) /* with_native on <var20:Array[Object]>*/;
4367 }
4368 }
4369 {
4370 var23 = ((val* (*)(val* self))(var20->class->vft[COLOR_standard__string__Object__to_s]))(var20) /* to_s on <var20:Array[Object]>*/;
4371 }
4372 {
4373 nit___nit__ToolContext___fatal_error(self, var15, var23); /* Direct call toolcontext#ToolContext#fatal_error on <self:ToolContext>*/
4374 }
4375 } else {
4376 }
4377 var = var_res;
4378 goto RET_LABEL;
4379 } else {
4380 }
4381 if (varonce24) {
4382 var25 = varonce24;
4383 } else {
4384 var26 = "NIT_DIR";
4385 var27 = 7;
4386 var28 = standard___standard__NativeString___to_s_with_length(var26, var27);
4387 var25 = var28;
4388 varonce24 = var25;
4389 }
4390 {
4391 var29 = standard__environ___String___environ(var25);
4392 }
4393 var_res = var29;
4394 {
4395 var30 = standard___standard__Text___is_empty(var_res);
4396 }
4397 var31 = !var30;
4398 if (var31){
4399 {
4400 var32 = nit___nit__ToolContext___check_nit_dir(self, var_res);
4401 }
4402 var33 = !var32;
4403 if (var33){
4404 var34 = NULL;
4405 if (varonce35) {
4406 var36 = varonce35;
4407 } else {
4408 var37 = "Fatal Error: the value of NIT_DIR does not seem to be a valid base Nit directory: ";
4409 var38 = 82;
4410 var39 = standard___standard__NativeString___to_s_with_length(var37, var38);
4411 var36 = var39;
4412 varonce35 = var36;
4413 }
4414 var40 = NEW_standard__Array(&type_standard__Array__standard__Object);
4415 { /* var40 = array_instance Array[Object] */
4416 var41 = 2;
4417 var42 = NEW_standard__NativeArray(var41, &type_standard__NativeArray__standard__Object);
4418 ((struct instance_standard__NativeArray*)var42)->values[0] = (val*) var36;
4419 ((struct instance_standard__NativeArray*)var42)->values[1] = (val*) var_res;
4420 {
4421 ((void (*)(val* self, val* p0, long p1))(var40->class->vft[COLOR_standard__array__Array__with_native]))(var40, var42, var41) /* with_native on <var40:Array[Object]>*/;
4422 }
4423 }
4424 {
4425 var43 = ((val* (*)(val* self))(var40->class->vft[COLOR_standard__string__Object__to_s]))(var40) /* to_s on <var40:Array[Object]>*/;
4426 }
4427 {
4428 nit___nit__ToolContext___fatal_error(self, var34, var43); /* Direct call toolcontext#ToolContext#fatal_error on <self:ToolContext>*/
4429 }
4430 } else {
4431 }
4432 var = var_res;
4433 goto RET_LABEL;
4434 } else {
4435 }
4436 {
4437 { /* Inline kernel#Object#sys (self) on <self:ToolContext> */
4438 var46 = glob_sys;
4439 var44 = var46;
4440 goto RET_LABEL45;
4441 RET_LABEL45:(void)0;
4442 }
4443 }
4444 {
4445 var47 = standard__string___Sys___program_name(var44);
4446 }
4447 {
4448 var48 = standard__file___String___dirname(var47);
4449 }
4450 if (varonce49) {
4451 var50 = varonce49;
4452 } else {
4453 var51 = "/..";
4454 var52 = 3;
4455 var53 = standard___standard__NativeString___to_s_with_length(var51, var52);
4456 var50 = var53;
4457 varonce49 = var50;
4458 }
4459 var54 = NEW_standard__Array(&type_standard__Array__standard__Object);
4460 { /* var54 = array_instance Array[Object] */
4461 var55 = 2;
4462 var56 = NEW_standard__NativeArray(var55, &type_standard__NativeArray__standard__Object);
4463 ((struct instance_standard__NativeArray*)var56)->values[0] = (val*) var48;
4464 ((struct instance_standard__NativeArray*)var56)->values[1] = (val*) var50;
4465 {
4466 ((void (*)(val* self, val* p0, long p1))(var54->class->vft[COLOR_standard__array__Array__with_native]))(var54, var56, var55) /* with_native on <var54:Array[Object]>*/;
4467 }
4468 }
4469 {
4470 var57 = ((val* (*)(val* self))(var54->class->vft[COLOR_standard__string__Object__to_s]))(var54) /* to_s on <var54:Array[Object]>*/;
4471 }
4472 var_res = var57;
4473 {
4474 var58 = nit___nit__ToolContext___check_nit_dir(self, var_res);
4475 }
4476 if (var58){
4477 {
4478 var59 = standard__file___String___simplify_path(var_res);
4479 }
4480 var = var59;
4481 goto RET_LABEL;
4482 } else {
4483 }
4484 if (varonce60) {
4485 var61 = varonce60;
4486 } else {
4487 var62 = "/proc/self/exe";
4488 var63 = 14;
4489 var64 = standard___standard__NativeString___to_s_with_length(var62, var63);
4490 var61 = var64;
4491 varonce60 = var61;
4492 }
4493 var_exe = var61;
4494 {
4495 var65 = standard__file___String___file_exists(var_exe);
4496 }
4497 if (var65){
4498 {
4499 var66 = standard__file___String___realpath(var_exe);
4500 }
4501 var_res = var66;
4502 {
4503 var67 = standard__file___String___dirname(var_res);
4504 }
4505 if (varonce68) {
4506 var69 = varonce68;
4507 } else {
4508 var70 = "..";
4509 var71 = 2;
4510 var72 = standard___standard__NativeString___to_s_with_length(var70, var71);
4511 var69 = var72;
4512 varonce68 = var69;
4513 }
4514 {
4515 var73 = standard__file___String___join_path(var67, var69);
4516 }
4517 var_res = var73;
4518 {
4519 var74 = nit___nit__ToolContext___check_nit_dir(self, var_res);
4520 }
4521 if (var74){
4522 {
4523 var75 = standard__file___String___simplify_path(var_res);
4524 }
4525 var = var75;
4526 goto RET_LABEL;
4527 } else {
4528 }
4529 } else {
4530 }
4531 if (varonce76) {
4532 var77 = varonce76;
4533 } else {
4534 var78 = "PATH";
4535 var79 = 4;
4536 var80 = standard___standard__NativeString___to_s_with_length(var78, var79);
4537 var77 = var80;
4538 varonce76 = var77;
4539 }
4540 {
4541 var81 = standard__environ___String___environ(var77);
4542 }
4543 if (varonce82) {
4544 var83 = varonce82;
4545 } else {
4546 var84 = ":";
4547 var85 = 1;
4548 var86 = standard___standard__NativeString___to_s_with_length(var84, var85);
4549 var83 = var86;
4550 varonce82 = var83;
4551 }
4552 {
4553 var87 = standard__string_search___Text___split(var81, var83);
4554 }
4555 var_ps = var87;
4556 var_ = var_ps;
4557 {
4558 var88 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
4559 }
4560 var_89 = var88;
4561 for(;;) {
4562 {
4563 var90 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_89);
4564 }
4565 if (var90){
4566 {
4567 var91 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_89);
4568 }
4569 var_p = var91;
4570 if (varonce92) {
4571 var93 = varonce92;
4572 } else {
4573 var94 = "..";
4574 var95 = 2;
4575 var96 = standard___standard__NativeString___to_s_with_length(var94, var95);
4576 var93 = var96;
4577 varonce92 = var93;
4578 }
4579 {
4580 var97 = standard__file___String____47d(var_p, var93);
4581 }
4582 var_res = var97;
4583 {
4584 var98 = nit___nit__ToolContext___check_nit_dir(self, var_res);
4585 }
4586 if (var98){
4587 {
4588 var99 = standard__file___String___simplify_path(var_res);
4589 }
4590 var = var99;
4591 goto RET_LABEL;
4592 } else {
4593 }
4594 {
4595 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_89); /* Direct call array#ArrayIterator#next on <var_89:ArrayIterator[String]>*/
4596 }
4597 } else {
4598 goto BREAK_label;
4599 }
4600 }
4601 BREAK_label: (void)0;
4602 {
4603 { /* Inline abstract_collection#Iterator#finish (var_89) on <var_89:ArrayIterator[String]> */
4604 RET_LABEL100:(void)0;
4605 }
4606 }
4607 var101 = NULL;
4608 if (varonce102) {
4609 var103 = varonce102;
4610 } else {
4611 var104 = "Fatal Error: Cannot locate a valid base nit directory. It is quite unexpected. Try to set the environment variable `NIT_DIR` or to use the `--nit-dir` option.";
4612 var105 = 158;
4613 var106 = standard___standard__NativeString___to_s_with_length(var104, var105);
4614 var103 = var106;
4615 varonce102 = var103;
4616 }
4617 {
4618 nit___nit__ToolContext___fatal_error(self, var101, var103); /* Direct call toolcontext#ToolContext#fatal_error on <self:ToolContext>*/
4619 }
4620 PRINT_ERROR("Runtime error: %s", "Aborted");
4621 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 495);
4622 show_backtrace(1);
4623 RET_LABEL:;
4624 return var;
4625 }
4626 /* method toolcontext#ToolContext#check_nit_dir for (self: ToolContext, String): Bool */
4627 short int nit___nit__ToolContext___check_nit_dir(val* self, val* p0) {
4628 short int var /* : Bool */;
4629 val* var_res /* var res: String */;
4630 short int var1 /* : Bool */;
4631 short int var2 /* : Bool */;
4632 short int var_ /* var : Bool */;
4633 static val* varonce;
4634 val* var3 /* : String */;
4635 char* var4 /* : NativeString */;
4636 long var5 /* : Int */;
4637 val* var6 /* : FlatString */;
4638 val* var7 /* : Array[Object] */;
4639 long var8 /* : Int */;
4640 val* var9 /* : NativeArray[Object] */;
4641 val* var10 /* : String */;
4642 short int var11 /* : Bool */;
4643 var_res = p0;
4644 {
4645 var2 = standard__file___String___file_exists(var_res);
4646 }
4647 var_ = var2;
4648 if (var2){
4649 if (varonce) {
4650 var3 = varonce;
4651 } else {
4652 var4 = "/src/nit.nit";
4653 var5 = 12;
4654 var6 = standard___standard__NativeString___to_s_with_length(var4, var5);
4655 var3 = var6;
4656 varonce = var3;
4657 }
4658 var7 = NEW_standard__Array(&type_standard__Array__standard__Object);
4659 { /* var7 = array_instance Array[Object] */
4660 var8 = 2;
4661 var9 = NEW_standard__NativeArray(var8, &type_standard__NativeArray__standard__Object);
4662 ((struct instance_standard__NativeArray*)var9)->values[0] = (val*) var_res;
4663 ((struct instance_standard__NativeArray*)var9)->values[1] = (val*) var3;
4664 {
4665 ((void (*)(val* self, val* p0, long p1))(var7->class->vft[COLOR_standard__array__Array__with_native]))(var7, var9, var8) /* with_native on <var7:Array[Object]>*/;
4666 }
4667 }
4668 {
4669 var10 = ((val* (*)(val* self))(var7->class->vft[COLOR_standard__string__Object__to_s]))(var7) /* to_s on <var7:Array[Object]>*/;
4670 }
4671 {
4672 var11 = standard__file___String___file_exists(var10);
4673 }
4674 var1 = var11;
4675 } else {
4676 var1 = var_;
4677 }
4678 var = var1;
4679 goto RET_LABEL;
4680 RET_LABEL:;
4681 return var;
4682 }
4683 /* method toolcontext#BashCompletion#toolcontext for (self: BashCompletion): ToolContext */
4684 val* nit___nit__BashCompletion___toolcontext(val* self) {
4685 val* var /* : ToolContext */;
4686 val* var1 /* : ToolContext */;
4687 var1 = self->attrs[COLOR_nit__toolcontext__BashCompletion___toolcontext].val; /* _toolcontext on <self:BashCompletion> */
4688 if (unlikely(var1 == NULL)) {
4689 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4690 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 524);
4691 show_backtrace(1);
4692 }
4693 var = var1;
4694 RET_LABEL:;
4695 return var;
4696 }
4697 /* method toolcontext#BashCompletion#toolcontext= for (self: BashCompletion, ToolContext) */
4698 void nit___nit__BashCompletion___toolcontext_61d(val* self, val* p0) {
4699 self->attrs[COLOR_nit__toolcontext__BashCompletion___toolcontext].val = p0; /* _toolcontext on <self:BashCompletion> */
4700 RET_LABEL:;
4701 }
4702 /* method toolcontext#BashCompletion#extract_options_names for (self: BashCompletion): Array[String] */
4703 val* nit___nit__BashCompletion___extract_options_names(val* self) {
4704 val* var /* : Array[String] */;
4705 val* var1 /* : Array[String] */;
4706 val* var_names /* var names: Array[String] */;
4707 val* var2 /* : ToolContext */;
4708 val* var4 /* : ToolContext */;
4709 val* var5 /* : OptionContext */;
4710 val* var7 /* : OptionContext */;
4711 val* var8 /* : Array[Option] */;
4712 val* var10 /* : Array[Option] */;
4713 val* var_ /* var : Array[Option] */;
4714 val* var11 /* : ArrayIterator[nullable Object] */;
4715 val* var_12 /* var : ArrayIterator[Option] */;
4716 short int var13 /* : Bool */;
4717 val* var14 /* : nullable Object */;
4718 val* var_option /* var option: Option */;
4719 val* var15 /* : Array[String] */;
4720 val* var17 /* : Array[String] */;
4721 val* var_18 /* var : Array[String] */;
4722 val* var19 /* : ArrayIterator[nullable Object] */;
4723 val* var_20 /* var : ArrayIterator[String] */;
4724 short int var21 /* : Bool */;
4725 val* var22 /* : nullable Object */;
4726 val* var_name /* var name: String */;
4727 static val* varonce;
4728 val* var23 /* : String */;
4729 char* var24 /* : NativeString */;
4730 long var25 /* : Int */;
4731 val* var26 /* : FlatString */;
4732 short int var27 /* : Bool */;
4733 var1 = NEW_standard__Array(&type_standard__Array__standard__String);
4734 {
4735 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[String]>*/
4736 }
4737 var_names = var1;
4738 {
4739 { /* Inline toolcontext#BashCompletion#toolcontext (self) on <self:BashCompletion> */
4740 var4 = self->attrs[COLOR_nit__toolcontext__BashCompletion___toolcontext].val; /* _toolcontext on <self:BashCompletion> */
4741 if (unlikely(var4 == NULL)) {
4742 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4743 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 524);
4744 show_backtrace(1);
4745 }
4746 var2 = var4;
4747 RET_LABEL3:(void)0;
4748 }
4749 }
4750 {
4751 { /* Inline toolcontext#ToolContext#option_context (var2) on <var2:ToolContext> */
4752 var7 = var2->attrs[COLOR_nit__toolcontext__ToolContext___option_context].val; /* _option_context on <var2:ToolContext> */
4753 if (unlikely(var7 == NULL)) {
4754 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
4755 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 270);
4756 show_backtrace(1);
4757 }
4758 var5 = var7;
4759 RET_LABEL6:(void)0;
4760 }
4761 }
4762 {
4763 { /* Inline opts#OptionContext#options (var5) on <var5:OptionContext> */
4764 var10 = var5->attrs[COLOR_opts__OptionContext___options].val; /* _options on <var5:OptionContext> */
4765 if (unlikely(var10 == NULL)) {
4766 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _options");
4767 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 264);
4768 show_backtrace(1);
4769 }
4770 var8 = var10;
4771 RET_LABEL9:(void)0;
4772 }
4773 }
4774 var_ = var8;
4775 {
4776 var11 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
4777 }
4778 var_12 = var11;
4779 for(;;) {
4780 {
4781 var13 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_12);
4782 }
4783 if (var13){
4784 {
4785 var14 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_12);
4786 }
4787 var_option = var14;
4788 {
4789 { /* Inline opts#Option#names (var_option) on <var_option:Option> */
4790 var17 = var_option->attrs[COLOR_opts__Option___names].val; /* _names on <var_option:Option> */
4791 if (unlikely(var17 == NULL)) {
4792 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
4793 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
4794 show_backtrace(1);
4795 }
4796 var15 = var17;
4797 RET_LABEL16:(void)0;
4798 }
4799 }
4800 var_18 = var15;
4801 {
4802 var19 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_18);
4803 }
4804 var_20 = var19;
4805 for(;;) {
4806 {
4807 var21 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_20);
4808 }
4809 if (var21){
4810 {
4811 var22 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_20);
4812 }
4813 var_name = var22;
4814 if (varonce) {
4815 var23 = varonce;
4816 } else {
4817 var24 = "--";
4818 var25 = 2;
4819 var26 = standard___standard__NativeString___to_s_with_length(var24, var25);
4820 var23 = var26;
4821 varonce = var23;
4822 }
4823 {
4824 var27 = standard___standard__Text___has_prefix(var_name, var23);
4825 }
4826 if (var27){
4827 {
4828 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_names, var_name); /* Direct call array#Array#add on <var_names:Array[String]>*/
4829 }
4830 } else {
4831 }
4832 {
4833 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_20); /* Direct call array#ArrayIterator#next on <var_20:ArrayIterator[String]>*/
4834 }
4835 } else {
4836 goto BREAK_label;
4837 }
4838 }
4839 BREAK_label: (void)0;
4840 {
4841 { /* Inline abstract_collection#Iterator#finish (var_20) on <var_20:ArrayIterator[String]> */
4842 RET_LABEL28:(void)0;
4843 }
4844 }
4845 {
4846 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_12); /* Direct call array#ArrayIterator#next on <var_12:ArrayIterator[Option]>*/
4847 }
4848 } else {
4849 goto BREAK_label29;
4850 }
4851 }
4852 BREAK_label29: (void)0;
4853 {
4854 { /* Inline abstract_collection#Iterator#finish (var_12) on <var_12:ArrayIterator[Option]> */
4855 RET_LABEL30:(void)0;
4856 }
4857 }
4858 var = var_names;
4859 goto RET_LABEL;
4860 RET_LABEL:;
4861 return var;
4862 }
4863 /* method toolcontext#BashCompletion#rendering for (self: BashCompletion) */
4864 void nit___nit__BashCompletion___template__Template__rendering(val* self) {
4865 val* var /* : ToolContext */;
4866 val* var2 /* : ToolContext */;
4867 val* var3 /* : String */;
4868 val* var_name /* var name: String */;
4869 val* var4 /* : Array[String] */;
4870 val* var_option_names /* var option_names: Array[String] */;
4871 static val* varonce;
4872 val* var5 /* : String */;
4873 char* var6 /* : NativeString */;
4874 long var7 /* : Int */;
4875 val* var8 /* : FlatString */;
4876 static val* varonce9;
4877 val* var10 /* : String */;
4878 char* var11 /* : NativeString */;
4879 long var12 /* : Int */;
4880 val* var13 /* : FlatString */;
4881 val* var14 /* : ToolContext */;
4882 val* var16 /* : ToolContext */;
4883 val* var17 /* : String */;
4884 val* var18 /* : Array[Object] */;
4885 long var19 /* : Int */;
4886 val* var20 /* : NativeArray[Object] */;
4887 val* var21 /* : String */;
4888 static val* varonce22;
4889 val* var23 /* : String */;
4890 char* var24 /* : NativeString */;
4891 long var25 /* : Int */;
4892 val* var26 /* : FlatString */;
4893 static val* varonce27;
4894 val* var28 /* : String */;
4895 char* var29 /* : NativeString */;
4896 long var30 /* : Int */;
4897 val* var31 /* : FlatString */;
4898 val* var32 /* : Array[Object] */;
4899 long var33 /* : Int */;
4900 val* var34 /* : NativeArray[Object] */;
4901 val* var35 /* : String */;
4902 static val* varonce36;
4903 val* var37 /* : String */;
4904 char* var38 /* : NativeString */;
4905 long var39 /* : Int */;
4906 val* var40 /* : FlatString */;
4907 static val* varonce41;
4908 val* var42 /* : String */;
4909 char* var43 /* : NativeString */;
4910 long var44 /* : Int */;
4911 val* var45 /* : FlatString */;
4912 static val* varonce46;
4913 val* var47 /* : String */;
4914 char* var48 /* : NativeString */;
4915 long var49 /* : Int */;
4916 val* var50 /* : FlatString */;
4917 static val* varonce51;
4918 val* var52 /* : String */;
4919 char* var53 /* : NativeString */;
4920 long var54 /* : Int */;
4921 val* var55 /* : FlatString */;
4922 static val* varonce56;
4923 val* var57 /* : String */;
4924 char* var58 /* : NativeString */;
4925 long var59 /* : Int */;
4926 val* var60 /* : FlatString */;
4927 short int var61 /* : Bool */;
4928 short int var62 /* : Bool */;
4929 static val* varonce63;
4930 val* var64 /* : String */;
4931 char* var65 /* : NativeString */;
4932 long var66 /* : Int */;
4933 val* var67 /* : FlatString */;
4934 static val* varonce68;
4935 val* var69 /* : String */;
4936 char* var70 /* : NativeString */;
4937 long var71 /* : Int */;
4938 val* var72 /* : FlatString */;
4939 val* var73 /* : String */;
4940 static val* varonce74;
4941 val* var75 /* : String */;
4942 char* var76 /* : NativeString */;
4943 long var77 /* : Int */;
4944 val* var78 /* : FlatString */;
4945 val* var79 /* : Array[Object] */;
4946 long var80 /* : Int */;
4947 val* var81 /* : NativeArray[Object] */;
4948 val* var82 /* : String */;
4949 static val* varonce83;
4950 val* var84 /* : String */;
4951 char* var85 /* : NativeString */;
4952 long var86 /* : Int */;
4953 val* var87 /* : FlatString */;
4954 static val* varonce88;
4955 val* var89 /* : String */;
4956 char* var90 /* : NativeString */;
4957 long var91 /* : Int */;
4958 val* var92 /* : FlatString */;
4959 static val* varonce93;
4960 val* var94 /* : String */;
4961 char* var95 /* : NativeString */;
4962 long var96 /* : Int */;
4963 val* var97 /* : FlatString */;
4964 static val* varonce98;
4965 val* var99 /* : String */;
4966 char* var100 /* : NativeString */;
4967 long var101 /* : Int */;
4968 val* var102 /* : FlatString */;
4969 static val* varonce103;
4970 val* var104 /* : String */;
4971 char* var105 /* : NativeString */;
4972 long var106 /* : Int */;
4973 val* var107 /* : FlatString */;
4974 static val* varonce108;
4975 val* var109 /* : String */;
4976 char* var110 /* : NativeString */;
4977 long var111 /* : Int */;
4978 val* var112 /* : FlatString */;
4979 static val* varonce113;
4980 val* var114 /* : String */;
4981 char* var115 /* : NativeString */;
4982 long var116 /* : Int */;
4983 val* var117 /* : FlatString */;
4984 val* var118 /* : Array[Object] */;
4985 long var119 /* : Int */;
4986 val* var120 /* : NativeArray[Object] */;
4987 val* var121 /* : String */;
4988 {
4989 { /* Inline toolcontext#BashCompletion#toolcontext (self) on <self:BashCompletion> */
4990 var2 = self->attrs[COLOR_nit__toolcontext__BashCompletion___toolcontext].val; /* _toolcontext on <self:BashCompletion> */
4991 if (unlikely(var2 == NULL)) {
4992 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4993 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 524);
4994 show_backtrace(1);
4995 }
4996 var = var2;
4997 RET_LABEL1:(void)0;
4998 }
4999 }
5000 {
5001 var3 = nit___nit__ToolContext___toolname(var);
5002 }
5003 var_name = var3;
5004 {
5005 var4 = nit___nit__BashCompletion___extract_options_names(self);
5006 }
5007 var_option_names = var4;
5008 if (varonce) {
5009 var5 = varonce;
5010 } else {
5011 var6 = "# generated bash completion file for ";
5012 var7 = 37;
5013 var8 = standard___standard__NativeString___to_s_with_length(var6, var7);
5014 var5 = var8;
5015 varonce = var5;
5016 }
5017 if (varonce9) {
5018 var10 = varonce9;
5019 } else {
5020 var11 = " ";
5021 var12 = 1;
5022 var13 = standard___standard__NativeString___to_s_with_length(var11, var12);
5023 var10 = var13;
5024 varonce9 = var10;
5025 }
5026 {
5027 { /* Inline toolcontext#BashCompletion#toolcontext (self) on <self:BashCompletion> */
5028 var16 = self->attrs[COLOR_nit__toolcontext__BashCompletion___toolcontext].val; /* _toolcontext on <self:BashCompletion> */
5029 if (unlikely(var16 == NULL)) {
5030 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5031 PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 524);
5032 show_backtrace(1);
5033 }
5034 var14 = var16;
5035 RET_LABEL15:(void)0;
5036 }
5037 }
5038 {
5039 var17 = nit___nit__ToolContext___version(var14);
5040 }
5041 var18 = NEW_standard__Array(&type_standard__Array__standard__Object);
5042 { /* var18 = array_instance Array[Object] */
5043 var19 = 4;
5044 var20 = NEW_standard__NativeArray(var19, &type_standard__NativeArray__standard__Object);
5045 ((struct instance_standard__NativeArray*)var20)->values[0] = (val*) var5;
5046 ((struct instance_standard__NativeArray*)var20)->values[1] = (val*) var_name;
5047 ((struct instance_standard__NativeArray*)var20)->values[2] = (val*) var10;
5048 ((struct instance_standard__NativeArray*)var20)->values[3] = (val*) var17;
5049 {
5050 ((void (*)(val* self, val* p0, long p1))(var18->class->vft[COLOR_standard__array__Array__with_native]))(var18, var20, var19) /* with_native on <var18:Array[Object]>*/;
5051 }
5052 }
5053 {
5054 var21 = ((val* (*)(val* self))(var18->class->vft[COLOR_standard__string__Object__to_s]))(var18) /* to_s on <var18:Array[Object]>*/;
5055 }
5056 {
5057 template___template__Template___addn(self, var21); /* Direct call template#Template#addn on <self:BashCompletion>*/
5058 }
5059 if (varonce22) {
5060 var23 = varonce22;
5061 } else {
5062 var24 = "_";
5063 var25 = 1;
5064 var26 = standard___standard__NativeString___to_s_with_length(var24, var25);
5065 var23 = var26;
5066 varonce22 = var23;
5067 }
5068 if (varonce27) {
5069 var28 = varonce27;
5070 } else {
5071 var29 = "()";
5072 var30 = 2;
5073 var31 = standard___standard__NativeString___to_s_with_length(var29, var30);
5074 var28 = var31;
5075 varonce27 = var28;
5076 }
5077 var32 = NEW_standard__Array(&type_standard__Array__standard__Object);
5078 { /* var32 = array_instance Array[Object] */
5079 var33 = 3;
5080 var34 = NEW_standard__NativeArray(var33, &type_standard__NativeArray__standard__Object);
5081 ((struct instance_standard__NativeArray*)var34)->values[0] = (val*) var23;
5082 ((struct instance_standard__NativeArray*)var34)->values[1] = (val*) var_name;
5083 ((struct instance_standard__NativeArray*)var34)->values[2] = (val*) var28;
5084 {
5085 ((void (*)(val* self, val* p0, long p1))(var32->class->vft[COLOR_standard__array__Array__with_native]))(var32, var34, var33) /* with_native on <var32:Array[Object]>*/;
5086 }
5087 }
5088 {
5089 var35 = ((val* (*)(val* self))(var32->class->vft[COLOR_standard__string__Object__to_s]))(var32) /* to_s on <var32:Array[Object]>*/;
5090 }
5091 {
5092 template___template__Template___addn(self, var35); /* Direct call template#Template#addn on <self:BashCompletion>*/
5093 }
5094 if (varonce36) {
5095 var37 = varonce36;
5096 } else {
5097 var38 = "{";
5098 var39 = 1;
5099 var40 = standard___standard__NativeString___to_s_with_length(var38, var39);
5100 var37 = var40;
5101 varonce36 = var37;
5102 }
5103 {
5104 template___template__Template___addn(self, var37); /* Direct call template#Template#addn on <self:BashCompletion>*/
5105 }
5106 if (varonce41) {
5107 var42 = varonce41;
5108 } else {
5109 var43 = "\11local cur prev opts";
5110 var44 = 20;
5111 var45 = standard___standard__NativeString___to_s_with_length(var43, var44);
5112 var42 = var45;
5113 varonce41 = var42;
5114 }
5115 {
5116 template___template__Template___addn(self, var42); /* Direct call template#Template#addn on <self:BashCompletion>*/
5117 }
5118 if (varonce46) {
5119 var47 = varonce46;
5120 } else {
5121 var48 = "\11COMPREPLY=()";
5122 var49 = 13;
5123 var50 = standard___standard__NativeString___to_s_with_length(var48, var49);
5124 var47 = var50;
5125 varonce46 = var47;
5126 }
5127 {
5128 template___template__Template___addn(self, var47); /* Direct call template#Template#addn on <self:BashCompletion>*/
5129 }
5130 if (varonce51) {
5131 var52 = varonce51;
5132 } else {
5133 var53 = "\11cur=\"${COMP_WORDS[COMP_CWORD]}\"";
5134 var54 = 32;
5135 var55 = standard___standard__NativeString___to_s_with_length(var53, var54);
5136 var52 = var55;
5137 varonce51 = var52;
5138 }
5139 {
5140 template___template__Template___addn(self, var52); /* Direct call template#Template#addn on <self:BashCompletion>*/
5141 }
5142 if (varonce56) {
5143 var57 = varonce56;
5144 } else {
5145 var58 = "\11prev=\"${COMP_WORDS[COMP_CWORD-1]}\"";
5146 var59 = 35;
5147 var60 = standard___standard__NativeString___to_s_with_length(var58, var59);
5148 var57 = var60;
5149 varonce56 = var57;
5150 }
5151 {
5152 template___template__Template___addn(self, var57); /* Direct call template#Template#addn on <self:BashCompletion>*/
5153 }
5154 {
5155 var61 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_option_names);
5156 }
5157 var62 = !var61;
5158 if (var62){
5159 if (varonce63) {
5160 var64 = varonce63;
5161 } else {
5162 var65 = "\11opts=\"";
5163 var66 = 7;
5164 var67 = standard___standard__NativeString___to_s_with_length(var65, var66);
5165 var64 = var67;
5166 varonce63 = var64;
5167 }
5168 if (varonce68) {
5169 var69 = varonce68;
5170 } else {
5171 var70 = " ";
5172 var71 = 1;
5173 var72 = standard___standard__NativeString___to_s_with_length(var70, var71);
5174 var69 = var72;
5175 varonce68 = var69;
5176 }
5177 {
5178 var73 = standard__string___Collection___join(var_option_names, var69);
5179 }
5180 if (varonce74) {
5181 var75 = varonce74;
5182 } else {
5183 var76 = "\"";
5184 var77 = 1;
5185 var78 = standard___standard__NativeString___to_s_with_length(var76, var77);
5186 var75 = var78;
5187 varonce74 = var75;
5188 }
5189 var79 = NEW_standard__Array(&type_standard__Array__standard__Object);
5190 { /* var79 = array_instance Array[Object] */
5191 var80 = 3;
5192 var81 = NEW_standard__NativeArray(var80, &type_standard__NativeArray__standard__Object);
5193 ((struct instance_standard__NativeArray*)var81)->values[0] = (val*) var64;
5194 ((struct instance_standard__NativeArray*)var81)->values[1] = (val*) var73;
5195 ((struct instance_standard__NativeArray*)var81)->values[2] = (val*) var75;
5196 {
5197 ((void (*)(val* self, val* p0, long p1))(var79->class->vft[COLOR_standard__array__Array__with_native]))(var79, var81, var80) /* with_native on <var79:Array[Object]>*/;
5198 }
5199 }
5200 {
5201 var82 = ((val* (*)(val* self))(var79->class->vft[COLOR_standard__string__Object__to_s]))(var79) /* to_s on <var79:Array[Object]>*/;
5202 }
5203 {
5204 template___template__Template___addn(self, var82); /* Direct call template#Template#addn on <self:BashCompletion>*/
5205 }
5206 if (varonce83) {
5207 var84 = varonce83;
5208 } else {
5209 var85 = "\11if [[ ${cur} == -* ]] ; then";
5210 var86 = 29;
5211 var87 = standard___standard__NativeString___to_s_with_length(var85, var86);
5212 var84 = var87;
5213 varonce83 = var84;
5214 }
5215 {
5216 template___template__Template___addn(self, var84); /* Direct call template#Template#addn on <self:BashCompletion>*/
5217 }
5218 if (varonce88) {
5219 var89 = varonce88;
5220 } else {
5221 var90 = "\11\11COMPREPLY=( $(compgen -W \"${opts}\" -- ${cur}) )";
5222 var91 = 49;
5223 var92 = standard___standard__NativeString___to_s_with_length(var90, var91);
5224 var89 = var92;
5225 varonce88 = var89;
5226 }
5227 {
5228 template___template__Template___addn(self, var89); /* Direct call template#Template#addn on <self:BashCompletion>*/
5229 }
5230 if (varonce93) {
5231 var94 = varonce93;
5232 } else {
5233 var95 = "\11\11return 0";
5234 var96 = 10;
5235 var97 = standard___standard__NativeString___to_s_with_length(var95, var96);
5236 var94 = var97;
5237 varonce93 = var94;
5238 }
5239 {
5240 template___template__Template___addn(self, var94); /* Direct call template#Template#addn on <self:BashCompletion>*/
5241 }
5242 if (varonce98) {
5243 var99 = varonce98;
5244 } else {
5245 var100 = "\11fi";
5246 var101 = 3;
5247 var102 = standard___standard__NativeString___to_s_with_length(var100, var101);
5248 var99 = var102;
5249 varonce98 = var99;
5250 }
5251 {
5252 template___template__Template___addn(self, var99); /* Direct call template#Template#addn on <self:BashCompletion>*/
5253 }
5254 } else {
5255 }
5256 if (varonce103) {
5257 var104 = varonce103;
5258 } else {
5259 var105 = "} &&";
5260 var106 = 4;
5261 var107 = standard___standard__NativeString___to_s_with_length(var105, var106);
5262 var104 = var107;
5263 varonce103 = var104;
5264 }
5265 {
5266 template___template__Template___addn(self, var104); /* Direct call template#Template#addn on <self:BashCompletion>*/
5267 }
5268 if (varonce108) {
5269 var109 = varonce108;
5270 } else {
5271 var110 = "complete -o default -F _";
5272 var111 = 24;
5273 var112 = standard___standard__NativeString___to_s_with_length(var110, var111);
5274 var109 = var112;
5275 varonce108 = var109;
5276 }
5277 if (varonce113) {
5278 var114 = varonce113;
5279 } else {
5280 var115 = " ";
5281 var116 = 1;
5282 var117 = standard___standard__NativeString___to_s_with_length(var115, var116);
5283 var114 = var117;
5284 varonce113 = var114;
5285 }
5286 var118 = NEW_standard__Array(&type_standard__Array__standard__Object);
5287 { /* var118 = array_instance Array[Object] */
5288 var119 = 4;
5289 var120 = NEW_standard__NativeArray(var119, &type_standard__NativeArray__standard__Object);
5290 ((struct instance_standard__NativeArray*)var120)->values[0] = (val*) var109;
5291 ((struct instance_standard__NativeArray*)var120)->values[1] = (val*) var_name;
5292 ((struct instance_standard__NativeArray*)var120)->values[2] = (val*) var114;
5293 ((struct instance_standard__NativeArray*)var120)->values[3] = (val*) var_name;
5294 {
5295 ((void (*)(val* self, val* p0, long p1))(var118->class->vft[COLOR_standard__array__Array__with_native]))(var118, var120, var119) /* with_native on <var118:Array[Object]>*/;
5296 }
5297 }
5298 {
5299 var121 = ((val* (*)(val* self))(var118->class->vft[COLOR_standard__string__Object__to_s]))(var118) /* to_s on <var118:Array[Object]>*/;
5300 }
5301 {
5302 template___template__Template___addn(self, var121); /* Direct call template#Template#addn on <self:BashCompletion>*/
5303 }
5304 RET_LABEL:;
5305 }
5306 /* method toolcontext#BashCompletion#init for (self: BashCompletion) */
5307 void nit___nit__BashCompletion___standard__kernel__Object__init(val* self) {
5308 {
5309 ((void (*)(val* self))(self->class->vft[COLOR_nit___nit__BashCompletion___standard__kernel__Object__init]))(self) /* init on <self:BashCompletion>*/;
5310 }
5311 RET_LABEL:;
5312 }