X-Git-Url: http://nitlanguage.org diff --git a/c_src/transform.sep.1.c b/c_src/transform.sep.1.c index 07e5e9d..5b1e109 100644 --- a/c_src/transform.sep.1.c +++ b/c_src/transform.sep.1.c @@ -1,37 +1,4 @@ #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", "Uninitialized attribute @transform_phase"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 24); -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); -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 */ -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); -RET_LABEL:; -} /* method transform#TransformPhase#process_npropdef for (self: TransformPhase, APropdef) */ void transform__TransformPhase__process_npropdef(val* self, val* p0) { val* var_npropdef /* var npropdef: APropdef */; @@ -41,61 +8,51 @@ 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 */; +{ +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 */; -var_val = var1; -((void (*)(val*, val*))(var_val->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_val, var_npropdef) /* enter_visit on */; -RET_LABEL:; +{ +{ /* Inline parser_nodes#Visitor#init (var1) on */ +RET_LABEL2:(void)0; } -/* 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); -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", "Uninitialized attribute @phase"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 45); -show_backtrace(1); +var_val = var1; +{ +parser_nodes__Visitor__enter_visit(var_val, var_npropdef); /* Direct call parser_nodes#Visitor#enter_visit on */ } -var = var1; RET_LABEL:; -return var; } -/* method transform#TransformVisitor#phase for (self: Object): TransformPhase */ -val* VIRTUAL_transform__TransformVisitor__phase(val* self) { -val* var /* : TransformPhase */; -val* var1 /* : TransformPhase */; -var1 = transform__TransformVisitor__phase(self); -var = var1; +/* 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); /* Direct call transform#TransformPhase#process_npropdef on */ 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", "Uninitialized attribute @mmodule"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 46); +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", "src/transform.nit", 46); show_backtrace(1); } var = var1; @@ -106,29 +63,42 @@ 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", "src/transform.nit", 46); +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", "Uninitialized attribute @mclassdef"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 47); +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", "src/transform.nit", 47); show_backtrace(1); } var = var1; @@ -139,29 +109,42 @@ 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", "src/transform.nit", 47); +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", "Uninitialized attribute @mpropdef"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 48); +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", "src/transform.nit", 48); show_backtrace(1); } var = var1; @@ -172,29 +155,42 @@ 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", "src/transform.nit", 48); +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", "Uninitialized attribute @builder"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 49); +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", "src/transform.nit", 49); show_backtrace(1); } var = var1; @@ -205,19 +201,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", "src/transform.nit", 49); +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) */ @@ -225,44 +234,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* var7 /* : MPropDef */; -val* var8 /* : MClassDef */; -val* var9 /* : MClassType */; +val* var4 /* : nullable MPropDef */; +val* var6 /* : MPropDef */; +val* var8 /* : MPropDef */; +val* var9 /* : MClassDef */; +val* var11 /* : MClassDef */; +val* var13 /* : MClassDef */; +val* var15 /* : MClassDef */; +val* var16 /* : MModule */; +val* var18 /* : MModule */; +val* var20 /* : ASTBuilder */; +val* var21 /* : MModule */; +val* var23 /* : MModule */; +val* var24 /* : MPropDef */; +val* var26 /* : MPropDef */; +val* var27 /* : MClassDef */; +val* var29 /* : MClassDef */; +val* var30 /* : MClassType */; +val* var32 /* : MClassType */; +{ +{ /* Inline parser_nodes#Visitor#init (self) on */ +RET_LABEL1:(void)0; +} +} 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", "Cast failed"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 54); +{ +{ /* Inline transform#TransformVisitor#phase= (self,var_phase) on */ +self->attrs[COLOR_transform__TransformVisitor___phase].val = var_phase; /* _phase on */ +RET_LABEL2:(void)0; +} +} +{ +{ /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on */ +var4 = var_npropdef->attrs[COLOR_modelize_property__APropdef___mpropdef].val; /* _mpropdef on */ +var = var4; +RET_LABEL3:(void)0; +} +} +if (unlikely(var == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 54); +show_backtrace(1); +} +{ +{ /* Inline transform#TransformVisitor#mpropdef= (self,var) on */ +self->attrs[COLOR_transform__TransformVisitor___mpropdef].val = var; /* _mpropdef on */ +RET_LABEL5:(void)0; +} +} +{ +{ /* Inline transform#TransformVisitor#mpropdef (self) on */ +var8 = self->attrs[COLOR_transform__TransformVisitor___mpropdef].val; /* _mpropdef on */ +if (unlikely(var8 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 48); show_backtrace(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 */; -((void (*)(val*, val*))(self->class->vft[COLOR_transform__TransformVisitor__builder_61d]))(self, var5) /* builder= on */; +var6 = var8; +RET_LABEL7:(void)0; +} +} +{ +{ /* Inline model#MPropDef#mclassdef (var6) on */ +var11 = var6->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on */ +if (unlikely(var11 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879); +show_backtrace(1); +} +var9 = var11; +RET_LABEL10:(void)0; +} +} +{ +{ /* Inline transform#TransformVisitor#mclassdef= (self,var9) on */ +self->attrs[COLOR_transform__TransformVisitor___mclassdef].val = var9; /* _mclassdef on */ +RET_LABEL12:(void)0; +} +} +{ +{ /* Inline transform#TransformVisitor#mclassdef (self) on */ +var15 = self->attrs[COLOR_transform__TransformVisitor___mclassdef].val; /* _mclassdef on */ +if (unlikely(var15 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 47); +show_backtrace(1); +} +var13 = var15; +RET_LABEL14:(void)0; +} +} +{ +{ /* Inline model#MClassDef#mmodule (var13) on */ +var18 = var13->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var18 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471); +show_backtrace(1); +} +var16 = var18; +RET_LABEL17:(void)0; +} +} +{ +{ /* Inline transform#TransformVisitor#mmodule= (self,var16) on */ +self->attrs[COLOR_transform__TransformVisitor___mmodule].val = var16; /* _mmodule on */ +RET_LABEL19:(void)0; +} +} +var20 = NEW_astbuilder__ASTBuilder(&type_astbuilder__ASTBuilder); +{ +{ /* Inline transform#TransformVisitor#mmodule (self) on */ +var23 = self->attrs[COLOR_transform__TransformVisitor___mmodule].val; /* _mmodule on */ +if (unlikely(var23 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 46); +show_backtrace(1); +} +var21 = var23; +RET_LABEL22:(void)0; +} +} +{ +{ /* Inline transform#TransformVisitor#mpropdef (self) on */ +var26 = self->attrs[COLOR_transform__TransformVisitor___mpropdef].val; /* _mpropdef on */ +if (unlikely(var26 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 48); +show_backtrace(1); +} +var24 = var26; +RET_LABEL25:(void)0; +} +} +{ +{ /* Inline model#MPropDef#mclassdef (var24) on */ +var29 = var24->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on */ +if (unlikely(var29 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879); +show_backtrace(1); +} +var27 = var29; +RET_LABEL28:(void)0; +} +} +{ +{ /* Inline model#MClassDef#bound_mtype (var27) on */ +var32 = var27->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var32 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477); +show_backtrace(1); +} +var30 = var32; +RET_LABEL31:(void)0; +} +} +{ +{ /* Inline astbuilder#ASTBuilder#init (var20,var21,var30) on */ +var20->attrs[COLOR_astbuilder__ASTBuilder___mmodule].val = var21; /* _mmodule on */ +var20->attrs[COLOR_astbuilder__ASTBuilder___anchor].val = var30; /* _anchor on */ +RET_LABEL33:(void)0; +} +} +{ +{ /* Inline transform#TransformVisitor#builder= (self,var20) on */ +self->attrs[COLOR_transform__TransformVisitor___builder].val = var20; /* _builder on */ +RET_LABEL34:(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) */ @@ -284,72 +431,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; +transform__TransformVisitor__visit(self, p0); /* Direct call transform#TransformVisitor#visit on */ 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; -RET_LABEL:; -return var; } /* method transform#ANode#accept_transform_visitor for (self: ANode, TransformVisitor) */ void transform__ANode__accept_transform_visitor(val* self, val* p0) { @@ -359,7 +452,11 @@ 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) */ @@ -369,12 +466,20 @@ val* var /* : 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 */; +short int var3 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var5 /* : Bool */; +short int var7 /* : Bool */; +val* var8 /* : ASTBuilder */; +val* var10 /* : ASTBuilder */; +val* var11 /* : nullable Variable */; +val* var13 /* : nullable Variable */; +val* var14 /* : 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 */; +{ +var = parser_nodes__AVardeclExpr__n_expr(self); +} var_nexpr = var; var1 = NULL; if (var_nexpr == NULL) { @@ -382,115 +487,220 @@ var2 = 1; /* is null */ } else { var2 = 0; /* arg is null but recv is not */ } +if (0) { +{ /* Inline kernel#Object#== (var_nexpr,var1) on */ +var_other = var1; +{ +{ /* Inline kernel#Object#is_same_instance (var_nexpr,var_other) on */ +var7 = var_nexpr == var_other; +var5 = var7; +goto RET_LABEL6; +RET_LABEL6:(void)0; +} +} +var3 = var5; +goto RET_LABEL4; +RET_LABEL4:(void)0; +} +var2 = var3; +} if (var2){ -((void (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__detach]))(self) /* detach on */; } 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", "Cast failed"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 99); +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var10 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var10 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49); +show_backtrace(1); +} +var8 = var10; +RET_LABEL9:(void)0; +} +} +{ +{ /* Inline scope#AVardeclExpr#variable (self) on */ +var13 = self->attrs[COLOR_scope__AVardeclExpr___variable].val; /* _variable on */ +var11 = var13; +RET_LABEL12:(void)0; +} +} +if (unlikely(var11 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 100); show_backtrace(1); } -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 */; +{ +var14 = astbuilder__ASTBuilder__make_var_assign(var8, var11, var_nexpr); +} +var_nvar = var14; +{ +parser_nodes__Prod__replace_with(self, var_nvar); /* Direct call parser_nodes#Prod#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* var2 /* : ASTBuilder */; +val* var3 /* : AExpr */; +val* var4 /* : nullable MType */; +val* var6 /* : nullable MType */; +val* var7 /* : AIfExpr */; val* var_nif /* var nif: AIfExpr */; -val* var4 /* : nullable AExpr */; -val* var5 /* : AExpr */; -val* var6 /* : nullable AExpr */; -val* var7 /* : AExpr */; +val* var8 /* : nullable AExpr */; +val* var9 /* : AExpr */; +val* var10 /* : nullable AExpr */; +val* var11 /* : 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", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 112); +{ +{ /* 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", "src/transform.nit", 49); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; +} +} +{ +var3 = parser_nodes__AIfexprExpr__n_expr(self); +} +{ +{ /* Inline typing#AExpr#mtype (self) on */ +var6 = self->attrs[COLOR_typing__AExpr___mtype].val; /* _mtype on */ +var4 = var6; +RET_LABEL5:(void)0; +} +} +{ +var7 = astbuilder__ASTBuilder__make_if(var, var3, var4); +} +var_nif = var7; +{ +var8 = parser_nodes__AIfExpr__n_then(var_nif); +} +{ +var9 = parser_nodes__AIfexprExpr__n_then(self); +} +if (var8 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 113); show_backtrace(1); } else { -((void (*)(val*, val*))(var4->class->vft[COLOR_astbuilder__AExpr__add]))(var4, var5) /* add on */; +((void (*)(val*, val*))(var8->class->vft[COLOR_astbuilder__AExpr__add]))(var8, var9) /* add on */; +} +{ +var10 = parser_nodes__AIfExpr__n_else(var_nif); } -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", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 113); +{ +var11 = parser_nodes__AIfexprExpr__n_else(self); +} +if (var10 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 114); show_backtrace(1); } else { -((void (*)(val*, val*))(var6->class->vft[COLOR_astbuilder__AExpr__add]))(var6, var7) /* add on */; +((void (*)(val*, val*))(var10->class->vft[COLOR_astbuilder__AExpr__add]))(var10, var11) /* 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* var2 /* : ASTBuilder */; +val* var3 /* : AExpr */; +val* var4 /* : nullable MType */; +val* var6 /* : nullable MType */; +val* var7 /* : AIfExpr */; val* var_nif /* var nif: AIfExpr */; -val* var4 /* : nullable AExpr */; -val* var5 /* : AExpr */; -val* var6 /* : AVarExpr */; -val* var7 /* : nullable AExpr */; -val* var8 /* : AExpr */; +val* var8 /* : nullable AExpr */; +val* var9 /* : AExpr */; +val* var10 /* : AVarExpr */; +val* var11 /* : nullable AExpr */; +val* var12 /* : 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", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 124); +{ +{ /* 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", "src/transform.nit", 49); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; +} +} +{ +var3 = parser_nodes__AOrExpr__n_expr(self); +} +{ +{ /* Inline typing#AExpr#mtype (self) on */ +var6 = self->attrs[COLOR_typing__AExpr___mtype].val; /* _mtype on */ +var4 = var6; +RET_LABEL5:(void)0; +} +} +{ +var7 = astbuilder__ASTBuilder__make_if(var, var3, var4); +} +var_nif = var7; +{ +var8 = parser_nodes__AIfExpr__n_then(var_nif); +} +{ +var9 = parser_nodes__AOrExpr__n_expr(self); +} +{ +var10 = astbuilder__AExpr__make_var_read(var9); +} +if (var8 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 125); show_backtrace(1); } else { -((void (*)(val*, val*))(var4->class->vft[COLOR_astbuilder__AExpr__add]))(var4, var6) /* add on */; +((void (*)(val*, val*))(var8->class->vft[COLOR_astbuilder__AExpr__add]))(var8, var10) /* add on */; +} +{ +var11 = parser_nodes__AIfExpr__n_else(var_nif); +} +{ +var12 = parser_nodes__AOrExpr__n_expr2(self); } -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", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 125); +if (var11 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 126); show_backtrace(1); } else { -((void (*)(val*, val*))(var7->class->vft[COLOR_astbuilder__AExpr__add]))(var7, var8) /* add on */; +((void (*)(val*, val*))(var11->class->vft[COLOR_astbuilder__AExpr__add]))(var11, var12) /* 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) */ @@ -501,53 +711,92 @@ 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* var2 /* : ASTBuilder */; +val* var3 /* : AExpr */; +val* var4 /* : nullable MType */; +val* var6 /* : nullable MType */; +val* var7 /* : AIfExpr */; val* var_nif /* var nif: AIfExpr */; -val* var4 /* : nullable AExpr */; -val* var5 /* : AExpr */; -val* var6 /* : nullable AExpr */; -val* var7 /* : AExpr */; -val* var8 /* : AVarExpr */; +val* var8 /* : nullable AExpr */; +val* var9 /* : AExpr */; +val* var10 /* : nullable AExpr */; +val* var11 /* : AExpr */; +val* var12 /* : 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", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 143); +{ +{ /* 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", "src/transform.nit", 49); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; +} +} +{ +var3 = parser_nodes__AAndExpr__n_expr(self); +} +{ +{ /* Inline typing#AExpr#mtype (self) on */ +var6 = self->attrs[COLOR_typing__AExpr___mtype].val; /* _mtype on */ +var4 = var6; +RET_LABEL5:(void)0; +} +} +{ +var7 = astbuilder__ASTBuilder__make_if(var, var3, var4); +} +var_nif = var7; +{ +var8 = parser_nodes__AIfExpr__n_then(var_nif); +} +{ +var9 = parser_nodes__AAndExpr__n_expr2(self); +} +if (var8 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 144); 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", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 144); +((void (*)(val*, val*))(var8->class->vft[COLOR_astbuilder__AExpr__add]))(var8, var9) /* add on */; +} +{ +var10 = parser_nodes__AIfExpr__n_else(var_nif); +} +{ +var11 = parser_nodes__AAndExpr__n_expr(self); +} +{ +var12 = astbuilder__AExpr__make_var_read(var11); +} +if (var10 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 145); show_backtrace(1); } else { -((void (*)(val*, val*))(var6->class->vft[COLOR_astbuilder__AExpr__add]))(var6, var8) /* add on */; +((void (*)(val*, val*))(var10->class->vft[COLOR_astbuilder__AExpr__add]))(var10, var12) /* 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) */ @@ -558,7 +807,11 @@ 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); +val* var_v /* var v: TransformVisitor */; +{ /* Inline transform#AWhileExpr#accept_transform_visitor (self,p0) on */ +var_v = p0; +RET_LABEL1:(void)0; +} RET_LABEL:; } /* method transform#AForExpr#accept_transform_visitor for (self: AForExpr, TransformVisitor) */ @@ -569,511 +822,374 @@ 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); +val* var_v /* var v: TransformVisitor */; +{ /* Inline transform#AForExpr#accept_transform_visitor (self,p0) on */ +var_v = p0; +RET_LABEL1:(void)0; +} RET_LABEL:; } /* 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; -const char* var_class_name; -val* var_mtype /* var mtype: MClassType */; +val* var /* : ASTBuilder */; 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* 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* var16 /* : ANodes[AExpr] */; +val* var18 /* : ANodes[AExpr] */; +long var19 /* : Int */; +val* var20 /* : AIntExpr */; +val* var21 /* : 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* var22 /* : AExprs */; +val* var23 /* : ANodes[AExpr] */; +val* var25 /* : ANodes[AExpr] */; +val* var26 /* : Iterator[ANode] */; +short int var27 /* : Bool */; +val* var28 /* : 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* var29 /* : ASTBuilder */; +val* var31 /* : ASTBuilder */; +val* var32 /* : AVarExpr */; +val* var33 /* : nullable CallSite */; +val* var35 /* : nullable CallSite */; +val* var36 /* : Array[AExpr] */; +long var37 /* : Int */; +val* var_38 /* var : Array[AExpr] */; +val* var39 /* : ACallExpr */; val* var_nadd /* var nadd: ACallExpr */; -val* var38 /* : AVarExpr */; +val* var40 /* : 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; +{ +{ /* 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", "src/transform.nit", 49); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; } } -if (!var1) { -var_class_name = var == NULL ? "null" : var->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 173); -show_backtrace(1); +{ +var3 = astbuilder__ASTBuilder__make_block(var); } -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; -} 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 */; -} -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; -} 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 */; -} -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 */; +{ +{ /* 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", "src/transform.nit", 49); +show_backtrace(1); } -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:; +var4 = var6; +RET_LABEL5:(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); -RET_LABEL:; } -/* method transform#ASuperstringExpr#accept_transform_visitor for (self: ASuperstringExpr, TransformVisitor) */ -void transform__ASuperstringExpr__accept_transform_visitor(val* self, val* p0) { -val* var_v /* var v: TransformVisitor */; -val* var /* : ASTBuilder */; -val* var1 /* : 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 */; -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* 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* 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* 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 */; -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 */; -} -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 */; -} -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; -} 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 */; +{ +{ /* 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", "src/transform.nit", 176); +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", "src/transform.nit", 49); +show_backtrace(1); +} +var12 = var14; +RET_LABEL13:(void)0; +} +} +{ +var15 = parser_nodes__AArrayExpr__n_exprs(self); +} +{ +{ /* Inline parser_nodes#AExprs#n_exprs (var15) on */ +var18 = var15->attrs[COLOR_parser_nodes__AExprs___n_exprs].val; /* _n_exprs on */ +if (unlikely(var18 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2274); +show_backtrace(1); +} +var16 = var18; +RET_LABEL17:(void)0; +} +} +{ +var19 = parser_nodes__ANodes__length(var16); +} +{ +var20 = astbuilder__ASTBuilder__make_int(var12, var19); +} +{ +array__AbstractArray__push(var_, var20); /* Direct call array#AbstractArray#push on */ +} +{ +var21 = astbuilder__ASTBuilder__make_new(var4, var7, var_); +} +var_nnew = var21; +{ +astbuilder__ABlockExpr__add(var_nblock, var_nnew); /* Direct call astbuilder#ABlockExpr#add on */ +} +{ +var22 = parser_nodes__AArrayExpr__n_exprs(self); +} +{ +{ /* Inline parser_nodes#AExprs#n_exprs (var22) on */ +var25 = var22->attrs[COLOR_parser_nodes__AExprs___n_exprs].val; /* _n_exprs on */ +if (unlikely(var25 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); +PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2274); +show_backtrace(1); +} +var23 = var25; +RET_LABEL24:(void)0; +} +} +{ +var26 = parser_nodes__ANodes__iterator(var23); +} 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 */; -} -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 */; +{ +var27 = ((short int (*)(val*))(var26->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var26) /* is_ok on */; +} +if(!var27) break; +{ +var28 = ((val* (*)(val*))(var26->class->vft[COLOR_abstract_collection__Iterator__item]))(var26) /* item on */; +} +var_nexpr = var28; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var31 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var31 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49); +show_backtrace(1); +} +var29 = var31; +RET_LABEL30:(void)0; +} +} +{ +var32 = astbuilder__AExpr__make_var_read(var_nnew); +} +{ +{ /* Inline typing#AArrayExpr#push_callsite (self) on */ +var35 = self->attrs[COLOR_typing__AArrayExpr___push_callsite].val; /* _push_callsite on */ +var33 = var35; +RET_LABEL34:(void)0; +} +} +if (unlikely(var33 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 180); +show_backtrace(1); +} +var36 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); +var37 = 1; +{ +array__Array__with_capacity(var36, var37); /* Direct call array#Array#with_capacity on */ +} +var_38 = var36; +{ +array__AbstractArray__push(var_38, var_nexpr); /* Direct call array#AbstractArray#push on */ +} +{ +var39 = astbuilder__ASTBuilder__make_call(var29, var32, var33, var_38); +} +var_nadd = var39; +{ +astbuilder__ABlockExpr__add(var_nblock, var_nadd); /* Direct call astbuilder#ABlockExpr#add on */ +} CONTINUE_label: (void)0; -((void (*)(val*))(var42->class->vft[COLOR_abstract_collection__Iterator__next]))(var42) /* next on */; +{ +((void (*)(val*))(var26->class->vft[COLOR_abstract_collection__Iterator__next]))(var26) /* next on */; +} } 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 */; +{ +var40 = astbuilder__AExpr__make_var_read(var_nnew); +} +var_nres = var40; +{ +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 */; -int cltype; -int idtype; -const char* var_class_name; -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* var /* : ASTBuilder */; +val* var2 /* : ASTBuilder */; +val* var3 /* : nullable CallSite */; +val* var5 /* : nullable CallSite */; +val* var6 /* : Array[AExpr] */; +long var7 /* : Int */; +val* var_ /* var : Array[AExpr] */; +val* var8 /* : AExpr */; val* var9 /* : AExpr */; -val* var10 /* : AExpr */; -val* var11 /* : Array[AExpr] */; -long var12 /* : Int */; -val* var13 /* : NativeArray[AExpr] */; -val* var14 /* : ANewExpr */; +val* var10 /* : 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; -if(var == NULL) { -var1 = 0; -} else { -if(cltype >= var->type->table_size) { -var1 = 0; -} else { -var1 = var->type->type_table[cltype] == idtype; +{ +{ /* 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", "src/transform.nit", 49); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; +} +} +{ +{ /* Inline typing#ARangeExpr#init_callsite (self) on */ +var5 = self->attrs[COLOR_typing__ARangeExpr___init_callsite].val; /* _init_callsite on */ +var3 = var5; +RET_LABEL4:(void)0; } } -if (!var1) { -var_class_name = var == NULL ? "null" : var->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 227); +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 194); show_backtrace(1); } -var_mtype = var; -if (varonce) { -var2 = varonce; -} 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 */; -} -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 */; +var6 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); +var7 = 2; +{ +array__Array__with_capacity(var6, var7); /* Direct call array#Array#with_capacity on */ +} +var_ = var6; +{ +var8 = parser_nodes__ARangeExpr__n_expr(self); +} +{ +array__AbstractArray__push(var_, var8); /* Direct call array#AbstractArray#push on */ +} +{ +var9 = parser_nodes__ARangeExpr__n_expr2(self); +} +{ +array__AbstractArray__push(var_, var9); /* Direct call array#AbstractArray#push on */ +} +{ +var10 = astbuilder__ASTBuilder__make_new(var, var3, var_); +} +{ +parser_nodes__Prod__replace_with(self, var10); /* 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 */; -int cltype; -int idtype; -const char* var_class_name; -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* var /* : ASTBuilder */; +val* var2 /* : ASTBuilder */; +val* var3 /* : nullable CallSite */; +val* var5 /* : nullable CallSite */; +val* var6 /* : Array[AExpr] */; +long var7 /* : Int */; +val* var_ /* var : Array[AExpr] */; +val* var8 /* : AExpr */; val* var9 /* : AExpr */; -val* var10 /* : AExpr */; -val* var11 /* : Array[AExpr] */; -long var12 /* : Int */; -val* var13 /* : NativeArray[AExpr] */; -val* var14 /* : ANewExpr */; +val* var10 /* : 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; -if(var == NULL) { -var1 = 0; -} else { -if(cltype >= var->type->table_size) { -var1 = 0; -} else { -var1 = var->type->type_table[cltype] == idtype; +{ +{ /* 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", "src/transform.nit", 49); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; +} } +{ +{ /* Inline typing#ARangeExpr#init_callsite (self) on */ +var5 = self->attrs[COLOR_typing__ARangeExpr___init_callsite].val; /* _init_callsite on */ +var3 = var5; +RET_LABEL4:(void)0; } -if (!var1) { -var_class_name = var == NULL ? "null" : var->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 238); +} +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 202); show_backtrace(1); } -var_mtype = var; -if (varonce) { -var2 = varonce; -} 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 */; -} -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 */; +var6 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); +var7 = 2; +{ +array__Array__with_capacity(var6, var7); /* Direct call array#Array#with_capacity on */ +} +var_ = var6; +{ +var8 = parser_nodes__ARangeExpr__n_expr(self); +} +{ +array__AbstractArray__push(var_, var8); /* Direct call array#AbstractArray#push on */ +} +{ +var9 = parser_nodes__ARangeExpr__n_expr2(self); +} +{ +array__AbstractArray__push(var_, var9); /* Direct call array#AbstractArray#push on */ +} +{ +var10 = astbuilder__ASTBuilder__make_new(var, var3, var_); +} +{ +parser_nodes__Prod__replace_with(self, var10); /* 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) */ @@ -1081,288 +1197,554 @@ void transform__AParExpr__accept_transform_visitor(val* self, val* p0) { val* var_v /* var v: TransformVisitor */; val* var /* : 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 */; +{ +var = parser_nodes__AProxyExpr__n_expr(self); +} +{ +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* var5 /* : Array[AExpr] */; val* var_read_args /* var read_args: Array[AExpr] */; -val* var4 /* : Array[AExpr] */; +val* var6 /* : 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* var7 /* : Array[AExpr] */; +val* var8 /* : ArrayIterator[nullable Object] */; +short int var9 /* : Bool */; +val* var10 /* : 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* var17 /* : ASTBuilder */; +val* var11 /* : AVarExpr */; +val* var12 /* : AVarExpr */; +val* var13 /* : ASTBuilder */; +val* var15 /* : ASTBuilder */; +val* var16 /* : AExpr */; +val* var17 /* : AVarExpr */; val* var18 /* : nullable CallSite */; -val* var19 /* : MMethod */; -val* var20 /* : AExpr */; -val* var21 /* : Array[AExpr] */; -long var22 /* : Int */; -val* var23 /* : NativeArray[AExpr] */; -val* var24 /* : ACallExpr */; +val* var20 /* : nullable CallSite */; +val* var21 /* : ACallExpr */; +val* var_nread /* var nread: ACallExpr */; +val* var22 /* : ASTBuilder */; +val* var24 /* : ASTBuilder */; +val* var25 /* : nullable CallSite */; +val* var27 /* : nullable CallSite */; +val* var28 /* : Array[AExpr] */; +long var29 /* : Int */; +val* var_ /* var : Array[AExpr] */; +val* var30 /* : AExpr */; +val* var31 /* : 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* var32 /* : ASTBuilder */; +val* var34 /* : ASTBuilder */; +val* var35 /* : AExpr */; +val* var36 /* : AVarExpr */; +val* var37 /* : nullable CallSite */; +val* var39 /* : nullable CallSite */; +val* var40 /* : 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 */; -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 */; -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", "Cast failed"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 268); +{ +{ /* 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", "src/transform.nit", 49); show_backtrace(1); } -var6 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on */; +var = var2; +RET_LABEL1:(void)0; +} +} +{ +var3 = astbuilder__ASTBuilder__make_block(var); +} +var_nblock = var3; +{ +var4 = parser_nodes__ASendExpr__n_expr(self); +} +{ +astbuilder__ABlockExpr__add(var_nblock, var4); /* Direct call astbuilder#ABlockExpr#add on */ +} +var5 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); +{ +array__Array__init(var5); /* Direct call array#Array#init on */ +} +var_read_args = var5; +var6 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); +{ +array__Array__init(var6); /* Direct call array#Array#init on */ +} +var_write_args = var6; +{ +var7 = typing__ASendExpr__raw_arguments(self); +} +{ +var8 = array__AbstractArrayRead__iterator(var7); +} 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 */; +{ +var9 = array__ArrayIterator__is_ok(var8); +} +if(!var9) break; +{ +var10 = array__ArrayIterator__item(var8); +} +var_a = var10; +{ +astbuilder__ABlockExpr__add(var_nblock, var_a); /* Direct call astbuilder#ABlockExpr#add on */ +} +{ +var11 = astbuilder__AExpr__make_var_read(var_a); +} +{ +array__Array__add(var_read_args, var11); /* Direct call array#Array#add on */ +} +{ +var12 = astbuilder__AExpr__make_var_read(var_a); +} +{ +array__Array__add(var_write_args, var12); /* Direct call array#Array#add on */ +} CONTINUE_label: (void)0; -((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on */; +{ +array__ArrayIterator__next(var8); /* 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", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 274); +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var15 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var15 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49); show_backtrace(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", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 276); +} +var13 = var15; +RET_LABEL14:(void)0; +} +} +{ +var16 = parser_nodes__ASendExpr__n_expr(self); +} +{ +var17 = astbuilder__AExpr__make_var_read(var16); +} +{ +{ /* Inline typing#ASendExpr#callsite (self) on */ +var20 = self->attrs[COLOR_typing__ASendExpr___callsite].val; /* _callsite on */ +var18 = var20; +RET_LABEL19:(void)0; +} +} +if (unlikely(var18 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 235); show_backtrace(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 */; -} -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", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 279); +} +{ +var21 = astbuilder__ASTBuilder__make_call(var13, var17, var18, var_read_args); +} +var_nread = 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", "src/transform.nit", 49); show_backtrace(1); -} else { -var29 = ((val* (*)(val*))(var28->class->vft[COLOR_typing__CallSite__mproperty]))(var28) /* mproperty 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 */; +var22 = var24; +RET_LABEL23:(void)0; +} +} +{ +{ /* Inline typing#AReassignFormExpr#reassign_callsite (self) on */ +var27 = self->attrs[COLOR_typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on */ +var25 = var27; +RET_LABEL26:(void)0; +} +} +if (unlikely(var25 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 237); +show_backtrace(1); +} +var28 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); +var29 = 1; +{ +array__Array__with_capacity(var28, var29); /* Direct call array#Array#with_capacity on */ +} +var_ = var28; +{ +var30 = parser_nodes__AReassignFormExpr__n_value(self); +} +{ +array__AbstractArray__push(var_, var30); /* Direct call array#AbstractArray#push on */ +} +{ +var31 = astbuilder__ASTBuilder__make_call(var22, var_nread, var25, var_); +} +var_nnewvalue = var31; +{ +array__Array__add(var_write_args, var_nnewvalue); /* Direct call array#Array#add on */ +} +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var34 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var34 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49); +show_backtrace(1); +} +var32 = var34; +RET_LABEL33:(void)0; +} +} +{ +var35 = parser_nodes__ASendExpr__n_expr(self); +} +{ +var36 = astbuilder__AExpr__make_var_read(var35); +} +{ +{ /* Inline typing#ASendReassignFormExpr#write_callsite (self) on */ +var39 = self->attrs[COLOR_typing__ASendReassignFormExpr___write_callsite].val; /* _write_callsite on */ +var37 = var39; +RET_LABEL38:(void)0; +} +} +if (unlikely(var37 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 240); +show_backtrace(1); +} +{ +var40 = astbuilder__ASTBuilder__make_call(var32, var36, var37, var_write_args); +} +var_nwrite = var40; +{ +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#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 /* : nullable MType */; -val* var3 /* : AVarExpr */; +val* var3 /* : ASTBuilder */; +val* var5 /* : ASTBuilder */; +val* var6 /* : nullable MType */; +val* var8 /* : nullable MType */; +val* var9 /* : AVarExpr */; val* var_nread /* var nread: AVarExpr */; -val* var4 /* : ASTBuilder */; -val* var5 /* : nullable CallSite */; -val* var6 /* : MMethod */; -val* var7 /* : AExpr */; -val* var8 /* : Array[AExpr] */; -long var9 /* : Int */; -val* var10 /* : NativeArray[AExpr] */; -val* var11 /* : ACallExpr */; -val* var_nnewvalue /* var nnewvalue: ACallExpr */; +val* var10 /* : ASTBuilder */; val* var12 /* : ASTBuilder */; -val* var13 /* : AVarAssignExpr */; +val* var13 /* : nullable CallSite */; +val* var15 /* : nullable CallSite */; +val* var16 /* : Array[AExpr] */; +long var17 /* : Int */; +val* var_ /* var : Array[AExpr] */; +val* var18 /* : AExpr */; +val* var19 /* : ACallExpr */; +val* var_nnewvalue /* var nnewvalue: ACallExpr */; +val* var20 /* : ASTBuilder */; +val* var22 /* : ASTBuilder */; +val* var23 /* : 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", "Cast failed"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 290); +{ +{ /* 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", "src/transform.nit", 251); show_backtrace(1); } var_variable = var; -var1 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var2 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AReassignFormExpr__read_type]))(self) /* read_type on */; -if (var2 == NULL) { -fprintf(stderr, "Runtime error: %s", "Cast failed"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 292); +{ +{ /* 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", "src/transform.nit", 49); show_backtrace(1); } -var3 = ((val* (*)(val*, val*, val*))(var1->class->vft[COLOR_astbuilder__ASTBuilder__make_var_read]))(var1, var_variable, var2) /* make_var_read on */; -var_nread = var3; -var4 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var5 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AReassignFormExpr__reassign_callsite]))(self) /* reassign_callsite on */; -if (var5 == NULL) { -fprintf(stderr, "Runtime error: %s", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 294); +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", "src/transform.nit", 253); show_backtrace(1); -} else { -var6 = ((val* (*)(val*))(var5->class->vft[COLOR_typing__CallSite__mproperty]))(var5) /* mproperty on */; -} -var7 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AReassignFormExpr__n_value]))(self) /* n_value on */; -var8 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); -{ /* var8 = array_instance Array[AExpr] */ -var9 = 1; -var10 = NEW_array__NativeArray(var9, &type_array__NativeArrayparser_nodes__AExpr); -((struct instance_array__NativeArray*)var10)->values[0] = (val*) var7; -((void (*)(val*, val*, long))(var8->class->vft[COLOR_array__Array__with_native]))(var8, var10, var9) /* with_native on */; -} -var11 = ((val* (*)(val*, val*, val*, val*))(var4->class->vft[COLOR_astbuilder__ASTBuilder__make_call]))(var4, var_nread, var6, var8) /* make_call on */; -var_nnewvalue = var11; -var12 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on */; -var13 = ((val* (*)(val*, val*, val*))(var12->class->vft[COLOR_astbuilder__ASTBuilder__make_var_assign]))(var12, var_variable, var_nnewvalue) /* make_var_assign on */; -var_nwrite = var13; -((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nwrite) /* replace_with on */; +} +{ +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", "src/transform.nit", 49); +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", "src/transform.nit", 255); +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; +{ +var18 = parser_nodes__AReassignFormExpr__n_value(self); +} +{ +array__AbstractArray__push(var_, var18); /* Direct call array#AbstractArray#push on */ +} +{ +var19 = astbuilder__ASTBuilder__make_call(var10, var_nread, var13, var_); +} +var_nnewvalue = var19; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var22 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var22 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49); +show_backtrace(1); +} +var20 = var22; +RET_LABEL21:(void)0; +} +} +{ +var23 = astbuilder__ASTBuilder__make_var_assign(var20, var_variable, var_nnewvalue); +} +var_nwrite = var23; +{ +parser_nodes__Prod__replace_with(self, var_nwrite); /* Direct call parser_nodes#Prod#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* var5 /* : nullable MAttribute */; +val* var7 /* : nullable MAttribute */; val* var_attribute /* var attribute: MAttribute */; -val* var4 /* : ASTBuilder */; -val* var5 /* : AExpr */; -val* var6 /* : AVarExpr */; -val* var7 /* : AAttrExpr */; -val* var_nread /* var nread: AAttrExpr */; val* var8 /* : ASTBuilder */; -val* var9 /* : nullable CallSite */; -val* var10 /* : MMethod */; +val* var10 /* : ASTBuilder */; val* var11 /* : AExpr */; -val* var12 /* : Array[AExpr] */; -long var13 /* : Int */; -val* var14 /* : NativeArray[AExpr] */; -val* var15 /* : ACallExpr */; -val* var_nnewvalue /* var nnewvalue: ACallExpr */; +val* var12 /* : AVarExpr */; +val* var13 /* : AAttrExpr */; +val* var_nread /* var nread: AAttrExpr */; +val* var14 /* : ASTBuilder */; val* var16 /* : ASTBuilder */; -val* var17 /* : AExpr */; -val* var18 /* : AVarExpr */; -val* var19 /* : AAttrAssignExpr */; +val* var17 /* : nullable CallSite */; +val* var19 /* : nullable CallSite */; +val* var20 /* : Array[AExpr] */; +long var21 /* : Int */; +val* var_ /* var : Array[AExpr] */; +val* var22 /* : AExpr */; +val* var23 /* : ACallExpr */; +val* var_nnewvalue /* var nnewvalue: ACallExpr */; +val* var24 /* : ASTBuilder */; +val* var26 /* : ASTBuilder */; +val* var27 /* : AExpr */; +val* var28 /* : AVarExpr */; +val* var29 /* : 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", "Cast failed"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 307); +{ +{ /* 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", "src/transform.nit", 49); +show_backtrace(1); +} +var = var2; +RET_LABEL1:(void)0; +} +} +{ +var3 = astbuilder__ASTBuilder__make_block(var); +} +var_nblock = var3; +{ +var4 = parser_nodes__AAttrFormExpr__n_expr(self); +} +{ +astbuilder__ABlockExpr__add(var_nblock, var4); /* Direct call astbuilder#ABlockExpr#add on */ +} +{ +{ /* Inline typing#AAttrFormExpr#mproperty (self) on */ +var7 = self->attrs[COLOR_typing__AAttrFormExpr___mproperty].val; /* _mproperty on */ +var5 = var7; +RET_LABEL6:(void)0; +} +} +if (unlikely(var5 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 268); show_backtrace(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", "Reciever is null"); -fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 310); +var_attribute = var5; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var10 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var10 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49); show_backtrace(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 */; -} -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 */; +} +var8 = var10; +RET_LABEL9:(void)0; +} +} +{ +var11 = parser_nodes__AAttrFormExpr__n_expr(self); +} +{ +var12 = astbuilder__AExpr__make_var_read(var11); +} +{ +var13 = astbuilder__ASTBuilder__make_attr_read(var8, var12, var_attribute); +} +var_nread = var13; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var16 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var16 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49); +show_backtrace(1); +} +var14 = var16; +RET_LABEL15:(void)0; +} +} +{ +{ /* Inline typing#AReassignFormExpr#reassign_callsite (self) on */ +var19 = self->attrs[COLOR_typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on */ +var17 = var19; +RET_LABEL18:(void)0; +} +} +if (unlikely(var17 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 271); +show_backtrace(1); +} +var20 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr); +var21 = 1; +{ +array__Array__with_capacity(var20, var21); /* Direct call array#Array#with_capacity on */ +} +var_ = var20; +{ +var22 = parser_nodes__AReassignFormExpr__n_value(self); +} +{ +array__AbstractArray__push(var_, var22); /* Direct call array#AbstractArray#push on */ +} +{ +var23 = astbuilder__ASTBuilder__make_call(var14, var_nread, var17, var_); +} +var_nnewvalue = var23; +{ +{ /* Inline transform#TransformVisitor#builder (var_v) on */ +var26 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on */ +if (unlikely(var26 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder"); +PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49); +show_backtrace(1); +} +var24 = var26; +RET_LABEL25:(void)0; +} +} +{ +var27 = parser_nodes__AAttrFormExpr__n_expr(self); +} +{ +var28 = astbuilder__AExpr__make_var_read(var27); +} +{ +var29 = astbuilder__ASTBuilder__make_attr_assign(var24, var28, var_attribute, var_nnewvalue); +} +var_nwrite = var29; +{ +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:; }