lib: implement `close` in StringOStream
[nit.git] / c_src / parser.sep.7.c
index 05c518e..d09525f 100644 (file)
@@ -1,291 +1,4 @@
 #include "parser.sep.0.h"
-/* method parser#ReduceAction223#action for (self: ReduceAction223, Parser) */
-void parser__ReduceAction223__action(val* self, val* p0) {
-val* var_p /* var p: Parser */;
-val* var /* : null */;
-val* var_node_list /* var node_list: nullable Object */;
-val* var1 /* : nullable Object */;
-val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
-val* var2 /* : nullable Object */;
-val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
-val* var3 /* : nullable Object */;
-val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
-val* var4 /* : nullable Object */;
-val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
-val* var5 /* : nullable Object */;
-val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
-val* var6 /* : nullable Object */;
-val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
-val* var7 /* : nullable Object */;
-val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
-val* var8 /* : nullable Object */;
-val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
-val* var9 /* : nullable Object */;
-val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
-val* var10 /* : nullable Object */;
-val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
-val* var11 /* : nullable Object */;
-val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
-val* var12 /* : nullable Object */;
-val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
-val* var13 /* : Array[Object] */;
-val* var_listnode7 /* var listnode7: Array[Object] */;
-val* var14 /* : Array[Object] */;
-val* var_listnode15 /* var listnode15: Array[Object] */;
-val* var15 /* : Array[Object] */;
-val* var_listnode17 /* var listnode17: Array[Object] */;
-val* var_pdocnode2 /* var pdocnode2: nullable Object */;
-short int var16 /* : Bool */;
-int cltype;
-int idtype;
-val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
-short int var17 /* : Bool */;
-int cltype18;
-int idtype19;
-val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
-short int var20 /* : Bool */;
-int cltype21;
-int idtype22;
-val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
-short int var23 /* : Bool */;
-int cltype24;
-int idtype25;
-val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
-short int var26 /* : Bool */;
-int cltype27;
-int idtype28;
-val* var29 /* : Array[Object] */;
-val* var_listnode12 /* var listnode12: Array[Object] */;
-val* var_listnode11 /* var listnode11: nullable Object */;
-short int var30 /* : Bool */;
-int cltype31;
-int idtype32;
-val* var33 /* : Array[Object] */;
-val* var34 /* : AAnnotations */;
-val* var35 /* : null */;
-val* var36 /* : null */;
-val* var37 /* : null */;
-val* var_pannotationsnode8 /* var pannotationsnode8: nullable AAnnotations */;
-val* var_listnode16 /* var listnode16: nullable Object */;
-short int var38 /* : Bool */;
-int cltype39;
-int idtype40;
-val* var41 /* : Array[Object] */;
-val* var_tkwendnode18 /* var tkwendnode18: nullable Object */;
-short int var42 /* : Bool */;
-int cltype43;
-int idtype44;
-val* var45 /* : AStdClassdef */;
-val* var46 /* : null */;
-val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
-long var47 /* : Int */;
-long var48 /* : Int */;
-var_p = p0;
-var = NULL;
-var_node_list = var;
-var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist12 = var1;
-var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist11 = var2;
-var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist10 = var3;
-var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist9 = var4;
-var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist8 = var5;
-var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist7 = var6;
-var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist6 = var7;
-var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist5 = var8;
-var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist4 = var9;
-var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist3 = var10;
-var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist2 = var11;
-var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
-var_nodearraylist1 = var12;
-var13 = NEW_array__Array(&type_array__Arraykernel__Object);
-((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
-var_listnode7 = var13;
-var14 = NEW_array__Array(&type_array__Arraykernel__Object);
-((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
-var_listnode15 = var14;
-var15 = NEW_array__Array(&type_array__Arraykernel__Object);
-((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
-var_listnode17 = var15;
-var_pdocnode2 = var_nodearraylist1;
-/* <var_pdocnode2:nullable Object> isa nullable ADoc */
-cltype = type_nullable_parser_nodes__ADoc.color;
-idtype = type_nullable_parser_nodes__ADoc.id;
-if(var_pdocnode2 == NULL) {
-var16 = 1;
-} else {
-if(cltype >= var_pdocnode2->type->table_size) {
-var16 = 0;
-} else {
-var16 = var_pdocnode2->type->type_table[cltype] == idtype;
-}
-}
-if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10669);
-exit(1);
-}
-var_tkwredefnode3 = var_nodearraylist2;
-/* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
-cltype18 = type_nullable_parser_nodes__TKwredef.color;
-idtype19 = type_nullable_parser_nodes__TKwredef.id;
-if(var_tkwredefnode3 == NULL) {
-var17 = 1;
-} else {
-if(cltype18 >= var_tkwredefnode3->type->table_size) {
-var17 = 0;
-} else {
-var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19;
-}
-}
-if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10671);
-exit(1);
-}
-var_pvisibilitynode4 = var_nodearraylist3;
-/* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
-cltype21 = type_nullable_parser_nodes__AVisibility.color;
-idtype22 = type_nullable_parser_nodes__AVisibility.id;
-if(var_pvisibilitynode4 == NULL) {
-var20 = 1;
-} else {
-if(cltype21 >= var_pvisibilitynode4->type->table_size) {
-var20 = 0;
-} else {
-var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22;
-}
-}
-if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10673);
-exit(1);
-}
-var_pclasskindnode5 = var_nodearraylist4;
-/* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
-cltype24 = type_nullable_parser_nodes__AClasskind.color;
-idtype25 = type_nullable_parser_nodes__AClasskind.id;
-if(var_pclasskindnode5 == NULL) {
-var23 = 1;
-} else {
-if(cltype24 >= var_pclasskindnode5->type->table_size) {
-var23 = 0;
-} else {
-var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25;
-}
-}
-if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10675);
-exit(1);
-}
-var_tclassidnode6 = var_nodearraylist8;
-/* <var_tclassidnode6:nullable Object> isa nullable TClassid */
-cltype27 = type_nullable_parser_nodes__TClassid.color;
-idtype28 = type_nullable_parser_nodes__TClassid.id;
-if(var_tclassidnode6 == NULL) {
-var26 = 1;
-} else {
-if(cltype27 >= var_tclassidnode6->type->table_size) {
-var26 = 0;
-} else {
-var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28;
-}
-}
-if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10677);
-exit(1);
-}
-var29 = NEW_array__Array(&type_array__Arraykernel__Object);
-((void (*)(val*))(var29->class->vft[COLOR_array__Array__init]))(var29) /* init on <var29:Array[Object]>*/;
-CHECK_NEW_array__Array(var29);
-var_listnode12 = var29;
-var_listnode11 = var_nodearraylist9;
-/* <var_listnode11:nullable Object> isa Array[Object] */
-cltype31 = type_array__Arraykernel__Object.color;
-idtype32 = type_array__Arraykernel__Object.id;
-if(var_listnode11 == NULL) {
-var30 = 0;
-} else {
-if(cltype31 >= var_listnode11->type->table_size) {
-var30 = 0;
-} else {
-var30 = var_listnode11->type->type_table[cltype31] == idtype32;
-}
-}
-if (!var30) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10680);
-exit(1);
-}
-var33 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction223>*/;
-var_listnode12 = var33;
-var34 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
-var35 = NULL;
-var36 = NULL;
-var37 = NULL;
-((void (*)(val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var34, var35, var36, var_listnode12, var37) /* init_aannotations on <var34:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var34);
-var_pannotationsnode8 = var34;
-var_listnode16 = var_nodearraylist10;
-/* <var_listnode16:nullable Object> isa Array[Object] */
-cltype39 = type_array__Arraykernel__Object.color;
-idtype40 = type_array__Arraykernel__Object.id;
-if(var_listnode16 == NULL) {
-var38 = 0;
-} else {
-if(cltype39 >= var_listnode16->type->table_size) {
-var38 = 0;
-} else {
-var38 = var_listnode16->type->type_table[cltype39] == idtype40;
-}
-}
-if (!var38) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10689);
-exit(1);
-}
-var41 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction223>*/;
-var_listnode17 = var41;
-var_tkwendnode18 = var_nodearraylist12;
-/* <var_tkwendnode18:nullable Object> isa nullable TKwend */
-cltype43 = type_nullable_parser_nodes__TKwend.color;
-idtype44 = type_nullable_parser_nodes__TKwend.id;
-if(var_tkwendnode18 == NULL) {
-var42 = 1;
-} else {
-if(cltype43 >= var_tkwendnode18->type->table_size) {
-var42 = 0;
-} else {
-var42 = var_tkwendnode18->type->type_table[cltype43] == idtype44;
-}
-}
-if (!var42) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10692);
-exit(1);
-}
-var45 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
-var46 = NULL;
-((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var45->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var45, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var46, var_listnode15, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var45:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var45);
-var_pclassdefnode1 = var45;
-var_node_list = var_pclassdefnode1;
-var47 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction223> */
-var48 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var47) /* go_to on <var_p:Parser>*/;
-((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var48, var_node_list) /* push on <var_p:Parser>*/;
-RET_LABEL:;
-}
-/* method parser#ReduceAction223#action for (self: Object, Parser) */
-void VIRTUAL_parser__ReduceAction223__action(val* self, val* p0) {
-parser__ReduceAction223__action(self, p0);
-RET_LABEL:;
-}
 /* method parser#ReduceAction225#action for (self: ReduceAction225, Parser) */
 void parser__ReduceAction225__action(val* self, val* p0) {
 val* var_p /* var p: Parser */;
@@ -390,15 +103,12 @@ var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode8 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode16 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode18 = var13;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -414,8 +124,9 @@ var14 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10729);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10481);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -431,8 +142,9 @@ var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10731);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10483);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -448,8 +160,9 @@ var18 = var_pclasskindnode5->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10733);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10485);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist5;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -465,8 +178,9 @@ var21 = var_tclassidnode6->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10735);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10487);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist6;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -482,14 +196,14 @@ var24 = var_listnode7->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10737);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10489);
+show_backtrace(1);
 }
 var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction225>*/;
 var_listnode8 = var27;
 var28 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var28->class->vft[COLOR_array__Array__init]))(var28) /* init on <var28:Array[Object]>*/;
