X-Git-Url: http://nitlanguage.org diff --git a/c_src/scope.sep.1.c b/c_src/scope.sep.1.c index 0d0f9c3..56efe8b 100644 --- a/c_src/scope.sep.1.c +++ b/c_src/scope.sep.1.c @@ -5,8 +5,9 @@ val* var /* : Phase */; val* var1 /* : Phase */; var1 = self->attrs[COLOR_scope__ToolContext___64dscope_phase].val; /* @scope_phase on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @scope_phase", "src/scope.nit", 25); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @scope_phase"); +fprintf(stderr, " (%s:%d)\n", "src/scope.nit", 25); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -51,8 +52,9 @@ val* var /* : String */; val* var1 /* : String */; var1 = self->attrs[COLOR_scope__Variable___64dname].val; /* @name on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @name", "src/scope.nit", 36); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @name"); +fprintf(stderr, " (%s:%d)\n", "src/scope.nit", 36); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -168,8 +170,9 @@ val* var /* : Array[AContinueExpr] */; val* var1 /* : Array[AContinueExpr] */; var1 = self->attrs[COLOR_scope__EscapeMark___64dcontinues].val; /* @continues on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @continues", "src/scope.nit", 58); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @continues"); +fprintf(stderr, " (%s:%d)\n", "src/scope.nit", 53); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -200,8 +203,9 @@ val* var /* : Array[ABreakExpr] */; val* var1 /* : Array[ABreakExpr] */; var1 = self->attrs[COLOR_scope__EscapeMark___64dbreaks].val; /* @breaks on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @breaks", "src/scope.nit", 61); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @breaks"); +fprintf(stderr, " (%s:%d)\n", "src/scope.nit", 56); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -243,8 +247,9 @@ val* var /* : ToolContext */; val* var1 /* : ToolContext */; var1 = self->attrs[COLOR_scope__ScopeVisitor___64dtoolcontext].val; /* @toolcontext on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/scope.nit", 74); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @toolcontext"); +fprintf(stderr, " (%s:%d)\n", "src/scope.nit", 68); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -275,8 +280,9 @@ val* var /* : Variable */; val* var1 /* : Variable */; var1 = self->attrs[COLOR_scope__ScopeVisitor___64dselfvariable].val; /* @selfvariable on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @selfvariable", "src/scope.nit", 77); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @selfvariable"); +fprintf(stderr, " (%s:%d)\n", "src/scope.nit", 71); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -312,7 +318,6 @@ var_toolcontext = p0; var = ((val* (*)(val*))(self->class->vft[COLOR_scope__ScopeVisitor__scopes]))(self) /* scopes on */; var1 = NEW_scope__Scope(&type_scope__Scope); ((void (*)(val*))(var1->class->vft[COLOR_scope__Scope__init]))(var1) /* init on */; -CHECK_NEW_scope__Scope(var1); ((void (*)(val*, val*))(var->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var, var1) /* add on */; RET_LABEL:; } @@ -327,8 +332,9 @@ val* var /* : List[Scope] */; val* var1 /* : List[Scope] */; var1 = self->attrs[COLOR_scope__ScopeVisitor___64dscopes].val; /* @scopes on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @scopes", "src/scope.nit", 85); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @scopes"); +fprintf(stderr, " (%s:%d)\n", "src/scope.nit", 79); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -422,7 +428,6 @@ var16 = NEW_array__NativeArray(var15, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var16)->values[1] = (val*) var_name; ((struct instance_array__NativeArray*)var16)->values[2] = (val*) var10; ((void (*)(val*, val*, long))(var14->class->vft[COLOR_array__Array__with_native]))(var14, var16, var15) /* with_native on */; -CHECK_NEW_array__Array(var14); } var17 = ((val* (*)(val*))(var14->class->vft[COLOR_string__Object__to_s]))(var14) /* to_s on */; ((void (*)(val*, val*, val*))(self->class->vft[COLOR_scope__ScopeVisitor__error]))(self, var_node, var17) /* error on */; @@ -541,7 +546,6 @@ goto RET_LABEL; } var2 = NEW_scope__Scope(&type_scope__Scope); ((void (*)(val*))(var2->class->vft[COLOR_scope__Scope__init]))(var2) /* init on */; -CHECK_NEW_scope__Scope(var2); var_scope = var2; ((void (*)(val*, val*))(var_scope->class->vft[COLOR_scope__Scope__escapemark_61d]))(var_scope, var_escapemark) /* escapemark= on */; var3 = ((val* (*)(val*))(self->class->vft[COLOR_scope__ScopeVisitor__scopes]))(self) /* scopes on */; @@ -705,7 +709,6 @@ var19 = NEW_array__NativeArray(var18, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var19)->values[1] = (val*) var_name; ((struct instance_array__NativeArray*)var19)->values[2] = (val*) var13; ((void (*)(val*, val*, long))(var17->class->vft[COLOR_array__Array__with_native]))(var17, var19, var18) /* with_native on */; -CHECK_NEW_array__Array(var17); } var20 = ((val* (*)(val*))(var17->class->vft[COLOR_string__Object__to_s]))(var17) /* to_s on */; ((void (*)(val*, val*, val*))(self->class->vft[COLOR_scope__ScopeVisitor__error]))(self, var_nlabel, var20) /* error on */; @@ -717,7 +720,6 @@ var_name = var21; } var22 = NEW_scope__EscapeMark(&type_scope__EscapeMark); ((void (*)(val*, val*, short int))(var22->class->vft[COLOR_scope__EscapeMark__init]))(var22, var_name, var_for_loop) /* init on */; -CHECK_NEW_scope__EscapeMark(var22); var_res = var22; var = var_res; goto RET_LABEL; @@ -824,7 +826,6 @@ var19 = NEW_array__NativeArray(var18, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var19)->values[1] = (val*) var_name; ((struct instance_array__NativeArray*)var19)->values[2] = (val*) var13; ((void (*)(val*, val*, long))(var17->class->vft[COLOR_array__Array__with_native]))(var17, var19, var18) /* with_native on */; -CHECK_NEW_array__Array(var17); } var20 = ((val* (*)(val*))(var17->class->vft[COLOR_string__Object__to_s]))(var17) /* to_s on */; ((void (*)(val*, val*, val*))(self->class->vft[COLOR_scope__ScopeVisitor__error]))(self, var_nlabel, var20) /* error on */; @@ -910,8 +911,9 @@ val* var /* : HashMap[String, Variable] */; val* var1 /* : HashMap[String, Variable] */; var1 = self->attrs[COLOR_scope__Scope___64dvariables].val; /* @variables on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @variables", "src/scope.nit", 198); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @variables"); +fprintf(stderr, " (%s:%d)\n", "src/scope.nit", 192); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -1027,7 +1029,6 @@ val* var_v /* var v: ScopeVisitor */; var_toolcontext = p0; var = NEW_scope__ScopeVisitor(&type_scope__ScopeVisitor); ((void (*)(val*, val*))(var->class->vft[COLOR_scope__ScopeVisitor__init]))(var, var_toolcontext) /* init on */; -CHECK_NEW_scope__ScopeVisitor(var); var_v = var; ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, self) /* enter_visit on */; RET_LABEL:; @@ -1081,7 +1082,6 @@ var_nid = var; var1 = NEW_scope__Variable(&type_scope__Variable); var2 = ((val* (*)(val*))(var_nid->class->vft[COLOR_parser_nodes__Token__text]))(var_nid) /* text on */; ((void (*)(val*, val*))(var1->class->vft[COLOR_scope__Variable__init]))(var1, var2) /* init on */; -CHECK_NEW_scope__Variable(var1); var_variable = var1; var3 = ((short int (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__register_variable]))(var_v, var_nid, var_variable) /* register_variable on */; var3; @@ -1093,61 +1093,6 @@ void VIRTUAL_scope__AParam__accept_scope_visitor(val* self, val* p0) { scope__AParam__accept_scope_visitor(self, p0); RET_LABEL:; } -/* method scope#AClosureDecl#variable for (self: AClosureDecl): nullable ClosureVariable */ -val* scope__AClosureDecl__variable(val* self) { -val* var /* : nullable ClosureVariable */; -val* var1 /* : nullable ClosureVariable */; -var1 = self->attrs[COLOR_scope__AClosureDecl___64dvariable].val; /* @variable on */ -var = var1; -RET_LABEL:; -return var; -} -/* method scope#AClosureDecl#variable for (self: Object): nullable ClosureVariable */ -val* VIRTUAL_scope__AClosureDecl__variable(val* self) { -val* var /* : nullable ClosureVariable */; -val* var1 /* : nullable ClosureVariable */; -var1 = scope__AClosureDecl__variable(self); -var = var1; -RET_LABEL:; -return var; -} -/* method scope#AClosureDecl#variable= for (self: AClosureDecl, nullable ClosureVariable) */ -void scope__AClosureDecl__variable_61d(val* self, val* p0) { -self->attrs[COLOR_scope__AClosureDecl___64dvariable].val = p0; /* @variable on */ -RET_LABEL:; -} -/* method scope#AClosureDecl#variable= for (self: Object, nullable ClosureVariable) */ -void VIRTUAL_scope__AClosureDecl__variable_61d(val* self, val* p0) { -scope__AClosureDecl__variable_61d(self, p0); -RET_LABEL:; -} -/* method scope#AClosureDecl#accept_scope_visitor for (self: AClosureDecl, ScopeVisitor) */ -void scope__AClosureDecl__accept_scope_visitor(val* self, val* p0) { -val* var_v /* var v: ScopeVisitor */; -val* var /* : TId */; -val* var_nid /* var nid: TId */; -val* var1 /* : ClosureVariable */; -val* var2 /* : String */; -val* var_variable /* var variable: ClosureVariable */; -short int var3 /* : Bool */; -var_v = p0; -var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AClosureDecl__n_id]))(self) /* n_id on */; -var_nid = var; -var1 = NEW_scope__ClosureVariable(&type_scope__ClosureVariable); -var2 = ((val* (*)(val*))(var_nid->class->vft[COLOR_parser_nodes__Token__text]))(var_nid) /* text on */; -((void (*)(val*, val*))(var1->class->vft[COLOR_scope__Variable__init]))(var1, var2) /* init on */; -CHECK_NEW_scope__ClosureVariable(var1); -var_variable = var1; -var3 = ((short int (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__register_variable]))(var_v, var_nid, var_variable) /* register_variable on */; -var3; -((void (*)(val*, val*))(self->class->vft[COLOR_scope__AClosureDecl__variable_61d]))(self, var_variable) /* variable= on */; -RET_LABEL:; -} -/* method scope#AClosureDecl#accept_scope_visitor for (self: Object, ScopeVisitor) */ -void VIRTUAL_scope__AClosureDecl__accept_scope_visitor(val* self, val* p0) { -scope__AClosureDecl__accept_scope_visitor(self, p0); -RET_LABEL:; -} /* method scope#AVardeclExpr#variable for (self: AVardeclExpr): nullable Variable */ val* scope__AVardeclExpr__variable(val* self) { val* var /* : nullable Variable */; @@ -1192,7 +1137,6 @@ var_nid = var; var1 = NEW_scope__Variable(&type_scope__Variable); var2 = ((val* (*)(val*))(var_nid->class->vft[COLOR_parser_nodes__Token__text]))(var_nid) /* text on */; ((void (*)(val*, val*))(var1->class->vft[COLOR_scope__Variable__init]))(var1, var2) /* init on */; -CHECK_NEW_scope__Variable(var1); var_variable = var1; var3 = ((short int (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__register_variable]))(var_v, var_nid, var_variable) /* register_variable on */; var3; @@ -1659,11 +1603,9 @@ var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AForExpr__n_expr])) var1 = ((val* (*)(val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__scopes]))(var_v) /* scopes on */; var2 = NEW_scope__Scope(&type_scope__Scope); ((void (*)(val*))(var2->class->vft[COLOR_scope__Scope__init]))(var2) /* init on */; -CHECK_NEW_scope__Scope(var2); ((void (*)(val*, val*))(var1->class->vft[COLOR_abstract_collection__Sequence__unshift]))(var1, var2) /* unshift on */; var3 = NEW_array__Array(&type_array__Arrayscope__Variable); ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on */; -CHECK_NEW_array__Array(var3); var_variables = var3; ((void (*)(val*, val*))(self->class->vft[COLOR_scope__AForExpr__variables_61d]))(self, var_variables) /* variables= on */; var4 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AForExpr__n_ids]))(self) /* n_ids on */; @@ -1676,7 +1618,6 @@ var_nid = var7; var8 = NEW_scope__Variable(&type_scope__Variable); var9 = ((val* (*)(val*))(var_nid->class->vft[COLOR_parser_nodes__Token__text]))(var_nid) /* text on */; ((void (*)(val*, val*))(var8->class->vft[COLOR_scope__Variable__init]))(var8, var9) /* init on */; -CHECK_NEW_scope__Variable(var8); var_va = var8; var10 = ((short int (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__register_variable]))(var_v, var_nid, var_va) /* register_variable on */; var10; @@ -1745,37 +1686,30 @@ val* var_variable /* var variable: nullable Variable */; val* var5 /* : null */; short int var6 /* : Bool */; short int var7 /* : Bool */; -int cltype8; -int idtype9; -val* var10 /* : AClosureCallExpr */; -val* var11 /* : TId */; +val* var8 /* : AExprs */; +val* var9 /* : ANodes[AExpr] */; +short int var10 /* : Bool */; +short int var11 /* : Bool */; val* var12 /* : AExprs */; -val* var13 /* : ANodes[AClosureDef] */; -val* var_n /* var n: AExpr */; -short int var14 /* : Bool */; -val* var15 /* : AExprs */; -val* var16 /* : ANodes[AExpr] */; -short int var17 /* : Bool */; -short int var18 /* : Bool */; -val* var19 /* : AExprs */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; +short int var13 /* : Bool */; +int cltype14; +int idtype15; static val* varonce; -val* var23 /* : String */; -char* var24 /* : NativeString */; -long var25 /* : Int */; -val* var26 /* : String */; -static val* varonce27; +val* var16 /* : String */; +char* var17 /* : NativeString */; +long var18 /* : Int */; +val* var19 /* : String */; +static val* varonce20; +val* var21 /* : String */; +char* var22 /* : NativeString */; +long var23 /* : Int */; +val* var24 /* : String */; +val* var25 /* : Array[Object] */; +long var26 /* : Int */; +val* var27 /* : NativeArray[Object] */; val* var28 /* : String */; -char* var29 /* : NativeString */; -long var30 /* : Int */; -val* var31 /* : String */; -val* var32 /* : Array[Object] */; -long var33 /* : Int */; -val* var34 /* : NativeArray[Object] */; -val* var35 /* : String */; -val* var36 /* : AVarFormExpr */; +val* var29 /* : AVarFormExpr */; +val* var_n /* var n: AExpr */; var_v = p0; var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASendExpr__n_expr]))(self) /* n_expr on */; /* isa AImplicitSelfExpr */ @@ -1799,82 +1733,62 @@ var6 = 0; /* is null */ var6 = 1; /* arg is null and recv is not */ } if (var6){ -/* isa ClosureVariable */ -cltype8 = type_scope__ClosureVariable.color; -idtype9 = type_scope__ClosureVariable.id; -if(cltype8 >= var_variable->type->table_size) { -var7 = 0; +var8 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACallFormExpr__n_args]))(self) /* n_args on */; +var9 = ((val* (*)(val*))(var8->class->vft[COLOR_parser_nodes__AExprs__n_exprs]))(var8) /* n_exprs on */; +var10 = ((short int (*)(val*))(var9->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var9) /* is_empty on */; +var11 = !var10; +if (var11) { +var7 = 1; } else { -var7 = var_variable->type->type_table[cltype8] == idtype9; -} -if (var7){ -var10 = NEW_parser_nodes__AClosureCallExpr(&type_parser_nodes__AClosureCallExpr); -var11 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACallFormExpr__n_id]))(self) /* n_id on */; var12 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACallFormExpr__n_args]))(self) /* n_args on */; -var13 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASendExpr__n_closure_defs]))(self) /* n_closure_defs on */; -((void (*)(val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AClosureCallExpr__init_aclosurecallexpr]))(var10, var11, var12, var13) /* init_aclosurecallexpr on */; -CHECK_NEW_parser_nodes__AClosureCallExpr(var10); -var_n = var10; -((void (*)(val*, val*))(var_n->class->vft[COLOR_scope__AClosureCallExpr__variable_61d]))(var_n, var_variable) /* variable= on */; +/* isa AParExprs */ +cltype14 = type_parser_nodes__AParExprs.color; +idtype15 = type_parser_nodes__AParExprs.id; +if(cltype14 >= var12->type->table_size) { +var13 = 0; } else { -var15 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACallFormExpr__n_args]))(self) /* n_args on */; -var16 = ((val* (*)(val*))(var15->class->vft[COLOR_parser_nodes__AExprs__n_exprs]))(var15) /* n_exprs on */; -var17 = ((short int (*)(val*))(var16->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var16) /* is_empty on */; -var18 = !var17; -if (var18) { -var14 = 1; -} else { -var19 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACallFormExpr__n_args]))(self) /* n_args on */; -/* isa AParExprs */ -cltype21 = type_parser_nodes__AParExprs.color; -idtype22 = type_parser_nodes__AParExprs.id; -if(cltype21 >= var19->type->table_size) { -var20 = 0; -} else { -var20 = var19->type->type_table[cltype21] == idtype22; +var13 = var12->type->type_table[cltype14] == idtype15; } -var14 = var20; +var7 = var13; } -if (var14){ +if (var7){ if (varonce) { -var23 = varonce; +var16 = varonce; } else { -var24 = "Error: "; -var25 = 7; -var26 = string__NativeString__to_s_with_length(var24, var25); -var23 = var26; -varonce = var23; -} -if (varonce27) { -var28 = varonce27; +var17 = "Error: "; +var18 = 7; +var19 = string__NativeString__to_s_with_length(var17, var18); +var16 = var19; +varonce = var16; +} +if (varonce20) { +var21 = varonce20; } else { -var29 = " is variable, not a function."; -var30 = 29; -var31 = string__NativeString__to_s_with_length(var29, var30); -var28 = var31; -varonce27 = var28; -} -var32 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var32 = array_instance Array[Object] */ -var33 = 3; -var34 = NEW_array__NativeArray(var33, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var34)->values[0] = (val*) var23; -((struct instance_array__NativeArray*)var34)->values[1] = (val*) var_name; -((struct instance_array__NativeArray*)var34)->values[2] = (val*) var28; -((void (*)(val*, val*, long))(var32->class->vft[COLOR_array__Array__with_native]))(var32, var34, var33) /* with_native on */; -CHECK_NEW_array__Array(var32); -} -var35 = ((val* (*)(val*))(var32->class->vft[COLOR_string__Object__to_s]))(var32) /* to_s on */; -((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__error]))(var_v, self, var35) /* error on */; +var22 = " is variable, not a function."; +var23 = 29; +var24 = string__NativeString__to_s_with_length(var22, var23); +var21 = var24; +varonce20 = var21; +} +var25 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var25 = array_instance Array[Object] */ +var26 = 3; +var27 = NEW_array__NativeArray(var26, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var27)->values[0] = (val*) var16; +((struct instance_array__NativeArray*)var27)->values[1] = (val*) var_name; +((struct instance_array__NativeArray*)var27)->values[2] = (val*) var21; +((void (*)(val*, val*, long))(var25->class->vft[COLOR_array__Array__with_native]))(var25, var27, var26) /* with_native on */; +} +var28 = ((val* (*)(val*))(var25->class->vft[COLOR_string__Object__to_s]))(var25) /* to_s on */; +((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__error]))(var_v, self, var28) /* error on */; goto RET_LABEL; } else { } -var36 = ((val* (*)(val*, val*))(self->class->vft[COLOR_scope__ACallFormExpr__variable_create]))(self, var_variable) /* variable_create on */; -var_n = var36; +var29 = ((val* (*)(val*, val*))(self->class->vft[COLOR_scope__ACallFormExpr__variable_create]))(self, var_variable) /* variable_create on */; +var_n = var29; ((void (*)(val*, val*))(var_n->class->vft[COLOR_scope__AVarFormExpr__variable_61d]))(var_n, var_variable) /* variable= on */; -} ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_n) /* replace_with on */; -((void (*)(val*, val*))(var_n->class->vft[COLOR_scope__ANode__accept_scope_visitor]))(var_n, var_v) /* accept_scope_visitor on */; +((void (*)(val*, val*))(var_n->class->vft[COLOR_scope__ANode__accept_scope_visitor]))(var_n, var_v) /* accept_scope_visitor on */; goto RET_LABEL; } else { } @@ -1891,8 +1805,11 @@ RET_LABEL:; /* method scope#ACallFormExpr#variable_create for (self: ACallFormExpr, Variable): AVarFormExpr */ val* scope__ACallFormExpr__variable_create(val* self, val* p0) { val* var /* : AVarFormExpr */; -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/scope.nit", 412); -exit(1); +const char* var_class_name; +var_class_name = self == NULL ? "null" : self->type->name; +fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "variable_create", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/scope.nit", 389); +show_backtrace(1); RET_LABEL:; return var; } @@ -1915,7 +1832,6 @@ var_variable = p0; var1 = NEW_parser_nodes__AVarExpr(&type_parser_nodes__AVarExpr); var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACallFormExpr__n_id]))(self) /* n_id on */; ((void (*)(val*, val*))(var1->class->vft[COLOR_parser_prod__AVarExpr__init_avarexpr]))(var1, var2) /* init_avarexpr on */; -CHECK_NEW_parser_nodes__AVarExpr(var1); var = var1; goto RET_LABEL; RET_LABEL:; @@ -1944,7 +1860,6 @@ var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACallFormExpr__n_i var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAssignFormExpr__n_assign]))(self) /* n_assign on */; var4 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAssignFormExpr__n_value]))(self) /* n_value on */; ((void (*)(val*, val*, val*, val*))(var1->class->vft[COLOR_parser_prod__AVarAssignExpr__init_avarassignexpr]))(var1, var2, var3, var4) /* init_avarassignexpr on */; -CHECK_NEW_parser_nodes__AVarAssignExpr(var1); var = var1; goto RET_LABEL; RET_LABEL:; @@ -1973,7 +1888,6 @@ var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACallFormExpr__n_i var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AReassignFormExpr__n_assign_op]))(self) /* n_assign_op on */; var4 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AReassignFormExpr__n_value]))(self) /* n_value on */; ((void (*)(val*, val*, val*, val*))(var1->class->vft[COLOR_parser_prod__AVarReassignExpr__init_avarreassignexpr]))(var1, var2, var3, var4) /* init_avarreassignexpr on */; -CHECK_NEW_parser_nodes__AVarReassignExpr(var1); var = var1; goto RET_LABEL; RET_LABEL:; @@ -1988,254 +1902,3 @@ var = var1; RET_LABEL:; return var; } -/* method scope#AClosureCallExpr#variable for (self: AClosureCallExpr): nullable ClosureVariable */ -val* scope__AClosureCallExpr__variable(val* self) { -val* var /* : nullable ClosureVariable */; -val* var1 /* : nullable ClosureVariable */; -var1 = self->attrs[COLOR_scope__AClosureCallExpr___64dvariable].val; /* @variable on */ -var = var1; -RET_LABEL:; -return var; -} -/* method scope#AClosureCallExpr#variable for (self: Object): nullable ClosureVariable */ -val* VIRTUAL_scope__AClosureCallExpr__variable(val* self) { -val* var /* : nullable ClosureVariable */; -val* var1 /* : nullable ClosureVariable */; -var1 = scope__AClosureCallExpr__variable(self); -var = var1; -RET_LABEL:; -return var; -} -/* method scope#AClosureCallExpr#variable= for (self: AClosureCallExpr, nullable ClosureVariable) */ -void scope__AClosureCallExpr__variable_61d(val* self, val* p0) { -self->attrs[COLOR_scope__AClosureCallExpr___64dvariable].val = p0; /* @variable on */ -RET_LABEL:; -} -/* method scope#AClosureCallExpr#variable= for (self: Object, nullable ClosureVariable) */ -void VIRTUAL_scope__AClosureCallExpr__variable_61d(val* self, val* p0) { -scope__AClosureCallExpr__variable_61d(self, p0); -RET_LABEL:; -} -/* method scope#ASendExpr#escapemark for (self: ASendExpr): nullable EscapeMark */ -val* scope__ASendExpr__escapemark(val* self) { -val* var /* : nullable EscapeMark */; -val* var1 /* : nullable EscapeMark */; -var1 = self->attrs[COLOR_scope__ASendExpr___64descapemark].val; /* @escapemark on */ -var = var1; -RET_LABEL:; -return var; -} -/* method scope#ASendExpr#escapemark for (self: Object): nullable EscapeMark */ -val* VIRTUAL_scope__ASendExpr__escapemark(val* self) { -val* var /* : nullable EscapeMark */; -val* var1 /* : nullable EscapeMark */; -var1 = scope__ASendExpr__escapemark(self); -var = var1; -RET_LABEL:; -return var; -} -/* method scope#ASendExpr#escapemark= for (self: ASendExpr, nullable EscapeMark) */ -void scope__ASendExpr__escapemark_61d(val* self, val* p0) { -self->attrs[COLOR_scope__ASendExpr___64descapemark].val = p0; /* @escapemark on */ -RET_LABEL:; -} -/* method scope#ASendExpr#escapemark= for (self: Object, nullable EscapeMark) */ -void VIRTUAL_scope__ASendExpr__escapemark_61d(val* self, val* p0) { -scope__ASendExpr__escapemark_61d(self, p0); -RET_LABEL:; -} -/* method scope#ASendExpr#accept_scope_visitor for (self: ASendExpr, ScopeVisitor) */ -void scope__ASendExpr__accept_scope_visitor(val* self, val* p0) { -val* var_v /* var v: ScopeVisitor */; -val* var /* : ANodes[AClosureDef] */; -long var1 /* : Int */; -long var2 /* : Int */; -short int var3 /* : Bool */; -short int var5 /* : Bool */; -int cltype; -int idtype; -short int var6 /* : Bool */; -val* var7 /* : ANodes[AClosureDef] */; -val* var8 /* : nullable Object */; -val* var9 /* : nullable ALabel */; -short int var10 /* : Bool */; -val* var11 /* : EscapeMark */; -val* var_escapemark /* var escapemark: EscapeMark */; -var_v = p0; -var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASendExpr__n_closure_defs]))(self) /* n_closure_defs on */; -var1 = ((long (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__length]))(var) /* length on */; -var2 = 0; -{ /* Inline kernel#Int#> (var1,var2) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var5 = 1; /* easy isa OTHER*/ -if (!var5) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259); -exit(1); -} -var6 = var1 > var2; -var3 = var6; -goto RET_LABEL4; -RET_LABEL4:(void)0; -} -if (var3){ -var7 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASendExpr__n_closure_defs]))(self) /* n_closure_defs on */; -var8 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__SequenceRead__last]))(var7) /* last on */; -var9 = ((val* (*)(val*))(var8->class->vft[COLOR_parser_nodes__ALabelable__n_label]))(var8) /* n_label on */; -var10 = 1; -var11 = ((val* (*)(val*, val*, short int))(var_v->class->vft[COLOR_scope__ScopeVisitor__make_escape_mark]))(var_v, var9, var10) /* make_escape_mark on */; -var_escapemark = var11; -((void (*)(val*, val*))(self->class->vft[COLOR_scope__ASendExpr__escapemark_61d]))(self, var_escapemark) /* escapemark= on */; -} else { -} -((void (*)(val*, val*))(self->class->vft[COLOR_scope__ASendExpr__accept_scope_visitor]))(self, p0) /* accept_scope_visitor on */; -RET_LABEL:; -} -/* method scope#ASendExpr#accept_scope_visitor for (self: Object, ScopeVisitor) */ -void VIRTUAL_scope__ASendExpr__accept_scope_visitor(val* self, val* p0) { -scope__ASendExpr__accept_scope_visitor(self, p0); -RET_LABEL:; -} -/* method scope#AClosureDef#variables for (self: AClosureDef): nullable Array[Variable] */ -val* scope__AClosureDef__variables(val* self) { -val* var /* : nullable Array[Variable] */; -val* var1 /* : nullable Array[Variable] */; -var1 = self->attrs[COLOR_scope__AClosureDef___64dvariables].val; /* @variables on */ -var = var1; -RET_LABEL:; -return var; -} -/* method scope#AClosureDef#variables for (self: Object): nullable Array[Variable] */ -val* VIRTUAL_scope__AClosureDef__variables(val* self) { -val* var /* : nullable Array[Variable] */; -val* var1 /* : nullable Array[Variable] */; -var1 = scope__AClosureDef__variables(self); -var = var1; -RET_LABEL:; -return var; -} -/* method scope#AClosureDef#variables= for (self: AClosureDef, nullable Array[Variable]) */ -void scope__AClosureDef__variables_61d(val* self, val* p0) { -self->attrs[COLOR_scope__AClosureDef___64dvariables].val = p0; /* @variables on */ -RET_LABEL:; -} -/* method scope#AClosureDef#variables= for (self: Object, nullable Array[Variable]) */ -void VIRTUAL_scope__AClosureDef__variables_61d(val* self, val* p0) { -scope__AClosureDef__variables_61d(self, p0); -RET_LABEL:; -} -/* method scope#AClosureDef#escapemark for (self: AClosureDef): nullable EscapeMark */ -val* scope__AClosureDef__escapemark(val* self) { -val* var /* : nullable EscapeMark */; -val* var1 /* : nullable EscapeMark */; -var1 = self->attrs[COLOR_scope__AClosureDef___64descapemark].val; /* @escapemark on */ -var = var1; -RET_LABEL:; -return var; -} -/* method scope#AClosureDef#escapemark for (self: Object): nullable EscapeMark */ -val* VIRTUAL_scope__AClosureDef__escapemark(val* self) { -val* var /* : nullable EscapeMark */; -val* var1 /* : nullable EscapeMark */; -var1 = scope__AClosureDef__escapemark(self); -var = var1; -RET_LABEL:; -return var; -} -/* method scope#AClosureDef#escapemark= for (self: AClosureDef, nullable EscapeMark) */ -void scope__AClosureDef__escapemark_61d(val* self, val* p0) { -self->attrs[COLOR_scope__AClosureDef___64descapemark].val = p0; /* @escapemark on */ -RET_LABEL:; -} -/* method scope#AClosureDef#escapemark= for (self: Object, nullable EscapeMark) */ -void VIRTUAL_scope__AClosureDef__escapemark_61d(val* self, val* p0) { -scope__AClosureDef__escapemark_61d(self, p0); -RET_LABEL:; -} -/* method scope#AClosureDef#accept_scope_visitor for (self: AClosureDef, ScopeVisitor) */ -void scope__AClosureDef__accept_scope_visitor(val* self, val* p0) { -val* var_v /* var v: ScopeVisitor */; -val* var /* : List[Scope] */; -val* var1 /* : Scope */; -val* var2 /* : Array[Variable] */; -val* var_variables /* var variables: Array[Variable] */; -val* var3 /* : ANodes[TId] */; -val* var4 /* : Iterator[nullable Object] */; -short int var5 /* : Bool */; -val* var6 /* : nullable Object */; -val* var_nid /* var nid: TId */; -val* var7 /* : Variable */; -val* var8 /* : String */; -val* var_va /* var va: Variable */; -short int var9 /* : Bool */; -val* var10 /* : nullable ANode */; -short int var11 /* : Bool */; -int cltype; -int idtype; -val* var12 /* : nullable EscapeMark */; -val* var13 /* : nullable AExpr */; -val* var14 /* : nullable EscapeMark */; -val* var15 /* : List[Scope] */; -val* var16 /* : nullable Object */; -var_v = p0; -var = ((val* (*)(val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__scopes]))(var_v) /* scopes on */; -var1 = NEW_scope__Scope(&type_scope__Scope); -((void (*)(val*))(var1->class->vft[COLOR_scope__Scope__init]))(var1) /* init on */; -CHECK_NEW_scope__Scope(var1); -((void (*)(val*, val*))(var->class->vft[COLOR_abstract_collection__Sequence__unshift]))(var, var1) /* unshift on */; -var2 = NEW_array__Array(&type_array__Arrayscope__Variable); -((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on */; -CHECK_NEW_array__Array(var2); -var_variables = var2; -((void (*)(val*, val*))(self->class->vft[COLOR_scope__AClosureDef__variables_61d]))(self, var_variables) /* variables= on */; -var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AClosureDef__n_ids]))(self) /* n_ids on */; -var4 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection__iterator]))(var3) /* iterator on */; -for(;;) { -var5 = ((short int (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var4) /* is_ok on */; -if(!var5) break; -var6 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__item]))(var4) /* item on */; -var_nid = var6; -var7 = NEW_scope__Variable(&type_scope__Variable); -var8 = ((val* (*)(val*))(var_nid->class->vft[COLOR_parser_nodes__Token__text]))(var_nid) /* text on */; -((void (*)(val*, val*))(var7->class->vft[COLOR_scope__Variable__init]))(var7, var8) /* init on */; -CHECK_NEW_scope__Variable(var7); -var_va = var7; -var9 = ((short int (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__register_variable]))(var_v, var_nid, var_va) /* register_variable on */; -var9; -((void (*)(val*, val*))(var_variables->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_variables, var_va) /* add on */; -CONTINUE_label: (void)0; -((void (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__next]))(var4) /* next on */; -} -BREAK_label: (void)0; -var10 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__parent]))(self) /* parent on */; -/* isa ASendExpr */ -cltype = type_parser_nodes__ASendExpr.color; -idtype = type_parser_nodes__ASendExpr.id; -if(var10 == NULL) { -var11 = 0; -} else { -if(cltype >= var10->type->table_size) { -var11 = 0; -} else { -var11 = var10->type->type_table[cltype] == idtype; -} -} -if (!var11) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/scope.nit", 476); -exit(1); -} -var12 = ((val* (*)(val*))(var10->class->vft[COLOR_scope__ASendExpr__escapemark]))(var10) /* escapemark on */; -((void (*)(val*, val*))(self->class->vft[COLOR_scope__AClosureDef__escapemark_61d]))(self, var12) /* escapemark= on */; -var13 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AClosureDef__n_expr]))(self) /* n_expr on */; -var14 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AClosureDef__escapemark]))(self) /* escapemark on */; -((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__enter_visit_block]))(var_v, var13, var14) /* enter_visit_block on */; -var15 = ((val* (*)(val*))(var_v->class->vft[COLOR_scope__ScopeVisitor__scopes]))(var_v) /* scopes on */; -var16 = ((val* (*)(val*))(var15->class->vft[COLOR_abstract_collection__Sequence__shift]))(var15) /* shift on */; -var16; -RET_LABEL:; -} -/* method scope#AClosureDef#accept_scope_visitor for (self: Object, ScopeVisitor) */ -void VIRTUAL_scope__AClosureDef__accept_scope_visitor(val* self, val* p0) { -scope__AClosureDef__accept_scope_visitor(self, p0); -RET_LABEL:; -}