X-Git-Url: http://nitlanguage.org diff --git a/c_src/nit__abstract_compiler.sep.5.c b/c_src/nit__abstract_compiler.sep.5.c index d592257..4dae84f 100644 --- a/c_src/nit__abstract_compiler.sep.5.c +++ b/c_src/nit__abstract_compiler.sep.5.c @@ -1,860 +1,1385 @@ #include "nit__abstract_compiler.sep.0.h" -/* method abstract_compiler#AForExpr#stmt for (self: AForExpr, AbstractCompilerVisitor) */ -void nit__abstract_compiler___AForExpr___AExpr__stmt(val* self, val* p0) { +/* method abstract_compiler#AIfExpr#expr for (self: AIfExpr, AbstractCompilerVisitor): nullable RuntimeVariable */ +val* nit__abstract_compiler___AIfExpr___AExpr__expr(val* self, val* p0) { +val* var /* : nullable RuntimeVariable */; val* var_v /* var v: AbstractCompilerVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : null */; +val* var1 /* : nullable MType */; +val* var3 /* : nullable MType */; val* var4 /* : RuntimeVariable */; -val* var_cl /* var cl: RuntimeVariable */; -val* var5 /* : nullable CallSite */; -val* var7 /* : nullable CallSite */; -val* var_it_meth /* var it_meth: nullable CallSite */; -val* var8 /* : null */; -short int var9 /* : Bool */; -short int var10 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var12 /* : Bool */; -short int var13 /* : Bool */; -val* var14 /* : Array[RuntimeVariable] */; -long var15 /* : Int */; -val* var_ /* var : Array[RuntimeVariable] */; -val* var16 /* : nullable RuntimeVariable */; -val* var_it /* var it: nullable RuntimeVariable */; -val* var17 /* : null */; -short int var18 /* : Bool */; -short int var19 /* : Bool */; -short int var21 /* : Bool */; -short int var22 /* : Bool */; +val* var_res /* var res: RuntimeVariable */; +val* var5 /* : AExpr */; +val* var7 /* : AExpr */; +val* var8 /* : RuntimeVariable */; +val* var_cond /* var cond: RuntimeVariable */; +val* var9 /* : NativeArray[String] */; static val* varonce; -val* var23 /* : String */; -char* var24 /* : NativeString */; -long var25 /* : Int */; -val* var26 /* : FlatString */; -val* var27 /* : nullable CallSite */; -val* var29 /* : nullable CallSite */; -val* var_isok_meth /* var isok_meth: nullable CallSite */; -val* var30 /* : null */; -short int var31 /* : Bool */; -short int var32 /* : Bool */; -short int var34 /* : Bool */; -short int var35 /* : Bool */; -val* var36 /* : Array[RuntimeVariable] */; -long var37 /* : Int */; -val* var_38 /* var : Array[RuntimeVariable] */; -val* var39 /* : nullable RuntimeVariable */; -val* var_ok /* var ok: nullable RuntimeVariable */; -val* var40 /* : null */; -short int var41 /* : Bool */; -short int var42 /* : Bool */; -short int var44 /* : Bool */; -short int var45 /* : Bool */; -static val* varonce46; -val* var47 /* : String */; -char* var48 /* : NativeString */; -long var49 /* : Int */; -val* var50 /* : FlatString */; -static val* varonce51; -val* var52 /* : String */; -char* var53 /* : NativeString */; -long var54 /* : Int */; -val* var55 /* : FlatString */; -val* var56 /* : Array[Object] */; -long var57 /* : Int */; -val* var58 /* : NativeArray[Object] */; -val* var59 /* : String */; -val* var60 /* : nullable Array[Variable] */; -val* var62 /* : nullable Array[Variable] */; -long var63 /* : Int */; -long var65 /* : Int */; -long var66 /* : Int */; -short int var67 /* : Bool */; -short int var69 /* : Bool */; -val* var70 /* : nullable CallSite */; -val* var72 /* : nullable CallSite */; -val* var_item_meth /* var item_meth: nullable CallSite */; -val* var73 /* : null */; -short int var74 /* : Bool */; -short int var75 /* : Bool */; -short int var77 /* : Bool */; -short int var78 /* : Bool */; -val* var79 /* : Array[RuntimeVariable] */; -long var80 /* : Int */; -val* var_81 /* var : Array[RuntimeVariable] */; -val* var82 /* : nullable RuntimeVariable */; -val* var_i /* var i: nullable RuntimeVariable */; -val* var83 /* : null */; -short int var84 /* : Bool */; -short int var85 /* : Bool */; -short int var87 /* : Bool */; -short int var88 /* : Bool */; -val* var89 /* : nullable Array[Variable] */; -val* var91 /* : nullable Array[Variable] */; -val* var92 /* : nullable Object */; -val* var93 /* : RuntimeVariable */; -val* var94 /* : nullable Array[Variable] */; -val* var96 /* : nullable Array[Variable] */; -long var97 /* : Int */; -long var99 /* : Int */; -long var100 /* : Int */; -short int var101 /* : Bool */; -short int var103 /* : Bool */; -val* var104 /* : nullable CallSite */; -val* var106 /* : nullable CallSite */; -val* var_key_meth /* var key_meth: nullable CallSite */; -val* var107 /* : null */; -short int var108 /* : Bool */; -short int var109 /* : Bool */; -short int var111 /* : Bool */; -short int var112 /* : Bool */; -val* var113 /* : Array[RuntimeVariable] */; -long var114 /* : Int */; -val* var_115 /* var : Array[RuntimeVariable] */; -val* var116 /* : nullable RuntimeVariable */; -val* var_i117 /* var i: nullable RuntimeVariable */; -val* var118 /* : null */; -short int var119 /* : Bool */; -short int var120 /* : Bool */; -short int var122 /* : Bool */; -short int var123 /* : Bool */; -val* var124 /* : nullable Array[Variable] */; -val* var126 /* : nullable Array[Variable] */; -long var127 /* : Int */; -val* var128 /* : nullable Object */; -val* var129 /* : RuntimeVariable */; -val* var130 /* : nullable CallSite */; -val* var132 /* : nullable CallSite */; -val* var_item_meth133 /* var item_meth: nullable CallSite */; -val* var134 /* : null */; -short int var135 /* : Bool */; -short int var136 /* : Bool */; -short int var138 /* : Bool */; -short int var139 /* : Bool */; -val* var140 /* : Array[RuntimeVariable] */; -long var141 /* : Int */; -val* var_142 /* var : Array[RuntimeVariable] */; -val* var143 /* : nullable RuntimeVariable */; -val* var144 /* : null */; -short int var145 /* : Bool */; -short int var146 /* : Bool */; -short int var148 /* : Bool */; -short int var149 /* : Bool */; -val* var150 /* : nullable Array[Variable] */; -val* var152 /* : nullable Array[Variable] */; -long var153 /* : Int */; -val* var154 /* : nullable Object */; -val* var155 /* : RuntimeVariable */; -val* var156 /* : nullable AExpr */; -val* var158 /* : nullable AExpr */; -val* var159 /* : nullable EscapeMark */; -val* var161 /* : nullable EscapeMark */; -val* var162 /* : nullable CallSite */; -val* var164 /* : nullable CallSite */; -val* var_next_meth /* var next_meth: nullable CallSite */; -val* var165 /* : null */; -short int var166 /* : Bool */; -short int var167 /* : Bool */; -short int var169 /* : Bool */; -short int var170 /* : Bool */; -val* var171 /* : Array[RuntimeVariable] */; -long var172 /* : Int */; -val* var_173 /* var : Array[RuntimeVariable] */; -val* var174 /* : nullable RuntimeVariable */; -static val* varonce175; -val* var176 /* : String */; -char* var177 /* : NativeString */; -long var178 /* : Int */; -val* var179 /* : FlatString */; -val* var180 /* : nullable EscapeMark */; -val* var182 /* : nullable EscapeMark */; -val* var183 /* : nullable CallSite */; -val* var185 /* : nullable CallSite */; -val* var_method_finish /* var method_finish: nullable CallSite */; -val* var186 /* : null */; -short int var187 /* : Bool */; -short int var188 /* : Bool */; -short int var190 /* : Bool */; -short int var191 /* : Bool */; -val* var192 /* : Array[RuntimeVariable] */; -long var193 /* : Int */; -val* var_194 /* var : Array[RuntimeVariable] */; -val* var195 /* : nullable RuntimeVariable */; +static val* varonce10; +val* var11 /* : String */; +char* var12 /* : NativeString */; +val* var13 /* : FlatString */; +static val* varonce14; +val* var15 /* : String */; +char* var16 /* : NativeString */; +val* var17 /* : FlatString */; +val* var18 /* : String */; +val* var19 /* : String */; +val* var20 /* : nullable AExpr */; +val* var22 /* : nullable AExpr */; +val* var23 /* : RuntimeVariable */; +static val* varonce24; +val* var25 /* : String */; +char* var26 /* : NativeString */; +val* var27 /* : FlatString */; +val* var28 /* : nullable AExpr */; +val* var30 /* : nullable AExpr */; +val* var31 /* : RuntimeVariable */; +static val* varonce32; +val* var33 /* : String */; +char* var34 /* : NativeString */; +val* var35 /* : FlatString */; var_v = p0; { -{ /* Inline parser_nodes#AForExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1738); -show_backtrace(1); +{ /* Inline typing#AExpr#mtype (self) on */ +var3 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on */ +var1 = var3; +RET_LABEL2:(void)0; } -var = var2; -RET_LABEL1:(void)0; } +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2702); +fatal_exit(1); } -var3 = NULL; { -var4 = nit___nit__AbstractCompilerVisitor___expr(var_v, var, var3); +var4 = nit___nit__AbstractCompilerVisitor___new_var(var_v, var1); } -var_cl = var4; +var_res = var4; { -{ /* Inline typing#AForExpr#method_iterator (self) on */ -var7 = self->attrs[COLOR_nit__typing__AForExpr___method_iterator].val; /* _method_iterator on */ +{ /* Inline parser_nodes#AIfExpr#n_expr (self) on */ +var7 = self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var7 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1857); +fatal_exit(1); +} var5 = var7; RET_LABEL6:(void)0; } } -var_it_meth = var5; -var8 = NULL; -if (var_it_meth == NULL) { -var9 = 0; /* is null */ -} else { -var9 = 1; /* arg is null and recv is not */ -} -if (0) { -{ /* Inline kernel#Object#!= (var_it_meth,var8) on */ -var_other = var8; { -var12 = ((short int (*)(val* self, val* p0))(var_it_meth->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_it_meth, var_other) /* == on */; +var8 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var5); } -var13 = !var12; -var10 = var13; -goto RET_LABEL11; -RET_LABEL11:(void)0; +var_cond = var8; +if (unlikely(varonce==NULL)) { +var9 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce10!=NULL)) { +var11 = varonce10; +} else { +var12 = "if ("; +var13 = standard___standard__NativeString___to_s_with_length(var12, 4l); +var11 = var13; +varonce10 = var11; } -var9 = var10; +((struct instance_standard__NativeArray*)var9)->values[0]=var11; +if (likely(varonce14!=NULL)) { +var15 = varonce14; +} else { +var16 = "){"; +var17 = standard___standard__NativeString___to_s_with_length(var16, 2l); +var15 = var17; +varonce14 = var15; } -if (unlikely(!var9)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2563); -show_backtrace(1); +((struct instance_standard__NativeArray*)var9)->values[2]=var15; +} else { +var9 = varonce; +varonce = NULL; } -var14 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); -var15 = 1; { -standard___standard__Array___with_capacity(var14, var15); /* Direct call array#Array#with_capacity on */ +var18 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_standard__string__Object__to_s]))(var_cond); /* to_s on */ } -var_ = var14; +((struct instance_standard__NativeArray*)var9)->values[1]=var18; { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_cl); /* Direct call array#AbstractArray#push on */ +var19 = ((val*(*)(val* self))(var9->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var9); /* native_to_s on */ } +varonce = var9; { -var16 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_it_meth, var_) /* compile_callsite on */; -} -var_it = var16; -var17 = NULL; -if (var_it == NULL) { -var18 = 0; /* is null */ -} else { -var18 = 1; /* arg is null and recv is not */ +nit___nit__AbstractCompilerVisitor___add(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (0) { -{ /* Inline kernel#Object#!= (var_it,var17) on */ -var_other = var17; { -var21 = ((short int (*)(val* self, val* p0))(var_it->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_it, var_other) /* == on */; -} -var22 = !var21; -var19 = var22; -goto RET_LABEL20; -RET_LABEL20:(void)0; -} -var18 = var19; +{ /* Inline parser_nodes#AIfExpr#n_then (self) on */ +var22 = self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_then].val; /* _n_then on */ +var20 = var22; +RET_LABEL21:(void)0; } -if (unlikely(!var18)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2565); -show_backtrace(1); } -if (varonce) { -var23 = varonce; -} else { -var24 = "for(;;) {"; -var25 = 9; -var26 = standard___standard__NativeString___to_s_with_length(var24, var25); -var23 = var26; -varonce = var23; +if (unlikely(var20 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2705); +fatal_exit(1); } { -nit___nit__AbstractCompilerVisitor___add(var_v, var23); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +var23 = nit___nit__AbstractCompilerVisitor___expr(var_v, var20, ((val*)NULL)); } { -{ /* Inline typing#AForExpr#method_is_ok (self) on */ -var29 = self->attrs[COLOR_nit__typing__AForExpr___method_is_ok].val; /* _method_is_ok on */ -var27 = var29; -RET_LABEL28:(void)0; +nit___nit__AbstractCompilerVisitor___assign(var_v, var_res, var23); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on */ } -} -var_isok_meth = var27; -var30 = NULL; -if (var_isok_meth == NULL) { -var31 = 0; /* is null */ +if (likely(varonce24!=NULL)) { +var25 = varonce24; } else { -var31 = 1; /* arg is null and recv is not */ +var26 = "} else {"; +var27 = standard___standard__NativeString___to_s_with_length(var26, 8l); +var25 = var27; +varonce24 = var25; } -if (0) { -{ /* Inline kernel#Object#!= (var_isok_meth,var30) on */ -var_other = var30; { -var34 = ((short int (*)(val* self, val* p0))(var_isok_meth->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_isok_meth, var_other) /* == on */; -} -var35 = !var34; -var32 = var35; -goto RET_LABEL33; -RET_LABEL33:(void)0; +nit___nit__AbstractCompilerVisitor___add(var_v, var25); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var31 = var32; +{ +{ /* Inline parser_nodes#AIfExpr#n_else (self) on */ +var30 = self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_else].val; /* _n_else on */ +var28 = var30; +RET_LABEL29:(void)0; } -if (unlikely(!var31)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2568); -show_backtrace(1); } -var36 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); -var37 = 1; -{ -standard___standard__Array___with_capacity(var36, var37); /* Direct call array#Array#with_capacity on */ +if (unlikely(var28 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2707); +fatal_exit(1); } -var_38 = var36; { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_38, var_it); /* Direct call array#AbstractArray#push on */ +var31 = nit___nit__AbstractCompilerVisitor___expr(var_v, var28, ((val*)NULL)); } { -var39 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_isok_meth, var_38) /* compile_callsite on */; +nit___nit__AbstractCompilerVisitor___assign(var_v, var_res, var31); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on */ } -var_ok = var39; -var40 = NULL; -if (var_ok == NULL) { -var41 = 0; /* is null */ +if (likely(varonce32!=NULL)) { +var33 = varonce32; } else { -var41 = 1; /* arg is null and recv is not */ +var34 = "}"; +var35 = standard___standard__NativeString___to_s_with_length(var34, 1l); +var33 = var35; +varonce32 = var33; } -if (0) { -{ /* Inline kernel#Object#!= (var_ok,var40) on */ -var_other = var40; { -var44 = ((short int (*)(val* self, val* p0))(var_ok->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ok, var_other) /* == on */; -} -var45 = !var44; -var42 = var45; -goto RET_LABEL43; -RET_LABEL43:(void)0; +nit___nit__AbstractCompilerVisitor___add(var_v, var33); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var41 = var42; +var = var_res; +goto RET_LABEL; +RET_LABEL:; +return var; } -if (unlikely(!var41)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2570); -show_backtrace(1); +/* method abstract_compiler#AIfexprExpr#expr for (self: AIfexprExpr, AbstractCompilerVisitor): nullable RuntimeVariable */ +val* nit__abstract_compiler___AIfexprExpr___AExpr__expr(val* self, val* p0) { +val* var /* : nullable RuntimeVariable */; +val* var_v /* var v: AbstractCompilerVisitor */; +val* var1 /* : nullable MType */; +val* var3 /* : nullable MType */; +val* var4 /* : RuntimeVariable */; +val* var_res /* var res: RuntimeVariable */; +val* var5 /* : AExpr */; +val* var7 /* : AExpr */; +val* var8 /* : RuntimeVariable */; +val* var_cond /* var cond: RuntimeVariable */; +val* var9 /* : NativeArray[String] */; +static val* varonce; +static val* varonce10; +val* var11 /* : String */; +char* var12 /* : NativeString */; +val* var13 /* : FlatString */; +static val* varonce14; +val* var15 /* : String */; +char* var16 /* : NativeString */; +val* var17 /* : FlatString */; +val* var18 /* : String */; +val* var19 /* : String */; +val* var20 /* : AExpr */; +val* var22 /* : AExpr */; +val* var23 /* : RuntimeVariable */; +static val* varonce24; +val* var25 /* : String */; +char* var26 /* : NativeString */; +val* var27 /* : FlatString */; +val* var28 /* : AExpr */; +val* var30 /* : AExpr */; +val* var31 /* : RuntimeVariable */; +static val* varonce32; +val* var33 /* : String */; +char* var34 /* : NativeString */; +val* var35 /* : FlatString */; +var_v = p0; +{ +{ /* Inline typing#AExpr#mtype (self) on */ +var3 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on */ +var1 = var3; +RET_LABEL2:(void)0; } -if (varonce46) { -var47 = varonce46; -} else { -var48 = "if(!"; -var49 = 4; -var50 = standard___standard__NativeString___to_s_with_length(var48, var49); -var47 = var50; -varonce46 = var47; } -if (varonce51) { -var52 = varonce51; -} else { -var53 = ") break;"; -var54 = 8; -var55 = standard___standard__NativeString___to_s_with_length(var53, var54); -var52 = var55; -varonce51 = var52; +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2716); +fatal_exit(1); } -var56 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var56 = array_instance Array[Object] */ -var57 = 3; -var58 = NEW_standard__NativeArray(var57, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var58)->values[0] = (val*) var47; -((struct instance_standard__NativeArray*)var58)->values[1] = (val*) var_ok; -((struct instance_standard__NativeArray*)var58)->values[2] = (val*) var52; { -((void (*)(val* self, val* p0, long p1))(var56->class->vft[COLOR_standard__array__Array__with_native]))(var56, var58, var57) /* with_native on */; -} +var4 = nit___nit__AbstractCompilerVisitor___new_var(var_v, var1); } +var_res = var4; { -var59 = ((val* (*)(val* self))(var56->class->vft[COLOR_standard__string__Object__to_s]))(var56) /* to_s on */; +{ /* Inline parser_nodes#AIfexprExpr#n_expr (self) on */ +var7 = self->attrs[COLOR_nit__parser_nodes__AIfexprExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var7 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1880); +fatal_exit(1); } -{ -nit___nit__AbstractCompilerVisitor___add(var_v, var59); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +var5 = var7; +RET_LABEL6:(void)0; } -{ -{ /* Inline scope#AForExpr#variables (self) on */ -var62 = self->attrs[COLOR_nit__scope__AForExpr___variables].val; /* _variables on */ -var60 = var62; -RET_LABEL61:(void)0; } +{ +var8 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var5); } -if (var60 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2572); -show_backtrace(1); +var_cond = var8; +if (unlikely(varonce==NULL)) { +var9 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce10!=NULL)) { +var11 = varonce10; } else { -{ /* Inline array#AbstractArrayRead#length (var60) on */ -if (unlikely(var60 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 24); -show_backtrace(1); +var12 = "if ("; +var13 = standard___standard__NativeString___to_s_with_length(var12, 4l); +var11 = var13; +varonce10 = var11; } -var65 = var60->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var63 = var65; -RET_LABEL64:(void)0; +((struct instance_standard__NativeArray*)var9)->values[0]=var11; +if (likely(varonce14!=NULL)) { +var15 = varonce14; +} else { +var16 = "){"; +var17 = standard___standard__NativeString___to_s_with_length(var16, 2l); +var15 = var17; +varonce14 = var15; } +((struct instance_standard__NativeArray*)var9)->values[2]=var15; +} else { +var9 = varonce; +varonce = NULL; } -var66 = 1; { -{ /* Inline kernel#Int#== (var63,var66) on */ -var69 = var63 == var66; -var67 = var69; -goto RET_LABEL68; -RET_LABEL68:(void)0; -} +var18 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_standard__string__Object__to_s]))(var_cond); /* to_s on */ } -if (var67){ +((struct instance_standard__NativeArray*)var9)->values[1]=var18; { -{ /* Inline typing#AForExpr#method_item (self) on */ -var72 = self->attrs[COLOR_nit__typing__AForExpr___method_item].val; /* _method_item on */ -var70 = var72; -RET_LABEL71:(void)0; -} +var19 = ((val*(*)(val* self))(var9->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var9); /* native_to_s on */ } -var_item_meth = var70; -var73 = NULL; -if (var_item_meth == NULL) { -var74 = 0; /* is null */ -} else { -var74 = 1; /* arg is null and recv is not */ -} -if (0) { -{ /* Inline kernel#Object#!= (var_item_meth,var73) on */ -var_other = var73; +varonce = var9; { -var77 = ((short int (*)(val* self, val* p0))(var_item_meth->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_item_meth, var_other) /* == on */; -} -var78 = !var77; -var75 = var78; -goto RET_LABEL76; -RET_LABEL76:(void)0; +nit___nit__AbstractCompilerVisitor___add(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var74 = var75; +{ +{ /* Inline parser_nodes#AIfexprExpr#n_then (self) on */ +var22 = self->attrs[COLOR_nit__parser_nodes__AIfexprExpr___n_then].val; /* _n_then on */ +if (unlikely(var22 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1886); +fatal_exit(1); } -if (unlikely(!var74)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2574); -show_backtrace(1); +var20 = var22; +RET_LABEL21:(void)0; } -var79 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); -var80 = 1; -{ -standard___standard__Array___with_capacity(var79, var80); /* Direct call array#Array#with_capacity on */ } -var_81 = var79; { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_81, var_it); /* Direct call array#AbstractArray#push on */ +var23 = nit___nit__AbstractCompilerVisitor___expr(var_v, var20, ((val*)NULL)); } { -var82 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_item_meth, var_81) /* compile_callsite on */; +nit___nit__AbstractCompilerVisitor___assign(var_v, var_res, var23); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on */ } -var_i = var82; -var83 = NULL; -if (var_i == NULL) { -var84 = 0; /* is null */ +if (likely(varonce24!=NULL)) { +var25 = varonce24; } else { -var84 = 1; /* arg is null and recv is not */ +var26 = "} else {"; +var27 = standard___standard__NativeString___to_s_with_length(var26, 8l); +var25 = var27; +varonce24 = var25; } -if (0) { -{ /* Inline kernel#Object#!= (var_i,var83) on */ -var_other = var83; { -var87 = ((short int (*)(val* self, val* p0))(var_i->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_i, var_other) /* == on */; -} -var88 = !var87; -var85 = var88; -goto RET_LABEL86; -RET_LABEL86:(void)0; -} -var84 = var85; -} -if (unlikely(!var84)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2576); -show_backtrace(1); +nit___nit__AbstractCompilerVisitor___add(var_v, var25); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } { -{ /* Inline scope#AForExpr#variables (self) on */ -var91 = self->attrs[COLOR_nit__scope__AForExpr___variables].val; /* _variables on */ -var89 = var91; -RET_LABEL90:(void)0; +{ /* Inline parser_nodes#AIfexprExpr#n_else (self) on */ +var30 = self->attrs[COLOR_nit__parser_nodes__AIfexprExpr___n_else].val; /* _n_else on */ +if (unlikely(var30 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1892); +fatal_exit(1); } +var28 = var30; +RET_LABEL29:(void)0; } -if (var89 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2577); -show_backtrace(1); -} else { -var92 = standard___standard__SequenceRead___Collection__first(var89); } { -var93 = nit___nit__AbstractCompilerVisitor___variable(var_v, var92); +var31 = nit___nit__AbstractCompilerVisitor___expr(var_v, var28, ((val*)NULL)); } { -nit___nit__AbstractCompilerVisitor___assign(var_v, var93, var_i); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on */ +nit___nit__AbstractCompilerVisitor___assign(var_v, var_res, var31); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on */ } +if (likely(varonce32!=NULL)) { +var33 = varonce32; } else { -{ -{ /* Inline scope#AForExpr#variables (self) on */ -var96 = self->attrs[COLOR_nit__scope__AForExpr___variables].val; /* _variables on */ -var94 = var96; -RET_LABEL95:(void)0; +var34 = "}"; +var35 = standard___standard__NativeString___to_s_with_length(var34, 1l); +var33 = var35; +varonce32 = var33; } +{ +nit___nit__AbstractCompilerVisitor___add(var_v, var33); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (var94 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2578); -show_backtrace(1); -} else { -{ /* Inline array#AbstractArrayRead#length (var94) on */ -if (unlikely(var94 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 24); -show_backtrace(1); +var = var_res; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method abstract_compiler#ADoExpr#stmt for (self: ADoExpr, AbstractCompilerVisitor) */ +void nit__abstract_compiler___ADoExpr___AExpr__stmt(val* self, val* p0) { +val* var_v /* var v: AbstractCompilerVisitor */; +val* var /* : nullable AExpr */; +val* var2 /* : nullable AExpr */; +val* var3 /* : nullable EscapeMark */; +val* var5 /* : nullable EscapeMark */; +var_v = p0; +{ +{ /* Inline parser_nodes#ADoExpr#n_block (self) on */ +var2 = self->attrs[COLOR_nit__parser_nodes__ADoExpr___n_block].val; /* _n_block on */ +var = var2; +RET_LABEL1:(void)0; } -var99 = var94->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var97 = var99; -RET_LABEL98:(void)0; } +{ +nit___nit__AbstractCompilerVisitor___stmt(var_v, var); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on */ } -var100 = 2; { -{ /* Inline kernel#Int#== (var97,var100) on */ -var103 = var97 == var100; -var101 = var103; -goto RET_LABEL102; -RET_LABEL102:(void)0; +{ /* Inline scope#ADoExpr#break_mark (self) on */ +var5 = self->attrs[COLOR_nit__scope__ADoExpr___break_mark].val; /* _break_mark on */ +var3 = var5; +RET_LABEL4:(void)0; } } -if (var101){ { -{ /* Inline typing#AForExpr#method_key (self) on */ -var106 = self->attrs[COLOR_nit__typing__AForExpr___method_key].val; /* _method_key on */ -var104 = var106; -RET_LABEL105:(void)0; +nit___nit__AbstractCompilerVisitor___add_escape_label(var_v, var3); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on */ } +RET_LABEL:; } -var_key_meth = var104; -var107 = NULL; -if (var_key_meth == NULL) { -var108 = 0; /* is null */ +/* method abstract_compiler#AWhileExpr#stmt for (self: AWhileExpr, AbstractCompilerVisitor) */ +void nit__abstract_compiler___AWhileExpr___AExpr__stmt(val* self, val* p0) { +val* var_v /* var v: AbstractCompilerVisitor */; +static val* varonce; +val* var /* : String */; +char* var1 /* : NativeString */; +val* var2 /* : FlatString */; +val* var3 /* : AExpr */; +val* var5 /* : AExpr */; +val* var6 /* : RuntimeVariable */; +val* var_cond /* var cond: RuntimeVariable */; +val* var8 /* : NativeArray[String] */; +static val* varonce7; +static val* varonce9; +val* var10 /* : String */; +char* var11 /* : NativeString */; +val* var12 /* : FlatString */; +static val* varonce13; +val* var14 /* : String */; +char* var15 /* : NativeString */; +val* var16 /* : FlatString */; +val* var17 /* : String */; +val* var18 /* : String */; +val* var19 /* : nullable AExpr */; +val* var21 /* : nullable AExpr */; +val* var22 /* : nullable EscapeMark */; +val* var24 /* : nullable EscapeMark */; +static val* varonce25; +val* var26 /* : String */; +char* var27 /* : NativeString */; +val* var28 /* : FlatString */; +val* var29 /* : nullable EscapeMark */; +val* var31 /* : nullable EscapeMark */; +var_v = p0; +if (likely(varonce!=NULL)) { +var = varonce; } else { -var108 = 1; /* arg is null and recv is not */ +var1 = "for(;;) {"; +var2 = standard___standard__NativeString___to_s_with_length(var1, 9l); +var = var2; +varonce = var; } -if (0) { -{ /* Inline kernel#Object#!= (var_key_meth,var107) on */ -var_other = var107; { -var111 = ((short int (*)(val* self, val* p0))(var_key_meth->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_key_meth, var_other) /* == on */; +nit___nit__AbstractCompilerVisitor___add(var_v, var); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var112 = !var111; -var109 = var112; -goto RET_LABEL110; -RET_LABEL110:(void)0; +{ +{ /* Inline parser_nodes#AWhileExpr#n_expr (self) on */ +var5 = self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var5 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1904); +fatal_exit(1); } -var108 = var109; +var3 = var5; +RET_LABEL4:(void)0; } -if (unlikely(!var108)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2580); -show_backtrace(1); } -var113 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); -var114 = 1; { -standard___standard__Array___with_capacity(var113, var114); /* Direct call array#Array#with_capacity on */ +var6 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var3); +} +var_cond = var6; +if (unlikely(varonce7==NULL)) { +var8 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce9!=NULL)) { +var10 = varonce9; +} else { +var11 = "if (!"; +var12 = standard___standard__NativeString___to_s_with_length(var11, 5l); +var10 = var12; +varonce9 = var10; +} +((struct instance_standard__NativeArray*)var8)->values[0]=var10; +if (likely(varonce13!=NULL)) { +var14 = varonce13; +} else { +var15 = ") break;"; +var16 = standard___standard__NativeString___to_s_with_length(var15, 8l); +var14 = var16; +varonce13 = var14; +} +((struct instance_standard__NativeArray*)var8)->values[2]=var14; +} else { +var8 = varonce7; +varonce7 = NULL; } -var_115 = var113; { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_115, var_it); /* Direct call array#AbstractArray#push on */ +var17 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_standard__string__Object__to_s]))(var_cond); /* to_s on */ } +((struct instance_standard__NativeArray*)var8)->values[1]=var17; { -var116 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_key_meth, var_115) /* compile_callsite on */; +var18 = ((val*(*)(val* self))(var8->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var8); /* native_to_s on */ } -var_i117 = var116; -var118 = NULL; -if (var_i117 == NULL) { -var119 = 0; /* is null */ -} else { -var119 = 1; /* arg is null and recv is not */ +varonce7 = var8; +{ +nit___nit__AbstractCompilerVisitor___add(var_v, var18); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (0) { -{ /* Inline kernel#Object#!= (var_i117,var118) on */ -var_other = var118; { -var122 = ((short int (*)(val* self, val* p0))(var_i117->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_i117, var_other) /* == on */; +{ /* Inline parser_nodes#AWhileExpr#n_block (self) on */ +var21 = self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_block].val; /* _n_block on */ +var19 = var21; +RET_LABEL20:(void)0; } -var123 = !var122; -var120 = var123; -goto RET_LABEL121; -RET_LABEL121:(void)0; } -var119 = var120; +{ +nit___nit__AbstractCompilerVisitor___stmt(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on */ +} +{ +{ /* Inline scope#AWhileExpr#continue_mark (self) on */ +var24 = self->attrs[COLOR_nit__scope__AWhileExpr___continue_mark].val; /* _continue_mark on */ +var22 = var24; +RET_LABEL23:(void)0; } -if (unlikely(!var119)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2582); -show_backtrace(1); } { -{ /* Inline scope#AForExpr#variables (self) on */ -var126 = self->attrs[COLOR_nit__scope__AForExpr___variables].val; /* _variables on */ -var124 = var126; -RET_LABEL125:(void)0; +nit___nit__AbstractCompilerVisitor___add_escape_label(var_v, var22); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on */ } +if (likely(varonce25!=NULL)) { +var26 = varonce25; +} else { +var27 = "}"; +var28 = standard___standard__NativeString___to_s_with_length(var27, 1l); +var26 = var28; +varonce25 = var26; } -var127 = 0; -if (var124 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2583); -show_backtrace(1); +{ +nit___nit__AbstractCompilerVisitor___add(var_v, var26); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +{ +{ /* Inline scope#AWhileExpr#break_mark (self) on */ +var31 = self->attrs[COLOR_nit__scope__AWhileExpr___break_mark].val; /* _break_mark on */ +var29 = var31; +RET_LABEL30:(void)0; +} +} +{ +nit___nit__AbstractCompilerVisitor___add_escape_label(var_v, var29); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on */ +} +RET_LABEL:; +} +/* method abstract_compiler#ALoopExpr#stmt for (self: ALoopExpr, AbstractCompilerVisitor) */ +void nit__abstract_compiler___ALoopExpr___AExpr__stmt(val* self, val* p0) { +val* var_v /* var v: AbstractCompilerVisitor */; +static val* varonce; +val* var /* : String */; +char* var1 /* : NativeString */; +val* var2 /* : FlatString */; +val* var3 /* : nullable AExpr */; +val* var5 /* : nullable AExpr */; +val* var6 /* : nullable EscapeMark */; +val* var8 /* : nullable EscapeMark */; +static val* varonce9; +val* var10 /* : String */; +char* var11 /* : NativeString */; +val* var12 /* : FlatString */; +val* var13 /* : nullable EscapeMark */; +val* var15 /* : nullable EscapeMark */; +var_v = p0; +if (likely(varonce!=NULL)) { +var = varonce; } else { -var128 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var124, var127); +var1 = "for(;;) {"; +var2 = standard___standard__NativeString___to_s_with_length(var1, 9l); +var = var2; +varonce = var; } { -var129 = nit___nit__AbstractCompilerVisitor___variable(var_v, var128); +nit___nit__AbstractCompilerVisitor___add(var_v, var); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } { -nit___nit__AbstractCompilerVisitor___assign(var_v, var129, var_i117); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on */ +{ /* Inline parser_nodes#ALoopExpr#n_block (self) on */ +var5 = self->attrs[COLOR_nit__parser_nodes__ALoopExpr___n_block].val; /* _n_block on */ +var3 = var5; +RET_LABEL4:(void)0; +} } { -{ /* Inline typing#AForExpr#method_item (self) on */ -var132 = self->attrs[COLOR_nit__typing__AForExpr___method_item].val; /* _method_item on */ -var130 = var132; -RET_LABEL131:(void)0; +nit___nit__AbstractCompilerVisitor___stmt(var_v, var3); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on */ +} +{ +{ /* Inline scope#ALoopExpr#continue_mark (self) on */ +var8 = self->attrs[COLOR_nit__scope__ALoopExpr___continue_mark].val; /* _continue_mark on */ +var6 = var8; +RET_LABEL7:(void)0; +} } +{ +nit___nit__AbstractCompilerVisitor___add_escape_label(var_v, var6); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on */ } -var_item_meth133 = var130; -var134 = NULL; -if (var_item_meth133 == NULL) { -var135 = 0; /* is null */ +if (likely(varonce9!=NULL)) { +var10 = varonce9; } else { -var135 = 1; /* arg is null and recv is not */ +var11 = "}"; +var12 = standard___standard__NativeString___to_s_with_length(var11, 1l); +var10 = var12; +varonce9 = var10; } -if (0) { -{ /* Inline kernel#Object#!= (var_item_meth133,var134) on */ -var_other = var134; { -var138 = ((short int (*)(val* self, val* p0))(var_item_meth133->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_item_meth133, var_other) /* == on */; +nit___nit__AbstractCompilerVisitor___add(var_v, var10); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var139 = !var138; -var136 = var139; -goto RET_LABEL137; -RET_LABEL137:(void)0; +{ +{ /* Inline scope#ALoopExpr#break_mark (self) on */ +var15 = self->attrs[COLOR_nit__scope__ALoopExpr___break_mark].val; /* _break_mark on */ +var13 = var15; +RET_LABEL14:(void)0; } -var135 = var136; } -if (unlikely(!var135)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2585); -show_backtrace(1); +{ +nit___nit__AbstractCompilerVisitor___add_escape_label(var_v, var13); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on */ +} +RET_LABEL:; } -var140 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); -var141 = 1; +/* method abstract_compiler#AForExpr#stmt for (self: AForExpr, AbstractCompilerVisitor) */ +void nit__abstract_compiler___AForExpr___AExpr__stmt(val* self, val* p0) { +val* var_v /* var v: AbstractCompilerVisitor */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : RuntimeVariable */; +val* var_cl /* var cl: RuntimeVariable */; +val* var4 /* : nullable CallSite */; +val* var6 /* : nullable CallSite */; +val* var_it_meth /* var it_meth: nullable CallSite */; +short int var7 /* : Bool */; +short int var8 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var10 /* : Bool */; +short int var11 /* : Bool */; +val* var12 /* : Array[RuntimeVariable] */; +val* var_ /* var : Array[RuntimeVariable] */; +val* var13 /* : nullable RuntimeVariable */; +val* var_it /* var it: nullable RuntimeVariable */; +short int var14 /* : Bool */; +short int var15 /* : Bool */; +short int var17 /* : Bool */; +short int var18 /* : Bool */; +static val* varonce; +val* var19 /* : String */; +char* var20 /* : NativeString */; +val* var21 /* : FlatString */; +val* var22 /* : nullable CallSite */; +val* var24 /* : nullable CallSite */; +val* var_isok_meth /* var isok_meth: nullable CallSite */; +short int var25 /* : Bool */; +short int var26 /* : Bool */; +short int var28 /* : Bool */; +short int var29 /* : Bool */; +val* var30 /* : Array[RuntimeVariable] */; +val* var_31 /* var : Array[RuntimeVariable] */; +val* var32 /* : nullable RuntimeVariable */; +val* var_ok /* var ok: nullable RuntimeVariable */; +short int var33 /* : Bool */; +short int var34 /* : Bool */; +short int var36 /* : Bool */; +short int var37 /* : Bool */; +val* var39 /* : NativeArray[String] */; +static val* varonce38; +static val* varonce40; +val* var41 /* : String */; +char* var42 /* : NativeString */; +val* var43 /* : FlatString */; +static val* varonce44; +val* var45 /* : String */; +char* var46 /* : NativeString */; +val* var47 /* : FlatString */; +val* var48 /* : String */; +val* var49 /* : String */; +val* var50 /* : nullable Array[Variable] */; +val* var52 /* : nullable Array[Variable] */; +long var53 /* : Int */; +long var55 /* : Int */; +short int var56 /* : Bool */; +short int var58 /* : Bool */; +val* var59 /* : nullable CallSite */; +val* var61 /* : nullable CallSite */; +val* var_item_meth /* var item_meth: nullable CallSite */; +short int var62 /* : Bool */; +short int var63 /* : Bool */; +short int var65 /* : Bool */; +short int var66 /* : Bool */; +val* var67 /* : Array[RuntimeVariable] */; +val* var_68 /* var : Array[RuntimeVariable] */; +val* var69 /* : nullable RuntimeVariable */; +val* var_i /* var i: nullable RuntimeVariable */; +short int var70 /* : Bool */; +short int var71 /* : Bool */; +short int var73 /* : Bool */; +short int var74 /* : Bool */; +val* var75 /* : nullable Array[Variable] */; +val* var77 /* : nullable Array[Variable] */; +val* var78 /* : nullable Object */; +val* var79 /* : RuntimeVariable */; +val* var80 /* : nullable Array[Variable] */; +val* var82 /* : nullable Array[Variable] */; +long var83 /* : Int */; +long var85 /* : Int */; +short int var86 /* : Bool */; +short int var88 /* : Bool */; +val* var89 /* : nullable CallSite */; +val* var91 /* : nullable CallSite */; +val* var_key_meth /* var key_meth: nullable CallSite */; +short int var92 /* : Bool */; +short int var93 /* : Bool */; +short int var95 /* : Bool */; +short int var96 /* : Bool */; +val* var97 /* : Array[RuntimeVariable] */; +val* var_98 /* var : Array[RuntimeVariable] */; +val* var99 /* : nullable RuntimeVariable */; +val* var_i100 /* var i: nullable RuntimeVariable */; +short int var101 /* : Bool */; +short int var102 /* : Bool */; +short int var104 /* : Bool */; +short int var105 /* : Bool */; +val* var106 /* : nullable Array[Variable] */; +val* var108 /* : nullable Array[Variable] */; +val* var109 /* : nullable Object */; +val* var110 /* : RuntimeVariable */; +val* var111 /* : nullable CallSite */; +val* var113 /* : nullable CallSite */; +val* var_item_meth114 /* var item_meth: nullable CallSite */; +short int var115 /* : Bool */; +short int var116 /* : Bool */; +short int var118 /* : Bool */; +short int var119 /* : Bool */; +val* var120 /* : Array[RuntimeVariable] */; +val* var_121 /* var : Array[RuntimeVariable] */; +val* var122 /* : nullable RuntimeVariable */; +short int var123 /* : Bool */; +short int var124 /* : Bool */; +short int var126 /* : Bool */; +short int var127 /* : Bool */; +val* var128 /* : nullable Array[Variable] */; +val* var130 /* : nullable Array[Variable] */; +val* var131 /* : nullable Object */; +val* var132 /* : RuntimeVariable */; +val* var133 /* : nullable AExpr */; +val* var135 /* : nullable AExpr */; +val* var136 /* : nullable EscapeMark */; +val* var138 /* : nullable EscapeMark */; +val* var139 /* : nullable CallSite */; +val* var141 /* : nullable CallSite */; +val* var_next_meth /* var next_meth: nullable CallSite */; +short int var142 /* : Bool */; +short int var143 /* : Bool */; +short int var145 /* : Bool */; +short int var146 /* : Bool */; +val* var147 /* : Array[RuntimeVariable] */; +val* var_148 /* var : Array[RuntimeVariable] */; +val* var149 /* : nullable RuntimeVariable */; +static val* varonce150; +val* var151 /* : String */; +char* var152 /* : NativeString */; +val* var153 /* : FlatString */; +val* var154 /* : nullable EscapeMark */; +val* var156 /* : nullable EscapeMark */; +val* var157 /* : nullable CallSite */; +val* var159 /* : nullable CallSite */; +val* var_method_finish /* var method_finish: nullable CallSite */; +short int var160 /* : Bool */; +short int var161 /* : Bool */; +short int var163 /* : Bool */; +short int var164 /* : Bool */; +val* var165 /* : Array[RuntimeVariable] */; +val* var_166 /* var : Array[RuntimeVariable] */; +val* var167 /* : nullable RuntimeVariable */; +var_v = p0; { -standard___standard__Array___with_capacity(var140, var141); /* Direct call array#Array#with_capacity on */ +{ /* Inline parser_nodes#AForExpr#n_expr (self) on */ +var2 = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1940); +fatal_exit(1); +} +var = var2; +RET_LABEL1:(void)0; +} } -var_142 = var140; { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_142, var_it); /* Direct call array#AbstractArray#push on */ +var3 = nit___nit__AbstractCompilerVisitor___expr(var_v, var, ((val*)NULL)); } +var_cl = var3; { -var143 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_item_meth133, var_142) /* compile_callsite on */; +{ /* Inline typing#AForExpr#method_iterator (self) on */ +var6 = self->attrs[COLOR_nit__typing__AForExpr___method_iterator].val; /* _method_iterator on */ +var4 = var6; +RET_LABEL5:(void)0; +} } -var_i117 = var143; -var144 = NULL; -if (var_i117 == NULL) { -var145 = 0; /* is null */ +var_it_meth = var4; +if (var_it_meth == NULL) { +var7 = 0; /* is null */ } else { -var145 = 1; /* arg is null and recv is not */ +var7 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_i117,var144) on */ -var_other = var144; +{ /* Inline kernel#Object#!= (var_it_meth,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var148 = ((short int (*)(val* self, val* p0))(var_i117->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_i117, var_other) /* == on */; +var10 = ((short int(*)(val* self, val* p0))(var_it_meth->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_it_meth, var_other); /* == on */ } -var149 = !var148; -var146 = var149; -goto RET_LABEL147; -RET_LABEL147:(void)0; +var11 = !var10; +var8 = var11; +goto RET_LABEL9; +RET_LABEL9:(void)0; } -var145 = var146; +var7 = var8; } -if (unlikely(!var145)) { +if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2587); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2764); +fatal_exit(1); } +var12 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); { -{ /* Inline scope#AForExpr#variables (self) on */ -var152 = self->attrs[COLOR_nit__scope__AForExpr___variables].val; /* _variables on */ -var150 = var152; -RET_LABEL151:(void)0; +standard___standard__Array___with_capacity(var12, 1l); /* Direct call array#Array#with_capacity on */ +} +var_ = var12; +{ +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_cl); /* Direct call array#AbstractArray#push on */ } +{ +var13 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_it_meth, var_); /* compile_callsite on */ } -var153 = 1; -if (var150 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2588); -show_backtrace(1); +var_it = var13; +if (var_it == NULL) { +var14 = 0; /* is null */ } else { -var154 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var150, var153); +var14 = 1; /* arg is null and recv is not */ } +if (0) { +{ /* Inline kernel#Object#!= (var_it,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var155 = nit___nit__AbstractCompilerVisitor___variable(var_v, var154); +var17 = ((short int(*)(val* self, val* p0))(var_it->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_it, var_other); /* == on */ } -{ -nit___nit__AbstractCompilerVisitor___assign(var_v, var155, var_i117); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on */ +var18 = !var17; +var15 = var18; +goto RET_LABEL16; +RET_LABEL16:(void)0; +} +var14 = var15; +} +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2766); +fatal_exit(1); } +if (likely(varonce!=NULL)) { +var19 = varonce; } else { -PRINT_ERROR("Runtime error: %s", "Aborted"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2590); -show_backtrace(1); +var20 = "for(;;) {"; +var21 = standard___standard__NativeString___to_s_with_length(var20, 9l); +var19 = var21; +varonce = var19; } +{ +nit___nit__AbstractCompilerVisitor___add(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } { -{ /* Inline parser_nodes#AForExpr#n_block (self) on */ -var158 = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_block].val; /* _n_block on */ -var156 = var158; -RET_LABEL157:(void)0; +{ /* Inline typing#AForExpr#method_is_ok (self) on */ +var24 = self->attrs[COLOR_nit__typing__AForExpr___method_is_ok].val; /* _method_is_ok on */ +var22 = var24; +RET_LABEL23:(void)0; } } -{ -nit___nit__AbstractCompilerVisitor___stmt(var_v, var156); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on */ +var_isok_meth = var22; +if (var_isok_meth == NULL) { +var25 = 0; /* is null */ +} else { +var25 = 1; /* arg is null and recv is not */ } +if (0) { +{ /* Inline kernel#Object#!= (var_isok_meth,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline scope#AForExpr#continue_mark (self) on */ -var161 = self->attrs[COLOR_nit__scope__AForExpr___continue_mark].val; /* _continue_mark on */ -var159 = var161; -RET_LABEL160:(void)0; +var28 = ((short int(*)(val* self, val* p0))(var_isok_meth->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_isok_meth, var_other); /* == on */ } +var29 = !var28; +var26 = var29; +goto RET_LABEL27; +RET_LABEL27:(void)0; +} +var25 = var26; +} +if (unlikely(!var25)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2769); +fatal_exit(1); } +var30 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); { -nit___nit__AbstractCompilerVisitor___add_escape_label(var_v, var159); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on */ +standard___standard__Array___with_capacity(var30, 1l); /* Direct call array#Array#with_capacity on */ } +var_31 = var30; { -{ /* Inline typing#AForExpr#method_next (self) on */ -var164 = self->attrs[COLOR_nit__typing__AForExpr___method_next].val; /* _method_next on */ -var162 = var164; -RET_LABEL163:(void)0; +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_31, var_it); /* Direct call array#AbstractArray#push on */ } +{ +var32 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_isok_meth, var_31); /* compile_callsite on */ } -var_next_meth = var162; -var165 = NULL; -if (var_next_meth == NULL) { -var166 = 0; /* is null */ +var_ok = var32; +if (var_ok == NULL) { +var33 = 0; /* is null */ } else { -var166 = 1; /* arg is null and recv is not */ +var33 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_next_meth,var165) on */ -var_other = var165; +{ /* Inline kernel#Object#!= (var_ok,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var169 = ((short int (*)(val* self, val* p0))(var_next_meth->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_next_meth, var_other) /* == on */; +var36 = ((short int(*)(val* self, val* p0))(var_ok->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ok, var_other); /* == on */ } -var170 = !var169; -var167 = var170; -goto RET_LABEL168; -RET_LABEL168:(void)0; +var37 = !var36; +var34 = var37; +goto RET_LABEL35; +RET_LABEL35:(void)0; } -var166 = var167; +var33 = var34; } -if (unlikely(!var166)) { +if (unlikely(!var33)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2595); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2771); +fatal_exit(1); +} +if (unlikely(varonce38==NULL)) { +var39 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce40!=NULL)) { +var41 = varonce40; +} else { +var42 = "if(!"; +var43 = standard___standard__NativeString___to_s_with_length(var42, 4l); +var41 = var43; +varonce40 = var41; +} +((struct instance_standard__NativeArray*)var39)->values[0]=var41; +if (likely(varonce44!=NULL)) { +var45 = varonce44; +} else { +var46 = ") break;"; +var47 = standard___standard__NativeString___to_s_with_length(var46, 8l); +var45 = var47; +varonce44 = var45; } -var171 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); -var172 = 1; +((struct instance_standard__NativeArray*)var39)->values[2]=var45; +} else { +var39 = varonce38; +varonce38 = NULL; +} +{ +var48 = ((val*(*)(val* self))(var_ok->class->vft[COLOR_standard__string__Object__to_s]))(var_ok); /* to_s on */ +} +((struct instance_standard__NativeArray*)var39)->values[1]=var48; { -standard___standard__Array___with_capacity(var171, var172); /* Direct call array#Array#with_capacity on */ +var49 = ((val*(*)(val* self))(var39->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var39); /* native_to_s on */ } -var_173 = var171; +varonce38 = var39; { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_173, var_it); /* Direct call array#AbstractArray#push on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var49); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } { -var174 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_next_meth, var_173) /* compile_callsite on */; +{ /* Inline scope#AForExpr#variables (self) on */ +var52 = self->attrs[COLOR_nit__scope__AForExpr___variables].val; /* _variables on */ +var50 = var52; +RET_LABEL51:(void)0; +} } -if (varonce175) { -var176 = varonce175; +if (var50 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2773); +fatal_exit(1); } else { -var177 = "}"; -var178 = 1; -var179 = standard___standard__NativeString___to_s_with_length(var177, var178); -var176 = var179; -varonce175 = var176; +{ /* Inline array#AbstractArrayRead#length (var50) on */ +if (unlikely(var50 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 26); +fatal_exit(1); +} +var55 = var50->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var53 = var55; +RET_LABEL54:(void)0; +} } { -nit___nit__AbstractCompilerVisitor___add(var_v, var176); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +{ /* Inline kernel#Int#== (var53,1l) on */ +var58 = var53 == 1l; +var56 = var58; +goto RET_LABEL57; +RET_LABEL57:(void)0; } +} +if (var56){ { -{ /* Inline scope#AForExpr#break_mark (self) on */ -var182 = self->attrs[COLOR_nit__scope__AForExpr___break_mark].val; /* _break_mark on */ -var180 = var182; -RET_LABEL181:(void)0; +{ /* Inline typing#AForExpr#method_item (self) on */ +var61 = self->attrs[COLOR_nit__typing__AForExpr___method_item].val; /* _method_item on */ +var59 = var61; +RET_LABEL60:(void)0; +} +} +var_item_meth = var59; +if (var_item_meth == NULL) { +var62 = 0; /* is null */ +} else { +var62 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_item_meth,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var65 = ((short int(*)(val* self, val* p0))(var_item_meth->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_item_meth, var_other); /* == on */ +} +var66 = !var65; +var63 = var66; +goto RET_LABEL64; +RET_LABEL64:(void)0; } +var62 = var63; } +if (unlikely(!var62)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2775); +fatal_exit(1); +} +var67 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); { -nit___nit__AbstractCompilerVisitor___add_escape_label(var_v, var180); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on */ +standard___standard__Array___with_capacity(var67, 1l); /* Direct call array#Array#with_capacity on */ } +var_68 = var67; { -{ /* Inline typing#AForExpr#method_finish (self) on */ -var185 = self->attrs[COLOR_nit__typing__AForExpr___method_finish].val; /* _method_finish on */ -var183 = var185; -RET_LABEL184:(void)0; +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_68, var_it); /* Direct call array#AbstractArray#push on */ } +{ +var69 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_item_meth, var_68); /* compile_callsite on */ } -var_method_finish = var183; -var186 = NULL; -if (var_method_finish == NULL) { -var187 = 0; /* is null */ +var_i = var69; +if (var_i == NULL) { +var70 = 0; /* is null */ } else { -var187 = 1; /* arg is null and recv is not */ +var70 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_method_finish,var186) on */ -var_other = var186; +{ /* Inline kernel#Object#!= (var_i,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var190 = ((short int (*)(val* self, val* p0))(var_method_finish->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_method_finish, var_other) /* == on */; +var73 = ((short int(*)(val* self, val* p0))(var_i->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_i, var_other); /* == on */ } -var191 = !var190; -var188 = var191; -goto RET_LABEL189; -RET_LABEL189:(void)0; +var74 = !var73; +var71 = var74; +goto RET_LABEL72; +RET_LABEL72:(void)0; } -var187 = var188; +var70 = var71; } -if (var187){ -var192 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); -var193 = 1; -{ -standard___standard__Array___with_capacity(var192, var193); /* Direct call array#Array#with_capacity on */ +if (unlikely(!var70)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2777); +fatal_exit(1); } -var_194 = var192; { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_194, var_it); /* Direct call array#AbstractArray#push on */ +{ /* Inline scope#AForExpr#variables (self) on */ +var77 = self->attrs[COLOR_nit__scope__AForExpr___variables].val; /* _variables on */ +var75 = var77; +RET_LABEL76:(void)0; } -{ -var195 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_method_finish, var_194) /* compile_callsite on */; } +if (var75 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2778); +fatal_exit(1); } else { +var78 = standard___standard__SequenceRead___Collection__first(var75); } -RET_LABEL:; +{ +var79 = nit___nit__AbstractCompilerVisitor___variable(var_v, var78); } -/* method abstract_compiler#AAssertExpr#stmt for (self: AAssertExpr, AbstractCompilerVisitor) */ +{ +nit___nit__AbstractCompilerVisitor___assign(var_v, var79, var_i); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on */ +} +} else { +{ +{ /* Inline scope#AForExpr#variables (self) on */ +var82 = self->attrs[COLOR_nit__scope__AForExpr___variables].val; /* _variables on */ +var80 = var82; +RET_LABEL81:(void)0; +} +} +if (var80 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2779); +fatal_exit(1); +} else { +{ /* Inline array#AbstractArrayRead#length (var80) on */ +if (unlikely(var80 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 26); +fatal_exit(1); +} +var85 = var80->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var83 = var85; +RET_LABEL84:(void)0; +} +} +{ +{ /* Inline kernel#Int#== (var83,2l) on */ +var88 = var83 == 2l; +var86 = var88; +goto RET_LABEL87; +RET_LABEL87:(void)0; +} +} +if (var86){ +{ +{ /* Inline typing#AForExpr#method_key (self) on */ +var91 = self->attrs[COLOR_nit__typing__AForExpr___method_key].val; /* _method_key on */ +var89 = var91; +RET_LABEL90:(void)0; +} +} +var_key_meth = var89; +if (var_key_meth == NULL) { +var92 = 0; /* is null */ +} else { +var92 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_key_meth,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var95 = ((short int(*)(val* self, val* p0))(var_key_meth->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_key_meth, var_other); /* == on */ +} +var96 = !var95; +var93 = var96; +goto RET_LABEL94; +RET_LABEL94:(void)0; +} +var92 = var93; +} +if (unlikely(!var92)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2781); +fatal_exit(1); +} +var97 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); +{ +standard___standard__Array___with_capacity(var97, 1l); /* Direct call array#Array#with_capacity on */ +} +var_98 = var97; +{ +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_98, var_it); /* Direct call array#AbstractArray#push on */ +} +{ +var99 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_key_meth, var_98); /* compile_callsite on */ +} +var_i100 = var99; +if (var_i100 == NULL) { +var101 = 0; /* is null */ +} else { +var101 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_i100,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var104 = ((short int(*)(val* self, val* p0))(var_i100->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_i100, var_other); /* == on */ +} +var105 = !var104; +var102 = var105; +goto RET_LABEL103; +RET_LABEL103:(void)0; +} +var101 = var102; +} +if (unlikely(!var101)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2783); +fatal_exit(1); +} +{ +{ /* Inline scope#AForExpr#variables (self) on */ +var108 = self->attrs[COLOR_nit__scope__AForExpr___variables].val; /* _variables on */ +var106 = var108; +RET_LABEL107:(void)0; +} +} +if (var106 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2784); +fatal_exit(1); +} else { +var109 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var106, 0l); +} +{ +var110 = nit___nit__AbstractCompilerVisitor___variable(var_v, var109); +} +{ +nit___nit__AbstractCompilerVisitor___assign(var_v, var110, var_i100); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on */ +} +{ +{ /* Inline typing#AForExpr#method_item (self) on */ +var113 = self->attrs[COLOR_nit__typing__AForExpr___method_item].val; /* _method_item on */ +var111 = var113; +RET_LABEL112:(void)0; +} +} +var_item_meth114 = var111; +if (var_item_meth114 == NULL) { +var115 = 0; /* is null */ +} else { +var115 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_item_meth114,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var118 = ((short int(*)(val* self, val* p0))(var_item_meth114->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_item_meth114, var_other); /* == on */ +} +var119 = !var118; +var116 = var119; +goto RET_LABEL117; +RET_LABEL117:(void)0; +} +var115 = var116; +} +if (unlikely(!var115)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2786); +fatal_exit(1); +} +var120 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); +{ +standard___standard__Array___with_capacity(var120, 1l); /* Direct call array#Array#with_capacity on */ +} +var_121 = var120; +{ +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_121, var_it); /* Direct call array#AbstractArray#push on */ +} +{ +var122 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_item_meth114, var_121); /* compile_callsite on */ +} +var_i100 = var122; +if (var_i100 == NULL) { +var123 = 0; /* is null */ +} else { +var123 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_i100,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var126 = ((short int(*)(val* self, val* p0))(var_i100->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_i100, var_other); /* == on */ +} +var127 = !var126; +var124 = var127; +goto RET_LABEL125; +RET_LABEL125:(void)0; +} +var123 = var124; +} +if (unlikely(!var123)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2788); +fatal_exit(1); +} +{ +{ /* Inline scope#AForExpr#variables (self) on */ +var130 = self->attrs[COLOR_nit__scope__AForExpr___variables].val; /* _variables on */ +var128 = var130; +RET_LABEL129:(void)0; +} +} +if (var128 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2789); +fatal_exit(1); +} else { +var131 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var128, 1l); +} +{ +var132 = nit___nit__AbstractCompilerVisitor___variable(var_v, var131); +} +{ +nit___nit__AbstractCompilerVisitor___assign(var_v, var132, var_i100); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on */ +} +} else { +PRINT_ERROR("Runtime error: %s", "Aborted"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2791); +fatal_exit(1); +} +} +{ +{ /* Inline parser_nodes#AForExpr#n_block (self) on */ +var135 = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_block].val; /* _n_block on */ +var133 = var135; +RET_LABEL134:(void)0; +} +} +{ +nit___nit__AbstractCompilerVisitor___stmt(var_v, var133); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on */ +} +{ +{ /* Inline scope#AForExpr#continue_mark (self) on */ +var138 = self->attrs[COLOR_nit__scope__AForExpr___continue_mark].val; /* _continue_mark on */ +var136 = var138; +RET_LABEL137:(void)0; +} +} +{ +nit___nit__AbstractCompilerVisitor___add_escape_label(var_v, var136); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on */ +} +{ +{ /* Inline typing#AForExpr#method_next (self) on */ +var141 = self->attrs[COLOR_nit__typing__AForExpr___method_next].val; /* _method_next on */ +var139 = var141; +RET_LABEL140:(void)0; +} +} +var_next_meth = var139; +if (var_next_meth == NULL) { +var142 = 0; /* is null */ +} else { +var142 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_next_meth,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var145 = ((short int(*)(val* self, val* p0))(var_next_meth->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_next_meth, var_other); /* == on */ +} +var146 = !var145; +var143 = var146; +goto RET_LABEL144; +RET_LABEL144:(void)0; +} +var142 = var143; +} +if (unlikely(!var142)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2796); +fatal_exit(1); +} +var147 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); +{ +standard___standard__Array___with_capacity(var147, 1l); /* Direct call array#Array#with_capacity on */ +} +var_148 = var147; +{ +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_148, var_it); /* Direct call array#AbstractArray#push on */ +} +{ +var149 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_next_meth, var_148); /* compile_callsite on */ +} +if (likely(varonce150!=NULL)) { +var151 = varonce150; +} else { +var152 = "}"; +var153 = standard___standard__NativeString___to_s_with_length(var152, 1l); +var151 = var153; +varonce150 = var151; +} +{ +nit___nit__AbstractCompilerVisitor___add(var_v, var151); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +{ +{ /* Inline scope#AForExpr#break_mark (self) on */ +var156 = self->attrs[COLOR_nit__scope__AForExpr___break_mark].val; /* _break_mark on */ +var154 = var156; +RET_LABEL155:(void)0; +} +} +{ +nit___nit__AbstractCompilerVisitor___add_escape_label(var_v, var154); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on */ +} +{ +{ /* Inline typing#AForExpr#method_finish (self) on */ +var159 = self->attrs[COLOR_nit__typing__AForExpr___method_finish].val; /* _method_finish on */ +var157 = var159; +RET_LABEL158:(void)0; +} +} +var_method_finish = var157; +if (var_method_finish == NULL) { +var160 = 0; /* is null */ +} else { +var160 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_method_finish,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var163 = ((short int(*)(val* self, val* p0))(var_method_finish->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_method_finish, var_other); /* == on */ +} +var164 = !var163; +var161 = var164; +goto RET_LABEL162; +RET_LABEL162:(void)0; +} +var160 = var161; +} +if (var160){ +var165 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); +{ +standard___standard__Array___with_capacity(var165, 1l); /* Direct call array#Array#with_capacity on */ +} +var_166 = var165; +{ +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_166, var_it); /* Direct call array#AbstractArray#push on */ +} +{ +var167 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_method_finish, var_166); /* compile_callsite on */ +} +} else { +} +RET_LABEL:; +} +/* method abstract_compiler#AAssertExpr#stmt for (self: AAssertExpr, AbstractCompilerVisitor) */ void nit__abstract_compiler___AAssertExpr___AExpr__stmt(val* self, val* p0) { val* var_v /* var v: AbstractCompilerVisitor */; val* var /* : AbstractCompiler */; @@ -872,64 +1397,56 @@ val* var16 /* : AExpr */; val* var18 /* : AExpr */; val* var19 /* : RuntimeVariable */; val* var_cond /* var cond: RuntimeVariable */; +val* var20 /* : NativeArray[String] */; static val* varonce; -val* var20 /* : String */; -char* var21 /* : NativeString */; -long var22 /* : Int */; -val* var23 /* : FlatString */; -static val* varonce24; -val* var25 /* : String */; -char* var26 /* : NativeString */; -long var27 /* : Int */; +static val* varonce21; +val* var22 /* : String */; +char* var23 /* : NativeString */; +val* var24 /* : FlatString */; +static val* varonce25; +val* var26 /* : String */; +char* var27 /* : NativeString */; val* var28 /* : FlatString */; -val* var29 /* : Array[Object] */; -long var30 /* : Int */; -val* var31 /* : NativeArray[Object] */; -val* var32 /* : String */; +val* var29 /* : String */; +val* var30 /* : String */; +val* var31 /* : nullable AExpr */; val* var33 /* : nullable AExpr */; -val* var35 /* : nullable AExpr */; +val* var34 /* : nullable TId */; val* var36 /* : nullable TId */; -val* var38 /* : nullable TId */; val* var_nid /* var nid: nullable TId */; -val* var39 /* : null */; +short int var37 /* : Bool */; +short int var38 /* : Bool */; +val* var_other /* var other: nullable Object */; short int var40 /* : Bool */; short int var41 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var43 /* : Bool */; -short int var44 /* : Bool */; -static val* varonce45; -val* var46 /* : String */; -char* var47 /* : NativeString */; -long var48 /* : Int */; -val* var49 /* : FlatString */; -val* var50 /* : String */; -static val* varonce51; +val* var43 /* : NativeArray[String] */; +static val* varonce42; +static val* varonce44; +val* var45 /* : String */; +char* var46 /* : NativeString */; +val* var47 /* : FlatString */; +static val* varonce48; +val* var49 /* : String */; +char* var50 /* : NativeString */; +val* var51 /* : FlatString */; val* var52 /* : String */; -char* var53 /* : NativeString */; -long var54 /* : Int */; -val* var55 /* : FlatString */; -val* var56 /* : Array[Object] */; -long var57 /* : Int */; -val* var58 /* : NativeArray[Object] */; +val* var53 /* : String */; +static val* varonce54; +val* var55 /* : String */; +char* var56 /* : NativeString */; +val* var57 /* : FlatString */; +static val* varonce58; val* var59 /* : String */; -static val* varonce60; -val* var61 /* : String */; -char* var62 /* : NativeString */; -long var63 /* : Int */; -val* var64 /* : FlatString */; -static val* varonce65; -val* var66 /* : String */; -char* var67 /* : NativeString */; -long var68 /* : Int */; -val* var69 /* : FlatString */; +char* var60 /* : NativeString */; +val* var61 /* : FlatString */; var_v = p0; { { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on */ var2 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; @@ -940,8 +1457,8 @@ RET_LABEL1:(void)0; var5 = var->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522); +fatal_exit(1); } var3 = var5; RET_LABEL4:(void)0; @@ -953,7 +1470,7 @@ var8 = var3->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val if (unlikely(var8 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); -show_backtrace(1); +fatal_exit(1); } var6 = var8; RET_LABEL7:(void)0; @@ -964,8 +1481,8 @@ RET_LABEL7:(void)0; var11 = var6->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_no_check_assert].val; /* _opt_no_check_assert on */ if (unlikely(var11 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_assert"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 51); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 52); +fatal_exit(1); } var9 = var11; RET_LABEL10:(void)0; @@ -978,7 +1495,7 @@ var12 = var14; RET_LABEL13:(void)0; } } -var15 = ((struct instance_standard__Bool*)var12)->value; /* autounbox from nullable Object to Bool */; +var15 = (short int)((long)(var12)>>2); if (var15){ goto RET_LABEL; } else { @@ -988,8 +1505,8 @@ goto RET_LABEL; var18 = self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_expr].val; /* _n_expr on */ if (unlikely(var18 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1758); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1978); +fatal_exit(1); } var16 = var18; RET_LABEL17:(void)0; @@ -999,142 +1516,136 @@ RET_LABEL17:(void)0; var19 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var16); } var_cond = var19; -if (varonce) { -var20 = varonce; +if (unlikely(varonce==NULL)) { +var20 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce21!=NULL)) { +var22 = varonce21; } else { -var21 = "if (unlikely(!"; -var22 = 14; -var23 = standard___standard__NativeString___to_s_with_length(var21, var22); -var20 = var23; -varonce = var20; +var23 = "if (unlikely(!"; +var24 = standard___standard__NativeString___to_s_with_length(var23, 14l); +var22 = var24; +varonce21 = var22; } -if (varonce24) { -var25 = varonce24; +((struct instance_standard__NativeArray*)var20)->values[0]=var22; +if (likely(varonce25!=NULL)) { +var26 = varonce25; } else { -var26 = ")) {"; -var27 = 4; -var28 = standard___standard__NativeString___to_s_with_length(var26, var27); -var25 = var28; -varonce24 = var25; +var27 = ")) {"; +var28 = standard___standard__NativeString___to_s_with_length(var27, 4l); +var26 = var28; +varonce25 = var26; } -var29 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var29 = array_instance Array[Object] */ -var30 = 3; -var31 = NEW_standard__NativeArray(var30, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var31)->values[0] = (val*) var20; -((struct instance_standard__NativeArray*)var31)->values[1] = (val*) var_cond; -((struct instance_standard__NativeArray*)var31)->values[2] = (val*) var25; -{ -((void (*)(val* self, val* p0, long p1))(var29->class->vft[COLOR_standard__array__Array__with_native]))(var29, var31, var30) /* with_native on */; +((struct instance_standard__NativeArray*)var20)->values[2]=var26; +} else { +var20 = varonce; +varonce = NULL; } +{ +var29 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_standard__string__Object__to_s]))(var_cond); /* to_s on */ } +((struct instance_standard__NativeArray*)var20)->values[1]=var29; { -var32 = ((val* (*)(val* self))(var29->class->vft[COLOR_standard__string__Object__to_s]))(var29) /* to_s on */; +var30 = ((val*(*)(val* self))(var20->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var20); /* native_to_s on */ } +varonce = var20; { -nit___nit__AbstractCompilerVisitor___add(var_v, var32); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var30); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } { { /* Inline parser_nodes#AAssertExpr#n_else (self) on */ -var35 = self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_else].val; /* _n_else on */ -var33 = var35; -RET_LABEL34:(void)0; +var33 = self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_else].val; /* _n_else on */ +var31 = var33; +RET_LABEL32:(void)0; } } { -nit___nit__AbstractCompilerVisitor___stmt(var_v, var33); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on */ +nit___nit__AbstractCompilerVisitor___stmt(var_v, var31); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on */ } { { /* Inline parser_nodes#AAssertExpr#n_id (self) on */ -var38 = self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_id].val; /* _n_id on */ -var36 = var38; -RET_LABEL37:(void)0; +var36 = self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_id].val; /* _n_id on */ +var34 = var36; +RET_LABEL35:(void)0; } } -var_nid = var36; -var39 = NULL; +var_nid = var34; if (var_nid == NULL) { -var40 = 0; /* is null */ +var37 = 0; /* is null */ } else { -var40 = 1; /* arg is null and recv is not */ +var37 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_nid,var39) on */ -var_other = var39; +{ /* Inline kernel#Object#!= (var_nid,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var43 = ((short int (*)(val* self, val* p0))(var_nid->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nid, var_other) /* == on */; +var40 = ((short int(*)(val* self, val* p0))(var_nid->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_nid, var_other); /* == on */ } -var44 = !var43; -var41 = var44; -goto RET_LABEL42; -RET_LABEL42:(void)0; +var41 = !var40; +var38 = var41; +goto RET_LABEL39; +RET_LABEL39:(void)0; } -var40 = var41; +var37 = var38; } -if (var40){ -if (varonce45) { -var46 = varonce45; +if (var37){ +if (unlikely(varonce42==NULL)) { +var43 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce44!=NULL)) { +var45 = varonce44; } else { -var47 = "Assert \'"; -var48 = 8; -var49 = standard___standard__NativeString___to_s_with_length(var47, var48); -var46 = var49; -varonce45 = var46; +var46 = "Assert \'"; +var47 = standard___standard__NativeString___to_s_with_length(var46, 8l); +var45 = var47; +varonce44 = var45; } -{ -var50 = nit__lexer_work___Token___text(var_nid); +((struct instance_standard__NativeArray*)var43)->values[0]=var45; +if (likely(varonce48!=NULL)) { +var49 = varonce48; +} else { +var50 = "\' failed"; +var51 = standard___standard__NativeString___to_s_with_length(var50, 8l); +var49 = var51; +varonce48 = var49; } -if (varonce51) { -var52 = varonce51; +((struct instance_standard__NativeArray*)var43)->values[2]=var49; } else { -var53 = "\' failed"; -var54 = 8; -var55 = standard___standard__NativeString___to_s_with_length(var53, var54); -var52 = var55; -varonce51 = var52; +var43 = varonce42; +varonce42 = NULL; } -var56 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var56 = array_instance Array[Object] */ -var57 = 3; -var58 = NEW_standard__NativeArray(var57, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var58)->values[0] = (val*) var46; -((struct instance_standard__NativeArray*)var58)->values[1] = (val*) var50; -((struct instance_standard__NativeArray*)var58)->values[2] = (val*) var52; { -((void (*)(val* self, val* p0, long p1))(var56->class->vft[COLOR_standard__array__Array__with_native]))(var56, var58, var57) /* with_native on */; -} +var52 = nit__lexer_work___Token___text(var_nid); } +((struct instance_standard__NativeArray*)var43)->values[1]=var52; { -var59 = ((val* (*)(val* self))(var56->class->vft[COLOR_standard__string__Object__to_s]))(var56) /* to_s on */; +var53 = ((val*(*)(val* self))(var43->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var43); /* native_to_s on */ } +varonce42 = var43; { -nit___nit__AbstractCompilerVisitor___add_abort(var_v, var59); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ +nit___nit__AbstractCompilerVisitor___add_abort(var_v, var53); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ } } else { -if (varonce60) { -var61 = varonce60; +if (likely(varonce54!=NULL)) { +var55 = varonce54; } else { -var62 = "Assert failed"; -var63 = 13; -var64 = standard___standard__NativeString___to_s_with_length(var62, var63); -var61 = var64; -varonce60 = var61; +var56 = "Assert failed"; +var57 = standard___standard__NativeString___to_s_with_length(var56, 13l); +var55 = var57; +varonce54 = var55; } { -nit___nit__AbstractCompilerVisitor___add_abort(var_v, var61); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ +nit___nit__AbstractCompilerVisitor___add_abort(var_v, var55); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ } } -if (varonce65) { -var66 = varonce65; +if (likely(varonce58!=NULL)) { +var59 = varonce58; } else { -var67 = "}"; -var68 = 1; -var69 = standard___standard__NativeString___to_s_with_length(var67, var68); -var66 = var69; -varonce65 = var66; +var60 = "}"; +var61 = standard___standard__NativeString___to_s_with_length(var60, 1l); +var59 = var61; +varonce58 = var59; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var66); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var59); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } RET_LABEL:; } @@ -1150,57 +1661,51 @@ val* var5 /* : AExpr */; val* var7 /* : AExpr */; val* var8 /* : RuntimeVariable */; val* var_i1 /* var i1: RuntimeVariable */; +val* var9 /* : NativeArray[String] */; static val* varonce; -val* var9 /* : String */; -char* var10 /* : NativeString */; -long var11 /* : Int */; -val* var12 /* : FlatString */; -static val* varonce13; -val* var14 /* : String */; -char* var15 /* : NativeString */; -long var16 /* : Int */; +static val* varonce10; +val* var11 /* : String */; +char* var12 /* : NativeString */; +val* var13 /* : FlatString */; +static val* varonce14; +val* var15 /* : String */; +char* var16 /* : NativeString */; val* var17 /* : FlatString */; -val* var18 /* : Array[Object] */; -long var19 /* : Int */; -val* var20 /* : NativeArray[Object] */; -val* var21 /* : String */; +val* var18 /* : String */; +val* var19 /* : String */; +val* var21 /* : NativeArray[String] */; +static val* varonce20; static val* varonce22; val* var23 /* : String */; char* var24 /* : NativeString */; -long var25 /* : Int */; -val* var26 /* : FlatString */; -val* var27 /* : Array[Object] */; -long var28 /* : Int */; -val* var29 /* : NativeArray[Object] */; -val* var30 /* : String */; -static val* varonce31; -val* var32 /* : String */; -char* var33 /* : NativeString */; -long var34 /* : Int */; -val* var35 /* : FlatString */; -val* var36 /* : AExpr */; -val* var38 /* : AExpr */; -val* var39 /* : RuntimeVariable */; +val* var25 /* : FlatString */; +val* var26 /* : String */; +val* var27 /* : String */; +static val* varonce28; +val* var29 /* : String */; +char* var30 /* : NativeString */; +val* var31 /* : FlatString */; +val* var32 /* : AExpr */; +val* var34 /* : AExpr */; +val* var35 /* : RuntimeVariable */; val* var_i2 /* var i2: RuntimeVariable */; -static val* varonce40; -val* var41 /* : String */; -char* var42 /* : NativeString */; -long var43 /* : Int */; -val* var44 /* : FlatString */; -static val* varonce45; +val* var37 /* : NativeArray[String] */; +static val* varonce36; +static val* varonce38; +val* var39 /* : String */; +char* var40 /* : NativeString */; +val* var41 /* : FlatString */; +static val* varonce42; +val* var43 /* : String */; +char* var44 /* : NativeString */; +val* var45 /* : FlatString */; val* var46 /* : String */; -char* var47 /* : NativeString */; -long var48 /* : Int */; -val* var49 /* : FlatString */; -val* var50 /* : Array[Object] */; -long var51 /* : Int */; -val* var52 /* : NativeArray[Object] */; -val* var53 /* : String */; -static val* varonce54; -val* var55 /* : String */; -char* var56 /* : NativeString */; -long var57 /* : Int */; -val* var58 /* : FlatString */; +val* var47 /* : String */; +val* var48 /* : String */; +static val* varonce49; +val* var50 /* : String */; +char* var51 /* : NativeString */; +val* var52 /* : FlatString */; var_v = p0; { { /* Inline typing#AExpr#mtype (self) on */ @@ -1211,8 +1716,8 @@ RET_LABEL2:(void)0; } if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2629); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2830); +fatal_exit(1); } { var4 = nit___nit__AbstractCompilerVisitor___new_var(var_v, var1); @@ -1223,8 +1728,8 @@ var_res = var4; var7 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on */ if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1823); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2053); +fatal_exit(1); } var5 = var7; RET_LABEL6:(void)0; @@ -1234,141 +1739,143 @@ RET_LABEL6:(void)0; var8 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var5); } var_i1 = var8; -if (varonce) { -var9 = varonce; +if (unlikely(varonce==NULL)) { +var9 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce10!=NULL)) { +var11 = varonce10; } else { -var10 = "if ("; -var11 = 4; -var12 = standard___standard__NativeString___to_s_with_length(var10, var11); -var9 = var12; -varonce = var9; +var12 = "if ("; +var13 = standard___standard__NativeString___to_s_with_length(var12, 4l); +var11 = var13; +varonce10 = var11; } -if (varonce13) { -var14 = varonce13; +((struct instance_standard__NativeArray*)var9)->values[0]=var11; +if (likely(varonce14!=NULL)) { +var15 = varonce14; } else { -var15 = ") {"; -var16 = 3; -var17 = standard___standard__NativeString___to_s_with_length(var15, var16); -var14 = var17; -varonce13 = var14; +var16 = ") {"; +var17 = standard___standard__NativeString___to_s_with_length(var16, 3l); +var15 = var17; +varonce14 = var15; } -var18 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var18 = array_instance Array[Object] */ -var19 = 3; -var20 = NEW_standard__NativeArray(var19, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var20)->values[0] = (val*) var9; -((struct instance_standard__NativeArray*)var20)->values[1] = (val*) var_i1; -((struct instance_standard__NativeArray*)var20)->values[2] = (val*) var14; -{ -((void (*)(val* self, val* p0, long p1))(var18->class->vft[COLOR_standard__array__Array__with_native]))(var18, var20, var19) /* with_native on */; +((struct instance_standard__NativeArray*)var9)->values[2]=var15; +} else { +var9 = varonce; +varonce = NULL; } +{ +var18 = ((val*(*)(val* self))(var_i1->class->vft[COLOR_standard__string__Object__to_s]))(var_i1); /* to_s on */ } +((struct instance_standard__NativeArray*)var9)->values[1]=var18; { -var21 = ((val* (*)(val* self))(var18->class->vft[COLOR_standard__string__Object__to_s]))(var18) /* to_s on */; +var19 = ((val*(*)(val* self))(var9->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var9); /* native_to_s on */ } +varonce = var9; { -nit___nit__AbstractCompilerVisitor___add(var_v, var21); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce22) { +if (unlikely(varonce20==NULL)) { +var21 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce22!=NULL)) { var23 = varonce22; } else { var24 = " = 1;"; -var25 = 5; -var26 = standard___standard__NativeString___to_s_with_length(var24, var25); -var23 = var26; +var25 = standard___standard__NativeString___to_s_with_length(var24, 5l); +var23 = var25; varonce22 = var23; } -var27 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var27 = array_instance Array[Object] */ -var28 = 2; -var29 = NEW_standard__NativeArray(var28, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var29)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var29)->values[1] = (val*) var23; -{ -((void (*)(val* self, val* p0, long p1))(var27->class->vft[COLOR_standard__array__Array__with_native]))(var27, var29, var28) /* with_native on */; +((struct instance_standard__NativeArray*)var21)->values[1]=var23; +} else { +var21 = varonce20; +varonce20 = NULL; } +{ +var26 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var21)->values[0]=var26; { -var30 = ((val* (*)(val* self))(var27->class->vft[COLOR_standard__string__Object__to_s]))(var27) /* to_s on */; +var27 = ((val*(*)(val* self))(var21->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var21); /* native_to_s on */ } +varonce20 = var21; { -nit___nit__AbstractCompilerVisitor___add(var_v, var30); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var27); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce31) { -var32 = varonce31; +if (likely(varonce28!=NULL)) { +var29 = varonce28; } else { -var33 = "} else {"; -var34 = 8; -var35 = standard___standard__NativeString___to_s_with_length(var33, var34); -var32 = var35; -varonce31 = var32; +var30 = "} else {"; +var31 = standard___standard__NativeString___to_s_with_length(var30, 8l); +var29 = var31; +varonce28 = var29; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var32); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var29); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } { { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on */ -var38 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on */ -if (unlikely(var38 == NULL)) { +var34 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on */ +if (unlikely(var34 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1826); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2059); +fatal_exit(1); } -var36 = var38; -RET_LABEL37:(void)0; +var32 = var34; +RET_LABEL33:(void)0; } } { -var39 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var36); +var35 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var32); } -var_i2 = var39; -if (varonce40) { -var41 = varonce40; +var_i2 = var35; +if (unlikely(varonce36==NULL)) { +var37 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce38!=NULL)) { +var39 = varonce38; } else { -var42 = " = "; -var43 = 3; -var44 = standard___standard__NativeString___to_s_with_length(var42, var43); -var41 = var44; -varonce40 = var41; +var40 = " = "; +var41 = standard___standard__NativeString___to_s_with_length(var40, 3l); +var39 = var41; +varonce38 = var39; } -if (varonce45) { -var46 = varonce45; +((struct instance_standard__NativeArray*)var37)->values[1]=var39; +if (likely(varonce42!=NULL)) { +var43 = varonce42; } else { -var47 = ";"; -var48 = 1; -var49 = standard___standard__NativeString___to_s_with_length(var47, var48); -var46 = var49; -varonce45 = var46; +var44 = ";"; +var45 = standard___standard__NativeString___to_s_with_length(var44, 1l); +var43 = var45; +varonce42 = var43; +} +((struct instance_standard__NativeArray*)var37)->values[3]=var43; +} else { +var37 = varonce36; +varonce36 = NULL; } -var50 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var50 = array_instance Array[Object] */ -var51 = 4; -var52 = NEW_standard__NativeArray(var51, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var52)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var52)->values[1] = (val*) var41; -((struct instance_standard__NativeArray*)var52)->values[2] = (val*) var_i2; -((struct instance_standard__NativeArray*)var52)->values[3] = (val*) var46; { -((void (*)(val* self, val* p0, long p1))(var50->class->vft[COLOR_standard__array__Array__with_native]))(var50, var52, var51) /* with_native on */; +var46 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var37)->values[0]=var46; +{ +var47 = ((val*(*)(val* self))(var_i2->class->vft[COLOR_standard__string__Object__to_s]))(var_i2); /* to_s on */ } +((struct instance_standard__NativeArray*)var37)->values[2]=var47; { -var53 = ((val* (*)(val* self))(var50->class->vft[COLOR_standard__string__Object__to_s]))(var50) /* to_s on */; +var48 = ((val*(*)(val* self))(var37->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var37); /* native_to_s on */ } +varonce36 = var37; { -nit___nit__AbstractCompilerVisitor___add(var_v, var53); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var48); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce54) { -var55 = varonce54; +if (likely(varonce49!=NULL)) { +var50 = varonce49; } else { -var56 = "}"; -var57 = 1; -var58 = standard___standard__NativeString___to_s_with_length(var56, var57); -var55 = var58; -varonce54 = var55; +var51 = "}"; +var52 = standard___standard__NativeString___to_s_with_length(var51, 1l); +var50 = var52; +varonce49 = var50; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var55); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var50); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } var = var_res; goto RET_LABEL; @@ -1387,57 +1894,51 @@ val* var5 /* : AExpr */; val* var7 /* : AExpr */; val* var8 /* : RuntimeVariable */; val* var_i1 /* var i1: RuntimeVariable */; +val* var9 /* : NativeArray[String] */; static val* varonce; -val* var9 /* : String */; -char* var10 /* : NativeString */; -long var11 /* : Int */; -val* var12 /* : FlatString */; -static val* varonce13; -val* var14 /* : String */; -char* var15 /* : NativeString */; -long var16 /* : Int */; +static val* varonce10; +val* var11 /* : String */; +char* var12 /* : NativeString */; +val* var13 /* : FlatString */; +static val* varonce14; +val* var15 /* : String */; +char* var16 /* : NativeString */; val* var17 /* : FlatString */; -val* var18 /* : Array[Object] */; -long var19 /* : Int */; -val* var20 /* : NativeArray[Object] */; -val* var21 /* : String */; +val* var18 /* : String */; +val* var19 /* : String */; +val* var21 /* : NativeArray[String] */; +static val* varonce20; static val* varonce22; val* var23 /* : String */; char* var24 /* : NativeString */; -long var25 /* : Int */; -val* var26 /* : FlatString */; -val* var27 /* : Array[Object] */; -long var28 /* : Int */; -val* var29 /* : NativeArray[Object] */; -val* var30 /* : String */; -static val* varonce31; -val* var32 /* : String */; -char* var33 /* : NativeString */; -long var34 /* : Int */; -val* var35 /* : FlatString */; -val* var36 /* : AExpr */; -val* var38 /* : AExpr */; -val* var39 /* : RuntimeVariable */; +val* var25 /* : FlatString */; +val* var26 /* : String */; +val* var27 /* : String */; +static val* varonce28; +val* var29 /* : String */; +char* var30 /* : NativeString */; +val* var31 /* : FlatString */; +val* var32 /* : AExpr */; +val* var34 /* : AExpr */; +val* var35 /* : RuntimeVariable */; val* var_i2 /* var i2: RuntimeVariable */; -static val* varonce40; -val* var41 /* : String */; -char* var42 /* : NativeString */; -long var43 /* : Int */; -val* var44 /* : FlatString */; -static val* varonce45; +val* var37 /* : NativeArray[String] */; +static val* varonce36; +static val* varonce38; +val* var39 /* : String */; +char* var40 /* : NativeString */; +val* var41 /* : FlatString */; +static val* varonce42; +val* var43 /* : String */; +char* var44 /* : NativeString */; +val* var45 /* : FlatString */; val* var46 /* : String */; -char* var47 /* : NativeString */; -long var48 /* : Int */; -val* var49 /* : FlatString */; -val* var50 /* : Array[Object] */; -long var51 /* : Int */; -val* var52 /* : NativeArray[Object] */; -val* var53 /* : String */; -static val* varonce54; -val* var55 /* : String */; -char* var56 /* : NativeString */; -long var57 /* : Int */; -val* var58 /* : FlatString */; +val* var47 /* : String */; +val* var48 /* : String */; +static val* varonce49; +val* var50 /* : String */; +char* var51 /* : NativeString */; +val* var52 /* : FlatString */; var_v = p0; { { /* Inline typing#AExpr#mtype (self) on */ @@ -1448,8 +1949,8 @@ RET_LABEL2:(void)0; } if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2644); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2845); +fatal_exit(1); } { var4 = nit___nit__AbstractCompilerVisitor___new_var(var_v, var1); @@ -1460,8 +1961,8 @@ var_res = var4; var7 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on */ if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1823); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2053); +fatal_exit(1); } var5 = var7; RET_LABEL6:(void)0; @@ -1471,141 +1972,143 @@ RET_LABEL6:(void)0; var8 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var5); } var_i1 = var8; -if (varonce) { -var9 = varonce; +if (unlikely(varonce==NULL)) { +var9 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce10!=NULL)) { +var11 = varonce10; } else { -var10 = "if (!"; -var11 = 5; -var12 = standard___standard__NativeString___to_s_with_length(var10, var11); -var9 = var12; -varonce = var9; +var12 = "if (!"; +var13 = standard___standard__NativeString___to_s_with_length(var12, 5l); +var11 = var13; +varonce10 = var11; } -if (varonce13) { -var14 = varonce13; +((struct instance_standard__NativeArray*)var9)->values[0]=var11; +if (likely(varonce14!=NULL)) { +var15 = varonce14; } else { -var15 = ") {"; -var16 = 3; -var17 = standard___standard__NativeString___to_s_with_length(var15, var16); -var14 = var17; -varonce13 = var14; +var16 = ") {"; +var17 = standard___standard__NativeString___to_s_with_length(var16, 3l); +var15 = var17; +varonce14 = var15; } -var18 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var18 = array_instance Array[Object] */ -var19 = 3; -var20 = NEW_standard__NativeArray(var19, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var20)->values[0] = (val*) var9; -((struct instance_standard__NativeArray*)var20)->values[1] = (val*) var_i1; -((struct instance_standard__NativeArray*)var20)->values[2] = (val*) var14; -{ -((void (*)(val* self, val* p0, long p1))(var18->class->vft[COLOR_standard__array__Array__with_native]))(var18, var20, var19) /* with_native on */; +((struct instance_standard__NativeArray*)var9)->values[2]=var15; +} else { +var9 = varonce; +varonce = NULL; } +{ +var18 = ((val*(*)(val* self))(var_i1->class->vft[COLOR_standard__string__Object__to_s]))(var_i1); /* to_s on */ } +((struct instance_standard__NativeArray*)var9)->values[1]=var18; { -var21 = ((val* (*)(val* self))(var18->class->vft[COLOR_standard__string__Object__to_s]))(var18) /* to_s on */; +var19 = ((val*(*)(val* self))(var9->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var9); /* native_to_s on */ } +varonce = var9; { -nit___nit__AbstractCompilerVisitor___add(var_v, var21); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce22) { +if (unlikely(varonce20==NULL)) { +var21 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce22!=NULL)) { var23 = varonce22; } else { var24 = " = 1;"; -var25 = 5; -var26 = standard___standard__NativeString___to_s_with_length(var24, var25); -var23 = var26; +var25 = standard___standard__NativeString___to_s_with_length(var24, 5l); +var23 = var25; varonce22 = var23; } -var27 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var27 = array_instance Array[Object] */ -var28 = 2; -var29 = NEW_standard__NativeArray(var28, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var29)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var29)->values[1] = (val*) var23; -{ -((void (*)(val* self, val* p0, long p1))(var27->class->vft[COLOR_standard__array__Array__with_native]))(var27, var29, var28) /* with_native on */; +((struct instance_standard__NativeArray*)var21)->values[1]=var23; +} else { +var21 = varonce20; +varonce20 = NULL; } +{ +var26 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var21)->values[0]=var26; { -var30 = ((val* (*)(val* self))(var27->class->vft[COLOR_standard__string__Object__to_s]))(var27) /* to_s on */; +var27 = ((val*(*)(val* self))(var21->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var21); /* native_to_s on */ } +varonce20 = var21; { -nit___nit__AbstractCompilerVisitor___add(var_v, var30); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var27); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce31) { -var32 = varonce31; +if (likely(varonce28!=NULL)) { +var29 = varonce28; } else { -var33 = "} else {"; -var34 = 8; -var35 = standard___standard__NativeString___to_s_with_length(var33, var34); -var32 = var35; -varonce31 = var32; +var30 = "} else {"; +var31 = standard___standard__NativeString___to_s_with_length(var30, 8l); +var29 = var31; +varonce28 = var29; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var32); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var29); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } { { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on */ -var38 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on */ -if (unlikely(var38 == NULL)) { +var34 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on */ +if (unlikely(var34 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1826); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2059); +fatal_exit(1); } -var36 = var38; -RET_LABEL37:(void)0; +var32 = var34; +RET_LABEL33:(void)0; } } { -var39 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var36); +var35 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var32); } -var_i2 = var39; -if (varonce40) { -var41 = varonce40; +var_i2 = var35; +if (unlikely(varonce36==NULL)) { +var37 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce38!=NULL)) { +var39 = varonce38; } else { -var42 = " = "; -var43 = 3; -var44 = standard___standard__NativeString___to_s_with_length(var42, var43); -var41 = var44; -varonce40 = var41; +var40 = " = "; +var41 = standard___standard__NativeString___to_s_with_length(var40, 3l); +var39 = var41; +varonce38 = var39; } -if (varonce45) { -var46 = varonce45; +((struct instance_standard__NativeArray*)var37)->values[1]=var39; +if (likely(varonce42!=NULL)) { +var43 = varonce42; } else { -var47 = ";"; -var48 = 1; -var49 = standard___standard__NativeString___to_s_with_length(var47, var48); -var46 = var49; -varonce45 = var46; +var44 = ";"; +var45 = standard___standard__NativeString___to_s_with_length(var44, 1l); +var43 = var45; +varonce42 = var43; +} +((struct instance_standard__NativeArray*)var37)->values[3]=var43; +} else { +var37 = varonce36; +varonce36 = NULL; } -var50 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var50 = array_instance Array[Object] */ -var51 = 4; -var52 = NEW_standard__NativeArray(var51, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var52)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var52)->values[1] = (val*) var41; -((struct instance_standard__NativeArray*)var52)->values[2] = (val*) var_i2; -((struct instance_standard__NativeArray*)var52)->values[3] = (val*) var46; { -((void (*)(val* self, val* p0, long p1))(var50->class->vft[COLOR_standard__array__Array__with_native]))(var50, var52, var51) /* with_native on */; +var46 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var37)->values[0]=var46; +{ +var47 = ((val*(*)(val* self))(var_i2->class->vft[COLOR_standard__string__Object__to_s]))(var_i2); /* to_s on */ } +((struct instance_standard__NativeArray*)var37)->values[2]=var47; { -var53 = ((val* (*)(val* self))(var50->class->vft[COLOR_standard__string__Object__to_s]))(var50) /* to_s on */; +var48 = ((val*(*)(val* self))(var37->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var37); /* native_to_s on */ } +varonce36 = var37; { -nit___nit__AbstractCompilerVisitor___add(var_v, var53); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var48); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce54) { -var55 = varonce54; +if (likely(varonce49!=NULL)) { +var50 = varonce49; } else { -var56 = "}"; -var57 = 1; -var58 = standard___standard__NativeString___to_s_with_length(var56, var57); -var55 = var58; -varonce54 = var55; +var51 = "}"; +var52 = standard___standard__NativeString___to_s_with_length(var51, 1l); +var50 = var52; +varonce49 = var50; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var55); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var50); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } var = var_res; goto RET_LABEL; @@ -1624,57 +2127,51 @@ val* var5 /* : AExpr */; val* var7 /* : AExpr */; val* var8 /* : RuntimeVariable */; val* var_i1 /* var i1: RuntimeVariable */; +val* var9 /* : NativeArray[String] */; static val* varonce; -val* var9 /* : String */; -char* var10 /* : NativeString */; -long var11 /* : Int */; -val* var12 /* : FlatString */; -static val* varonce13; -val* var14 /* : String */; -char* var15 /* : NativeString */; -long var16 /* : Int */; +static val* varonce10; +val* var11 /* : String */; +char* var12 /* : NativeString */; +val* var13 /* : FlatString */; +static val* varonce14; +val* var15 /* : String */; +char* var16 /* : NativeString */; val* var17 /* : FlatString */; -val* var18 /* : Array[Object] */; -long var19 /* : Int */; -val* var20 /* : NativeArray[Object] */; -val* var21 /* : String */; +val* var18 /* : String */; +val* var19 /* : String */; +val* var21 /* : NativeArray[String] */; +static val* varonce20; static val* varonce22; val* var23 /* : String */; char* var24 /* : NativeString */; -long var25 /* : Int */; -val* var26 /* : FlatString */; -val* var27 /* : Array[Object] */; -long var28 /* : Int */; -val* var29 /* : NativeArray[Object] */; -val* var30 /* : String */; -static val* varonce31; -val* var32 /* : String */; -char* var33 /* : NativeString */; -long var34 /* : Int */; -val* var35 /* : FlatString */; -val* var36 /* : AExpr */; -val* var38 /* : AExpr */; -val* var39 /* : RuntimeVariable */; +val* var25 /* : FlatString */; +val* var26 /* : String */; +val* var27 /* : String */; +static val* varonce28; +val* var29 /* : String */; +char* var30 /* : NativeString */; +val* var31 /* : FlatString */; +val* var32 /* : AExpr */; +val* var34 /* : AExpr */; +val* var35 /* : RuntimeVariable */; val* var_i2 /* var i2: RuntimeVariable */; -static val* varonce40; -val* var41 /* : String */; -char* var42 /* : NativeString */; -long var43 /* : Int */; -val* var44 /* : FlatString */; -static val* varonce45; +val* var37 /* : NativeArray[String] */; +static val* varonce36; +static val* varonce38; +val* var39 /* : String */; +char* var40 /* : NativeString */; +val* var41 /* : FlatString */; +static val* varonce42; +val* var43 /* : String */; +char* var44 /* : NativeString */; +val* var45 /* : FlatString */; val* var46 /* : String */; -char* var47 /* : NativeString */; -long var48 /* : Int */; -val* var49 /* : FlatString */; -val* var50 /* : Array[Object] */; -long var51 /* : Int */; -val* var52 /* : NativeArray[Object] */; -val* var53 /* : String */; -static val* varonce54; -val* var55 /* : String */; -char* var56 /* : NativeString */; -long var57 /* : Int */; -val* var58 /* : FlatString */; +val* var47 /* : String */; +val* var48 /* : String */; +static val* varonce49; +val* var50 /* : String */; +char* var51 /* : NativeString */; +val* var52 /* : FlatString */; var_v = p0; { { /* Inline typing#AExpr#mtype (self) on */ @@ -1685,8 +2182,8 @@ RET_LABEL2:(void)0; } if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2659); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2860); +fatal_exit(1); } { var4 = nit___nit__AbstractCompilerVisitor___new_var(var_v, var1); @@ -1697,8 +2194,8 @@ var_res = var4; var7 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on */ if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1823); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2053); +fatal_exit(1); } var5 = var7; RET_LABEL6:(void)0; @@ -1708,141 +2205,143 @@ RET_LABEL6:(void)0; var8 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var5); } var_i1 = var8; -if (varonce) { -var9 = varonce; +if (unlikely(varonce==NULL)) { +var9 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce10!=NULL)) { +var11 = varonce10; } else { -var10 = "if (!"; -var11 = 5; -var12 = standard___standard__NativeString___to_s_with_length(var10, var11); -var9 = var12; -varonce = var9; +var12 = "if (!"; +var13 = standard___standard__NativeString___to_s_with_length(var12, 5l); +var11 = var13; +varonce10 = var11; } -if (varonce13) { -var14 = varonce13; +((struct instance_standard__NativeArray*)var9)->values[0]=var11; +if (likely(varonce14!=NULL)) { +var15 = varonce14; } else { -var15 = ") {"; -var16 = 3; -var17 = standard___standard__NativeString___to_s_with_length(var15, var16); -var14 = var17; -varonce13 = var14; +var16 = ") {"; +var17 = standard___standard__NativeString___to_s_with_length(var16, 3l); +var15 = var17; +varonce14 = var15; } -var18 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var18 = array_instance Array[Object] */ -var19 = 3; -var20 = NEW_standard__NativeArray(var19, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var20)->values[0] = (val*) var9; -((struct instance_standard__NativeArray*)var20)->values[1] = (val*) var_i1; -((struct instance_standard__NativeArray*)var20)->values[2] = (val*) var14; -{ -((void (*)(val* self, val* p0, long p1))(var18->class->vft[COLOR_standard__array__Array__with_native]))(var18, var20, var19) /* with_native on */; +((struct instance_standard__NativeArray*)var9)->values[2]=var15; +} else { +var9 = varonce; +varonce = NULL; } +{ +var18 = ((val*(*)(val* self))(var_i1->class->vft[COLOR_standard__string__Object__to_s]))(var_i1); /* to_s on */ } +((struct instance_standard__NativeArray*)var9)->values[1]=var18; { -var21 = ((val* (*)(val* self))(var18->class->vft[COLOR_standard__string__Object__to_s]))(var18) /* to_s on */; +var19 = ((val*(*)(val* self))(var9->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var9); /* native_to_s on */ } +varonce = var9; { -nit___nit__AbstractCompilerVisitor___add(var_v, var21); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce22) { +if (unlikely(varonce20==NULL)) { +var21 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce22!=NULL)) { var23 = varonce22; } else { var24 = " = 0;"; -var25 = 5; -var26 = standard___standard__NativeString___to_s_with_length(var24, var25); -var23 = var26; +var25 = standard___standard__NativeString___to_s_with_length(var24, 5l); +var23 = var25; varonce22 = var23; } -var27 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var27 = array_instance Array[Object] */ -var28 = 2; -var29 = NEW_standard__NativeArray(var28, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var29)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var29)->values[1] = (val*) var23; -{ -((void (*)(val* self, val* p0, long p1))(var27->class->vft[COLOR_standard__array__Array__with_native]))(var27, var29, var28) /* with_native on */; +((struct instance_standard__NativeArray*)var21)->values[1]=var23; +} else { +var21 = varonce20; +varonce20 = NULL; } +{ +var26 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var21)->values[0]=var26; { -var30 = ((val* (*)(val* self))(var27->class->vft[COLOR_standard__string__Object__to_s]))(var27) /* to_s on */; +var27 = ((val*(*)(val* self))(var21->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var21); /* native_to_s on */ } +varonce20 = var21; { -nit___nit__AbstractCompilerVisitor___add(var_v, var30); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var27); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce31) { -var32 = varonce31; +if (likely(varonce28!=NULL)) { +var29 = varonce28; } else { -var33 = "} else {"; -var34 = 8; -var35 = standard___standard__NativeString___to_s_with_length(var33, var34); -var32 = var35; -varonce31 = var32; +var30 = "} else {"; +var31 = standard___standard__NativeString___to_s_with_length(var30, 8l); +var29 = var31; +varonce28 = var29; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var32); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var29); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } { { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on */ -var38 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on */ -if (unlikely(var38 == NULL)) { +var34 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on */ +if (unlikely(var34 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1826); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2059); +fatal_exit(1); } -var36 = var38; -RET_LABEL37:(void)0; +var32 = var34; +RET_LABEL33:(void)0; } } { -var39 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var36); +var35 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var32); } -var_i2 = var39; -if (varonce40) { -var41 = varonce40; +var_i2 = var35; +if (unlikely(varonce36==NULL)) { +var37 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce38!=NULL)) { +var39 = varonce38; } else { -var42 = " = "; -var43 = 3; -var44 = standard___standard__NativeString___to_s_with_length(var42, var43); -var41 = var44; -varonce40 = var41; +var40 = " = "; +var41 = standard___standard__NativeString___to_s_with_length(var40, 3l); +var39 = var41; +varonce38 = var39; } -if (varonce45) { -var46 = varonce45; +((struct instance_standard__NativeArray*)var37)->values[1]=var39; +if (likely(varonce42!=NULL)) { +var43 = varonce42; } else { -var47 = ";"; -var48 = 1; -var49 = standard___standard__NativeString___to_s_with_length(var47, var48); -var46 = var49; -varonce45 = var46; +var44 = ";"; +var45 = standard___standard__NativeString___to_s_with_length(var44, 1l); +var43 = var45; +varonce42 = var43; +} +((struct instance_standard__NativeArray*)var37)->values[3]=var43; +} else { +var37 = varonce36; +varonce36 = NULL; } -var50 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var50 = array_instance Array[Object] */ -var51 = 4; -var52 = NEW_standard__NativeArray(var51, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var52)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var52)->values[1] = (val*) var41; -((struct instance_standard__NativeArray*)var52)->values[2] = (val*) var_i2; -((struct instance_standard__NativeArray*)var52)->values[3] = (val*) var46; { -((void (*)(val* self, val* p0, long p1))(var50->class->vft[COLOR_standard__array__Array__with_native]))(var50, var52, var51) /* with_native on */; +var46 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var37)->values[0]=var46; +{ +var47 = ((val*(*)(val* self))(var_i2->class->vft[COLOR_standard__string__Object__to_s]))(var_i2); /* to_s on */ } +((struct instance_standard__NativeArray*)var37)->values[2]=var47; { -var53 = ((val* (*)(val* self))(var50->class->vft[COLOR_standard__string__Object__to_s]))(var50) /* to_s on */; +var48 = ((val*(*)(val* self))(var37->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var37); /* native_to_s on */ } +varonce36 = var37; { -nit___nit__AbstractCompilerVisitor___add(var_v, var53); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var48); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce54) { -var55 = varonce54; +if (likely(varonce49!=NULL)) { +var50 = varonce49; } else { -var56 = "}"; -var57 = 1; -var58 = standard___standard__NativeString___to_s_with_length(var56, var57); -var55 = var58; -varonce54 = var55; +var51 = "}"; +var52 = standard___standard__NativeString___to_s_with_length(var51, 1l); +var50 = var52; +varonce49 = var50; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var55); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var50); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } var = var_res; goto RET_LABEL; @@ -1857,26 +2356,25 @@ val* var1 /* : AExpr */; val* var3 /* : AExpr */; val* var4 /* : RuntimeVariable */; val* var_cond /* var cond: RuntimeVariable */; +val* var5 /* : NativeArray[String] */; static val* varonce; -val* var5 /* : String */; -char* var6 /* : NativeString */; -long var7 /* : Int */; -val* var8 /* : FlatString */; -val* var9 /* : Array[Object] */; -long var10 /* : Int */; -val* var11 /* : NativeArray[Object] */; -val* var12 /* : String */; -val* var13 /* : nullable MType */; -val* var15 /* : nullable MType */; -val* var16 /* : RuntimeVariable */; +static val* varonce6; +val* var7 /* : String */; +char* var8 /* : NativeString */; +val* var9 /* : FlatString */; +val* var10 /* : String */; +val* var11 /* : String */; +val* var12 /* : nullable MType */; +val* var14 /* : nullable MType */; +val* var15 /* : RuntimeVariable */; var_v = p0; { { /* Inline parser_nodes#ANotExpr#n_expr (self) on */ var3 = self->attrs[COLOR_nit__parser_nodes__ANotExpr___n_expr].val; /* _n_expr on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1857); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2093); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -1886,44 +2384,45 @@ RET_LABEL2:(void)0; var4 = nit___nit__AbstractCompilerVisitor___expr_bool(var_v, var1); } var_cond = var4; -if (varonce) { -var5 = varonce; +if (unlikely(varonce==NULL)) { +var5 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce6!=NULL)) { +var7 = varonce6; } else { -var6 = "!"; -var7 = 1; -var8 = standard___standard__NativeString___to_s_with_length(var6, var7); -var5 = var8; -varonce = var5; +var8 = "!"; +var9 = standard___standard__NativeString___to_s_with_length(var8, 1l); +var7 = var9; +varonce6 = var7; } -var9 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var9 = array_instance Array[Object] */ -var10 = 2; -var11 = NEW_standard__NativeArray(var10, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var11)->values[0] = (val*) var5; -((struct instance_standard__NativeArray*)var11)->values[1] = (val*) var_cond; -{ -((void (*)(val* self, val* p0, long p1))(var9->class->vft[COLOR_standard__array__Array__with_native]))(var9, var11, var10) /* with_native on */; +((struct instance_standard__NativeArray*)var5)->values[0]=var7; +} else { +var5 = varonce; +varonce = NULL; } +{ +var10 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_standard__string__Object__to_s]))(var_cond); /* to_s on */ } +((struct instance_standard__NativeArray*)var5)->values[1]=var10; { -var12 = ((val* (*)(val* self))(var9->class->vft[COLOR_standard__string__Object__to_s]))(var9) /* to_s on */; +var11 = ((val*(*)(val* self))(var5->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var5); /* native_to_s on */ } +varonce = var5; { { /* Inline typing#AExpr#mtype (self) on */ -var15 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on */ -var13 = var15; -RET_LABEL14:(void)0; +var14 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on */ +var12 = var14; +RET_LABEL13:(void)0; } } -if (unlikely(var13 == NULL)) { +if (unlikely(var12 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2675); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2876); +fatal_exit(1); } { -var16 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var12, var13); +var15 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var11, var12); } -var = var16; +var = var15; goto RET_LABEL; RET_LABEL:; return var; @@ -1938,38 +2437,32 @@ val* var4 /* : RuntimeVariable */; val* var_res /* var res: RuntimeVariable */; val* var5 /* : AExpr */; val* var7 /* : AExpr */; -val* var8 /* : null */; -val* var9 /* : RuntimeVariable */; +val* var8 /* : RuntimeVariable */; val* var_i1 /* var i1: RuntimeVariable */; +val* var9 /* : NativeArray[String] */; static val* varonce; -val* var10 /* : String */; -char* var11 /* : NativeString */; -long var12 /* : Int */; +static val* varonce10; +val* var11 /* : String */; +char* var12 /* : NativeString */; val* var13 /* : FlatString */; static val* varonce14; val* var15 /* : String */; char* var16 /* : NativeString */; -long var17 /* : Int */; -val* var18 /* : FlatString */; -val* var19 /* : Array[Object] */; -long var20 /* : Int */; -val* var21 /* : NativeArray[Object] */; -val* var22 /* : String */; -static val* varonce23; -val* var24 /* : String */; -char* var25 /* : NativeString */; -long var26 /* : Int */; -val* var27 /* : FlatString */; -val* var28 /* : AExpr */; -val* var30 /* : AExpr */; -val* var31 /* : null */; -val* var32 /* : RuntimeVariable */; +val* var17 /* : FlatString */; +val* var18 /* : String */; +val* var19 /* : String */; +static val* varonce20; +val* var21 /* : String */; +char* var22 /* : NativeString */; +val* var23 /* : FlatString */; +val* var24 /* : AExpr */; +val* var26 /* : AExpr */; +val* var27 /* : RuntimeVariable */; val* var_i2 /* var i2: RuntimeVariable */; -static val* varonce33; -val* var34 /* : String */; -char* var35 /* : NativeString */; -long var36 /* : Int */; -val* var37 /* : FlatString */; +static val* varonce28; +val* var29 /* : String */; +char* var30 /* : NativeString */; +val* var31 /* : FlatString */; var_v = p0; { { /* Inline typing#AExpr#mtype (self) on */ @@ -1980,8 +2473,8 @@ RET_LABEL2:(void)0; } if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2682); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2883); +fatal_exit(1); } { var4 = nit___nit__AbstractCompilerVisitor___new_var(var_v, var1); @@ -1992,99 +2485,95 @@ var_res = var4; var7 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on */ if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1823); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2053); +fatal_exit(1); } var5 = var7; RET_LABEL6:(void)0; } } -var8 = NULL; { -var9 = nit___nit__AbstractCompilerVisitor___expr(var_v, var5, var8); +var8 = nit___nit__AbstractCompilerVisitor___expr(var_v, var5, ((val*)NULL)); } -var_i1 = var9; -if (varonce) { -var10 = varonce; +var_i1 = var8; +if (unlikely(varonce==NULL)) { +var9 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce10!=NULL)) { +var11 = varonce10; } else { -var11 = "if ("; -var12 = 4; -var13 = standard___standard__NativeString___to_s_with_length(var11, var12); -var10 = var13; -varonce = var10; +var12 = "if ("; +var13 = standard___standard__NativeString___to_s_with_length(var12, 4l); +var11 = var13; +varonce10 = var11; } -if (varonce14) { +((struct instance_standard__NativeArray*)var9)->values[0]=var11; +if (likely(varonce14!=NULL)) { var15 = varonce14; } else { var16 = "!=NULL) {"; -var17 = 9; -var18 = standard___standard__NativeString___to_s_with_length(var16, var17); -var15 = var18; +var17 = standard___standard__NativeString___to_s_with_length(var16, 9l); +var15 = var17; varonce14 = var15; } -var19 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var19 = array_instance Array[Object] */ -var20 = 3; -var21 = NEW_standard__NativeArray(var20, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var21)->values[0] = (val*) var10; -((struct instance_standard__NativeArray*)var21)->values[1] = (val*) var_i1; -((struct instance_standard__NativeArray*)var21)->values[2] = (val*) var15; -{ -((void (*)(val* self, val* p0, long p1))(var19->class->vft[COLOR_standard__array__Array__with_native]))(var19, var21, var20) /* with_native on */; -} +((struct instance_standard__NativeArray*)var9)->values[2]=var15; +} else { +var9 = varonce; +varonce = NULL; } { -var22 = ((val* (*)(val* self))(var19->class->vft[COLOR_standard__string__Object__to_s]))(var19) /* to_s on */; +var18 = ((val*(*)(val* self))(var_i1->class->vft[COLOR_standard__string__Object__to_s]))(var_i1); /* to_s on */ } +((struct instance_standard__NativeArray*)var9)->values[1]=var18; { -nit___nit__AbstractCompilerVisitor___add(var_v, var22); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +var19 = ((val*(*)(val* self))(var9->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var9); /* native_to_s on */ +} +varonce = var9; +{ +nit___nit__AbstractCompilerVisitor___add(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } { nit___nit__AbstractCompilerVisitor___assign(var_v, var_res, var_i1); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on */ } -if (varonce23) { -var24 = varonce23; +if (likely(varonce20!=NULL)) { +var21 = varonce20; } else { -var25 = "} else {"; -var26 = 8; -var27 = standard___standard__NativeString___to_s_with_length(var25, var26); -var24 = var27; -varonce23 = var24; +var22 = "} else {"; +var23 = standard___standard__NativeString___to_s_with_length(var22, 8l); +var21 = var23; +varonce20 = var21; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var24); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var21); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } { { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on */ -var30 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on */ -if (unlikely(var30 == NULL)) { +var26 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on */ +if (unlikely(var26 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1826); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2059); +fatal_exit(1); } -var28 = var30; -RET_LABEL29:(void)0; +var24 = var26; +RET_LABEL25:(void)0; } } -var31 = NULL; { -var32 = nit___nit__AbstractCompilerVisitor___expr(var_v, var28, var31); +var27 = nit___nit__AbstractCompilerVisitor___expr(var_v, var24, ((val*)NULL)); } -var_i2 = var32; +var_i2 = var27; { nit___nit__AbstractCompilerVisitor___assign(var_v, var_res, var_i2); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on */ } -if (varonce33) { -var34 = varonce33; +if (likely(varonce28!=NULL)) { +var29 = varonce28; } else { -var35 = "}"; -var36 = 1; -var37 = standard___standard__NativeString___to_s_with_length(var35, var36); -var34 = var37; -varonce33 = var34; +var30 = "}"; +var31 = standard___standard__NativeString___to_s_with_length(var30, 1l); +var29 = var31; +varonce28 = var29; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var34); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var29); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } var = var_res; goto RET_LABEL; @@ -2097,15 +2586,8 @@ val* var /* : nullable RuntimeVariable */; val* var_v /* var v: AbstractCompilerVisitor */; val* var1 /* : nullable Int */; val* var3 /* : nullable Int */; -val* var4 /* : String */; +val* var4 /* : RuntimeVariable */; long var5 /* : Int */; -val* var6 /* : Array[Object] */; -long var7 /* : Int */; -val* var8 /* : NativeArray[Object] */; -val* var9 /* : String */; -val* var10 /* : nullable MType */; -val* var12 /* : nullable MType */; -val* var13 /* : RuntimeVariable */; var_v = p0; { { /* Inline literal#AIntExpr#value (self) on */ @@ -2114,42 +2596,46 @@ var1 = var3; RET_LABEL2:(void)0; } } -if (var1 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2695); -show_backtrace(1); -} else { -var5 = ((struct instance_standard__Int*)var1)->value; /* autounbox from nullable Int to Int */; -var4 = standard__string___Int___Object__to_s(var5); +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2896); +fatal_exit(1); } -var6 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var6 = array_instance Array[Object] */ -var7 = 1; -var8 = NEW_standard__NativeArray(var7, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var8)->values[0] = (val*) var4; { -((void (*)(val* self, val* p0, long p1))(var6->class->vft[COLOR_standard__array__Array__with_native]))(var6, var8, var7) /* with_native on */; +var5 = (long)(var1)>>2; +var4 = nit___nit__AbstractCompilerVisitor___int_instance(var_v, var5); } +var = var4; +goto RET_LABEL; +RET_LABEL:; +return var; } +/* method abstract_compiler#AByteExpr#expr for (self: AByteExpr, AbstractCompilerVisitor): nullable RuntimeVariable */ +val* nit__abstract_compiler___AByteExpr___AExpr__expr(val* self, val* p0) { +val* var /* : nullable RuntimeVariable */; +val* var_v /* var v: AbstractCompilerVisitor */; +val* var1 /* : nullable Byte */; +val* var3 /* : nullable Byte */; +val* var4 /* : RuntimeVariable */; +unsigned char var5 /* : Byte */; +var_v = p0; { -var9 = ((val* (*)(val* self))(var6->class->vft[COLOR_standard__string__Object__to_s]))(var6) /* to_s on */; -} -{ -{ /* Inline typing#AExpr#mtype (self) on */ -var12 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on */ -var10 = var12; -RET_LABEL11:(void)0; +{ /* Inline literal#AByteExpr#value (self) on */ +var3 = self->attrs[COLOR_nit__literal__AByteExpr___value].val; /* _value on */ +var1 = var3; +RET_LABEL2:(void)0; } } -if (unlikely(var10 == NULL)) { +if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2695); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2900); +fatal_exit(1); } { -var13 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var9, var10); +var5 = ((struct instance_standard__Byte*)var1)->value; /* autounbox from nullable Byte to Byte */; +var4 = nit___nit__AbstractCompilerVisitor___byte_instance(var_v, var5); } -var = var13; +var = var4; goto RET_LABEL; RET_LABEL:; return var; @@ -2158,540 +2644,1009 @@ return var; val* nit__abstract_compiler___AFloatExpr___AExpr__expr(val* self, val* p0) { val* var /* : nullable RuntimeVariable */; val* var_v /* var v: AbstractCompilerVisitor */; -val* var1 /* : TFloat */; -val* var3 /* : TFloat */; -val* var4 /* : String */; -val* var5 /* : Array[Object] */; -long var6 /* : Int */; -val* var7 /* : NativeArray[Object] */; -val* var8 /* : String */; -val* var9 /* : nullable MType */; -val* var11 /* : nullable MType */; -val* var12 /* : RuntimeVariable */; +val* var1 /* : NativeArray[String] */; +static val* varonce; +val* var2 /* : TFloat */; +val* var4 /* : TFloat */; +val* var5 /* : String */; +val* var6 /* : String */; +val* var7 /* : RuntimeVariable */; var_v = p0; +if (unlikely(varonce==NULL)) { +var1 = NEW_standard__NativeArray(1l, &type_standard__NativeArray__standard__String); +} else { +var1 = varonce; +varonce = NULL; +} { { /* Inline parser_nodes#AFloatExpr#n_float (self) on */ -var3 = self->attrs[COLOR_nit__parser_nodes__AFloatExpr___n_float].val; /* _n_float on */ -if (unlikely(var3 == NULL)) { +var4 = self->attrs[COLOR_nit__parser_nodes__AFloatExpr___n_float].val; /* _n_float on */ +if (unlikely(var4 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_float"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2232); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2581); +fatal_exit(1); +} +var2 = var4; +RET_LABEL3:(void)0; +} } +{ +var5 = nit__lexer_work___Token___text(var2); +} +((struct instance_standard__NativeArray*)var1)->values[0]=var5; +{ +var6 = ((val*(*)(val* self))(var1->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1); /* native_to_s on */ +} +varonce = var1; +{ +var7 = nit___nit__AbstractCompilerVisitor___float_instance(var_v, var6); +} +var = var7; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method abstract_compiler#ACharExpr#expr for (self: ACharExpr, AbstractCompilerVisitor): nullable RuntimeVariable */ +val* nit__abstract_compiler___ACharExpr___AExpr__expr(val* self, val* p0) { +val* var /* : nullable RuntimeVariable */; +val* var_v /* var v: AbstractCompilerVisitor */; +val* var1 /* : nullable Char */; +val* var3 /* : nullable Char */; +val* var4 /* : RuntimeVariable */; +uint32_t var5 /* : Char */; +var_v = p0; +{ +{ /* Inline literal#ACharExpr#value (self) on */ +var3 = self->attrs[COLOR_nit__literal__ACharExpr___value].val; /* _value on */ var1 = var3; RET_LABEL2:(void)0; } } +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2908); +fatal_exit(1); +} { -var4 = nit__lexer_work___Token___text(var1); +var5 = (uint32_t)((long)(var1)>>2); +var4 = nit___nit__AbstractCompilerVisitor___char_instance(var_v, var5); +} +var = var4; +goto RET_LABEL; +RET_LABEL:; +return var; } -var5 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var5 = array_instance Array[Object] */ -var6 = 1; -var7 = NEW_standard__NativeArray(var6, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var7)->values[0] = (val*) var4; +/* method abstract_compiler#AArrayExpr#expr for (self: AArrayExpr, AbstractCompilerVisitor): nullable RuntimeVariable */ +val* nit__abstract_compiler___AArrayExpr___AExpr__expr(val* self, val* p0) { +val* var /* : nullable RuntimeVariable */; +val* var_v /* var v: AbstractCompilerVisitor */; +val* var1 /* : nullable MType */; +val* var3 /* : nullable MType */; +val* var_mtype /* var mtype: MType */; +val* var4 /* : Array[RuntimeVariable] */; +val* var_array /* var array: Array[RuntimeVariable] */; +val* var5 /* : RuntimeVariable */; +val* var_res /* var res: RuntimeVariable */; +val* var6 /* : nullable StaticFrame */; +val* var8 /* : nullable StaticFrame */; +val* var9 /* : nullable RuntimeVariable */; +val* var11 /* : nullable RuntimeVariable */; +val* var_old_comprehension /* var old_comprehension: nullable RuntimeVariable */; +val* var12 /* : nullable StaticFrame */; +val* var14 /* : nullable StaticFrame */; +val* var16 /* : ANodes[AExpr] */; +val* var18 /* : ANodes[AExpr] */; +val* var_ /* var : ANodes[AExpr] */; +val* var19 /* : Iterator[ANode] */; +val* var_20 /* var : Iterator[AExpr] */; +short int var21 /* : Bool */; +val* var22 /* : nullable Object */; +val* var_nexpr /* var nexpr: AExpr */; +val* var23 /* : nullable StaticFrame */; +val* var25 /* : nullable StaticFrame */; +var_v = p0; { -((void (*)(val* self, val* p0, long p1))(var5->class->vft[COLOR_standard__array__Array__with_native]))(var5, var7, var6) /* with_native on */; +{ /* Inline typing#AArrayExpr#element_mtype (self) on */ +var3 = self->attrs[COLOR_nit__typing__AArrayExpr___element_mtype].val; /* _element_mtype on */ +var1 = var3; +RET_LABEL2:(void)0; +} +} +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2914); +fatal_exit(1); } +var_mtype = var1; +var4 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); +{ +standard___standard__Array___standard__kernel__Object__init(var4); /* Direct call array#Array#init on */ } +var_array = var4; { -var8 = ((val* (*)(val* self))(var5->class->vft[COLOR_standard__string__Object__to_s]))(var5) /* to_s on */; +var5 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__array_instance(var_v, var_array, var_mtype); } +var_res = var5; { -{ /* Inline typing#AExpr#mtype (self) on */ -var11 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on */ +{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on */ +var8 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ +var6 = var8; +RET_LABEL7:(void)0; +} +} +if (var6 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2918); +fatal_exit(1); +} else { +{ /* Inline abstract_compiler#StaticFrame#comprehension (var6) on */ +if (unlikely(var6 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1848); +fatal_exit(1); +} +var11 = var6->attrs[COLOR_nit__abstract_compiler__StaticFrame___comprehension].val; /* _comprehension on */ var9 = var11; RET_LABEL10:(void)0; } } -if (unlikely(var9 == NULL)) { +var_old_comprehension = var9; +{ +{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on */ +var14 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ +var12 = var14; +RET_LABEL13:(void)0; +} +} +if (var12 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2919); +fatal_exit(1); +} else { +{ /* Inline abstract_compiler#StaticFrame#comprehension= (var12,var_res) on */ +if (unlikely(var12 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1848); +fatal_exit(1); +} +var12->attrs[COLOR_nit__abstract_compiler__StaticFrame___comprehension].val = var_res; /* _comprehension on */ +RET_LABEL15:(void)0; +} +} +{ +{ /* Inline parser_nodes#AArrayExpr#n_exprs (self) on */ +var18 = self->attrs[COLOR_nit__parser_nodes__AArrayExpr___n_exprs].val; /* _n_exprs on */ +if (unlikely(var18 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2456); +fatal_exit(1); +} +var16 = var18; +RET_LABEL17:(void)0; +} +} +var_ = var16; +{ +var19 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_); +} +var_20 = var19; +for(;;) { +{ +var21 = ((short int(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_20); /* is_ok on */ +} +if (var21){ +{ +var22 = ((val*(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_20); /* item on */ +} +var_nexpr = var22; +{ +nit___nit__AbstractCompilerVisitor___stmt(var_v, var_nexpr); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on */ +} +{ +((void(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_20); /* next on */ +} +} else { +goto BREAK_label; +} +} +BREAK_label: (void)0; +{ +((void(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_20); /* finish on */ +} +{ +{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on */ +var25 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ +var23 = var25; +RET_LABEL24:(void)0; +} +} +if (var23 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2923); +fatal_exit(1); +} else { +{ /* Inline abstract_compiler#StaticFrame#comprehension= (var23,var_old_comprehension) on */ +if (unlikely(var23 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1848); +fatal_exit(1); +} +var23->attrs[COLOR_nit__abstract_compiler__StaticFrame___comprehension].val = var_old_comprehension; /* _comprehension on */ +RET_LABEL26:(void)0; +} +} +var = var_res; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method abstract_compiler#AStringFormExpr#expr for (self: AStringFormExpr, AbstractCompilerVisitor): nullable RuntimeVariable */ +val* nit__abstract_compiler___AStringFormExpr___AExpr__expr(val* self, val* p0) { +val* var /* : nullable RuntimeVariable */; +val* var_v /* var v: AbstractCompilerVisitor */; +val* var1 /* : nullable String */; +val* var3 /* : nullable String */; +val* var4 /* : RuntimeVariable */; +var_v = p0; +{ +{ /* Inline literal#AStringFormExpr#value (self) on */ +var3 = self->attrs[COLOR_nit__literal__AStringFormExpr___value].val; /* _value on */ +var1 = var3; +RET_LABEL2:(void)0; +} +} +if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2699); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2930); +fatal_exit(1); } { -var12 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var8, var9); +var4 = nit___nit__AbstractCompilerVisitor___string_instance(var_v, var1); } -var = var12; +var = var4; goto RET_LABEL; RET_LABEL:; return var; } -/* method abstract_compiler#ACharExpr#expr for (self: ACharExpr, AbstractCompilerVisitor): nullable RuntimeVariable */ -val* nit__abstract_compiler___ACharExpr___AExpr__expr(val* self, val* p0) { +/* method abstract_compiler#ASuperstringExpr#expr for (self: ASuperstringExpr, AbstractCompilerVisitor): nullable RuntimeVariable */ +val* nit__abstract_compiler___ASuperstringExpr___AExpr__expr(val* self, val* p0) { val* var /* : nullable RuntimeVariable */; val* var_v /* var v: AbstractCompilerVisitor */; +val* var1 /* : nullable MType */; +val* var3 /* : nullable MType */; +val* var_type_string /* var type_string: MType */; +val* var4 /* : Array[AExpr] */; +val* var_array /* var array: Array[AExpr] */; +val* var5 /* : ANodes[AExpr] */; +val* var7 /* : ANodes[AExpr] */; +val* var_ /* var : ANodes[AExpr] */; +val* var8 /* : Iterator[ANode] */; +val* var_9 /* var : Iterator[AExpr] */; +short int var10 /* : Bool */; +val* var11 /* : nullable Object */; +val* var_ne /* var ne: AExpr */; +short int var12 /* : Bool */; +short int var13 /* : Bool */; +int cltype; +int idtype; +short int var_14 /* var : Bool */; +val* var15 /* : nullable String */; +val* var17 /* : nullable String */; static val* varonce; -val* var1 /* : String */; -char* var2 /* : NativeString */; -long var3 /* : Int */; -val* var4 /* : FlatString */; -val* var5 /* : nullable Char */; -val* var7 /* : nullable Char */; -val* var8 /* : String */; -char var9 /* : Char */; -val* var10 /* : String */; -static val* varonce11; -val* var12 /* : String */; -char* var13 /* : NativeString */; -long var14 /* : Int */; -val* var15 /* : FlatString */; -val* var16 /* : Array[Object] */; -long var17 /* : Int */; -val* var18 /* : NativeArray[Object] */; -val* var19 /* : String */; -val* var20 /* : nullable MType */; -val* var22 /* : nullable MType */; -val* var23 /* : RuntimeVariable */; +val* var18 /* : String */; +char* var19 /* : NativeString */; +val* var20 /* : FlatString */; +short int var21 /* : Bool */; +short int var22 /* : Bool */; +static val* varonce24; +val* var25 /* : String */; +char* var26 /* : NativeString */; +val* var27 /* : FlatString */; +val* var28 /* : String */; +val* var_varonce /* var varonce: String */; +val* var30 /* : NativeArray[String] */; +static val* varonce29; +static val* varonce31; +val* var32 /* : String */; +char* var33 /* : NativeString */; +val* var34 /* : FlatString */; +static val* varonce35; +val* var36 /* : String */; +char* var37 /* : NativeString */; +val* var38 /* : FlatString */; +val* var39 /* : String */; +long var40 /* : Int */; +long var42 /* : Int */; +val* var43 /* : RuntimeVariable */; +val* var44 /* : RuntimeVariable */; +val* var_a /* var a: RuntimeVariable */; +val* var46 /* : NativeArray[String] */; +static val* varonce45; +static val* varonce47; +val* var48 /* : String */; +char* var49 /* : NativeString */; +val* var50 /* : FlatString */; +static val* varonce51; +val* var52 /* : String */; +char* var53 /* : NativeString */; +val* var54 /* : FlatString */; +static val* varonce55; +val* var56 /* : String */; +char* var57 /* : NativeString */; +val* var58 /* : FlatString */; +val* var59 /* : MType */; +val* var61 /* : MType */; +val* var62 /* : String */; +val* var63 /* : String */; +long var_i /* var i: Int */; +long var64 /* : Int */; +long var66 /* : Int */; +long var_67 /* var : Int */; +short int var68 /* : Bool */; +short int var70 /* : Bool */; +int cltype71; +int idtype72; +const char* var_class_name; +short int var73 /* : Bool */; +val* var74 /* : nullable Object */; +val* var_ne75 /* var ne: AExpr */; +short int var76 /* : Bool */; +int cltype77; +int idtype78; +short int var79 /* : Bool */; +val* var81 /* : RuntimeVariable */; +val* var_e /* var e: RuntimeVariable */; +long var82 /* : Int */; +static val* varonce84; +val* var85 /* : String */; +char* var86 /* : NativeString */; +val* var87 /* : FlatString */; +val* var89 /* : NativeArray[String] */; +static val* varonce88; +static val* varonce90; +val* var91 /* : String */; +char* var92 /* : NativeString */; +val* var93 /* : FlatString */; +static val* varonce94; +val* var95 /* : String */; +char* var96 /* : NativeString */; +val* var97 /* : FlatString */; +val* var98 /* : String */; +val* var99 /* : String */; +val* var101 /* : NativeArray[String] */; +static val* varonce100; +static val* varonce102; +val* var103 /* : String */; +char* var104 /* : NativeString */; +val* var105 /* : FlatString */; +val* var106 /* : String */; +static val* varonce107; +val* var108 /* : String */; +char* var109 /* : NativeString */; +val* var110 /* : FlatString */; +static val* varonce111; +val* var112 /* : String */; +char* var113 /* : NativeString */; +val* var114 /* : FlatString */; +val* var115 /* : MClassType */; +val* var116 /* : MMethod */; +val* var_to_s_method /* var to_s_method: MMethod */; +long var_i117 /* var i: Int */; +long var118 /* : Int */; +long var120 /* : Int */; +long var_121 /* var : Int */; +short int var122 /* : Bool */; +short int var124 /* : Bool */; +int cltype125; +int idtype126; +const char* var_class_name127; +short int var128 /* : Bool */; +val* var129 /* : nullable Object */; +val* var_ne130 /* var ne: AExpr */; +short int var131 /* : Bool */; +int cltype132; +int idtype133; +val* var135 /* : RuntimeVariable */; +val* var_e136 /* var e: RuntimeVariable */; +val* var137 /* : MType */; +val* var139 /* : MType */; +val* var140 /* : AbstractCompiler */; +val* var142 /* : AbstractCompiler */; +val* var143 /* : MModule */; +val* var145 /* : MModule */; +short int var146 /* : Bool */; +short int var147 /* : Bool */; +val* var148 /* : Array[RuntimeVariable] */; +val* var_149 /* var : Array[RuntimeVariable] */; +val* var150 /* : nullable RuntimeVariable */; +long var151 /* : Int */; +static val* varonce153; +val* var154 /* : String */; +char* var155 /* : NativeString */; +val* var156 /* : FlatString */; +val* var157 /* : MType */; +val* var159 /* : MType */; +val* var160 /* : MMethod */; +val* var161 /* : Array[RuntimeVariable] */; +val* var_162 /* var : Array[RuntimeVariable] */; +val* var163 /* : nullable RuntimeVariable */; +val* var_res /* var res: nullable RuntimeVariable */; +val* var165 /* : NativeArray[String] */; +static val* varonce164; +static val* varonce166; +val* var167 /* : String */; +char* var168 /* : NativeString */; +val* var169 /* : FlatString */; +static val* varonce170; +val* var171 /* : String */; +char* var172 /* : NativeString */; +val* var173 /* : FlatString */; +val* var174 /* : String */; +val* var175 /* : String */; var_v = p0; -if (varonce) { -var1 = varonce; -} else { -var2 = "\'"; -var3 = 1; -var4 = standard___standard__NativeString___to_s_with_length(var2, var3); -var1 = var4; -varonce = var1; +{ +{ /* Inline typing#AExpr#mtype (self) on */ +var3 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on */ +var1 = var3; +RET_LABEL2:(void)0; +} } +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2936); +fatal_exit(1); +} +var_type_string = var1; +var4 = NEW_standard__Array(&type_standard__Array__nit__AExpr); { -{ /* Inline literal#ACharExpr#value (self) on */ -var7 = self->attrs[COLOR_nit__literal__ACharExpr___value].val; /* _value on */ +standard___standard__Array___standard__kernel__Object__init(var4); /* Direct call array#Array#init on */ +} +var_array = var4; +{ +{ /* Inline parser_nodes#ASuperstringExpr#n_exprs (self) on */ +var7 = self->attrs[COLOR_nit__parser_nodes__ASuperstringExpr___n_exprs].val; /* _n_exprs on */ +if (unlikely(var7 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2626); +fatal_exit(1); +} var5 = var7; RET_LABEL6:(void)0; } } -if (var5 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2703); -show_backtrace(1); +var_ = var5; +{ +var8 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_); +} +var_9 = var8; +for(;;) { +{ +var10 = ((short int(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_9); /* is_ok on */ +} +if (var10){ +{ +var11 = ((val*(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_9); /* item on */ +} +var_ne = var11; +/* isa AStringFormExpr */ +cltype = type_nit__AStringFormExpr.color; +idtype = type_nit__AStringFormExpr.id; +if(cltype >= var_ne->type->table_size) { +var13 = 0; +} else { +var13 = var_ne->type->type_table[cltype] == idtype; +} +var_14 = var13; +if (var13){ +{ +{ /* Inline literal#AStringFormExpr#value (var_ne) on */ +var17 = var_ne->attrs[COLOR_nit__literal__AStringFormExpr___value].val; /* _value on */ +var15 = var17; +RET_LABEL16:(void)0; +} +} +if (likely(varonce!=NULL)) { +var18 = varonce; +} else { +var19 = ""; +var20 = standard___standard__NativeString___to_s_with_length(var19, 0l); +var18 = var20; +varonce = var18; +} +if (var15 == NULL) { +var21 = 0; /* cannot be null */ +} else { +var22 = ((short int(*)(val* self, val* p0))(var15->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var15, var18); /* == on */ +var21 = var22; +} +var12 = var21; } else { -var9 = ((struct instance_standard__Char*)var5)->value; /* autounbox from nullable Char to Char */; -var8 = standard__string___Char___Object__to_s(var9); +var12 = var_14; +} +if (var12){ +goto BREAK_label; +} else { +} +{ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_array, var_ne); /* Direct call array#Array#add on */ +} +BREAK_label: (void)0; +{ +((void(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_9); /* next on */ +} +} else { +goto BREAK_label23; +} +} +BREAK_label23: (void)0; +{ +((void(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_9); /* finish on */ +} +if (likely(varonce24!=NULL)) { +var25 = varonce24; +} else { +var26 = "varonce"; +var27 = standard___standard__NativeString___to_s_with_length(var26, 7l); +var25 = var27; +varonce24 = var25; +} +{ +var28 = nit___nit__AbstractCompilerVisitor___get_name(var_v, var25); +} +var_varonce = var28; +if (unlikely(varonce29==NULL)) { +var30 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce31!=NULL)) { +var32 = varonce31; +} else { +var33 = "if (unlikely("; +var34 = standard___standard__NativeString___to_s_with_length(var33, 13l); +var32 = var34; +varonce31 = var32; +} +((struct instance_standard__NativeArray*)var30)->values[0]=var32; +if (likely(varonce35!=NULL)) { +var36 = varonce35; +} else { +var37 = "==NULL)) {"; +var38 = standard___standard__NativeString___to_s_with_length(var37, 10l); +var36 = var38; +varonce35 = var36; +} +((struct instance_standard__NativeArray*)var30)->values[2]=var36; +} else { +var30 = varonce29; +varonce29 = NULL; +} +((struct instance_standard__NativeArray*)var30)->values[1]=var_varonce; +{ +var39 = ((val*(*)(val* self))(var30->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var30); /* native_to_s on */ +} +varonce29 = var30; +{ +nit___nit__AbstractCompilerVisitor___add(var_v, var39); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +{ +{ /* Inline array#AbstractArrayRead#length (var_array) on */ +var42 = var_array->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var40 = var42; +RET_LABEL41:(void)0; +} +} +{ +var43 = nit___nit__AbstractCompilerVisitor___int_instance(var_v, var40); +} +{ +var44 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__native_array_instance]))(var_v, var_type_string, var43); /* native_array_instance on */ +} +var_a = var44; +if (unlikely(varonce45==NULL)) { +var46 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce47!=NULL)) { +var48 = varonce47; +} else { +var49 = "static "; +var50 = standard___standard__NativeString___to_s_with_length(var49, 7l); +var48 = var50; +varonce47 = var48; +} +((struct instance_standard__NativeArray*)var46)->values[0]=var48; +if (likely(varonce51!=NULL)) { +var52 = varonce51; +} else { +var53 = " "; +var54 = standard___standard__NativeString___to_s_with_length(var53, 1l); +var52 = var54; +varonce51 = var52; +} +((struct instance_standard__NativeArray*)var46)->values[2]=var52; +if (likely(varonce55!=NULL)) { +var56 = varonce55; +} else { +var57 = ";"; +var58 = standard___standard__NativeString___to_s_with_length(var57, 1l); +var56 = var58; +varonce55 = var56; +} +((struct instance_standard__NativeArray*)var46)->values[4]=var56; +} else { +var46 = varonce45; +varonce45 = NULL; +} +{ +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_a) on */ +var61 = var_a->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var61 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } -{ -var10 = standard___standard__Text___escape_to_c(var8); +var59 = var61; +RET_LABEL60:(void)0; } -if (varonce11) { -var12 = varonce11; -} else { -var13 = "\'"; -var14 = 1; -var15 = standard___standard__NativeString___to_s_with_length(var13, var14); -var12 = var15; -varonce11 = var12; } -var16 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var16 = array_instance Array[Object] */ -var17 = 3; -var18 = NEW_standard__NativeArray(var17, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var18)->values[0] = (val*) var1; -((struct instance_standard__NativeArray*)var18)->values[1] = (val*) var10; -((struct instance_standard__NativeArray*)var18)->values[2] = (val*) var12; { -((void (*)(val* self, val* p0, long p1))(var16->class->vft[COLOR_standard__array__Array__with_native]))(var16, var18, var17) /* with_native on */; -} +var62 = ((val*(*)(val* self))(var59->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var59); /* ctype on */ } +((struct instance_standard__NativeArray*)var46)->values[1]=var62; +((struct instance_standard__NativeArray*)var46)->values[3]=var_varonce; { -var19 = ((val* (*)(val* self))(var16->class->vft[COLOR_standard__string__Object__to_s]))(var16) /* to_s on */; +var63 = ((val*(*)(val* self))(var46->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var46); /* native_to_s on */ } +varonce45 = var46; { -{ /* Inline typing#AExpr#mtype (self) on */ -var22 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on */ -var20 = var22; -RET_LABEL21:(void)0; +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var63); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } +var_i = 0l; +{ +{ /* Inline array#AbstractArrayRead#length (var_array) on */ +var66 = var_array->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var64 = var66; +RET_LABEL65:(void)0; } -if (unlikely(var20 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2703); -show_backtrace(1); } +var_67 = var64; +for(;;) { { -var23 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var19, var20); +{ /* Inline kernel#Int#< (var_i,var_67) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var70 = 1; /* easy isa OTHER*/ +if (unlikely(!var70)) { +var_class_name = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } -var = var23; -goto RET_LABEL; -RET_LABEL:; -return var; +var73 = var_i < var_67; +var68 = var73; +goto RET_LABEL69; +RET_LABEL69:(void)0; } -/* method abstract_compiler#AArrayExpr#expr for (self: AArrayExpr, AbstractCompilerVisitor): nullable RuntimeVariable */ -val* nit__abstract_compiler___AArrayExpr___AExpr__expr(val* self, val* p0) { -val* var /* : nullable RuntimeVariable */; -val* var_v /* var v: AbstractCompilerVisitor */; -val* var1 /* : nullable MType */; -val* var3 /* : nullable MType */; -val* var_mtype /* var mtype: MType */; -val* var4 /* : Array[RuntimeVariable] */; -val* var_array /* var array: Array[RuntimeVariable] */; -val* var5 /* : RuntimeVariable */; -val* var_res /* var res: RuntimeVariable */; -val* var6 /* : nullable StaticFrame */; -val* var8 /* : nullable StaticFrame */; -val* var9 /* : nullable RuntimeVariable */; -val* var11 /* : nullable RuntimeVariable */; -val* var_old_comprehension /* var old_comprehension: nullable RuntimeVariable */; -val* var12 /* : nullable StaticFrame */; -val* var14 /* : nullable StaticFrame */; -val* var16 /* : ANodes[AExpr] */; -val* var18 /* : ANodes[AExpr] */; -val* var_ /* var : ANodes[AExpr] */; -val* var19 /* : Iterator[ANode] */; -val* var_20 /* var : Iterator[AExpr] */; -short int var21 /* : Bool */; -val* var22 /* : nullable Object */; -val* var_nexpr /* var nexpr: AExpr */; -val* var24 /* : nullable StaticFrame */; -val* var26 /* : nullable StaticFrame */; -var_v = p0; +} +if (var68){ { -{ /* Inline typing#AArrayExpr#element_mtype (self) on */ -var3 = self->attrs[COLOR_nit__typing__AArrayExpr___element_mtype].val; /* _element_mtype on */ -var1 = var3; -RET_LABEL2:(void)0; +var74 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_array, var_i); } +var_ne75 = var74; +/* isa AStringFormExpr */ +cltype77 = type_nit__AStringFormExpr.color; +idtype78 = type_nit__AStringFormExpr.id; +if(cltype77 >= var_ne75->type->table_size) { +var76 = 0; +} else { +var76 = var_ne75->type->type_table[cltype77] == idtype78; } -if (unlikely(var1 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2709); -show_backtrace(1); +var79 = !var76; +if (var79){ +goto BREAK_label80; +} else { } -var_mtype = var1; -var4 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); { -standard___standard__Array___standard__kernel__Object__init(var4); /* Direct call array#Array#init on */ +var81 = nit___nit__AbstractCompilerVisitor___expr(var_v, var_ne75, ((val*)NULL)); } -var_array = var4; +var_e = var81; { -var5 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__array_instance(var_v, var_array, var_mtype); +nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__native_array_set(var_v, var_a, var_i, var_e); /* Direct call separate_compiler#SeparateCompilerVisitor#native_array_set on */ } -var_res = var5; +BREAK_label80: (void)0; { -{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on */ -var8 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ -var6 = var8; -RET_LABEL7:(void)0; -} +var82 = standard___standard__Int___Discrete__successor(var_i, 1l); } -if (var6 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2713); -show_backtrace(1); +var_i = var82; } else { -{ /* Inline abstract_compiler#StaticFrame#comprehension (var6) on */ -if (unlikely(var6 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1744); -show_backtrace(1); +goto BREAK_label83; } -var11 = var6->attrs[COLOR_nit__abstract_compiler__StaticFrame___comprehension].val; /* _comprehension on */ -var9 = var11; -RET_LABEL10:(void)0; } +BREAK_label83: (void)0; +if (likely(varonce84!=NULL)) { +var85 = varonce84; +} else { +var86 = "} else {"; +var87 = standard___standard__NativeString___to_s_with_length(var86, 8l); +var85 = var87; +varonce84 = var85; } -var_old_comprehension = var9; { -{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on */ -var14 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ -var12 = var14; -RET_LABEL13:(void)0; +nit___nit__AbstractCompilerVisitor___add(var_v, var85); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } +if (unlikely(varonce88==NULL)) { +var89 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce90!=NULL)) { +var91 = varonce90; +} else { +var92 = " = "; +var93 = standard___standard__NativeString___to_s_with_length(var92, 3l); +var91 = var93; +varonce90 = var91; } -if (var12 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2714); -show_backtrace(1); +((struct instance_standard__NativeArray*)var89)->values[1]=var91; +if (likely(varonce94!=NULL)) { +var95 = varonce94; } else { -{ /* Inline abstract_compiler#StaticFrame#comprehension= (var12,var_res) on */ -if (unlikely(var12 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1744); -show_backtrace(1); +var96 = ";"; +var97 = standard___standard__NativeString___to_s_with_length(var96, 1l); +var95 = var97; +varonce94 = var95; } -var12->attrs[COLOR_nit__abstract_compiler__StaticFrame___comprehension].val = var_res; /* _comprehension on */ -RET_LABEL15:(void)0; +((struct instance_standard__NativeArray*)var89)->values[3]=var95; +} else { +var89 = varonce88; +varonce88 = NULL; } +{ +var98 = ((val*(*)(val* self))(var_a->class->vft[COLOR_standard__string__Object__to_s]))(var_a); /* to_s on */ } +((struct instance_standard__NativeArray*)var89)->values[0]=var98; +((struct instance_standard__NativeArray*)var89)->values[2]=var_varonce; { -{ /* Inline parser_nodes#AArrayExpr#n_exprs (self) on */ -var18 = self->attrs[COLOR_nit__parser_nodes__AArrayExpr___n_exprs].val; /* _n_exprs on */ -if (unlikely(var18 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2160); -show_backtrace(1); +var99 = ((val*(*)(val* self))(var89->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var89); /* native_to_s on */ } -var16 = var18; -RET_LABEL17:(void)0; +varonce88 = var89; +{ +nit___nit__AbstractCompilerVisitor___add(var_v, var99); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } +if (unlikely(varonce100==NULL)) { +var101 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce102!=NULL)) { +var103 = varonce102; +} else { +var104 = " = NULL;"; +var105 = standard___standard__NativeString___to_s_with_length(var104, 8l); +var103 = var105; +varonce102 = var103; } -var_ = var16; -{ -var19 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_); +((struct instance_standard__NativeArray*)var101)->values[1]=var103; +} else { +var101 = varonce100; +varonce100 = NULL; } -var_20 = var19; -for(;;) { +((struct instance_standard__NativeArray*)var101)->values[0]=var_varonce; { -var21 = ((short int (*)(val* self))(var_20->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_20) /* is_ok on */; +var106 = ((val*(*)(val* self))(var101->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var101); /* native_to_s on */ } -if (var21){ +varonce100 = var101; { -var22 = ((val* (*)(val* self))(var_20->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_20) /* item on */; +nit___nit__AbstractCompilerVisitor___add(var_v, var106); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var_nexpr = var22; -{ -nit___nit__AbstractCompilerVisitor___stmt(var_v, var_nexpr); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on */ +if (likely(varonce107!=NULL)) { +var108 = varonce107; +} else { +var109 = "}"; +var110 = standard___standard__NativeString___to_s_with_length(var109, 1l); +var108 = var110; +varonce107 = var108; } { -((void (*)(val* self))(var_20->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_20) /* next on */; +nit___nit__AbstractCompilerVisitor___add(var_v, var108); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } +if (likely(varonce111!=NULL)) { +var112 = varonce111; } else { -goto BREAK_label; +var113 = "to_s"; +var114 = standard___standard__NativeString___to_s_with_length(var113, 4l); +var112 = var114; +varonce111 = var112; } +{ +var115 = nit___nit__AbstractCompilerVisitor___object_type(var_v); } -BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_20) on */ -RET_LABEL23:(void)0; +var116 = nit___nit__AbstractCompilerVisitor___get_property(var_v, var112, var115); +} +var_to_s_method = var116; +var_i117 = 0l; +{ +{ /* Inline array#AbstractArrayRead#length (var_array) on */ +var120 = var_array->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var118 = var120; +RET_LABEL119:(void)0; } } +var_121 = var118; +for(;;) { { -{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on */ -var26 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ -var24 = var26; -RET_LABEL25:(void)0; +{ /* Inline kernel#Int#< (var_i117,var_121) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var124 = 1; /* easy isa OTHER*/ +if (unlikely(!var124)) { +var_class_name127 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name127); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } +var128 = var_i117 < var_121; +var122 = var128; +goto RET_LABEL123; +RET_LABEL123:(void)0; } -if (var24 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2718); -show_backtrace(1); -} else { -{ /* Inline abstract_compiler#StaticFrame#comprehension= (var24,var_old_comprehension) on */ -if (unlikely(var24 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1744); -show_backtrace(1); } -var24->attrs[COLOR_nit__abstract_compiler__StaticFrame___comprehension].val = var_old_comprehension; /* _comprehension on */ -RET_LABEL27:(void)0; +if (var122){ +{ +var129 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_array, var_i117); } +var_ne130 = var129; +/* isa AStringFormExpr */ +cltype132 = type_nit__AStringFormExpr.color; +idtype133 = type_nit__AStringFormExpr.id; +if(cltype132 >= var_ne130->type->table_size) { +var131 = 0; +} else { +var131 = var_ne130->type->type_table[cltype132] == idtype133; } -var = var_res; -goto RET_LABEL; -RET_LABEL:; -return var; +if (var131){ +goto BREAK_label134; +} else { } -/* method abstract_compiler#AStringFormExpr#expr for (self: AStringFormExpr, AbstractCompilerVisitor): nullable RuntimeVariable */ -val* nit__abstract_compiler___AStringFormExpr___AExpr__expr(val* self, val* p0) { -val* var /* : nullable RuntimeVariable */; -val* var_v /* var v: AbstractCompilerVisitor */; -val* var1 /* : nullable String */; -val* var3 /* : nullable String */; -val* var4 /* : RuntimeVariable */; -var_v = p0; { -{ /* Inline literal#AStringFormExpr#value (self) on */ -var3 = self->attrs[COLOR_nit__literal__AStringFormExpr___value].val; /* _value on */ -var1 = var3; -RET_LABEL2:(void)0; +var135 = nit___nit__AbstractCompilerVisitor___expr(var_v, var_ne130, ((val*)NULL)); +} +var_e136 = var135; +{ +{ /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_e136) on */ +var139 = var_e136->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on */ +if (unlikely(var139 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1787); +fatal_exit(1); } +var137 = var139; +RET_LABEL138:(void)0; } -if (unlikely(var1 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2725); -show_backtrace(1); } { -var4 = nit___nit__AbstractCompilerVisitor___string_instance(var_v, var1); +{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on */ +var142 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var142 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } -var = var4; -goto RET_LABEL; -RET_LABEL:; -return var; +var140 = var142; +RET_LABEL141:(void)0; } -/* method abstract_compiler#ASuperstringExpr#expr for (self: ASuperstringExpr, AbstractCompilerVisitor): nullable RuntimeVariable */ -val* nit__abstract_compiler___ASuperstringExpr___AExpr__expr(val* self, val* p0) { -val* var /* : nullable RuntimeVariable */; -val* var_v /* var v: AbstractCompilerVisitor */; -val* var1 /* : Array[RuntimeVariable] */; -val* var_array /* var array: Array[RuntimeVariable] */; -val* var2 /* : ANodes[AExpr] */; -val* var4 /* : ANodes[AExpr] */; -val* var_ /* var : ANodes[AExpr] */; -val* var5 /* : Iterator[ANode] */; -val* var_6 /* var : Iterator[AExpr] */; -short int var7 /* : Bool */; -val* var8 /* : nullable Object */; -val* var_ne /* var ne: AExpr */; -short int var9 /* : Bool */; -short int var10 /* : Bool */; -int cltype; -int idtype; -short int var_11 /* var : Bool */; -val* var12 /* : nullable String */; -val* var14 /* : nullable String */; -static val* varonce; -val* var15 /* : String */; -char* var16 /* : NativeString */; -long var17 /* : Int */; -val* var18 /* : FlatString */; -short int var19 /* : Bool */; -short int var20 /* : Bool */; -val* var21 /* : null */; -val* var22 /* : RuntimeVariable */; -val* var_i /* var i: RuntimeVariable */; -val* var25 /* : MClassType */; -val* var26 /* : RuntimeVariable */; -val* var_a /* var a: RuntimeVariable */; -static val* varonce27; -val* var28 /* : String */; -char* var29 /* : NativeString */; -long var30 /* : Int */; -val* var31 /* : FlatString */; -val* var32 /* : MType */; -val* var34 /* : MType */; -val* var35 /* : MMethod */; -val* var36 /* : Array[RuntimeVariable] */; -long var37 /* : Int */; -val* var_38 /* var : Array[RuntimeVariable] */; -val* var39 /* : nullable RuntimeVariable */; -val* var_res /* var res: nullable RuntimeVariable */; -var_v = p0; -var1 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); -{ -standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on */ } -var_array = var1; { -{ /* Inline parser_nodes#ASuperstringExpr#n_exprs (self) on */ -var4 = self->attrs[COLOR_nit__parser_nodes__ASuperstringExpr___n_exprs].val; /* _n_exprs on */ -if (unlikely(var4 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2277); -show_backtrace(1); +{ /* Inline abstract_compiler#AbstractCompiler#mainmodule (var140) on */ +var145 = var140->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var145 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 515); +fatal_exit(1); } -var2 = var4; -RET_LABEL3:(void)0; +var143 = var145; +RET_LABEL144:(void)0; } } -var_ = var2; { -var5 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_); +var146 = nit___nit__MType___is_subtype(var137, var143, ((val*)NULL), var_type_string); } -var_6 = var5; -for(;;) { +var147 = !var146; +if (var147){ +var148 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); { -var7 = ((short int (*)(val* self))(var_6->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_6) /* is_ok on */; +standard___standard__Array___with_capacity(var148, 1l); /* Direct call array#Array#with_capacity on */ } -if (var7){ +var_149 = var148; { -var8 = ((val* (*)(val* self))(var_6->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_6) /* item on */; -} -var_ne = var8; -/* isa AStringFormExpr */ -cltype = type_nit__AStringFormExpr.color; -idtype = type_nit__AStringFormExpr.id; -if(cltype >= var_ne->type->table_size) { -var10 = 0; -} else { -var10 = var_ne->type->type_table[cltype] == idtype; +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_149, var_e136); /* Direct call array#AbstractArray#push on */ } -var_11 = var10; -if (var10){ { -{ /* Inline literal#AStringFormExpr#value (var_ne) on */ -var14 = var_ne->attrs[COLOR_nit__literal__AStringFormExpr___value].val; /* _value on */ -var12 = var14; -RET_LABEL13:(void)0; +var150 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__send(var_v, var_to_s_method, var_149); } +if (unlikely(var150 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2983); +fatal_exit(1); } -if (varonce) { -var15 = varonce; +var_e136 = var150; } else { -var16 = ""; -var17 = 0; -var18 = standard___standard__NativeString___to_s_with_length(var16, var17); -var15 = var18; -varonce = var15; } -if (var12 == NULL) { -var19 = 0; /* cannot be null */ -} else { -var20 = ((short int (*)(val* self, val* p0))(var12->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var12, var15) /* == on */; -var19 = var20; +{ +nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__native_array_set(var_v, var_a, var_i117, var_e136); /* Direct call separate_compiler#SeparateCompilerVisitor#native_array_set on */ } -var9 = var19; -} else { -var9 = var_11; +BREAK_label134: (void)0; +{ +var151 = standard___standard__Int___Discrete__successor(var_i117, 1l); } -if (var9){ -goto BREAK_label; +var_i117 = var151; } else { +goto BREAK_label152; } -var21 = NULL; -{ -var22 = nit___nit__AbstractCompilerVisitor___expr(var_v, var_ne, var21); } -var_i = var22; -{ -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_array, var_i); /* Direct call array#Array#add on */ +BREAK_label152: (void)0; +if (likely(varonce153!=NULL)) { +var154 = varonce153; +} else { +var155 = "native_to_s"; +var156 = standard___standard__NativeString___to_s_with_length(var155, 11l); +var154 = var156; +varonce153 = var154; } -BREAK_label: (void)0; { -((void (*)(val* self))(var_6->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_6) /* next on */; +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_a) on */ +var159 = var_a->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var159 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } -} else { -goto BREAK_label23; +var157 = var159; +RET_LABEL158:(void)0; } } -BREAK_label23: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_6) on */ -RET_LABEL24:(void)0; -} +var160 = nit___nit__AbstractCompilerVisitor___get_property(var_v, var154, var157); } +var161 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); { -var25 = nit___nit__AbstractCompilerVisitor___object_type(var_v); +standard___standard__Array___with_capacity(var161, 1l); /* Direct call array#Array#with_capacity on */ } +var_162 = var161; { -var26 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__array_instance(var_v, var_array, var25); -} -var_a = var26; -if (varonce27) { -var28 = varonce27; -} else { -var29 = "to_s"; -var30 = 4; -var31 = standard___standard__NativeString___to_s_with_length(var29, var30); -var28 = var31; -varonce27 = var28; +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_162, var_a); /* Direct call array#AbstractArray#push on */ } { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_a) on */ -var34 = var_a->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var34 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +var163 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__send(var_v, var160, var_162); } -var32 = var34; -RET_LABEL33:(void)0; +var_res = var163; +if (unlikely(varonce164==NULL)) { +var165 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce166!=NULL)) { +var167 = varonce166; +} else { +var168 = " = "; +var169 = standard___standard__NativeString___to_s_with_length(var168, 3l); +var167 = var169; +varonce166 = var167; } +((struct instance_standard__NativeArray*)var165)->values[1]=var167; +if (likely(varonce170!=NULL)) { +var171 = varonce170; +} else { +var172 = ";"; +var173 = standard___standard__NativeString___to_s_with_length(var172, 1l); +var171 = var173; +varonce170 = var171; } -{ -var35 = nit___nit__AbstractCompilerVisitor___get_property(var_v, var28, var32); +((struct instance_standard__NativeArray*)var165)->values[3]=var171; +} else { +var165 = varonce164; +varonce164 = NULL; } -var36 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); -var37 = 1; +((struct instance_standard__NativeArray*)var165)->values[0]=var_varonce; { -standard___standard__Array___with_capacity(var36, var37); /* Direct call array#Array#with_capacity on */ +var174 = ((val*(*)(val* self))(var_a->class->vft[COLOR_standard__string__Object__to_s]))(var_a); /* to_s on */ } -var_38 = var36; +((struct instance_standard__NativeArray*)var165)->values[2]=var174; { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_38, var_a); /* Direct call array#AbstractArray#push on */ +var175 = ((val*(*)(val* self))(var165->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var165); /* native_to_s on */ } +varonce164 = var165; { -var39 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__send(var_v, var35, var_38); +nit___nit__AbstractCompilerVisitor___add(var_v, var175); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -var_res = var39; var = var_res; goto RET_LABEL; RET_LABEL:; @@ -2703,112 +3658,106 @@ val* var /* : nullable RuntimeVariable */; val* var_v /* var v: AbstractCompilerVisitor */; val* var1 /* : AExpr */; val* var3 /* : AExpr */; -val* var4 /* : null */; -val* var5 /* : RuntimeVariable */; +val* var4 /* : RuntimeVariable */; val* var_i1 /* var i1: RuntimeVariable */; -val* var6 /* : AExpr */; -val* var8 /* : AExpr */; -val* var9 /* : null */; -val* var10 /* : RuntimeVariable */; +val* var5 /* : AExpr */; +val* var7 /* : AExpr */; +val* var8 /* : RuntimeVariable */; val* var_i2 /* var i2: RuntimeVariable */; +val* var9 /* : nullable MType */; val* var11 /* : nullable MType */; -val* var13 /* : nullable MType */; -short int var14 /* : Bool */; +short int var12 /* : Bool */; int cltype; int idtype; const char* var_class_name; val* var_mtype /* var mtype: MClassType */; -val* var15 /* : RuntimeVariable */; +val* var13 /* : RuntimeVariable */; val* var_res /* var res: RuntimeVariable */; +val* var14 /* : nullable CallSite */; val* var16 /* : nullable CallSite */; -val* var18 /* : nullable CallSite */; -val* var19 /* : Array[RuntimeVariable] */; -long var20 /* : Int */; +val* var17 /* : Array[RuntimeVariable] */; val* var_ /* var : Array[RuntimeVariable] */; -val* var21 /* : nullable RuntimeVariable */; +val* var18 /* : nullable RuntimeVariable */; var_v = p0; { { /* Inline parser_nodes#ARangeExpr#n_expr (self) on */ var3 = self->attrs[COLOR_nit__parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2124); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2417); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; } } -var4 = NULL; { -var5 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, var4); +var4 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL)); } -var_i1 = var5; +var_i1 = var4; { { /* Inline parser_nodes#ARangeExpr#n_expr2 (self) on */ -var8 = self->attrs[COLOR_nit__parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on */ -if (unlikely(var8 == NULL)) { +var7 = self->attrs[COLOR_nit__parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on */ +if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2127); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2423); +fatal_exit(1); } -var6 = var8; -RET_LABEL7:(void)0; +var5 = var7; +RET_LABEL6:(void)0; } } -var9 = NULL; { -var10 = nit___nit__AbstractCompilerVisitor___expr(var_v, var6, var9); +var8 = nit___nit__AbstractCompilerVisitor___expr(var_v, var5, ((val*)NULL)); } -var_i2 = var10; +var_i2 = var8; { { /* Inline typing#AExpr#mtype (self) on */ -var13 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on */ -var11 = var13; -RET_LABEL12:(void)0; +var11 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on */ +var9 = var11; +RET_LABEL10:(void)0; } } -/* isa MClassType */ +/* isa MClassType */ cltype = type_nit__MClassType.color; idtype = type_nit__MClassType.id; -if(var11 == NULL) { -var14 = 0; +if(var9 == NULL) { +var12 = 0; } else { -if(cltype >= var11->type->table_size) { -var14 = 0; +if(cltype >= var9->type->table_size) { +var12 = 0; } else { -var14 = var11->type->type_table[cltype] == idtype; +var12 = var9->type->type_table[cltype] == idtype; } } -if (unlikely(!var14)) { -var_class_name = var11 == NULL ? "null" : var11->type->name; +if (unlikely(!var12)) { +var_class_name = var9 == NULL ? "null" : var9->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2748); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3003); +fatal_exit(1); } -var_mtype = var11; +var_mtype = var9; { -var15 = ((val* (*)(val* self, val* p0))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__init_instance]))(var_v, var_mtype) /* init_instance on */; +var13 = ((val*(*)(val* self, val* p0))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__init_instance]))(var_v, var_mtype); /* init_instance on */ } -var_res = var15; +var_res = var13; { { /* Inline typing#ARangeExpr#init_callsite (self) on */ -var18 = self->attrs[COLOR_nit__typing__ARangeExpr___init_callsite].val; /* _init_callsite on */ -var16 = var18; -RET_LABEL17:(void)0; +var16 = self->attrs[COLOR_nit__typing__ARangeExpr___init_callsite].val; /* _init_callsite on */ +var14 = var16; +RET_LABEL15:(void)0; } } -if (unlikely(var16 == NULL)) { +if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2750); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3005); +fatal_exit(1); } -var19 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); -var20 = 3; +var17 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); { -standard___standard__Array___with_capacity(var19, var20); /* Direct call array#Array#with_capacity on */ +standard___standard__Array___with_capacity(var17, 3l); /* Direct call array#Array#with_capacity on */ } -var_ = var19; +var_ = var17; { standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_res); /* Direct call array#AbstractArray#push on */ } @@ -2819,7 +3768,7 @@ standard___standard__AbstractArray___standard__abstract_collection__Sequence__pu standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_i2); /* Direct call array#AbstractArray#push on */ } { -var21 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var16, var_) /* compile_callsite on */; +var18 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var14, var_); /* compile_callsite on */ } var = var_res; goto RET_LABEL; @@ -2832,112 +3781,106 @@ val* var /* : nullable RuntimeVariable */; val* var_v /* var v: AbstractCompilerVisitor */; val* var1 /* : AExpr */; val* var3 /* : AExpr */; -val* var4 /* : null */; -val* var5 /* : RuntimeVariable */; +val* var4 /* : RuntimeVariable */; val* var_i1 /* var i1: RuntimeVariable */; -val* var6 /* : AExpr */; -val* var8 /* : AExpr */; -val* var9 /* : null */; -val* var10 /* : RuntimeVariable */; +val* var5 /* : AExpr */; +val* var7 /* : AExpr */; +val* var8 /* : RuntimeVariable */; val* var_i2 /* var i2: RuntimeVariable */; +val* var9 /* : nullable MType */; val* var11 /* : nullable MType */; -val* var13 /* : nullable MType */; -short int var14 /* : Bool */; +short int var12 /* : Bool */; int cltype; int idtype; const char* var_class_name; val* var_mtype /* var mtype: MClassType */; -val* var15 /* : RuntimeVariable */; +val* var13 /* : RuntimeVariable */; val* var_res /* var res: RuntimeVariable */; +val* var14 /* : nullable CallSite */; val* var16 /* : nullable CallSite */; -val* var18 /* : nullable CallSite */; -val* var19 /* : Array[RuntimeVariable] */; -long var20 /* : Int */; +val* var17 /* : Array[RuntimeVariable] */; val* var_ /* var : Array[RuntimeVariable] */; -val* var21 /* : nullable RuntimeVariable */; +val* var18 /* : nullable RuntimeVariable */; var_v = p0; { { /* Inline parser_nodes#ARangeExpr#n_expr (self) on */ var3 = self->attrs[COLOR_nit__parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2124); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2417); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; } } -var4 = NULL; { -var5 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, var4); +var4 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL)); } -var_i1 = var5; +var_i1 = var4; { { /* Inline parser_nodes#ARangeExpr#n_expr2 (self) on */ -var8 = self->attrs[COLOR_nit__parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on */ -if (unlikely(var8 == NULL)) { +var7 = self->attrs[COLOR_nit__parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on */ +if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2127); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2423); +fatal_exit(1); } -var6 = var8; -RET_LABEL7:(void)0; +var5 = var7; +RET_LABEL6:(void)0; } } -var9 = NULL; { -var10 = nit___nit__AbstractCompilerVisitor___expr(var_v, var6, var9); +var8 = nit___nit__AbstractCompilerVisitor___expr(var_v, var5, ((val*)NULL)); } -var_i2 = var10; +var_i2 = var8; { { /* Inline typing#AExpr#mtype (self) on */ -var13 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on */ -var11 = var13; -RET_LABEL12:(void)0; +var11 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on */ +var9 = var11; +RET_LABEL10:(void)0; } } -/* isa MClassType */ +/* isa MClassType */ cltype = type_nit__MClassType.color; idtype = type_nit__MClassType.id; -if(var11 == NULL) { -var14 = 0; +if(var9 == NULL) { +var12 = 0; } else { -if(cltype >= var11->type->table_size) { -var14 = 0; +if(cltype >= var9->type->table_size) { +var12 = 0; } else { -var14 = var11->type->type_table[cltype] == idtype; +var12 = var9->type->type_table[cltype] == idtype; } } -if (unlikely(!var14)) { -var_class_name = var11 == NULL ? "null" : var11->type->name; +if (unlikely(!var12)) { +var_class_name = var9 == NULL ? "null" : var9->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2760); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3015); +fatal_exit(1); } -var_mtype = var11; +var_mtype = var9; { -var15 = ((val* (*)(val* self, val* p0))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__init_instance]))(var_v, var_mtype) /* init_instance on */; +var13 = ((val*(*)(val* self, val* p0))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__init_instance]))(var_v, var_mtype); /* init_instance on */ } -var_res = var15; +var_res = var13; { { /* Inline typing#ARangeExpr#init_callsite (self) on */ -var18 = self->attrs[COLOR_nit__typing__ARangeExpr___init_callsite].val; /* _init_callsite on */ -var16 = var18; -RET_LABEL17:(void)0; +var16 = self->attrs[COLOR_nit__typing__ARangeExpr___init_callsite].val; /* _init_callsite on */ +var14 = var16; +RET_LABEL15:(void)0; } } -if (unlikely(var16 == NULL)) { +if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2762); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3017); +fatal_exit(1); } -var19 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); -var20 = 3; +var17 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); { -standard___standard__Array___with_capacity(var19, var20); /* Direct call array#Array#with_capacity on */ +standard___standard__Array___with_capacity(var17, 3l); /* Direct call array#Array#with_capacity on */ } -var_ = var19; +var_ = var17; { standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_res); /* Direct call array#AbstractArray#push on */ } @@ -2948,7 +3891,7 @@ standard___standard__AbstractArray___standard__abstract_collection__Sequence__pu standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_i2); /* Direct call array#AbstractArray#push on */ } { -var21 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var16, var_) /* compile_callsite on */; +var18 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var14, var_); /* compile_callsite on */ } var = var_res; goto RET_LABEL; @@ -2959,40 +3902,12 @@ return var; val* nit__abstract_compiler___ATrueExpr___AExpr__expr(val* self, val* p0) { val* var /* : nullable RuntimeVariable */; val* var_v /* var v: AbstractCompilerVisitor */; -static val* varonce; -val* var1 /* : String */; -char* var2 /* : NativeString */; -long var3 /* : Int */; -val* var4 /* : FlatString */; -val* var5 /* : nullable MType */; -val* var7 /* : nullable MType */; -val* var8 /* : RuntimeVariable */; +val* var1 /* : RuntimeVariable */; var_v = p0; -if (varonce) { -var1 = varonce; -} else { -var2 = "1"; -var3 = 1; -var4 = standard___standard__NativeString___to_s_with_length(var2, var3); -var1 = var4; -varonce = var1; -} -{ -{ /* Inline typing#AExpr#mtype (self) on */ -var7 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on */ -var5 = var7; -RET_LABEL6:(void)0; -} -} -if (unlikely(var5 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2768); -show_backtrace(1); -} { -var8 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1, var5); +var1 = nit___nit__AbstractCompilerVisitor___bool_instance(var_v, 1); } -var = var8; +var = var1; goto RET_LABEL; RET_LABEL:; return var; @@ -3001,40 +3916,12 @@ return var; val* nit__abstract_compiler___AFalseExpr___AExpr__expr(val* self, val* p0) { val* var /* : nullable RuntimeVariable */; val* var_v /* var v: AbstractCompilerVisitor */; -static val* varonce; -val* var1 /* : String */; -char* var2 /* : NativeString */; -long var3 /* : Int */; -val* var4 /* : FlatString */; -val* var5 /* : nullable MType */; -val* var7 /* : nullable MType */; -val* var8 /* : RuntimeVariable */; +val* var1 /* : RuntimeVariable */; var_v = p0; -if (varonce) { -var1 = varonce; -} else { -var2 = "0"; -var3 = 1; -var4 = standard___standard__NativeString___to_s_with_length(var2, var3); -var1 = var4; -varonce = var1; -} -{ -{ /* Inline typing#AExpr#mtype (self) on */ -var7 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on */ -var5 = var7; -RET_LABEL6:(void)0; -} -} -if (unlikely(var5 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2772); -show_backtrace(1); -} { -var8 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1, var5); +var1 = nit___nit__AbstractCompilerVisitor___bool_instance(var_v, 0); } -var = var8; +var = var1; goto RET_LABEL; RET_LABEL:; return var; @@ -3043,40 +3930,12 @@ return var; val* nit__abstract_compiler___ANullExpr___AExpr__expr(val* self, val* p0) { val* var /* : nullable RuntimeVariable */; val* var_v /* var v: AbstractCompilerVisitor */; -static val* varonce; -val* var1 /* : String */; -char* var2 /* : NativeString */; -long var3 /* : Int */; -val* var4 /* : FlatString */; -val* var5 /* : nullable MType */; -val* var7 /* : nullable MType */; -val* var8 /* : RuntimeVariable */; +val* var1 /* : RuntimeVariable */; var_v = p0; -if (varonce) { -var1 = varonce; -} else { -var2 = "NULL"; -var3 = 4; -var4 = standard___standard__NativeString___to_s_with_length(var2, var3); -var1 = var4; -varonce = var1; -} -{ -{ /* Inline typing#AExpr#mtype (self) on */ -var7 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on */ -var5 = var7; -RET_LABEL6:(void)0; -} -} -if (unlikely(var5 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2776); -show_backtrace(1); -} { -var8 = nit___nit__AbstractCompilerVisitor___new_expr(var_v, var1, var5); +var1 = nit___nit__AbstractCompilerVisitor___null_instance(var_v); } -var = var8; +var = var1; goto RET_LABEL; RET_LABEL:; return var; @@ -3087,60 +3946,56 @@ val* var /* : nullable RuntimeVariable */; val* var_v /* var v: AbstractCompilerVisitor */; val* var1 /* : AExpr */; val* var3 /* : AExpr */; -val* var4 /* : null */; -val* var5 /* : RuntimeVariable */; +val* var4 /* : RuntimeVariable */; val* var_i /* var i: RuntimeVariable */; -val* var6 /* : nullable MType */; -val* var8 /* : nullable MType */; +val* var5 /* : nullable MType */; +val* var7 /* : nullable MType */; static val* varonce; -val* var9 /* : String */; -char* var10 /* : NativeString */; -long var11 /* : Int */; -val* var12 /* : FlatString */; -val* var13 /* : RuntimeVariable */; +val* var8 /* : String */; +char* var9 /* : NativeString */; +val* var10 /* : FlatString */; +val* var11 /* : RuntimeVariable */; var_v = p0; { { /* Inline parser_nodes#AIsaExpr#n_expr (self) on */ var3 = self->attrs[COLOR_nit__parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1905); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2149); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; } } -var4 = NULL; { -var5 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, var4); +var4 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL)); } -var_i = var5; +var_i = var4; { { /* Inline typing#AIsaExpr#cast_type (self) on */ -var8 = self->attrs[COLOR_nit__typing__AIsaExpr___cast_type].val; /* _cast_type on */ -var6 = var8; -RET_LABEL7:(void)0; +var7 = self->attrs[COLOR_nit__typing__AIsaExpr___cast_type].val; /* _cast_type on */ +var5 = var7; +RET_LABEL6:(void)0; } } -if (unlikely(var6 == NULL)) { +if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2783); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3038); +fatal_exit(1); } -if (varonce) { -var9 = varonce; +if (likely(varonce!=NULL)) { +var8 = varonce; } else { -var10 = "isa"; -var11 = 3; -var12 = standard___standard__NativeString___to_s_with_length(var10, var11); -var9 = var12; -varonce = var9; +var9 = "isa"; +var10 = standard___standard__NativeString___to_s_with_length(var9, 3l); +var8 = var10; +varonce = var8; } { -var13 = ((val* (*)(val* self, val* p0, val* p1, val* p2))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__type_test]))(var_v, var_i, var6, var9) /* type_test on */; +var11 = ((val*(*)(val* self, val* p0, val* p1, val* p2))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__type_test]))(var_v, var_i, var5, var8); /* type_test on */ } -var = var13; +var = var11; goto RET_LABEL; RET_LABEL:; return var; @@ -3151,129 +4006,125 @@ val* var /* : nullable RuntimeVariable */; val* var_v /* var v: AbstractCompilerVisitor */; val* var1 /* : AExpr */; val* var3 /* : AExpr */; -val* var4 /* : null */; -val* var5 /* : RuntimeVariable */; +val* var4 /* : RuntimeVariable */; val* var_i /* var i: RuntimeVariable */; -val* var6 /* : AbstractCompiler */; -val* var8 /* : AbstractCompiler */; -val* var9 /* : ModelBuilder */; -val* var11 /* : ModelBuilder */; -val* var12 /* : ToolContext */; -val* var14 /* : ToolContext */; -val* var15 /* : OptionBool */; -val* var17 /* : OptionBool */; -val* var18 /* : nullable Object */; -val* var20 /* : nullable Object */; -short int var21 /* : Bool */; -val* var22 /* : nullable MType */; -val* var24 /* : nullable MType */; +val* var5 /* : AbstractCompiler */; +val* var7 /* : AbstractCompiler */; +val* var8 /* : ModelBuilder */; +val* var10 /* : ModelBuilder */; +val* var11 /* : ToolContext */; +val* var13 /* : ToolContext */; +val* var14 /* : OptionBool */; +val* var16 /* : OptionBool */; +val* var17 /* : nullable Object */; +val* var19 /* : nullable Object */; +short int var20 /* : Bool */; +val* var21 /* : nullable MType */; +val* var23 /* : nullable MType */; static val* varonce; -val* var25 /* : String */; -char* var26 /* : NativeString */; -long var27 /* : Int */; -val* var28 /* : FlatString */; +val* var24 /* : String */; +char* var25 /* : NativeString */; +val* var26 /* : FlatString */; var_v = p0; { { /* Inline parser_nodes#AAsCastForm#n_expr (self) on */ var3 = self->attrs[COLOR_nit__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2299); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2648); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; } } -var4 = NULL; { -var5 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, var4); +var4 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL)); } -var_i = var5; +var_i = var4; { { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on */ -var8 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ -if (unlikely(var8 == NULL)) { +var7 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } -var6 = var8; -RET_LABEL7:(void)0; +var5 = var7; +RET_LABEL6:(void)0; } } { -{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var6) on */ -var11 = var6->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ -if (unlikely(var11 == NULL)) { +{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var5) on */ +var10 = var5->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var10 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522); +fatal_exit(1); } -var9 = var11; -RET_LABEL10:(void)0; +var8 = var10; +RET_LABEL9:(void)0; } } { -{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var9) on */ -var14 = var9->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ -if (unlikely(var14 == NULL)) { +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var8) on */ +var13 = var8->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var13 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); -show_backtrace(1); +fatal_exit(1); } -var12 = var14; -RET_LABEL13:(void)0; +var11 = var13; +RET_LABEL12:(void)0; } } { -{ /* Inline abstract_compiler#ToolContext#opt_no_check_assert (var12) on */ -var17 = var12->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_no_check_assert].val; /* _opt_no_check_assert on */ -if (unlikely(var17 == NULL)) { +{ /* Inline abstract_compiler#ToolContext#opt_no_check_assert (var11) on */ +var16 = var11->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_no_check_assert].val; /* _opt_no_check_assert on */ +if (unlikely(var16 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_assert"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 51); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 52); +fatal_exit(1); } -var15 = var17; -RET_LABEL16:(void)0; +var14 = var16; +RET_LABEL15:(void)0; } } { -{ /* Inline opts#Option#value (var15) on */ -var20 = var15->attrs[COLOR_opts__Option___value].val; /* _value on */ -var18 = var20; -RET_LABEL19:(void)0; +{ /* Inline opts#Option#value (var14) on */ +var19 = var14->attrs[COLOR_opts__Option___value].val; /* _value on */ +var17 = var19; +RET_LABEL18:(void)0; } } -var21 = ((struct instance_standard__Bool*)var18)->value; /* autounbox from nullable Object to Bool */; -if (var21){ +var20 = (short int)((long)(var17)>>2); +if (var20){ var = var_i; goto RET_LABEL; } else { } { { /* Inline typing#AExpr#mtype (self) on */ -var24 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on */ -var22 = var24; -RET_LABEL23:(void)0; +var23 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on */ +var21 = var23; +RET_LABEL22:(void)0; } } -if (unlikely(var22 == NULL)) { +if (unlikely(var21 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2793); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3048); +fatal_exit(1); } -if (varonce) { -var25 = varonce; +if (likely(varonce!=NULL)) { +var24 = varonce; } else { -var26 = "as"; -var27 = 2; -var28 = standard___standard__NativeString___to_s_with_length(var26, var27); -var25 = var28; -varonce = var25; +var25 = "as"; +var26 = standard___standard__NativeString___to_s_with_length(var25, 2l); +var24 = var26; +varonce = var24; } { -nit___nit__AbstractCompilerVisitor___add_cast(var_v, var_i, var22, var25); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_cast on */ +nit___nit__AbstractCompilerVisitor___add_cast(var_v, var_i, var21, var24); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_cast on */ } var = var_i; goto RET_LABEL; @@ -3286,234 +4137,196 @@ val* var /* : nullable RuntimeVariable */; val* var_v /* var v: AbstractCompilerVisitor */; val* var1 /* : AExpr */; val* var3 /* : AExpr */; -val* var4 /* : null */; -val* var5 /* : RuntimeVariable */; +val* var4 /* : RuntimeVariable */; val* var_i /* var i: RuntimeVariable */; -val* var6 /* : AbstractCompiler */; -val* var8 /* : AbstractCompiler */; -val* var9 /* : ModelBuilder */; -val* var11 /* : ModelBuilder */; -val* var12 /* : ToolContext */; -val* var14 /* : ToolContext */; -val* var15 /* : OptionBool */; -val* var17 /* : OptionBool */; -val* var18 /* : nullable Object */; -val* var20 /* : nullable Object */; -short int var21 /* : Bool */; -val* var22 /* : MType */; -val* var24 /* : MType */; -val* var25 /* : String */; +val* var5 /* : AbstractCompiler */; +val* var7 /* : AbstractCompiler */; +val* var8 /* : ModelBuilder */; +val* var10 /* : ModelBuilder */; +val* var11 /* : ToolContext */; +val* var13 /* : ToolContext */; +val* var14 /* : OptionBool */; +val* var16 /* : OptionBool */; +val* var17 /* : nullable Object */; +val* var19 /* : nullable Object */; +short int var20 /* : Bool */; +val* var21 /* : MType */; +val* var23 /* : MType */; +short int var24 /* : Bool */; +val* var25 /* : NativeArray[String] */; static val* varonce; -val* var26 /* : String */; -char* var27 /* : NativeString */; -long var28 /* : Int */; +static val* varonce26; +val* var27 /* : String */; +char* var28 /* : NativeString */; val* var29 /* : FlatString */; -short int var30 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var32 /* : Bool */; -short int var33 /* : Bool */; -static val* varonce34; +static val* varonce30; +val* var31 /* : String */; +char* var32 /* : NativeString */; +val* var33 /* : FlatString */; +val* var34 /* : String */; val* var35 /* : String */; -char* var36 /* : NativeString */; -long var37 /* : Int */; -val* var38 /* : FlatString */; -static val* varonce39; -val* var40 /* : String */; -char* var41 /* : NativeString */; -long var42 /* : Int */; +static val* varonce36; +val* var37 /* : String */; +char* var38 /* : NativeString */; +val* var39 /* : FlatString */; +static val* varonce40; +val* var41 /* : String */; +char* var42 /* : NativeString */; val* var43 /* : FlatString */; -val* var44 /* : Array[Object] */; -long var45 /* : Int */; -val* var46 /* : NativeArray[Object] */; -val* var47 /* : String */; -static val* varonce48; -val* var49 /* : String */; -char* var50 /* : NativeString */; -long var51 /* : Int */; -val* var52 /* : FlatString */; -static val* varonce53; -val* var54 /* : String */; -char* var55 /* : NativeString */; -long var56 /* : Int */; -val* var57 /* : FlatString */; var_v = p0; { { /* Inline parser_nodes#AAsCastForm#n_expr (self) on */ var3 = self->attrs[COLOR_nit__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2299); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2648); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; } } -var4 = NULL; { -var5 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, var4); +var4 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL)); } -var_i = var5; +var_i = var4; { { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on */ -var8 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ -if (unlikely(var8 == NULL)) { +var7 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ +if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102); +fatal_exit(1); } -var6 = var8; -RET_LABEL7:(void)0; +var5 = var7; +RET_LABEL6:(void)0; } } { -{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var6) on */ -var11 = var6->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ -if (unlikely(var11 == NULL)) { +{ /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var5) on */ +var10 = var5->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var10 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 522); +fatal_exit(1); } -var9 = var11; -RET_LABEL10:(void)0; +var8 = var10; +RET_LABEL9:(void)0; } } { -{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var9) on */ -var14 = var9->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ -if (unlikely(var14 == NULL)) { +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (var8) on */ +var13 = var8->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var13 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); -show_backtrace(1); +fatal_exit(1); } -var12 = var14; -RET_LABEL13:(void)0; +var11 = var13; +RET_LABEL12:(void)0; } } { -{ /* Inline abstract_compiler#ToolContext#opt_no_check_assert (var12) on */ -var17 = var12->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_no_check_assert].val; /* _opt_no_check_assert on */ -if (unlikely(var17 == NULL)) { +{ /* Inline abstract_compiler#ToolContext#opt_no_check_assert (var11) on */ +var16 = var11->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_no_check_assert].val; /* _opt_no_check_assert on */ +if (unlikely(var16 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_assert"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 51); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 52); +fatal_exit(1); } -var15 = var17; -RET_LABEL16:(void)0; +var14 = var16; +RET_LABEL15:(void)0; } } { -{ /* Inline opts#Option#value (var15) on */ -var20 = var15->attrs[COLOR_opts__Option___value].val; /* _value on */ -var18 = var20; -RET_LABEL19:(void)0; +{ /* Inline opts#Option#value (var14) on */ +var19 = var14->attrs[COLOR_opts__Option___value].val; /* _value on */ +var17 = var19; +RET_LABEL18:(void)0; } } -var21 = ((struct instance_standard__Bool*)var18)->value; /* autounbox from nullable Object to Bool */; -if (var21){ +var20 = (short int)((long)(var17)>>2); +if (var20){ var = var_i; goto RET_LABEL; } else { } { { /* Inline abstract_compiler#RuntimeVariable#mtype (var_i) on */ -var24 = var_i->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ -if (unlikely(var24 == NULL)) { +var23 = var_i->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var23 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); } -var22 = var24; -RET_LABEL23:(void)0; -} -} -{ -var25 = ((val* (*)(val* self))(var22->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var22) /* ctype on */; +var21 = var23; +RET_LABEL22:(void)0; } -if (varonce) { -var26 = varonce; -} else { -var27 = "val*"; -var28 = 4; -var29 = standard___standard__NativeString___to_s_with_length(var27, var28); -var26 = var29; -varonce = var26; } { -{ /* Inline kernel#Object#!= (var25,var26) on */ -var_other = var26; -{ -var32 = ((short int (*)(val* self, val* p0))(var25->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var25, var_other) /* == on */; -} -var33 = !var32; -var30 = var33; -goto RET_LABEL31; -RET_LABEL31:(void)0; -} +var24 = ((short int(*)(val* self))(var21->class->vft[COLOR_nit__abstract_compiler__MType__is_c_primitive]))(var21); /* is_c_primitive on */ } -if (var30){ +if (var24){ var = var_i; goto RET_LABEL; } else { } -if (varonce34) { -var35 = varonce34; +if (unlikely(varonce==NULL)) { +var25 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce26!=NULL)) { +var27 = varonce26; } else { -var36 = "if (unlikely("; -var37 = 13; -var38 = standard___standard__NativeString___to_s_with_length(var36, var37); -var35 = var38; -varonce34 = var35; +var28 = "if (unlikely("; +var29 = standard___standard__NativeString___to_s_with_length(var28, 13l); +var27 = var29; +varonce26 = var27; } -if (varonce39) { -var40 = varonce39; +((struct instance_standard__NativeArray*)var25)->values[0]=var27; +if (likely(varonce30!=NULL)) { +var31 = varonce30; } else { -var41 = " == NULL)) {"; -var42 = 12; -var43 = standard___standard__NativeString___to_s_with_length(var41, var42); -var40 = var43; -varonce39 = var40; +var32 = " == NULL)) {"; +var33 = standard___standard__NativeString___to_s_with_length(var32, 12l); +var31 = var33; +varonce30 = var31; } -var44 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var44 = array_instance Array[Object] */ -var45 = 3; -var46 = NEW_standard__NativeArray(var45, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var46)->values[0] = (val*) var35; -((struct instance_standard__NativeArray*)var46)->values[1] = (val*) var_i; -((struct instance_standard__NativeArray*)var46)->values[2] = (val*) var40; -{ -((void (*)(val* self, val* p0, long p1))(var44->class->vft[COLOR_standard__array__Array__with_native]))(var44, var46, var45) /* with_native on */; +((struct instance_standard__NativeArray*)var25)->values[2]=var31; +} else { +var25 = varonce; +varonce = NULL; } +{ +var34 = ((val*(*)(val* self))(var_i->class->vft[COLOR_standard__string__Object__to_s]))(var_i); /* to_s on */ } +((struct instance_standard__NativeArray*)var25)->values[1]=var34; { -var47 = ((val* (*)(val* self))(var44->class->vft[COLOR_standard__string__Object__to_s]))(var44) /* to_s on */; +var35 = ((val*(*)(val* self))(var25->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var25); /* native_to_s on */ } +varonce = var25; { -nit___nit__AbstractCompilerVisitor___add(var_v, var47); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var35); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce48) { -var49 = varonce48; +if (likely(varonce36!=NULL)) { +var37 = varonce36; } else { -var50 = "Cast failed"; -var51 = 11; -var52 = standard___standard__NativeString___to_s_with_length(var50, var51); -var49 = var52; -varonce48 = var49; +var38 = "Cast failed"; +var39 = standard___standard__NativeString___to_s_with_length(var38, 11l); +var37 = var39; +varonce36 = var37; } { -nit___nit__AbstractCompilerVisitor___add_abort(var_v, var49); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ +nit___nit__AbstractCompilerVisitor___add_abort(var_v, var37); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ } -if (varonce53) { -var54 = varonce53; +if (likely(varonce40!=NULL)) { +var41 = varonce40; } else { -var55 = "}"; -var56 = 1; -var57 = standard___standard__NativeString___to_s_with_length(var55, var56); -var54 = var57; -varonce53 = var54; +var42 = "}"; +var43 = standard___standard__NativeString___to_s_with_length(var42, 1l); +var41 = var43; +varonce40 = var41; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var54); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var41); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } var = var_i; goto RET_LABEL; @@ -3526,26 +4339,24 @@ val* var /* : nullable RuntimeVariable */; val* var_v /* var v: AbstractCompilerVisitor */; val* var1 /* : AExpr */; val* var3 /* : AExpr */; -val* var4 /* : null */; -val* var5 /* : RuntimeVariable */; +val* var4 /* : RuntimeVariable */; var_v = p0; { { /* Inline parser_nodes#AParExpr#n_expr (self) on */ var3 = self->attrs[COLOR_nit__parser_nodes__AParExpr___n_expr].val; /* _n_expr on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2288); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2637); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; } } -var4 = NULL; { -var5 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, var4); +var4 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL)); } -var = var5; +var = var4; goto RET_LABEL; RET_LABEL:; return var; @@ -3560,133 +4371,112 @@ val* var_mtype /* var mtype: MType */; static val* varonce; val* var4 /* : String */; char* var5 /* : NativeString */; -long var6 /* : Int */; -val* var7 /* : FlatString */; -val* var8 /* : String */; +val* var6 /* : FlatString */; +val* var7 /* : String */; val* var_name /* var name: String */; -static val* varonce9; -val* var10 /* : String */; -char* var11 /* : NativeString */; -long var12 /* : Int */; -val* var13 /* : FlatString */; -val* var14 /* : String */; -val* var15 /* : String */; +static val* varonce8; +val* var9 /* : String */; +char* var10 /* : NativeString */; +val* var11 /* : FlatString */; +val* var12 /* : String */; +val* var13 /* : String */; val* var_guard /* var guard: String */; +val* var15 /* : NativeArray[String] */; +static val* varonce14; static val* varonce16; val* var17 /* : String */; char* var18 /* : NativeString */; -long var19 /* : Int */; -val* var20 /* : FlatString */; +val* var19 /* : FlatString */; +static val* varonce20; val* var21 /* : String */; -static val* varonce22; -val* var23 /* : String */; -char* var24 /* : NativeString */; -long var25 /* : Int */; -val* var26 /* : FlatString */; -static val* varonce27; +char* var22 /* : NativeString */; +val* var23 /* : FlatString */; +static val* varonce24; +val* var25 /* : String */; +char* var26 /* : NativeString */; +val* var27 /* : FlatString */; val* var28 /* : String */; -char* var29 /* : NativeString */; -long var30 /* : Int */; -val* var31 /* : FlatString */; -val* var32 /* : Array[Object] */; -long var33 /* : Int */; -val* var34 /* : NativeArray[Object] */; -val* var35 /* : String */; +val* var29 /* : String */; +val* var31 /* : NativeArray[String] */; +static val* varonce30; +static val* varonce32; +val* var33 /* : String */; +char* var34 /* : NativeString */; +val* var35 /* : FlatString */; static val* varonce36; val* var37 /* : String */; char* var38 /* : NativeString */; -long var39 /* : Int */; -val* var40 /* : FlatString */; -static val* varonce41; -val* var42 /* : String */; -char* var43 /* : NativeString */; -long var44 /* : Int */; -val* var45 /* : FlatString */; -val* var46 /* : Array[Object] */; -long var47 /* : Int */; -val* var48 /* : NativeArray[Object] */; -val* var49 /* : String */; -val* var50 /* : RuntimeVariable */; +val* var39 /* : FlatString */; +val* var40 /* : String */; +val* var41 /* : RuntimeVariable */; val* var_res /* var res: RuntimeVariable */; -static val* varonce51; +val* var43 /* : NativeArray[String] */; +static val* varonce42; +static val* varonce44; +val* var45 /* : String */; +char* var46 /* : NativeString */; +val* var47 /* : FlatString */; +static val* varonce48; +val* var49 /* : String */; +char* var50 /* : NativeString */; +val* var51 /* : FlatString */; val* var52 /* : String */; -char* var53 /* : NativeString */; -long var54 /* : Int */; -val* var55 /* : FlatString */; -static val* varonce56; -val* var57 /* : String */; -char* var58 /* : NativeString */; -long var59 /* : Int */; -val* var60 /* : FlatString */; -val* var61 /* : Array[Object] */; -long var62 /* : Int */; -val* var63 /* : NativeArray[Object] */; +val* var54 /* : NativeArray[String] */; +static val* varonce53; +static val* varonce55; +val* var56 /* : String */; +char* var57 /* : NativeString */; +val* var58 /* : FlatString */; +static val* varonce59; +val* var60 /* : String */; +char* var61 /* : NativeString */; +val* var62 /* : FlatString */; +val* var63 /* : String */; val* var64 /* : String */; static val* varonce65; val* var66 /* : String */; char* var67 /* : NativeString */; -long var68 /* : Int */; -val* var69 /* : FlatString */; -static val* varonce70; -val* var71 /* : String */; -char* var72 /* : NativeString */; -long var73 /* : Int */; -val* var74 /* : FlatString */; -val* var75 /* : Array[Object] */; -long var76 /* : Int */; -val* var77 /* : NativeArray[Object] */; -val* var78 /* : String */; +val* var68 /* : FlatString */; +val* var69 /* : AExpr */; +val* var71 /* : AExpr */; +val* var72 /* : RuntimeVariable */; +val* var_i /* var i: RuntimeVariable */; +val* var74 /* : NativeArray[String] */; +static val* varonce73; +static val* varonce75; +val* var76 /* : String */; +char* var77 /* : NativeString */; +val* var78 /* : FlatString */; static val* varonce79; val* var80 /* : String */; char* var81 /* : NativeString */; -long var82 /* : Int */; -val* var83 /* : FlatString */; -val* var84 /* : AExpr */; -val* var86 /* : AExpr */; -val* var87 /* : RuntimeVariable */; -val* var_i /* var i: RuntimeVariable */; +val* var82 /* : FlatString */; +val* var83 /* : String */; +val* var84 /* : String */; +val* var85 /* : String */; +val* var87 /* : NativeArray[String] */; +static val* varonce86; static val* varonce88; val* var89 /* : String */; char* var90 /* : NativeString */; -long var91 /* : Int */; -val* var92 /* : FlatString */; -static val* varonce93; -val* var94 /* : String */; -char* var95 /* : NativeString */; -long var96 /* : Int */; -val* var97 /* : FlatString */; -val* var98 /* : Array[Object] */; -long var99 /* : Int */; -val* var100 /* : NativeArray[Object] */; +val* var91 /* : FlatString */; +static val* varonce92; +val* var93 /* : String */; +char* var94 /* : NativeString */; +val* var95 /* : FlatString */; +val* var96 /* : String */; +val* var97 /* : String */; +val* var99 /* : NativeArray[String] */; +static val* varonce98; +static val* varonce100; val* var101 /* : String */; -static val* varonce102; -val* var103 /* : String */; -char* var104 /* : NativeString */; -long var105 /* : Int */; -val* var106 /* : FlatString */; -static val* varonce107; -val* var108 /* : String */; -char* var109 /* : NativeString */; -long var110 /* : Int */; -val* var111 /* : FlatString */; -val* var112 /* : Array[Object] */; -long var113 /* : Int */; -val* var114 /* : NativeArray[Object] */; -val* var115 /* : String */; -static val* varonce116; -val* var117 /* : String */; -char* var118 /* : NativeString */; -long var119 /* : Int */; -val* var120 /* : FlatString */; -val* var121 /* : Array[Object] */; -long var122 /* : Int */; -val* var123 /* : NativeArray[Object] */; -val* var124 /* : String */; -static val* varonce125; -val* var126 /* : String */; -char* var127 /* : NativeString */; -long var128 /* : Int */; -val* var129 /* : FlatString */; +char* var102 /* : NativeString */; +val* var103 /* : FlatString */; +val* var104 /* : String */; +static val* varonce105; +val* var106 /* : String */; +char* var107 /* : NativeString */; +val* var108 /* : FlatString */; var_v = p0; { { /* Inline typing#AExpr#mtype (self) on */ @@ -3697,334 +4487,321 @@ RET_LABEL2:(void)0; } if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2820); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3075); +fatal_exit(1); } var_mtype = var1; -if (varonce) { +if (likely(varonce!=NULL)) { var4 = varonce; } else { var5 = "varonce"; -var6 = 7; -var7 = standard___standard__NativeString___to_s_with_length(var5, var6); -var4 = var7; +var6 = standard___standard__NativeString___to_s_with_length(var5, 7l); +var4 = var6; varonce = var4; } { -var8 = nit___nit__AbstractCompilerVisitor___get_name(var_v, var4); +var7 = nit___nit__AbstractCompilerVisitor___get_name(var_v, var4); } -var_name = var8; -if (varonce9) { -var10 = varonce9; +var_name = var7; +if (likely(varonce8!=NULL)) { +var9 = varonce8; } else { -var11 = "_guard"; -var12 = 6; -var13 = standard___standard__NativeString___to_s_with_length(var11, var12); -var10 = var13; -varonce9 = var10; +var10 = "_guard"; +var11 = standard___standard__NativeString___to_s_with_length(var10, 6l); +var9 = var11; +varonce8 = var9; } { -var14 = ((val* (*)(val* self, val* p0))(var_name->class->vft[COLOR_standard__string__String___43d]))(var_name, var10) /* + on */; +var12 = ((val*(*)(val* self, val* p0))(var_name->class->vft[COLOR_standard__string__String___43d]))(var_name, var9); /* + on */ } { -var15 = nit___nit__AbstractCompilerVisitor___get_name(var_v, var14); +var13 = nit___nit__AbstractCompilerVisitor___get_name(var_v, var12); } -var_guard = var15; -if (varonce16) { +var_guard = var13; +if (unlikely(varonce14==NULL)) { +var15 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce16!=NULL)) { var17 = varonce16; } else { var18 = "static "; -var19 = 7; -var20 = standard___standard__NativeString___to_s_with_length(var18, var19); -var17 = var20; +var19 = standard___standard__NativeString___to_s_with_length(var18, 7l); +var17 = var19; varonce16 = var17; } -{ -var21 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var_mtype) /* ctype on */; +((struct instance_standard__NativeArray*)var15)->values[0]=var17; +if (likely(varonce20!=NULL)) { +var21 = varonce20; +} else { +var22 = " "; +var23 = standard___standard__NativeString___to_s_with_length(var22, 1l); +var21 = var23; +varonce20 = var21; } -if (varonce22) { -var23 = varonce22; +((struct instance_standard__NativeArray*)var15)->values[2]=var21; +if (likely(varonce24!=NULL)) { +var25 = varonce24; } else { -var24 = " "; -var25 = 1; -var26 = standard___standard__NativeString___to_s_with_length(var24, var25); -var23 = var26; -varonce22 = var23; +var26 = ";"; +var27 = standard___standard__NativeString___to_s_with_length(var26, 1l); +var25 = var27; +varonce24 = var25; } -if (varonce27) { -var28 = varonce27; +((struct instance_standard__NativeArray*)var15)->values[4]=var25; } else { -var29 = ";"; -var30 = 1; -var31 = standard___standard__NativeString___to_s_with_length(var29, var30); -var28 = var31; -varonce27 = var28; +var15 = varonce14; +varonce14 = NULL; } -var32 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var32 = array_instance Array[Object] */ -var33 = 5; -var34 = NEW_standard__NativeArray(var33, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var34)->values[0] = (val*) var17; -((struct instance_standard__NativeArray*)var34)->values[1] = (val*) var21; -((struct instance_standard__NativeArray*)var34)->values[2] = (val*) var23; -((struct instance_standard__NativeArray*)var34)->values[3] = (val*) var_name; -((struct instance_standard__NativeArray*)var34)->values[4] = (val*) var28; { -((void (*)(val* self, val* p0, long p1))(var32->class->vft[COLOR_standard__array__Array__with_native]))(var32, var34, var33) /* with_native on */; -} +var28 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var_mtype); /* ctype on */ } +((struct instance_standard__NativeArray*)var15)->values[1]=var28; +((struct instance_standard__NativeArray*)var15)->values[3]=var_name; { -var35 = ((val* (*)(val* self))(var32->class->vft[COLOR_standard__string__Object__to_s]))(var32) /* to_s on */; +var29 = ((val*(*)(val* self))(var15->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var15); /* native_to_s on */ } +varonce14 = var15; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var35); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var29); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +} +if (unlikely(varonce30==NULL)) { +var31 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce32!=NULL)) { +var33 = varonce32; +} else { +var34 = "static int "; +var35 = standard___standard__NativeString___to_s_with_length(var34, 11l); +var33 = var35; +varonce32 = var33; } -if (varonce36) { +((struct instance_standard__NativeArray*)var31)->values[0]=var33; +if (likely(varonce36!=NULL)) { var37 = varonce36; } else { -var38 = "static int "; -var39 = 11; -var40 = standard___standard__NativeString___to_s_with_length(var38, var39); -var37 = var40; +var38 = ";"; +var39 = standard___standard__NativeString___to_s_with_length(var38, 1l); +var37 = var39; varonce36 = var37; } -if (varonce41) { -var42 = varonce41; +((struct instance_standard__NativeArray*)var31)->values[2]=var37; } else { -var43 = ";"; -var44 = 1; -var45 = standard___standard__NativeString___to_s_with_length(var43, var44); -var42 = var45; -varonce41 = var42; +var31 = varonce30; +varonce30 = NULL; } -var46 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var46 = array_instance Array[Object] */ -var47 = 3; -var48 = NEW_standard__NativeArray(var47, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var48)->values[0] = (val*) var37; -((struct instance_standard__NativeArray*)var48)->values[1] = (val*) var_guard; -((struct instance_standard__NativeArray*)var48)->values[2] = (val*) var42; +((struct instance_standard__NativeArray*)var31)->values[1]=var_guard; { -((void (*)(val* self, val* p0, long p1))(var46->class->vft[COLOR_standard__array__Array__with_native]))(var46, var48, var47) /* with_native on */; -} +var40 = ((val*(*)(val* self))(var31->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var31); /* native_to_s on */ } +varonce30 = var31; { -var49 = ((val* (*)(val* self))(var46->class->vft[COLOR_standard__string__Object__to_s]))(var46) /* to_s on */; +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var40); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var49); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +var41 = nit___nit__AbstractCompilerVisitor___new_var(var_v, var_mtype); } -{ -var50 = nit___nit__AbstractCompilerVisitor___new_var(var_v, var_mtype); +var_res = var41; +if (unlikely(varonce42==NULL)) { +var43 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce44!=NULL)) { +var45 = varonce44; +} else { +var46 = "if (likely("; +var47 = standard___standard__NativeString___to_s_with_length(var46, 11l); +var45 = var47; +varonce44 = var45; } -var_res = var50; -if (varonce51) { -var52 = varonce51; +((struct instance_standard__NativeArray*)var43)->values[0]=var45; +if (likely(varonce48!=NULL)) { +var49 = varonce48; } else { -var53 = "if ("; -var54 = 4; -var55 = standard___standard__NativeString___to_s_with_length(var53, var54); -var52 = var55; -varonce51 = var52; +var50 = ")) {"; +var51 = standard___standard__NativeString___to_s_with_length(var50, 4l); +var49 = var51; +varonce48 = var49; } -if (varonce56) { -var57 = varonce56; +((struct instance_standard__NativeArray*)var43)->values[2]=var49; } else { -var58 = ") {"; -var59 = 3; -var60 = standard___standard__NativeString___to_s_with_length(var58, var59); -var57 = var60; -varonce56 = var57; +var43 = varonce42; +varonce42 = NULL; } -var61 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var61 = array_instance Array[Object] */ -var62 = 3; -var63 = NEW_standard__NativeArray(var62, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var63)->values[0] = (val*) var52; -((struct instance_standard__NativeArray*)var63)->values[1] = (val*) var_guard; -((struct instance_standard__NativeArray*)var63)->values[2] = (val*) var57; +((struct instance_standard__NativeArray*)var43)->values[1]=var_guard; { -((void (*)(val* self, val* p0, long p1))(var61->class->vft[COLOR_standard__array__Array__with_native]))(var61, var63, var62) /* with_native on */; -} +var52 = ((val*(*)(val* self))(var43->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var43); /* native_to_s on */ } +varonce42 = var43; { -var64 = ((val* (*)(val* self))(var61->class->vft[COLOR_standard__string__Object__to_s]))(var61) /* to_s on */; +nit___nit__AbstractCompilerVisitor___add(var_v, var52); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -{ -nit___nit__AbstractCompilerVisitor___add(var_v, var64); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +if (unlikely(varonce53==NULL)) { +var54 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce55!=NULL)) { +var56 = varonce55; +} else { +var57 = " = "; +var58 = standard___standard__NativeString___to_s_with_length(var57, 3l); +var56 = var58; +varonce55 = var56; } -if (varonce65) { -var66 = varonce65; +((struct instance_standard__NativeArray*)var54)->values[1]=var56; +if (likely(varonce59!=NULL)) { +var60 = varonce59; } else { -var67 = " = "; -var68 = 3; -var69 = standard___standard__NativeString___to_s_with_length(var67, var68); -var66 = var69; -varonce65 = var66; +var61 = ";"; +var62 = standard___standard__NativeString___to_s_with_length(var61, 1l); +var60 = var62; +varonce59 = var60; } -if (varonce70) { -var71 = varonce70; +((struct instance_standard__NativeArray*)var54)->values[3]=var60; } else { -var72 = ";"; -var73 = 1; -var74 = standard___standard__NativeString___to_s_with_length(var72, var73); -var71 = var74; -varonce70 = var71; +var54 = varonce53; +varonce53 = NULL; } -var75 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var75 = array_instance Array[Object] */ -var76 = 4; -var77 = NEW_standard__NativeArray(var76, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var77)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var77)->values[1] = (val*) var66; -((struct instance_standard__NativeArray*)var77)->values[2] = (val*) var_name; -((struct instance_standard__NativeArray*)var77)->values[3] = (val*) var71; { -((void (*)(val* self, val* p0, long p1))(var75->class->vft[COLOR_standard__array__Array__with_native]))(var75, var77, var76) /* with_native on */; -} +var63 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var54)->values[0]=var63; +((struct instance_standard__NativeArray*)var54)->values[2]=var_name; { -var78 = ((val* (*)(val* self))(var75->class->vft[COLOR_standard__string__Object__to_s]))(var75) /* to_s on */; +var64 = ((val*(*)(val* self))(var54->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var54); /* native_to_s on */ } +varonce53 = var54; { -nit___nit__AbstractCompilerVisitor___add(var_v, var78); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var64); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce79) { -var80 = varonce79; +if (likely(varonce65!=NULL)) { +var66 = varonce65; } else { -var81 = "} else {"; -var82 = 8; -var83 = standard___standard__NativeString___to_s_with_length(var81, var82); -var80 = var83; -varonce79 = var80; +var67 = "} else {"; +var68 = standard___standard__NativeString___to_s_with_length(var67, 8l); +var66 = var68; +varonce65 = var66; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var80); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var66); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } { { /* Inline parser_nodes#AOnceExpr#n_expr (self) on */ -var86 = self->attrs[COLOR_nit__parser_nodes__AOnceExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var86 == NULL)) { +var71 = self->attrs[COLOR_nit__parser_nodes__AOnceExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var71 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1794); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2017); +fatal_exit(1); } -var84 = var86; -RET_LABEL85:(void)0; +var69 = var71; +RET_LABEL70:(void)0; } } { -var87 = nit___nit__AbstractCompilerVisitor___expr(var_v, var84, var_mtype); +var72 = nit___nit__AbstractCompilerVisitor___expr(var_v, var69, var_mtype); } -var_i = var87; -if (varonce88) { -var89 = varonce88; +var_i = var72; +if (unlikely(varonce73==NULL)) { +var74 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce75!=NULL)) { +var76 = varonce75; } else { -var90 = " = "; -var91 = 3; -var92 = standard___standard__NativeString___to_s_with_length(var90, var91); -var89 = var92; -varonce88 = var89; +var77 = " = "; +var78 = standard___standard__NativeString___to_s_with_length(var77, 3l); +var76 = var78; +varonce75 = var76; +} +((struct instance_standard__NativeArray*)var74)->values[1]=var76; +if (likely(varonce79!=NULL)) { +var80 = varonce79; +} else { +var81 = ";"; +var82 = standard___standard__NativeString___to_s_with_length(var81, 1l); +var80 = var82; +varonce79 = var80; } -if (varonce93) { -var94 = varonce93; +((struct instance_standard__NativeArray*)var74)->values[3]=var80; } else { -var95 = ";"; -var96 = 1; -var97 = standard___standard__NativeString___to_s_with_length(var95, var96); -var94 = var97; -varonce93 = var94; +var74 = varonce73; +varonce73 = NULL; } -var98 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var98 = array_instance Array[Object] */ -var99 = 4; -var100 = NEW_standard__NativeArray(var99, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var100)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var100)->values[1] = (val*) var89; -((struct instance_standard__NativeArray*)var100)->values[2] = (val*) var_i; -((struct instance_standard__NativeArray*)var100)->values[3] = (val*) var94; { -((void (*)(val* self, val* p0, long p1))(var98->class->vft[COLOR_standard__array__Array__with_native]))(var98, var100, var99) /* with_native on */; +var83 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var74)->values[0]=var83; +{ +var84 = ((val*(*)(val* self))(var_i->class->vft[COLOR_standard__string__Object__to_s]))(var_i); /* to_s on */ } +((struct instance_standard__NativeArray*)var74)->values[2]=var84; { -var101 = ((val* (*)(val* self))(var98->class->vft[COLOR_standard__string__Object__to_s]))(var98) /* to_s on */; +var85 = ((val*(*)(val* self))(var74->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var74); /* native_to_s on */ } +varonce73 = var74; { -nit___nit__AbstractCompilerVisitor___add(var_v, var101); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var85); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce102) { -var103 = varonce102; +if (unlikely(varonce86==NULL)) { +var87 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce88!=NULL)) { +var89 = varonce88; } else { -var104 = " = "; -var105 = 3; -var106 = standard___standard__NativeString___to_s_with_length(var104, var105); -var103 = var106; -varonce102 = var103; +var90 = " = "; +var91 = standard___standard__NativeString___to_s_with_length(var90, 3l); +var89 = var91; +varonce88 = var89; } -if (varonce107) { -var108 = varonce107; +((struct instance_standard__NativeArray*)var87)->values[1]=var89; +if (likely(varonce92!=NULL)) { +var93 = varonce92; } else { -var109 = ";"; -var110 = 1; -var111 = standard___standard__NativeString___to_s_with_length(var109, var110); -var108 = var111; -varonce107 = var108; +var94 = ";"; +var95 = standard___standard__NativeString___to_s_with_length(var94, 1l); +var93 = var95; +varonce92 = var93; } -var112 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var112 = array_instance Array[Object] */ -var113 = 4; -var114 = NEW_standard__NativeArray(var113, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var114)->values[0] = (val*) var_name; -((struct instance_standard__NativeArray*)var114)->values[1] = (val*) var103; -((struct instance_standard__NativeArray*)var114)->values[2] = (val*) var_res; -((struct instance_standard__NativeArray*)var114)->values[3] = (val*) var108; -{ -((void (*)(val* self, val* p0, long p1))(var112->class->vft[COLOR_standard__array__Array__with_native]))(var112, var114, var113) /* with_native on */; +((struct instance_standard__NativeArray*)var87)->values[3]=var93; +} else { +var87 = varonce86; +varonce86 = NULL; } +((struct instance_standard__NativeArray*)var87)->values[0]=var_name; +{ +var96 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var87)->values[2]=var96; { -var115 = ((val* (*)(val* self))(var112->class->vft[COLOR_standard__string__Object__to_s]))(var112) /* to_s on */; +var97 = ((val*(*)(val* self))(var87->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var87); /* native_to_s on */ } +varonce86 = var87; { -nit___nit__AbstractCompilerVisitor___add(var_v, var115); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var97); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce116) { -var117 = varonce116; +if (unlikely(varonce98==NULL)) { +var99 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce100!=NULL)) { +var101 = varonce100; } else { -var118 = " = 1;"; -var119 = 5; -var120 = standard___standard__NativeString___to_s_with_length(var118, var119); -var117 = var120; -varonce116 = var117; -} -var121 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var121 = array_instance Array[Object] */ -var122 = 2; -var123 = NEW_standard__NativeArray(var122, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var123)->values[0] = (val*) var_guard; -((struct instance_standard__NativeArray*)var123)->values[1] = (val*) var117; -{ -((void (*)(val* self, val* p0, long p1))(var121->class->vft[COLOR_standard__array__Array__with_native]))(var121, var123, var122) /* with_native on */; +var102 = " = 1;"; +var103 = standard___standard__NativeString___to_s_with_length(var102, 5l); +var101 = var103; +varonce100 = var101; } +((struct instance_standard__NativeArray*)var99)->values[1]=var101; +} else { +var99 = varonce98; +varonce98 = NULL; } +((struct instance_standard__NativeArray*)var99)->values[0]=var_guard; { -var124 = ((val* (*)(val* self))(var121->class->vft[COLOR_standard__string__Object__to_s]))(var121) /* to_s on */; +var104 = ((val*(*)(val* self))(var99->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var99); /* native_to_s on */ } +varonce98 = var99; { -nit___nit__AbstractCompilerVisitor___add(var_v, var124); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var104); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce125) { -var126 = varonce125; +if (likely(varonce105!=NULL)) { +var106 = varonce105; } else { -var127 = "}"; -var128 = 1; -var129 = standard___standard__NativeString___to_s_with_length(var127, var128); -var126 = var129; -varonce125 = var126; +var107 = "}"; +var108 = standard___standard__NativeString___to_s_with_length(var107, 1l); +var106 = var108; +varonce105 = var106; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var126); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var106); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } var = var_res; goto RET_LABEL; @@ -4037,72 +4814,79 @@ val* var /* : nullable RuntimeVariable */; val* var_v /* var v: AbstractCompilerVisitor */; val* var1 /* : AExpr */; val* var3 /* : AExpr */; -val* var4 /* : null */; -val* var5 /* : RuntimeVariable */; +val* var4 /* : RuntimeVariable */; val* var_recv /* var recv: RuntimeVariable */; -val* var6 /* : nullable CallSite */; -val* var8 /* : nullable CallSite */; +val* var5 /* : nullable CallSite */; +val* var7 /* : nullable CallSite */; val* var_callsite /* var callsite: CallSite */; -val* var9 /* : MMethodDef */; -val* var11 /* : MMethodDef */; -val* var12 /* : Array[AExpr] */; -val* var13 /* : Array[RuntimeVariable] */; +val* var8 /* : MMethodDef */; +val* var10 /* : MMethodDef */; +val* var11 /* : nullable SignatureMap */; +val* var13 /* : nullable SignatureMap */; +val* var14 /* : Array[AExpr] */; +val* var15 /* : Array[RuntimeVariable] */; val* var_args /* var args: Array[RuntimeVariable] */; -val* var14 /* : nullable RuntimeVariable */; +val* var16 /* : nullable RuntimeVariable */; var_v = p0; { { /* Inline parser_nodes#ASendExpr#n_expr (self) on */ var3 = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1802); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2025); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; } } -var4 = NULL; { -var5 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, var4); +var4 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL)); } -var_recv = var5; +var_recv = var4; { { /* Inline typing#ASendExpr#callsite (self) on */ -var8 = self->attrs[COLOR_nit__typing__ASendExpr___callsite].val; /* _callsite on */ -var6 = var8; -RET_LABEL7:(void)0; +var7 = self->attrs[COLOR_nit__typing__ASendExpr___callsite].val; /* _callsite on */ +var5 = var7; +RET_LABEL6:(void)0; } } -if (unlikely(var6 == NULL)) { +if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2842); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3097); +fatal_exit(1); } -var_callsite = var6; +var_callsite = var5; { { /* Inline typing#CallSite#mpropdef (var_callsite) on */ -var11 = var_callsite->attrs[COLOR_nit__typing__CallSite___mpropdef].val; /* _mpropdef on */ -if (unlikely(var11 == NULL)) { +var10 = var_callsite->attrs[COLOR_nit__typing__CallSite___mpropdef].val; /* _mpropdef on */ +if (unlikely(var10 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 490); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 627); +fatal_exit(1); } -var9 = var11; -RET_LABEL10:(void)0; +var8 = var10; +RET_LABEL9:(void)0; +} +} +{ +{ /* Inline typing#CallSite#signaturemap (var_callsite) on */ +var13 = var_callsite->attrs[COLOR_nit__typing__CallSite___signaturemap].val; /* _signaturemap on */ +var11 = var13; +RET_LABEL12:(void)0; } } { -var12 = nit__typing___ASendExpr___raw_arguments(self); +var14 = nit__typing___ASendExpr___raw_arguments(self); } { -var13 = nit___nit__AbstractCompilerVisitor___varargize(var_v, var9, var_recv, var12); +var15 = nit___nit__AbstractCompilerVisitor___varargize(var_v, var8, var11, var_recv, var14); } -var_args = var13; +var_args = var15; { -var14 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_callsite, var_args) /* compile_callsite on */; +var16 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_callsite, var_args); /* compile_callsite on */ } -var = var14; +var = var16; goto RET_LABEL; RET_LABEL:; return var; @@ -4112,25 +4896,24 @@ void nit__abstract_compiler___ASendReassignFormExpr___AExpr__stmt(val* self, val val* var_v /* var v: AbstractCompilerVisitor */; val* var /* : AExpr */; val* var2 /* : AExpr */; -val* var3 /* : null */; -val* var4 /* : RuntimeVariable */; +val* var3 /* : RuntimeVariable */; val* var_recv /* var recv: RuntimeVariable */; -val* var5 /* : nullable CallSite */; -val* var7 /* : nullable CallSite */; +val* var4 /* : nullable CallSite */; +val* var6 /* : nullable CallSite */; val* var_callsite /* var callsite: CallSite */; -val* var8 /* : MMethodDef */; -val* var10 /* : MMethodDef */; -val* var11 /* : Array[AExpr] */; -val* var12 /* : Array[RuntimeVariable] */; +val* var7 /* : MMethodDef */; +val* var9 /* : MMethodDef */; +val* var10 /* : nullable SignatureMap */; +val* var12 /* : nullable SignatureMap */; +val* var13 /* : Array[AExpr] */; +val* var14 /* : Array[RuntimeVariable] */; val* var_args /* var args: Array[RuntimeVariable] */; -val* var13 /* : AExpr */; val* var15 /* : AExpr */; -val* var16 /* : null */; -val* var17 /* : RuntimeVariable */; +val* var17 /* : AExpr */; +val* var18 /* : RuntimeVariable */; val* var_value /* var value: RuntimeVariable */; -val* var18 /* : nullable RuntimeVariable */; +val* var19 /* : nullable RuntimeVariable */; val* var_left /* var left: nullable RuntimeVariable */; -val* var19 /* : null */; short int var20 /* : Bool */; short int var21 /* : Bool */; val* var_other /* var other: nullable Object */; @@ -4139,100 +4922,102 @@ short int var24 /* : Bool */; val* var25 /* : nullable CallSite */; val* var27 /* : nullable CallSite */; val* var28 /* : Array[RuntimeVariable] */; -long var29 /* : Int */; val* var_ /* var : Array[RuntimeVariable] */; -val* var30 /* : nullable RuntimeVariable */; +val* var29 /* : nullable RuntimeVariable */; val* var_res /* var res: nullable RuntimeVariable */; -val* var31 /* : null */; -short int var32 /* : Bool */; +short int var30 /* : Bool */; +short int var31 /* : Bool */; short int var33 /* : Bool */; -short int var35 /* : Bool */; -short int var36 /* : Bool */; +short int var34 /* : Bool */; +val* var35 /* : nullable CallSite */; val* var37 /* : nullable CallSite */; -val* var39 /* : nullable CallSite */; -val* var40 /* : nullable RuntimeVariable */; +val* var38 /* : nullable RuntimeVariable */; var_v = p0; { { /* Inline parser_nodes#ASendExpr#n_expr (self) on */ var2 = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1802); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2025); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; } } -var3 = NULL; { -var4 = nit___nit__AbstractCompilerVisitor___expr(var_v, var, var3); +var3 = nit___nit__AbstractCompilerVisitor___expr(var_v, var, ((val*)NULL)); } -var_recv = var4; +var_recv = var3; { { /* Inline typing#ASendExpr#callsite (self) on */ -var7 = self->attrs[COLOR_nit__typing__ASendExpr___callsite].val; /* _callsite on */ -var5 = var7; -RET_LABEL6:(void)0; +var6 = self->attrs[COLOR_nit__typing__ASendExpr___callsite].val; /* _callsite on */ +var4 = var6; +RET_LABEL5:(void)0; } } -if (unlikely(var5 == NULL)) { +if (unlikely(var4 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2852); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3107); +fatal_exit(1); } -var_callsite = var5; +var_callsite = var4; { { /* Inline typing#CallSite#mpropdef (var_callsite) on */ -var10 = var_callsite->attrs[COLOR_nit__typing__CallSite___mpropdef].val; /* _mpropdef on */ -if (unlikely(var10 == NULL)) { +var9 = var_callsite->attrs[COLOR_nit__typing__CallSite___mpropdef].val; /* _mpropdef on */ +if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 490); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 627); +fatal_exit(1); } -var8 = var10; -RET_LABEL9:(void)0; +var7 = var9; +RET_LABEL8:(void)0; +} +} +{ +{ /* Inline typing#CallSite#signaturemap (var_callsite) on */ +var12 = var_callsite->attrs[COLOR_nit__typing__CallSite___signaturemap].val; /* _signaturemap on */ +var10 = var12; +RET_LABEL11:(void)0; } } { -var11 = nit__typing___ASendExpr___raw_arguments(self); +var13 = nit__typing___ASendExpr___raw_arguments(self); } { -var12 = nit___nit__AbstractCompilerVisitor___varargize(var_v, var8, var_recv, var11); +var14 = nit___nit__AbstractCompilerVisitor___varargize(var_v, var7, var10, var_recv, var13); } -var_args = var12; +var_args = var14; { { /* Inline parser_nodes#AReassignFormExpr#n_value (self) on */ -var15 = self->attrs[COLOR_nit__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on */ -if (unlikely(var15 == NULL)) { +var17 = self->attrs[COLOR_nit__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on */ +if (unlikely(var17 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1783); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2006); +fatal_exit(1); } -var13 = var15; -RET_LABEL14:(void)0; +var15 = var17; +RET_LABEL16:(void)0; } } -var16 = NULL; { -var17 = nit___nit__AbstractCompilerVisitor___expr(var_v, var13, var16); +var18 = nit___nit__AbstractCompilerVisitor___expr(var_v, var15, ((val*)NULL)); } -var_value = var17; +var_value = var18; { -var18 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_callsite, var_args) /* compile_callsite on */; +var19 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_callsite, var_args); /* compile_callsite on */ } -var_left = var18; -var19 = NULL; +var_left = var19; if (var_left == NULL) { var20 = 0; /* is null */ } else { var20 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_left,var19) on */ -var_other = var19; +{ /* Inline kernel#Object#!= (var_left,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var23 = ((short int (*)(val* self, val* p0))(var_left->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_left, var_other) /* == on */; +var23 = ((short int(*)(val* self, val* p0))(var_left->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_left, var_other); /* == on */ } var24 = !var23; var21 = var24; @@ -4243,8 +5028,8 @@ var20 = var21; } if (unlikely(!var20)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2858); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3113); +fatal_exit(1); } { { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on */ @@ -4255,13 +5040,12 @@ RET_LABEL26:(void)0; } if (unlikely(var25 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2860); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3115); +fatal_exit(1); } var28 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); -var29 = 2; { -standard___standard__Array___with_capacity(var28, var29); /* Direct call array#Array#with_capacity on */ +standard___standard__Array___with_capacity(var28, 2l); /* Direct call array#Array#with_capacity on */ } var_ = var28; { @@ -4271,50 +5055,49 @@ standard___standard__AbstractArray___standard__abstract_collection__Sequence__pu standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_value); /* Direct call array#AbstractArray#push on */ } { -var30 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var25, var_) /* compile_callsite on */; +var29 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var25, var_); /* compile_callsite on */ } -var_res = var30; -var31 = NULL; +var_res = var29; if (var_res == NULL) { -var32 = 0; /* is null */ +var30 = 0; /* is null */ } else { -var32 = 1; /* arg is null and recv is not */ +var30 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_res,var31) on */ -var_other = var31; +{ /* Inline kernel#Object#!= (var_res,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var35 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other) /* == on */; +var33 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other); /* == on */ } -var36 = !var35; -var33 = var36; -goto RET_LABEL34; -RET_LABEL34:(void)0; +var34 = !var33; +var31 = var34; +goto RET_LABEL32; +RET_LABEL32:(void)0; } -var32 = var33; +var30 = var31; } -if (unlikely(!var32)) { +if (unlikely(!var30)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2861); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3116); +fatal_exit(1); } { standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_args, var_res); /* Direct call array#Array#add on */ } { { /* Inline typing#ASendReassignFormExpr#write_callsite (self) on */ -var39 = self->attrs[COLOR_nit__typing__ASendReassignFormExpr___write_callsite].val; /* _write_callsite on */ -var37 = var39; -RET_LABEL38:(void)0; +var37 = self->attrs[COLOR_nit__typing__ASendReassignFormExpr___write_callsite].val; /* _write_callsite on */ +var35 = var37; +RET_LABEL36:(void)0; } } -if (unlikely(var37 == NULL)) { +if (unlikely(var35 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2864); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3119); +fatal_exit(1); } { -var40 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var37, var_args) /* compile_callsite on */; +var38 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var35, var_args); /* compile_callsite on */ } RET_LABEL:; } @@ -4331,78 +5114,80 @@ val* var_recv /* var recv: RuntimeVariable */; val* var8 /* : nullable CallSite */; val* var10 /* : nullable CallSite */; val* var_callsite /* var callsite: nullable CallSite */; -val* var11 /* : null */; +short int var11 /* : Bool */; short int var12 /* : Bool */; -short int var13 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var14 /* : Bool */; short int var15 /* : Bool */; -short int var16 /* : Bool */; -val* var17 /* : MMethodDef */; -val* var19 /* : MMethodDef */; -val* var20 /* : AExprs */; -val* var22 /* : AExprs */; -val* var23 /* : ANodes[AExpr] */; -val* var25 /* : ANodes[AExpr] */; -val* var26 /* : Array[RuntimeVariable] */; -val* var_args /* var args: Array[RuntimeVariable] */; +val* var16 /* : AExprs */; +val* var18 /* : AExprs */; +val* var19 /* : ANodes[AExpr] */; +val* var21 /* : ANodes[AExpr] */; +short int var22 /* : Bool */; +val* var23 /* : Array[RuntimeVariable] */; +val* var_ /* var : Array[RuntimeVariable] */; +val* var_args /* var args: nullable Object */; +long var_i /* var i: Int */; +val* var24 /* : MSignature */; +val* var26 /* : MSignature */; long var27 /* : Int */; -long var29 /* : Int */; -long var30 /* : Int */; +long var_28 /* var : Int */; +short int var29 /* : Bool */; short int var31 /* : Bool */; -short int var33 /* : Bool */; -long var34 /* : Int */; -long var_i /* var i: Int */; -val* var35 /* : MSignature */; -val* var37 /* : MSignature */; -long var38 /* : Int */; -long var_ /* var : Int */; -short int var39 /* : Bool */; -short int var41 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var42 /* : Bool */; -val* var43 /* : nullable StaticFrame */; -val* var45 /* : nullable StaticFrame */; -val* var46 /* : Array[RuntimeVariable] */; -val* var48 /* : Array[RuntimeVariable] */; -long var49 /* : Int */; -long var50 /* : Int */; -short int var52 /* : Bool */; -int cltype53; -int idtype54; -const char* var_class_name55; -long var56 /* : Int */; -val* var57 /* : nullable Object */; -long var58 /* : Int */; -long var59 /* : Int */; -val* var60 /* : nullable RuntimeVariable */; +short int var32 /* : Bool */; +val* var33 /* : nullable StaticFrame */; +val* var35 /* : nullable StaticFrame */; +val* var36 /* : Array[RuntimeVariable] */; +val* var38 /* : Array[RuntimeVariable] */; +long var39 /* : Int */; +short int var41 /* : Bool */; +int cltype42; +int idtype43; +const char* var_class_name44; +long var45 /* : Int */; +val* var46 /* : nullable Object */; +long var47 /* : Int */; +val* var48 /* : MMethodDef */; +val* var50 /* : MMethodDef */; +val* var51 /* : nullable SignatureMap */; +val* var53 /* : nullable SignatureMap */; +val* var54 /* : AExprs */; +val* var56 /* : AExprs */; +val* var57 /* : ANodes[AExpr] */; +val* var59 /* : ANodes[AExpr] */; +val* var60 /* : Array[RuntimeVariable] */; +val* var61 /* : nullable RuntimeVariable */; val* var_res /* var res: nullable RuntimeVariable */; -val* var61 /* : nullable MMethodDef */; -val* var63 /* : nullable MMethodDef */; +val* var62 /* : nullable MMethodDef */; +val* var64 /* : nullable MMethodDef */; val* var_mpropdef /* var mpropdef: MMethodDef */; -val* var64 /* : AExprs */; -val* var66 /* : AExprs */; -val* var67 /* : ANodes[AExpr] */; -val* var69 /* : ANodes[AExpr] */; -val* var70 /* : Array[RuntimeVariable] */; -val* var_args71 /* var args: Array[RuntimeVariable] */; -long var72 /* : Int */; -long var74 /* : Int */; -long var75 /* : Int */; -short int var76 /* : Bool */; -short int var78 /* : Bool */; -val* var79 /* : nullable StaticFrame */; -val* var81 /* : nullable StaticFrame */; -val* var82 /* : Array[RuntimeVariable] */; -val* var84 /* : Array[RuntimeVariable] */; -val* var85 /* : MType */; -val* var87 /* : MType */; -short int var88 /* : Bool */; -int cltype89; -int idtype90; -const char* var_class_name91; -val* var92 /* : nullable RuntimeVariable */; +val* var65 /* : AExprs */; +val* var67 /* : AExprs */; +val* var68 /* : ANodes[AExpr] */; +val* var70 /* : ANodes[AExpr] */; +short int var71 /* : Bool */; +val* var72 /* : nullable StaticFrame */; +val* var74 /* : nullable StaticFrame */; +val* var75 /* : Array[RuntimeVariable] */; +val* var77 /* : Array[RuntimeVariable] */; +val* var_args78 /* var args: nullable Object */; +val* var79 /* : nullable SignatureMap */; +val* var81 /* : nullable SignatureMap */; +val* var82 /* : AExprs */; +val* var84 /* : AExprs */; +val* var85 /* : ANodes[AExpr] */; +val* var87 /* : ANodes[AExpr] */; +val* var88 /* : Array[RuntimeVariable] */; +val* var89 /* : MType */; +val* var91 /* : MType */; +short int var92 /* : Bool */; +int cltype93; +int idtype94; +const char* var_class_name95; +val* var96 /* : nullable RuntimeVariable */; var_v = p0; { { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on */ @@ -4413,20 +5198,20 @@ RET_LABEL2:(void)0; } if (var1 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2871); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3126); +fatal_exit(1); } else { { /* Inline abstract_compiler#StaticFrame#arguments (var1) on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1731); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1835); +fatal_exit(1); } var6 = var1->attrs[COLOR_nit__abstract_compiler__StaticFrame___arguments].val; /* _arguments on */ if (unlikely(var6 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1731); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1835); +fatal_exit(1); } var4 = var6; RET_LABEL5:(void)0; @@ -4444,311 +5229,352 @@ RET_LABEL9:(void)0; } } var_callsite = var8; -var11 = NULL; if (var_callsite == NULL) { -var12 = 0; /* is null */ +var11 = 0; /* is null */ } else { -var12 = 1; /* arg is null and recv is not */ +var11 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_callsite,var11) on */ -var_other = var11; -{ -var15 = ((short int (*)(val* self, val* p0))(var_callsite->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_callsite, var_other) /* == on */; -} -var16 = !var15; -var13 = var16; -goto RET_LABEL14; -RET_LABEL14:(void)0; -} -var12 = var13; -} -if (var12){ +{ /* Inline kernel#Object#!= (var_callsite,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline typing#CallSite#mpropdef (var_callsite) on */ -var19 = var_callsite->attrs[COLOR_nit__typing__CallSite___mpropdef].val; /* _mpropdef on */ -if (unlikely(var19 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 490); -show_backtrace(1); -} -var17 = var19; -RET_LABEL18:(void)0; +var14 = ((short int(*)(val* self, val* p0))(var_callsite->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_callsite, var_other); /* == on */ } +var15 = !var14; +var12 = var15; +goto RET_LABEL13; +RET_LABEL13:(void)0; } +var11 = var12; +} +if (var11){ { { /* Inline parser_nodes#ASuperExpr#n_args (self) on */ -var22 = self->attrs[COLOR_nit__parser_nodes__ASuperExpr___n_args].val; /* _n_args on */ -if (unlikely(var22 == NULL)) { +var18 = self->attrs[COLOR_nit__parser_nodes__ASuperExpr___n_args].val; /* _n_args on */ +if (unlikely(var18 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2051); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2344); +fatal_exit(1); } -var20 = var22; -RET_LABEL21:(void)0; +var16 = var18; +RET_LABEL17:(void)0; } } { -{ /* Inline parser_nodes#AExprs#n_exprs (var20) on */ -var25 = var20->attrs[COLOR_nit__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on */ -if (unlikely(var25 == NULL)) { +{ /* Inline parser_nodes#AExprs#n_exprs (var16) on */ +var21 = var16->attrs[COLOR_nit__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on */ +if (unlikely(var21 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2408); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2771); +fatal_exit(1); } -var23 = var25; -RET_LABEL24:(void)0; +var19 = var21; +RET_LABEL20:(void)0; } } { -var26 = nit___nit__AbstractCompilerVisitor___varargize(var_v, var17, var_recv, var23); +var22 = nit___nit__ANodes___standard__abstract_collection__Collection__is_empty(var19); } -var_args = var26; +if (var22){ +var23 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); { -{ /* Inline array#AbstractArrayRead#length (var_args) on */ -var29 = var_args->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var27 = var29; -RET_LABEL28:(void)0; +standard___standard__Array___with_capacity(var23, 1l); /* Direct call array#Array#with_capacity on */ } -} -var30 = 1; +var_ = var23; { -{ /* Inline kernel#Int#== (var27,var30) on */ -var33 = var27 == var30; -var31 = var33; -goto RET_LABEL32; -RET_LABEL32:(void)0; +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_recv); /* Direct call array#AbstractArray#push on */ } -} -if (var31){ -var34 = 0; -var_i = var34; +var_args = var_; +var_i = 0l; { { /* Inline typing#CallSite#msignature (var_callsite) on */ -var37 = var_callsite->attrs[COLOR_nit__typing__CallSite___msignature].val; /* _msignature on */ -if (unlikely(var37 == NULL)) { +var26 = var_callsite->attrs[COLOR_nit__typing__CallSite___msignature].val; /* _msignature on */ +if (unlikely(var26 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 494); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 631); +fatal_exit(1); } -var35 = var37; -RET_LABEL36:(void)0; +var24 = var26; +RET_LABEL25:(void)0; } } { -var38 = nit___nit__MSignature___arity(var35); +var27 = nit___nit__MSignature___arity(var24); } -var_ = var38; +var_28 = var27; for(;;) { { -{ /* Inline kernel#Int#< (var_i,var_) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var41 = 1; /* easy isa OTHER*/ -if (unlikely(!var41)) { +{ /* Inline kernel#Int#< (var_i,var_28) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var31 = 1; /* easy isa OTHER*/ +if (unlikely(!var31)) { var_class_name = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } -var42 = var_i < var_; -var39 = var42; -goto RET_LABEL40; -RET_LABEL40:(void)0; +var32 = var_i < var_28; +var29 = var32; +goto RET_LABEL30; +RET_LABEL30:(void)0; } } -if (var39){ +if (var29){ { { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on */ -var45 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ -var43 = var45; -RET_LABEL44:(void)0; +var35 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ +var33 = var35; +RET_LABEL34:(void)0; } } -if (var43 == NULL) { +if (var33 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2880); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3136); +fatal_exit(1); } else { -{ /* Inline abstract_compiler#StaticFrame#arguments (var43) on */ -if (unlikely(var43 == NULL)) { +{ /* Inline abstract_compiler#StaticFrame#arguments (var33) on */ +if (unlikely(var33 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1731); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1835); +fatal_exit(1); } -var48 = var43->attrs[COLOR_nit__abstract_compiler__StaticFrame___arguments].val; /* _arguments on */ -if (unlikely(var48 == NULL)) { +var38 = var33->attrs[COLOR_nit__abstract_compiler__StaticFrame___arguments].val; /* _arguments on */ +if (unlikely(var38 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1731); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1835); +fatal_exit(1); } -var46 = var48; -RET_LABEL47:(void)0; +var36 = var38; +RET_LABEL37:(void)0; } } -var49 = 1; { -{ /* Inline kernel#Int#+ (var_i,var49) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var52 = 1; /* easy isa OTHER*/ -if (unlikely(!var52)) { -var_class_name55 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_i,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var41 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var41)) { +var_class_name44 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name44); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var56 = var_i + var49; -var50 = var56; -goto RET_LABEL51; -RET_LABEL51:(void)0; +var45 = var_i + 1l; +var39 = var45; +goto RET_LABEL40; +RET_LABEL40:(void)0; } } { -var57 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var46, var50); +var46 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var36, var39); } { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_args, var57); /* Direct call array#Array#add on */ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_args, var46); /* Direct call array#Array#add on */ } -var58 = 1; { -var59 = standard___standard__Int___Discrete__successor(var_i, var58); +var47 = standard___standard__Int___Discrete__successor(var_i, 1l); } -var_i = var59; +var_i = var47; } else { goto BREAK_label; } } BREAK_label: (void)0; } else { +{ +{ /* Inline typing#CallSite#mpropdef (var_callsite) on */ +var50 = var_callsite->attrs[COLOR_nit__typing__CallSite___mpropdef].val; /* _mpropdef on */ +if (unlikely(var50 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 627); +fatal_exit(1); +} +var48 = var50; +RET_LABEL49:(void)0; +} +} +{ +{ /* Inline typing#CallSite#signaturemap (var_callsite) on */ +var53 = var_callsite->attrs[COLOR_nit__typing__CallSite___signaturemap].val; /* _signaturemap on */ +var51 = var53; +RET_LABEL52:(void)0; +} +} +{ +{ /* Inline parser_nodes#ASuperExpr#n_args (self) on */ +var56 = self->attrs[COLOR_nit__parser_nodes__ASuperExpr___n_args].val; /* _n_args on */ +if (unlikely(var56 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2344); +fatal_exit(1); +} +var54 = var56; +RET_LABEL55:(void)0; +} +} +{ +{ /* Inline parser_nodes#AExprs#n_exprs (var54) on */ +var59 = var54->attrs[COLOR_nit__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on */ +if (unlikely(var59 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2771); +fatal_exit(1); +} +var57 = var59; +RET_LABEL58:(void)0; +} +} +{ +var60 = nit___nit__AbstractCompilerVisitor___varargize(var_v, var48, var51, var_recv, var57); +} +var_args = var60; } { -var60 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_callsite, var_args) /* compile_callsite on */; +var61 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_callsite, var_args); /* compile_callsite on */ } -var_res = var60; +var_res = var61; var = var_res; goto RET_LABEL; } else { } { { /* Inline typing#ASuperExpr#mpropdef (self) on */ -var63 = self->attrs[COLOR_nit__typing__ASuperExpr___mpropdef].val; /* _mpropdef on */ -var61 = var63; -RET_LABEL62:(void)0; +var64 = self->attrs[COLOR_nit__typing__ASuperExpr___mpropdef].val; /* _mpropdef on */ +var62 = var64; +RET_LABEL63:(void)0; } } -if (unlikely(var61 == NULL)) { +if (unlikely(var62 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2888); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3147); +fatal_exit(1); } -var_mpropdef = var61; +var_mpropdef = var62; { { /* Inline parser_nodes#ASuperExpr#n_args (self) on */ -var66 = self->attrs[COLOR_nit__parser_nodes__ASuperExpr___n_args].val; /* _n_args on */ -if (unlikely(var66 == NULL)) { +var67 = self->attrs[COLOR_nit__parser_nodes__ASuperExpr___n_args].val; /* _n_args on */ +if (unlikely(var67 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2051); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2344); +fatal_exit(1); } -var64 = var66; -RET_LABEL65:(void)0; +var65 = var67; +RET_LABEL66:(void)0; } } { -{ /* Inline parser_nodes#AExprs#n_exprs (var64) on */ -var69 = var64->attrs[COLOR_nit__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on */ -if (unlikely(var69 == NULL)) { +{ /* Inline parser_nodes#AExprs#n_exprs (var65) on */ +var70 = var65->attrs[COLOR_nit__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on */ +if (unlikely(var70 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2408); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2771); +fatal_exit(1); } -var67 = var69; -RET_LABEL68:(void)0; +var68 = var70; +RET_LABEL69:(void)0; } } { -var70 = nit___nit__AbstractCompilerVisitor___varargize(var_v, var_mpropdef, var_recv, var67); +var71 = nit___nit__ANodes___standard__abstract_collection__Collection__is_empty(var68); } -var_args71 = var70; +if (var71){ { -{ /* Inline array#AbstractArrayRead#length (var_args71) on */ -var74 = var_args71->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on */ +var74 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ var72 = var74; RET_LABEL73:(void)0; } } -var75 = 1; -{ -{ /* Inline kernel#Int#== (var72,var75) on */ -var78 = var72 == var75; -var76 = var78; -goto RET_LABEL77; -RET_LABEL77:(void)0; +if (var72 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3151); +fatal_exit(1); +} else { +{ /* Inline abstract_compiler#StaticFrame#arguments (var72) on */ +if (unlikely(var72 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1835); +fatal_exit(1); +} +var77 = var72->attrs[COLOR_nit__abstract_compiler__StaticFrame___arguments].val; /* _arguments on */ +if (unlikely(var77 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1835); +fatal_exit(1); +} +var75 = var77; +RET_LABEL76:(void)0; } } -if (var76){ +var_args78 = var75; +} else { { -{ /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on */ -var81 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on */ +{ /* Inline typing#ASuperExpr#signaturemap (self) on */ +var81 = self->attrs[COLOR_nit__typing__ASuperExpr___signaturemap].val; /* _signaturemap on */ var79 = var81; RET_LABEL80:(void)0; } } -if (var79 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2891); -show_backtrace(1); -} else { -{ /* Inline abstract_compiler#StaticFrame#arguments (var79) on */ -if (unlikely(var79 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1731); -show_backtrace(1); -} -var84 = var79->attrs[COLOR_nit__abstract_compiler__StaticFrame___arguments].val; /* _arguments on */ +{ +{ /* Inline parser_nodes#ASuperExpr#n_args (self) on */ +var84 = self->attrs[COLOR_nit__parser_nodes__ASuperExpr___n_args].val; /* _n_args on */ if (unlikely(var84 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1731); -show_backtrace(1); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2344); +fatal_exit(1); } var82 = var84; RET_LABEL83:(void)0; } } -var_args71 = var82; -} else { -} { -{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_recv) on */ -var87 = var_recv->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +{ /* Inline parser_nodes#AExprs#n_exprs (var82) on */ +var87 = var82->attrs[COLOR_nit__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on */ if (unlikely(var87 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680); -show_backtrace(1); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2771); +fatal_exit(1); } var85 = var87; RET_LABEL86:(void)0; } } -/* isa MClassType */ -cltype89 = type_nit__MClassType.color; -idtype90 = type_nit__MClassType.id; -if(cltype89 >= var85->type->table_size) { -var88 = 0; +{ +var88 = nit___nit__AbstractCompilerVisitor___varargize(var_v, var_mpropdef, var79, var_recv, var85); +} +var_args78 = var88; +} +{ +{ /* Inline abstract_compiler#RuntimeVariable#mtype (var_recv) on */ +var91 = var_recv->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on */ +if (unlikely(var91 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1784); +fatal_exit(1); +} +var89 = var91; +RET_LABEL90:(void)0; +} +} +/* isa MClassType */ +cltype93 = type_nit__MClassType.color; +idtype94 = type_nit__MClassType.id; +if(cltype93 >= var89->type->table_size) { +var92 = 0; } else { -var88 = var85->type->type_table[cltype89] == idtype90; +var92 = var89->type->type_table[cltype93] == idtype94; } -if (unlikely(!var88)) { -var_class_name91 = var85 == NULL ? "null" : var85->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name91); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2895); -show_backtrace(1); +if (unlikely(!var92)) { +var_class_name95 = var89 == NULL ? "null" : var89->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name95); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3157); +fatal_exit(1); } { -var92 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__supercall(var_v, var_mpropdef, var85, var_args71); +var96 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__supercall(var_v, var_mpropdef, var89, var_args78); } -var = var92; +var = var96; goto RET_LABEL; RET_LABEL:; return var; @@ -4760,66 +5586,68 @@ val* var_v /* var v: AbstractCompilerVisitor */; val* var1 /* : nullable MClassType */; val* var3 /* : nullable MClassType */; val* var_mtype /* var mtype: nullable MClassType */; -val* var4 /* : null */; +short int var4 /* : Bool */; short int var5 /* : Bool */; -short int var6 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var7 /* : Bool */; short int var8 /* : Bool */; -short int var9 /* : Bool */; -val* var10 /* : MClass */; -val* var12 /* : MClass */; -val* var13 /* : String */; -val* var15 /* : String */; +val* var9 /* : MClass */; +val* var11 /* : MClass */; +val* var12 /* : String */; +val* var14 /* : String */; static val* varonce; -val* var16 /* : String */; -char* var17 /* : NativeString */; -long var18 /* : Int */; -val* var19 /* : FlatString */; -short int var20 /* : Bool */; +val* var15 /* : String */; +char* var16 /* : NativeString */; +val* var17 /* : FlatString */; +short int var18 /* : Bool */; +val* var19 /* : AExprs */; val* var21 /* : AExprs */; -val* var23 /* : AExprs */; +val* var22 /* : ANodes[AExpr] */; val* var24 /* : ANodes[AExpr] */; -val* var26 /* : ANodes[AExpr] */; -long var27 /* : Int */; -long var28 /* : Int */; -short int var29 /* : Bool */; -short int var31 /* : Bool */; -val* var32 /* : AExprs */; -val* var34 /* : AExprs */; -val* var35 /* : ANodes[AExpr] */; -val* var37 /* : ANodes[AExpr] */; -val* var38 /* : nullable Object */; -val* var39 /* : null */; -val* var40 /* : RuntimeVariable */; +long var25 /* : Int */; +short int var26 /* : Bool */; +short int var28 /* : Bool */; +val* var29 /* : AExprs */; +val* var31 /* : AExprs */; +val* var32 /* : ANodes[AExpr] */; +val* var34 /* : ANodes[AExpr] */; +val* var35 /* : nullable Object */; +val* var36 /* : RuntimeVariable */; val* var_l /* var l: RuntimeVariable */; -short int var41 /* : Bool */; +short int var37 /* : Bool */; int cltype; int idtype; -val* var42 /* : Array[MType] */; -val* var44 /* : Array[MType] */; -val* var45 /* : nullable Object */; +val* var38 /* : Array[MType] */; +val* var40 /* : Array[MType] */; +val* var41 /* : nullable Object */; val* var_elttype /* var elttype: MType */; -val* var46 /* : RuntimeVariable */; -val* var47 /* : RuntimeVariable */; +val* var42 /* : RuntimeVariable */; +val* var43 /* : RuntimeVariable */; val* var_recv /* var recv: RuntimeVariable */; -val* var48 /* : nullable CallSite */; -val* var50 /* : nullable CallSite */; -val* var_callsite /* var callsite: CallSite */; -val* var51 /* : MMethodDef */; -val* var53 /* : MMethodDef */; -val* var54 /* : AExprs */; -val* var56 /* : AExprs */; -val* var57 /* : ANodes[AExpr] */; -val* var59 /* : ANodes[AExpr] */; -val* var60 /* : Array[RuntimeVariable] */; +val* var44 /* : nullable CallSite */; +val* var46 /* : nullable CallSite */; +val* var_callsite /* var callsite: nullable CallSite */; +short int var47 /* : Bool */; +short int var48 /* : Bool */; +val* var_other50 /* var other: nullable Object */; +short int var51 /* : Bool */; +short int var53 /* : Bool */; +val* var54 /* : MMethodDef */; +val* var56 /* : MMethodDef */; +val* var57 /* : nullable SignatureMap */; +val* var59 /* : nullable SignatureMap */; +val* var60 /* : AExprs */; +val* var62 /* : AExprs */; +val* var63 /* : ANodes[AExpr] */; +val* var65 /* : ANodes[AExpr] */; +val* var66 /* : Array[RuntimeVariable] */; val* var_args /* var args: Array[RuntimeVariable] */; -val* var61 /* : nullable RuntimeVariable */; +val* var67 /* : nullable RuntimeVariable */; val* var_res2 /* var res2: nullable RuntimeVariable */; -val* var62 /* : null */; -short int var63 /* : Bool */; -short int var64 /* : Bool */; -short int var66 /* : Bool */; -short int var67 /* : Bool */; +short int var68 /* : Bool */; +short int var69 /* : Bool */; +short int var71 /* : Bool */; +short int var72 /* : Bool */; var_v = p0; { { /* Inline typing#ANewExpr#recvtype (self) on */ @@ -4829,257 +5657,281 @@ RET_LABEL2:(void)0; } } var_mtype = var1; -var4 = NULL; if (var_mtype == NULL) { -var5 = 0; /* is null */ +var4 = 0; /* is null */ } else { -var5 = 1; /* arg is null and recv is not */ +var4 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_mtype,var4) on */ -var_other = var4; +{ /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var8 = ((short int (*)(val* self, val* p0))(var_mtype->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mtype, var_other) /* == on */; +var7 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mtype, var_other); /* == on */ } -var9 = !var8; -var6 = var9; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var8 = !var7; +var5 = var8; +goto RET_LABEL6; +RET_LABEL6:(void)0; } -var5 = var6; +var4 = var5; } -if (unlikely(!var5)) { +if (unlikely(!var4)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2903); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3165); +fatal_exit(1); } { { /* Inline model#MClassType#mclass (var_mtype) on */ -var12 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var12 == NULL)) { +var11 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var11 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } -var10 = var12; -RET_LABEL11:(void)0; +var9 = var11; +RET_LABEL10:(void)0; } } { -{ /* Inline model#MClass#name (var10) on */ -var15 = var10->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ -if (unlikely(var15 == NULL)) { +{ /* Inline model#MClass#name (var9) on */ +var14 = var9->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ +if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 362); +fatal_exit(1); } -var13 = var15; -RET_LABEL14:(void)0; +var12 = var14; +RET_LABEL13:(void)0; } } -if (varonce) { -var16 = varonce; +if (likely(varonce!=NULL)) { +var15 = varonce; } else { -var17 = "NativeArray"; -var18 = 11; -var19 = standard___standard__NativeString___to_s_with_length(var17, var18); -var16 = var19; -varonce = var16; +var16 = "NativeArray"; +var17 = standard___standard__NativeString___to_s_with_length(var16, 11l); +var15 = var17; +varonce = var15; } { -var20 = ((short int (*)(val* self, val* p0))(var13->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var13, var16) /* == on */; +var18 = ((short int(*)(val* self, val* p0))(var12->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var12, var15); /* == on */ } -if (var20){ +if (var18){ { { /* Inline parser_nodes#ANewExpr#n_args (self) on */ -var23 = self->attrs[COLOR_nit__parser_nodes__ANewExpr___n_args].val; /* _n_args on */ -if (unlikely(var23 == NULL)) { +var21 = self->attrs[COLOR_nit__parser_nodes__ANewExpr___n_args].val; /* _n_args on */ +if (unlikely(var21 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1968); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2261); +fatal_exit(1); } -var21 = var23; -RET_LABEL22:(void)0; +var19 = var21; +RET_LABEL20:(void)0; } } { -{ /* Inline parser_nodes#AExprs#n_exprs (var21) on */ -var26 = var21->attrs[COLOR_nit__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on */ -if (unlikely(var26 == NULL)) { +{ /* Inline parser_nodes#AExprs#n_exprs (var19) on */ +var24 = var19->attrs[COLOR_nit__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on */ +if (unlikely(var24 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2408); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2771); +fatal_exit(1); } -var24 = var26; -RET_LABEL25:(void)0; +var22 = var24; +RET_LABEL23:(void)0; } } { -var27 = nit___nit__ANodes___standard__abstract_collection__Collection__length(var24); +var25 = nit___nit__ANodes___standard__abstract_collection__Collection__length(var22); } -var28 = 1; { -{ /* Inline kernel#Int#== (var27,var28) on */ -var31 = var27 == var28; -var29 = var31; -goto RET_LABEL30; -RET_LABEL30:(void)0; +{ /* Inline kernel#Int#== (var25,1l) on */ +var28 = var25 == 1l; +var26 = var28; +goto RET_LABEL27; +RET_LABEL27:(void)0; } } -if (unlikely(!var29)) { +if (unlikely(!var26)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2906); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3168); +fatal_exit(1); } { { /* Inline parser_nodes#ANewExpr#n_args (self) on */ -var34 = self->attrs[COLOR_nit__parser_nodes__ANewExpr___n_args].val; /* _n_args on */ -if (unlikely(var34 == NULL)) { +var31 = self->attrs[COLOR_nit__parser_nodes__ANewExpr___n_args].val; /* _n_args on */ +if (unlikely(var31 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1968); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2261); +fatal_exit(1); } -var32 = var34; -RET_LABEL33:(void)0; +var29 = var31; +RET_LABEL30:(void)0; } } { -{ /* Inline parser_nodes#AExprs#n_exprs (var32) on */ -var37 = var32->attrs[COLOR_nit__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on */ -if (unlikely(var37 == NULL)) { +{ /* Inline parser_nodes#AExprs#n_exprs (var29) on */ +var34 = var29->attrs[COLOR_nit__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on */ +if (unlikely(var34 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2408); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2771); +fatal_exit(1); } -var35 = var37; -RET_LABEL36:(void)0; +var32 = var34; +RET_LABEL33:(void)0; } } { -var38 = standard___standard__SequenceRead___Collection__first(var35); +var35 = standard___standard__SequenceRead___Collection__first(var32); } -var39 = NULL; { -var40 = nit___nit__AbstractCompilerVisitor___expr(var_v, var38, var39); +var36 = nit___nit__AbstractCompilerVisitor___expr(var_v, var35, ((val*)NULL)); } -var_l = var40; +var_l = var36; /* isa MGenericType */ cltype = type_nit__MGenericType.color; idtype = type_nit__MGenericType.id; if(cltype >= var_mtype->type->table_size) { -var41 = 0; +var37 = 0; } else { -var41 = var_mtype->type->type_table[cltype] == idtype; +var37 = var_mtype->type->type_table[cltype] == idtype; } -if (unlikely(!var41)) { +if (unlikely(!var37)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2908); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3170); +fatal_exit(1); } { { /* Inline model#MGenericType#arguments (var_mtype) on */ -var44 = var_mtype->attrs[COLOR_nit__model__MGenericType___arguments].val; /* _arguments on */ -if (unlikely(var44 == NULL)) { +var40 = var_mtype->attrs[COLOR_nit__model__MGenericType___arguments].val; /* _arguments on */ +if (unlikely(var40 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1164); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1244); +fatal_exit(1); } -var42 = var44; -RET_LABEL43:(void)0; +var38 = var40; +RET_LABEL39:(void)0; } } { -var45 = standard___standard__SequenceRead___Collection__first(var42); +var41 = standard___standard__SequenceRead___Collection__first(var38); } -var_elttype = var45; +var_elttype = var41; { -var46 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__native_array_instance]))(var_v, var_elttype, var_l) /* native_array_instance on */; +var42 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__native_array_instance]))(var_v, var_elttype, var_l); /* native_array_instance on */ } -var = var46; +var = var42; goto RET_LABEL; } else { } { -var47 = nit___nit__AbstractCompilerVisitor___init_instance_or_extern(var_v, var_mtype); +var43 = nit___nit__AbstractCompilerVisitor___init_instance_or_extern(var_v, var_mtype); } -var_recv = var47; +var_recv = var43; { { /* Inline typing#ANewExpr#callsite (self) on */ -var50 = self->attrs[COLOR_nit__typing__ANewExpr___callsite].val; /* _callsite on */ -var48 = var50; -RET_LABEL49:(void)0; +var46 = self->attrs[COLOR_nit__typing__ANewExpr___callsite].val; /* _callsite on */ +var44 = var46; +RET_LABEL45:(void)0; } } -if (unlikely(var48 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2915); -show_backtrace(1); +var_callsite = var44; +if (var_callsite == NULL) { +var47 = 1; /* is null */ +} else { +var47 = 0; /* arg is null but recv is not */ } -var_callsite = var48; +if (0) { +{ /* Inline kernel#Object#== (var_callsite,((val*)NULL)) on */ +var_other50 = ((val*)NULL); { -{ /* Inline typing#CallSite#mpropdef (var_callsite) on */ -var53 = var_callsite->attrs[COLOR_nit__typing__CallSite___mpropdef].val; /* _mpropdef on */ -if (unlikely(var53 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 490); -show_backtrace(1); -} +{ /* Inline kernel#Object#is_same_instance (var_callsite,var_other50) on */ +var53 = var_callsite == var_other50; var51 = var53; +goto RET_LABEL52; RET_LABEL52:(void)0; } } +var48 = var51; +goto RET_LABEL49; +RET_LABEL49:(void)0; +} +var47 = var48; +} +if (var47){ +var = var_recv; +goto RET_LABEL; +} else { +} { -{ /* Inline parser_nodes#ANewExpr#n_args (self) on */ -var56 = self->attrs[COLOR_nit__parser_nodes__ANewExpr___n_args].val; /* _n_args on */ +{ /* Inline typing#CallSite#mpropdef (var_callsite) on */ +var56 = var_callsite->attrs[COLOR_nit__typing__CallSite___mpropdef].val; /* _mpropdef on */ if (unlikely(var56 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1968); -show_backtrace(1); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 627); +fatal_exit(1); } var54 = var56; RET_LABEL55:(void)0; } } { -{ /* Inline parser_nodes#AExprs#n_exprs (var54) on */ -var59 = var54->attrs[COLOR_nit__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on */ -if (unlikely(var59 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2408); -show_backtrace(1); -} +{ /* Inline typing#CallSite#signaturemap (var_callsite) on */ +var59 = var_callsite->attrs[COLOR_nit__typing__CallSite___signaturemap].val; /* _signaturemap on */ var57 = var59; RET_LABEL58:(void)0; } } { -var60 = nit___nit__AbstractCompilerVisitor___varargize(var_v, var51, var_recv, var57); +{ /* Inline parser_nodes#ANewExpr#n_args (self) on */ +var62 = self->attrs[COLOR_nit__parser_nodes__ANewExpr___n_args].val; /* _n_args on */ +if (unlikely(var62 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2261); +fatal_exit(1); +} +var60 = var62; +RET_LABEL61:(void)0; +} } -var_args = var60; { -var61 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_callsite, var_args) /* compile_callsite on */; +{ /* Inline parser_nodes#AExprs#n_exprs (var60) on */ +var65 = var60->attrs[COLOR_nit__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on */ +if (unlikely(var65 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2771); +fatal_exit(1); +} +var63 = var65; +RET_LABEL64:(void)0; +} +} +{ +var66 = nit___nit__AbstractCompilerVisitor___varargize(var_v, var54, var57, var_recv, var63); +} +var_args = var66; +{ +var67 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_callsite, var_args); /* compile_callsite on */ } -var_res2 = var61; -var62 = NULL; +var_res2 = var67; if (var_res2 == NULL) { -var63 = 0; /* is null */ +var68 = 0; /* is null */ } else { -var63 = 1; /* arg is null and recv is not */ +var68 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_res2,var62) on */ -var_other = var62; +{ /* Inline kernel#Object#!= (var_res2,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var66 = ((short int (*)(val* self, val* p0))(var_res2->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res2, var_other) /* == on */; +var71 = ((short int(*)(val* self, val* p0))(var_res2->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res2, var_other); /* == on */ } -var67 = !var66; -var64 = var67; -goto RET_LABEL65; -RET_LABEL65:(void)0; +var72 = !var71; +var69 = var72; +goto RET_LABEL70; +RET_LABEL70:(void)0; } -var63 = var64; +var68 = var69; } -if (var63){ +if (var68){ var = var_res2; goto RET_LABEL; } else { @@ -5095,48 +5947,46 @@ val* var /* : nullable RuntimeVariable */; val* var_v /* var v: AbstractCompilerVisitor */; val* var1 /* : AExpr */; val* var3 /* : AExpr */; -val* var4 /* : null */; -val* var5 /* : RuntimeVariable */; +val* var4 /* : RuntimeVariable */; val* var_recv /* var recv: RuntimeVariable */; -val* var6 /* : nullable MAttribute */; -val* var8 /* : nullable MAttribute */; +val* var5 /* : nullable MAttribute */; +val* var7 /* : nullable MAttribute */; val* var_mproperty /* var mproperty: MAttribute */; -val* var9 /* : RuntimeVariable */; +val* var8 /* : RuntimeVariable */; var_v = p0; { { /* Inline parser_nodes#AAttrFormExpr#n_expr (self) on */ var3 = self->attrs[COLOR_nit__parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1976); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2269); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; } } -var4 = NULL; { -var5 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, var4); +var4 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL)); } -var_recv = var5; +var_recv = var4; { { /* Inline typing#AAttrFormExpr#mproperty (self) on */ -var8 = self->attrs[COLOR_nit__typing__AAttrFormExpr___mproperty].val; /* _mproperty on */ -var6 = var8; -RET_LABEL7:(void)0; +var7 = self->attrs[COLOR_nit__typing__AAttrFormExpr___mproperty].val; /* _mproperty on */ +var5 = var7; +RET_LABEL6:(void)0; } } -if (unlikely(var6 == NULL)) { +if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2930); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3194); +fatal_exit(1); } -var_mproperty = var6; +var_mproperty = var5; { -var9 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var_mproperty, var_recv); +var8 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var_mproperty, var_recv); } -var = var9; +var = var8; goto RET_LABEL; RET_LABEL:; return var; @@ -5147,16 +5997,14 @@ val* var /* : nullable RuntimeVariable */; val* var_v /* var v: AbstractCompilerVisitor */; val* var1 /* : AExpr */; val* var3 /* : AExpr */; -val* var4 /* : null */; -val* var5 /* : RuntimeVariable */; +val* var4 /* : RuntimeVariable */; val* var_recv /* var recv: RuntimeVariable */; -val* var6 /* : AExpr */; -val* var8 /* : AExpr */; -val* var9 /* : null */; -val* var10 /* : RuntimeVariable */; +val* var5 /* : AExpr */; +val* var7 /* : AExpr */; +val* var8 /* : RuntimeVariable */; val* var_i /* var i: RuntimeVariable */; +val* var9 /* : nullable MAttribute */; val* var11 /* : nullable MAttribute */; -val* var13 /* : nullable MAttribute */; val* var_mproperty /* var mproperty: MAttribute */; var_v = p0; { @@ -5164,48 +6012,46 @@ var_v = p0; var3 = self->attrs[COLOR_nit__parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1976); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2269); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; } } -var4 = NULL; { -var5 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, var4); +var4 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL)); } -var_recv = var5; +var_recv = var4; { { /* Inline parser_nodes#AAssignFormExpr#n_value (self) on */ -var8 = self->attrs[COLOR_nit__parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on */ -if (unlikely(var8 == NULL)) { +var7 = self->attrs[COLOR_nit__parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on */ +if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1772); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1995); +fatal_exit(1); } -var6 = var8; -RET_LABEL7:(void)0; +var5 = var7; +RET_LABEL6:(void)0; } } -var9 = NULL; { -var10 = nit___nit__AbstractCompilerVisitor___expr(var_v, var6, var9); +var8 = nit___nit__AbstractCompilerVisitor___expr(var_v, var5, ((val*)NULL)); } -var_i = var10; +var_i = var8; { { /* Inline typing#AAttrFormExpr#mproperty (self) on */ -var13 = self->attrs[COLOR_nit__typing__AAttrFormExpr___mproperty].val; /* _mproperty on */ -var11 = var13; -RET_LABEL12:(void)0; +var11 = self->attrs[COLOR_nit__typing__AAttrFormExpr___mproperty].val; /* _mproperty on */ +var9 = var11; +RET_LABEL10:(void)0; } } -if (unlikely(var11 == NULL)) { +if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2940); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3204); +fatal_exit(1); } -var_mproperty = var11; +var_mproperty = var9; { nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var_mproperty, var_recv, var_i); /* Direct call separate_compiler#SeparateCompilerVisitor#write_attribute on */ } @@ -5219,102 +6065,95 @@ void nit__abstract_compiler___AAttrReassignExpr___AExpr__stmt(val* self, val* p0 val* var_v /* var v: AbstractCompilerVisitor */; val* var /* : AExpr */; val* var2 /* : AExpr */; -val* var3 /* : null */; -val* var4 /* : RuntimeVariable */; +val* var3 /* : RuntimeVariable */; val* var_recv /* var recv: RuntimeVariable */; -val* var5 /* : AExpr */; -val* var7 /* : AExpr */; -val* var8 /* : null */; -val* var9 /* : RuntimeVariable */; +val* var4 /* : AExpr */; +val* var6 /* : AExpr */; +val* var7 /* : RuntimeVariable */; val* var_value /* var value: RuntimeVariable */; +val* var8 /* : nullable MAttribute */; val* var10 /* : nullable MAttribute */; -val* var12 /* : nullable MAttribute */; val* var_mproperty /* var mproperty: MAttribute */; -val* var13 /* : RuntimeVariable */; +val* var11 /* : RuntimeVariable */; val* var_attr /* var attr: RuntimeVariable */; +val* var12 /* : nullable CallSite */; val* var14 /* : nullable CallSite */; -val* var16 /* : nullable CallSite */; -val* var17 /* : Array[RuntimeVariable] */; -long var18 /* : Int */; +val* var15 /* : Array[RuntimeVariable] */; val* var_ /* var : Array[RuntimeVariable] */; -val* var19 /* : nullable RuntimeVariable */; +val* var16 /* : nullable RuntimeVariable */; val* var_res /* var res: nullable RuntimeVariable */; -val* var20 /* : null */; -short int var21 /* : Bool */; -short int var22 /* : Bool */; +short int var17 /* : Bool */; +short int var18 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var24 /* : Bool */; -short int var25 /* : Bool */; +short int var20 /* : Bool */; +short int var21 /* : Bool */; var_v = p0; { { /* Inline parser_nodes#AAttrFormExpr#n_expr (self) on */ var2 = self->attrs[COLOR_nit__parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1976); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2269); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; } } -var3 = NULL; { -var4 = nit___nit__AbstractCompilerVisitor___expr(var_v, var, var3); +var3 = nit___nit__AbstractCompilerVisitor___expr(var_v, var, ((val*)NULL)); } -var_recv = var4; +var_recv = var3; { { /* Inline parser_nodes#AReassignFormExpr#n_value (self) on */ -var7 = self->attrs[COLOR_nit__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on */ -if (unlikely(var7 == NULL)) { +var6 = self->attrs[COLOR_nit__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on */ +if (unlikely(var6 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1783); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2006); +fatal_exit(1); } -var5 = var7; -RET_LABEL6:(void)0; +var4 = var6; +RET_LABEL5:(void)0; } } -var8 = NULL; { -var9 = nit___nit__AbstractCompilerVisitor___expr(var_v, var5, var8); +var7 = nit___nit__AbstractCompilerVisitor___expr(var_v, var4, ((val*)NULL)); } -var_value = var9; +var_value = var7; { { /* Inline typing#AAttrFormExpr#mproperty (self) on */ -var12 = self->attrs[COLOR_nit__typing__AAttrFormExpr___mproperty].val; /* _mproperty on */ -var10 = var12; -RET_LABEL11:(void)0; +var10 = self->attrs[COLOR_nit__typing__AAttrFormExpr___mproperty].val; /* _mproperty on */ +var8 = var10; +RET_LABEL9:(void)0; } } -if (unlikely(var10 == NULL)) { +if (unlikely(var8 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2951); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3215); +fatal_exit(1); } -var_mproperty = var10; +var_mproperty = var8; { -var13 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var_mproperty, var_recv); +var11 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var_mproperty, var_recv); } -var_attr = var13; +var_attr = var11; { { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on */ -var16 = self->attrs[COLOR_nit__typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on */ -var14 = var16; -RET_LABEL15:(void)0; +var14 = self->attrs[COLOR_nit__typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on */ +var12 = var14; +RET_LABEL13:(void)0; } } -if (unlikely(var14 == NULL)) { +if (unlikely(var12 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2953); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3217); +fatal_exit(1); } -var17 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); -var18 = 2; +var15 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable); { -standard___standard__Array___with_capacity(var17, var18); /* Direct call array#Array#with_capacity on */ +standard___standard__Array___with_capacity(var15, 2l); /* Direct call array#Array#with_capacity on */ } -var_ = var17; +var_ = var15; { standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_attr); /* Direct call array#AbstractArray#push on */ } @@ -5322,32 +6161,31 @@ standard___standard__AbstractArray___standard__abstract_collection__Sequence__pu standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_value); /* Direct call array#AbstractArray#push on */ } { -var19 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var14, var_) /* compile_callsite on */; +var16 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var12, var_); /* compile_callsite on */ } -var_res = var19; -var20 = NULL; +var_res = var16; if (var_res == NULL) { -var21 = 0; /* is null */ +var17 = 0; /* is null */ } else { -var21 = 1; /* arg is null and recv is not */ +var17 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_res,var20) on */ -var_other = var20; +{ /* Inline kernel#Object#!= (var_res,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var24 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other) /* == on */; +var20 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other); /* == on */ } -var25 = !var24; -var22 = var25; -goto RET_LABEL23; -RET_LABEL23:(void)0; +var21 = !var20; +var18 = var21; +goto RET_LABEL19; +RET_LABEL19:(void)0; } -var21 = var22; +var17 = var18; } -if (unlikely(!var21)) { +if (unlikely(!var17)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2954); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3218); +fatal_exit(1); } { nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var_mproperty, var_recv, var_res); /* Direct call separate_compiler#SeparateCompilerVisitor#write_attribute on */ @@ -5360,48 +6198,102 @@ val* var /* : nullable RuntimeVariable */; val* var_v /* var v: AbstractCompilerVisitor */; val* var1 /* : AExpr */; val* var3 /* : AExpr */; -val* var4 /* : null */; -val* var5 /* : RuntimeVariable */; +val* var4 /* : RuntimeVariable */; val* var_recv /* var recv: RuntimeVariable */; -val* var6 /* : nullable MAttribute */; -val* var8 /* : nullable MAttribute */; +val* var5 /* : nullable MAttribute */; +val* var7 /* : nullable MAttribute */; val* var_mproperty /* var mproperty: MAttribute */; -val* var9 /* : RuntimeVariable */; +val* var8 /* : RuntimeVariable */; var_v = p0; { { /* Inline parser_nodes#AAttrFormExpr#n_expr (self) on */ var3 = self->attrs[COLOR_nit__parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1976); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2269); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; } } -var4 = NULL; { -var5 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, var4); +var4 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL)); } -var_recv = var5; +var_recv = var4; { { /* Inline typing#AAttrFormExpr#mproperty (self) on */ -var8 = self->attrs[COLOR_nit__typing__AAttrFormExpr___mproperty].val; /* _mproperty on */ -var6 = var8; -RET_LABEL7:(void)0; +var7 = self->attrs[COLOR_nit__typing__AAttrFormExpr___mproperty].val; /* _mproperty on */ +var5 = var7; +RET_LABEL6:(void)0; } } -if (unlikely(var6 == NULL)) { +if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 2963); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3227); +fatal_exit(1); } -var_mproperty = var6; +var_mproperty = var5; { -var9 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__isset_attribute(var_v, var_mproperty, var_recv); +var8 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__isset_attribute(var_v, var_mproperty, var_recv); } -var = var9; +var = var8; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method abstract_compiler#AVarargExpr#expr for (self: AVarargExpr, AbstractCompilerVisitor): nullable RuntimeVariable */ +val* nit__abstract_compiler___AVarargExpr___AExpr__expr(val* self, val* p0) { +val* var /* : nullable RuntimeVariable */; +val* var_v /* var v: AbstractCompilerVisitor */; +val* var1 /* : AExpr */; +val* var3 /* : AExpr */; +val* var4 /* : RuntimeVariable */; +var_v = p0; +{ +{ /* Inline parser_nodes#AVarargExpr#n_expr (self) on */ +var3 = self->attrs[COLOR_nit__parser_nodes__AVarargExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2692); +fatal_exit(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} +} +{ +var4 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL)); +} +var = var4; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method abstract_compiler#ANamedargExpr#expr for (self: ANamedargExpr, AbstractCompilerVisitor): nullable RuntimeVariable */ +val* nit__abstract_compiler___ANamedargExpr___AExpr__expr(val* self, val* p0) { +val* var /* : nullable RuntimeVariable */; +val* var_v /* var v: AbstractCompilerVisitor */; +val* var1 /* : AExpr */; +val* var3 /* : AExpr */; +val* var4 /* : RuntimeVariable */; +var_v = p0; +{ +{ /* Inline parser_nodes#ANamedargExpr#n_expr (self) on */ +var3 = self->attrs[COLOR_nit__parser_nodes__ANamedargExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2709); +fatal_exit(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} +} +{ +var4 = nit___nit__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL)); +} +var = var4; goto RET_LABEL; RET_LABEL:; return var; @@ -5435,48 +6327,48 @@ short int var14 /* : Bool */; val* var15 /* : nullable Object */; val* var_parent /* var parent: MClass */; val* var16 /* : Set[MProperty] */; -val* var18 /* : Array[MClassDef] */; -val* var20 /* : Array[MClassDef] */; -val* var_21 /* var : Array[MClassDef] */; -val* var22 /* : ArrayIterator[nullable Object] */; -val* var_23 /* var : ArrayIterator[MClassDef] */; -short int var24 /* : Bool */; -val* var25 /* : nullable Object */; +val* var17 /* : Array[MClassDef] */; +val* var19 /* : Array[MClassDef] */; +val* var_20 /* var : Array[MClassDef] */; +val* var21 /* : ArrayIterator[nullable Object] */; +val* var_22 /* var : ArrayIterator[MClassDef] */; +short int var23 /* : Bool */; +val* var24 /* : nullable Object */; val* var_mclassdef /* var mclassdef: MClassDef */; -val* var26 /* : POSetElement[MModule] */; -val* var28 /* : POSetElement[MModule] */; -val* var29 /* : MModule */; -val* var31 /* : MModule */; +val* var25 /* : POSetElement[MModule] */; +val* var27 /* : POSetElement[MModule] */; +val* var28 /* : MModule */; +val* var30 /* : MModule */; +short int var31 /* : Bool */; short int var32 /* : Bool */; -short int var33 /* : Bool */; -val* var35 /* : Array[MProperty] */; -val* var37 /* : Array[MProperty] */; -val* var_38 /* var : Array[MProperty] */; -val* var39 /* : ArrayIterator[nullable Object] */; -val* var_40 /* var : ArrayIterator[MProperty] */; -short int var41 /* : Bool */; -val* var42 /* : nullable Object */; +val* var34 /* : Array[MProperty] */; +val* var36 /* : Array[MProperty] */; +val* var_37 /* var : Array[MProperty] */; +val* var38 /* : ArrayIterator[nullable Object] */; +val* var_39 /* var : ArrayIterator[MProperty] */; +short int var40 /* : Bool */; +val* var41 /* : nullable Object */; val* var_mprop /* var mprop: MProperty */; +val* var44 /* : Map[MClass, Set[MProperty]] */; +val* var46 /* : Map[MClass, Set[MProperty]] */; val* var47 /* : Map[MClass, Set[MProperty]] */; val* var49 /* : Map[MClass, Set[MProperty]] */; -val* var50 /* : Map[MClass, Set[MProperty]] */; -val* var52 /* : Map[MClass, Set[MProperty]] */; -val* var53 /* : nullable Object */; +val* var50 /* : nullable Object */; var_mclass = p0; { { /* Inline abstract_compiler#MModule#properties_cache (self) on */ var3 = self->attrs[COLOR_nit__abstract_compiler__MModule___properties_cache].val; /* _properties_cache on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _properties_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3008); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3286); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; } } { -var4 = standard___standard__MapRead___has_key(var1, var_mclass); +var4 = ((short int(*)(val* self, val* p0))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_standard__abstract_collection__MapRead__has_key]))(var1, var_mclass); /* has_key on */ } var5 = !var4; if (var5){ @@ -5537,157 +6429,151 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_13) on */ -RET_LABEL17:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_13); /* Direct call array#ArrayIterator#finish on */ } { { /* Inline model#MClass#mclassdefs (var_mclass) on */ -var20 = var_mclass->attrs[COLOR_nit__model__MClass___mclassdefs].val; /* _mclassdefs on */ -if (unlikely(var20 == NULL)) { +var19 = var_mclass->attrs[COLOR_nit__model__MClass___mclassdefs].val; /* _mclassdefs on */ +if (unlikely(var19 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 417); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 454); +fatal_exit(1); } -var18 = var20; -RET_LABEL19:(void)0; +var17 = var19; +RET_LABEL18:(void)0; } } -var_21 = var18; +var_20 = var17; { -var22 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_21); +var21 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_20); } -var_23 = var22; +var_22 = var21; for(;;) { { -var24 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_23); +var23 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_22); } -if (var24){ +if (var23){ { -var25 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_23); +var24 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_22); } -var_mclassdef = var25; +var_mclassdef = var24; { { /* Inline mmodule#MModule#in_importation (self) on */ -var28 = self->attrs[COLOR_nit__mmodule__MModule___in_importation].val; /* _in_importation on */ -if (unlikely(var28 == NULL)) { +var27 = self->attrs[COLOR_nit__mmodule__MModule___in_importation].val; /* _in_importation on */ +if (unlikely(var27 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 96); -show_backtrace(1); +fatal_exit(1); } -var26 = var28; -RET_LABEL27:(void)0; +var25 = var27; +RET_LABEL26:(void)0; } } { { /* Inline model#MClassDef#mmodule (var_mclassdef) on */ -var31 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var31 == NULL)) { +var30 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var30 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } -var29 = var31; -RET_LABEL30:(void)0; +var28 = var30; +RET_LABEL29:(void)0; } } { -var32 = poset___poset__POSetElement____60d_61d(var26, var29); +var31 = poset___poset__POSetElement____60d_61d(var25, var28); } -var33 = !var32; -if (var33){ -goto BREAK_label34; +var32 = !var31; +if (var32){ +goto BREAK_label33; } else { } { { /* Inline model#MClassDef#intro_mproperties (var_mclassdef) on */ -var37 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___intro_mproperties].val; /* _intro_mproperties on */ -if (unlikely(var37 == NULL)) { +var36 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___intro_mproperties].val; /* _intro_mproperties on */ +if (unlikely(var36 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mproperties"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 620); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 681); +fatal_exit(1); } -var35 = var37; -RET_LABEL36:(void)0; +var34 = var36; +RET_LABEL35:(void)0; } } -var_38 = var35; +var_37 = var34; { -var39 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_38); +var38 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_37); } -var_40 = var39; +var_39 = var38; for(;;) { { -var41 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_40); +var40 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_39); } -if (var41){ +if (var40){ { -var42 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_40); +var41 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_39); } -var_mprop = var42; +var_mprop = var41; { standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var_properties, var_mprop); /* Direct call hash_collection#HashSet#add on */ } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_40); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_39); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label43; +goto BREAK_label42; } } -BREAK_label43: (void)0; +BREAK_label42: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_40) on */ -RET_LABEL44:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_39); /* Direct call array#ArrayIterator#finish on */ } -BREAK_label34: (void)0; +BREAK_label33: (void)0; { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_23); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_22); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label45; +goto BREAK_label43; } } -BREAK_label45: (void)0; +BREAK_label43: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_23) on */ -RET_LABEL46:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_22); /* Direct call array#ArrayIterator#finish on */ } { { /* Inline abstract_compiler#MModule#properties_cache (self) on */ -var49 = self->attrs[COLOR_nit__abstract_compiler__MModule___properties_cache].val; /* _properties_cache on */ -if (unlikely(var49 == NULL)) { +var46 = self->attrs[COLOR_nit__abstract_compiler__MModule___properties_cache].val; /* _properties_cache on */ +if (unlikely(var46 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _properties_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3008); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3286); +fatal_exit(1); } -var47 = var49; -RET_LABEL48:(void)0; +var44 = var46; +RET_LABEL45:(void)0; } } { -((void (*)(val* self, val* p0, val* p1))(var47->class->vft[COLOR_standard__abstract_collection__Map___91d_93d_61d]))(var47, var_mclass, var_properties) /* []= on */; +((void(*)(val* self, val* p0, val* p1))((((long)var44&3)?class_info[((long)var44&3)]:var44->class)->vft[COLOR_standard__abstract_collection__Map___91d_93d_61d]))(var44, var_mclass, var_properties); /* []= on */ } } else { } { { /* Inline abstract_compiler#MModule#properties_cache (self) on */ -var52 = self->attrs[COLOR_nit__abstract_compiler__MModule___properties_cache].val; /* _properties_cache on */ -if (unlikely(var52 == NULL)) { +var49 = self->attrs[COLOR_nit__abstract_compiler__MModule___properties_cache].val; /* _properties_cache on */ +if (unlikely(var49 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _properties_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3008); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3286); +fatal_exit(1); } -var50 = var52; -RET_LABEL51:(void)0; +var47 = var49; +RET_LABEL48:(void)0; } } { -var53 = ((val* (*)(val* self, val* p0))(var50->class->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var50, var_mclass) /* [] on */; +var50 = ((val*(*)(val* self, val* p0))((((long)var47&3)?class_info[((long)var47&3)]:var47->class)->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var47, var_mclass); /* [] on */ } -var = var53; +var = var50; goto RET_LABEL; RET_LABEL:; return var; @@ -5699,26 +6585,10 @@ val* var1 /* : Map[MClass, Set[MProperty]] */; var1 = self->attrs[COLOR_nit__abstract_compiler__MModule___properties_cache].val; /* _properties_cache on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _properties_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3008); -show_backtrace(1); -} -var = var1; -RET_LABEL:; -return var; -} -/* method abstract_compiler#MModule#finalize_ffi for (self: MModule, AbstractCompiler) */ -void nit__abstract_compiler___MModule___finalize_ffi(val* self, val* p0) { -val* var_c /* var c: AbstractCompiler */; -var_c = p0; -RET_LABEL:; +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 3286); +fatal_exit(1); } -/* method abstract_compiler#MModule#collect_linker_libs for (self: MModule): nullable Array[String] */ -val* nit__abstract_compiler___MModule___collect_linker_libs(val* self) { -val* var /* : nullable Array[String] */; -val* var1 /* : null */; -var1 = NULL; var = var1; -goto RET_LABEL; RET_LABEL:; return var; } @@ -5729,312 +6599,296 @@ val* var_toolcontext /* var toolcontext: ToolContext */; static val* varonce; val* var1 /* : String */; char* var2 /* : NativeString */; -long var3 /* : Int */; -val* var4 /* : FlatString */; -val* var6 /* : Sequence[String] */; -val* var7 /* : Model */; +val* var3 /* : FlatString */; +val* var5 /* : Sequence[String] */; +val* var6 /* : Model */; val* var_model /* var model: Model */; -val* var9 /* : ModelBuilder */; +val* var8 /* : ModelBuilder */; val* var_modelbuilder /* var modelbuilder: ModelBuilder */; -val* var10 /* : OptionContext */; -val* var12 /* : OptionContext */; -val* var13 /* : Array[String] */; -val* var15 /* : Array[String] */; +val* var9 /* : OptionContext */; +val* var11 /* : OptionContext */; +val* var12 /* : Array[String] */; +val* var14 /* : Array[String] */; val* var_arguments /* var arguments: Array[String] */; -short int var16 /* : Bool */; -long var17 /* : Int */; -long var19 /* : Int */; -long var20 /* : Int */; +short int var15 /* : Bool */; +long var16 /* : Int */; +long var18 /* : Int */; +short int var19 /* : Bool */; short int var21 /* : Bool */; -short int var23 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var24 /* : Bool */; +short int var22 /* : Bool */; short int var_ /* var : Bool */; +val* var23 /* : OptionString */; val* var25 /* : OptionString */; -val* var27 /* : OptionString */; +val* var26 /* : nullable Object */; val* var28 /* : nullable Object */; -val* var30 /* : nullable Object */; -val* var31 /* : null */; +short int var29 /* : Bool */; +short int var30 /* : Bool */; +val* var_other /* var other: nullable Object */; short int var32 /* : Bool */; short int var33 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var35 /* : Bool */; -short int var36 /* : Bool */; -static val* varonce37; -val* var38 /* : String */; -char* var39 /* : NativeString */; -long var40 /* : Int */; -val* var41 /* : FlatString */; -long var42 /* : Int */; -val* var44 /* : Array[MModule] */; +static val* varonce34; +val* var35 /* : String */; +char* var36 /* : NativeString */; +val* var37 /* : FlatString */; +val* var39 /* : Array[MModule] */; val* var_mmodules /* var mmodules: Array[MModule] */; -short int var45 /* : Bool */; -val* var_46 /* var : Array[MModule] */; -val* var47 /* : ArrayIterator[nullable Object] */; -val* var_48 /* var : ArrayIterator[MModule] */; -short int var49 /* : Bool */; -val* var50 /* : nullable Object */; +short int var40 /* : Bool */; +val* var_41 /* var : Array[MModule] */; +val* var42 /* : ArrayIterator[nullable Object] */; +val* var_43 /* var : ArrayIterator[MModule] */; +short int var44 /* : Bool */; +val* var45 /* : nullable Object */; val* var_mmodule /* var mmodule: MModule */; -static val* varonce51; -val* var52 /* : String */; -char* var53 /* : NativeString */; -long var54 /* : Int */; +val* var47 /* : NativeArray[String] */; +static val* varonce46; +static val* varonce48; +val* var49 /* : String */; +char* var50 /* : NativeString */; +val* var51 /* : FlatString */; +static val* varonce52; +val* var53 /* : String */; +char* var54 /* : NativeString */; val* var55 /* : FlatString */; -static val* varonce56; +val* var56 /* : String */; val* var57 /* : String */; -char* var58 /* : NativeString */; -long var59 /* : Int */; -val* var60 /* : FlatString */; -val* var61 /* : Array[Object] */; -long var62 /* : Int */; -val* var63 /* : NativeArray[Object] */; -val* var64 /* : String */; -long var65 /* : Int */; -val* var66 /* : Array[MModule] */; -long var67 /* : Int */; -val* var_68 /* var : Array[MModule] */; +val* var58 /* : Array[MModule] */; +val* var_59 /* var : Array[MModule] */; val* var_ms /* var ms: Array[MModule] */; var = NEW_nit__ToolContext(&type_nit__ToolContext); { nit__separate_erasure_compiler___ToolContext___standard__kernel__Object__init(var); /* Direct call separate_erasure_compiler#ToolContext#init on */ } var_toolcontext = var; -if (varonce) { +if (likely(varonce!=NULL)) { var1 = varonce; } else { var2 = "Usage: nitc [OPTION]... file.nit...\nCompiles Nit programs."; -var3 = 58; -var4 = standard___standard__NativeString___to_s_with_length(var2, var3); -var1 = var4; +var3 = standard___standard__NativeString___to_s_with_length(var2, 58l); +var1 = var3; varonce = var1; } { { /* Inline toolcontext#ToolContext#tooldescription= (var_toolcontext,var1) on */ var_toolcontext->attrs[COLOR_nit__toolcontext__ToolContext___tooldescription].val = var1; /* _tooldescription on */ -RET_LABEL5:(void)0; +RET_LABEL4:(void)0; } } { -var6 = standard__string___Object___args(self); +var5 = standard__string___Sys___args(self); } { -nit__nith___ToolContext___process_options(var_toolcontext, var6); /* Direct call nith#ToolContext#process_options on */ +nit__nith___ToolContext___process_options(var_toolcontext, var5); /* Direct call nith#ToolContext#process_options on */ } -var7 = NEW_nit__Model(&type_nit__Model); +var6 = NEW_nit__Model(&type_nit__Model); { -{ /* Inline kernel#Object#init (var7) on */ -RET_LABEL8:(void)0; +{ /* Inline kernel#Object#init (var6) on */ +RET_LABEL7:(void)0; } } -var_model = var7; -var9 = NEW_nit__ModelBuilder(&type_nit__ModelBuilder); +var_model = var6; +var8 = NEW_nit__ModelBuilder(&type_nit__ModelBuilder); { -((void (*)(val* self, val* p0))(var9->class->vft[COLOR_nit__modelbuilder_base__ModelBuilder__model_61d]))(var9, var_model) /* model= on */; +((void(*)(val* self, val* p0))(var8->class->vft[COLOR_nit__modelbuilder_base__ModelBuilder__model_61d]))(var8, var_model); /* model= on */ } { -((void (*)(val* self, val* p0))(var9->class->vft[COLOR_nit__modelbuilder_base__ModelBuilder__toolcontext_61d]))(var9, var_toolcontext) /* toolcontext= on */; +((void(*)(val* self, val* p0))(var8->class->vft[COLOR_nit__modelbuilder_base__ModelBuilder__toolcontext_61d]))(var8, var_toolcontext); /* toolcontext= on */ } { -((void (*)(val* self))(var9->class->vft[COLOR_standard__kernel__Object__init]))(var9) /* init on */; +((void(*)(val* self))(var8->class->vft[COLOR_standard__kernel__Object__init]))(var8); /* init on */ } -var_modelbuilder = var9; +var_modelbuilder = var8; { { /* Inline toolcontext#ToolContext#option_context (var_toolcontext) on */ -var12 = var_toolcontext->attrs[COLOR_nit__toolcontext__ToolContext___option_context].val; /* _option_context on */ -if (unlikely(var12 == NULL)) { +var11 = var_toolcontext->attrs[COLOR_nit__toolcontext__ToolContext___option_context].val; /* _option_context on */ +if (unlikely(var11 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 270); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 332); +fatal_exit(1); } -var10 = var12; -RET_LABEL11:(void)0; +var9 = var11; +RET_LABEL10:(void)0; } } { -{ /* Inline opts#OptionContext#rest (var10) on */ -var15 = var10->attrs[COLOR_opts__OptionContext___rest].val; /* _rest on */ -if (unlikely(var15 == NULL)) { +{ /* Inline opts#OptionContext#rest (var9) on */ +var14 = var9->attrs[COLOR_opts__OptionContext___rest].val; /* _rest on */ +if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _rest"); PRINT_ERROR(" (%s:%d)\n", FILE_opts, 267); -show_backtrace(1); +fatal_exit(1); } -var13 = var15; -RET_LABEL14:(void)0; +var12 = var14; +RET_LABEL13:(void)0; } } -var_arguments = var13; +var_arguments = var12; { { /* Inline array#AbstractArrayRead#length (var_arguments) on */ -var19 = var_arguments->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var17 = var19; -RET_LABEL18:(void)0; +var18 = var_arguments->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var16 = var18; +RET_LABEL17:(void)0; } } -var20 = 1; { -{ /* Inline kernel#Int#> (var17,var20) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var23 = 1; /* easy isa OTHER*/ -if (unlikely(!var23)) { +{ /* Inline kernel#Int#> (var16,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var21 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var21)) { var_class_name = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536); +fatal_exit(1); } -var24 = var17 > var20; -var21 = var24; -goto RET_LABEL22; -RET_LABEL22:(void)0; +var22 = var16 > 1l; +var19 = var22; +goto RET_LABEL20; +RET_LABEL20:(void)0; } } -var_ = var21; -if (var21){ +var_ = var19; +if (var19){ { { /* Inline abstract_compiler#ToolContext#opt_output (var_toolcontext) on */ -var27 = var_toolcontext->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_output].val; /* _opt_output on */ -if (unlikely(var27 == NULL)) { +var25 = var_toolcontext->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_output].val; /* _opt_output on */ +if (unlikely(var25 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_output"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 29); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 30); +fatal_exit(1); } -var25 = var27; -RET_LABEL26:(void)0; +var23 = var25; +RET_LABEL24:(void)0; } } { -{ /* Inline opts#Option#value (var25) on */ -var30 = var25->attrs[COLOR_opts__Option___value].val; /* _value on */ -var28 = var30; -RET_LABEL29:(void)0; +{ /* Inline opts#Option#value (var23) on */ +var28 = var23->attrs[COLOR_opts__Option___value].val; /* _value on */ +var26 = var28; +RET_LABEL27:(void)0; } } -var31 = NULL; -if (var28 == NULL) { -var32 = 0; /* is null */ +if (var26 == NULL) { +var29 = 0; /* is null */ } else { -var32 = 1; /* arg is null and recv is not */ +var29 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var28,var31) on */ -var_other = var31; +{ /* Inline kernel#Object#!= (var26,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var35 = ((short int (*)(val* self, val* p0))(var28->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var28, var_other) /* == on */; +var32 = ((short int(*)(val* self, val* p0))(var26->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var26, var_other); /* == on */ } -var36 = !var35; -var33 = var36; -goto RET_LABEL34; -RET_LABEL34:(void)0; +var33 = !var32; +var30 = var33; +goto RET_LABEL31; +RET_LABEL31:(void)0; } -var32 = var33; +var29 = var30; } -var16 = var32; +var15 = var29; } else { -var16 = var_; +var15 = var_; } -if (var16){ -if (varonce37) { -var38 = varonce37; +if (var15){ +if (likely(varonce34!=NULL)) { +var35 = varonce34; } else { -var39 = "Error: --output needs a single source file. Do you prefer --dir?"; -var40 = 64; -var41 = standard___standard__NativeString___to_s_with_length(var39, var40); -var38 = var41; -varonce37 = var38; +var36 = "Option Error: --output needs a single source file. Do you prefer --dir?"; +var37 = standard___standard__NativeString___to_s_with_length(var36, 71l); +var35 = var37; +varonce34 = var35; } { -standard__file___Object___print(self, var38); /* Direct call file#Object#print on */ +standard__file___Sys___print(self, var35); /* Direct call file#Sys#print on */ } -var42 = 1; { -{ /* Inline kernel#Object#exit (self,var42) on */ -exit(var42); -RET_LABEL43:(void)0; +{ /* Inline kernel#Sys#exit (self,1l) on */ +exit(1l); +RET_LABEL38:(void)0; } } } else { } { -var44 = nit__loader___ModelBuilder___parse(var_modelbuilder, var_arguments); +var39 = nit__loader___ModelBuilder___parse(var_modelbuilder, var_arguments); } -var_mmodules = var44; +var_mmodules = var39; { -var45 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_mmodules); +var40 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_mmodules); } -if (var45){ +if (var40){ goto RET_LABEL; } else { } { nit__modelbuilder___ModelBuilder___run_phases(var_modelbuilder); /* Direct call modelbuilder#ModelBuilder#run_phases on */ } -var_46 = var_mmodules; +var_41 = var_mmodules; { -var47 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_46); +var42 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_41); } -var_48 = var47; +var_43 = var42; for(;;) { { -var49 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_48); +var44 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_43); } -if (var49){ +if (var44){ { -var50 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_48); +var45 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_43); } -var_mmodule = var50; -if (varonce51) { -var52 = varonce51; +var_mmodule = var45; +if (unlikely(varonce46==NULL)) { +var47 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce48!=NULL)) { +var49 = varonce48; } else { -var53 = "*** PROCESS "; -var54 = 12; -var55 = standard___standard__NativeString___to_s_with_length(var53, var54); -var52 = var55; -varonce51 = var52; +var50 = "*** PROCESS "; +var51 = standard___standard__NativeString___to_s_with_length(var50, 12l); +var49 = var51; +varonce48 = var49; } -if (varonce56) { -var57 = varonce56; +((struct instance_standard__NativeArray*)var47)->values[0]=var49; +if (likely(varonce52!=NULL)) { +var53 = varonce52; } else { -var58 = " ***"; -var59 = 4; -var60 = standard___standard__NativeString___to_s_with_length(var58, var59); -var57 = var60; -varonce56 = var57; +var54 = " ***"; +var55 = standard___standard__NativeString___to_s_with_length(var54, 4l); +var53 = var55; +varonce52 = var53; } -var61 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var61 = array_instance Array[Object] */ -var62 = 3; -var63 = NEW_standard__NativeArray(var62, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var63)->values[0] = (val*) var52; -((struct instance_standard__NativeArray*)var63)->values[1] = (val*) var_mmodule; -((struct instance_standard__NativeArray*)var63)->values[2] = (val*) var57; -{ -((void (*)(val* self, val* p0, long p1))(var61->class->vft[COLOR_standard__array__Array__with_native]))(var61, var63, var62) /* with_native on */; +((struct instance_standard__NativeArray*)var47)->values[2]=var53; +} else { +var47 = varonce46; +varonce46 = NULL; } +{ +var56 = ((val*(*)(val* self))(var_mmodule->class->vft[COLOR_standard__string__Object__to_s]))(var_mmodule); /* to_s on */ } +((struct instance_standard__NativeArray*)var47)->values[1]=var56; { -var64 = ((val* (*)(val* self))(var61->class->vft[COLOR_standard__string__Object__to_s]))(var61) /* to_s on */; +var57 = ((val*(*)(val* self))(var47->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var47); /* native_to_s on */ } -var65 = 1; +varonce46 = var47; { -nit___nit__ToolContext___info(var_toolcontext, var64, var65); /* Direct call toolcontext#ToolContext#info on */ +nit___nit__ToolContext___info(var_toolcontext, var57, 1l); /* Direct call toolcontext#ToolContext#info on */ } -var66 = NEW_standard__Array(&type_standard__Array__nit__MModule); -var67 = 1; +var58 = NEW_standard__Array(&type_standard__Array__nit__MModule); { -standard___standard__Array___with_capacity(var66, var67); /* Direct call array#Array#with_capacity on */ +standard___standard__Array___with_capacity(var58, 1l); /* Direct call array#Array#with_capacity on */ } -var_68 = var66; +var_59 = var58; { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_68, var_mmodule); /* Direct call array#AbstractArray#push on */ +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_59, var_mmodule); /* Direct call array#AbstractArray#push on */ } -var_ms = var_68; +var_ms = var_59; { nit__modelbuilder___ToolContext___run_global_phases(var_toolcontext, var_ms); /* Direct call modelbuilder#ToolContext#run_global_phases on */ } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_48); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_43); /* Direct call array#ArrayIterator#next on */ } } else { goto BREAK_label; @@ -6042,9 +6896,7 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_48) on */ -RET_LABEL69:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_43); /* Direct call array#ArrayIterator#finish on */ } RET_LABEL:; }