-CHECK_NEW_array__Array(var28);
 var_listnode13 = var28;
 var_listnode12 = var_nodearraylist7;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -505,8 +219,9 @@ var29 = var_listnode12->type->type_table[cltype30] == idtype31;
 }
 }
 if (!var29) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10741);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10493);
+show_backtrace(1);
 }
 var32 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction225>*/;
 var_listnode13 = var32;
@@ -515,7 +230,6 @@ var34 = NULL;
 var35 = NULL;
 var36 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var33->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var33, var34, var35, var_listnode13, var36) /* init_aannotations on <var33:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var33);
 var_pannotationsnode9 = var33;
 var_listnode17 = var_nodearraylist8;
 /* <var_listnode17:nullable Object> isa Array[Object] */
@@ -531,8 +245,9 @@ var37 = var_listnode17->type->type_table[cltype38] == idtype39;
 }
 }
 if (!var37) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10750);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10502);
+show_backtrace(1);
 }
 var40 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode18, var_listnode17) /* concat on <self:ReduceAction225>*/;
 var_listnode18 = var40;
@@ -550,14 +265,14 @@ var41 = var_tkwendnode19->type->type_table[cltype42] == idtype43;
 }
 }
 if (!var41) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10753);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10505);
+show_backtrace(1);
 }
 var44 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var45 = NULL;
 var46 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var44->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var44, var_pdocnode2, var45, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var46, var_listnode16, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var44:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var44);
 var_pclassdefnode1 = var44;
 var_node_list = var_pclassdefnode1;
 var47 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction225> */
@@ -681,15 +396,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode8 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode16 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode18 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -705,8 +417,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10791);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10543);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -722,8 +435,9 @@ var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10793);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10545);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -739,8 +453,9 @@ var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10795);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10547);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -756,8 +471,9 @@ var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10797);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10549);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -773,8 +489,9 @@ var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10799);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10551);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist7;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -790,14 +507,14 @@ var28 = var_listnode7->type->type_table[cltype29] == idtype30;
 }
 }
 if (!var28) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10801);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10553);
+show_backtrace(1);
 }
 var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction226>*/;
 var_listnode8 = var31;
 var32 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var32->class->vft[COLOR_array__Array__init]))(var32) /* init on <var32:Array[Object]>*/;
-CHECK_NEW_array__Array(var32);
 var_listnode13 = var32;
 var_listnode12 = var_nodearraylist8;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -813,8 +530,9 @@ var33 = var_listnode12->type->type_table[cltype34] == idtype35;
 }
 }
 if (!var33) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10805);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10557);
+show_backtrace(1);
 }
 var36 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction226>*/;
 var_listnode13 = var36;
@@ -823,7 +541,6 @@ var38 = NULL;
 var39 = NULL;
 var40 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var37->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var37, var38, var39, var_listnode13, var40) /* init_aannotations on <var37:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var37);
 var_pannotationsnode9 = var37;
 var_listnode17 = var_nodearraylist9;
 /* <var_listnode17:nullable Object> isa Array[Object] */
@@ -839,8 +556,9 @@ var41 = var_listnode17->type->type_table[cltype42] == idtype43;
 }
 }
 if (!var41) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10814);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10566);
+show_backtrace(1);
 }
 var44 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode18, var_listnode17) /* concat on <self:ReduceAction226>*/;
 var_listnode18 = var44;
@@ -858,13 +576,13 @@ var45 = var_tkwendnode19->type->type_table[cltype46] == idtype47;
 }
 }
 if (!var45) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10817);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10569);
+show_backtrace(1);
 }
 var48 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var49 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var48->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var48, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var49, var_listnode16, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var48:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var48);
 var_pclassdefnode1 = var48;
 var_node_list = var_pclassdefnode1;
 var50 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction226> */
@@ -985,15 +703,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode8 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode16 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode18 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -1009,8 +724,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10855);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10607);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -1026,8 +742,9 @@ var16 = var_pvisibilitynode4->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10857);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10609);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -1043,8 +760,9 @@ var19 = var_pclasskindnode5->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10859);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10611);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -1060,8 +778,9 @@ var22 = var_tclassidnode6->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10861);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10613);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist7;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -1077,14 +796,14 @@ var25 = var_listnode7->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10863);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10615);
+show_backtrace(1);
 }
 var28 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction227>*/;
 var_listnode8 = var28;
 var29 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var29->class->vft[COLOR_array__Array__init]))(var29) /* init on <var29:Array[Object]>*/;
-CHECK_NEW_array__Array(var29);
 var_listnode13 = var29;
 var_listnode12 = var_nodearraylist8;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -1100,8 +819,9 @@ var30 = var_listnode12->type->type_table[cltype31] == idtype32;
 }
 }
 if (!var30) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10867);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10619);
+show_backtrace(1);
 }
 var33 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction227>*/;
 var_listnode13 = var33;
@@ -1110,7 +830,6 @@ var35 = NULL;
 var36 = NULL;
 var37 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var34, var35, var36, var_listnode13, var37) /* init_aannotations on <var34:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var34);
 var_pannotationsnode9 = var34;
 var_listnode17 = var_nodearraylist9;
 /* <var_listnode17:nullable Object> isa Array[Object] */
@@ -1126,8 +845,9 @@ var38 = var_listnode17->type->type_table[cltype39] == idtype40;
 }
 }
 if (!var38) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10876);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10628);
+show_backtrace(1);
 }
 var41 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode18, var_listnode17) /* concat on <self:ReduceAction227>*/;
 var_listnode18 = var41;
@@ -1145,14 +865,14 @@ var42 = var_tkwendnode19->type->type_table[cltype43] == idtype44;
 }
 }
 if (!var42) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10879);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10631);
+show_backtrace(1);
 }
 var45 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var46 = NULL;
 var47 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var45->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var45, var_pdocnode2, var46, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var47, var_listnode16, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var45:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var45);
 var_pclassdefnode1 = var45;
 var_node_list = var_pclassdefnode1;
 var48 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction227> */
@@ -1277,15 +997,12 @@ var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode8 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode16 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode18 = var15;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -1301,8 +1018,9 @@ var16 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10918);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10670);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -1318,8 +1036,9 @@ var17 = var_pvisibilitynode4->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10920);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10672);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -1335,8 +1054,9 @@ var20 = var_pclasskindnode5->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10922);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10674);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -1352,8 +1072,9 @@ var23 = var_tclassidnode6->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10924);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10676);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist8;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -1369,14 +1090,14 @@ var26 = var_listnode7->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10926);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10678);
+show_backtrace(1);
 }
 var29 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction228>*/;
 var_listnode8 = var29;
 var30 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var30->class->vft[COLOR_array__Array__init]))(var30) /* init on <var30:Array[Object]>*/;
-CHECK_NEW_array__Array(var30);
 var_listnode13 = var30;
 var_listnode12 = var_nodearraylist9;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -1392,8 +1113,9 @@ var31 = var_listnode12->type->type_table[cltype32] == idtype33;
 }
 }
 if (!var31) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10930);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10682);
+show_backtrace(1);
 }
 var34 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction228>*/;
 var_listnode13 = var34;
@@ -1402,7 +1124,6 @@ var36 = NULL;
 var37 = NULL;
 var38 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var35->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var35, var36, var37, var_listnode13, var38) /* init_aannotations on <var35:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var35);
 var_pannotationsnode9 = var35;
 var_listnode17 = var_nodearraylist10;
 /* <var_listnode17:nullable Object> isa Array[Object] */
@@ -1418,8 +1139,9 @@ var39 = var_listnode17->type->type_table[cltype40] == idtype41;
 }
 }
 if (!var39) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10939);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10691);
+show_backtrace(1);
 }
 var42 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode18, var_listnode17) /* concat on <self:ReduceAction228>*/;
 var_listnode18 = var42;
@@ -1437,14 +1159,14 @@ var43 = var_tkwendnode19->type->type_table[cltype44] == idtype45;
 }
 }
 if (!var43) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10942);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10694);
+show_backtrace(1);
 }
 var46 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var47 = NULL;
 var48 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var46->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var46, var_pdocnode2, var47, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var48, var_listnode16, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var46:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var46);
 var_pclassdefnode1 = var46;
 var_node_list = var_pclassdefnode1;
 var49 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction228> */
@@ -1572,15 +1294,12 @@ var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode8 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode16 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode18 = var15;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -1596,8 +1315,9 @@ var16 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10981);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10733);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -1613,8 +1333,9 @@ var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10983);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10735);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -1630,8 +1351,9 @@ var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10985);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10737);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -1647,8 +1369,9 @@ var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10987);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10739);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -1664,8 +1387,9 @@ var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10989);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10741);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist8;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -1681,14 +1405,14 @@ var29 = var_listnode7->type->type_table[cltype30] == idtype31;
 }
 }
 if (!var29) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10991);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10743);
+show_backtrace(1);
 }
 var32 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction230>*/;
 var_listnode8 = var32;
 var33 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var33->class->vft[COLOR_array__Array__init]))(var33) /* init on <var33:Array[Object]>*/;
-CHECK_NEW_array__Array(var33);
 var_listnode13 = var33;
 var_listnode12 = var_nodearraylist9;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -1704,8 +1428,9 @@ var34 = var_listnode12->type->type_table[cltype35] == idtype36;
 }
 }
 if (!var34) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 10995);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10747);
+show_backtrace(1);
 }
 var37 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction230>*/;
 var_listnode13 = var37;
@@ -1714,7 +1439,6 @@ var39 = NULL;
 var40 = NULL;
 var41 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var38->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var38, var39, var40, var_listnode13, var41) /* init_aannotations on <var38:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var38);
 var_pannotationsnode9 = var38;
 var_listnode17 = var_nodearraylist10;
 /* <var_listnode17:nullable Object> isa Array[Object] */
@@ -1730,8 +1454,9 @@ var42 = var_listnode17->type->type_table[cltype43] == idtype44;
 }
 }
 if (!var42) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11004);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10756);
+show_backtrace(1);
 }
 var45 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode18, var_listnode17) /* concat on <self:ReduceAction230>*/;
 var_listnode18 = var45;
@@ -1749,13 +1474,13 @@ var46 = var_tkwendnode19->type->type_table[cltype47] == idtype48;
 }
 }
 if (!var46) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11007);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10759);
