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