X-Git-Url: http://nitlanguage.org diff --git a/c_src/transform.sep.1.c b/c_src/transform.sep.1.c index 55ea37e..20787fd 100644 --- a/c_src/transform.sep.1.c +++ b/c_src/transform.sep.1.c @@ -1,34 +1,90 @@ #include "transform.sep.0.h" -/* method transform#ToolContext#transform_phase for (self: ToolContext): Phase */ -val* transform__ToolContext__transform_phase(val* self) { -val* var /* : Phase */; -val* var1 /* : Phase */; -var1 = self->attrs[COLOR_transform__ToolContext___64dtransform_phase].val; /* @transform_phase on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @transform_phase", "src/transform.nit", 24); -exit(1); +/* method transform#ToolContext#opt_no_shortcut_range for (self: ToolContext): OptionBool */ +val* transform__ToolContext__opt_no_shortcut_range(val* self) { +val* var /* : OptionBool */; +val* var1 /* : OptionBool */; +var1 = self->attrs[COLOR_transform__ToolContext___opt_no_shortcut_range].val; /* _opt_no_shortcut_range on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_range"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 27); +show_backtrace(1); } var = var1; RET_LABEL:; return var; } -/* method transform#ToolContext#transform_phase for (self: Object): Phase */ -val* VIRTUAL_transform__ToolContext__transform_phase(val* self) { -val* var /* : Phase */; -val* var1 /* : Phase */; -var1 = transform__ToolContext__transform_phase(self); +/* method transform#ToolContext#opt_no_shortcut_range for (self: Object): OptionBool */ +val* VIRTUAL_transform__ToolContext__opt_no_shortcut_range(val* self) { +val* var /* : OptionBool */; +val* var1 /* : OptionBool */; +val* var3 /* : OptionBool */; +{ /* Inline transform#ToolContext#opt_no_shortcut_range (self) on */ +var3 = self->attrs[COLOR_transform__ToolContext___opt_no_shortcut_range].val; /* _opt_no_shortcut_range on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_range"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 27); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } -/* method transform#ToolContext#transform_phase= for (self: ToolContext, Phase) */ -void transform__ToolContext__transform_phase_61d(val* self, val* p0) { -self->attrs[COLOR_transform__ToolContext___64dtransform_phase].val = p0; /* @transform_phase on */ +/* method transform#ToolContext#init for (self: ToolContext) */ +void transform__ToolContext__init(val* self) { +val* var /* : OptionContext */; +val* var2 /* : OptionContext */; +val* var3 /* : OptionBool */; +val* var5 /* : OptionBool */; +val* var6 /* : Array[Option] */; +long var7 /* : Int */; +val* var8 /* : NativeArray[Option] */; +{ +((void (*)(val*))(self->class->vft[COLOR_transform__ToolContext__init]))(self) /* init on */; +} +{ +{ /* Inline toolcontext#ToolContext#option_context (self) on */ +var2 = self->attrs[COLOR_toolcontext__ToolContext___option_context].val; /* _option_context on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context"); +PRINT_ERROR(" (%s:%d)\n", "toolcontext.nit", 231); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; +} +} +{ +{ /* Inline transform#ToolContext#opt_no_shortcut_range (self) on */ +var5 = self->attrs[COLOR_transform__ToolContext___opt_no_shortcut_range].val; /* _opt_no_shortcut_range on */ +if (unlikely(var5 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_range"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 27); +show_backtrace(1); +} +var3 = var5; +RET_LABEL4:(void)0; +} +} +var6 = NEW_array__Array(&type_array__Arrayopts__Option); +{ /* var6 = array_instance Array[Option] */ +var7 = 1; +var8 = NEW_array__NativeArray(var7, &type_array__NativeArrayopts__Option); +((struct instance_array__NativeArray*)var8)->values[0] = (val*) var3; +{ +((void (*)(val*, val*, long))(var6->class->vft[COLOR_array__Array__with_native]))(var6, var8, var7) /* with_native on */; +} +} +{ +opts__OptionContext__add_option(var, var6); /* Direct call opts#OptionContext#add_option on */ +} RET_LABEL:; } -/* method transform#ToolContext#transform_phase= for (self: Object, Phase) */ -void VIRTUAL_transform__ToolContext__transform_phase_61d(val* self, val* p0) { -transform__ToolContext__transform_phase_61d(self, p0); +/* method transform#ToolContext#init for (self: Object) */ +void VIRTUAL_transform__ToolContext__init(val* self) { +transform__ToolContext__init(self); /* Direct call transform#ToolContext#init on */ RET_LABEL:; } /* method transform#TransformPhase#process_npropdef for (self: TransformPhase, APropdef) */ @@ -40,30 +96,37 @@ val* var1 /* : ASTValidationVisitor */; val* var_val /* var val: nullable Object */; var_npropdef = p0; var = NEW_transform__TransformVisitor(&type_transform__TransformVisitor); -((void (*)(val*, val*, val*))(var->class->vft[COLOR_transform__TransformVisitor__init]))(var, self, var_npropdef) /* init on */; -CHECK_NEW_transform__TransformVisitor(var); +{ +transform__TransformVisitor__init(var, self, var_npropdef); /* Direct call transform#TransformVisitor#init on */ +} var_v = var; -((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var_npropdef) /* enter_visit on */; +{ +parser_nodes__Visitor__enter_visit(var_v, var_npropdef); /* Direct call parser_nodes#Visitor#enter_visit on */ +} var1 = NEW_astvalidation__ASTValidationVisitor(&type_astvalidation__ASTValidationVisitor); -((void (*)(val*))(var1->class->vft[COLOR_astvalidation__ASTValidationVisitor__init]))(var1) /* init on */; -CHECK_NEW_astvalidation__ASTValidationVisitor(var1); +{ +((void (*)(val*))(var1->class->vft[COLOR_kernel__Object__init]))(var1) /* init on */; +} var_val = var1; -((void (*)(val*, val*))(var_val->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_val, var_npropdef) /* enter_visit on */; +{ +parser_nodes__Visitor__enter_visit(var_val, var_npropdef); /* Direct call parser_nodes#Visitor#enter_visit on */ +} RET_LABEL:; } /* method transform#TransformPhase#process_npropdef for (self: Object, APropdef) */ void VIRTUAL_transform__TransformPhase__process_npropdef(val* self, val* p0) { -transform__TransformPhase__process_npropdef(self, p0); +transform__TransformPhase__process_npropdef(self, p0); /* Direct call transform#TransformPhase#process_npropdef on */ RET_LABEL:; } /* method transform#TransformVisitor#phase for (self: TransformVisitor): TransformPhase */ val* transform__TransformVisitor__phase(val* self) { val* var /* : TransformPhase */; val* var1 /* : TransformPhase */; -var1 = self->attrs[COLOR_transform__TransformVisitor___64dphase].val; /* @phase on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @phase", "src/transform.nit", 45); -exit(1); +var1 = self->attrs[COLOR_transform__TransformVisitor___phase].val; /* _phase on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phase"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 55); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -73,29 +136,43 @@ return var; val* VIRTUAL_transform__TransformVisitor__phase(val* self) { val* var /* : TransformPhase */; val* var1 /* : TransformPhase */; -var1 = transform__TransformVisitor__phase(self); +val* var3 /* : TransformPhase */; +{ /* Inline transform#TransformVisitor#phase (self) on */ +var3 = self->attrs[COLOR_transform__TransformVisitor___phase].val; /* _phase on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phase"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 55); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } /* method transform#TransformVisitor#phase= for (self: TransformVisitor, TransformPhase) */ void transform__TransformVisitor__phase_61d(val* self, val* p0) { -self->attrs[COLOR_transform__TransformVisitor___64dphase].val = p0; /* @phase on */ +self->attrs[COLOR_transform__TransformVisitor___phase].val = p0; /* _phase on */ RET_LABEL:; } /* method transform#TransformVisitor#phase= for (self: Object, TransformPhase) */ void VIRTUAL_transform__TransformVisitor__phase_61d(val* self, val* p0) { -transform__TransformVisitor__phase_61d(self, p0); +{ /* Inline transform#TransformVisitor#phase= (self,p0) on */ +self->attrs[COLOR_transform__TransformVisitor___phase].val = p0; /* _phase on */ +RET_LABEL1:(void)0; +} RET_LABEL:; } /* method transform#TransformVisitor#mmodule for (self: TransformVisitor): MModule */ val* transform__TransformVisitor__mmodule(val* self) { val* var /* : MModule */; val* var1 /* : MModule */; -var1 = self->attrs[COLOR_transform__TransformVisitor___64dmmodule].val; /* @mmodule on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule", "src/transform.nit", 46); -exit(1); +var1 = self->attrs[COLOR_transform__TransformVisitor___mmodule].val; /* _mmodule on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 56); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -105,29 +182,43 @@ return var; val* VIRTUAL_transform__TransformVisitor__mmodule(val* self) { val* var /* : MModule */; val* var1 /* : MModule */; -var1 = transform__TransformVisitor__mmodule(self); +val* var3 /* : MModule */; +{ /* Inline transform#TransformVisitor#mmodule (self) on */ +var3 = self->attrs[COLOR_transform__TransformVisitor___mmodule].val; /* _mmodule on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 56); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } /* method transform#TransformVisitor#mmodule= for (self: TransformVisitor, MModule) */ void transform__TransformVisitor__mmodule_61d(val* self, val* p0) { -self->attrs[COLOR_transform__TransformVisitor___64dmmodule].val = p0; /* @mmodule on */ +self->attrs[COLOR_transform__TransformVisitor___mmodule].val = p0; /* _mmodule on */ RET_LABEL:; } /* method transform#TransformVisitor#mmodule= for (self: Object, MModule) */ void VIRTUAL_transform__TransformVisitor__mmodule_61d(val* self, val* p0) { -transform__TransformVisitor__mmodule_61d(self, p0); +{ /* Inline transform#TransformVisitor#mmodule= (self,p0) on */ +self->attrs[COLOR_transform__TransformVisitor___mmodule].val = p0; /* _mmodule on */ +RET_LABEL1:(void)0; +} RET_LABEL:; } /* method transform#TransformVisitor#mclassdef for (self: TransformVisitor): MClassDef */ val* transform__TransformVisitor__mclassdef(val* self) { val* var /* : MClassDef */; val* var1 /* : MClassDef */; -var1 = self->attrs[COLOR_transform__TransformVisitor___64dmclassdef].val; /* @mclassdef on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mclassdef", "src/transform.nit", 47); -exit(1); +var1 = self->attrs[COLOR_transform__TransformVisitor___mclassdef].val; /* _mclassdef on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 57); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -137,29 +228,43 @@ return var; val* VIRTUAL_transform__TransformVisitor__mclassdef(val* self) { val* var /* : MClassDef */; val* var1 /* : MClassDef */; -var1 = transform__TransformVisitor__mclassdef(self); +val* var3 /* : MClassDef */; +{ /* Inline transform#TransformVisitor#mclassdef (self) on */ +var3 = self->attrs[COLOR_transform__TransformVisitor___mclassdef].val; /* _mclassdef on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 57); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } /* method transform#TransformVisitor#mclassdef= for (self: TransformVisitor, MClassDef) */ void transform__TransformVisitor__mclassdef_61d(val* self, val* p0) { -self->attrs[COLOR_transform__TransformVisitor___64dmclassdef].val = p0; /* @mclassdef on */ +self->attrs[COLOR_transform__TransformVisitor___mclassdef].val = p0; /* _mclassdef on */ RET_LABEL:; } /* method transform#TransformVisitor#mclassdef= for (self: Object, MClassDef) */ void VIRTUAL_transform__TransformVisitor__mclassdef_61d(val* self, val* p0) { -transform__TransformVisitor__mclassdef_61d(self, p0); +{ /* Inline transform#TransformVisitor#mclassdef= (self,p0) on */ +self->attrs[COLOR_transform__TransformVisitor___mclassdef].val = p0; /* _mclassdef on */ +RET_LABEL1:(void)0; +} RET_LABEL:; } /* method transform#TransformVisitor#mpropdef for (self: TransformVisitor): MPropDef */ val* transform__TransformVisitor__mpropdef(val* self) { val* var /* : MPropDef */; val* var1 /* : MPropDef */; -var1 = self->attrs[COLOR_transform__TransformVisitor___64dmpropdef].val; /* @mpropdef on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mpropdef", "src/transform.nit", 48); -exit(1); +var1 = self->attrs[COLOR_transform__TransformVisitor___mpropdef].val; /* _mpropdef on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 58); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -169,29 +274,43 @@ return var; val* VIRTUAL_transform__TransformVisitor__mpropdef(val* self) { val* var /* : MPropDef */; val* var1 /* : MPropDef */; -var1 = transform__TransformVisitor__mpropdef(self); +val* var3 /* : MPropDef */; +{ /* Inline transform#TransformVisitor#mpropdef (self) on */ +var3 = self->attrs[COLOR_transform__TransformVisitor___mpropdef].val; /* _mpropdef on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 58); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } /* method transform#TransformVisitor#mpropdef= for (self: TransformVisitor, MPropDef) */ void transform__TransformVisitor__mpropdef_61d(val* self, val* p0) { -self->attrs[COLOR_transform__TransformVisitor___64dmpropdef].val = p0; /* @mpropdef on */ +self->attrs[COLOR_transform__TransformVisitor___mpropdef].val = p0; /* _mpropdef on */ RET_LABEL:; } /* method transform#TransformVisitor#mpropdef= for (self: Object, MPropDef) */ void VIRTUAL_transform__TransformVisitor__mpropdef_61d(val* self, val* p0) { -transform__TransformVisitor__mpropdef_61d(self, p0); +{ /* Inline transform#TransformVisitor#mpropdef= (self,p0) on */ +self->attrs[COLOR_transform__TransformVisitor___mpropdef].val = p0; /* _mpropdef on */ +RET_LABEL1:(void)0; +} RET_LABEL:; } /* method transform#TransformVisitor#builder for (self: TransformVisitor): ASTBuilder */ val* transform__TransformVisitor__builder(val* self) { val* var /* : ASTBuilder */; val* var1 /* : ASTBuilder */; -var1 = self->attrs[COLOR_transform__TransformVisitor___64dbuilder].val; /* @builder on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @builder", "src/transform.nit", 49); -exit(1); +var1 = self->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -201,19 +320,32 @@ return var; val* VIRTUAL_transform__TransformVisitor__builder(val* self) { val* var /* : ASTBuilder */; val* var1 /* : ASTBuilder */; -var1 = transform__TransformVisitor__builder(self); +val* var3 /* : ASTBuilder */; +{ /* Inline transform#TransformVisitor#builder (self) on */ +var3 = self->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } /* method transform#TransformVisitor#builder= for (self: TransformVisitor, ASTBuilder) */ void transform__TransformVisitor__builder_61d(val* self, val* p0) { -self->attrs[COLOR_transform__TransformVisitor___64dbuilder].val = p0; /* @builder on */ +self->attrs[COLOR_transform__TransformVisitor___builder].val = p0; /* _builder on */ RET_LABEL:; } /* method transform#TransformVisitor#builder= for (self: Object, ASTBuilder) */ void VIRTUAL_transform__TransformVisitor__builder_61d(val* self, val* p0) { -transform__TransformVisitor__builder_61d(self, p0); +{ /* Inline transform#TransformVisitor#builder= (self,p0) on */ +self->attrs[COLOR_transform__TransformVisitor___builder].val = p0; /* _builder on */ +RET_LABEL1:(void)0; +} RET_LABEL:; } /* method transform#TransformVisitor#init for (self: TransformVisitor, TransformPhase, APropdef) */ @@ -221,44 +353,182 @@ void transform__TransformVisitor__init(val* self, val* p0, val* p1) { val* var_phase /* var phase: TransformPhase */; val* var_npropdef /* var npropdef: APropdef */; val* var /* : nullable MPropDef */; -val* var1 /* : MPropDef */; -val* var2 /* : MClassDef */; -val* var3 /* : MClassDef */; -val* var4 /* : MModule */; -val* var5 /* : ASTBuilder */; -val* var6 /* : MModule */; +val* var3 /* : nullable MPropDef */; +val* var5 /* : MPropDef */; val* var7 /* : MPropDef */; val* var8 /* : MClassDef */; -val* var9 /* : MClassType */; +val* var10 /* : MClassDef */; +val* var12 /* : MClassDef */; +val* var14 /* : MClassDef */; +val* var15 /* : MModule */; +val* var17 /* : MModule */; +val* var19 /* : ASTBuilder */; +val* var20 /* : MModule */; +val* var22 /* : MModule */; +val* var23 /* : MPropDef */; +val* var25 /* : MPropDef */; +val* var26 /* : MClassDef */; +val* var28 /* : MClassDef */; +val* var29 /* : MClassType */; +val* var31 /* : MClassType */; +{ +((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on */; +} var_phase = p0; var_npropdef = p1; -((void (*)(val*))(self->class->vft[COLOR_parser_nodes__Visitor__init]))(self) /* init on */; -((void (*)(val*, val*))(self->class->vft[COLOR_transform__TransformVisitor__phase_61d]))(self, var_phase) /* phase= on */; -var = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_npropdef) /* mpropdef on */; -if (var == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/transform.nit", 54); -exit(1); -} -((void (*)(val*, val*))(self->class->vft[COLOR_transform__TransformVisitor__mpropdef_61d]))(self, var) /* mpropdef= on */; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_transform__TransformVisitor__mpropdef]))(self) /* mpropdef on */; -var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MPropDef__mclassdef]))(var1) /* mclassdef on */; -((void (*)(val*, val*))(self->class->vft[COLOR_transform__TransformVisitor__mclassdef_61d]))(self, var2) /* mclassdef= on */; -var3 = ((val* (*)(val*))(self->class->vft[COLOR_transform__TransformVisitor__mclassdef]))(self) /* mclassdef on */; -var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model__MClassDef__mmodule]))(var3) /* mmodule on */; -((void (*)(val*, val*))(self->class->vft[COLOR_transform__TransformVisitor__mmodule_61d]))(self, var4) /* mmodule= on */; -var5 = NEW_astbuilder__ASTBuilder(&type_astbuilder__ASTBuilder); -var6 = ((val* (*)(val*))(self->class->vft[COLOR_transform__TransformVisitor__mmodule]))(self) /* mmodule on */; -var7 = ((val* (*)(val*))(self->class->vft[COLOR_transform__TransformVisitor__mpropdef]))(self) /* mpropdef on */; -var8 = ((val* (*)(val*))(var7->class->vft[COLOR_model__MPropDef__mclassdef]))(var7) /* mclassdef on */; -var9 = ((val* (*)(val*))(var8->class->vft[COLOR_model__MClassDef__bound_mtype]))(var8) /* bound_mtype on */; -((void (*)(val*, val*, val*))(var5->class->vft[COLOR_astbuilder__ASTBuilder__init]))(var5, var6, var9) /* init on */; -CHECK_NEW_astbuilder__ASTBuilder(var5); -((void (*)(val*, val*))(self->class->vft[COLOR_transform__TransformVisitor__builder_61d]))(self, var5) /* builder= on */; +{ +{ /* Inline transform#TransformVisitor#phase= (self,var_phase) on */ +self->attrs[COLOR_transform__TransformVisitor___phase].val = var_phase; /* _phase on */ +RET_LABEL1:(void)0; +} +} +{ +{ /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on */ +var3 = var_npropdef->attrs[COLOR_modelize_property__APropdef___mpropdef].val; /* _mpropdef on */ +var = var3; +RET_LABEL2:(void)0; +} +} +if (unlikely(var == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 64); +show_backtrace(1); +} +{ +{ /* Inline transform#TransformVisitor#mpropdef= (self,var) on */ +self->attrs[COLOR_transform__TransformVisitor___mpropdef].val = var; /* _mpropdef on */ +RET_LABEL4:(void)0; +} +} +{ +{ /* Inline transform#TransformVisitor#mpropdef (self) on */ +var7 = self->attrs[COLOR_transform__TransformVisitor___mpropdef].val; /* _mpropdef on */ +if (unlikely(var7 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 58); +show_backtrace(1); +} +var5 = var7; +RET_LABEL6:(void)0; +} +} +{ +{ /* Inline model#MPropDef#mclassdef (var5) on */ +var10 = var5->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on */ +if (unlikely(var10 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895); +show_backtrace(1); +} +var8 = var10; +RET_LABEL9:(void)0; +} +} +{ +{ /* Inline transform#TransformVisitor#mclassdef= (self,var8) on */ +self->attrs[COLOR_transform__TransformVisitor___mclassdef].val = var8; /* _mclassdef on */ +RET_LABEL11:(void)0; +} +} +{ +{ /* Inline transform#TransformVisitor#mclassdef (self) on */ +var14 = self->attrs[COLOR_transform__TransformVisitor___mclassdef].val; /* _mclassdef on */ +if (unlikely(var14 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 57); +show_backtrace(1); +} +var12 = var14; +RET_LABEL13:(void)0; +} +} +{ +{ /* Inline model#MClassDef#mmodule (var12) on */ +var17 = var12->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var17 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489); +show_backtrace(1); +} +var15 = var17; +RET_LABEL16:(void)0; +} +} +{ +{ /* Inline transform#TransformVisitor#mmodule= (self,var15) on */ +self->attrs[COLOR_transform__TransformVisitor___mmodule].val = var15; /* _mmodule on */ +RET_LABEL18:(void)0; +} +} +var19 = NEW_astbuilder__ASTBuilder(&type_astbuilder__ASTBuilder); +{ +{ /* Inline transform#TransformVisitor#mmodule (self) on */ +var22 = self->attrs[COLOR_transform__TransformVisitor___mmodule].val; /* _mmodule on */ +if (unlikely(var22 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 56); +show_backtrace(1); +} +var20 = var22; +RET_LABEL21:(void)0; +} +} +{ +{ /* Inline transform#TransformVisitor#mpropdef (self) on */ +var25 = self->attrs[COLOR_transform__TransformVisitor___mpropdef].val; /* _mpropdef on */ +if (unlikely(var25 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 58); +show_backtrace(1); +} +var23 = var25; +RET_LABEL24:(void)0; +} +} +{ +{ /* Inline model#MPropDef#mclassdef (var23) on */ +var28 = var23->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on */ +if (unlikely(var28 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895); +show_backtrace(1); +} +var26 = var28; +RET_LABEL27:(void)0; +} +} +{ +{ /* Inline model#MClassDef#bound_mtype (var26) on */ +var31 = var26->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var31 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495); +show_backtrace(1); +} +var29 = var31; +RET_LABEL30:(void)0; +} +} +{ +((void (*)(val*, val*))(var19->class->vft[COLOR_astbuilder__ASTBuilder__mmodule_61d]))(var19, var20) /* mmodule= on */; +} +{ +((void (*)(val*, val*))(var19->class->vft[COLOR_astbuilder__ASTBuilder__anchor_61d]))(var19, var29) /* anchor= on */; +} +{ +((void (*)(val*))(var19->class->vft[COLOR_kernel__Object__init]))(var19) /* init on */; +} +{ +{ /* Inline transform#TransformVisitor#builder= (self,var19) on */ +self->attrs[COLOR_transform__TransformVisitor___builder].val = var19; /* _builder on */ +RET_LABEL32:(void)0; +} +} RET_LABEL:; } /* method transform#TransformVisitor#init for (self: Object, TransformPhase, APropdef) */ void VIRTUAL_transform__TransformVisitor__init(val* self, val* p0, val* p1) { -transform__TransformVisitor__init(self, p0, p1); +transform__TransformVisitor__init(self, p0, p1); /* Direct call transform#TransformVisitor#init on */ RET_LABEL:; } /* method transform#TransformVisitor#visit for (self: TransformVisitor, ANode) */ @@ -280,72 +550,18 @@ if (var){ goto RET_LABEL; } else { } +{ ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__visit_all]))(var_node, self) /* visit_all on */; +} +{ ((void (*)(val*, val*))(var_node->class->vft[COLOR_transform__ANode__accept_transform_visitor]))(var_node, self) /* accept_transform_visitor on */; +} RET_LABEL:; } /* method transform#TransformVisitor#visit for (self: Object, ANode) */ void VIRTUAL_transform__TransformVisitor__visit(val* self, val* p0) { -transform__TransformVisitor__visit(self, p0); -RET_LABEL:; -} -/* method transform#TransformVisitor#get_class for (self: TransformVisitor, AExpr, String): MClass */ -val* transform__TransformVisitor__get_class(val* self, val* p0, val* p1) { -val* var /* : MClass */; -val* var_location /* var location: AExpr */; -val* var_name /* var name: String */; -val* var1 /* : MModule */; -val* var2 /* : MClass */; -var_location = p0; -var_name = p1; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_transform__TransformVisitor__mmodule]))(self) /* mmodule on */; -var2 = ((val* (*)(val*, val*))(var1->class->vft[COLOR_model__MModule__get_primitive_class]))(var1, var_name) /* get_primitive_class on */; -var = var2; -goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method transform#TransformVisitor#get_class for (self: Object, AExpr, String): MClass */ -val* VIRTUAL_transform__TransformVisitor__get_class(val* self, val* p0, val* p1) { -val* var /* : MClass */; -val* var1 /* : MClass */; -var1 = transform__TransformVisitor__get_class(self, p0, p1); -var = var1; -RET_LABEL:; -return var; -} -/* method transform#TransformVisitor#get_method for (self: TransformVisitor, AExpr, String, MClass): MMethod */ -val* transform__TransformVisitor__get_method(val* self, val* p0, val* p1, val* p2) { -val* var /* : MMethod */; -val* var_location /* var location: AExpr */; -val* var_name /* var name: String */; -val* var_recv /* var recv: MClass */; -val* var1 /* : TransformPhase */; -val* var2 /* : ToolContext */; -val* var3 /* : ModelBuilder */; -val* var4 /* : MModule */; -val* var5 /* : MMethod */; -var_location = p0; -var_name = p1; -var_recv = p2; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_transform__TransformVisitor__phase]))(self) /* phase on */; -var2 = ((val* (*)(val*))(var1->class->vft[COLOR_phase__Phase__toolcontext]))(var1) /* toolcontext on */; -var3 = ((val* (*)(val*))(var2->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder]))(var2) /* modelbuilder on */; -var4 = ((val* (*)(val*))(self->class->vft[COLOR_transform__TransformVisitor__mmodule]))(self) /* mmodule on */; -var5 = ((val* (*)(val*, val*, val*, val*, val*))(var3->class->vft[COLOR_modelbuilder__ModelBuilder__force_get_primitive_method]))(var3, var_location, var_name, var_recv, var4) /* force_get_primitive_method on */; -var = var5; -goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method transform#TransformVisitor#get_method for (self: Object, AExpr, String, MClass): MMethod */ -val* VIRTUAL_transform__TransformVisitor__get_method(val* self, val* p0, val* p1, val* p2) { -val* var /* : MMethod */; -val* var1 /* : MMethod */; -var1 = transform__TransformVisitor__get_method(self, p0, p1, p2); -var = var1; +transform__TransformVisitor__visit(self, p0); /* Direct call transform#TransformVisitor#visit on */ RET_LABEL:; -return var; } /* method transform#ANode#accept_transform_visitor for (self: ANode, TransformVisitor) */ void transform__ANode__accept_transform_visitor(val* self, val* p0) { @@ -355,133 +571,340 @@ RET_LABEL:; } /* method transform#ANode#accept_transform_visitor for (self: Object, TransformVisitor) */ void VIRTUAL_transform__ANode__accept_transform_visitor(val* self, val* p0) { -transform__ANode__accept_transform_visitor(self, p0); +val* var_v /* var v: TransformVisitor */; +{ /* Inline transform#ANode#accept_transform_visitor (self,p0) on */ +var_v = p0; +RET_LABEL1:(void)0; +} RET_LABEL:; } /* method transform#AVardeclExpr#accept_transform_visitor for (self: AVardeclExpr, TransformVisitor) */ void transform__AVardeclExpr__accept_transform_visitor(val* self, val* p0) { val* var_v /* var v: TransformVisitor */; val* var /* : nullable AExpr */; +val* var2 /* : nullable AExpr */; val* var_nexpr /* var nexpr: nullable AExpr */; -val* var1 /* : null */; -short int var2 /* : Bool */; -val* var3 /* : ASTBuilder */; -val* var4 /* : nullable Variable */; -val* var5 /* : AVarAssignExpr */; +val* var3 /* : null */; +short int var4 /* : Bool */; +short int var5 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var7 /* : Bool */; +short int var9 /* : Bool */; +val* var10 /* : ASTBuilder */; +val* var12 /* : ASTBuilder */; +val* var13 /* : nullable Variable */; +val* var15 /* : nullable Variable */; +val* var16 /* : AVarAssignExpr */; val* var_nvar /* var nvar: AVarAssignExpr */; var_v = p0; -var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AVardeclExpr__n_expr]))(self) /* n_expr on */; +{ +{ /* Inline parser_nodes#AVardeclExpr#n_expr (self) on */ +var2 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on */ +var = var2; +RET_LABEL1:(void)0; +} +} var_nexpr = var; -var1 = NULL; +var3 = NULL; if (var_nexpr == NULL) { -var2 = 1; /* is null */ +var4 = 1; /* is null */ } else { -var2 = 0; /* arg is null but recv is not */ +var4 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel#Object#== (var_nexpr,var3) on */ +var_other = var3; +{ +{ /* Inline kernel#Object#is_same_instance (var_nexpr,var_other) on */ +var9 = var_nexpr == var_other; +var7 = var9; +goto RET_LABEL8; +RET_LABEL8:(void)0; +} } -if (var2){ -((void (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__detach]))(self) /* detach on */; +var5 = var7; +goto RET_LABEL6; +RET_LABEL6:(void)0; +} +var4 = var5; +} +if (var4){ } else { -var3 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var4 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AVardeclExpr__variable]))(self) /* variable on */; -if (var4 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/transform.nit", 99); -exit(1); +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var12 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var12 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var10 = var12; +RET_LABEL11:(void)0; +} +} +{ +{ /* Inline scope#AVardeclExpr#variable (self) on */ +var15 = self->attrs[COLOR_scope__AVardeclExpr___variable].val; /* _variable on */ +var13 = var15; +RET_LABEL14:(void)0; +} +} +if (unlikely(var13 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 110); +show_backtrace(1); +} +{ +var16 = astbuilder__ASTBuilder__make_var_assign(var10, var13, var_nexpr); +} +var_nvar = var16; +{ +parser_nodes__Prod__replace_with(self, var_nvar); /* Direct call parser_nodes#Prod#replace_with on */ } -var5 = ((val* (*)(val*, val*, val*))(var3->class->vft[COLOR_astbuilder__ASTBuilder__make_var_assign]))(var3, var4, var_nexpr) /* make_var_assign on */; -var_nvar = var5; -((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nvar) /* replace_with on */; } RET_LABEL:; } /* method transform#AVardeclExpr#accept_transform_visitor for (self: Object, TransformVisitor) */ void VIRTUAL_transform__AVardeclExpr__accept_transform_visitor(val* self, val* p0) { -transform__AVardeclExpr__accept_transform_visitor(self, p0); +transform__AVardeclExpr__accept_transform_visitor(self, p0); /* Direct call transform#AVardeclExpr#accept_transform_visitor on */ RET_LABEL:; } /* method transform#AIfexprExpr#accept_transform_visitor for (self: AIfexprExpr, TransformVisitor) */ void transform__AIfexprExpr__accept_transform_visitor(val* self, val* p0) { val* var_v /* var v: TransformVisitor */; val* var /* : ASTBuilder */; -val* var1 /* : AExpr */; -val* var2 /* : nullable MType */; -val* var3 /* : AIfExpr */; -val* var_nif /* var nif: AIfExpr */; -val* var4 /* : nullable AExpr */; +val* var2 /* : ASTBuilder */; +val* var3 /* : AExpr */; val* var5 /* : AExpr */; -val* var6 /* : nullable AExpr */; -val* var7 /* : AExpr */; +val* var6 /* : nullable MType */; +val* var8 /* : nullable MType */; +val* var9 /* : AIfExpr */; +val* var_nif /* var nif: AIfExpr */; +val* var10 /* : nullable AExpr */; +val* var12 /* : nullable AExpr */; +val* var13 /* : AExpr */; +val* var15 /* : AExpr */; +val* var16 /* : nullable AExpr */; +val* var18 /* : nullable AExpr */; +val* var19 /* : AExpr */; +val* var21 /* : AExpr */; var_v = p0; -var = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfexprExpr__n_expr]))(self) /* n_expr on */; -var2 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on */; -var3 = ((val* (*)(val*, val*, val*))(var->class->vft[COLOR_astbuilder__ASTBuilder__make_if]))(var, var1, var2) /* make_if on */; -var_nif = var3; -var4 = ((val* (*)(val*))(var_nif->class->vft[COLOR_parser_nodes__AIfExpr__n_then]))(var_nif) /* n_then on */; -var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfexprExpr__n_then]))(self) /* n_then on */; -if (var4 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/transform.nit", 112); -exit(1); +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var2 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; +} +} +{ +{ /* Inline parser_nodes#AIfexprExpr#n_expr (self) on */ +var5 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var5 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1396); +show_backtrace(1); +} +var3 = var5; +RET_LABEL4:(void)0; +} +} +{ +{ /* Inline typing#AExpr#mtype (self) on */ +var8 = self->attrs[COLOR_typing__AExpr___mtype].val; /* _mtype on */ +var6 = var8; +RET_LABEL7:(void)0; +} +} +{ +var9 = astbuilder__ASTBuilder__make_if(var, var3, var6); +} +var_nif = var9; +{ +{ /* Inline parser_nodes#AIfExpr#n_then (var_nif) on */ +var12 = var_nif->attrs[COLOR_parser_nodes__AIfExpr___n_then].val; /* _n_then on */ +var10 = var12; +RET_LABEL11:(void)0; +} +} +{ +{ /* Inline parser_nodes#AIfexprExpr#n_then (self) on */ +var15 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_then].val; /* _n_then on */ +if (unlikely(var15 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1398); +show_backtrace(1); +} +var13 = var15; +RET_LABEL14:(void)0; +} +} +if (var10 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 123); +show_backtrace(1); } else { -((void (*)(val*, val*))(var4->class->vft[COLOR_astbuilder__AExpr__add]))(var4, var5) /* add on */; +((void (*)(val*, val*))(var10->class->vft[COLOR_astbuilder__AExpr__add]))(var10, var13) /* add on */; } -var6 = ((val* (*)(val*))(var_nif->class->vft[COLOR_parser_nodes__AIfExpr__n_else]))(var_nif) /* n_else on */; -var7 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfexprExpr__n_else]))(self) /* n_else on */; -if (var6 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/transform.nit", 113); -exit(1); +{ +{ /* Inline parser_nodes#AIfExpr#n_else (var_nif) on */ +var18 = var_nif->attrs[COLOR_parser_nodes__AIfExpr___n_else].val; /* _n_else on */ +var16 = var18; +RET_LABEL17:(void)0; +} +} +{ +{ /* Inline parser_nodes#AIfexprExpr#n_else (self) on */ +var21 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_else].val; /* _n_else on */ +if (unlikely(var21 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1400); +show_backtrace(1); +} +var19 = var21; +RET_LABEL20:(void)0; +} +} +if (var16 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 124); +show_backtrace(1); } else { -((void (*)(val*, val*))(var6->class->vft[COLOR_astbuilder__AExpr__add]))(var6, var7) /* add on */; +((void (*)(val*, val*))(var16->class->vft[COLOR_astbuilder__AExpr__add]))(var16, var19) /* add on */; +} +{ +parser_nodes__Prod__replace_with(self, var_nif); /* Direct call parser_nodes#Prod#replace_with on */ } -((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nif) /* replace_with on */; RET_LABEL:; } /* method transform#AIfexprExpr#accept_transform_visitor for (self: Object, TransformVisitor) */ void VIRTUAL_transform__AIfexprExpr__accept_transform_visitor(val* self, val* p0) { -transform__AIfexprExpr__accept_transform_visitor(self, p0); +transform__AIfexprExpr__accept_transform_visitor(self, p0); /* Direct call transform#AIfexprExpr#accept_transform_visitor on */ RET_LABEL:; } /* method transform#AOrExpr#accept_transform_visitor for (self: AOrExpr, TransformVisitor) */ void transform__AOrExpr__accept_transform_visitor(val* self, val* p0) { val* var_v /* var v: TransformVisitor */; val* var /* : ASTBuilder */; -val* var1 /* : AExpr */; -val* var2 /* : nullable MType */; -val* var3 /* : AIfExpr */; -val* var_nif /* var nif: AIfExpr */; -val* var4 /* : nullable AExpr */; +val* var2 /* : ASTBuilder */; +val* var3 /* : AExpr */; val* var5 /* : AExpr */; -val* var6 /* : AVarExpr */; -val* var7 /* : nullable AExpr */; -val* var8 /* : AExpr */; +val* var6 /* : nullable MType */; +val* var8 /* : nullable MType */; +val* var9 /* : AIfExpr */; +val* var_nif /* var nif: AIfExpr */; +val* var10 /* : nullable AExpr */; +val* var12 /* : nullable AExpr */; +val* var13 /* : AExpr */; +val* var15 /* : AExpr */; +val* var16 /* : AVarExpr */; +val* var17 /* : nullable AExpr */; +val* var19 /* : nullable AExpr */; +val* var20 /* : AExpr */; +val* var22 /* : AExpr */; var_v = p0; -var = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AOrExpr__n_expr]))(self) /* n_expr on */; -var2 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on */; -var3 = ((val* (*)(val*, val*, val*))(var->class->vft[COLOR_astbuilder__ASTBuilder__make_if]))(var, var1, var2) /* make_if on */; -var_nif = var3; -var4 = ((val* (*)(val*))(var_nif->class->vft[COLOR_parser_nodes__AIfExpr__n_then]))(var_nif) /* n_then on */; -var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AOrExpr__n_expr]))(self) /* n_expr on */; -var6 = ((val* (*)(val*))(var5->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var5) /* make_var_read on */; -if (var4 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/transform.nit", 124); -exit(1); +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var2 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; +} +} +{ +{ /* Inline parser_nodes#AOrExpr#n_expr (self) on */ +var5 = self->attrs[COLOR_parser_nodes__AOrExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var5 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1486); +show_backtrace(1); +} +var3 = var5; +RET_LABEL4:(void)0; +} +} +{ +{ /* Inline typing#AExpr#mtype (self) on */ +var8 = self->attrs[COLOR_typing__AExpr___mtype].val; /* _mtype on */ +var6 = var8; +RET_LABEL7:(void)0; +} +} +{ +var9 = astbuilder__ASTBuilder__make_if(var, var3, var6); +} +var_nif = var9; +{ +{ /* Inline parser_nodes#AIfExpr#n_then (var_nif) on */ +var12 = var_nif->attrs[COLOR_parser_nodes__AIfExpr___n_then].val; /* _n_then on */ +var10 = var12; +RET_LABEL11:(void)0; +} +} +{ +{ /* Inline parser_nodes#AOrExpr#n_expr (self) on */ +var15 = self->attrs[COLOR_parser_nodes__AOrExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var15 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1486); +show_backtrace(1); +} +var13 = var15; +RET_LABEL14:(void)0; +} +} +{ +var16 = astbuilder__AExpr__make_var_read(var13); +} +if (var10 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 135); +show_backtrace(1); } else { -((void (*)(val*, val*))(var4->class->vft[COLOR_astbuilder__AExpr__add]))(var4, var6) /* add on */; +((void (*)(val*, val*))(var10->class->vft[COLOR_astbuilder__AExpr__add]))(var10, var16) /* add on */; +} +{ +{ /* Inline parser_nodes#AIfExpr#n_else (var_nif) on */ +var19 = var_nif->attrs[COLOR_parser_nodes__AIfExpr___n_else].val; /* _n_else on */ +var17 = var19; +RET_LABEL18:(void)0; +} } -var7 = ((val* (*)(val*))(var_nif->class->vft[COLOR_parser_nodes__AIfExpr__n_else]))(var_nif) /* n_else on */; -var8 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AOrExpr__n_expr2]))(self) /* n_expr2 on */; -if (var7 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/transform.nit", 125); -exit(1); +{ +{ /* Inline parser_nodes#AOrExpr#n_expr2 (self) on */ +var22 = self->attrs[COLOR_parser_nodes__AOrExpr___n_expr2].val; /* _n_expr2 on */ +if (unlikely(var22 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1487); +show_backtrace(1); +} +var20 = var22; +RET_LABEL21:(void)0; +} +} +if (var17 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 136); +show_backtrace(1); } else { -((void (*)(val*, val*))(var7->class->vft[COLOR_astbuilder__AExpr__add]))(var7, var8) /* add on */; +((void (*)(val*, val*))(var17->class->vft[COLOR_astbuilder__AExpr__add]))(var17, var20) /* add on */; +} +{ +parser_nodes__Prod__replace_with(self, var_nif); /* Direct call parser_nodes#Prod#replace_with on */ } -((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nif) /* replace_with on */; RET_LABEL:; } /* method transform#AOrExpr#accept_transform_visitor for (self: Object, TransformVisitor) */ void VIRTUAL_transform__AOrExpr__accept_transform_visitor(val* self, val* p0) { -transform__AOrExpr__accept_transform_visitor(self, p0); +transform__AOrExpr__accept_transform_visitor(self, p0); /* Direct call transform#AOrExpr#accept_transform_visitor on */ RET_LABEL:; } /* method transform#AImpliesExpr#accept_transform_visitor for (self: AImpliesExpr, TransformVisitor) */ @@ -492,854 +915,2850 @@ RET_LABEL:; } /* method transform#AImpliesExpr#accept_transform_visitor for (self: Object, TransformVisitor) */ void VIRTUAL_transform__AImpliesExpr__accept_transform_visitor(val* self, val* p0) { -transform__AImpliesExpr__accept_transform_visitor(self, p0); +val* var_v /* var v: TransformVisitor */; +{ /* Inline transform#AImpliesExpr#accept_transform_visitor (self,p0) on */ +var_v = p0; +RET_LABEL1:(void)0; +} RET_LABEL:; } /* method transform#AAndExpr#accept_transform_visitor for (self: AAndExpr, TransformVisitor) */ void transform__AAndExpr__accept_transform_visitor(val* self, val* p0) { val* var_v /* var v: TransformVisitor */; val* var /* : ASTBuilder */; -val* var1 /* : AExpr */; -val* var2 /* : nullable MType */; -val* var3 /* : AIfExpr */; -val* var_nif /* var nif: AIfExpr */; -val* var4 /* : nullable AExpr */; +val* var2 /* : ASTBuilder */; +val* var3 /* : AExpr */; val* var5 /* : AExpr */; -val* var6 /* : nullable AExpr */; -val* var7 /* : AExpr */; -val* var8 /* : AVarExpr */; +val* var6 /* : nullable MType */; +val* var8 /* : nullable MType */; +val* var9 /* : AIfExpr */; +val* var_nif /* var nif: AIfExpr */; +val* var10 /* : nullable AExpr */; +val* var12 /* : nullable AExpr */; +val* var13 /* : AExpr */; +val* var15 /* : AExpr */; +val* var16 /* : nullable AExpr */; +val* var18 /* : nullable AExpr */; +val* var19 /* : AExpr */; +val* var21 /* : AExpr */; +val* var22 /* : AVarExpr */; var_v = p0; -var = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAndExpr__n_expr]))(self) /* n_expr on */; -var2 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on */; -var3 = ((val* (*)(val*, val*, val*))(var->class->vft[COLOR_astbuilder__ASTBuilder__make_if]))(var, var1, var2) /* make_if on */; -var_nif = var3; -var4 = ((val* (*)(val*))(var_nif->class->vft[COLOR_parser_nodes__AIfExpr__n_then]))(var_nif) /* n_then on */; -var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAndExpr__n_expr2]))(self) /* n_expr2 on */; -if (var4 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/transform.nit", 143); -exit(1); +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var2 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; +} +} +{ +{ /* Inline parser_nodes#AAndExpr#n_expr (self) on */ +var5 = self->attrs[COLOR_parser_nodes__AAndExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var5 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1493); +show_backtrace(1); +} +var3 = var5; +RET_LABEL4:(void)0; +} +} +{ +{ /* Inline typing#AExpr#mtype (self) on */ +var8 = self->attrs[COLOR_typing__AExpr___mtype].val; /* _mtype on */ +var6 = var8; +RET_LABEL7:(void)0; +} +} +{ +var9 = astbuilder__ASTBuilder__make_if(var, var3, var6); +} +var_nif = var9; +{ +{ /* Inline parser_nodes#AIfExpr#n_then (var_nif) on */ +var12 = var_nif->attrs[COLOR_parser_nodes__AIfExpr___n_then].val; /* _n_then on */ +var10 = var12; +RET_LABEL11:(void)0; +} +} +{ +{ /* Inline parser_nodes#AAndExpr#n_expr2 (self) on */ +var15 = self->attrs[COLOR_parser_nodes__AAndExpr___n_expr2].val; /* _n_expr2 on */ +if (unlikely(var15 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1494); +show_backtrace(1); +} +var13 = var15; +RET_LABEL14:(void)0; +} +} +if (var10 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 154); +show_backtrace(1); } else { -((void (*)(val*, val*))(var4->class->vft[COLOR_astbuilder__AExpr__add]))(var4, var5) /* add on */; -} -var6 = ((val* (*)(val*))(var_nif->class->vft[COLOR_parser_nodes__AIfExpr__n_else]))(var_nif) /* n_else on */; -var7 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAndExpr__n_expr]))(self) /* n_expr on */; -var8 = ((val* (*)(val*))(var7->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var7) /* make_var_read on */; -if (var6 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/transform.nit", 144); -exit(1); +((void (*)(val*, val*))(var10->class->vft[COLOR_astbuilder__AExpr__add]))(var10, var13) /* add on */; +} +{ +{ /* Inline parser_nodes#AIfExpr#n_else (var_nif) on */ +var18 = var_nif->attrs[COLOR_parser_nodes__AIfExpr___n_else].val; /* _n_else on */ +var16 = var18; +RET_LABEL17:(void)0; +} +} +{ +{ /* Inline parser_nodes#AAndExpr#n_expr (self) on */ +var21 = self->attrs[COLOR_parser_nodes__AAndExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var21 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1493); +show_backtrace(1); +} +var19 = var21; +RET_LABEL20:(void)0; +} +} +{ +var22 = astbuilder__AExpr__make_var_read(var19); +} +if (var16 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 155); +show_backtrace(1); } else { -((void (*)(val*, val*))(var6->class->vft[COLOR_astbuilder__AExpr__add]))(var6, var8) /* add on */; +((void (*)(val*, val*))(var16->class->vft[COLOR_astbuilder__AExpr__add]))(var16, var22) /* add on */; +} +{ +parser_nodes__Prod__replace_with(self, var_nif); /* Direct call parser_nodes#Prod#replace_with on */ } -((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nif) /* replace_with on */; RET_LABEL:; } /* method transform#AAndExpr#accept_transform_visitor for (self: Object, TransformVisitor) */ void VIRTUAL_transform__AAndExpr__accept_transform_visitor(val* self, val* p0) { -transform__AAndExpr__accept_transform_visitor(self, p0); +transform__AAndExpr__accept_transform_visitor(self, p0); /* Direct call transform#AAndExpr#accept_transform_visitor on */ RET_LABEL:; } /* method transform#AWhileExpr#accept_transform_visitor for (self: AWhileExpr, TransformVisitor) */ void transform__AWhileExpr__accept_transform_visitor(val* self, val* p0) { val* var_v /* var v: TransformVisitor */; +val* var /* : ASTBuilder */; +val* var2 /* : ASTBuilder */; +val* var3 /* : ALoopExpr */; +val* var_nloop /* var nloop: ALoopExpr */; +val* var4 /* : ASTBuilder */; +val* var6 /* : ASTBuilder */; +val* var7 /* : AExpr */; +val* var9 /* : AExpr */; +val* var10 /* : null */; +val* var11 /* : AIfExpr */; +val* var_nif /* var nif: AIfExpr */; +val* var12 /* : nullable AExpr */; +val* var14 /* : nullable AExpr */; +val* var_nblock /* var nblock: nullable AExpr */; +val* var15 /* : null */; +short int var16 /* : Bool */; +short int var17 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var19 /* : Bool */; +short int var20 /* : Bool */; +short int var21 /* : Bool */; +val* var22 /* : nullable AExpr */; +val* var24 /* : nullable AExpr */; +val* var25 /* : nullable EscapeMark */; +val* var27 /* : nullable EscapeMark */; +val* var_escapemark /* var escapemark: EscapeMark */; +val* var28 /* : ASTBuilder */; +val* var30 /* : ASTBuilder */; +val* var31 /* : ABreakExpr */; +val* var_nbreak /* var nbreak: ABreakExpr */; +val* var32 /* : nullable AExpr */; +val* var34 /* : nullable AExpr */; +val* var35 /* : nullable EscapeMark */; +val* var37 /* : nullable EscapeMark */; +val* var39 /* : nullable EscapeMark */; +val* var41 /* : nullable EscapeMark */; var_v = p0; -RET_LABEL:; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var2 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); } -/* method transform#AWhileExpr#accept_transform_visitor for (self: Object, TransformVisitor) */ -void VIRTUAL_transform__AWhileExpr__accept_transform_visitor(val* self, val* p0) { -transform__AWhileExpr__accept_transform_visitor(self, p0); -RET_LABEL:; +var = var2; +RET_LABEL1:(void)0; } -/* method transform#AForExpr#accept_transform_visitor for (self: AForExpr, TransformVisitor) */ -void transform__AForExpr__accept_transform_visitor(val* self, val* p0) { -val* var_v /* var v: TransformVisitor */; -var_v = p0; -RET_LABEL:; } -/* method transform#AForExpr#accept_transform_visitor for (self: Object, TransformVisitor) */ -void VIRTUAL_transform__AForExpr__accept_transform_visitor(val* self, val* p0) { -transform__AForExpr__accept_transform_visitor(self, p0); -RET_LABEL:; +{ +var3 = astbuilder__ASTBuilder__make_loop(var); } -/* method transform#AArrayExpr#accept_transform_visitor for (self: AArrayExpr, TransformVisitor) */ -void transform__AArrayExpr__accept_transform_visitor(val* self, val* p0) { -val* var_v /* var v: TransformVisitor */; -val* var /* : nullable MType */; -short int var1 /* : Bool */; -int cltype; -int idtype; -val* var_mtype /* var mtype: MClassType */; -val* var2 /* : ASTBuilder */; -val* var3 /* : ABlockExpr */; -val* var_nblock /* var nblock: ABlockExpr */; -static val* varonce; -val* var4 /* : String */; -char* var5 /* : NativeString */; -long var6 /* : Int */; -val* var7 /* : String */; -val* var8 /* : MClass */; -val* var9 /* : MMethod */; -val* var_meth /* var meth: MMethod */; -val* var10 /* : ASTBuilder */; -val* var11 /* : ASTBuilder */; -val* var12 /* : AExprs */; -val* var13 /* : ANodes[AExpr] */; -long var14 /* : Int */; -val* var15 /* : AIntExpr */; -val* var16 /* : Array[AIntExpr] */; -long var17 /* : Int */; -val* var18 /* : NativeArray[AIntExpr] */; -val* var19 /* : ANewExpr */; -val* var_nnew /* var nnew: ANewExpr */; -static val* varonce20; -val* var21 /* : String */; -char* var22 /* : NativeString */; -long var23 /* : Int */; -val* var24 /* : String */; -val* var25 /* : MClass */; -val* var26 /* : MMethod */; -val* var_madd /* var madd: MMethod */; -val* var27 /* : AExprs */; -val* var28 /* : ANodes[AExpr] */; -val* var29 /* : Iterator[nullable Object] */; -short int var30 /* : Bool */; -val* var31 /* : nullable Object */; -val* var_nexpr /* var nexpr: AExpr */; -val* var32 /* : ASTBuilder */; -val* var33 /* : AVarExpr */; -val* var34 /* : Array[AExpr] */; -long var35 /* : Int */; -val* var36 /* : NativeArray[AExpr] */; -val* var37 /* : ACallExpr */; -val* var_nadd /* var nadd: ACallExpr */; -val* var38 /* : AVarExpr */; -val* var_nres /* var nres: AVarExpr */; -var_v = p0; -var = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on */; -/* isa MClassType */ -cltype = type_model__MClassType.color; -idtype = type_model__MClassType.id; -if(var == NULL) { -var1 = 0; -} else { -if(cltype >= var->type->table_size) { -var1 = 0; -} else { -var1 = var->type->type_table[cltype] == idtype; +var_nloop = var3; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var6 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var6 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); } +var4 = var6; +RET_LABEL5:(void)0; } -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/transform.nit", 173); -exit(1); } -var_mtype = var; -var2 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var3 = ((val* (*)(val*))(var2->class->vft[COLOR_astbuilder__ASTBuilder__make_block]))(var2) /* make_block on */; -var_nblock = var3; -if (varonce) { -var4 = varonce; +{ +{ /* Inline parser_nodes#AWhileExpr#n_expr (self) on */ +var9 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var9 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1408); +show_backtrace(1); +} +var7 = var9; +RET_LABEL8:(void)0; +} +} +var10 = NULL; +{ +var11 = astbuilder__ASTBuilder__make_if(var4, var7, var10); +} +var_nif = var11; +{ +astbuilder__ALoopExpr__add(var_nloop, var_nif); /* Direct call astbuilder#ALoopExpr#add on */ +} +{ +{ /* Inline parser_nodes#AWhileExpr#n_block (self) on */ +var14 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_block].val; /* _n_block on */ +var12 = var14; +RET_LABEL13:(void)0; +} +} +var_nblock = var12; +var15 = NULL; +if (var_nblock == NULL) { +var16 = 0; /* is null */ } else { -var5 = "with_capacity"; -var6 = 13; -var7 = string__NativeString__to_s_with_length(var5, var6); -var4 = var7; -varonce = var4; -} -var8 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_model__MClassType__mclass]))(var_mtype) /* mclass on */; -var9 = ((val* (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_transform__TransformVisitor__get_method]))(var_v, self, var4, var8) /* get_method on */; -var_meth = var9; -var10 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var11 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var12 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AArrayExpr__n_exprs]))(self) /* n_exprs on */; -var13 = ((val* (*)(val*))(var12->class->vft[COLOR_parser_nodes__AExprs__n_exprs]))(var12) /* n_exprs on */; -var14 = ((long (*)(val*))(var13->class->vft[COLOR_abstract_collection__Collection__length]))(var13) /* length on */; -var15 = ((val* (*)(val*, long))(var11->class->vft[COLOR_astbuilder__ASTBuilder__make_int]))(var11, var14) /* make_int on */; -var16 = NEW_array__Array(&type_array__Arrayparser_nodes__AIntExpr); -{ /* var16 = array_instance Array[AIntExpr] */ -var17 = 1; -var18 = NEW_array__NativeArray(var17, &type_array__NativeArrayparser_nodes__AIntExpr); -((struct instance_array__NativeArray*)var18)->values[0] = (val*) var15; -((void (*)(val*, val*, long))(var16->class->vft[COLOR_array__Array__with_native]))(var16, var18, var17) /* with_native on */; -CHECK_NEW_array__Array(var16); -} -var19 = ((val* (*)(val*, val*, val*, val*))(var10->class->vft[COLOR_astbuilder__ASTBuilder__make_new]))(var10, var_mtype, var_meth, var16) /* make_new on */; -var_nnew = var19; -((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var_nnew) /* add on */; -if (varonce20) { -var21 = varonce20; +var16 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_nblock,var15) on */ +var_other = var15; +{ +var20 = ((short int (*)(val*, val*))(var_nblock->class->vft[COLOR_kernel__Object___61d_61d]))(var_nblock, var_other) /* == on */; +var19 = var20; +} +var21 = !var19; +var17 = var21; +goto RET_LABEL18; +RET_LABEL18:(void)0; +} +var16 = var17; +} +if (var16){ +{ +{ /* Inline parser_nodes#AIfExpr#n_then (var_nif) on */ +var24 = var_nif->attrs[COLOR_parser_nodes__AIfExpr___n_then].val; /* _n_then on */ +var22 = var24; +RET_LABEL23:(void)0; +} +} +if (var22 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 169); +show_backtrace(1); } else { -var22 = "push"; -var23 = 4; -var24 = string__NativeString__to_s_with_length(var22, var23); -var21 = var24; -varonce20 = var21; -} -var25 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_model__MClassType__mclass]))(var_mtype) /* mclass on */; -var26 = ((val* (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_transform__TransformVisitor__get_method]))(var_v, self, var21, var25) /* get_method on */; -var_madd = var26; -var27 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AArrayExpr__n_exprs]))(self) /* n_exprs on */; -var28 = ((val* (*)(val*))(var27->class->vft[COLOR_parser_nodes__AExprs__n_exprs]))(var27) /* n_exprs on */; -var29 = ((val* (*)(val*))(var28->class->vft[COLOR_abstract_collection__Collection__iterator]))(var28) /* iterator on */; -for(;;) { -var30 = ((short int (*)(val*))(var29->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var29) /* is_ok on */; -if(!var30) break; -var31 = ((val* (*)(val*))(var29->class->vft[COLOR_abstract_collection__Iterator__item]))(var29) /* item on */; -var_nexpr = var31; -var32 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var33 = ((val* (*)(val*))(var_nnew->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var_nnew) /* make_var_read on */; -var34 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); -{ /* var34 = array_instance Array[AExpr] */ -var35 = 1; -var36 = NEW_array__NativeArray(var35, &type_array__NativeArrayparser_nodes__AExpr); -((struct instance_array__NativeArray*)var36)->values[0] = (val*) var_nexpr; -((void (*)(val*, val*, long))(var34->class->vft[COLOR_array__Array__with_native]))(var34, var36, var35) /* with_native on */; -CHECK_NEW_array__Array(var34); +((void (*)(val*, val*))(var22->class->vft[COLOR_astbuilder__AExpr__add]))(var22, var_nblock) /* add on */; } -var37 = ((val* (*)(val*, val*, val*, val*))(var32->class->vft[COLOR_astbuilder__ASTBuilder__make_call]))(var32, var33, var_madd, var34) /* make_call on */; -var_nadd = var37; -((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var_nadd) /* add on */; -CONTINUE_label: (void)0; -((void (*)(val*))(var29->class->vft[COLOR_abstract_collection__Iterator__next]))(var29) /* next on */; +} else { } -BREAK_label: (void)0; -var38 = ((val* (*)(val*))(var_nnew->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var_nnew) /* make_var_read on */; -var_nres = var38; -((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var_nres) /* add on */; -((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nblock) /* replace_with on */; -RET_LABEL:; +{ +{ /* Inline scope#AWhileExpr#break_mark (self) on */ +var27 = self->attrs[COLOR_scope__AWhileExpr___break_mark].val; /* _break_mark on */ +var25 = var27; +RET_LABEL26:(void)0; } -/* method transform#AArrayExpr#accept_transform_visitor for (self: Object, TransformVisitor) */ -void VIRTUAL_transform__AArrayExpr__accept_transform_visitor(val* self, val* p0) { -transform__AArrayExpr__accept_transform_visitor(self, p0); +} +if (unlikely(var25 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 171); +show_backtrace(1); +} +var_escapemark = var25; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var30 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var30 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var28 = var30; +RET_LABEL29:(void)0; +} +} +{ +var31 = astbuilder__ASTBuilder__make_break(var28, var_escapemark); +} +var_nbreak = var31; +{ +{ /* Inline parser_nodes#AIfExpr#n_else (var_nif) on */ +var34 = var_nif->attrs[COLOR_parser_nodes__AIfExpr___n_else].val; /* _n_else on */ +var32 = var34; +RET_LABEL33:(void)0; +} +} +if (var32 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 173); +show_backtrace(1); +} else { +((void (*)(val*, val*))(var32->class->vft[COLOR_astbuilder__AExpr__add]))(var32, var_nbreak) /* add on */; +} +{ +{ /* Inline scope#AWhileExpr#break_mark (self) on */ +var37 = self->attrs[COLOR_scope__AWhileExpr___break_mark].val; /* _break_mark on */ +var35 = var37; +RET_LABEL36:(void)0; +} +} +{ +{ /* Inline scope#ALoopExpr#break_mark= (var_nloop,var35) on */ +var_nloop->attrs[COLOR_scope__ALoopExpr___break_mark].val = var35; /* _break_mark on */ +RET_LABEL38:(void)0; +} +} +{ +{ /* Inline scope#AWhileExpr#continue_mark (self) on */ +var41 = self->attrs[COLOR_scope__AWhileExpr___continue_mark].val; /* _continue_mark on */ +var39 = var41; +RET_LABEL40:(void)0; +} +} +{ +{ /* Inline scope#ALoopExpr#continue_mark= (var_nloop,var39) on */ +var_nloop->attrs[COLOR_scope__ALoopExpr___continue_mark].val = var39; /* _continue_mark on */ +RET_LABEL42:(void)0; +} +} +{ +parser_nodes__Prod__replace_with(self, var_nloop); /* Direct call parser_nodes#Prod#replace_with on */ +} +RET_LABEL:; +} +/* method transform#AWhileExpr#accept_transform_visitor for (self: Object, TransformVisitor) */ +void VIRTUAL_transform__AWhileExpr__accept_transform_visitor(val* self, val* p0) { +transform__AWhileExpr__accept_transform_visitor(self, p0); /* Direct call transform#AWhileExpr#accept_transform_visitor on */ +RET_LABEL:; +} +/* method transform#AForExpr#accept_transform_visitor for (self: AForExpr, TransformVisitor) */ +void transform__AForExpr__accept_transform_visitor(val* self, val* p0) { +val* var_v /* var v: TransformVisitor */; +val* var /* : nullable EscapeMark */; +val* var2 /* : nullable EscapeMark */; +val* var_escapemark /* var escapemark: nullable EscapeMark */; +val* var3 /* : null */; +short int var4 /* : Bool */; +short int var5 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var7 /* : Bool */; +short int var8 /* : Bool */; +short int var9 /* : Bool */; +val* var10 /* : ASTBuilder */; +val* var12 /* : ASTBuilder */; +val* var13 /* : ABlockExpr */; +val* var_nblock /* var nblock: ABlockExpr */; +val* var14 /* : AExpr */; +val* var16 /* : AExpr */; +val* var_nexpr /* var nexpr: AExpr */; +short int var17 /* : Bool */; +short int var18 /* : Bool */; +val* var19 /* : nullable Array[Variable] */; +val* var21 /* : nullable Array[Variable] */; +long var22 /* : Int */; +long var24 /* : Int */; +long var25 /* : Int */; +short int var26 /* : Bool */; +short int var27 /* : Bool */; +short int var29 /* : Bool */; +short int var_ /* var : Bool */; +short int var30 /* : Bool */; +int cltype; +int idtype; +short int var_31 /* var : Bool */; +val* var32 /* : TransformPhase */; +val* var34 /* : TransformPhase */; +val* var35 /* : ToolContext */; +val* var37 /* : ToolContext */; +val* var38 /* : OptionBool */; +val* var40 /* : OptionBool */; +val* var41 /* : nullable Object */; +val* var43 /* : nullable Object */; +short int var44 /* : Bool */; +short int var45 /* : Bool */; +val* var46 /* : nullable Array[Variable] */; +val* var48 /* : nullable Array[Variable] */; +val* var49 /* : nullable Object */; +val* var_variable /* var variable: Variable */; +val* var50 /* : ASTBuilder */; +val* var52 /* : ASTBuilder */; +val* var53 /* : AExpr */; +val* var55 /* : AExpr */; +val* var56 /* : AVarAssignExpr */; +val* var57 /* : AExpr */; +val* var59 /* : AExpr */; +val* var_to /* var to: AExpr */; +val* var60 /* : ASTBuilder */; +val* var62 /* : ASTBuilder */; +val* var63 /* : ALoopExpr */; +val* var_nloop /* var nloop: ALoopExpr */; +val* var65 /* : ASTBuilder */; +val* var67 /* : ASTBuilder */; +val* var68 /* : ASTBuilder */; +val* var70 /* : ASTBuilder */; +val* var71 /* : nullable MType */; +val* var73 /* : nullable MType */; +val* var74 /* : AVarExpr */; +val* var75 /* : nullable CallSite */; +val* var77 /* : nullable CallSite */; +val* var78 /* : Array[AVarExpr] */; +long var79 /* : Int */; +val* var_80 /* var : Array[AVarExpr] */; +val* var81 /* : AVarExpr */; +val* var82 /* : ACallExpr */; +val* var_is_ok /* var is_ok: ACallExpr */; +val* var83 /* : ASTBuilder */; +val* var85 /* : ASTBuilder */; +val* var86 /* : null */; +val* var87 /* : AIfExpr */; +val* var_nif /* var nif: AIfExpr */; +val* var88 /* : nullable AExpr */; +val* var90 /* : nullable AExpr */; +val* var_nthen /* var nthen: nullable AExpr */; +val* var91 /* : ASTBuilder */; +val* var93 /* : ASTBuilder */; +val* var94 /* : ADoExpr */; +val* var_ndo /* var ndo: ADoExpr */; +val* var95 /* : nullable EscapeMark */; +val* var97 /* : nullable EscapeMark */; +val* var99 /* : nullable AExpr */; +val* var101 /* : nullable AExpr */; +val* var102 /* : ASTBuilder */; +val* var104 /* : ASTBuilder */; +long var105 /* : Int */; +val* var106 /* : AIntExpr */; +val* var_one /* var one: AIntExpr */; +val* var107 /* : ASTBuilder */; +val* var109 /* : ASTBuilder */; +val* var110 /* : ASTBuilder */; +val* var112 /* : ASTBuilder */; +val* var113 /* : nullable MType */; +val* var115 /* : nullable MType */; +val* var116 /* : AVarExpr */; +val* var117 /* : nullable CallSite */; +val* var119 /* : nullable CallSite */; +val* var120 /* : Array[AIntExpr] */; +long var121 /* : Int */; +val* var_122 /* var : Array[AIntExpr] */; +val* var123 /* : ACallExpr */; +val* var_succ /* var succ: ACallExpr */; +val* var124 /* : ASTBuilder */; +val* var126 /* : ASTBuilder */; +val* var127 /* : AVarAssignExpr */; +val* var128 /* : ASTBuilder */; +val* var130 /* : ASTBuilder */; +val* var131 /* : ABreakExpr */; +val* var_nbreak /* var nbreak: ABreakExpr */; +val* var132 /* : nullable AExpr */; +val* var134 /* : nullable AExpr */; +val* var135 /* : ASTBuilder */; +val* var137 /* : ASTBuilder */; +val* var138 /* : AVarExpr */; +val* var139 /* : nullable CallSite */; +val* var141 /* : nullable CallSite */; +val* var142 /* : null */; +val* var143 /* : ACallExpr */; +val* var_iter /* var iter: ACallExpr */; +val* var144 /* : ASTBuilder */; +val* var146 /* : ASTBuilder */; +val* var147 /* : ALoopExpr */; +val* var_nloop148 /* var nloop: ALoopExpr */; +val* var150 /* : ASTBuilder */; +val* var152 /* : ASTBuilder */; +val* var153 /* : AVarExpr */; +val* var154 /* : nullable CallSite */; +val* var156 /* : nullable CallSite */; +val* var157 /* : null */; +val* var158 /* : ACallExpr */; +val* var_is_ok159 /* var is_ok: ACallExpr */; +val* var160 /* : ASTBuilder */; +val* var162 /* : ASTBuilder */; +val* var163 /* : null */; +val* var164 /* : AIfExpr */; +val* var_nif165 /* var nif: AIfExpr */; +val* var166 /* : nullable AExpr */; +val* var168 /* : nullable AExpr */; +val* var_nthen169 /* var nthen: nullable AExpr */; +val* var170 /* : ASTBuilder */; +val* var172 /* : ASTBuilder */; +val* var173 /* : ADoExpr */; +val* var_ndo174 /* var ndo: ADoExpr */; +val* var175 /* : nullable EscapeMark */; +val* var177 /* : nullable EscapeMark */; +val* var179 /* : nullable Array[Variable] */; +val* var181 /* : nullable Array[Variable] */; +long var182 /* : Int */; +long var184 /* : Int */; +long var185 /* : Int */; +short int var186 /* : Bool */; +short int var187 /* : Bool */; +short int var189 /* : Bool */; +val* var190 /* : ASTBuilder */; +val* var192 /* : ASTBuilder */; +val* var193 /* : AVarExpr */; +val* var194 /* : nullable CallSite */; +val* var196 /* : nullable CallSite */; +val* var197 /* : null */; +val* var198 /* : ACallExpr */; +val* var_item /* var item: ACallExpr */; +val* var199 /* : ASTBuilder */; +val* var201 /* : ASTBuilder */; +val* var202 /* : nullable Array[Variable] */; +val* var204 /* : nullable Array[Variable] */; +val* var205 /* : nullable Object */; +val* var206 /* : AVarAssignExpr */; +val* var207 /* : nullable Array[Variable] */; +val* var209 /* : nullable Array[Variable] */; +long var210 /* : Int */; +long var212 /* : Int */; +long var213 /* : Int */; +short int var214 /* : Bool */; +short int var215 /* : Bool */; +short int var217 /* : Bool */; +val* var218 /* : ASTBuilder */; +val* var220 /* : ASTBuilder */; +val* var221 /* : AVarExpr */; +val* var222 /* : nullable CallSite */; +val* var224 /* : nullable CallSite */; +val* var225 /* : null */; +val* var226 /* : ACallExpr */; +val* var_key /* var key: ACallExpr */; +val* var227 /* : ASTBuilder */; +val* var229 /* : ASTBuilder */; +val* var230 /* : nullable Array[Variable] */; +val* var232 /* : nullable Array[Variable] */; +long var233 /* : Int */; +val* var234 /* : nullable Object */; +val* var235 /* : AVarAssignExpr */; +val* var236 /* : ASTBuilder */; +val* var238 /* : ASTBuilder */; +val* var239 /* : AVarExpr */; +val* var240 /* : nullable CallSite */; +val* var242 /* : nullable CallSite */; +val* var243 /* : null */; +val* var244 /* : ACallExpr */; +val* var_item245 /* var item: ACallExpr */; +val* var246 /* : ASTBuilder */; +val* var248 /* : ASTBuilder */; +val* var249 /* : nullable Array[Variable] */; +val* var251 /* : nullable Array[Variable] */; +long var252 /* : Int */; +val* var253 /* : nullable Object */; +val* var254 /* : AVarAssignExpr */; +val* var255 /* : nullable AExpr */; +val* var257 /* : nullable AExpr */; +val* var258 /* : ASTBuilder */; +val* var260 /* : ASTBuilder */; +val* var261 /* : AVarExpr */; +val* var262 /* : nullable CallSite */; +val* var264 /* : nullable CallSite */; +val* var265 /* : null */; +val* var266 /* : ACallExpr */; +val* var267 /* : ASTBuilder */; +val* var269 /* : ASTBuilder */; +val* var270 /* : ABreakExpr */; +val* var_nbreak271 /* var nbreak: ABreakExpr */; +val* var272 /* : nullable AExpr */; +val* var274 /* : nullable AExpr */; +val* var275 /* : nullable CallSite */; +val* var277 /* : nullable CallSite */; +val* var_method_finish /* var method_finish: nullable CallSite */; +val* var278 /* : null */; +short int var279 /* : Bool */; +short int var280 /* : Bool */; +short int var282 /* : Bool */; +short int var283 /* : Bool */; +short int var284 /* : Bool */; +val* var285 /* : ASTBuilder */; +val* var287 /* : ASTBuilder */; +val* var288 /* : AVarExpr */; +val* var289 /* : null */; +val* var290 /* : ACallExpr */; +var_v = p0; +{ +{ /* Inline scope#AForExpr#break_mark (self) on */ +var2 = self->attrs[COLOR_scope__AForExpr___break_mark].val; /* _break_mark on */ +var = var2; +RET_LABEL1:(void)0; +} +} +var_escapemark = var; +var3 = NULL; +if (var_escapemark == NULL) { +var4 = 0; /* is null */ +} else { +var4 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_escapemark,var3) on */ +var_other = var3; +{ +var8 = ((short int (*)(val*, val*))(var_escapemark->class->vft[COLOR_kernel__Object___61d_61d]))(var_escapemark, var_other) /* == on */; +var7 = var8; +} +var9 = !var7; +var5 = var9; +goto RET_LABEL6; +RET_LABEL6:(void)0; +} +var4 = var5; +} +if (unlikely(!var4)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 186); +show_backtrace(1); +} +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var12 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var12 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var10 = var12; +RET_LABEL11:(void)0; +} +} +{ +var13 = astbuilder__ASTBuilder__make_block(var10); +} +var_nblock = var13; +{ +{ /* Inline parser_nodes#AForExpr#n_expr (self) on */ +var16 = self->attrs[COLOR_parser_nodes__AForExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var16 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1427); +show_backtrace(1); +} +var14 = var16; +RET_LABEL15:(void)0; +} +} +var_nexpr = var14; +{ +{ /* Inline scope#AForExpr#variables (self) on */ +var21 = self->attrs[COLOR_scope__AForExpr___variables].val; /* _variables on */ +var19 = var21; +RET_LABEL20:(void)0; +} +} +if (var19 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 194); +show_backtrace(1); +} else { +{ /* Inline array#AbstractArrayRead#length (var19) on */ +if (unlikely(var19 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/array.nit", 24); +show_backtrace(1); +} +var24 = var19->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var22 = var24; +RET_LABEL23:(void)0; +} +} +var25 = 1; +{ +{ /* Inline kernel#Int#== (var22,var25) on */ +var29 = var22 == var25; +var27 = var29; +goto RET_LABEL28; +RET_LABEL28:(void)0; +} +var26 = var27; +} +var_ = var26; +if (var26){ +/* isa ARangeExpr */ +cltype = type_parser_nodes__ARangeExpr.color; +idtype = type_parser_nodes__ARangeExpr.id; +if(cltype >= var_nexpr->type->table_size) { +var30 = 0; +} else { +var30 = var_nexpr->type->type_table[cltype] == idtype; +} +var18 = var30; +} else { +var18 = var_; +} +var_31 = var18; +if (var18){ +{ +{ /* Inline transform#TransformVisitor#phase (var_v) on */ +var34 = var_v->attrs[COLOR_transform__TransformVisitor___phase].val; /* _phase on */ +if (unlikely(var34 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phase"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 55); +show_backtrace(1); +} +var32 = var34; +RET_LABEL33:(void)0; +} +} +{ +{ /* Inline phase#Phase#toolcontext (var32) on */ +var37 = var32->attrs[COLOR_phase__Phase___toolcontext].val; /* _toolcontext on */ +if (unlikely(var37 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "phase.nit", 162); +show_backtrace(1); +} +var35 = var37; +RET_LABEL36:(void)0; +} +} +{ +{ /* Inline transform#ToolContext#opt_no_shortcut_range (var35) on */ +var40 = var35->attrs[COLOR_transform__ToolContext___opt_no_shortcut_range].val; /* _opt_no_shortcut_range on */ +if (unlikely(var40 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_range"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 27); +show_backtrace(1); +} +var38 = var40; +RET_LABEL39:(void)0; +} +} +{ +{ /* Inline opts#Option#value (var38) on */ +var43 = var38->attrs[COLOR_opts__Option___value].val; /* _value on */ +var41 = var43; +RET_LABEL42:(void)0; +} +} +var44 = ((struct instance_kernel__Bool*)var41)->value; /* autounbox from nullable Object to Bool */; +var45 = !var44; +var17 = var45; +} else { +var17 = var_31; +} +if (var17){ +{ +{ /* Inline scope#AForExpr#variables (self) on */ +var48 = self->attrs[COLOR_scope__AForExpr___variables].val; /* _variables on */ +var46 = var48; +RET_LABEL47:(void)0; +} +} +if (var46 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 195); +show_backtrace(1); +} else { +var49 = abstract_collection__SequenceRead__first(var46); +} +var_variable = var49; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var52 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var52 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var50 = var52; +RET_LABEL51:(void)0; +} +} +{ +{ /* Inline parser_nodes#ARangeExpr#n_expr (var_nexpr) on */ +var55 = var_nexpr->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var55 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1754); +show_backtrace(1); +} +var53 = var55; +RET_LABEL54:(void)0; +} +} +{ +var56 = astbuilder__ASTBuilder__make_var_assign(var50, var_variable, var53); +} +{ +astbuilder__ABlockExpr__add(var_nblock, var56); /* Direct call astbuilder#ABlockExpr#add on */ +} +{ +{ /* Inline parser_nodes#ARangeExpr#n_expr2 (var_nexpr) on */ +var59 = var_nexpr->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on */ +if (unlikely(var59 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1755); +show_backtrace(1); +} +var57 = var59; +RET_LABEL58:(void)0; +} +} +var_to = var57; +{ +astbuilder__ABlockExpr__add(var_nblock, var_to); /* Direct call astbuilder#ABlockExpr#add on */ +} +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var62 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var62 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var60 = var62; +RET_LABEL61:(void)0; +} +} +{ +var63 = astbuilder__ASTBuilder__make_loop(var60); +} +var_nloop = var63; +{ +{ /* Inline scope#ALoopExpr#break_mark= (var_nloop,var_escapemark) on */ +var_nloop->attrs[COLOR_scope__ALoopExpr___break_mark].val = var_escapemark; /* _break_mark on */ +RET_LABEL64:(void)0; +} +} +{ +astbuilder__ABlockExpr__add(var_nblock, var_nloop); /* Direct call astbuilder#ABlockExpr#add on */ +} +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var67 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var67 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var65 = var67; +RET_LABEL66:(void)0; +} +} +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var70 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var70 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var68 = var70; +RET_LABEL69:(void)0; +} +} +{ +{ /* Inline typing#Variable#declared_type (var_variable) on */ +var73 = var_variable->attrs[COLOR_typing__Variable___declared_type].val; /* _declared_type on */ +var71 = var73; +RET_LABEL72:(void)0; +} +} +if (unlikely(var71 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 204); +show_backtrace(1); +} +{ +var74 = astbuilder__ASTBuilder__make_var_read(var68, var_variable, var71); +} +{ +{ /* Inline typing#AForExpr#method_lt (self) on */ +var77 = self->attrs[COLOR_typing__AForExpr___method_lt].val; /* _method_lt on */ +var75 = var77; +RET_LABEL76:(void)0; +} +} +if (unlikely(var75 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 204); +show_backtrace(1); +} +var78 = NEW_array__Array(&type_array__Arrayparser_nodes__AVarExpr); +var79 = 1; +{ +array__Array__with_capacity(var78, var79); /* Direct call array#Array#with_capacity on */ +} +var_80 = var78; +{ +var81 = astbuilder__AExpr__make_var_read(var_to); +} +{ +array__AbstractArray__push(var_80, var81); /* Direct call array#AbstractArray#push on */ +} +{ +var82 = astbuilder__ASTBuilder__make_call(var65, var74, var75, var_80); +} +var_is_ok = var82; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var85 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var85 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var83 = var85; +RET_LABEL84:(void)0; +} +} +var86 = NULL; +{ +var87 = astbuilder__ASTBuilder__make_if(var83, var_is_ok, var86); +} +var_nif = var87; +{ +astbuilder__ALoopExpr__add(var_nloop, var_nif); /* Direct call astbuilder#ALoopExpr#add on */ +} +{ +{ /* Inline parser_nodes#AIfExpr#n_then (var_nif) on */ +var90 = var_nif->attrs[COLOR_parser_nodes__AIfExpr___n_then].val; /* _n_then on */ +var88 = var90; +RET_LABEL89:(void)0; +} +} +var_nthen = var88; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var93 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var93 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var91 = var93; +RET_LABEL92:(void)0; +} +} +{ +var94 = astbuilder__ASTBuilder__make_do(var91); +} +var_ndo = var94; +{ +{ /* Inline scope#EscapeMark#continue_mark (var_escapemark) on */ +var97 = var_escapemark->attrs[COLOR_scope__EscapeMark___continue_mark].val; /* _continue_mark on */ +var95 = var97; +RET_LABEL96:(void)0; +} +} +{ +{ /* Inline scope#ADoExpr#break_mark= (var_ndo,var95) on */ +var_ndo->attrs[COLOR_scope__ADoExpr___break_mark].val = var95; /* _break_mark on */ +RET_LABEL98:(void)0; +} +} +if (var_nthen == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 212); +show_backtrace(1); +} else { +((void (*)(val*, val*))(var_nthen->class->vft[COLOR_astbuilder__AExpr__add]))(var_nthen, var_ndo) /* add on */; +} +{ +{ /* Inline parser_nodes#AForExpr#n_block (self) on */ +var101 = self->attrs[COLOR_parser_nodes__AForExpr___n_block].val; /* _n_block on */ +var99 = var101; +RET_LABEL100:(void)0; +} +} +if (unlikely(var99 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 214); +show_backtrace(1); +} +{ +astbuilder__ADoExpr__add(var_ndo, var99); /* Direct call astbuilder#ADoExpr#add on */ +} +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var104 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var104 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var102 = var104; +RET_LABEL103:(void)0; +} +} +var105 = 1; +{ +var106 = astbuilder__ASTBuilder__make_int(var102, var105); +} +var_one = var106; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var109 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var109 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var107 = var109; +RET_LABEL108:(void)0; +} +} +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var112 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var112 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var110 = var112; +RET_LABEL111:(void)0; +} +} +{ +{ /* Inline typing#Variable#declared_type (var_variable) on */ +var115 = var_variable->attrs[COLOR_typing__Variable___declared_type].val; /* _declared_type on */ +var113 = var115; +RET_LABEL114:(void)0; +} +} +if (unlikely(var113 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 217); +show_backtrace(1); +} +{ +var116 = astbuilder__ASTBuilder__make_var_read(var110, var_variable, var113); +} +{ +{ /* Inline typing#AForExpr#method_successor (self) on */ +var119 = self->attrs[COLOR_typing__AForExpr___method_successor].val; /* _method_successor on */ +var117 = var119; +RET_LABEL118:(void)0; +} +} +if (unlikely(var117 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 217); +show_backtrace(1); +} +var120 = NEW_array__Array(&type_array__Arrayparser_nodes__AIntExpr); +var121 = 1; +{ +array__Array__with_capacity(var120, var121); /* Direct call array#Array#with_capacity on */ +} +var_122 = var120; +{ +array__AbstractArray__push(var_122, var_one); /* Direct call array#AbstractArray#push on */ +} +{ +var123 = astbuilder__ASTBuilder__make_call(var107, var116, var117, var_122); +} +var_succ = var123; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var126 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var126 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var124 = var126; +RET_LABEL125:(void)0; +} +} +{ +var127 = astbuilder__ASTBuilder__make_var_assign(var124, var_variable, var_succ); +} +if (var_nthen == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 218); +show_backtrace(1); +} else { +((void (*)(val*, val*))(var_nthen->class->vft[COLOR_astbuilder__AExpr__add]))(var_nthen, var127) /* add on */; +} +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var130 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var130 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var128 = var130; +RET_LABEL129:(void)0; +} +} +{ +var131 = astbuilder__ASTBuilder__make_break(var128, var_escapemark); +} +var_nbreak = var131; +{ +{ /* Inline parser_nodes#AIfExpr#n_else (var_nif) on */ +var134 = var_nif->attrs[COLOR_parser_nodes__AIfExpr___n_else].val; /* _n_else on */ +var132 = var134; +RET_LABEL133:(void)0; +} +} +if (var132 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 221); +show_backtrace(1); +} else { +((void (*)(val*, val*))(var132->class->vft[COLOR_astbuilder__AExpr__add]))(var132, var_nbreak) /* add on */; +} +{ +parser_nodes__Prod__replace_with(self, var_nblock); /* Direct call parser_nodes#Prod#replace_with on */ +} +goto RET_LABEL; +} else { +} +{ +astbuilder__ABlockExpr__add(var_nblock, var_nexpr); /* Direct call astbuilder#ABlockExpr#add on */ +} +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var137 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var137 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var135 = var137; +RET_LABEL136:(void)0; +} +} +{ +var138 = astbuilder__AExpr__make_var_read(var_nexpr); +} +{ +{ /* Inline typing#AForExpr#method_iterator (self) on */ +var141 = self->attrs[COLOR_typing__AForExpr___method_iterator].val; /* _method_iterator on */ +var139 = var141; +RET_LABEL140:(void)0; +} +} +if (unlikely(var139 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 229); +show_backtrace(1); +} +var142 = NULL; +{ +var143 = astbuilder__ASTBuilder__make_call(var135, var138, var139, var142); +} +var_iter = var143; +{ +astbuilder__ABlockExpr__add(var_nblock, var_iter); /* Direct call astbuilder#ABlockExpr#add on */ +} +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var146 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var146 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var144 = var146; +RET_LABEL145:(void)0; +} +} +{ +var147 = astbuilder__ASTBuilder__make_loop(var144); +} +var_nloop148 = var147; +{ +{ /* Inline scope#ALoopExpr#break_mark= (var_nloop148,var_escapemark) on */ +var_nloop148->attrs[COLOR_scope__ALoopExpr___break_mark].val = var_escapemark; /* _break_mark on */ +RET_LABEL149:(void)0; +} +} +{ +astbuilder__ABlockExpr__add(var_nblock, var_nloop148); /* Direct call astbuilder#ABlockExpr#add on */ +} +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var152 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var152 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var150 = var152; +RET_LABEL151:(void)0; +} +} +{ +var153 = astbuilder__AExpr__make_var_read(var_iter); +} +{ +{ /* Inline typing#AForExpr#method_is_ok (self) on */ +var156 = self->attrs[COLOR_typing__AForExpr___method_is_ok].val; /* _method_is_ok on */ +var154 = var156; +RET_LABEL155:(void)0; +} +} +if (unlikely(var154 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 236); +show_backtrace(1); +} +var157 = NULL; +{ +var158 = astbuilder__ASTBuilder__make_call(var150, var153, var154, var157); +} +var_is_ok159 = var158; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var162 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var162 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var160 = var162; +RET_LABEL161:(void)0; +} +} +var163 = NULL; +{ +var164 = astbuilder__ASTBuilder__make_if(var160, var_is_ok159, var163); +} +var_nif165 = var164; +{ +astbuilder__ALoopExpr__add(var_nloop148, var_nif165); /* Direct call astbuilder#ALoopExpr#add on */ +} +{ +{ /* Inline parser_nodes#AIfExpr#n_then (var_nif165) on */ +var168 = var_nif165->attrs[COLOR_parser_nodes__AIfExpr___n_then].val; /* _n_then on */ +var166 = var168; +RET_LABEL167:(void)0; +} +} +var_nthen169 = var166; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var172 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var172 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var170 = var172; +RET_LABEL171:(void)0; +} +} +{ +var173 = astbuilder__ASTBuilder__make_do(var170); +} +var_ndo174 = var173; +{ +{ /* Inline scope#EscapeMark#continue_mark (var_escapemark) on */ +var177 = var_escapemark->attrs[COLOR_scope__EscapeMark___continue_mark].val; /* _continue_mark on */ +var175 = var177; +RET_LABEL176:(void)0; +} +} +{ +{ /* Inline scope#ADoExpr#break_mark= (var_ndo174,var175) on */ +var_ndo174->attrs[COLOR_scope__ADoExpr___break_mark].val = var175; /* _break_mark on */ +RET_LABEL178:(void)0; +} +} +if (var_nthen169 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 244); +show_backtrace(1); +} else { +((void (*)(val*, val*))(var_nthen169->class->vft[COLOR_astbuilder__AExpr__add]))(var_nthen169, var_ndo174) /* add on */; +} +{ +{ /* Inline scope#AForExpr#variables (self) on */ +var181 = self->attrs[COLOR_scope__AForExpr___variables].val; /* _variables on */ +var179 = var181; +RET_LABEL180:(void)0; +} +} +if (var179 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 246); +show_backtrace(1); +} else { +{ /* Inline array#AbstractArrayRead#length (var179) on */ +if (unlikely(var179 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/array.nit", 24); +show_backtrace(1); +} +var184 = var179->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var182 = var184; +RET_LABEL183:(void)0; +} +} +var185 = 1; +{ +{ /* Inline kernel#Int#== (var182,var185) on */ +var189 = var182 == var185; +var187 = var189; +goto RET_LABEL188; +RET_LABEL188:(void)0; +} +var186 = var187; +} +if (var186){ +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var192 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var192 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var190 = var192; +RET_LABEL191:(void)0; +} +} +{ +var193 = astbuilder__AExpr__make_var_read(var_iter); +} +{ +{ /* Inline typing#AForExpr#method_item (self) on */ +var196 = self->attrs[COLOR_typing__AForExpr___method_item].val; /* _method_item on */ +var194 = var196; +RET_LABEL195:(void)0; +} +} +if (unlikely(var194 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 247); +show_backtrace(1); +} +var197 = NULL; +{ +var198 = astbuilder__ASTBuilder__make_call(var190, var193, var194, var197); +} +var_item = var198; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var201 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var201 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var199 = var201; +RET_LABEL200:(void)0; +} +} +{ +{ /* Inline scope#AForExpr#variables (self) on */ +var204 = self->attrs[COLOR_scope__AForExpr___variables].val; /* _variables on */ +var202 = var204; +RET_LABEL203:(void)0; +} +} +if (var202 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 248); +show_backtrace(1); +} else { +var205 = abstract_collection__SequenceRead__first(var202); +} +{ +var206 = astbuilder__ASTBuilder__make_var_assign(var199, var205, var_item); +} +{ +astbuilder__ADoExpr__add(var_ndo174, var206); /* Direct call astbuilder#ADoExpr#add on */ +} +} else { +{ +{ /* Inline scope#AForExpr#variables (self) on */ +var209 = self->attrs[COLOR_scope__AForExpr___variables].val; /* _variables on */ +var207 = var209; +RET_LABEL208:(void)0; +} +} +if (var207 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 249); +show_backtrace(1); +} else { +{ /* Inline array#AbstractArrayRead#length (var207) on */ +if (unlikely(var207 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/array.nit", 24); +show_backtrace(1); +} +var212 = var207->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var210 = var212; +RET_LABEL211:(void)0; +} +} +var213 = 2; +{ +{ /* Inline kernel#Int#== (var210,var213) on */ +var217 = var210 == var213; +var215 = var217; +goto RET_LABEL216; +RET_LABEL216:(void)0; +} +var214 = var215; +} +if (var214){ +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var220 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var220 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var218 = var220; +RET_LABEL219:(void)0; +} +} +{ +var221 = astbuilder__AExpr__make_var_read(var_iter); +} +{ +{ /* Inline typing#AForExpr#method_key (self) on */ +var224 = self->attrs[COLOR_typing__AForExpr___method_key].val; /* _method_key on */ +var222 = var224; +RET_LABEL223:(void)0; +} +} +if (unlikely(var222 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 250); +show_backtrace(1); +} +var225 = NULL; +{ +var226 = astbuilder__ASTBuilder__make_call(var218, var221, var222, var225); +} +var_key = var226; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var229 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var229 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var227 = var229; +RET_LABEL228:(void)0; +} +} +{ +{ /* Inline scope#AForExpr#variables (self) on */ +var232 = self->attrs[COLOR_scope__AForExpr___variables].val; /* _variables on */ +var230 = var232; +RET_LABEL231:(void)0; +} +} +var233 = 0; +if (var230 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 251); +show_backtrace(1); +} else { +var234 = array__Array___91d_93d(var230, var233); +} +{ +var235 = astbuilder__ASTBuilder__make_var_assign(var227, var234, var_key); +} +{ +astbuilder__ADoExpr__add(var_ndo174, var235); /* Direct call astbuilder#ADoExpr#add on */ +} +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var238 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var238 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var236 = var238; +RET_LABEL237:(void)0; +} +} +{ +var239 = astbuilder__AExpr__make_var_read(var_iter); +} +{ +{ /* Inline typing#AForExpr#method_item (self) on */ +var242 = self->attrs[COLOR_typing__AForExpr___method_item].val; /* _method_item on */ +var240 = var242; +RET_LABEL241:(void)0; +} +} +if (unlikely(var240 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 252); +show_backtrace(1); +} +var243 = NULL; +{ +var244 = astbuilder__ASTBuilder__make_call(var236, var239, var240, var243); +} +var_item245 = var244; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var248 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var248 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var246 = var248; +RET_LABEL247:(void)0; +} +} +{ +{ /* Inline scope#AForExpr#variables (self) on */ +var251 = self->attrs[COLOR_scope__AForExpr___variables].val; /* _variables on */ +var249 = var251; +RET_LABEL250:(void)0; +} +} +var252 = 1; +if (var249 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 253); +show_backtrace(1); +} else { +var253 = array__Array___91d_93d(var249, var252); +} +{ +var254 = astbuilder__ASTBuilder__make_var_assign(var246, var253, var_item245); +} +{ +astbuilder__ADoExpr__add(var_ndo174, var254); /* Direct call astbuilder#ADoExpr#add on */ +} +} else { +PRINT_ERROR("Runtime error: %s", "Aborted"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 255); +show_backtrace(1); +} +} +{ +{ /* Inline parser_nodes#AForExpr#n_block (self) on */ +var257 = self->attrs[COLOR_parser_nodes__AForExpr___n_block].val; /* _n_block on */ +var255 = var257; +RET_LABEL256:(void)0; +} +} +if (unlikely(var255 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 258); +show_backtrace(1); +} +{ +astbuilder__ADoExpr__add(var_ndo174, var255); /* Direct call astbuilder#ADoExpr#add on */ +} +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var260 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var260 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var258 = var260; +RET_LABEL259:(void)0; +} +} +{ +var261 = astbuilder__AExpr__make_var_read(var_iter); +} +{ +{ /* Inline typing#AForExpr#method_next (self) on */ +var264 = self->attrs[COLOR_typing__AForExpr___method_next].val; /* _method_next on */ +var262 = var264; +RET_LABEL263:(void)0; +} +} +if (unlikely(var262 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 260); +show_backtrace(1); +} +var265 = NULL; +{ +var266 = astbuilder__ASTBuilder__make_call(var258, var261, var262, var265); +} +if (var_nthen169 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 260); +show_backtrace(1); +} else { +((void (*)(val*, val*))(var_nthen169->class->vft[COLOR_astbuilder__AExpr__add]))(var_nthen169, var266) /* add on */; +} +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var269 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var269 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var267 = var269; +RET_LABEL268:(void)0; +} +} +{ +var270 = astbuilder__ASTBuilder__make_break(var267, var_escapemark); +} +var_nbreak271 = var270; +{ +{ /* Inline parser_nodes#AIfExpr#n_else (var_nif165) on */ +var274 = var_nif165->attrs[COLOR_parser_nodes__AIfExpr___n_else].val; /* _n_else on */ +var272 = var274; +RET_LABEL273:(void)0; +} +} +if (var272 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 263); +show_backtrace(1); +} else { +((void (*)(val*, val*))(var272->class->vft[COLOR_astbuilder__AExpr__add]))(var272, var_nbreak271) /* add on */; +} +{ +{ /* Inline typing#AForExpr#method_finish (self) on */ +var277 = self->attrs[COLOR_typing__AForExpr___method_finish].val; /* _method_finish on */ +var275 = var277; +RET_LABEL276:(void)0; +} +} +var_method_finish = var275; +var278 = NULL; +if (var_method_finish == NULL) { +var279 = 0; /* is null */ +} else { +var279 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_method_finish,var278) on */ +var_other = var278; +{ +var283 = ((short int (*)(val*, val*))(var_method_finish->class->vft[COLOR_kernel__Object___61d_61d]))(var_method_finish, var_other) /* == on */; +var282 = var283; +} +var284 = !var282; +var280 = var284; +goto RET_LABEL281; +RET_LABEL281:(void)0; +} +var279 = var280; +} +if (var279){ +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var287 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var287 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var285 = var287; +RET_LABEL286:(void)0; +} +} +{ +var288 = astbuilder__AExpr__make_var_read(var_iter); +} +var289 = NULL; +{ +var290 = astbuilder__ASTBuilder__make_call(var285, var288, var_method_finish, var289); +} +{ +astbuilder__ABlockExpr__add(var_nblock, var290); /* Direct call astbuilder#ABlockExpr#add on */ +} +} else { +} +{ +parser_nodes__Prod__replace_with(self, var_nblock); /* Direct call parser_nodes#Prod#replace_with on */ +} +RET_LABEL:; +} +/* method transform#AForExpr#accept_transform_visitor for (self: Object, TransformVisitor) */ +void VIRTUAL_transform__AForExpr__accept_transform_visitor(val* self, val* p0) { +transform__AForExpr__accept_transform_visitor(self, p0); /* Direct call transform#AForExpr#accept_transform_visitor on */ RET_LABEL:; } -/* method transform#ASuperstringExpr#accept_transform_visitor for (self: ASuperstringExpr, TransformVisitor) */ -void transform__ASuperstringExpr__accept_transform_visitor(val* self, val* p0) { +/* method transform#AArrayExpr#accept_transform_visitor for (self: AArrayExpr, TransformVisitor) */ +void transform__AArrayExpr__accept_transform_visitor(val* self, val* p0) { val* var_v /* var v: TransformVisitor */; val* var /* : ASTBuilder */; -val* var1 /* : ABlockExpr */; +val* var2 /* : ASTBuilder */; +val* var3 /* : ABlockExpr */; val* var_nblock /* var nblock: ABlockExpr */; -static val* varonce; -val* var2 /* : String */; -char* var3 /* : NativeString */; -long var4 /* : Int */; -val* var5 /* : String */; -val* var6 /* : MClass */; -static val* varonce7; -val* var8 /* : String */; -char* var9 /* : NativeString */; -long var10 /* : Int */; -val* var11 /* : String */; -val* var12 /* : MClass */; -val* var13 /* : MClassType */; -val* var14 /* : Array[MClassType] */; -long var15 /* : Int */; -val* var16 /* : NativeArray[MClassType] */; -val* var17 /* : MClassType */; -val* var_arraytype /* var arraytype: MClassType */; -static val* varonce18; -val* var19 /* : String */; -char* var20 /* : NativeString */; +val* var4 /* : ASTBuilder */; +val* var6 /* : ASTBuilder */; +val* var7 /* : nullable CallSite */; +val* var9 /* : nullable CallSite */; +val* var10 /* : Array[AIntExpr] */; +long var11 /* : Int */; +val* var_ /* var : Array[AIntExpr] */; +val* var12 /* : ASTBuilder */; +val* var14 /* : ASTBuilder */; +val* var15 /* : AExprs */; +val* var17 /* : AExprs */; +val* var18 /* : ANodes[AExpr] */; +val* var20 /* : ANodes[AExpr] */; long var21 /* : Int */; -val* var22 /* : String */; -val* var23 /* : MClass */; -val* var24 /* : MMethod */; -val* var_meth /* var meth: MMethod */; -val* var25 /* : ASTBuilder */; -val* var26 /* : ASTBuilder */; -val* var27 /* : ANodes[AExpr] */; -long var28 /* : Int */; -val* var29 /* : AIntExpr */; -val* var30 /* : Array[AIntExpr] */; -long var31 /* : Int */; -val* var32 /* : NativeArray[AIntExpr] */; -val* var33 /* : ANewExpr */; +val* var22 /* : AIntExpr */; +val* var23 /* : ANewExpr */; val* var_nnew /* var nnew: ANewExpr */; -static val* varonce34; -val* var35 /* : String */; -char* var36 /* : NativeString */; -long var37 /* : Int */; -val* var38 /* : String */; -val* var39 /* : MClass */; -val* var40 /* : MMethod */; -val* var_madd /* var madd: MMethod */; -val* var41 /* : ANodes[AExpr] */; -val* var42 /* : Iterator[nullable Object] */; -short int var43 /* : Bool */; -val* var44 /* : nullable Object */; +val* var24 /* : AExprs */; +val* var26 /* : AExprs */; +val* var27 /* : ANodes[AExpr] */; +val* var29 /* : ANodes[AExpr] */; +val* var_30 /* var : ANodes[AExpr] */; +val* var31 /* : Iterator[ANode] */; +val* var_32 /* var : Iterator[AExpr] */; +short int var33 /* : Bool */; +val* var34 /* : nullable Object */; val* var_nexpr /* var nexpr: AExpr */; -val* var45 /* : ASTBuilder */; -val* var46 /* : AVarExpr */; -val* var47 /* : Array[AExpr] */; -long var48 /* : Int */; -val* var49 /* : NativeArray[AExpr] */; -val* var50 /* : ACallExpr */; +val* var35 /* : ASTBuilder */; +val* var37 /* : ASTBuilder */; +val* var38 /* : AVarExpr */; +val* var39 /* : nullable CallSite */; +val* var41 /* : nullable CallSite */; +val* var42 /* : Array[AExpr] */; +long var43 /* : Int */; +val* var_44 /* var : Array[AExpr] */; +val* var45 /* : ACallExpr */; val* var_nadd /* var nadd: ACallExpr */; -static val* varonce51; -val* var52 /* : String */; -char* var53 /* : NativeString */; -long var54 /* : Int */; -val* var55 /* : String */; -val* var56 /* : MClass */; -val* var57 /* : MMethod */; -val* var_mtos /* var mtos: MMethod */; -val* var58 /* : ASTBuilder */; -val* var59 /* : AVarExpr */; -val* var60 /* : null */; -val* var61 /* : ACallExpr */; -val* var_ntos /* var ntos: ACallExpr */; +val* var47 /* : AVarExpr */; +val* var_nres /* var nres: AVarExpr */; var_v = p0; -var = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var1 = ((val* (*)(val*))(var->class->vft[COLOR_astbuilder__ASTBuilder__make_block]))(var) /* make_block on */; -var_nblock = var1; -if (varonce) { -var2 = varonce; -} else { -var3 = "Array"; -var4 = 5; -var5 = string__NativeString__to_s_with_length(var3, var4); -var2 = var5; -varonce = var2; -} -var6 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_transform__TransformVisitor__get_class]))(var_v, self, var2) /* get_class on */; -if (varonce7) { -var8 = varonce7; -} else { -var9 = "Object"; -var10 = 6; -var11 = string__NativeString__to_s_with_length(var9, var10); -var8 = var11; -varonce7 = var8; -} -var12 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_transform__TransformVisitor__get_class]))(var_v, self, var8) /* get_class on */; -var13 = ((val* (*)(val*))(var12->class->vft[COLOR_model__MClass__mclass_type]))(var12) /* mclass_type on */; -var14 = NEW_array__Array(&type_array__Arraymodel__MClassType); -{ /* var14 = array_instance Array[MClassType] */ -var15 = 1; -var16 = NEW_array__NativeArray(var15, &type_array__NativeArraymodel__MClassType); -((struct instance_array__NativeArray*)var16)->values[0] = (val*) var13; -((void (*)(val*, val*, long))(var14->class->vft[COLOR_array__Array__with_native]))(var14, var16, var15) /* with_native on */; -CHECK_NEW_array__Array(var14); -} -var17 = ((val* (*)(val*, val*))(var6->class->vft[COLOR_model__MClass__get_mtype]))(var6, var14) /* get_mtype on */; -var_arraytype = var17; -if (varonce18) { -var19 = varonce18; -} else { -var20 = "with_capacity"; -var21 = 13; -var22 = string__NativeString__to_s_with_length(var20, var21); -var19 = var22; -varonce18 = var19; -} -var23 = ((val* (*)(val*))(var_arraytype->class->vft[COLOR_model__MClassType__mclass]))(var_arraytype) /* mclass on */; -var24 = ((val* (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_transform__TransformVisitor__get_method]))(var_v, self, var19, var23) /* get_method on */; -var_meth = var24; -var25 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var26 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var27 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASuperstringExpr__n_exprs]))(self) /* n_exprs on */; -var28 = ((long (*)(val*))(var27->class->vft[COLOR_abstract_collection__Collection__length]))(var27) /* length on */; -var29 = ((val* (*)(val*, long))(var26->class->vft[COLOR_astbuilder__ASTBuilder__make_int]))(var26, var28) /* make_int on */; -var30 = NEW_array__Array(&type_array__Arrayparser_nodes__AIntExpr); -{ /* var30 = array_instance Array[AIntExpr] */ -var31 = 1; -var32 = NEW_array__NativeArray(var31, &type_array__NativeArrayparser_nodes__AIntExpr); -((struct instance_array__NativeArray*)var32)->values[0] = (val*) var29; -((void (*)(val*, val*, long))(var30->class->vft[COLOR_array__Array__with_native]))(var30, var32, var31) /* with_native on */; -CHECK_NEW_array__Array(var30); -} -var33 = ((val* (*)(val*, val*, val*, val*))(var25->class->vft[COLOR_astbuilder__ASTBuilder__make_new]))(var25, var_arraytype, var_meth, var30) /* make_new on */; -var_nnew = var33; -((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var_nnew) /* add on */; -if (varonce34) { -var35 = varonce34; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var2 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; +} +} +{ +var3 = astbuilder__ASTBuilder__make_block(var); +} +var_nblock = var3; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var6 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var6 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var4 = var6; +RET_LABEL5:(void)0; +} +} +{ +{ /* Inline typing#AArrayExpr#with_capacity_callsite (self) on */ +var9 = self->attrs[COLOR_typing__AArrayExpr___with_capacity_callsite].val; /* _with_capacity_callsite on */ +var7 = var9; +RET_LABEL8:(void)0; +} +} +if (unlikely(var7 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 285); +show_backtrace(1); +} +var10 = NEW_array__Array(&type_array__Arrayparser_nodes__AIntExpr); +var11 = 1; +{ +array__Array__with_capacity(var10, var11); /* Direct call array#Array#with_capacity on */ +} +var_ = var10; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var14 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var14 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var12 = var14; +RET_LABEL13:(void)0; +} +} +{ +{ /* Inline parser_nodes#AArrayExpr#n_exprs (self) on */ +var17 = self->attrs[COLOR_parser_nodes__AArrayExpr___n_exprs].val; /* _n_exprs on */ +if (unlikely(var17 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1776); +show_backtrace(1); +} +var15 = var17; +RET_LABEL16:(void)0; +} +} +{ +{ /* Inline parser_nodes#AExprs#n_exprs (var15) on */ +var20 = var15->attrs[COLOR_parser_nodes__AExprs___n_exprs].val; /* _n_exprs on */ +if (unlikely(var20 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1946); +show_backtrace(1); +} +var18 = var20; +RET_LABEL19:(void)0; +} +} +{ +var21 = parser_nodes__ANodes__length(var18); +} +{ +var22 = astbuilder__ASTBuilder__make_int(var12, var21); +} +{ +array__AbstractArray__push(var_, var22); /* Direct call array#AbstractArray#push on */ +} +{ +var23 = astbuilder__ASTBuilder__make_new(var4, var7, var_); +} +var_nnew = var23; +{ +astbuilder__ABlockExpr__add(var_nblock, var_nnew); /* Direct call astbuilder#ABlockExpr#add on */ +} +{ +{ /* Inline parser_nodes#AArrayExpr#n_exprs (self) on */ +var26 = self->attrs[COLOR_parser_nodes__AArrayExpr___n_exprs].val; /* _n_exprs on */ +if (unlikely(var26 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1776); +show_backtrace(1); +} +var24 = var26; +RET_LABEL25:(void)0; +} +} +{ +{ /* Inline parser_nodes#AExprs#n_exprs (var24) on */ +var29 = var24->attrs[COLOR_parser_nodes__AExprs___n_exprs].val; /* _n_exprs on */ +if (unlikely(var29 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1946); +show_backtrace(1); +} +var27 = var29; +RET_LABEL28:(void)0; +} +} +var_30 = var27; +{ +var31 = parser_nodes__ANodes__iterator(var_30); +} +var_32 = var31; +for(;;) { +{ +var33 = ((short int (*)(val*))(var_32->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_32) /* is_ok on */; +} +if (var33){ +{ +var34 = ((val* (*)(val*))(var_32->class->vft[COLOR_abstract_collection__Iterator__item]))(var_32) /* item on */; +} +var_nexpr = var34; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var37 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var37 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var35 = var37; +RET_LABEL36:(void)0; +} +} +{ +var38 = astbuilder__AExpr__make_var_read(var_nnew); +} +{ +{ /* Inline typing#AArrayExpr#push_callsite (self) on */ +var41 = self->attrs[COLOR_typing__AArrayExpr___push_callsite].val; /* _push_callsite on */ +var39 = var41; +RET_LABEL40:(void)0; +} +} +if (unlikely(var39 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 289); +show_backtrace(1); +} +var42 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); +var43 = 1; +{ +array__Array__with_capacity(var42, var43); /* Direct call array#Array#with_capacity on */ +} +var_44 = var42; +{ +array__AbstractArray__push(var_44, var_nexpr); /* Direct call array#AbstractArray#push on */ +} +{ +var45 = astbuilder__ASTBuilder__make_call(var35, var38, var39, var_44); +} +var_nadd = var45; +{ +astbuilder__ABlockExpr__add(var_nblock, var_nadd); /* Direct call astbuilder#ABlockExpr#add on */ +} +{ +((void (*)(val*))(var_32->class->vft[COLOR_abstract_collection__Iterator__next]))(var_32) /* next on */; +} } else { -var36 = "add"; -var37 = 3; -var38 = string__NativeString__to_s_with_length(var36, var37); -var35 = var38; -varonce34 = var35; -} -var39 = ((val* (*)(val*))(var_arraytype->class->vft[COLOR_model__MClassType__mclass]))(var_arraytype) /* mclass on */; -var40 = ((val* (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_transform__TransformVisitor__get_method]))(var_v, self, var35, var39) /* get_method on */; -var_madd = var40; -var41 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASuperstringExpr__n_exprs]))(self) /* n_exprs on */; -var42 = ((val* (*)(val*))(var41->class->vft[COLOR_abstract_collection__Collection__iterator]))(var41) /* iterator on */; -for(;;) { -var43 = ((short int (*)(val*))(var42->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var42) /* is_ok on */; -if(!var43) break; -var44 = ((val* (*)(val*))(var42->class->vft[COLOR_abstract_collection__Iterator__item]))(var42) /* item on */; -var_nexpr = var44; -var45 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var46 = ((val* (*)(val*))(var_nnew->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var_nnew) /* make_var_read on */; -var47 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); -{ /* var47 = array_instance Array[AExpr] */ -var48 = 1; -var49 = NEW_array__NativeArray(var48, &type_array__NativeArrayparser_nodes__AExpr); -((struct instance_array__NativeArray*)var49)->values[0] = (val*) var_nexpr; -((void (*)(val*, val*, long))(var47->class->vft[COLOR_array__Array__with_native]))(var47, var49, var48) /* with_native on */; -CHECK_NEW_array__Array(var47); -} -var50 = ((val* (*)(val*, val*, val*, val*))(var45->class->vft[COLOR_astbuilder__ASTBuilder__make_call]))(var45, var46, var_madd, var47) /* make_call on */; -var_nadd = var50; -((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var_nadd) /* add on */; -CONTINUE_label: (void)0; -((void (*)(val*))(var42->class->vft[COLOR_abstract_collection__Iterator__next]))(var42) /* next on */; +goto BREAK_label; +} } BREAK_label: (void)0; -if (varonce51) { -var52 = varonce51; -} else { -var53 = "to_s"; -var54 = 4; -var55 = string__NativeString__to_s_with_length(var53, var54); -var52 = var55; -varonce51 = var52; -} -var56 = ((val* (*)(val*))(var_arraytype->class->vft[COLOR_model__MClassType__mclass]))(var_arraytype) /* mclass on */; -var57 = ((val* (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_transform__TransformVisitor__get_method]))(var_v, self, var52, var56) /* get_method on */; -var_mtos = var57; -var58 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var59 = ((val* (*)(val*))(var_nnew->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var_nnew) /* make_var_read on */; -var60 = NULL; -var61 = ((val* (*)(val*, val*, val*, val*))(var58->class->vft[COLOR_astbuilder__ASTBuilder__make_call]))(var58, var59, var_mtos, var60) /* make_call on */; -var_ntos = var61; -((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var_ntos) /* add on */; -((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nblock) /* replace_with on */; +{ +{ /* Inline abstract_collection#Iterator#finish (var_32) on */ +RET_LABEL46:(void)0; +} +} +{ +var47 = astbuilder__AExpr__make_var_read(var_nnew); +} +var_nres = var47; +{ +astbuilder__ABlockExpr__add(var_nblock, var_nres); /* Direct call astbuilder#ABlockExpr#add on */ +} +{ +parser_nodes__Prod__replace_with(self, var_nblock); /* Direct call parser_nodes#Prod#replace_with on */ +} RET_LABEL:; } -/* method transform#ASuperstringExpr#accept_transform_visitor for (self: Object, TransformVisitor) */ -void VIRTUAL_transform__ASuperstringExpr__accept_transform_visitor(val* self, val* p0) { -transform__ASuperstringExpr__accept_transform_visitor(self, p0); +/* method transform#AArrayExpr#accept_transform_visitor for (self: Object, TransformVisitor) */ +void VIRTUAL_transform__AArrayExpr__accept_transform_visitor(val* self, val* p0) { +transform__AArrayExpr__accept_transform_visitor(self, p0); /* Direct call transform#AArrayExpr#accept_transform_visitor on */ RET_LABEL:; } /* method transform#ACrangeExpr#accept_transform_visitor for (self: ACrangeExpr, TransformVisitor) */ void transform__ACrangeExpr__accept_transform_visitor(val* self, val* p0) { val* var_v /* var v: TransformVisitor */; -val* var /* : nullable MType */; -short int var1 /* : Bool */; +val* var /* : nullable ANode */; +val* var2 /* : nullable ANode */; +short int var3 /* : Bool */; int cltype; int idtype; -val* var_mtype /* var mtype: MClassType */; -static val* varonce; -val* var2 /* : String */; -char* var3 /* : NativeString */; -long var4 /* : Int */; -val* var5 /* : String */; -val* var6 /* : MClass */; -val* var7 /* : MMethod */; -val* var_meth /* var meth: MMethod */; -val* var8 /* : ASTBuilder */; -val* var9 /* : AExpr */; -val* var10 /* : AExpr */; -val* var11 /* : Array[AExpr] */; -long var12 /* : Int */; -val* var13 /* : NativeArray[AExpr] */; -val* var14 /* : ANewExpr */; +val* var4 /* : ASTBuilder */; +val* var6 /* : ASTBuilder */; +val* var7 /* : nullable CallSite */; +val* var9 /* : nullable CallSite */; +val* var10 /* : Array[AExpr] */; +long var11 /* : Int */; +val* var_ /* var : Array[AExpr] */; +val* var12 /* : AExpr */; +val* var14 /* : AExpr */; +val* var15 /* : AExpr */; +val* var17 /* : AExpr */; +val* var18 /* : ANewExpr */; var_v = p0; -var = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on */; -/* isa MClassType */ -cltype = type_model__MClassType.color; -idtype = type_model__MClassType.id; +{ +{ /* Inline parser_nodes#ANode#parent (self) on */ +var2 = self->attrs[COLOR_parser_nodes__ANode___parent].val; /* _parent on */ +var = var2; +RET_LABEL1:(void)0; +} +} +/* isa AForExpr */ +cltype = type_parser_nodes__AForExpr.color; +idtype = type_parser_nodes__AForExpr.id; if(var == NULL) { -var1 = 0; +var3 = 0; } else { if(cltype >= var->type->table_size) { -var1 = 0; +var3 = 0; } else { -var1 = var->type->type_table[cltype] == idtype; -} +var3 = var->type->type_table[cltype] == idtype; } -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/transform.nit", 227); -exit(1); } -var_mtype = var; -if (varonce) { -var2 = varonce; +if (var3){ +goto RET_LABEL; } else { -var3 = "init"; -var4 = 4; -var5 = string__NativeString__to_s_with_length(var3, var4); -var2 = var5; -varonce = var2; -} -var6 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_model__MClassType__mclass]))(var_mtype) /* mclass on */; -var7 = ((val* (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_transform__TransformVisitor__get_method]))(var_v, self, var2, var6) /* get_method on */; -var_meth = var7; -var8 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var9 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ARangeExpr__n_expr]))(self) /* n_expr on */; -var10 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ARangeExpr__n_expr2]))(self) /* n_expr2 on */; -var11 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); -{ /* var11 = array_instance Array[AExpr] */ -var12 = 2; -var13 = NEW_array__NativeArray(var12, &type_array__NativeArrayparser_nodes__AExpr); -((struct instance_array__NativeArray*)var13)->values[0] = (val*) var9; -((struct instance_array__NativeArray*)var13)->values[1] = (val*) var10; -((void (*)(val*, val*, long))(var11->class->vft[COLOR_array__Array__with_native]))(var11, var13, var12) /* with_native on */; -CHECK_NEW_array__Array(var11); -} -var14 = ((val* (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_astbuilder__ASTBuilder__make_new]))(var8, var_mtype, var_meth, var11) /* make_new on */; -((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var14) /* replace_with on */; +} +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var6 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var6 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var4 = var6; +RET_LABEL5:(void)0; +} +} +{ +{ /* Inline typing#ARangeExpr#init_callsite (self) on */ +var9 = self->attrs[COLOR_typing__ARangeExpr___init_callsite].val; /* _init_callsite on */ +var7 = var9; +RET_LABEL8:(void)0; +} +} +if (unlikely(var7 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 304); +show_backtrace(1); +} +var10 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); +var11 = 2; +{ +array__Array__with_capacity(var10, var11); /* Direct call array#Array#with_capacity on */ +} +var_ = var10; +{ +{ /* Inline parser_nodes#ARangeExpr#n_expr (self) on */ +var14 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var14 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1754); +show_backtrace(1); +} +var12 = var14; +RET_LABEL13:(void)0; +} +} +{ +array__AbstractArray__push(var_, var12); /* Direct call array#AbstractArray#push on */ +} +{ +{ /* Inline parser_nodes#ARangeExpr#n_expr2 (self) on */ +var17 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on */ +if (unlikely(var17 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1755); +show_backtrace(1); +} +var15 = var17; +RET_LABEL16:(void)0; +} +} +{ +array__AbstractArray__push(var_, var15); /* Direct call array#AbstractArray#push on */ +} +{ +var18 = astbuilder__ASTBuilder__make_new(var4, var7, var_); +} +{ +parser_nodes__Prod__replace_with(self, var18); /* Direct call parser_nodes#Prod#replace_with on */ +} RET_LABEL:; } /* method transform#ACrangeExpr#accept_transform_visitor for (self: Object, TransformVisitor) */ void VIRTUAL_transform__ACrangeExpr__accept_transform_visitor(val* self, val* p0) { -transform__ACrangeExpr__accept_transform_visitor(self, p0); +transform__ACrangeExpr__accept_transform_visitor(self, p0); /* Direct call transform#ACrangeExpr#accept_transform_visitor on */ RET_LABEL:; } /* method transform#AOrangeExpr#accept_transform_visitor for (self: AOrangeExpr, TransformVisitor) */ void transform__AOrangeExpr__accept_transform_visitor(val* self, val* p0) { val* var_v /* var v: TransformVisitor */; -val* var /* : nullable MType */; -short int var1 /* : Bool */; +val* var /* : nullable ANode */; +val* var2 /* : nullable ANode */; +short int var3 /* : Bool */; int cltype; int idtype; -val* var_mtype /* var mtype: MClassType */; -static val* varonce; -val* var2 /* : String */; -char* var3 /* : NativeString */; -long var4 /* : Int */; -val* var5 /* : String */; -val* var6 /* : MClass */; -val* var7 /* : MMethod */; -val* var_meth /* var meth: MMethod */; -val* var8 /* : ASTBuilder */; -val* var9 /* : AExpr */; -val* var10 /* : AExpr */; -val* var11 /* : Array[AExpr] */; -long var12 /* : Int */; -val* var13 /* : NativeArray[AExpr] */; -val* var14 /* : ANewExpr */; +val* var4 /* : ASTBuilder */; +val* var6 /* : ASTBuilder */; +val* var7 /* : nullable CallSite */; +val* var9 /* : nullable CallSite */; +val* var10 /* : Array[AExpr] */; +long var11 /* : Int */; +val* var_ /* var : Array[AExpr] */; +val* var12 /* : AExpr */; +val* var14 /* : AExpr */; +val* var15 /* : AExpr */; +val* var17 /* : AExpr */; +val* var18 /* : ANewExpr */; var_v = p0; -var = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on */; -/* isa MClassType */ -cltype = type_model__MClassType.color; -idtype = type_model__MClassType.id; +{ +{ /* Inline parser_nodes#ANode#parent (self) on */ +var2 = self->attrs[COLOR_parser_nodes__ANode___parent].val; /* _parent on */ +var = var2; +RET_LABEL1:(void)0; +} +} +/* isa AForExpr */ +cltype = type_parser_nodes__AForExpr.color; +idtype = type_parser_nodes__AForExpr.id; if(var == NULL) { -var1 = 0; +var3 = 0; } else { if(cltype >= var->type->table_size) { -var1 = 0; +var3 = 0; } else { -var1 = var->type->type_table[cltype] == idtype; -} +var3 = var->type->type_table[cltype] == idtype; } -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/transform.nit", 238); -exit(1); } -var_mtype = var; -if (varonce) { -var2 = varonce; +if (var3){ +goto RET_LABEL; } else { -var3 = "without_last"; -var4 = 12; -var5 = string__NativeString__to_s_with_length(var3, var4); -var2 = var5; -varonce = var2; -} -var6 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_model__MClassType__mclass]))(var_mtype) /* mclass on */; -var7 = ((val* (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_transform__TransformVisitor__get_method]))(var_v, self, var2, var6) /* get_method on */; -var_meth = var7; -var8 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var9 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ARangeExpr__n_expr]))(self) /* n_expr on */; -var10 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ARangeExpr__n_expr2]))(self) /* n_expr2 on */; -var11 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); -{ /* var11 = array_instance Array[AExpr] */ -var12 = 2; -var13 = NEW_array__NativeArray(var12, &type_array__NativeArrayparser_nodes__AExpr); -((struct instance_array__NativeArray*)var13)->values[0] = (val*) var9; -((struct instance_array__NativeArray*)var13)->values[1] = (val*) var10; -((void (*)(val*, val*, long))(var11->class->vft[COLOR_array__Array__with_native]))(var11, var13, var12) /* with_native on */; -CHECK_NEW_array__Array(var11); -} -var14 = ((val* (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_astbuilder__ASTBuilder__make_new]))(var8, var_mtype, var_meth, var11) /* make_new on */; -((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var14) /* replace_with on */; +} +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var6 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var6 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var4 = var6; +RET_LABEL5:(void)0; +} +} +{ +{ /* Inline typing#ARangeExpr#init_callsite (self) on */ +var9 = self->attrs[COLOR_typing__ARangeExpr___init_callsite].val; /* _init_callsite on */ +var7 = var9; +RET_LABEL8:(void)0; +} +} +if (unlikely(var7 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 313); +show_backtrace(1); +} +var10 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); +var11 = 2; +{ +array__Array__with_capacity(var10, var11); /* Direct call array#Array#with_capacity on */ +} +var_ = var10; +{ +{ /* Inline parser_nodes#ARangeExpr#n_expr (self) on */ +var14 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var14 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1754); +show_backtrace(1); +} +var12 = var14; +RET_LABEL13:(void)0; +} +} +{ +array__AbstractArray__push(var_, var12); /* Direct call array#AbstractArray#push on */ +} +{ +{ /* Inline parser_nodes#ARangeExpr#n_expr2 (self) on */ +var17 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on */ +if (unlikely(var17 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1755); +show_backtrace(1); +} +var15 = var17; +RET_LABEL16:(void)0; +} +} +{ +array__AbstractArray__push(var_, var15); /* Direct call array#AbstractArray#push on */ +} +{ +var18 = astbuilder__ASTBuilder__make_new(var4, var7, var_); +} +{ +parser_nodes__Prod__replace_with(self, var18); /* Direct call parser_nodes#Prod#replace_with on */ +} RET_LABEL:; } /* method transform#AOrangeExpr#accept_transform_visitor for (self: Object, TransformVisitor) */ void VIRTUAL_transform__AOrangeExpr__accept_transform_visitor(val* self, val* p0) { -transform__AOrangeExpr__accept_transform_visitor(self, p0); +transform__AOrangeExpr__accept_transform_visitor(self, p0); /* Direct call transform#AOrangeExpr#accept_transform_visitor on */ RET_LABEL:; } /* method transform#AParExpr#accept_transform_visitor for (self: AParExpr, TransformVisitor) */ void transform__AParExpr__accept_transform_visitor(val* self, val* p0) { val* var_v /* var v: TransformVisitor */; val* var /* : AExpr */; +val* var2 /* : AExpr */; var_v = p0; -var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AProxyExpr__n_expr]))(self) /* n_expr on */; -((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var) /* replace_with on */; +{ +{ /* Inline parser_nodes#AParExpr#n_expr (self) on */ +var2 = self->attrs[COLOR_parser_nodes__AParExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1868); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; +} +} +{ +parser_nodes__Prod__replace_with(self, var); /* Direct call parser_nodes#Prod#replace_with on */ +} RET_LABEL:; } /* method transform#AParExpr#accept_transform_visitor for (self: Object, TransformVisitor) */ void VIRTUAL_transform__AParExpr__accept_transform_visitor(val* self, val* p0) { -transform__AParExpr__accept_transform_visitor(self, p0); +transform__AParExpr__accept_transform_visitor(self, p0); /* Direct call transform#AParExpr#accept_transform_visitor on */ RET_LABEL:; } /* method transform#ASendReassignFormExpr#accept_transform_visitor for (self: ASendReassignFormExpr, TransformVisitor) */ void transform__ASendReassignFormExpr__accept_transform_visitor(val* self, val* p0) { val* var_v /* var v: TransformVisitor */; val* var /* : ASTBuilder */; -val* var1 /* : ABlockExpr */; +val* var2 /* : ASTBuilder */; +val* var3 /* : ABlockExpr */; val* var_nblock /* var nblock: ABlockExpr */; -val* var2 /* : AExpr */; -val* var3 /* : Array[AExpr] */; +val* var4 /* : AExpr */; +val* var6 /* : AExpr */; +val* var7 /* : Array[AExpr] */; val* var_read_args /* var read_args: Array[AExpr] */; -val* var4 /* : Array[AExpr] */; +val* var8 /* : Array[AExpr] */; val* var_write_args /* var write_args: Array[AExpr] */; -val* var5 /* : nullable Array[AExpr] */; -val* var6 /* : Iterator[nullable Object] */; -short int var7 /* : Bool */; -val* var8 /* : nullable Object */; +val* var9 /* : Array[AExpr] */; +val* var_ /* var : Array[AExpr] */; +val* var10 /* : ArrayIterator[nullable Object] */; +val* var_11 /* var : ArrayIterator[AExpr] */; +short int var12 /* : Bool */; +val* var13 /* : nullable Object */; val* var_a /* var a: AExpr */; -val* var9 /* : AVarExpr */; -val* var10 /* : AVarExpr */; -val* var11 /* : ASTBuilder */; -val* var12 /* : AExpr */; -val* var13 /* : AVarExpr */; -val* var14 /* : nullable CallSite */; -val* var15 /* : MMethod */; -val* var16 /* : ACallExpr */; -val* var_nread /* var nread: ACallExpr */; +val* var14 /* : AVarExpr */; +val* var15 /* : AVarExpr */; val* var17 /* : ASTBuilder */; -val* var18 /* : nullable CallSite */; -val* var19 /* : MMethod */; +val* var19 /* : ASTBuilder */; val* var20 /* : AExpr */; -val* var21 /* : Array[AExpr] */; -long var22 /* : Int */; -val* var23 /* : NativeArray[AExpr] */; -val* var24 /* : ACallExpr */; +val* var22 /* : AExpr */; +val* var23 /* : AVarExpr */; +val* var24 /* : nullable CallSite */; +val* var26 /* : nullable CallSite */; +val* var27 /* : ACallExpr */; +val* var_nread /* var nread: ACallExpr */; +val* var28 /* : ASTBuilder */; +val* var30 /* : ASTBuilder */; +val* var31 /* : nullable CallSite */; +val* var33 /* : nullable CallSite */; +val* var34 /* : Array[AExpr] */; +long var35 /* : Int */; +val* var_36 /* var : Array[AExpr] */; +val* var37 /* : AExpr */; +val* var39 /* : AExpr */; +val* var40 /* : ACallExpr */; val* var_nnewvalue /* var nnewvalue: ACallExpr */; -val* var25 /* : ASTBuilder */; -val* var26 /* : AExpr */; -val* var27 /* : AVarExpr */; -val* var28 /* : nullable CallSite */; -val* var29 /* : MMethod */; -val* var30 /* : ACallExpr */; +val* var41 /* : ASTBuilder */; +val* var43 /* : ASTBuilder */; +val* var44 /* : AExpr */; +val* var46 /* : AExpr */; +val* var47 /* : AVarExpr */; +val* var48 /* : nullable CallSite */; +val* var50 /* : nullable CallSite */; +val* var51 /* : ACallExpr */; val* var_nwrite /* var nwrite: ACallExpr */; var_v = p0; -var = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var1 = ((val* (*)(val*))(var->class->vft[COLOR_astbuilder__ASTBuilder__make_block]))(var) /* make_block on */; -var_nblock = var1; -var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASendExpr__n_expr]))(self) /* n_expr on */; -((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var2) /* add on */; -var3 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); -((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -CHECK_NEW_array__Array(var3); -var_read_args = var3; -var4 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); -((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); -var_write_args = var4; -var5 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ASendExpr__raw_arguments]))(self) /* raw_arguments on */; -if (var5 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/transform.nit", 268); -exit(1); -} -var6 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on */; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var2 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; +} +} +{ +var3 = astbuilder__ASTBuilder__make_block(var); +} +var_nblock = var3; +{ +{ /* Inline parser_nodes#ASendExpr#n_expr (self) on */ +var6 = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var6 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1466); +show_backtrace(1); +} +var4 = var6; +RET_LABEL5:(void)0; +} +} +{ +astbuilder__ABlockExpr__add(var_nblock, var4); /* Direct call astbuilder#ABlockExpr#add on */ +} +var7 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); +{ +((void (*)(val*))(var7->class->vft[COLOR_kernel__Object__init]))(var7) /* init on */; +} +var_read_args = var7; +var8 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); +{ +((void (*)(val*))(var8->class->vft[COLOR_kernel__Object__init]))(var8) /* init on */; +} +var_write_args = var8; +{ +var9 = typing__ASendExpr__raw_arguments(self); +} +var_ = var9; +{ +var10 = array__AbstractArrayRead__iterator(var_); +} +var_11 = var10; for(;;) { -var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on */; -if(!var7) break; -var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on */; -var_a = var8; -((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var_a) /* add on */; -var9 = ((val* (*)(val*))(var_a->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var_a) /* make_var_read on */; -((void (*)(val*, val*))(var_read_args->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_read_args, var9) /* add on */; -var10 = ((val* (*)(val*))(var_a->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var_a) /* make_var_read on */; -((void (*)(val*, val*))(var_write_args->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_write_args, var10) /* add on */; -CONTINUE_label: (void)0; -((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on */; +{ +var12 = array__ArrayIterator__is_ok(var_11); +} +if (var12){ +{ +var13 = array__ArrayIterator__item(var_11); +} +var_a = var13; +{ +astbuilder__ABlockExpr__add(var_nblock, var_a); /* Direct call astbuilder#ABlockExpr#add on */ +} +{ +var14 = astbuilder__AExpr__make_var_read(var_a); +} +{ +array__Array__add(var_read_args, var14); /* Direct call array#Array#add on */ +} +{ +var15 = astbuilder__AExpr__make_var_read(var_a); +} +{ +array__Array__add(var_write_args, var15); /* Direct call array#Array#add on */ +} +{ +array__ArrayIterator__next(var_11); /* Direct call array#ArrayIterator#next on */ } -BREAK_label: (void)0; -var11 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var12 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASendExpr__n_expr]))(self) /* n_expr on */; -var13 = ((val* (*)(val*))(var12->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var12) /* make_var_read on */; -var14 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ASendExpr__callsite]))(self) /* callsite on */; -if (var14 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/transform.nit", 274); -exit(1); -} else { -var15 = ((val* (*)(val*))(var14->class->vft[COLOR_typing__CallSite__mproperty]))(var14) /* mproperty on */; -} -var16 = ((val* (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_astbuilder__ASTBuilder__make_call]))(var11, var13, var15, var_read_args) /* make_call on */; -var_nread = var16; -var17 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var18 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AReassignFormExpr__reassign_callsite]))(self) /* reassign_callsite on */; -if (var18 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/transform.nit", 276); -exit(1); -} else { -var19 = ((val* (*)(val*))(var18->class->vft[COLOR_typing__CallSite__mproperty]))(var18) /* mproperty on */; -} -var20 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AReassignFormExpr__n_value]))(self) /* n_value on */; -var21 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); -{ /* var21 = array_instance Array[AExpr] */ -var22 = 1; -var23 = NEW_array__NativeArray(var22, &type_array__NativeArrayparser_nodes__AExpr); -((struct instance_array__NativeArray*)var23)->values[0] = (val*) var20; -((void (*)(val*, val*, long))(var21->class->vft[COLOR_array__Array__with_native]))(var21, var23, var22) /* with_native on */; -CHECK_NEW_array__Array(var21); -} -var24 = ((val* (*)(val*, val*, val*, val*))(var17->class->vft[COLOR_astbuilder__ASTBuilder__make_call]))(var17, var_nread, var19, var21) /* make_call on */; -var_nnewvalue = var24; -((void (*)(val*, val*))(var_write_args->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_write_args, var_nnewvalue) /* add on */; -var25 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var26 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASendExpr__n_expr]))(self) /* n_expr on */; -var27 = ((val* (*)(val*))(var26->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var26) /* make_var_read on */; -var28 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ASendReassignFormExpr__write_callsite]))(self) /* write_callsite on */; -if (var28 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/transform.nit", 279); -exit(1); } else { -var29 = ((val* (*)(val*))(var28->class->vft[COLOR_typing__CallSite__mproperty]))(var28) /* mproperty on */; +goto BREAK_label; +} +} +BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_11) on */ +RET_LABEL16:(void)0; +} +} +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var19 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var19 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var17 = var19; +RET_LABEL18:(void)0; +} +} +{ +{ /* Inline parser_nodes#ASendExpr#n_expr (self) on */ +var22 = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var22 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1466); +show_backtrace(1); +} +var20 = var22; +RET_LABEL21:(void)0; +} +} +{ +var23 = astbuilder__AExpr__make_var_read(var20); +} +{ +{ /* Inline typing#ASendExpr#callsite (self) on */ +var26 = self->attrs[COLOR_typing__ASendExpr___callsite].val; /* _callsite on */ +var24 = var26; +RET_LABEL25:(void)0; +} +} +if (unlikely(var24 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 346); +show_backtrace(1); +} +{ +var27 = astbuilder__ASTBuilder__make_call(var17, var23, var24, var_read_args); +} +var_nread = var27; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var30 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var30 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var28 = var30; +RET_LABEL29:(void)0; +} +} +{ +{ /* Inline typing#AReassignFormExpr#reassign_callsite (self) on */ +var33 = self->attrs[COLOR_typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on */ +var31 = var33; +RET_LABEL32:(void)0; +} +} +if (unlikely(var31 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 348); +show_backtrace(1); +} +var34 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); +var35 = 1; +{ +array__Array__with_capacity(var34, var35); /* Direct call array#Array#with_capacity on */ +} +var_36 = var34; +{ +{ /* Inline parser_nodes#AReassignFormExpr#n_value (self) on */ +var39 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on */ +if (unlikely(var39 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1452); +show_backtrace(1); +} +var37 = var39; +RET_LABEL38:(void)0; +} +} +{ +array__AbstractArray__push(var_36, var37); /* Direct call array#AbstractArray#push on */ +} +{ +var40 = astbuilder__ASTBuilder__make_call(var28, var_nread, var31, var_36); +} +var_nnewvalue = var40; +{ +array__Array__add(var_write_args, var_nnewvalue); /* Direct call array#Array#add on */ +} +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var43 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var43 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var41 = var43; +RET_LABEL42:(void)0; +} +} +{ +{ /* Inline parser_nodes#ASendExpr#n_expr (self) on */ +var46 = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var46 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1466); +show_backtrace(1); +} +var44 = var46; +RET_LABEL45:(void)0; +} +} +{ +var47 = astbuilder__AExpr__make_var_read(var44); +} +{ +{ /* Inline typing#ASendReassignFormExpr#write_callsite (self) on */ +var50 = self->attrs[COLOR_typing__ASendReassignFormExpr___write_callsite].val; /* _write_callsite on */ +var48 = var50; +RET_LABEL49:(void)0; +} +} +if (unlikely(var48 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 351); +show_backtrace(1); +} +{ +var51 = astbuilder__ASTBuilder__make_call(var41, var47, var48, var_write_args); +} +var_nwrite = var51; +{ +astbuilder__ABlockExpr__add(var_nblock, var_nwrite); /* Direct call astbuilder#ABlockExpr#add on */ +} +{ +parser_nodes__Prod__replace_with(self, var_nblock); /* Direct call parser_nodes#Prod#replace_with on */ } -var30 = ((val* (*)(val*, val*, val*, val*))(var25->class->vft[COLOR_astbuilder__ASTBuilder__make_call]))(var25, var27, var29, var_write_args) /* make_call on */; -var_nwrite = var30; -((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var_nwrite) /* add on */; -((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nblock) /* replace_with on */; RET_LABEL:; } /* method transform#ASendReassignFormExpr#accept_transform_visitor for (self: Object, TransformVisitor) */ void VIRTUAL_transform__ASendReassignFormExpr__accept_transform_visitor(val* self, val* p0) { -transform__ASendReassignFormExpr__accept_transform_visitor(self, p0); +transform__ASendReassignFormExpr__accept_transform_visitor(self, p0); /* Direct call transform#ASendReassignFormExpr#accept_transform_visitor on */ RET_LABEL:; } /* method transform#AVarReassignExpr#accept_transform_visitor for (self: AVarReassignExpr, TransformVisitor) */ void transform__AVarReassignExpr__accept_transform_visitor(val* self, val* p0) { val* var_v /* var v: TransformVisitor */; val* var /* : nullable Variable */; +val* var2 /* : nullable Variable */; val* var_variable /* var variable: Variable */; -val* var1 /* : ASTBuilder */; -val* var2 /* : AVarExpr */; -val* var_nread /* var nread: AVarExpr */; val* var3 /* : ASTBuilder */; -val* var4 /* : nullable CallSite */; -val* var5 /* : MMethod */; -val* var6 /* : AExpr */; -val* var7 /* : Array[AExpr] */; -long var8 /* : Int */; -val* var9 /* : NativeArray[AExpr] */; -val* var10 /* : ACallExpr */; +val* var5 /* : ASTBuilder */; +val* var6 /* : nullable MType */; +val* var8 /* : nullable MType */; +val* var9 /* : AVarExpr */; +val* var_nread /* var nread: AVarExpr */; +val* var10 /* : ASTBuilder */; +val* var12 /* : ASTBuilder */; +val* var13 /* : nullable CallSite */; +val* var15 /* : nullable CallSite */; +val* var16 /* : Array[AExpr] */; +long var17 /* : Int */; +val* var_ /* var : Array[AExpr] */; +val* var18 /* : AExpr */; +val* var20 /* : AExpr */; +val* var21 /* : ACallExpr */; val* var_nnewvalue /* var nnewvalue: ACallExpr */; -val* var11 /* : ASTBuilder */; -val* var12 /* : AVarAssignExpr */; +val* var22 /* : ASTBuilder */; +val* var24 /* : ASTBuilder */; +val* var25 /* : AVarAssignExpr */; val* var_nwrite /* var nwrite: AVarAssignExpr */; var_v = p0; -var = ((val* (*)(val*))(self->class->vft[COLOR_scope__AVarFormExpr__variable]))(self) /* variable on */; -if (var == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/transform.nit", 290); -exit(1); +{ +{ /* Inline scope#AVarFormExpr#variable (self) on */ +var2 = self->attrs[COLOR_scope__AVarFormExpr___variable].val; /* _variable on */ +var = var2; +RET_LABEL1:(void)0; +} +} +if (unlikely(var == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 362); +show_backtrace(1); } var_variable = var; -var1 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var2 = ((val* (*)(val*, val*))(var1->class->vft[COLOR_astbuilder__ASTBuilder__make_var_read]))(var1, var_variable) /* make_var_read on */; -var_nread = var2; -var3 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var4 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AReassignFormExpr__reassign_callsite]))(self) /* reassign_callsite on */; -if (var4 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/transform.nit", 293); -exit(1); -} else { -var5 = ((val* (*)(val*))(var4->class->vft[COLOR_typing__CallSite__mproperty]))(var4) /* mproperty on */; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var5 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var5 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var3 = var5; +RET_LABEL4:(void)0; +} +} +{ +{ /* Inline typing#AReassignFormExpr#read_type (self) on */ +var8 = self->attrs[COLOR_typing__AReassignFormExpr___read_type].val; /* _read_type on */ +var6 = var8; +RET_LABEL7:(void)0; +} +} +if (unlikely(var6 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 364); +show_backtrace(1); +} +{ +var9 = astbuilder__ASTBuilder__make_var_read(var3, var_variable, var6); +} +var_nread = var9; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var12 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var12 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var10 = var12; +RET_LABEL11:(void)0; +} +} +{ +{ /* Inline typing#AReassignFormExpr#reassign_callsite (self) on */ +var15 = self->attrs[COLOR_typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on */ +var13 = var15; +RET_LABEL14:(void)0; +} +} +if (unlikely(var13 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 366); +show_backtrace(1); +} +var16 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); +var17 = 1; +{ +array__Array__with_capacity(var16, var17); /* Direct call array#Array#with_capacity on */ +} +var_ = var16; +{ +{ /* Inline parser_nodes#AReassignFormExpr#n_value (self) on */ +var20 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on */ +if (unlikely(var20 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1452); +show_backtrace(1); +} +var18 = var20; +RET_LABEL19:(void)0; +} +} +{ +array__AbstractArray__push(var_, var18); /* Direct call array#AbstractArray#push on */ +} +{ +var21 = astbuilder__ASTBuilder__make_call(var10, var_nread, var13, var_); +} +var_nnewvalue = var21; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var24 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var24 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var22 = var24; +RET_LABEL23:(void)0; +} +} +{ +var25 = astbuilder__ASTBuilder__make_var_assign(var22, var_variable, var_nnewvalue); +} +var_nwrite = var25; +{ +parser_nodes__Prod__replace_with(self, var_nwrite); /* Direct call parser_nodes#Prod#replace_with on */ } -var6 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AReassignFormExpr__n_value]))(self) /* n_value on */; -var7 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); -{ /* var7 = array_instance Array[AExpr] */ -var8 = 1; -var9 = NEW_array__NativeArray(var8, &type_array__NativeArrayparser_nodes__AExpr); -((struct instance_array__NativeArray*)var9)->values[0] = (val*) var6; -((void (*)(val*, val*, long))(var7->class->vft[COLOR_array__Array__with_native]))(var7, var9, var8) /* with_native on */; -CHECK_NEW_array__Array(var7); -} -var10 = ((val* (*)(val*, val*, val*, val*))(var3->class->vft[COLOR_astbuilder__ASTBuilder__make_call]))(var3, var_nread, var5, var7) /* make_call on */; -var_nnewvalue = var10; -var11 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var12 = ((val* (*)(val*, val*, val*))(var11->class->vft[COLOR_astbuilder__ASTBuilder__make_var_assign]))(var11, var_variable, var_nnewvalue) /* make_var_assign on */; -var_nwrite = var12; -((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nwrite) /* replace_with on */; RET_LABEL:; } /* method transform#AVarReassignExpr#accept_transform_visitor for (self: Object, TransformVisitor) */ void VIRTUAL_transform__AVarReassignExpr__accept_transform_visitor(val* self, val* p0) { -transform__AVarReassignExpr__accept_transform_visitor(self, p0); +transform__AVarReassignExpr__accept_transform_visitor(self, p0); /* Direct call transform#AVarReassignExpr#accept_transform_visitor on */ RET_LABEL:; } /* method transform#AAttrReassignExpr#accept_transform_visitor for (self: AAttrReassignExpr, TransformVisitor) */ void transform__AAttrReassignExpr__accept_transform_visitor(val* self, val* p0) { val* var_v /* var v: TransformVisitor */; val* var /* : ASTBuilder */; -val* var1 /* : ABlockExpr */; +val* var2 /* : ASTBuilder */; +val* var3 /* : ABlockExpr */; val* var_nblock /* var nblock: ABlockExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MAttribute */; +val* var4 /* : AExpr */; +val* var6 /* : AExpr */; +val* var7 /* : nullable MAttribute */; +val* var9 /* : nullable MAttribute */; val* var_attribute /* var attribute: MAttribute */; -val* var4 /* : ASTBuilder */; -val* var5 /* : AExpr */; -val* var6 /* : AVarExpr */; -val* var7 /* : AAttrExpr */; +val* var10 /* : ASTBuilder */; +val* var12 /* : ASTBuilder */; +val* var13 /* : AExpr */; +val* var15 /* : AExpr */; +val* var16 /* : AVarExpr */; +val* var17 /* : AAttrExpr */; val* var_nread /* var nread: AAttrExpr */; -val* var8 /* : ASTBuilder */; -val* var9 /* : nullable CallSite */; -val* var10 /* : MMethod */; -val* var11 /* : AExpr */; -val* var12 /* : Array[AExpr] */; -long var13 /* : Int */; -val* var14 /* : NativeArray[AExpr] */; -val* var15 /* : ACallExpr */; +val* var18 /* : ASTBuilder */; +val* var20 /* : ASTBuilder */; +val* var21 /* : nullable CallSite */; +val* var23 /* : nullable CallSite */; +val* var24 /* : Array[AExpr] */; +long var25 /* : Int */; +val* var_ /* var : Array[AExpr] */; +val* var26 /* : AExpr */; +val* var28 /* : AExpr */; +val* var29 /* : ACallExpr */; val* var_nnewvalue /* var nnewvalue: ACallExpr */; -val* var16 /* : ASTBuilder */; -val* var17 /* : AExpr */; -val* var18 /* : AVarExpr */; -val* var19 /* : AAttrAssignExpr */; +val* var30 /* : ASTBuilder */; +val* var32 /* : ASTBuilder */; +val* var33 /* : AExpr */; +val* var35 /* : AExpr */; +val* var36 /* : AVarExpr */; +val* var37 /* : AAttrAssignExpr */; val* var_nwrite /* var nwrite: AAttrAssignExpr */; var_v = p0; -var = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var1 = ((val* (*)(val*))(var->class->vft[COLOR_astbuilder__ASTBuilder__make_block]))(var) /* make_block on */; -var_nblock = var1; -var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrFormExpr__n_expr]))(self) /* n_expr on */; -((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var2) /* add on */; -var3 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AAttrFormExpr__mproperty]))(self) /* mproperty on */; -if (var3 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/transform.nit", 306); -exit(1); -} -var_attribute = var3; -var4 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrFormExpr__n_expr]))(self) /* n_expr on */; -var6 = ((val* (*)(val*))(var5->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var5) /* make_var_read on */; -var7 = ((val* (*)(val*, val*, val*))(var4->class->vft[COLOR_astbuilder__ASTBuilder__make_attr_read]))(var4, var6, var_attribute) /* make_attr_read on */; -var_nread = var7; -var8 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var9 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AReassignFormExpr__reassign_callsite]))(self) /* reassign_callsite on */; -if (var9 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/transform.nit", 309); -exit(1); -} else { -var10 = ((val* (*)(val*))(var9->class->vft[COLOR_typing__CallSite__mproperty]))(var9) /* mproperty on */; -} -var11 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AReassignFormExpr__n_value]))(self) /* n_value on */; -var12 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); -{ /* var12 = array_instance Array[AExpr] */ -var13 = 1; -var14 = NEW_array__NativeArray(var13, &type_array__NativeArrayparser_nodes__AExpr); -((struct instance_array__NativeArray*)var14)->values[0] = (val*) var11; -((void (*)(val*, val*, long))(var12->class->vft[COLOR_array__Array__with_native]))(var12, var14, var13) /* with_native on */; -CHECK_NEW_array__Array(var12); -} -var15 = ((val* (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_astbuilder__ASTBuilder__make_call]))(var8, var_nread, var10, var12) /* make_call on */; -var_nnewvalue = var15; -var16 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var17 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrFormExpr__n_expr]))(self) /* n_expr on */; -var18 = ((val* (*)(val*))(var17->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var17) /* make_var_read on */; -var19 = ((val* (*)(val*, val*, val*, val*))(var16->class->vft[COLOR_astbuilder__ASTBuilder__make_attr_assign]))(var16, var18, var_attribute, var_nnewvalue) /* make_attr_assign on */; -var_nwrite = var19; -((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var_nwrite) /* add on */; -((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nblock) /* replace_with on */; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var2 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; +} +} +{ +var3 = astbuilder__ASTBuilder__make_block(var); +} +var_nblock = var3; +{ +{ /* Inline parser_nodes#AAttrFormExpr#n_expr (self) on */ +var6 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var6 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1621); +show_backtrace(1); +} +var4 = var6; +RET_LABEL5:(void)0; +} +} +{ +astbuilder__ABlockExpr__add(var_nblock, var4); /* Direct call astbuilder#ABlockExpr#add on */ +} +{ +{ /* Inline typing#AAttrFormExpr#mproperty (self) on */ +var9 = self->attrs[COLOR_typing__AAttrFormExpr___mproperty].val; /* _mproperty on */ +var7 = var9; +RET_LABEL8:(void)0; +} +} +if (unlikely(var7 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 379); +show_backtrace(1); +} +var_attribute = var7; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var12 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var12 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var10 = var12; +RET_LABEL11:(void)0; +} +} +{ +{ /* Inline parser_nodes#AAttrFormExpr#n_expr (self) on */ +var15 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var15 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1621); +show_backtrace(1); +} +var13 = var15; +RET_LABEL14:(void)0; +} +} +{ +var16 = astbuilder__AExpr__make_var_read(var13); +} +{ +var17 = astbuilder__ASTBuilder__make_attr_read(var10, var16, var_attribute); +} +var_nread = var17; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var20 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var20 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var18 = var20; +RET_LABEL19:(void)0; +} +} +{ +{ /* Inline typing#AReassignFormExpr#reassign_callsite (self) on */ +var23 = self->attrs[COLOR_typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on */ +var21 = var23; +RET_LABEL22:(void)0; +} +} +if (unlikely(var21 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 382); +show_backtrace(1); +} +var24 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); +var25 = 1; +{ +array__Array__with_capacity(var24, var25); /* Direct call array#Array#with_capacity on */ +} +var_ = var24; +{ +{ /* Inline parser_nodes#AReassignFormExpr#n_value (self) on */ +var28 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on */ +if (unlikely(var28 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1452); +show_backtrace(1); +} +var26 = var28; +RET_LABEL27:(void)0; +} +} +{ +array__AbstractArray__push(var_, var26); /* Direct call array#AbstractArray#push on */ +} +{ +var29 = astbuilder__ASTBuilder__make_call(var18, var_nread, var21, var_); +} +var_nnewvalue = var29; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var32 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var32 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "transform.nit", 59); +show_backtrace(1); +} +var30 = var32; +RET_LABEL31:(void)0; +} +} +{ +{ /* Inline parser_nodes#AAttrFormExpr#n_expr (self) on */ +var35 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var35 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1621); +show_backtrace(1); +} +var33 = var35; +RET_LABEL34:(void)0; +} +} +{ +var36 = astbuilder__AExpr__make_var_read(var33); +} +{ +var37 = astbuilder__ASTBuilder__make_attr_assign(var30, var36, var_attribute, var_nnewvalue); +} +var_nwrite = var37; +{ +astbuilder__ABlockExpr__add(var_nblock, var_nwrite); /* Direct call astbuilder#ABlockExpr#add on */ +} +{ +parser_nodes__Prod__replace_with(self, var_nblock); /* Direct call parser_nodes#Prod#replace_with on */ +} RET_LABEL:; } /* method transform#AAttrReassignExpr#accept_transform_visitor for (self: Object, TransformVisitor) */ void VIRTUAL_transform__AAttrReassignExpr__accept_transform_visitor(val* self, val* p0) { -transform__AAttrReassignExpr__accept_transform_visitor(self, p0); +transform__AAttrReassignExpr__accept_transform_visitor(self, p0); /* Direct call transform#AAttrReassignExpr#accept_transform_visitor on */ RET_LABEL:; }