+show_backtrace(1);
 }
 var49 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var50 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var49->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var49, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var50, var_listnode16, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var49:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var49);
 var_pclassdefnode1 = var49;
 var_node_list = var_pclassdefnode1;
 var51 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction230> */
@@ -1887,15 +1612,12 @@ var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode8 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode16 = var15;
 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
-CHECK_NEW_array__Array(var16);
 var_listnode18 = var16;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -1911,8 +1633,9 @@ var17 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11047);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10799);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -1928,8 +1651,9 @@ var18 = var_tkwredefnode3->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11049);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10801);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -1945,8 +1669,9 @@ var21 = var_pvisibilitynode4->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11051);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10803);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -1962,8 +1687,9 @@ var24 = var_pclasskindnode5->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11053);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10805);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist8;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -1979,8 +1705,9 @@ var27 = var_tclassidnode6->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11055);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10807);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist9;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -1996,14 +1723,14 @@ var30 = var_listnode7->type->type_table[cltype31] == idtype32;
 }
 }
 if (!var30) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11057);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10809);
+show_backtrace(1);
 }
 var33 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction231>*/;
 var_listnode8 = var33;
 var34 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var34->class->vft[COLOR_array__Array__init]))(var34) /* init on <var34:Array[Object]>*/;
-CHECK_NEW_array__Array(var34);
 var_listnode13 = var34;
 var_listnode12 = var_nodearraylist10;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -2019,8 +1746,9 @@ var35 = var_listnode12->type->type_table[cltype36] == idtype37;
 }
 }
 if (!var35) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11061);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10813);
+show_backtrace(1);
 }
 var38 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction231>*/;
 var_listnode13 = var38;
@@ -2029,7 +1757,6 @@ var40 = NULL;
 var41 = NULL;
 var42 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var39->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var39, var40, var41, var_listnode13, var42) /* init_aannotations on <var39:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var39);
 var_pannotationsnode9 = var39;
 var_listnode17 = var_nodearraylist11;
 /* <var_listnode17:nullable Object> isa Array[Object] */
@@ -2045,8 +1772,9 @@ var43 = var_listnode17->type->type_table[cltype44] == idtype45;
 }
 }
 if (!var43) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11070);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10822);
+show_backtrace(1);
 }
 var46 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode18, var_listnode17) /* concat on <self:ReduceAction231>*/;
 var_listnode18 = var46;
@@ -2064,13 +1792,13 @@ var47 = var_tkwendnode19->type->type_table[cltype48] == idtype49;
 }
 }
 if (!var47) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11073);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10825);
+show_backtrace(1);
 }
 var50 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var51 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var50->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var50, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var51, var_listnode16, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var50:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var50);
 var_pclassdefnode1 = var50;
 var_node_list = var_pclassdefnode1;
 var52 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction231> */
@@ -2170,15 +1898,12 @@ var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var9;
 var10 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on <var10:Array[Object]>*/;
-CHECK_NEW_array__Array(var10);
 var_listnode7 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode10 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode12 = var12;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -2194,8 +1919,9 @@ var13 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var13) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11109);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10861);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -2211,8 +1937,9 @@ var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11111);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10863);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -2228,8 +1955,9 @@ var17 = var_pclasskindnode5->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11113);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10865);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist5;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -2245,8 +1973,9 @@ var20 = var_tclassidnode6->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11115);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10867);
+show_backtrace(1);
 }
 var_pexterncodeblocknode9 = var_nodearraylist6;
 /* <var_pexterncodeblocknode9:nullable Object> isa nullable AExternCodeBlock */
@@ -2262,8 +1991,9 @@ var23 = var_pexterncodeblocknode9->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11117);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10869);
+show_backtrace(1);
 }
 var_listnode11 = var_nodearraylist7;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -2279,8 +2009,9 @@ var26 = var_listnode11->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11119);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10871);
+show_backtrace(1);
 }
 var29 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction233>*/;
 var_listnode12 = var29;
@@ -2298,14 +2029,14 @@ var30 = var_tkwendnode13->type->type_table[cltype31] == idtype32;
 }
 }
 if (!var30) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11122);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10874);
+show_backtrace(1);
 }
 var33 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var34 = NULL;
 var35 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var33->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var33, var_pdocnode2, var34, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var35, var_pexterncodeblocknode9, var_listnode10, var_listnode12, var_tkwendnode13) /* init_astdclassdef on <var33:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var33);
 var_pclassdefnode1 = var33;
 var_node_list = var_pclassdefnode1;
 var36 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction233> */
@@ -2412,15 +2143,12 @@ var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode7 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode10 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode12 = var13;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -2436,8 +2164,9 @@ var14 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11159);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10911);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -2453,8 +2182,9 @@ var15 = var_tkwredefnode3->type->type_table[cltype16] == idtype17;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11161);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10913);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -2470,8 +2200,9 @@ var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11163);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10915);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -2487,8 +2218,9 @@ var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11165);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10917);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -2504,8 +2236,9 @@ var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11167);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10919);
+show_backtrace(1);
 }
 var_pexterncodeblocknode9 = var_nodearraylist7;
 /* <var_pexterncodeblocknode9:nullable Object> isa nullable AExternCodeBlock */
@@ -2521,8 +2254,9 @@ var27 = var_pexterncodeblocknode9->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11169);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10921);
+show_backtrace(1);
 }
 var_listnode11 = var_nodearraylist8;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -2538,8 +2272,9 @@ var30 = var_listnode11->type->type_table[cltype31] == idtype32;
 }
 }
 if (!var30) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11171);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10923);
+show_backtrace(1);
 }
 var33 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction234>*/;
 var_listnode12 = var33;
@@ -2557,13 +2292,13 @@ var34 = var_tkwendnode13->type->type_table[cltype35] == idtype36;
 }
 }
 if (!var34) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11174);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10926);
+show_backtrace(1);
 }
 var37 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var38 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var37->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var37, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var38, var_pexterncodeblocknode9, var_listnode10, var_listnode12, var_tkwendnode13) /* init_astdclassdef on <var37:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var37);
 var_pclassdefnode1 = var37;
 var_node_list = var_pclassdefnode1;
 var39 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction234> */
@@ -2667,15 +2402,12 @@ var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode7 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode10 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode12 = var13;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -2691,8 +2423,9 @@ var14 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11211);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10963);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -2708,8 +2441,9 @@ var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11213);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10965);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -2725,8 +2459,9 @@ var18 = var_pclasskindnode5->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11215);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10967);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -2742,8 +2477,9 @@ var21 = var_tclassidnode6->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11217);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10969);
+show_backtrace(1);
 }
 var_pexterncodeblocknode9 = var_nodearraylist7;
 /* <var_pexterncodeblocknode9:nullable Object> isa nullable AExternCodeBlock */
@@ -2759,8 +2495,9 @@ var24 = var_pexterncodeblocknode9->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11219);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10971);
+show_backtrace(1);
 }
 var_listnode11 = var_nodearraylist8;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -2776,8 +2513,9 @@ var27 = var_listnode11->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11221);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10973);
+show_backtrace(1);
 }
 var30 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction235>*/;
 var_listnode12 = var30;
@@ -2795,14 +2533,14 @@ var31 = var_tkwendnode13->type->type_table[cltype32] == idtype33;
 }
 }
 if (!var31) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11224);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 10976);
+show_backtrace(1);
 }
 var34 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var35 = NULL;
 var36 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var34, var_pdocnode2, var35, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var36, var_pexterncodeblocknode9, var_listnode10, var_listnode12, var_tkwendnode13) /* init_astdclassdef on <var34:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var34);
 var_pclassdefnode1 = var34;
 var_node_list = var_pclassdefnode1;
 var37 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction235> */
@@ -2910,15 +2648,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode7 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode10 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode12 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -2934,8 +2669,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11262);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11014);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -2951,8 +2687,9 @@ var16 = var_pvisibilitynode4->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11264);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11016);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -2968,8 +2705,9 @@ var19 = var_pclasskindnode5->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11266);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11018);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -2985,8 +2723,9 @@ var22 = var_tclassidnode6->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11268);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11020);
+show_backtrace(1);
 }
 var_pexterncodeblocknode9 = var_nodearraylist8;
 /* <var_pexterncodeblocknode9:nullable Object> isa nullable AExternCodeBlock */
@@ -3002,8 +2741,9 @@ var25 = var_pexterncodeblocknode9->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11270);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11022);
+show_backtrace(1);
 }
 var_listnode11 = var_nodearraylist9;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -3019,8 +2759,9 @@ var28 = var_listnode11->type->type_table[cltype29] == idtype30;
 }
 }
 if (!var28) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11272);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11024);
+show_backtrace(1);
 }
 var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction236>*/;
 var_listnode12 = var31;
@@ -3038,14 +2779,14 @@ var32 = var_tkwendnode13->type->type_table[cltype33] == idtype34;
 }
 }
 if (!var32) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11275);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11027);
+show_backtrace(1);
 }
 var35 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var36 = NULL;
 var37 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var35->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var35, var_pdocnode2, var36, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var37, var_pexterncodeblocknode9, var_listnode10, var_listnode12, var_tkwendnode13) /* init_astdclassdef on <var35:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var35);
 var_pclassdefnode1 = var35;
 var_node_list = var_pclassdefnode1;
 var38 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction236> */
@@ -3156,15 +2897,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode7 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode10 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode12 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -3180,8 +2918,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11313);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11065);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -3197,8 +2936,9 @@ var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11315);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11067);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -3214,8 +2954,9 @@ var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11317);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11069);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -3231,8 +2972,9 @@ var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11319);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11071);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -3248,8 +2990,9 @@ var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11321);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11073);
+show_backtrace(1);
 }
 var_pexterncodeblocknode9 = var_nodearraylist8;
 /* <var_pexterncodeblocknode9:nullable Object> isa nullable AExternCodeBlock */
@@ -3265,8 +3008,9 @@ var28 = var_pexterncodeblocknode9->type->type_table[cltype29] == idtype30;
 }
 }
 if (!var28) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11323);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11075);
+show_backtrace(1);
 }
 var_listnode11 = var_nodearraylist9;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -3282,8 +3026,9 @@ var31 = var_listnode11->type->type_table[cltype32] == idtype33;
 }
 }
 if (!var31) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11325);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11077);
+show_backtrace(1);
 }
 var34 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction238>*/;
 var_listnode12 = var34;
