X-Git-Url: http://nitlanguage.org diff --git a/c_src/flow.sep.1.c b/c_src/flow.sep.1.c index 2f9b1cb..6de74a6 100644 --- a/c_src/flow.sep.1.c +++ b/c_src/flow.sep.1.c @@ -5,8 +5,9 @@ val* var /* : Phase */; val* var1 /* : Phase */; var1 = self->attrs[COLOR_flow__ToolContext___64dflow_phase].val; /* @flow_phase on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @flow_phase", "src/flow.nit", 26); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @flow_phase"); +fprintf(stderr, " (%s:%d)\n", "src/flow.nit", 26); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -51,8 +52,9 @@ val* var /* : FlowContext */; val* var1 /* : FlowContext */; var1 = self->attrs[COLOR_flow__FlowVisitor___64dcurrent_flow_context].val; /* @current_flow_context on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @current_flow_context", "src/flow.nit", 39); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @current_flow_context"); +fprintf(stderr, " (%s:%d)\n", "src/flow.nit", 39); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -83,8 +85,9 @@ val* var /* : ToolContext */; val* var1 /* : ToolContext */; var1 = self->attrs[COLOR_flow__FlowVisitor___64dtoolcontext].val; /* @toolcontext on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/flow.nit", 41); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @toolcontext"); +fprintf(stderr, " (%s:%d)\n", "src/flow.nit", 41); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -122,7 +125,6 @@ var_toolcontext = p0; ((void (*)(val*, val*))(self->class->vft[COLOR_flow__FlowVisitor__toolcontext_61d]))(self, var_toolcontext) /* toolcontext= on */; var = NEW_flow__FlowContext(&type_flow__FlowContext); ((void (*)(val*))(var->class->vft[COLOR_flow__FlowContext__init]))(var) /* init on */; -CHECK_NEW_flow__FlowContext(var); ((void (*)(val*, val*))(self->class->vft[COLOR_flow__FlowVisitor__current_flow_context_61d]))(self, var) /* current_flow_context= on */; var1 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowVisitor__flows]))(self) /* flows on */; var2 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowVisitor__current_flow_context]))(self) /* current_flow_context on */; @@ -287,8 +289,9 @@ var_node = p0; ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(self, var_node) /* enter_visit on */; var1 = ((val* (*)(val*))(var_node->class->vft[COLOR_flow__AExpr__after_flow_context]))(var_node) /* after_flow_context on */; if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/flow.nit", 77); -exit(1); +fprintf(stderr, "Runtime error: %s", "Cast failed"); +fprintf(stderr, " (%s:%d)\n", "src/flow.nit", 77); +show_backtrace(1); } var = var1; goto RET_LABEL; @@ -310,8 +313,9 @@ val* var /* : Array[FlowContext] */; val* var1 /* : Array[FlowContext] */; var1 = self->attrs[COLOR_flow__FlowVisitor___64dflows].val; /* @flows on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @flows", "src/flow.nit", 80); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @flows"); +fprintf(stderr, " (%s:%d)\n", "src/flow.nit", 80); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -377,6 +381,7 @@ val* var28 /* : nullable ANode */; short int var29 /* : Bool */; int cltype30; int idtype31; +const char* var_class_name; val* var32 /* : nullable FlowContext */; long var33 /* : Int */; val* var34 /* : nullable Object */; @@ -525,7 +530,6 @@ var1 = var4; varonce = var1; } ((void (*)(val*, val*))(var->class->vft[COLOR_file__OFStream__open]))(var, var1) /* open on */; -CHECK_NEW_file__OFStream(var); var_file = var; if (varonce5) { var6 = varonce5; @@ -571,7 +575,6 @@ if (var20){ var21 = NEW_array__Array(&type_array__Arraykernel__Object); var22 = 3; ((void (*)(val*, long))(var21->class->vft[COLOR_array__Array__with_capacity]))(var21, var22) /* with_capacity on */; -CHECK_NEW_array__Array(var21); var_ = var21; if (varonce23) { var24 = varonce23; @@ -597,13 +600,16 @@ var29 = var28->type->type_table[cltype30] == idtype31; } } if (!var29) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/flow.nit", 89); -exit(1); +var_class_name = var28 == NULL ? "null" : var28->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/flow.nit", 89); +show_backtrace(1); } var32 = ((val* (*)(val*))(var28->class->vft[COLOR_flow__AExpr__after_flow_context]))(var28) /* after_flow_context on */; if (var32 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/flow.nit", 89); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/flow.nit", 89); +show_backtrace(1); } else { var33 = ((long (*)(val*))(var32->class->vft[COLOR_kernel__Object__object_id]))(var32) /* object_id on */; } @@ -654,8 +660,9 @@ varonce53 = var54; } var58 = ((val* (*)(val*))(var_f->class->vft[COLOR_flow__FlowContext__node]))(var_f) /* node on */; if (var58 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/flow.nit", 91); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/flow.nit", 91); +show_backtrace(1); } else { var59 = ((val* (*)(val*))(var58->class->vft[COLOR_parser_nodes__ANode__location]))(var58) /* location on */; } @@ -670,8 +677,9 @@ varonce60 = var61; } var65 = ((val* (*)(val*))(var_f->class->vft[COLOR_flow__FlowContext__node]))(var_f) /* node on */; if (var65 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/flow.nit", 91); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/flow.nit", 91); +show_backtrace(1); } else { var66 = ((val* (*)(val*))(var65->class->vft[COLOR_string__Object__class_name]))(var65) /* class_name on */; } @@ -713,7 +721,6 @@ var82 = BOX_kernel__Int(var52); /* autobox from Int to Object */ ((struct instance_array__NativeArray*)var80)->values[10] = (val*) var_s; ((struct instance_array__NativeArray*)var80)->values[11] = (val*) var74; ((void (*)(val*, val*, long))(var78->class->vft[COLOR_array__Array__with_native]))(var78, var80, var79) /* with_native on */; -CHECK_NEW_array__Array(var78); } var83 = ((val* (*)(val*))(var78->class->vft[COLOR_string__Object__to_s]))(var78) /* to_s on */; ((void (*)(val*, val*))(var_file->class->vft[COLOR_stream__OStream__write]))(var_file, var83) /* write on */; @@ -765,7 +772,6 @@ var109 = BOX_kernel__Int(var99); /* autobox from Int to Object */ ((struct instance_array__NativeArray*)var107)->values[3] = (val*) var109; ((struct instance_array__NativeArray*)var107)->values[4] = (val*) var101; ((void (*)(val*, val*, long))(var105->class->vft[COLOR_array__Array__with_native]))(var105, var107, var106) /* with_native on */; -CHECK_NEW_array__Array(var105); } var110 = ((val* (*)(val*))(var105->class->vft[COLOR_string__Object__to_s]))(var105) /* to_s on */; ((void (*)(val*, val*))(var_file->class->vft[COLOR_stream__OStream__write]))(var_file, var110) /* write on */; @@ -818,7 +824,6 @@ var135 = BOX_kernel__Int(var125); /* autobox from Int to Object */ ((struct instance_array__NativeArray*)var133)->values[3] = (val*) var135; ((struct instance_array__NativeArray*)var133)->values[4] = (val*) var127; ((void (*)(val*, val*, long))(var131->class->vft[COLOR_array__Array__with_native]))(var131, var133, var132) /* with_native on */; -CHECK_NEW_array__Array(var131); } var136 = ((val* (*)(val*))(var131->class->vft[COLOR_string__Object__to_s]))(var131) /* to_s on */; ((void (*)(val*, val*))(var_file->class->vft[COLOR_stream__OStream__write]))(var_file, var136) /* write on */; @@ -869,7 +874,6 @@ var161 = BOX_kernel__Int(var151); /* autobox from Int to Object */ ((struct instance_array__NativeArray*)var159)->values[3] = (val*) var161; ((struct instance_array__NativeArray*)var159)->values[4] = (val*) var153; ((void (*)(val*, val*, long))(var157->class->vft[COLOR_array__Array__with_native]))(var157, var159, var158) /* with_native on */; -CHECK_NEW_array__Array(var157); } var162 = ((val* (*)(val*))(var157->class->vft[COLOR_string__Object__to_s]))(var157) /* to_s on */; ((void (*)(val*, val*))(var_file->class->vft[COLOR_stream__OStream__write]))(var_file, var162) /* write on */; @@ -907,7 +911,6 @@ val* var3 /* : nullable ANode */; val* var4 /* : FlowContext */; var1 = NEW_flow__FlowContext(&type_flow__FlowContext); ((void (*)(val*))(var1->class->vft[COLOR_flow__FlowContext__init]))(var1) /* init on */; -CHECK_NEW_flow__FlowContext(var1); var_flow = var1; var2 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowVisitor__flows]))(self) /* flows on */; ((void (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var2, var_flow) /* add on */; @@ -943,7 +946,6 @@ var_flow1 = p0; var_flow2 = p1; var1 = NEW_flow__FlowContext(&type_flow__FlowContext); ((void (*)(val*))(var1->class->vft[COLOR_flow__FlowContext__init]))(var1) /* init on */; -CHECK_NEW_flow__FlowContext(var1); var_flow = var1; var2 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowVisitor__flows]))(self) /* flows on */; ((void (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var2, var_flow) /* add on */; @@ -979,7 +981,6 @@ var_true_flow = p0; var_false_flow = p1; var1 = NEW_flow__FlowContext(&type_flow__FlowContext); ((void (*)(val*))(var1->class->vft[COLOR_flow__FlowContext__init]))(var1) /* init on */; -CHECK_NEW_flow__FlowContext(var1); var_flow = var1; var2 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowVisitor__flows]))(self) /* flows on */; ((void (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var2, var_flow) /* add on */; @@ -1032,7 +1033,6 @@ var1 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowVisitor__current_flow_ var_orig_flow = var1; var2 = NEW_flow__FlowContext(&type_flow__FlowContext); ((void (*)(val*))(var2->class->vft[COLOR_flow__FlowContext__init]))(var2) /* init on */; -CHECK_NEW_flow__FlowContext(var2); var_true_flow = var2; var3 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowVisitor__flows]))(self) /* flows on */; ((void (*)(val*, val*))(var3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var3, var_true_flow) /* add on */; @@ -1051,7 +1051,6 @@ varonce = var5; ((void (*)(val*, val*))(var_true_flow->class->vft[COLOR_flow__FlowContext__name_61d]))(var_true_flow, var5) /* name= on */; var9 = NEW_flow__FlowContext(&type_flow__FlowContext); ((void (*)(val*))(var9->class->vft[COLOR_flow__FlowContext__init]))(var9) /* init on */; -CHECK_NEW_flow__FlowContext(var9); var_false_flow = var9; var10 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowVisitor__flows]))(self) /* flows on */; ((void (*)(val*, val*))(var10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var10, var_false_flow) /* add on */; @@ -1094,7 +1093,6 @@ val* var4 /* : FlowContext */; short int var5 /* : Bool */; var1 = NEW_flow__FlowContext(&type_flow__FlowContext); ((void (*)(val*))(var1->class->vft[COLOR_flow__FlowContext__init]))(var1) /* init on */; -CHECK_NEW_flow__FlowContext(var1); var_flow = var1; var2 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowVisitor__flows]))(self) /* flows on */; ((void (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var2, var_flow) /* add on */; @@ -1243,8 +1241,9 @@ val* var /* : Array[FlowContext] */; val* var1 /* : Array[FlowContext] */; var1 = self->attrs[COLOR_flow__FlowContext___64dprevious].val; /* @previous on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @previous", "src/flow.nit", 192); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @previous"); +fprintf(stderr, " (%s:%d)\n", "src/flow.nit", 192); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -1275,8 +1274,9 @@ val* var /* : Array[FlowContext] */; val* var1 /* : Array[FlowContext] */; var1 = self->attrs[COLOR_flow__FlowContext___64dloops].val; /* @loops on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @loops", "src/flow.nit", 195); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @loops"); +fprintf(stderr, " (%s:%d)\n", "src/flow.nit", 195); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -1477,8 +1477,9 @@ val* var /* : String */; val* var1 /* : String */; var1 = self->attrs[COLOR_flow__FlowContext___64dname].val; /* @name on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @name", "src/flow.nit", 225); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @name"); +fprintf(stderr, " (%s:%d)\n", "src/flow.nit", 225); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -1509,8 +1510,9 @@ val* var /* : FlowContext */; val* var1 /* : FlowContext */; var1 = self->attrs[COLOR_flow__FlowContext___64dwhen_true].val; /* @when_true on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @when_true", "src/flow.nit", 228); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @when_true"); +fprintf(stderr, " (%s:%d)\n", "src/flow.nit", 228); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -1541,8 +1543,9 @@ val* var /* : FlowContext */; val* var1 /* : FlowContext */; var1 = self->attrs[COLOR_flow__FlowContext___64dwhen_false].val; /* @when_false on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @when_false", "src/flow.nit", 231); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @when_false"); +fprintf(stderr, " (%s:%d)\n", "src/flow.nit", 231); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -1666,7 +1669,6 @@ val* var_v /* var v: FlowVisitor */; var_toolcontext = p0; var = NEW_flow__FlowVisitor(&type_flow__FlowVisitor); ((void (*)(val*, val*))(var->class->vft[COLOR_flow__FlowVisitor__init]))(var, var_toolcontext) /* init on */; -CHECK_NEW_flow__FlowVisitor(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:; @@ -2477,46 +2479,6 @@ void VIRTUAL_flow__ANeExpr__accept_flow_visitor(val* self, val* p0) { flow__ANeExpr__accept_flow_visitor(self, p0); RET_LABEL:; } -/* method flow#AClosureCallExpr#accept_flow_visitor for (self: AClosureCallExpr, FlowVisitor) */ -void flow__AClosureCallExpr__accept_flow_visitor(val* self, val* p0) { -val* var_v /* var v: FlowVisitor */; -var_v = p0; -((void (*)(val*, val*))(self->class->vft[COLOR_flow__AClosureCallExpr__accept_flow_visitor]))(self, p0) /* accept_flow_visitor on */; -RET_LABEL:; -} -/* method flow#AClosureCallExpr#accept_flow_visitor for (self: Object, FlowVisitor) */ -void VIRTUAL_flow__AClosureCallExpr__accept_flow_visitor(val* self, val* p0) { -flow__AClosureCallExpr__accept_flow_visitor(self, p0); -RET_LABEL:; -} -/* method flow#AClosureDef#accept_flow_visitor for (self: AClosureDef, FlowVisitor) */ -void flow__AClosureDef__accept_flow_visitor(val* self, val* p0) { -val* var_v /* var v: FlowVisitor */; -val* var /* : FlowContext */; -val* var_before_loop /* var before_loop: FlowContext */; -val* var1 /* : nullable AExpr */; -val* var2 /* : FlowContext */; -val* var_after_block /* var after_block: FlowContext */; -val* var3 /* : FlowContext */; -val* var4 /* : FlowContext */; -var_v = p0; -var = ((val* (*)(val*))(var_v->class->vft[COLOR_flow__FlowVisitor__make_sub_flow]))(var_v) /* make_sub_flow on */; -var_before_loop = var; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AClosureDef__n_expr]))(self) /* n_expr on */; -((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on */; -var2 = ((val* (*)(val*))(var_v->class->vft[COLOR_flow__FlowVisitor__current_flow_context]))(var_v) /* current_flow_context on */; -var_after_block = var2; -((void (*)(val*, val*))(var_before_loop->class->vft[COLOR_flow__FlowContext__add_loop]))(var_before_loop, var_after_block) /* add_loop on */; -var3 = ((val* (*)(val*))(var_v->class->vft[COLOR_flow__FlowVisitor__current_flow_context]))(var_v) /* current_flow_context on */; -var4 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_flow__FlowVisitor__make_merge_flow]))(var_v, var3, var_before_loop) /* make_merge_flow on */; -var4; -RET_LABEL:; -} -/* method flow#AClosureDef#accept_flow_visitor for (self: Object, FlowVisitor) */ -void VIRTUAL_flow__AClosureDef__accept_flow_visitor(val* self, val* p0) { -flow__AClosureDef__accept_flow_visitor(self, p0); -RET_LABEL:; -} /* method flow#AIsaExpr#accept_flow_visitor for (self: AIsaExpr, FlowVisitor) */ void flow__AIsaExpr__accept_flow_visitor(val* self, val* p0) { val* var_v /* var v: FlowVisitor */;