c_src: update for new ffi syntax
[nit.git] / c_src / flow.sep.1.c
index 2f9b1cb..e1c4a6f 100644 (file)
@@ -5,8 +5,9 @@ val* var /* : Phase */;
 val* var1 /* : Phase */;
 var1 = self->attrs[COLOR_flow__ToolContext___64dflow_phase].val; /* @flow_phase on <self:ToolContext> */
 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 <self:FlowVisitor> */
 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 <self:FlowVisitor> */
 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 <self:FlowVisitor>*/;
 var = NEW_flow__FlowContext(&type_flow__FlowContext);
 ((void (*)(val*))(var->class->vft[COLOR_flow__FlowContext__init]))(var) /* init on <var:FlowContext>*/;
-CHECK_NEW_flow__FlowContext(var);
 ((void (*)(val*, val*))(self->class->vft[COLOR_flow__FlowVisitor__current_flow_context_61d]))(self, var) /* current_flow_context= on <self:FlowVisitor>*/;
 var1 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowVisitor__flows]))(self) /* flows on <self:FlowVisitor>*/;
 var2 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowVisitor__current_flow_context]))(self) /* current_flow_context on <self:FlowVisitor>*/;
@@ -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 <self:FlowVisitor>*/;
 var1 = ((val* (*)(val*))(var_node->class->vft[COLOR_flow__AExpr__after_flow_context]))(var_node) /* after_flow_context on <var_node:AExpr>*/;
 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 <self:FlowVisitor> */
 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 <var:OFStream>*/;
-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 <var21:Array[Object]>*/;
-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 <var28:nullable ANode(AExpr)>*/;
 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", "Reciever 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 <var32:nullable FlowContext>*/;
 }
@@ -654,8 +660,9 @@ varonce53 = var54;
 }
 var58 = ((val* (*)(val*))(var_f->class->vft[COLOR_flow__FlowContext__node]))(var_f) /* node on <var_f:FlowContext>*/;
 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", "Reciever 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 <var58:nullable ANode>*/;
 }
@@ -670,8 +677,9 @@ varonce60 = var61;
 }
 var65 = ((val* (*)(val*))(var_f->class->vft[COLOR_flow__FlowContext__node]))(var_f) /* node on <var_f:FlowContext>*/;
 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", "Reciever 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 <var65:nullable ANode>*/;
 }
@@ -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 <var78:Array[Object]>*/;
-CHECK_NEW_array__Array(var78);
 }
 var83 = ((val* (*)(val*))(var78->class->vft[COLOR_string__Object__to_s]))(var78) /* to_s on <var78:Array[Object]>*/;
 ((void (*)(val*, val*))(var_file->class->vft[COLOR_stream__OStream__write]))(var_file, var83) /* write on <var_file:OFStream>*/;
@@ -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 <var105:Array[Object]>*/;
-CHECK_NEW_array__Array(var105);
 }
 var110 = ((val* (*)(val*))(var105->class->vft[COLOR_string__Object__to_s]))(var105) /* to_s on <var105:Array[Object]>*/;
 ((void (*)(val*, val*))(var_file->class->vft[COLOR_stream__OStream__write]))(var_file, var110) /* write on <var_file:OFStream>*/;
@@ -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 <var131:Array[Object]>*/;
-CHECK_NEW_array__Array(var131);
 }
 var136 = ((val* (*)(val*))(var131->class->vft[COLOR_string__Object__to_s]))(var131) /* to_s on <var131:Array[Object]>*/;
 ((void (*)(val*, val*))(var_file->class->vft[COLOR_stream__OStream__write]))(var_file, var136) /* write on <var_file:OFStream>*/;
@@ -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 <var157:Array[Object]>*/;
-CHECK_NEW_array__Array(var157);
 }
 var162 = ((val* (*)(val*))(var157->class->vft[COLOR_string__Object__to_s]))(var157) /* to_s on <var157:Array[Object]>*/;
 ((void (*)(val*, val*))(var_file->class->vft[COLOR_stream__OStream__write]))(var_file, var162) /* write on <var_file:OFStream>*/;
@@ -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 <var1:FlowContext>*/;
-CHECK_NEW_flow__FlowContext(var1);
 var_flow = var1;
 var2 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowVisitor__flows]))(self) /* flows on <self:FlowVisitor>*/;
 ((void (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var2, var_flow) /* add on <var2:Array[FlowContext]>*/;
@@ -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 <var1:FlowContext>*/;
-CHECK_NEW_flow__FlowContext(var1);
 var_flow = var1;
 var2 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowVisitor__flows]))(self) /* flows on <self:FlowVisitor>*/;
 ((void (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var2, var_flow) /* add on <var2:Array[FlowContext]>*/;
@@ -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 <var1:FlowContext>*/;
-CHECK_NEW_flow__FlowContext(var1);
 var_flow = var1;
 var2 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowVisitor__flows]))(self) /* flows on <self:FlowVisitor>*/;
 ((void (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var2, var_flow) /* add on <var2:Array[FlowContext]>*/;
@@ -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 <var2:FlowContext>*/;
-CHECK_NEW_flow__FlowContext(var2);
 var_true_flow = var2;
 var3 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowVisitor__flows]))(self) /* flows on <self:FlowVisitor>*/;
 ((void (*)(val*, val*))(var3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var3, var_true_flow) /* add on <var3:Array[FlowContext]>*/;
@@ -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 <var_true_flow:FlowContext>*/;
 var9 = NEW_flow__FlowContext(&type_flow__FlowContext);
 ((void (*)(val*))(var9->class->vft[COLOR_flow__FlowContext__init]))(var9) /* init on <var9:FlowContext>*/;
-CHECK_NEW_flow__FlowContext(var9);
 var_false_flow = var9;
 var10 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowVisitor__flows]))(self) /* flows on <self:FlowVisitor>*/;
 ((void (*)(val*, val*))(var10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var10, var_false_flow) /* add on <var10:Array[FlowContext]>*/;
@@ -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 <var1:FlowContext>*/;
-CHECK_NEW_flow__FlowContext(var1);
 var_flow = var1;
 var2 = ((val* (*)(val*))(self->class->vft[COLOR_flow__FlowVisitor__flows]))(self) /* flows on <self:FlowVisitor>*/;
 ((void (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var2, var_flow) /* add on <var2:Array[FlowContext]>*/;
@@ -1243,8 +1241,9 @@ val* var /* : Array[FlowContext] */;
 val* var1 /* : Array[FlowContext] */;
 var1 = self->attrs[COLOR_flow__FlowContext___64dprevious].val; /* @previous on <self:FlowContext> */
 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 <self:FlowContext> */
 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 <self:FlowContext> */
 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 <self:FlowContext> */
 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 <self:FlowContext> */
 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 <var:FlowVisitor>*/;
-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 <var_v:FlowVisitor>*/;
 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 <self:AClosureCallExpr>*/;
-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_v:FlowVisitor>*/;
-var_before_loop = var;
-var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AClosureDef__n_expr]))(self) /* n_expr on <self:AClosureDef>*/;
-((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:FlowVisitor>*/;
-var2 = ((val* (*)(val*))(var_v->class->vft[COLOR_flow__FlowVisitor__current_flow_context]))(var_v) /* current_flow_context on <var_v:FlowVisitor>*/;
-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 <var_before_loop:FlowContext>*/;
-var3 = ((val* (*)(val*))(var_v->class->vft[COLOR_flow__FlowVisitor__current_flow_context]))(var_v) /* current_flow_context on <var_v:FlowVisitor>*/;
-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 <var_v:FlowVisitor>*/;
-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 */;