@@ -3301,13 +3046,13 @@ var35 = var_tkwendnode13->type->type_table[cltype36] == idtype37;
 }
 }
 if (!var35) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11328);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11080);
+show_backtrace(1);
 }
 var38 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var39 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var38->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var38, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var39, var_pexterncodeblocknode9, var_listnode10, var_listnode12, var_tkwendnode13) /* init_astdclassdef on <var38:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var38);
 var_pclassdefnode1 = var38;
 var_node_list = var_pclassdefnode1;
 var40 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction238> */
@@ -3422,15 +3167,12 @@ var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode7 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode10 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode12 = var15;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -3446,8 +3188,9 @@ var16 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11367);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11119);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -3463,8 +3206,9 @@ var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11369);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11121);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -3480,8 +3224,9 @@ var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11371);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11123);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -3497,8 +3242,9 @@ var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11373);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11125);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist8;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -3514,8 +3260,9 @@ var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11375);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11127);
+show_backtrace(1);
 }
 var_pexterncodeblocknode9 = var_nodearraylist9;
 /* <var_pexterncodeblocknode9:nullable Object> isa nullable AExternCodeBlock */
@@ -3531,8 +3278,9 @@ var29 = var_pexterncodeblocknode9->type->type_table[cltype30] == idtype31;
 }
 }
 if (!var29) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11377);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11129);
+show_backtrace(1);
 }
 var_listnode11 = var_nodearraylist10;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -3548,8 +3296,9 @@ var32 = var_listnode11->type->type_table[cltype33] == idtype34;
 }
 }
 if (!var32) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11379);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11131);
+show_backtrace(1);
 }
 var35 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction239>*/;
 var_listnode12 = var35;
@@ -3567,13 +3316,13 @@ var36 = var_tkwendnode13->type->type_table[cltype37] == idtype38;
 }
 }
 if (!var36) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11382);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11134);
+show_backtrace(1);
 }
 var39 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var40 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var39->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var39, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var40, var_pexterncodeblocknode9, var_listnode10, var_listnode12, var_tkwendnode13) /* init_astdclassdef on <var39:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var39);
 var_pclassdefnode1 = var39;
 var_node_list = var_pclassdefnode1;
 var41 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction239> */
@@ -3682,15 +3431,12 @@ var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode8 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode11 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode13 = var13;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -3706,8 +3452,9 @@ var14 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11419);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11171);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -3723,8 +3470,9 @@ var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11421);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11173);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -3740,8 +3488,9 @@ var18 = var_pclasskindnode5->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11423);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11175);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist5;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -3757,8 +3506,9 @@ var21 = var_tclassidnode6->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11425);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11177);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist6;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -3774,8 +3524,9 @@ var24 = var_listnode7->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11427);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11179);
+show_backtrace(1);
 }
 var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction241>*/;
 var_listnode8 = var27;
@@ -3793,8 +3544,9 @@ var28 = var_pexterncodeblocknode10->type->type_table[cltype29] == idtype30;
 }
 }
 if (!var28) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11430);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11182);
+show_backtrace(1);
 }
 var_listnode12 = var_nodearraylist8;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -3810,8 +3562,9 @@ var31 = var_listnode12->type->type_table[cltype32] == idtype33;
 }
 }
 if (!var31) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11432);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11184);
+show_backtrace(1);
 }
 var34 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction241>*/;
 var_listnode13 = var34;
@@ -3829,14 +3582,14 @@ var35 = var_tkwendnode14->type->type_table[cltype36] == idtype37;
 }
 }
 if (!var35) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11435);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11187);
+show_backtrace(1);
 }
 var38 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var39 = NULL;
 var40 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var38->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var38, var_pdocnode2, var39, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var40, var_pexterncodeblocknode10, var_listnode11, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var38:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var38);
 var_pclassdefnode1 = var38;
 var_node_list = var_pclassdefnode1;
 var41 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction241> */
@@ -3952,15 +3705,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode8 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode11 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode13 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -3976,8 +3726,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11473);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11225);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -3993,8 +3744,9 @@ var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11475);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11227);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -4010,8 +3762,9 @@ var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11477);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11229);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -4027,8 +3780,9 @@ var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11479);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11231);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -4044,8 +3798,9 @@ var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11481);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11233);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist7;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -4061,8 +3816,9 @@ var28 = var_listnode7->type->type_table[cltype29] == idtype30;
 }
 }
 if (!var28) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11483);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11235);
+show_backtrace(1);
 }
 var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction242>*/;
 var_listnode8 = var31;
@@ -4080,8 +3836,9 @@ var32 = var_pexterncodeblocknode10->type->type_table[cltype33] == idtype34;
 }
 }
 if (!var32) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11486);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11238);
+show_backtrace(1);
 }
 var_listnode12 = var_nodearraylist9;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -4097,8 +3854,9 @@ var35 = var_listnode12->type->type_table[cltype36] == idtype37;
 }
 }
 if (!var35) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11488);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11240);
+show_backtrace(1);
 }
 var38 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction242>*/;
 var_listnode13 = var38;
@@ -4116,13 +3874,13 @@ var39 = var_tkwendnode14->type->type_table[cltype40] == idtype41;
 }
 }
 if (!var39) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11491);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11243);
+show_backtrace(1);
 }
 var42 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var43 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var42->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var42, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var43, var_pexterncodeblocknode10, var_listnode11, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var42:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var42);
 var_pclassdefnode1 = var42;
 var_node_list = var_pclassdefnode1;
 var44 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction242> */
@@ -4235,15 +3993,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode8 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode11 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode13 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -4259,8 +4014,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11529);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11281);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -4276,8 +4032,9 @@ var16 = var_pvisibilitynode4->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11531);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11283);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -4293,8 +4050,9 @@ var19 = var_pclasskindnode5->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11533);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11285);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -4310,8 +4068,9 @@ var22 = var_tclassidnode6->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11535);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11287);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist7;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -4327,8 +4086,9 @@ var25 = var_listnode7->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11537);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11289);
+show_backtrace(1);
 }
 var28 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction243>*/;
 var_listnode8 = var28;
@@ -4346,8 +4106,9 @@ var29 = var_pexterncodeblocknode10->type->type_table[cltype30] == idtype31;
 }
 }
 if (!var29) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11540);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11292);
+show_backtrace(1);
 }
 var_listnode12 = var_nodearraylist9;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -4363,8 +4124,9 @@ var32 = var_listnode12->type->type_table[cltype33] == idtype34;
 }
 }
 if (!var32) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11542);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11294);
+show_backtrace(1);
 }
 var35 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction243>*/;
 var_listnode13 = var35;
@@ -4382,14 +4144,14 @@ var36 = var_tkwendnode14->type->type_table[cltype37] == idtype38;
 }
 }
 if (!var36) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11545);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11297);
+show_backtrace(1);
 }
 var39 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var40 = NULL;
 var41 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var39->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var39, var_pdocnode2, var40, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var41, var_pexterncodeblocknode10, var_listnode11, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var39:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var39);
 var_pclassdefnode1 = var39;
 var_node_list = var_pclassdefnode1;
 var42 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction243> */
@@ -4506,15 +4268,12 @@ var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode8 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode11 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode13 = var15;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -4530,8 +4289,9 @@ var16 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11584);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11336);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -4547,8 +4307,9 @@ var17 = var_pvisibilitynode4->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11586);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11338);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -4564,8 +4325,9 @@ var20 = var_pclasskindnode5->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11588);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11340);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -4581,8 +4343,9 @@ var23 = var_tclassidnode6->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11590);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11342);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist8;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -4598,8 +4361,9 @@ var26 = var_listnode7->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11592);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11344);
+show_backtrace(1);
 }
 var29 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction244>*/;
 var_listnode8 = var29;
@@ -4617,8 +4381,9 @@ var30 = var_pexterncodeblocknode10->type->type_table[cltype31] == idtype32;
 }
 }
 if (!var30) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11595);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11347);
+show_backtrace(1);
 }
 var_listnode12 = var_nodearraylist10;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -4634,8 +4399,9 @@ var33 = var_listnode12->type->type_table[cltype34] == idtype35;
 }
 }
 if (!var33) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11597);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11349);
+show_backtrace(1);
 }
 var36 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction244>*/;
 var_listnode13 = var36;
@@ -4653,14 +4419,14 @@ var37 = var_tkwendnode14->type->type_table[cltype38] == idtype39;
 }
 }
 if (!var37) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11600);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11352);
+show_backtrace(1);
 }
 var40 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var41 = NULL;
 var42 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var40->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var40, var_pdocnode2, var41, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var42, var_pexterncodeblocknode10, var_listnode11, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var40:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var40);
 var_pclassdefnode1 = var40;
 var_node_list = var_pclassdefnode1;
 var43 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction244> */
@@ -4780,15 +4546,12 @@ var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode8 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode11 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode13 = var15;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -4804,8 +4567,9 @@ var16 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11639);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11391);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -4821,8 +4585,9 @@ var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11641);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11393);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -4838,8 +4603,9 @@ var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11643);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11395);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -4855,8 +4621,9 @@ var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11645);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11397);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -4872,8 +4639,9 @@ var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11647);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11399);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist8;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -4889,8 +4657,9 @@ var29 = var_listnode7->type->type_table[cltype30] == idtype31;
 }
 }
 if (!var29) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11649);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11401);
+show_backtrace(1);
 }
 var32 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction246>*/;
 var_listnode8 = var32;
@@ -4908,8 +4677,9 @@ var33 = var_pexterncodeblocknode10->type->type_table[cltype34] == idtype35;
 }
 }
 if (!var33) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11652);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11404);
+show_backtrace(1);
 }
 var_listnode12 = var_nodearraylist10;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -4925,8 +4695,9 @@ var36 = var_listnode12->type->type_table[cltype37] == idtype38;
 }
 }
 if (!var36) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11654);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11406);
+show_backtrace(1);
 }
 var39 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction246>*/;
 var_listnode13 = var39;
@@ -4944,13 +4715,13 @@ var40 = var_tkwendnode14->type->type_table[cltype41] == idtype42;
 }
 }
 if (!var40) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11657);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11409);
+show_backtrace(1);
 }
 var43 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var44 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var43->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var43, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var44, var_pexterncodeblocknode10, var_listnode11, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var43:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var43);
 var_pclassdefnode1 = var43;
 var_node_list = var_pclassdefnode1;
 var45 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction246> */
