+{ /* Inline toolcontext#ToolContext#error_count= (self,var9) on <self:ToolContext> */
+self->attrs[COLOR_toolcontext__ToolContext___error_count].l = var9; /* _error_count on <self:ToolContext> */
+RET_LABEL13:(void)0;
+}
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_stop_on_first_error (self) on <self:ToolContext> */
+var16 = self->attrs[COLOR_toolcontext__ToolContext___opt_stop_on_first_error].val; /* _opt_stop_on_first_error on <self:ToolContext> */
+if (unlikely(var16 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stop_on_first_error");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 261);
+show_backtrace(1);
+}
+var14 = var16;
+RET_LABEL15:(void)0;
+}
+}
+{
+{ /* Inline opts#Option#value (var14) on <var14:OptionBool> */
+var19 = var14->attrs[COLOR_opts__Option___value].val; /* _value on <var14:OptionBool> */
+var17 = var19;
+RET_LABEL18:(void)0;
+}
+}
+var20 = ((struct instance_kernel__Bool*)var17)->value; /* autounbox from nullable Object to Bool */;
+if (var20){
+{
+toolcontext__ToolContext__check_errors(self); /* Direct call toolcontext#ToolContext#check_errors on <self:ToolContext>*/
+}
+} else {
+}
+RET_LABEL:;
+}
+/* method toolcontext#ToolContext#error for (self: Object, nullable Location, String) */
+void VIRTUAL_toolcontext__ToolContext__error(val* self, val* p0, val* p1) {
+toolcontext__ToolContext__error(self, p0, p1); /* Direct call toolcontext#ToolContext#error on <self:Object(ToolContext)>*/
+RET_LABEL:;
+}
+/* method toolcontext#ToolContext#fatal_error for (self: ToolContext, nullable Location, String) */
+void toolcontext__ToolContext__fatal_error(val* self, val* p0, val* p1) {
+val* var_l /* var l: nullable Location */;
+val* var_s /* var s: String */;
+var_l = p0;
+var_s = p1;
+{
+toolcontext__ToolContext__error(self, var_l, var_s); /* Direct call toolcontext#ToolContext#error on <self:ToolContext>*/
+}
+{
+toolcontext__ToolContext__check_errors(self); /* Direct call toolcontext#ToolContext#check_errors on <self:ToolContext>*/
+}
+RET_LABEL:;
+}
+/* method toolcontext#ToolContext#fatal_error for (self: Object, nullable Location, String) */
+void VIRTUAL_toolcontext__ToolContext__fatal_error(val* self, val* p0, val* p1) {
+toolcontext__ToolContext__fatal_error(self, p0, p1); /* Direct call toolcontext#ToolContext#fatal_error on <self:Object(ToolContext)>*/
+RET_LABEL:;
+}
+/* method toolcontext#ToolContext#warning for (self: ToolContext, nullable Location, String, String) */
+void toolcontext__ToolContext__warning(val* self, val* p0, val* p1, val* p2) {
+val* var_l /* var l: nullable Location */;
+val* var_tag /* var tag: String */;
+val* var_text /* var text: String */;
+val* var /* : OptionArray */;
+val* var2 /* : OptionArray */;
+val* var3 /* : nullable Object */;
+val* var5 /* : nullable Object */;
+static val* varonce;
+val* var6 /* : String */;
+char* var7 /* : NativeString */;
+long var8 /* : Int */;
+val* var9 /* : FlatString */;
+val* var10 /* : Array[Object] */;
+long var11 /* : Int */;
+val* var12 /* : NativeArray[Object] */;
+val* var13 /* : String */;
+short int var14 /* : Bool */;
+short int var15 /* : Bool */;
+val* var16 /* : OptionArray */;
+val* var18 /* : OptionArray */;
+val* var19 /* : nullable Object */;
+val* var21 /* : nullable Object */;
+short int var22 /* : Bool */;
+short int var23 /* : Bool */;
+short int var_ /* var : Bool */;
+val* var24 /* : OptionCount */;
+val* var26 /* : OptionCount */;
+val* var27 /* : nullable Object */;
+val* var29 /* : nullable Object */;
+long var30 /* : Int */;
+short int var31 /* : Bool */;
+short int var32 /* : Bool */;
+short int var34 /* : Bool */;
+long var35 /* : Int */;
+val* var36 /* : Array[Message] */;
+val* var38 /* : Array[Message] */;
+val* var39 /* : Message */;
+long var40 /* : Int */;
+long var42 /* : Int */;
+long var43 /* : Int */;
+long var44 /* : Int */;
+short int var46 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+long var47 /* : Int */;
+val* var49 /* : OptionBool */;
+val* var51 /* : OptionBool */;
+val* var52 /* : nullable Object */;
+val* var54 /* : nullable Object */;
+short int var55 /* : Bool */;
+var_l = p0;
+var_tag = p1;
+var_text = p2;
+{
+{ /* Inline toolcontext#ToolContext#opt_warning (self) on <self:ToolContext> */
+var2 = self->attrs[COLOR_toolcontext__ToolContext___opt_warning].val; /* _opt_warning on <self:ToolContext> */
+if (unlikely(var2 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warning");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 237);
+show_backtrace(1);
+}
+var = var2;
+RET_LABEL1:(void)0;
+}
+}
+{
+{ /* Inline opts#Option#value (var) on <var:OptionArray> */
+var5 = var->attrs[COLOR_opts__Option___value].val; /* _value on <var:OptionArray> */
+var3 = var5;
+RET_LABEL4:(void)0;
+}
+}
+if (varonce) {
+var6 = varonce;
+} else {
+var7 = "no-";
+var8 = 3;
+var9 = string__NativeString__to_s_with_length(var7, var8);
+var6 = var9;
+varonce = var6;
+}
+var10 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var10 = array_instance Array[Object] */
+var11 = 2;
+var12 = NEW_array__NativeArray(var11, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var12)->values[0] = (val*) var6;
+((struct instance_array__NativeArray*)var12)->values[1] = (val*) var_tag;
+{
+((void (*)(val*, val*, long))(var10->class->vft[COLOR_array__Array__with_native]))(var10, var12, var11) /* with_native on <var10:Array[Object]>*/;
+}
+}
+{
+var13 = ((val* (*)(val*))(var10->class->vft[COLOR_string__Object__to_s]))(var10) /* to_s on <var10:Array[Object]>*/;
+}
+{
+var14 = array__AbstractArrayRead__has(var3, var13);
+}
+if (var14){
+goto RET_LABEL;
+} else {
+}
+{
+{ /* Inline toolcontext#ToolContext#opt_warning (self) on <self:ToolContext> */
+var18 = self->attrs[COLOR_toolcontext__ToolContext___opt_warning].val; /* _opt_warning on <self:ToolContext> */
+if (unlikely(var18 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warning");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 237);
+show_backtrace(1);
+}
+var16 = var18;
+RET_LABEL17:(void)0;
+}
+}
+{
+{ /* Inline opts#Option#value (var16) on <var16:OptionArray> */
+var21 = var16->attrs[COLOR_opts__Option___value].val; /* _value on <var16:OptionArray> */
+var19 = var21;
+RET_LABEL20:(void)0;
+}
+}
+{
+var22 = array__AbstractArrayRead__has(var19, var_tag);
+}
+var23 = !var22;
+var_ = var23;
+if (var23){
+{
+{ /* Inline toolcontext#ToolContext#opt_warn (self) on <self:ToolContext> */
+var26 = self->attrs[COLOR_toolcontext__ToolContext___opt_warn].val; /* _opt_warn on <self:ToolContext> */
+if (unlikely(var26 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_warn");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 234);
+show_backtrace(1);
+}
+var24 = var26;
+RET_LABEL25:(void)0;
+}
+}
+{
+{ /* Inline opts#Option#value (var24) on <var24:OptionCount> */
+var29 = var24->attrs[COLOR_opts__Option___value].val; /* _value on <var24:OptionCount> */
+var27 = var29;
+RET_LABEL28:(void)0;
+}
+}
+var30 = 0;
+{
+{ /* Inline kernel#Int#== (var27,var30) on <var27:nullable Object(Int)> */
+var34 = (var27 != NULL) && (var27->class == &class_kernel__Int);
+if (var34) {
+var35 = ((struct instance_kernel__Int*)var27)->value; /* autounbox from nullable Object to Int */;
+var34 = (var35 == var30);
+}
+var32 = var34;
+goto RET_LABEL33;
+RET_LABEL33:(void)0;
+}
+var31 = var32;
+}
+var15 = var31;
+} else {
+var15 = var_;
+}
+if (var15){
+goto RET_LABEL;
+} else {
+}
+{
+{ /* Inline toolcontext#ToolContext#messages (self) on <self:ToolContext> */
+var38 = self->attrs[COLOR_toolcontext__ToolContext___messages].val; /* _messages on <self:ToolContext> */
+if (unlikely(var38 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _messages");
+PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 104);
+show_backtrace(1);
+}
+var36 = var38;
+RET_LABEL37:(void)0;
+}
+}
+var39 = NEW_toolcontext__Message(&type_toolcontext__Message);
+{
+((void (*)(val*, val*))(var39->class->vft[COLOR_toolcontext__Message__location_61d]))(var39, var_l) /* location= on <var39:Message>*/;
+}
+{
+((void (*)(val*, val*))(var39->class->vft[COLOR_toolcontext__Message__tag_61d]))(var39, var_tag) /* tag= on <var39:Message>*/;
+}
+{
+((void (*)(val*, val*))(var39->class->vft[COLOR_toolcontext__Message__text_61d]))(var39, var_text) /* text= on <var39:Message>*/;
+}
+{
+((void (*)(val*))(var39->class->vft[COLOR_kernel__Object__init]))(var39) /* init on <var39:Message>*/;
+}
+{
+array__Array__add(var36, var39); /* Direct call array#Array#add on <var36:Array[Message]>*/
+}
+{
+{ /* Inline toolcontext#ToolContext#warning_count (self) on <self:ToolContext> */
+var42 = self->attrs[COLOR_toolcontext__ToolContext___warning_count].l; /* _warning_count on <self:ToolContext> */
+var40 = var42;
+RET_LABEL41:(void)0;
+}
+}
+var43 = 1;
+{
+{ /* Inline kernel#Int#+ (var40,var43) on <var40:Int> */
+/* Covariant cast for argument 0 (i) <var43:Int> isa OTHER */
+/* <var43:Int> isa OTHER */
+var46 = 1; /* easy <var43:Int> isa OTHER*/
+if (unlikely(!var46)) {
+var_class_name = type_kernel__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
+show_backtrace(1);
+}
+var47 = var40 + var43;
+var44 = var47;
+goto RET_LABEL45;
+RET_LABEL45:(void)0;
+}
+}
+{
+{ /* Inline toolcontext#ToolContext#warning_count= (self,var44) on <self:ToolContext> */
+self->attrs[COLOR_toolcontext__ToolContext___warning_count].l = var44; /* _warning_count on <self:ToolContext> */
+RET_LABEL48:(void)0;