@@ -5074,15 +4845,12 @@ var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode8 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode11 = var15;
 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
-CHECK_NEW_array__Array(var16);
 var_listnode13 = var16;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -5098,8 +4866,9 @@ var17 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11697);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11449);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -5115,8 +4884,9 @@ var18 = var_tkwredefnode3->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11699);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11451);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -5132,8 +4902,9 @@ var21 = var_pvisibilitynode4->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11701);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11453);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -5149,8 +4920,9 @@ var24 = var_pclasskindnode5->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11703);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11455);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist8;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -5166,8 +4938,9 @@ var27 = var_tclassidnode6->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11705);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11457);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist9;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -5183,8 +4956,9 @@ var30 = var_listnode7->type->type_table[cltype31] == idtype32;
 }
 }
 if (!var30) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11707);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11459);
+show_backtrace(1);
 }
 var33 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction247>*/;
 var_listnode8 = var33;
@@ -5202,8 +4976,9 @@ var34 = var_pexterncodeblocknode10->type->type_table[cltype35] == idtype36;
 }
 }
 if (!var34) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11710);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11462);
+show_backtrace(1);
 }
 var_listnode12 = var_nodearraylist11;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -5219,8 +4994,9 @@ var37 = var_listnode12->type->type_table[cltype38] == idtype39;
 }
 }
 if (!var37) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11712);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11464);
+show_backtrace(1);
 }
 var40 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction247>*/;
 var_listnode13 = var40;
@@ -5238,13 +5014,13 @@ var41 = var_tkwendnode14->type->type_table[cltype42] == idtype43;
 }
 }
 if (!var41) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11715);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11467);
+show_backtrace(1);
 }
 var44 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var45 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var44->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var44, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var45, var_pexterncodeblocknode10, var_listnode11, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var44:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var44);
 var_pclassdefnode1 = var44;
 var_node_list = var_pclassdefnode1;
 var46 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction247> */
@@ -5359,15 +5135,12 @@ var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode7 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode15 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode17 = var13;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -5383,8 +5156,9 @@ var14 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11752);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11504);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -5400,8 +5174,9 @@ var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11754);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11506);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -5417,8 +5192,9 @@ var18 = var_pclasskindnode5->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11756);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11508);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist5;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -5434,12 +5210,12 @@ var21 = var_tclassidnode6->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11758);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11510);
+show_backtrace(1);
 }
 var24 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var24->class->vft[COLOR_array__Array__init]))(var24) /* init on <var24:Array[Object]>*/;
-CHECK_NEW_array__Array(var24);
 var_listnode12 = var24;
 var_listnode11 = var_nodearraylist6;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -5455,8 +5231,9 @@ var25 = var_listnode11->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11761);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11513);
+show_backtrace(1);
 }
 var28 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction249>*/;
 var_listnode12 = var28;
@@ -5465,7 +5242,6 @@ var30 = NULL;
 var31 = NULL;
 var32 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var29, var30, var31, var_listnode12, var32) /* init_aannotations on <var29:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var29);
 var_pannotationsnode8 = var29;
 var_pexterncodeblocknode14 = var_nodearraylist7;
 /* <var_pexterncodeblocknode14:nullable Object> isa nullable AExternCodeBlock */
@@ -5481,8 +5257,9 @@ var33 = var_pexterncodeblocknode14->type->type_table[cltype34] == idtype35;
 }
 }
 if (!var33) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11770);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11522);
+show_backtrace(1);
 }
 var_listnode16 = var_nodearraylist8;
 /* <var_listnode16:nullable Object> isa Array[Object] */
@@ -5498,8 +5275,9 @@ var36 = var_listnode16->type->type_table[cltype37] == idtype38;
 }
 }
 if (!var36) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11772);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11524);
+show_backtrace(1);
 }
 var39 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction249>*/;
 var_listnode17 = var39;
@@ -5517,13 +5295,13 @@ var40 = var_tkwendnode18->type->type_table[cltype41] == idtype42;
 }
 }
 if (!var40) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11775);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11527);
+show_backtrace(1);
 }
 var43 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var44 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var43->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var43, var_pdocnode2, var44, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode15, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var43:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var43);
 var_pclassdefnode1 = var43;
 var_node_list = var_pclassdefnode1;
 var45 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction249> */
@@ -5645,15 +5423,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode7 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode15 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode17 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -5669,8 +5444,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11813);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11565);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -5686,8 +5462,9 @@ var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11815);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11567);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -5703,8 +5480,9 @@ var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11817);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11569);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -5720,8 +5498,9 @@ var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11819);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11571);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -5737,12 +5516,12 @@ var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11821);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11573);
+show_backtrace(1);
 }
 var28 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var28->class->vft[COLOR_array__Array__init]))(var28) /* init on <var28:Array[Object]>*/;
-CHECK_NEW_array__Array(var28);
 var_listnode12 = var28;
 var_listnode11 = var_nodearraylist7;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -5758,8 +5537,9 @@ var29 = var_listnode11->type->type_table[cltype30] == idtype31;
 }
 }
 if (!var29) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11824);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11576);
+show_backtrace(1);
 }
 var32 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction250>*/;
 var_listnode12 = var32;
@@ -5768,7 +5548,6 @@ var34 = NULL;
 var35 = NULL;
 var36 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var33->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var33, var34, var35, var_listnode12, var36) /* init_aannotations on <var33:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var33);
 var_pannotationsnode8 = var33;
 var_pexterncodeblocknode14 = var_nodearraylist8;
 /* <var_pexterncodeblocknode14:nullable Object> isa nullable AExternCodeBlock */
@@ -5784,8 +5563,9 @@ var37 = var_pexterncodeblocknode14->type->type_table[cltype38] == idtype39;
 }
 }
 if (!var37) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11833);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11585);
+show_backtrace(1);
 }
 var_listnode16 = var_nodearraylist9;
 /* <var_listnode16:nullable Object> isa Array[Object] */
@@ -5801,8 +5581,9 @@ var40 = var_listnode16->type->type_table[cltype41] == idtype42;
 }
 }
 if (!var40) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11835);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11587);
+show_backtrace(1);
 }
 var43 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction250>*/;
 var_listnode17 = var43;
@@ -5820,12 +5601,12 @@ var44 = var_tkwendnode18->type->type_table[cltype45] == idtype46;
 }
 }
 if (!var44) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11838);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11590);
+show_backtrace(1);
 }
 var47 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var47->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var47, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode15, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var47:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var47);
 var_pclassdefnode1 = var47;
 var_node_list = var_pclassdefnode1;
 var48 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction250> */
@@ -5944,15 +5725,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode7 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode15 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode17 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -5968,8 +5746,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11876);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11628);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -5985,8 +5764,9 @@ var16 = var_pvisibilitynode4->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11878);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11630);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -6002,8 +5782,9 @@ var19 = var_pclasskindnode5->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11880);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11632);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -6019,12 +5800,12 @@ var22 = var_tclassidnode6->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11882);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11634);
+show_backtrace(1);
 }
 var25 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var25->class->vft[COLOR_array__Array__init]))(var25) /* init on <var25:Array[Object]>*/;
-CHECK_NEW_array__Array(var25);
 var_listnode12 = var25;
 var_listnode11 = var_nodearraylist7;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -6040,8 +5821,9 @@ var26 = var_listnode11->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11885);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11637);
+show_backtrace(1);
 }
 var29 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction251>*/;
 var_listnode12 = var29;
@@ -6050,7 +5832,6 @@ var31 = NULL;
 var32 = NULL;
 var33 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var30->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var30, var31, var32, var_listnode12, var33) /* init_aannotations on <var30:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var30);
 var_pannotationsnode8 = var30;
 var_pexterncodeblocknode14 = var_nodearraylist8;
 /* <var_pexterncodeblocknode14:nullable Object> isa nullable AExternCodeBlock */
@@ -6066,8 +5847,9 @@ var34 = var_pexterncodeblocknode14->type->type_table[cltype35] == idtype36;
 }
 }
 if (!var34) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11894);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11646);
+show_backtrace(1);
 }
 var_listnode16 = var_nodearraylist9;
 /* <var_listnode16:nullable Object> isa Array[Object] */
@@ -6083,8 +5865,9 @@ var37 = var_listnode16->type->type_table[cltype38] == idtype39;
 }
 }
 if (!var37) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11896);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11648);
+show_backtrace(1);
 }
 var40 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction251>*/;
 var_listnode17 = var40;
@@ -6102,13 +5885,13 @@ var41 = var_tkwendnode18->type->type_table[cltype42] == idtype43;
 }
 }
 if (!var41) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11899);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11651);
+show_backtrace(1);
 }
 var44 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var45 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var44->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var44, var_pdocnode2, var45, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode15, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var44:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var44);
 var_pclassdefnode1 = var44;
 var_node_list = var_pclassdefnode1;
 var46 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction251> */
@@ -6231,15 +6014,12 @@ var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode7 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode15 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode17 = var15;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -6255,8 +6035,9 @@ var16 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11938);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11690);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -6272,8 +6053,9 @@ var17 = var_pvisibilitynode4->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11940);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11692);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -6289,8 +6071,9 @@ var20 = var_pclasskindnode5->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11942);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11694);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -6306,12 +6089,12 @@ var23 = var_tclassidnode6->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11944);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11696);
+show_backtrace(1);
 }
 var26 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var26->class->vft[COLOR_array__Array__init]))(var26) /* init on <var26:Array[Object]>*/;
-CHECK_NEW_array__Array(var26);
 var_listnode12 = var26;
 var_listnode11 = var_nodearraylist8;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -6327,8 +6110,9 @@ var27 = var_listnode11->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11947);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11699);
+show_backtrace(1);
 }
 var30 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction252>*/;
 var_listnode12 = var30;
@@ -6337,7 +6121,6 @@ var32 = NULL;
 var33 = NULL;
 var34 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var31, var32, var33, var_listnode12, var34) /* init_aannotations on <var31:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var31);
 var_pannotationsnode8 = var31;
 var_pexterncodeblocknode14 = var_nodearraylist9;
 /* <var_pexterncodeblocknode14:nullable Object> isa nullable AExternCodeBlock */
@@ -6353,8 +6136,9 @@ var35 = var_pexterncodeblocknode14->type->type_table[cltype36] == idtype37;
 }
 }
 if (!var35) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11956);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11708);
+show_backtrace(1);
 }
 var_listnode16 = var_nodearraylist10;
 /* <var_listnode16:nullable Object> isa Array[Object] */
@@ -6370,8 +6154,9 @@ var38 = var_listnode16->type->type_table[cltype39] == idtype40;
 }
 }
 if (!var38) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11958);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11710);
+show_backtrace(1);
 }
 var41 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction252>*/;
 var_listnode17 = var41;
@@ -6389,13 +6174,13 @@ var42 = var_tkwendnode18->type->type_table[cltype43] == idtype44;
 }
 }
 if (!var42) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 11961);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11713);
+show_backtrace(1);
 }
 var45 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var46 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var45->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var45, var_pdocnode2, var46, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode15, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var45:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var45);
 var_pclassdefnode1 = var45;
 var_node_list = var_pclassdefnode1;
 var47 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction252> */
@@ -6521,15 +6306,12 @@ var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode7 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode15 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode17 = var15;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -6545,8 +6327,9 @@ var16 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12000);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11752);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -6562,8 +6345,9 @@ var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12002);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11754);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -6579,8 +6363,9 @@ var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12004);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11756);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -6596,8 +6381,9 @@ var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12006);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11758);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -6613,12 +6399,12 @@ var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12008);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11760);
+show_backtrace(1);
 }
 var29 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var29->class->vft[COLOR_array__Array__init]))(var29) /* init on <var29:Array[Object]>*/;
-CHECK_NEW_array__Array(var29);
 var_listnode12 = var29;
 var_listnode11 = var_nodearraylist8;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -6634,8 +6420,9 @@ var30 = var_listnode11->type->type_table[cltype31] == idtype32;
 }
 }
 if (!var30) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12011);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11763);
+show_backtrace(1);
 }
 var33 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction254>*/;
 var_listnode12 = var33;
@@ -6644,7 +6431,6 @@ var35 = NULL;
 var36 = NULL;
 var37 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var34, var35, var36, var_listnode12, var37) /* init_aannotations on <var34:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var34);
 var_pannotationsnode8 = var34;
 var_pexterncodeblocknode14 = var_nodearraylist9;
 /* <var_pexterncodeblocknode14:nullable Object> isa nullable AExternCodeBlock */
@@ -6660,8 +6446,9 @@ var38 = var_pexterncodeblocknode14->type->type_table[cltype39] == idtype40;
 }
 }
 if (!var38) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12020);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11772);
+show_backtrace(1);
 }
 var_listnode16 = var_nodearraylist10;
 /* <var_listnode16:nullable Object> isa Array[Object] */
@@ -6677,8 +6464,9 @@ var41 = var_listnode16->type->type_table[cltype42] == idtype43;
 }
 }
 if (!var41) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12022);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11774);
+show_backtrace(1);
 }
 var44 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction254>*/;
 var_listnode17 = var44;
@@ -6696,12 +6484,12 @@ var45 = var_tkwendnode18->type->type_table[cltype46] == idtype47;
 }
 }
 if (!var45) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12025);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11777);
+show_backtrace(1);
 }
 var48 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var48->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var48, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode15, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var48:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var48);
 var_pclassdefnode1 = var48;
 var_node_list = var_pclassdefnode1;
 var49 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction254> */
@@ -6831,15 +6619,12 @@ var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode7 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode15 = var15;
 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
-CHECK_NEW_array__Array(var16);
 var_listnode17 = var16;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -6855,8 +6640,9 @@ var17 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12065);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11817);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -6872,8 +6658,9 @@ var18 = var_tkwredefnode3->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12067);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11819);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -6889,8 +6676,9 @@ var21 = var_pvisibilitynode4->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12069);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11821);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -6906,8 +6694,9 @@ var24 = var_pclasskindnode5->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12071);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11823);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist8;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -6923,12 +6712,12 @@ var27 = var_tclassidnode6->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12073);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11825);
+show_backtrace(1);
 }
 var30 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var30->class->vft[COLOR_array__Array__init]))(var30) /* init on <var30:Array[Object]>*/;
-CHECK_NEW_array__Array(var30);
 var_listnode12 = var30;
 var_listnode11 = var_nodearraylist9;
 /* <var_listnode11:nullable Object> isa Array[Object] */
@@ -6944,8 +6733,9 @@ var31 = var_listnode11->type->type_table[cltype32] == idtype33;
 }
 }
 if (!var31) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12076);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11828);
+show_backtrace(1);
 }
 var34 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction255>*/;
 var_listnode12 = var34;
@@ -6954,7 +6744,6 @@ var36 = NULL;
 var37 = NULL;
 var38 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var35->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var35, var36, var37, var_listnode12, var38) /* init_aannotations on <var35:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var35);
 var_pannotationsnode8 = var35;
 var_pexterncodeblocknode14 = var_nodearraylist10;
 /* <var_pexterncodeblocknode14:nullable Object> isa nullable AExternCodeBlock */
@@ -6970,8 +6759,9 @@ var39 = var_pexterncodeblocknode14->type->type_table[cltype40] == idtype41;
 }
 }
 if (!var39) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12085);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11837);
+show_backtrace(1);
 }
 var_listnode16 = var_nodearraylist11;
 /* <var_listnode16:nullable Object> isa Array[Object] */
@@ -6987,8 +6777,9 @@ var42 = var_listnode16->type->type_table[cltype43] == idtype44;
 }
 }
 if (!var42) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12087);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11839);
+show_backtrace(1);
 }
 var45 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction255>*/;
 var_listnode17 = var45;
@@ -7006,12 +6797,12 @@ var46 = var_tkwendnode18->type->type_table[cltype47] == idtype48;
 }
 }
 if (!var46) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12090);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11842);
+show_backtrace(1);
 }
 var49 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var49->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var49, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode15, var_listnode17, var_tkwendnode18) /* init_astdclassdef on <var49:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var49);
 var_pclassdefnode1 = var49;
 var_node_list = var_pclassdefnode1;
 var50 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction255> */
@@ -7135,15 +6926,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode8 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode16 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode18 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -7159,8 +6947,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12128);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11880);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -7176,8 +6965,9 @@ var16 = var_pvisibilitynode4->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12130);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11882);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -7193,8 +6983,9 @@ var19 = var_pclasskindnode5->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12132);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11884);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist5;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -7210,8 +7001,9 @@ var22 = var_tclassidnode6->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12134);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11886);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist6;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -7227,14 +7019,14 @@ var25 = var_listnode7->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12136);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11888);
+show_backtrace(1);
 }
 var28 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction257>*/;
 var_listnode8 = var28;
 var29 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var29->class->vft[COLOR_array__Array__init]))(var29) /* init on <var29:Array[Object]>*/;
-CHECK_NEW_array__Array(var29);
 var_listnode13 = var29;
 var_listnode12 = var_nodearraylist7;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -7250,8 +7042,9 @@ var30 = var_listnode12->type->type_table[cltype31] == idtype32;
 }
 }
 if (!var30) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12140);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11892);
+show_backtrace(1);
 }
 var33 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction257>*/;
 var_listnode13 = var33;
@@ -7260,7 +7053,6 @@ var35 = NULL;
 var36 = NULL;
 var37 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var34, var35, var36, var_listnode13, var37) /* init_aannotations on <var34:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var34);
 var_pannotationsnode9 = var34;
 var_pexterncodeblocknode15 = var_nodearraylist8;
 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
@@ -7276,8 +7068,9 @@ var38 = var_pexterncodeblocknode15->type->type_table[cltype39] == idtype40;
 }
 }
 if (!var38) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12149);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11901);
+show_backtrace(1);
 }
 var_listnode17 = var_nodearraylist9;
 /* <var_listnode17:nullable Object> isa Array[Object] */
@@ -7293,8 +7086,9 @@ var41 = var_listnode17->type->type_table[cltype42] == idtype43;
 }
 }
 if (!var41) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12151);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11903);
+show_backtrace(1);
 }
 var44 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode18, var_listnode17) /* concat on <self:ReduceAction257>*/;
 var_listnode18 = var44;
@@ -7312,13 +7106,13 @@ var45 = var_tkwendnode19->type->type_table[cltype46] == idtype47;
 }
 }
 if (!var45) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12154);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11906);
+show_backtrace(1);
 }
 var48 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var49 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var48->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var48, var_pdocnode2, var49, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode16, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var48:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var48);
 var_pclassdefnode1 = var48;
 var_node_list = var_pclassdefnode1;
 var50 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction257> */
@@ -7449,15 +7243,12 @@ var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode8 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode16 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode18 = var15;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -7473,8 +7264,9 @@ var16 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12193);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11945);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -7490,8 +7282,9 @@ var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12195);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11947);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -7507,8 +7300,9 @@ var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12197);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11949);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -7524,8 +7318,9 @@ var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12199);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11951);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -7541,8 +7336,9 @@ var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12201);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11953);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist7;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -7558,14 +7354,14 @@ var29 = var_listnode7->type->type_table[cltype30] == idtype31;
 }
 }
 if (!var29) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12203);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11955);
+show_backtrace(1);
 }
 var32 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction258>*/;
 var_listnode8 = var32;
 var33 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var33->class->vft[COLOR_array__Array__init]))(var33) /* init on <var33:Array[Object]>*/;
-CHECK_NEW_array__Array(var33);
 var_listnode13 = var33;
 var_listnode12 = var_nodearraylist8;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -7581,8 +7377,9 @@ var34 = var_listnode12->type->type_table[cltype35] == idtype36;
 }
 }
 if (!var34) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12207);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11959);
+show_backtrace(1);
 }
 var37 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction258>*/;
 var_listnode13 = var37;
@@ -7591,7 +7388,6 @@ var39 = NULL;
 var40 = NULL;
 var41 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var38->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var38, var39, var40, var_listnode13, var41) /* init_aannotations on <var38:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var38);
 var_pannotationsnode9 = var38;
 var_pexterncodeblocknode15 = var_nodearraylist9;
 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
@@ -7607,8 +7403,9 @@ var42 = var_pexterncodeblocknode15->type->type_table[cltype43] == idtype44;
 }
 }
 if (!var42) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12216);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11968);
+show_backtrace(1);
 }
 var_listnode17 = var_nodearraylist10;
 /* <var_listnode17:nullable Object> isa Array[Object] */
@@ -7624,8 +7421,9 @@ var45 = var_listnode17->type->type_table[cltype46] == idtype47;
 }
 }
 if (!var45) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12218);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11970);
+show_backtrace(1);
 }
 var48 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode18, var_listnode17) /* concat on <self:ReduceAction258>*/;
 var_listnode18 = var48;
@@ -7643,12 +7441,12 @@ var49 = var_tkwendnode19->type->type_table[cltype50] == idtype51;
 }
 }
 if (!var49) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12221);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 11973);
+show_backtrace(1);
 }
 var52 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var52->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var52, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode16, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var52:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var52);
 var_pclassdefnode1 = var52;
 var_node_list = var_pclassdefnode1;
 var53 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction258> */
@@ -7776,15 +7574,12 @@ var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode8 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode16 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode18 = var15;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -7800,8 +7595,9 @@ var16 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12260);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12012);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -7817,8 +7613,9 @@ var17 = var_pvisibilitynode4->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12262);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12014);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -7834,8 +7631,9 @@ var20 = var_pclasskindnode5->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12264);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12016);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -7851,8 +7649,9 @@ var23 = var_tclassidnode6->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12266);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12018);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist7;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -7868,14 +7667,14 @@ var26 = var_listnode7->type->type_table[cltype27] == idtype28;
 }
 }
 if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12268);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12020);
+show_backtrace(1);
 }
 var29 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction259>*/;
 var_listnode8 = var29;
 var30 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var30->class->vft[COLOR_array__Array__init]))(var30) /* init on <var30:Array[Object]>*/;
-CHECK_NEW_array__Array(var30);
 var_listnode13 = var30;
 var_listnode12 = var_nodearraylist8;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -7891,8 +7690,9 @@ var31 = var_listnode12->type->type_table[cltype32] == idtype33;
 }
 }
 if (!var31) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12272);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12024);
+show_backtrace(1);
 }
 var34 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction259>*/;
 var_listnode13 = var34;
@@ -7901,7 +7701,6 @@ var36 = NULL;
 var37 = NULL;
 var38 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var35->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var35, var36, var37, var_listnode13, var38) /* init_aannotations on <var35:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var35);
 var_pannotationsnode9 = var35;
 var_pexterncodeblocknode15 = var_nodearraylist9;
 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
@@ -7917,8 +7716,9 @@ var39 = var_pexterncodeblocknode15->type->type_table[cltype40] == idtype41;
 }
 }
 if (!var39) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12281);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12033);
+show_backtrace(1);
 }
 var_listnode17 = var_nodearraylist10;
 /* <var_listnode17:nullable Object> isa Array[Object] */
@@ -7934,8 +7734,9 @@ var42 = var_listnode17->type->type_table[cltype43] == idtype44;
 }
 }
 if (!var42) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12283);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12035);
+show_backtrace(1);
 }
 var45 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode18, var_listnode17) /* concat on <self:ReduceAction259>*/;
 var_listnode18 = var45;
@@ -7953,13 +7754,13 @@ var46 = var_tkwendnode19->type->type_table[cltype47] == idtype48;
 }
 }
 if (!var46) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12286);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12038);
+show_backtrace(1);
 }
 var49 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var50 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var49->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var49, var_pdocnode2, var50, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode16, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var49:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var49);
 var_pclassdefnode1 = var49;
 var_node_list = var_pclassdefnode1;
 var51 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction259> */
@@ -8091,15 +7892,12 @@ var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode8 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode16 = var15;
 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
-CHECK_NEW_array__Array(var16);
 var_listnode18 = var16;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -8115,8 +7913,9 @@ var17 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12326);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12078);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -8132,8 +7931,9 @@ var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12328);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12080);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -8149,8 +7949,9 @@ var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12330);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12082);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -8166,8 +7967,9 @@ var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12332);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12084);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist8;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -8183,14 +7985,14 @@ var27 = var_listnode7->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12334);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12086);
+show_backtrace(1);
 }
 var30 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction260>*/;
 var_listnode8 = var30;
 var31 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var31->class->vft[COLOR_array__Array__init]))(var31) /* init on <var31:Array[Object]>*/;
-CHECK_NEW_array__Array(var31);
 var_listnode13 = var31;
 var_listnode12 = var_nodearraylist9;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -8206,8 +8008,9 @@ var32 = var_listnode12->type->type_table[cltype33] == idtype34;
 }
 }
 if (!var32) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12338);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12090);
+show_backtrace(1);
 }
 var35 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction260>*/;
 var_listnode13 = var35;
@@ -8216,7 +8019,6 @@ var37 = NULL;
 var38 = NULL;
 var39 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var36->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var36, var37, var38, var_listnode13, var39) /* init_aannotations on <var36:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var36);
 var_pannotationsnode9 = var36;
 var_pexterncodeblocknode15 = var_nodearraylist10;
 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
@@ -8232,8 +8034,9 @@ var40 = var_pexterncodeblocknode15->type->type_table[cltype41] == idtype42;
 }
 }
 if (!var40) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12347);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12099);
+show_backtrace(1);
 }
 var_listnode17 = var_nodearraylist11;
 /* <var_listnode17:nullable Object> isa Array[Object] */
@@ -8249,8 +8052,9 @@ var43 = var_listnode17->type->type_table[cltype44] == idtype45;
 }
 }
 if (!var43) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12349);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12101);
+show_backtrace(1);
 }
 var46 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode18, var_listnode17) /* concat on <self:ReduceAction260>*/;
 var_listnode18 = var46;
@@ -8268,13 +8072,13 @@ var47 = var_tkwendnode19->type->type_table[cltype48] == idtype49;
 }
 }
 if (!var47) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12352);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12104);
+show_backtrace(1);
 }
 var50 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var51 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var50->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var50, var_pdocnode2, var51, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode16, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var50:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var50);
 var_pclassdefnode1 = var50;
 var_node_list = var_pclassdefnode1;
 var52 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction260> */
@@ -8409,15 +8213,12 @@ var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode8 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode16 = var15;
 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
-CHECK_NEW_array__Array(var16);
 var_listnode18 = var16;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -8433,8 +8234,9 @@ var17 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12392);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12144);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -8450,8 +8252,9 @@ var18 = var_tkwredefnode3->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12394);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12146);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -8467,8 +8270,9 @@ var21 = var_pvisibilitynode4->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12396);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12148);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -8484,8 +8288,9 @@ var24 = var_pclasskindnode5->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12398);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12150);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -8501,8 +8306,9 @@ var27 = var_tclassidnode6->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12400);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12152);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist8;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -8518,14 +8324,14 @@ var30 = var_listnode7->type->type_table[cltype31] == idtype32;
 }
 }
 if (!var30) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12402);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12154);
+show_backtrace(1);
 }
 var33 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction262>*/;
 var_listnode8 = var33;
 var34 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var34->class->vft[COLOR_array__Array__init]))(var34) /* init on <var34:Array[Object]>*/;
-CHECK_NEW_array__Array(var34);
 var_listnode13 = var34;
 var_listnode12 = var_nodearraylist9;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -8541,8 +8347,9 @@ var35 = var_listnode12->type->type_table[cltype36] == idtype37;
 }
 }
 if (!var35) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12406);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12158);
+show_backtrace(1);
 }
 var38 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction262>*/;
 var_listnode13 = var38;
@@ -8551,7 +8358,6 @@ var40 = NULL;
 var41 = NULL;
 var42 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var39->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var39, var40, var41, var_listnode13, var42) /* init_aannotations on <var39:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var39);
 var_pannotationsnode9 = var39;
 var_pexterncodeblocknode15 = var_nodearraylist10;
 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
@@ -8567,8 +8373,9 @@ var43 = var_pexterncodeblocknode15->type->type_table[cltype44] == idtype45;
 }
 }
 if (!var43) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12415);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12167);
+show_backtrace(1);
 }
 var_listnode17 = var_nodearraylist11;
 /* <var_listnode17:nullable Object> isa Array[Object] */
@@ -8584,8 +8391,9 @@ var46 = var_listnode17->type->type_table[cltype47] == idtype48;
 }
 }
 if (!var46) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12417);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12169);
+show_backtrace(1);
 }
 var49 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode18, var_listnode17) /* concat on <self:ReduceAction262>*/;
 var_listnode18 = var49;
@@ -8603,12 +8411,12 @@ var50 = var_tkwendnode19->type->type_table[cltype51] == idtype52;
 }
 }
 if (!var50) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12420);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12172);
+show_backtrace(1);
 }
 var53 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var53->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var53, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode16, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var53:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var53);
 var_pclassdefnode1 = var53;
 var_node_list = var_pclassdefnode1;
 var54 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction262> */
@@ -8747,15 +8555,12 @@ var14 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var14;
 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
-CHECK_NEW_array__Array(var15);
 var_listnode8 = var15;
 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
-CHECK_NEW_array__Array(var16);
 var_listnode16 = var16;
 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
-CHECK_NEW_array__Array(var17);
 var_listnode18 = var17;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -8771,8 +8576,9 @@ var18 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12461);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12213);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -8788,8 +8594,9 @@ var19 = var_tkwredefnode3->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12463);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12215);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -8805,8 +8612,9 @@ var22 = var_pvisibilitynode4->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12465);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12217);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -8822,8 +8630,9 @@ var25 = var_pclasskindnode5->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12467);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12219);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist8;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -8839,8 +8648,9 @@ var28 = var_tclassidnode6->type->type_table[cltype29] == idtype30;
 }
 }
 if (!var28) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12469);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12221);
+show_backtrace(1);
 }
 var_listnode7 = var_nodearraylist9;
 /* <var_listnode7:nullable Object> isa Array[Object] */
@@ -8856,14 +8666,14 @@ var31 = var_listnode7->type->type_table[cltype32] == idtype33;
 }
 }
 if (!var31) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12471);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12223);
+show_backtrace(1);
 }
 var34 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction263>*/;
 var_listnode8 = var34;
 var35 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var35->class->vft[COLOR_array__Array__init]))(var35) /* init on <var35:Array[Object]>*/;
-CHECK_NEW_array__Array(var35);
 var_listnode13 = var35;
 var_listnode12 = var_nodearraylist10;
 /* <var_listnode12:nullable Object> isa Array[Object] */
@@ -8879,8 +8689,9 @@ var36 = var_listnode12->type->type_table[cltype37] == idtype38;
 }
 }
 if (!var36) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12475);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12227);
+show_backtrace(1);
 }
 var39 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction263>*/;
 var_listnode13 = var39;
@@ -8889,7 +8700,6 @@ var41 = NULL;
 var42 = NULL;
 var43 = NULL;
 ((void (*)(val*, val*, val*, val*, val*))(var40->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var40, var41, var42, var_listnode13, var43) /* init_aannotations on <var40:AAnnotations>*/;
-CHECK_NEW_parser_nodes__AAnnotations(var40);
 var_pannotationsnode9 = var40;
 var_pexterncodeblocknode15 = var_nodearraylist11;
 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
@@ -8905,8 +8715,9 @@ var44 = var_pexterncodeblocknode15->type->type_table[cltype45] == idtype46;
 }
 }
 if (!var44) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12484);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12236);
+show_backtrace(1);
 }
 var_listnode17 = var_nodearraylist12;
 /* <var_listnode17:nullable Object> isa Array[Object] */
@@ -8922,8 +8733,9 @@ var47 = var_listnode17->type->type_table[cltype48] == idtype49;
 }
 }
 if (!var47) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12486);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12238);
+show_backtrace(1);
 }
 var50 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode18, var_listnode17) /* concat on <self:ReduceAction263>*/;
 var_listnode18 = var50;
@@ -8941,12 +8753,12 @@ var51 = var_tkwendnode19->type->type_table[cltype52] == idtype53;
 }
 }
 if (!var51) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12489);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12241);
+show_backtrace(1);
 }
 var54 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var54->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var54, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode16, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var54:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var54);
 var_pclassdefnode1 = var54;
 var_node_list = var_pclassdefnode1;
 var55 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction263> */
@@ -9048,15 +8860,12 @@ var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /
 var_nodearraylist1 = var9;
 var10 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on <var10:Array[Object]>*/;
-CHECK_NEW_array__Array(var10);
 var_listnode7 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode11 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode13 = var12;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -9072,8 +8881,9 @@ var13 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var13) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12525);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12277);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -9089,8 +8899,9 @@ var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12527);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12279);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -9106,8 +8917,9 @@ var17 = var_pclasskindnode5->type->type_table[cltype18] == idtype19;
 }
 }
 if (!var17) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12529);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12281);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist5;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -9123,8 +8935,9 @@ var20 = var_tclassidnode6->type->type_table[cltype21] == idtype22;
 }
 }
 if (!var20) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12531);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12283);
+show_backtrace(1);
 }
 var_listnode10 = var_nodearraylist6;
 /* <var_listnode10:nullable Object> isa Array[Object] */
@@ -9140,8 +8953,9 @@ var23 = var_listnode10->type->type_table[cltype24] == idtype25;
 }
 }
 if (!var23) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12533);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12285);
+show_backtrace(1);
 }
 var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode10) /* concat on <self:ReduceAction265>*/;
 var_listnode11 = var26;
@@ -9159,8 +8973,9 @@ var27 = var_listnode12->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12536);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12288);
+show_backtrace(1);
 }
 var30 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction265>*/;
 var_listnode13 = var30;
@@ -9178,15 +8993,15 @@ var31 = var_tkwendnode14->type->type_table[cltype32] == idtype33;
 }
 }
 if (!var31) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12539);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12291);
+show_backtrace(1);
 }
 var34 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var35 = NULL;
 var36 = NULL;
 var37 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var34, var_pdocnode2, var35, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var36, var37, var_listnode11, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var34:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var34);
 var_pclassdefnode1 = var34;
 var_node_list = var_pclassdefnode1;
 var38 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction265> */
@@ -9295,15 +9110,12 @@ var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode7 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode11 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode13 = var13;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -9319,8 +9131,9 @@ var14 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12576);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12328);
+show_backtrace(1);
 }
 var_tkwredefnode3 = var_nodearraylist2;
 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
@@ -9336,8 +9149,9 @@ var15 = var_tkwredefnode3->type->type_table[cltype16] == idtype17;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12578);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12330);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist3;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -9353,8 +9167,9 @@ var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12580);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12332);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist4;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -9370,8 +9185,9 @@ var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12582);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12334);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -9387,8 +9203,9 @@ var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12584);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12336);
+show_backtrace(1);
 }
 var_listnode10 = var_nodearraylist7;
 /* <var_listnode10:nullable Object> isa Array[Object] */
@@ -9404,8 +9221,9 @@ var27 = var_listnode10->type->type_table[cltype28] == idtype29;
 }
 }
 if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12586);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12338);
+show_backtrace(1);
 }
 var30 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode10) /* concat on <self:ReduceAction266>*/;
 var_listnode11 = var30;
@@ -9423,8 +9241,9 @@ var31 = var_listnode12->type->type_table[cltype32] == idtype33;
 }
 }
 if (!var31) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12589);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12341);
+show_backtrace(1);
 }
 var34 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction266>*/;
 var_listnode13 = var34;
@@ -9442,14 +9261,14 @@ var35 = var_tkwendnode14->type->type_table[cltype36] == idtype37;
 }
 }
 if (!var35) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12592);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12344);
+show_backtrace(1);
 }
 var38 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var39 = NULL;
 var40 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var38->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var38, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var39, var40, var_listnode11, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var38:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var38);
 var_pclassdefnode1 = var38;
 var_node_list = var_pclassdefnode1;
 var41 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction266> */
@@ -9555,15 +9374,12 @@ var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var10;
 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
-CHECK_NEW_array__Array(var11);
 var_listnode7 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode11 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode13 = var13;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -9579,8 +9395,9 @@ var14 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12629);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12381);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -9596,8 +9413,9 @@ var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12631);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12383);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -9613,8 +9431,9 @@ var18 = var_pclasskindnode5->type->type_table[cltype19] == idtype20;
 }
 }
 if (!var18) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12633);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12385);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist6;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -9630,8 +9449,9 @@ var21 = var_tclassidnode6->type->type_table[cltype22] == idtype23;
 }
 }
 if (!var21) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12635);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12387);
+show_backtrace(1);
 }
 var_listnode10 = var_nodearraylist7;
 /* <var_listnode10:nullable Object> isa Array[Object] */
@@ -9647,8 +9467,9 @@ var24 = var_listnode10->type->type_table[cltype25] == idtype26;
 }
 }
 if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12637);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12389);
+show_backtrace(1);
 }
 var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode10) /* concat on <self:ReduceAction267>*/;
 var_listnode11 = var27;
@@ -9666,8 +9487,9 @@ var28 = var_listnode12->type->type_table[cltype29] == idtype30;
 }
 }
 if (!var28) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12640);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12392);
+show_backtrace(1);
 }
 var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction267>*/;
 var_listnode13 = var31;
@@ -9685,15 +9507,15 @@ var32 = var_tkwendnode14->type->type_table[cltype33] == idtype34;
 }
 }
 if (!var32) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12643);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12395);
+show_backtrace(1);
 }
 var35 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var36 = NULL;
 var37 = NULL;
 var38 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var35->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var35, var_pdocnode2, var36, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var37, var38, var_listnode11, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var35:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var35);
 var_pclassdefnode1 = var35;
 var_node_list = var_pclassdefnode1;
 var39 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction267> */
@@ -9803,15 +9625,12 @@ var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p)
 var_nodearraylist1 = var11;
 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
-CHECK_NEW_array__Array(var12);
 var_listnode7 = var12;
 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
-CHECK_NEW_array__Array(var13);
 var_listnode11 = var13;
 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
-CHECK_NEW_array__Array(var14);
 var_listnode13 = var14;
 var_pdocnode2 = var_nodearraylist1;
 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
@@ -9827,8 +9646,9 @@ var15 = var_pdocnode2->type->type_table[cltype] == idtype;
 }
 }
 if (!var15) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12681);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12433);
+show_backtrace(1);
 }
 var_pvisibilitynode4 = var_nodearraylist2;
 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
@@ -9844,8 +9664,9 @@ var16 = var_pvisibilitynode4->type->type_table[cltype17] == idtype18;
 }
 }
 if (!var16) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12683);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12435);
+show_backtrace(1);
 }
 var_pclasskindnode5 = var_nodearraylist3;
 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
@@ -9861,8 +9682,9 @@ var19 = var_pclasskindnode5->type->type_table[cltype20] == idtype21;
 }
 }
 if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12685);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12437);
+show_backtrace(1);
 }
 var_tclassidnode6 = var_nodearraylist7;
 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
@@ -9878,8 +9700,9 @@ var22 = var_tclassidnode6->type->type_table[cltype23] == idtype24;
 }
 }
 if (!var22) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12687);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12439);
+show_backtrace(1);
 }
 var_listnode10 = var_nodearraylist8;
 /* <var_listnode10:nullable Object> isa Array[Object] */
@@ -9895,8 +9718,9 @@ var25 = var_listnode10->type->type_table[cltype26] == idtype27;
 }
 }
 if (!var25) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12689);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12441);
+show_backtrace(1);
 }
 var28 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode10) /* concat on <self:ReduceAction268>*/;
 var_listnode11 = var28;
@@ -9914,8 +9738,9 @@ var29 = var_listnode12->type->type_table[cltype30] == idtype31;
 }
 }
 if (!var29) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12692);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12444);
+show_backtrace(1);
 }
 var32 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction268>*/;
 var_listnode13 = var32;
@@ -9933,15 +9758,15 @@ var33 = var_tkwendnode14->type->type_table[cltype34] == idtype35;
 }
 }
 if (!var33) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 12695);
-exit(1);
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 12447);
+show_backtrace(1);
 }
 var36 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
 var37 = NULL;
 var38 = NULL;
 var39 = NULL;
 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var36->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var36, var_pdocnode2, var37, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var38, var39, var_listnode11, var_listnode13, var_tkwendnode14) /* init_astdclassdef on <var36:AStdClassdef>*/;
-CHECK_NEW_parser_nodes__AStdClassdef(var36);
 var_pclassdefnode1 = var36;
 var_node_list = var_pclassdefnode1;
 var40 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction268> */