X-Git-Url: http://nitlanguage.org diff --git a/c_src/nit__separate_erasure_compiler.sep.1.c b/c_src/nit__separate_erasure_compiler.sep.1.c index a8ab7f2..98d7603 100644 --- a/c_src/nit__separate_erasure_compiler.sep.1.c +++ b/c_src/nit__separate_erasure_compiler.sep.1.c @@ -7,7 +7,7 @@ var1 = self->attrs[COLOR_nit__separate_erasure_compiler__ToolContext___opt_erasu if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_erasure"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 22); -show_backtrace(1); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -21,7 +21,7 @@ var1 = self->attrs[COLOR_nit__separate_erasure_compiler__ToolContext___opt_rta]. if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_rta"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 24); -show_backtrace(1); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -35,7 +35,7 @@ var1 = self->attrs[COLOR_nit__separate_erasure_compiler__ToolContext___opt_no_ch if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_erasure_cast"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 26); -show_backtrace(1); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -52,18 +52,17 @@ val* var8 /* : OptionBool */; val* var9 /* : OptionBool */; val* var11 /* : OptionBool */; val* var12 /* : Array[Option] */; -long var13 /* : Int */; -val* var14 /* : NativeArray[Option] */; +val* var13 /* : NativeArray[Option] */; { -((void (*)(val* self))(self->class->vft[COLOR_nit__separate_erasure_compiler___ToolContext___standard__kernel__Object__init]))(self) /* init on */; +((void(*)(val* self))(self->class->vft[COLOR_nit__separate_erasure_compiler___ToolContext___standard__kernel__Object__init]))(self); /* init on */ } { { /* Inline toolcontext#ToolContext#option_context (self) on */ var2 = self->attrs[COLOR_nit__toolcontext__ToolContext___option_context].val; /* _option_context on */ if (unlikely(var2 == 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); } var = var2; RET_LABEL1:(void)0; @@ -75,7 +74,7 @@ var5 = self->attrs[COLOR_nit__separate_erasure_compiler__ToolContext___opt_erasu if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_erasure"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 22); -show_backtrace(1); +fatal_exit(1); } var3 = var5; RET_LABEL4:(void)0; @@ -87,7 +86,7 @@ var8 = self->attrs[COLOR_nit__separate_erasure_compiler__ToolContext___opt_no_ch if (unlikely(var8 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_erasure_cast"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 26); -show_backtrace(1); +fatal_exit(1); } var6 = var8; RET_LABEL7:(void)0; @@ -99,7 +98,7 @@ var11 = self->attrs[COLOR_nit__separate_erasure_compiler__ToolContext___opt_rta] if (unlikely(var11 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_rta"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 24); -show_backtrace(1); +fatal_exit(1); } var9 = var11; RET_LABEL10:(void)0; @@ -107,13 +106,12 @@ RET_LABEL10:(void)0; } var12 = NEW_standard__Array(&type_standard__Array__opts__Option); { /* var12 = array_instance Array[Option] */ -var13 = 3; -var14 = NEW_standard__NativeArray(var13, &type_standard__NativeArray__opts__Option); -((struct instance_standard__NativeArray*)var14)->values[0] = (val*) var3; -((struct instance_standard__NativeArray*)var14)->values[1] = (val*) var6; -((struct instance_standard__NativeArray*)var14)->values[2] = (val*) var9; +var13 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__opts__Option); +((struct instance_standard__NativeArray*)var13)->values[0] = (val*) var3; +((struct instance_standard__NativeArray*)var13)->values[1] = (val*) var6; +((struct instance_standard__NativeArray*)var13)->values[2] = (val*) var9; { -((void (*)(val* self, val* p0, long p1))(var12->class->vft[COLOR_standard__array__Array__with_native]))(var12, var14, var13) /* with_native on */; +((void(*)(val* self, val* p0, long p1))(var12->class->vft[COLOR_standard__array__Array__with_native]))(var12, var13, 3l); /* with_native on */ } } { @@ -131,24 +129,36 @@ val* var5 /* : nullable Object */; short int var6 /* : Bool */; val* var7 /* : OptionBool */; val* var9 /* : OptionBool */; -short int var10 /* : Bool */; -short int var12 /* : Bool */; +short int var11 /* : Bool */; int cltype; int idtype; const struct type* type_struct; const char* var_class_name; -val* var13 /* : nullable Object */; +val* var12 /* : nullable Object */; +val* var13 /* : OptionBool */; +val* var15 /* : OptionBool */; +val* var16 /* : nullable Object */; +val* var18 /* : nullable Object */; +short int var19 /* : Bool */; +val* var20 /* : OptionBool */; +val* var22 /* : OptionBool */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +const struct type* type_struct27; +const char* var_class_name28; +val* var29 /* : nullable Object */; var_args = p0; { -((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__separate_erasure_compiler___ToolContext___process_options]))(self, p0) /* process_options on */; +((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__separate_erasure_compiler___ToolContext___process_options]))(self, p0); /* process_options on */ } { { /* Inline abstract_compiler#ToolContext#opt_no_check_all (self) on */ var2 = self->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_no_check_all].val; /* _opt_no_check_all on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_all"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 57); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 58); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; @@ -161,7 +171,7 @@ var3 = var5; RET_LABEL4:(void)0; } } -var6 = ((struct instance_standard__Bool*)var3)->value; /* autounbox from nullable Object to Bool */; +var6 = (short int)((long)(var3)>>2); if (var6){ { { /* Inline separate_erasure_compiler#ToolContext#opt_no_check_erasure_cast (self) on */ @@ -169,34 +179,91 @@ var9 = self->attrs[COLOR_nit__separate_erasure_compiler__ToolContext___opt_no_ch if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_erasure_cast"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 26); -show_backtrace(1); +fatal_exit(1); } var7 = var9; RET_LABEL8:(void)0; } } -var10 = 1; { -{ /* Inline opts#Option#value= (var7,var10) on */ -/* Covariant cast for argument 0 (value) isa VALUE */ -/* isa VALUE */ +{ /* Inline opts#Option#value= (var7,1) on */ +/* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */ +/* <1:Bool> isa VALUE */ type_struct = var7->type->resolution_table->types[COLOR_opts__Option__VALUE]; cltype = type_struct->color; idtype = type_struct->id; if(cltype >= (&type_standard__Bool)->table_size) { -var12 = 0; +var11 = 0; } else { -var12 = (&type_standard__Bool)->type_table[cltype] == idtype; +var11 = (&type_standard__Bool)->type_table[cltype] == idtype; } -if (unlikely(!var12)) { +if (unlikely(!var11)) { var_class_name = type_standard__Bool.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name); PRINT_ERROR(" (%s:%d)\n", FILE_opts, 40); -show_backtrace(1); +fatal_exit(1); +} +var12 = (val*)((long)(1)<<2|3); +var7->attrs[COLOR_opts__Option___value].val = var12; /* _value on */ +RET_LABEL10:(void)0; +} +} +} else { +} +{ +{ /* Inline separate_erasure_compiler#ToolContext#opt_erasure (self) on */ +var15 = self->attrs[COLOR_nit__separate_erasure_compiler__ToolContext___opt_erasure].val; /* _opt_erasure on */ +if (unlikely(var15 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_erasure"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 22); +fatal_exit(1); +} +var13 = var15; +RET_LABEL14:(void)0; +} +} +{ +{ /* Inline opts#Option#value (var13) on */ +var18 = var13->attrs[COLOR_opts__Option___value].val; /* _value on */ +var16 = var18; +RET_LABEL17:(void)0; +} +} +var19 = (short int)((long)(var16)>>2); +if (var19){ +{ +{ /* Inline separate_compiler#ToolContext#opt_no_tag_primitives (self) on */ +var22 = self->attrs[COLOR_nit__separate_compiler__ToolContext___opt_no_tag_primitives].val; /* _opt_no_tag_primitives on */ +if (unlikely(var22 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_tag_primitives"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 32); +fatal_exit(1); +} +var20 = var22; +RET_LABEL21:(void)0; } -var13 = BOX_standard__Bool(var10); /* autobox from Bool to nullable Object */ -var7->attrs[COLOR_opts__Option___value].val = var13; /* _value on */ -RET_LABEL11:(void)0; +} +{ +{ /* Inline opts#Option#value= (var20,1) on */ +/* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */ +/* <1:Bool> isa VALUE */ +type_struct27 = var20->type->resolution_table->types[COLOR_opts__Option__VALUE]; +cltype25 = type_struct27->color; +idtype26 = type_struct27->id; +if(cltype25 >= (&type_standard__Bool)->table_size) { +var24 = 0; +} else { +var24 = (&type_standard__Bool)->type_table[cltype25] == idtype26; +} +if (unlikely(!var24)) { +var_class_name28 = type_standard__Bool.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name28); +PRINT_ERROR(" (%s:%d)\n", FILE_opts, 40); +fatal_exit(1); +} +var29 = (val*)((long)(1)<<2|3); +var20->attrs[COLOR_opts__Option___value].val = var29; /* _value on */ +RET_LABEL23:(void)0; } } } else { @@ -219,16 +286,15 @@ val* var11 /* : ToolContext */; val* var13 /* : ToolContext */; val* var14 /* : ModelBuilder */; val* var_modelbuilder /* var modelbuilder: ModelBuilder */; -val* var15 /* : null */; val* var_analysis /* var analysis: nullable Object */; -val* var16 /* : ToolContext */; -val* var18 /* : ToolContext */; -val* var19 /* : OptionBool */; -val* var21 /* : OptionBool */; -val* var22 /* : nullable Object */; -val* var24 /* : nullable Object */; -short int var25 /* : Bool */; -val* var26 /* : RapidTypeAnalysis */; +val* var15 /* : ToolContext */; +val* var17 /* : ToolContext */; +val* var18 /* : OptionBool */; +val* var20 /* : OptionBool */; +val* var21 /* : nullable Object */; +val* var23 /* : nullable Object */; +short int var24 /* : Bool */; +val* var25 /* : RapidTypeAnalysis */; var_mainmodule = p0; var_given_mmodules = p1; { @@ -236,8 +302,8 @@ var_given_mmodules = p1; var2 = self->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 201); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 200); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; @@ -249,7 +315,7 @@ var5 = var->attrs[COLOR_nit__separate_erasure_compiler__ToolContext___opt_erasur if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_erasure"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 22); -show_backtrace(1); +fatal_exit(1); } var3 = var5; RET_LABEL4:(void)0; @@ -262,7 +328,7 @@ var6 = var8; RET_LABEL7:(void)0; } } -var9 = ((struct instance_standard__Bool*)var6)->value; /* autounbox from nullable Object to Bool */; +var9 = (short int)((long)(var6)>>2); var10 = !var9; if (var10){ goto RET_LABEL; @@ -273,8 +339,8 @@ goto RET_LABEL; var13 = self->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on */ if (unlikely(var13 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 201); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 200); +fatal_exit(1); } var11 = var13; RET_LABEL12:(void)0; @@ -284,45 +350,44 @@ RET_LABEL12:(void)0; var14 = nit__modelbuilder_base___ToolContext___modelbuilder(var11); } var_modelbuilder = var14; -var15 = NULL; -var_analysis = var15; +var_analysis = ((val*)NULL); { { /* Inline phase#Phase#toolcontext (self) on */ -var18 = self->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on */ -if (unlikely(var18 == NULL)) { +var17 = self->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on */ +if (unlikely(var17 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 201); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 200); +fatal_exit(1); } -var16 = var18; -RET_LABEL17:(void)0; +var15 = var17; +RET_LABEL16:(void)0; } } { -{ /* Inline separate_erasure_compiler#ToolContext#opt_rta (var16) on */ -var21 = var16->attrs[COLOR_nit__separate_erasure_compiler__ToolContext___opt_rta].val; /* _opt_rta on */ -if (unlikely(var21 == NULL)) { +{ /* Inline separate_erasure_compiler#ToolContext#opt_rta (var15) on */ +var20 = var15->attrs[COLOR_nit__separate_erasure_compiler__ToolContext___opt_rta].val; /* _opt_rta on */ +if (unlikely(var20 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_rta"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 24); -show_backtrace(1); +fatal_exit(1); } -var19 = var21; -RET_LABEL20:(void)0; +var18 = var20; +RET_LABEL19:(void)0; } } { -{ /* Inline opts#Option#value (var19) on */ -var24 = var19->attrs[COLOR_opts__Option___value].val; /* _value on */ -var22 = var24; -RET_LABEL23:(void)0; +{ /* Inline opts#Option#value (var18) on */ +var23 = var18->attrs[COLOR_opts__Option___value].val; /* _value on */ +var21 = var23; +RET_LABEL22:(void)0; } } -var25 = ((struct instance_standard__Bool*)var22)->value; /* autounbox from nullable Object to Bool */; -if (var25){ +var24 = (short int)((long)(var21)>>2); +if (var24){ { -var26 = nit__rapid_type_analysis___ModelBuilder___do_rapid_type_analysis(var_modelbuilder, var_mainmodule); +var25 = nit__rapid_type_analysis___ModelBuilder___do_rapid_type_analysis(var_modelbuilder, var_mainmodule); } -var_analysis = var26; +var_analysis = var25; } else { } { @@ -342,38 +407,32 @@ val* var5 /* : ToolContext */; static val* varonce; val* var6 /* : String */; char* var7 /* : NativeString */; -long var8 /* : Int */; -val* var9 /* : FlatString */; -long var10 /* : Int */; -val* var11 /* : SeparateErasureCompiler */; +val* var8 /* : FlatString */; +val* var9 /* : SeparateErasureCompiler */; val* var_compiler /* var compiler: SeparateErasureCompiler */; -long var12 /* : Int */; -long var14 /* : Int for extern */; +long var10 /* : Int */; +long var12 /* : Int for extern */; long var_time1 /* var time1: Int */; +val* var13 /* : ToolContext */; val* var15 /* : ToolContext */; -val* var17 /* : ToolContext */; +val* var17 /* : NativeArray[String] */; +static val* varonce16; static val* varonce18; val* var19 /* : String */; char* var20 /* : NativeString */; -long var21 /* : Int */; -val* var22 /* : FlatString */; -long var23 /* : Int */; -short int var25 /* : Bool */; +val* var21 /* : FlatString */; +static val* varonce22; +val* var23 /* : String */; +char* var24 /* : NativeString */; +val* var25 /* : FlatString */; +long var26 /* : Int */; +short int var28 /* : Bool */; int cltype; int idtype; const char* var_class_name; -long var26 /* : Int */; -static val* varonce27; -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 /* : Object */; -val* var36 /* : String */; -long var37 /* : Int */; +long var29 /* : Int */; +val* var30 /* : String */; +val* var31 /* : String */; var_mainmodule = p0; var_runtime_type_analysis = p1; { @@ -391,39 +450,37 @@ var5 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val if (unlikely(var5 == 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); } var3 = var5; RET_LABEL4:(void)0; } } -if (varonce) { +if (likely(varonce!=NULL)) { var6 = varonce; } else { var7 = "*** GENERATING C ***"; -var8 = 20; -var9 = standard___standard__NativeString___to_s_with_length(var7, var8); -var6 = var9; +var8 = standard___standard__NativeString___to_s_with_length(var7, 20l); +var6 = var8; varonce = var6; } -var10 = 1; { -nit___nit__ToolContext___info(var3, var6, var10); /* Direct call toolcontext#ToolContext#info on */ +nit___nit__ToolContext___info(var3, var6, 1l); /* Direct call toolcontext#ToolContext#info on */ } -var11 = NEW_nit__SeparateErasureCompiler(&type_nit__SeparateErasureCompiler); +var9 = NEW_nit__SeparateErasureCompiler(&type_nit__SeparateErasureCompiler); { -((void (*)(val* self, val* p0))(var11->class->vft[COLOR_nit__abstract_compiler__AbstractCompiler__mainmodule_61d]))(var11, var_mainmodule) /* mainmodule= on */; +((void(*)(val* self, val* p0))(var9->class->vft[COLOR_nit__abstract_compiler__AbstractCompiler__mainmodule_61d]))(var9, var_mainmodule); /* mainmodule= on */ } { -((void (*)(val* self, val* p0))(var11->class->vft[COLOR_nit__abstract_compiler__AbstractCompiler__modelbuilder_61d]))(var11, self) /* modelbuilder= on */; +((void(*)(val* self, val* p0))(var9->class->vft[COLOR_nit__abstract_compiler__AbstractCompiler__modelbuilder_61d]))(var9, self); /* modelbuilder= on */ } { -((void (*)(val* self, val* p0))(var11->class->vft[COLOR_nit__separate_compiler__SeparateCompiler__runtime_type_analysis_61d]))(var11, var_runtime_type_analysis) /* runtime_type_analysis= on */; +((void(*)(val* self, val* p0))(var9->class->vft[COLOR_nit__separate_compiler__SeparateCompiler__runtime_type_analysis_61d]))(var9, var_runtime_type_analysis); /* runtime_type_analysis= on */ } { -((void (*)(val* self))(var11->class->vft[COLOR_standard__kernel__Object__init]))(var11) /* init on */; +((void(*)(val* self))(var9->class->vft[COLOR_standard__kernel__Object__init]))(var9); /* init on */ } -var_compiler = var11; +var_compiler = var9; { nit___nit__SeparateCompiler___nit__abstract_compiler__AbstractCompiler__do_compilation(var_compiler); /* Direct call separate_compiler#SeparateCompiler#do_compilation on */ } @@ -432,78 +489,74 @@ nit___nit__SeparateCompiler___nit__abstract_compiler__AbstractCompiler__display_ } { { /* Inline time#Object#get_time (self) on */ -var14 = kernel_Any_Any_get_time_0(self); -var12 = var14; -goto RET_LABEL13; -RET_LABEL13:(void)0; +var12 = kernel_Any_Any_get_time_0(self); +var10 = var12; +goto RET_LABEL11; +RET_LABEL11:(void)0; } } -var_time1 = var12; +var_time1 = var10; { { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on */ -var17 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ -if (unlikely(var17 == NULL)) { +var15 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var15 == 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); } -var15 = var17; -RET_LABEL16:(void)0; +var13 = var15; +RET_LABEL14:(void)0; } } -if (varonce18) { +if (unlikely(varonce16==NULL)) { +var17 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce18!=NULL)) { var19 = varonce18; } else { var20 = "*** END GENERATING C: "; -var21 = 22; -var22 = standard___standard__NativeString___to_s_with_length(var20, var21); -var19 = var22; +var21 = standard___standard__NativeString___to_s_with_length(var20, 22l); +var19 = var21; varonce18 = var19; } +((struct instance_standard__NativeArray*)var17)->values[0]=var19; +if (likely(varonce22!=NULL)) { +var23 = varonce22; +} else { +var24 = " ***"; +var25 = standard___standard__NativeString___to_s_with_length(var24, 4l); +var23 = var25; +varonce22 = var23; +} +((struct instance_standard__NativeArray*)var17)->values[2]=var23; +} else { +var17 = varonce16; +varonce16 = NULL; +} { { /* Inline kernel#Int#- (var_time1,var_time0) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var25 = 1; /* easy isa OTHER*/ -if (unlikely(!var25)) { +var28 = 1; /* easy isa OTHER*/ +if (unlikely(!var28)) { 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, 416); -show_backtrace(1); -} -var26 = var_time1 - var_time0; -var23 = var26; -goto RET_LABEL24; -RET_LABEL24:(void)0; -} -} -if (varonce27) { -var28 = varonce27; -} else { -var29 = " ***"; -var30 = 4; -var31 = standard___standard__NativeString___to_s_with_length(var29, var30); -var28 = var31; -varonce27 = var28; +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540); +fatal_exit(1); } -var32 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var32 = array_instance Array[Object] */ -var33 = 3; -var34 = NEW_standard__NativeArray(var33, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var34)->values[0] = (val*) var19; -var35 = BOX_standard__Int(var23); /* autobox from Int to Object */ -((struct instance_standard__NativeArray*)var34)->values[1] = (val*) var35; -((struct instance_standard__NativeArray*)var34)->values[2] = (val*) var28; -{ -((void (*)(val* self, val* p0, long p1))(var32->class->vft[COLOR_standard__array__Array__with_native]))(var32, var34, var33) /* with_native on */; +var29 = var_time1 - var_time0; +var26 = var29; +goto RET_LABEL27; +RET_LABEL27:(void)0; } } +var30 = standard__string___Int___Object__to_s(var26); +((struct instance_standard__NativeArray*)var17)->values[1]=var30; { -var36 = ((val* (*)(val* self))(var32->class->vft[COLOR_standard__string__Object__to_s]))(var32) /* to_s on */; +var31 = ((val*(*)(val* self))(var17->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var17); /* native_to_s on */ } -var37 = 2; +varonce16 = var17; { -nit___nit__ToolContext___info(var15, var36, var37); /* Direct call toolcontext#ToolContext#info on */ +nit___nit__ToolContext___info(var13, var31, 2l); /* Direct call toolcontext#ToolContext#info on */ } { nit__abstract_compiler___ModelBuilder___write_and_make(self, var_compiler); /* Direct call abstract_compiler#ModelBuilder#write_and_make on */ @@ -517,8 +570,8 @@ val* var1 /* : Map[MClass, Int] */; var1 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_ids].val; /* _class_ids on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_ids"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 79); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 84); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -536,8 +589,8 @@ val* var1 /* : Map[MClass, Int] */; var1 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_colors].val; /* _class_colors on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_colors"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 80); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 85); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -555,8 +608,8 @@ val* var1 /* : Map[MVirtualTypeProp, Int] */; var1 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors].val; /* _vt_colors on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 81); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 86); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -602,21 +655,21 @@ short int var28 /* : Bool */; int cltype; int idtype; val* var29 /* : nullable Object */; -val* var33 /* : POSetBucketsColorer[MClass, MVirtualTypeProp] */; -val* var34 /* : Map[Object, Set[Object]] */; +val* var31 /* : POSetBucketsColorer[MClass, MVirtualTypeProp] */; +val* var32 /* : Map[Object, Set[Object]] */; val* var_vt_colorer /* var vt_colorer: POSetBucketsColorer[MClass, MVirtualTypeProp] */; -val* var35 /* : Map[Object, Int] */; -val* var37 /* : Map[MClass, Array[nullable MPropDef]] */; +val* var33 /* : Map[Object, Int] */; +val* var35 /* : Map[MClass, Array[nullable MPropDef]] */; { -((void (*)(val* self))(self->class->vft[COLOR_nit___nit__SeparateErasureCompiler___standard__kernel__Object__init]))(self) /* init on */; +((void(*)(val* self))(self->class->vft[COLOR_nit___nit__SeparateErasureCompiler___standard__kernel__Object__init]))(self); /* init on */ } { { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on */ var2 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 515); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; @@ -680,11 +733,11 @@ var14 = standard___standard__HashSet___standard__abstract_collection__Collection var_15 = var14; for(;;) { { -var16 = ((short int (*)(val* self))(var_15->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_15) /* is_ok on */; +var16 = ((short int(*)(val* self))((((long)var_15&3)?class_info[((long)var_15&3)]:var_15->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_15); /* is_ok on */ } if (var16){ { -var17 = ((val* (*)(val* self))(var_15->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_15) /* item on */; +var17 = ((val*(*)(val* self))((((long)var_15&3)?class_info[((long)var_15&3)]:var_15->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_15); /* item on */ } var_mclass = var17; var18 = NEW_standard__HashSet(&type_standard__HashSet__nit__MVirtualTypeProp); @@ -699,8 +752,8 @@ standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d( var21 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ if (unlikely(var21 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 515); +fatal_exit(1); } var19 = var21; RET_LABEL20:(void)0; @@ -711,16 +764,16 @@ var22 = nit__abstract_compiler___MModule___properties(var19, var_mclass); } var_23 = var22; { -var24 = ((val* (*)(val* self))(var_23->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_23) /* iterator on */; +var24 = ((val*(*)(val* self))((((long)var_23&3)?class_info[((long)var_23&3)]:var_23->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_23); /* iterator on */ } var_25 = var24; for(;;) { { -var26 = ((short int (*)(val* self))(var_25->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_25) /* is_ok on */; +var26 = ((short int(*)(val* self))((((long)var_25&3)?class_info[((long)var_25&3)]:var_25->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_25); /* is_ok on */ } if (var26){ { -var27 = ((val* (*)(val* self))(var_25->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_25) /* item on */; +var27 = ((val*(*)(val* self))((((long)var_25&3)?class_info[((long)var_25&3)]:var_25->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_25); /* item on */ } var_mprop = var27; /* isa MVirtualTypeProp */ @@ -736,12 +789,12 @@ if (var28){ var29 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_vts, var_mclass); } { -((void (*)(val* self, val* p0))(var29->class->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(var29, var_mprop) /* add on */; +((void(*)(val* self, val* p0))((((long)var29&3)?class_info[((long)var29&3)]:var29->class)->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(var29, var_mprop); /* add on */ } } else { } { -((void (*)(val* self))(var_25->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_25) /* next on */; +((void(*)(val* self))((((long)var_25&3)?class_info[((long)var_25&3)]:var_25->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_25); /* next on */ } } else { goto BREAK_label; @@ -749,53 +802,49 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_25) on */ -RET_LABEL30:(void)0; -} +((void(*)(val* self))((((long)var_25&3)?class_info[((long)var_25&3)]:var_25->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_25); /* finish on */ } { -((void (*)(val* self))(var_15->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_15) /* next on */; +((void(*)(val* self))((((long)var_15&3)?class_info[((long)var_15&3)]:var_15->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_15); /* next on */ } } else { -goto BREAK_label31; +goto BREAK_label30; } } -BREAK_label31: (void)0; +BREAK_label30: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_15) on */ -RET_LABEL32:(void)0; +((void(*)(val* self))((((long)var_15&3)?class_info[((long)var_15&3)]:var_15->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_15); /* finish on */ } -} -var33 = NEW_nit__POSetBucketsColorer(&type_nit__POSetBucketsColorer__nit__MClass__nit__MVirtualTypeProp); +var31 = NEW_nit__POSetBucketsColorer(&type_nit__POSetBucketsColorer__nit__MClass__nit__MVirtualTypeProp); { -var34 = nit___nit__POSetColorer___conflicts(var_colorer); +var32 = nit___nit__POSetColorer___conflicts(var_colorer); } { -((void (*)(val* self, val* p0))(var33->class->vft[COLOR_nit__coloring__POSetBucketsColorer__poset_61d]))(var33, var_poset) /* poset= on */; +((void(*)(val* self, val* p0))(var31->class->vft[COLOR_nit__coloring__POSetBucketsColorer__poset_61d]))(var31, var_poset); /* poset= on */ } { -((void (*)(val* self, val* p0))(var33->class->vft[COLOR_nit__coloring__POSetBucketsColorer__conflicts_61d]))(var33, var34) /* conflicts= on */; +((void(*)(val* self, val* p0))(var31->class->vft[COLOR_nit__coloring__POSetBucketsColorer__conflicts_61d]))(var31, var32); /* conflicts= on */ } { -((void (*)(val* self))(var33->class->vft[COLOR_standard__kernel__Object__init]))(var33) /* init on */; +((void(*)(val* self))(var31->class->vft[COLOR_standard__kernel__Object__init]))(var31); /* init on */ } -var_vt_colorer = var33; +var_vt_colorer = var31; { -var35 = nit___nit__POSetBucketsColorer___colorize(var_vt_colorer, var_vts); +var33 = nit___nit__POSetBucketsColorer___colorize(var_vt_colorer, var_vts); } { -{ /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors= (self,var35) on */ -self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors].val = var35; /* _vt_colors on */ -RET_LABEL36:(void)0; +{ /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors= (self,var33) on */ +self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors].val = var33; /* _vt_colors on */ +RET_LABEL34:(void)0; } } { -var37 = nit___nit__SeparateErasureCompiler___build_vt_tables(self, var_mclasses); +var35 = nit___nit__SeparateErasureCompiler___build_vt_tables(self, var_mclasses); } { -{ /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables= (self,var37) on */ -self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables].val = var37; /* _vt_tables on */ -RET_LABEL38:(void)0; +{ /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables= (self,var35) on */ +self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables].val = var35; /* _vt_tables on */ +RET_LABEL36:(void)0; } } RET_LABEL:; @@ -873,78 +922,74 @@ int cltype65; int idtype66; const char* var_class_name67; short int var68 /* : Bool */; -val* var69 /* : null */; -long var70 /* : Int */; -long var71 /* : Int */; +long var69 /* : Int */; +val* var71 /* : Array[MPropDef] */; val* var73 /* : Array[MPropDef] */; -val* var75 /* : Array[MPropDef] */; -val* var_76 /* var : Array[MVirtualTypeDef] */; -val* var77 /* : ArrayIterator[nullable Object] */; -val* var_78 /* var : ArrayIterator[MVirtualTypeDef] */; -short int var79 /* : Bool */; -val* var80 /* : nullable Object */; +val* var_74 /* var : Array[MVirtualTypeDef] */; +val* var75 /* : ArrayIterator[nullable Object] */; +val* var_76 /* var : ArrayIterator[MVirtualTypeDef] */; +short int var77 /* : Bool */; +val* var78 /* : nullable Object */; val* var_mpropdef /* var mpropdef: MVirtualTypeDef */; +val* var79 /* : MClassDef */; val* var81 /* : MClassDef */; -val* var83 /* : MClassDef */; +val* var82 /* : MClass */; val* var84 /* : MClass */; -val* var86 /* : MClass */; +short int var85 /* : Bool */; short int var87 /* : Bool */; short int var89 /* : Bool */; -short int var91 /* : Bool */; -val* var98 /* : MModule */; -val* var100 /* : MModule */; -val* var101 /* : Set[MProperty] */; -val* var_102 /* var : Set[MProperty] */; -val* var103 /* : Iterator[nullable Object] */; -val* var_104 /* var : Iterator[MProperty] */; -short int var105 /* : Bool */; -val* var106 /* : nullable Object */; -val* var_mproperty107 /* var mproperty: MProperty */; -short int var108 /* : Bool */; -int cltype109; -int idtype110; -short int var111 /* : Bool */; -val* var113 /* : Map[MVirtualTypeProp, Int] */; -val* var115 /* : Map[MVirtualTypeProp, Int] */; -val* var116 /* : nullable Object */; -long var117 /* : Int */; -long var_color118 /* var color: Int */; -long var119 /* : Int */; -long var121 /* : Int */; -short int var122 /* : Bool */; -short int var124 /* : Bool */; -int cltype125; -int idtype126; -const char* var_class_name127; -short int var128 /* : Bool */; -long var129 /* : Int */; -long var131 /* : Int */; -long var_i132 /* var i: Int */; -long var_133 /* var : Int */; -short int var134 /* : Bool */; -short int var136 /* : Bool */; -int cltype137; -int idtype138; -const char* var_class_name139; -short int var140 /* : Bool */; -val* var141 /* : null */; -long var142 /* : Int */; -long var143 /* : Int */; -val* var145 /* : Array[MPropDef] */; -val* var147 /* : Array[MPropDef] */; -val* var_148 /* var : Array[MVirtualTypeDef] */; -val* var149 /* : ArrayIterator[nullable Object] */; -val* var_150 /* var : ArrayIterator[MVirtualTypeDef] */; -short int var151 /* : Bool */; -val* var152 /* : nullable Object */; -val* var_mpropdef153 /* var mpropdef: MVirtualTypeDef */; -val* var154 /* : MClassDef */; -val* var156 /* : MClassDef */; -val* var157 /* : MClass */; -val* var159 /* : MClass */; -short int var160 /* : Bool */; -short int var162 /* : Bool */; -short int var164 /* : Bool */; +val* var93 /* : MModule */; +val* var95 /* : MModule */; +val* var96 /* : Set[MProperty] */; +val* var_97 /* var : Set[MProperty] */; +val* var98 /* : Iterator[nullable Object] */; +val* var_99 /* var : Iterator[MProperty] */; +short int var100 /* : Bool */; +val* var101 /* : nullable Object */; +val* var_mproperty102 /* var mproperty: MProperty */; +short int var103 /* : Bool */; +int cltype104; +int idtype105; +short int var106 /* : Bool */; +val* var108 /* : Map[MVirtualTypeProp, Int] */; +val* var110 /* : Map[MVirtualTypeProp, Int] */; +val* var111 /* : nullable Object */; +long var112 /* : Int */; +long var_color113 /* var color: Int */; +long var114 /* : Int */; +long var116 /* : Int */; +short int var117 /* : Bool */; +short int var119 /* : Bool */; +int cltype120; +int idtype121; +const char* var_class_name122; +short int var123 /* : Bool */; +long var124 /* : Int */; +long var126 /* : Int */; +long var_i127 /* var i: Int */; +long var_128 /* var : Int */; +short int var129 /* : Bool */; +short int var131 /* : Bool */; +int cltype132; +int idtype133; +const char* var_class_name134; +short int var135 /* : Bool */; +long var136 /* : Int */; +val* var138 /* : Array[MPropDef] */; +val* var140 /* : Array[MPropDef] */; +val* var_141 /* var : Array[MVirtualTypeDef] */; +val* var142 /* : ArrayIterator[nullable Object] */; +val* var_143 /* var : ArrayIterator[MVirtualTypeDef] */; +short int var144 /* : Bool */; +val* var145 /* : nullable Object */; +val* var_mpropdef146 /* var mpropdef: MVirtualTypeDef */; +val* var147 /* : MClassDef */; +val* var149 /* : MClassDef */; +val* var150 /* : MClass */; +val* var152 /* : MClass */; +short int var153 /* : Bool */; +short int var155 /* : Bool */; +short int var157 /* : Bool */; var_mclasses = p0; var1 = NEW_standard__HashMap(&type_standard__HashMap__nit__MClass__standard__Array__nullable__nit__MPropDef); { @@ -953,16 +998,16 @@ standard___standard__HashMap___standard__kernel__Object__init(var1); /* Direct c var_tables = var1; var_ = var_mclasses; { -var2 = ((val* (*)(val* self))(var_->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_) /* iterator on */; +var2 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_); /* iterator on */ } var_3 = var2; for(;;) { { -var4 = ((short int (*)(val* self))(var_3->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_3) /* is_ok on */; +var4 = ((short int(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_3); /* is_ok on */ } if (var4){ { -var5 = ((val* (*)(val* self))(var_3->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_3) /* item on */; +var5 = ((val*(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_3); /* item on */ } var_mclass = var5; var6 = NEW_standard__Array(&type_standard__Array__nullable__nit__MPropDef); @@ -980,8 +1025,8 @@ var_parents = var7; var10 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ if (unlikely(var10 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 515); +fatal_exit(1); } var8 = var10; RET_LABEL9:(void)0; @@ -999,8 +1044,8 @@ if (var12){ var15 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ if (unlikely(var15 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 515); +fatal_exit(1); } var13 = var15; RET_LABEL14:(void)0; @@ -1013,7 +1058,7 @@ var16 = nit___nit__MClass___in_hierarchy(var_mclass, var13); var17 = poset___poset__POSetElement___greaters(var16); } { -var18 = standard__array___Collection___to_a(var17); +var18 = ((val*(*)(val* self))((((long)var17&3)?class_info[((long)var17&3)]:var17->class)->vft[COLOR_standard__array__Collection__to_a]))(var17); /* to_a on */ } var_parents = var18; { @@ -1021,8 +1066,8 @@ var_parents = var18; var21 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ if (unlikely(var21 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 515); +fatal_exit(1); } var19 = var21; RET_LABEL20:(void)0; @@ -1072,8 +1117,8 @@ goto BREAK_label; var34 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ if (unlikely(var34 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 515); +fatal_exit(1); } var32 = var34; RET_LABEL33:(void)0; @@ -1084,16 +1129,16 @@ var35 = nit__abstract_compiler___MModule___properties(var32, var_parent); } var_36 = var35; { -var37 = ((val* (*)(val* self))(var_36->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_36) /* iterator on */; +var37 = ((val*(*)(val* self))((((long)var_36&3)?class_info[((long)var_36&3)]:var_36->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_36); /* iterator on */ } var_38 = var37; for(;;) { { -var39 = ((short int (*)(val* self))(var_38->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_38) /* is_ok on */; +var39 = ((short int(*)(val* self))((((long)var_38&3)?class_info[((long)var_38&3)]:var_38->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_38); /* is_ok on */ } if (var39){ { -var40 = ((val* (*)(val* self))(var_38->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_38) /* item on */; +var40 = ((val*(*)(val* self))((((long)var_38&3)?class_info[((long)var_38&3)]:var_38->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_38); /* item on */ } var_mproperty = var40; /* isa MVirtualTypeProp */ @@ -1114,17 +1159,17 @@ goto BREAK_label43; var46 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors].val; /* _vt_colors on */ if (unlikely(var46 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 81); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 86); +fatal_exit(1); } var44 = var46; RET_LABEL45:(void)0; } } { -var47 = ((val* (*)(val* self, val* p0))(var44->class->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var44, var_mproperty) /* [] on */; +var47 = ((val*(*)(val* self, val* p0))((((long)var44&3)?class_info[((long)var44&3)]:var44->class)->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var44, var_mproperty); /* [] on */ } -var48 = ((struct instance_standard__Int*)var47)->value; /* autounbox from nullable Object to Int */; +var48 = (long)(var47)>>2; var_color = var48; { { /* Inline array#AbstractArrayRead#length (var_table) on */ @@ -1141,8 +1186,8 @@ var54 = 1; /* easy isa OTHER*/ if (unlikely(!var54)) { 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, 409); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533); +fatal_exit(1); } var57 = var49 <= var_color; var52 = var57; @@ -1169,8 +1214,8 @@ var64 = 1; /* easy isa OTHER*/ if (unlikely(!var64)) { var_class_name67 = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name67); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } var68 = var_i < var_61; var62 = var68; @@ -1179,377 +1224,361 @@ RET_LABEL63:(void)0; } } if (var62){ -var69 = NULL; { -standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table, var_i, var69); /* Direct call array#Array#[]= on */ +standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table, var_i, ((val*)NULL)); /* Direct call array#Array#[]= on */ } -var70 = 1; { -var71 = standard___standard__Int___Discrete__successor(var_i, var70); +var69 = standard___standard__Int___Discrete__successor(var_i, 1l); } -var_i = var71; +var_i = var69; } else { -goto BREAK_label72; +goto BREAK_label70; } } -BREAK_label72: (void)0; +BREAK_label70: (void)0; } else { } { { /* Inline model#MProperty#mpropdefs (var_mproperty) on */ -var75 = var_mproperty->attrs[COLOR_nit__model__MProperty___mpropdefs].val; /* _mpropdefs on */ -if (unlikely(var75 == NULL)) { +var73 = var_mproperty->attrs[COLOR_nit__model__MProperty___mpropdefs].val; /* _mpropdefs on */ +if (unlikely(var73 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1768); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1963); +fatal_exit(1); } -var73 = var75; -RET_LABEL74:(void)0; +var71 = var73; +RET_LABEL72:(void)0; } } -var_76 = var73; +var_74 = var71; { -var77 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_76); +var75 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_74); } -var_78 = var77; +var_76 = var75; for(;;) { { -var79 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_78); +var77 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_76); } -if (var79){ +if (var77){ { -var80 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_78); +var78 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_76); } -var_mpropdef = var80; +var_mpropdef = var78; { { /* Inline model#MPropDef#mclassdef (var_mpropdef) on */ -var83 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ -if (unlikely(var83 == NULL)) { +var81 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ +if (unlikely(var81 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209); +fatal_exit(1); } -var81 = var83; -RET_LABEL82:(void)0; +var79 = var81; +RET_LABEL80:(void)0; } } { -{ /* Inline model#MClassDef#mclass (var81) on */ -var86 = var81->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var86 == NULL)) { +{ /* Inline model#MClassDef#mclass (var79) on */ +var84 = var79->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var84 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } -var84 = var86; -RET_LABEL85:(void)0; +var82 = var84; +RET_LABEL83:(void)0; } } { -{ /* Inline kernel#Object#== (var84,var_parent) on */ +{ /* Inline kernel#Object#== (var82,var_parent) on */ var_other = var_parent; { -{ /* Inline kernel#Object#is_same_instance (var84,var_other) on */ -var91 = var84 == var_other; -var89 = var91; -goto RET_LABEL90; -RET_LABEL90:(void)0; -} -} +{ /* Inline kernel#Object#is_same_instance (var82,var_other) on */ +var89 = var82 == var_other; var87 = var89; goto RET_LABEL88; RET_LABEL88:(void)0; } } -if (var87){ +var85 = var87; +goto RET_LABEL86; +RET_LABEL86:(void)0; +} +} +if (var85){ { standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table, var_color, var_mpropdef); /* Direct call array#Array#[]= on */ } } else { } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_78); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_76); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label92; +goto BREAK_label90; } } -BREAK_label92: (void)0; +BREAK_label90: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_78) on */ -RET_LABEL93:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_76); /* Direct call array#ArrayIterator#finish on */ } BREAK_label43: (void)0; { -((void (*)(val* self))(var_38->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_38) /* next on */; +((void(*)(val* self))((((long)var_38&3)?class_info[((long)var_38&3)]:var_38->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_38); /* next on */ } } else { -goto BREAK_label94; +goto BREAK_label91; } } -BREAK_label94: (void)0; +BREAK_label91: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_38) on */ -RET_LABEL95:(void)0; -} +((void(*)(val* self))((((long)var_38&3)?class_info[((long)var_38&3)]:var_38->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_38); /* finish on */ } BREAK_label: (void)0; { standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_24); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label96; +goto BREAK_label92; } } -BREAK_label96: (void)0; +BREAK_label92: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_24) on */ -RET_LABEL97:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_24); /* Direct call array#ArrayIterator#finish on */ } { { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on */ -var100 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ -if (unlikely(var100 == NULL)) { +var95 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var95 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 515); +fatal_exit(1); } -var98 = var100; -RET_LABEL99:(void)0; +var93 = var95; +RET_LABEL94:(void)0; } } { -var101 = nit__abstract_compiler___MModule___properties(var98, var_mclass); +var96 = nit__abstract_compiler___MModule___properties(var93, var_mclass); } -var_102 = var101; +var_97 = var96; { -var103 = ((val* (*)(val* self))(var_102->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_102) /* iterator on */; +var98 = ((val*(*)(val* self))((((long)var_97&3)?class_info[((long)var_97&3)]:var_97->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_97); /* iterator on */ } -var_104 = var103; +var_99 = var98; for(;;) { { -var105 = ((short int (*)(val* self))(var_104->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_104) /* is_ok on */; +var100 = ((short int(*)(val* self))((((long)var_99&3)?class_info[((long)var_99&3)]:var_99->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_99); /* is_ok on */ } -if (var105){ +if (var100){ { -var106 = ((val* (*)(val* self))(var_104->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_104) /* item on */; +var101 = ((val*(*)(val* self))((((long)var_99&3)?class_info[((long)var_99&3)]:var_99->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_99); /* item on */ } -var_mproperty107 = var106; -/* isa MVirtualTypeProp */ -cltype109 = type_nit__MVirtualTypeProp.color; -idtype110 = type_nit__MVirtualTypeProp.id; -if(cltype109 >= var_mproperty107->type->table_size) { -var108 = 0; +var_mproperty102 = var101; +/* isa MVirtualTypeProp */ +cltype104 = type_nit__MVirtualTypeProp.color; +idtype105 = type_nit__MVirtualTypeProp.id; +if(cltype104 >= var_mproperty102->type->table_size) { +var103 = 0; } else { -var108 = var_mproperty107->type->type_table[cltype109] == idtype110; +var103 = var_mproperty102->type->type_table[cltype104] == idtype105; } -var111 = !var108; -if (var111){ -goto BREAK_label112; +var106 = !var103; +if (var106){ +goto BREAK_label107; } else { } { { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_colors (self) on */ -var115 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors].val; /* _vt_colors on */ -if (unlikely(var115 == NULL)) { +var110 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors].val; /* _vt_colors on */ +if (unlikely(var110 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 81); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 86); +fatal_exit(1); } -var113 = var115; -RET_LABEL114:(void)0; +var108 = var110; +RET_LABEL109:(void)0; } } { -var116 = ((val* (*)(val* self, val* p0))(var113->class->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var113, var_mproperty107) /* [] on */; +var111 = ((val*(*)(val* self, val* p0))((((long)var108&3)?class_info[((long)var108&3)]:var108->class)->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var108, var_mproperty102); /* [] on */ } -var117 = ((struct instance_standard__Int*)var116)->value; /* autounbox from nullable Object to Int */; -var_color118 = var117; +var112 = (long)(var111)>>2; +var_color113 = var112; { { /* Inline array#AbstractArrayRead#length (var_table) on */ -var121 = var_table->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var119 = var121; -RET_LABEL120:(void)0; +var116 = var_table->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var114 = var116; +RET_LABEL115:(void)0; } } { -{ /* Inline kernel#Int#<= (var119,var_color118) 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, 409); -show_backtrace(1); +{ /* Inline kernel#Int#<= (var114,var_color113) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var119 = 1; /* easy isa OTHER*/ +if (unlikely(!var119)) { +var_class_name122 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name122); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533); +fatal_exit(1); } -var128 = var119 <= var_color118; -var122 = var128; -goto RET_LABEL123; -RET_LABEL123:(void)0; +var123 = var114 <= var_color113; +var117 = var123; +goto RET_LABEL118; +RET_LABEL118:(void)0; } } -if (var122){ +if (var117){ { { /* Inline array#AbstractArrayRead#length (var_table) on */ -var131 = var_table->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var129 = var131; -RET_LABEL130:(void)0; +var126 = var_table->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var124 = var126; +RET_LABEL125:(void)0; } } -var_i132 = var129; -var_133 = var_color118; +var_i127 = var124; +var_128 = var_color113; for(;;) { { -{ /* Inline kernel#Int#< (var_i132,var_133) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var136 = 1; /* easy isa OTHER*/ -if (unlikely(!var136)) { -var_class_name139 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name139); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); -} -var140 = var_i132 < var_133; -var134 = var140; -goto RET_LABEL135; -RET_LABEL135:(void)0; +{ /* Inline kernel#Int#< (var_i127,var_128) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var131 = 1; /* easy isa OTHER*/ +if (unlikely(!var131)) { +var_class_name134 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name134); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); +} +var135 = var_i127 < var_128; +var129 = var135; +goto RET_LABEL130; +RET_LABEL130:(void)0; } } -if (var134){ -var141 = NULL; +if (var129){ { -standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table, var_i132, var141); /* Direct call array#Array#[]= on */ +standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table, var_i127, ((val*)NULL)); /* Direct call array#Array#[]= on */ } -var142 = 1; { -var143 = standard___standard__Int___Discrete__successor(var_i132, var142); +var136 = standard___standard__Int___Discrete__successor(var_i127, 1l); } -var_i132 = var143; +var_i127 = var136; } else { -goto BREAK_label144; +goto BREAK_label137; } } -BREAK_label144: (void)0; +BREAK_label137: (void)0; } else { } { -{ /* Inline model#MProperty#mpropdefs (var_mproperty107) on */ -var147 = var_mproperty107->attrs[COLOR_nit__model__MProperty___mpropdefs].val; /* _mpropdefs on */ -if (unlikely(var147 == NULL)) { +{ /* Inline model#MProperty#mpropdefs (var_mproperty102) on */ +var140 = var_mproperty102->attrs[COLOR_nit__model__MProperty___mpropdefs].val; /* _mpropdefs on */ +if (unlikely(var140 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1768); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1963); +fatal_exit(1); } -var145 = var147; -RET_LABEL146:(void)0; +var138 = var140; +RET_LABEL139:(void)0; } } -var_148 = var145; +var_141 = var138; { -var149 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_148); +var142 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_141); } -var_150 = var149; +var_143 = var142; for(;;) { { -var151 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_150); +var144 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_143); } -if (var151){ +if (var144){ { -var152 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_150); +var145 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_143); } -var_mpropdef153 = var152; +var_mpropdef146 = var145; { -{ /* Inline model#MPropDef#mclassdef (var_mpropdef153) on */ -var156 = var_mpropdef153->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ -if (unlikely(var156 == NULL)) { +{ /* Inline model#MPropDef#mclassdef (var_mpropdef146) on */ +var149 = var_mpropdef146->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ +if (unlikely(var149 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209); +fatal_exit(1); } -var154 = var156; -RET_LABEL155:(void)0; +var147 = var149; +RET_LABEL148:(void)0; } } { -{ /* Inline model#MClassDef#mclass (var154) on */ -var159 = var154->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var159 == NULL)) { +{ /* Inline model#MClassDef#mclass (var147) on */ +var152 = var147->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var152 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } -var157 = var159; -RET_LABEL158:(void)0; +var150 = var152; +RET_LABEL151:(void)0; } } { -{ /* Inline kernel#Object#== (var157,var_mclass) on */ +{ /* Inline kernel#Object#== (var150,var_mclass) on */ var_other = var_mclass; { -{ /* Inline kernel#Object#is_same_instance (var157,var_other) on */ -var164 = var157 == var_other; -var162 = var164; -goto RET_LABEL163; -RET_LABEL163:(void)0; +{ /* Inline kernel#Object#is_same_instance (var150,var_other) on */ +var157 = var150 == var_other; +var155 = var157; +goto RET_LABEL156; +RET_LABEL156:(void)0; } } -var160 = var162; -goto RET_LABEL161; -RET_LABEL161:(void)0; +var153 = var155; +goto RET_LABEL154; +RET_LABEL154:(void)0; } } -if (var160){ +if (var153){ { -standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table, var_color118, var_mpropdef153); /* Direct call array#Array#[]= on */ +standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table, var_color113, var_mpropdef146); /* Direct call array#Array#[]= on */ } } else { } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_150); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_143); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label165; +goto BREAK_label158; } } -BREAK_label165: (void)0; +BREAK_label158: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_150) on */ -RET_LABEL166:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_143); /* Direct call array#ArrayIterator#finish on */ } -BREAK_label112: (void)0; +BREAK_label107: (void)0; { -((void (*)(val* self))(var_104->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_104) /* next on */; +((void(*)(val* self))((((long)var_99&3)?class_info[((long)var_99&3)]:var_99->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_99); /* next on */ } } else { -goto BREAK_label167; +goto BREAK_label159; } } -BREAK_label167: (void)0; +BREAK_label159: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_104) on */ -RET_LABEL168:(void)0; -} +((void(*)(val* self))((((long)var_99&3)?class_info[((long)var_99&3)]:var_99->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_99); /* finish on */ } { standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_tables, var_mclass, var_table); /* Direct call hash_collection#HashMap#[]= on */ } { -((void (*)(val* self))(var_3->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_3) /* next on */; +((void(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_3); /* next on */ } } else { -goto BREAK_label169; +goto BREAK_label160; } } -BREAK_label169: (void)0; +BREAK_label160: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_3) on */ -RET_LABEL170:(void)0; -} +((void(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_3); /* finish on */ } var = var_tables; goto RET_LABEL; @@ -1610,9 +1639,7 @@ int cltype43; int idtype44; const char* var_class_name45; short int var46 /* : Bool */; -val* var47 /* : null */; -long var48 /* : Int */; -long var49 /* : Int */; +long var47 /* : Int */; var_mclasses = p0; var1 = NEW_standard__HashMap(&type_standard__HashMap__nit__MClass__standard__Array__nullable__nit__MClass); { @@ -1621,16 +1648,16 @@ standard___standard__HashMap___standard__kernel__Object__init(var1); /* Direct c var_tables = var1; var_ = var_mclasses; { -var2 = ((val* (*)(val* self))(var_->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_) /* iterator on */; +var2 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_); /* iterator on */ } var_3 = var2; for(;;) { { -var4 = ((short int (*)(val* self))(var_3->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_3) /* is_ok on */; +var4 = ((short int(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_3); /* is_ok on */ } if (var4){ { -var5 = ((val* (*)(val* self))(var_3->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_3) /* item on */; +var5 = ((val*(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_3); /* item on */ } var_mclass = var5; var6 = NEW_standard__Array(&type_standard__Array__nullable__nit__MClass); @@ -1648,8 +1675,8 @@ var_supers = var7; var10 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ if (unlikely(var10 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 515); +fatal_exit(1); } var8 = var10; RET_LABEL9:(void)0; @@ -1667,8 +1694,8 @@ if (var12){ var15 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ if (unlikely(var15 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 515); +fatal_exit(1); } var13 = var15; RET_LABEL14:(void)0; @@ -1681,7 +1708,7 @@ var16 = nit___nit__MClass___in_hierarchy(var_mclass, var13); var17 = poset___poset__POSetElement___greaters(var16); } { -var18 = standard__array___Collection___to_a(var17); +var18 = ((val*(*)(val* self))((((long)var17&3)?class_info[((long)var17&3)]:var17->class)->vft[COLOR_standard__array__Collection__to_a]))(var17); /* to_a on */ } var_supers = var18; } else { @@ -1705,17 +1732,17 @@ var_sup = var23; var26 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_colors].val; /* _class_colors on */ if (unlikely(var26 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_colors"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 80); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 85); +fatal_exit(1); } var24 = var26; RET_LABEL25:(void)0; } } { -var27 = ((val* (*)(val* self, val* p0))(var24->class->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var24, var_sup) /* [] on */; +var27 = ((val*(*)(val* self, val* p0))((((long)var24&3)?class_info[((long)var24&3)]:var24->class)->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var24, var_sup); /* [] on */ } -var28 = ((struct instance_standard__Int*)var27)->value; /* autounbox from nullable Object to Int */; +var28 = (long)(var27)>>2; var_color = var28; { { /* Inline array#AbstractArrayRead#length (var_table) on */ @@ -1732,8 +1759,8 @@ var34 = 1; /* easy isa OTHER*/ if (unlikely(!var34)) { 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, 409); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533); +fatal_exit(1); } var35 = var29 <= var_color; var32 = var35; @@ -1760,8 +1787,8 @@ var42 = 1; /* easy isa OTHER*/ if (unlikely(!var42)) { var_class_name45 = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } var46 = var_i < var_39; var40 = var46; @@ -1770,15 +1797,13 @@ RET_LABEL41:(void)0; } } if (var40){ -var47 = NULL; { -standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table, var_i, var47); /* Direct call array#Array#[]= on */ +standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_table, var_i, ((val*)NULL)); /* Direct call array#Array#[]= on */ } -var48 = 1; { -var49 = standard___standard__Int___Discrete__successor(var_i, var48); +var47 = standard___standard__Int___Discrete__successor(var_i, 1l); } -var_i = var49; +var_i = var47; } else { goto BREAK_label; } @@ -1793,30 +1818,26 @@ standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_6 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_21); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label50; +goto BREAK_label48; } } -BREAK_label50: (void)0; +BREAK_label48: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_21) on */ -RET_LABEL51:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_21); /* Direct call array#ArrayIterator#finish on */ } { standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_tables, var_mclass, var_table); /* Direct call hash_collection#HashMap#[]= on */ } { -((void (*)(val* self))(var_3->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_3) /* next on */; +((void(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_3); /* next on */ } } else { -goto BREAK_label52; +goto BREAK_label49; } } -BREAK_label52: (void)0; +BREAK_label49: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_3) on */ -RET_LABEL53:(void)0; -} +((void(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_3); /* finish on */ } var = var_tables; goto RET_LABEL; @@ -1830,62 +1851,55 @@ val* var2 /* : CodeWriter */; static val* varonce; val* var3 /* : String */; char* var4 /* : NativeString */; -long var5 /* : Int */; -val* var6 /* : FlatString */; -val* var7 /* : CodeWriter */; -val* var9 /* : CodeWriter */; -static val* varonce10; -val* var11 /* : String */; -char* var12 /* : NativeString */; -long var13 /* : Int */; -val* var14 /* : FlatString */; +val* var5 /* : FlatString */; +val* var6 /* : CodeWriter */; +val* var8 /* : CodeWriter */; +static val* varonce9; +val* var10 /* : String */; +char* var11 /* : NativeString */; +val* var12 /* : FlatString */; +val* var13 /* : CodeWriter */; val* var15 /* : CodeWriter */; -val* var17 /* : CodeWriter */; -static val* varonce18; -val* var19 /* : String */; -char* var20 /* : NativeString */; -long var21 /* : Int */; -val* var22 /* : FlatString */; -val* var23 /* : CodeWriter */; -val* var25 /* : CodeWriter */; -static val* varonce26; -val* var27 /* : String */; -char* var28 /* : NativeString */; -long var29 /* : Int */; -val* var30 /* : FlatString */; -val* var31 /* : CodeWriter */; -val* var33 /* : CodeWriter */; -static val* varonce34; -val* var35 /* : String */; -char* var36 /* : NativeString */; -long var37 /* : Int */; -val* var38 /* : FlatString */; -val* var39 /* : CodeWriter */; -val* var41 /* : CodeWriter */; -static val* varonce42; -val* var43 /* : String */; -char* var44 /* : NativeString */; -long var45 /* : Int */; -val* var46 /* : FlatString */; +static val* varonce16; +val* var17 /* : String */; +char* var18 /* : NativeString */; +val* var19 /* : FlatString */; +val* var20 /* : CodeWriter */; +val* var22 /* : CodeWriter */; +static val* varonce23; +val* var24 /* : String */; +char* var25 /* : NativeString */; +val* var26 /* : FlatString */; +val* var27 /* : CodeWriter */; +val* var29 /* : CodeWriter */; +static val* varonce30; +val* var31 /* : String */; +char* var32 /* : NativeString */; +val* var33 /* : FlatString */; +val* var34 /* : CodeWriter */; +val* var36 /* : CodeWriter */; +static val* varonce37; +val* var38 /* : String */; +char* var39 /* : NativeString */; +val* var40 /* : FlatString */; { { /* Inline abstract_compiler#AbstractCompiler#header (self) on */ var2 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 569); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; } } -if (varonce) { +if (likely(varonce!=NULL)) { var3 = varonce; } else { var4 = "typedef void(*nitmethod_t)(void); /* general C type representing a Nit method. */"; -var5 = 81; -var6 = standard___standard__NativeString___to_s_with_length(var4, var5); -var3 = var6; +var5 = standard___standard__NativeString___to_s_with_length(var4, 81l); +var3 = var5; varonce = var3; } { @@ -1896,123 +1910,118 @@ nit___nit__SeparateCompiler___compile_header_attribute_structs(self); /* Direct } { { /* Inline abstract_compiler#AbstractCompiler#header (self) on */ -var9 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ -if (unlikely(var9 == NULL)) { +var8 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ +if (unlikely(var8 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 569); +fatal_exit(1); } -var7 = var9; -RET_LABEL8:(void)0; +var6 = var8; +RET_LABEL7:(void)0; } } -if (varonce10) { -var11 = varonce10; +if (likely(varonce9!=NULL)) { +var10 = varonce9; } else { -var12 = "struct class { int id; const char *name; int box_kind; int color; const struct vts_table *vts_table; const struct type_table *type_table; nitmethod_t vft[]; }; /* general C type representing a Nit class. */"; -var13 = 206; -var14 = standard___standard__NativeString___to_s_with_length(var12, var13); -var11 = var14; -varonce10 = var11; +var11 = "struct class { int id; const char *name; int box_kind; int color; const struct vts_table *vts_table; const struct type_table *type_table; nitmethod_t vft[]; }; /* general C type representing a Nit class. */"; +var12 = standard___standard__NativeString___to_s_with_length(var11, 206l); +var10 = var12; +varonce9 = var10; } { -nit___nit__CodeWriter___add_decl(var7, var11); /* Direct call abstract_compiler#CodeWriter#add_decl on */ +nit___nit__CodeWriter___add_decl(var6, var10); /* Direct call abstract_compiler#CodeWriter#add_decl on */ } { { /* Inline abstract_compiler#AbstractCompiler#header (self) on */ -var17 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ -if (unlikely(var17 == NULL)) { +var15 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ +if (unlikely(var15 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 569); +fatal_exit(1); } -var15 = var17; -RET_LABEL16:(void)0; +var13 = var15; +RET_LABEL14:(void)0; } } -if (varonce18) { -var19 = varonce18; +if (likely(varonce16!=NULL)) { +var17 = varonce16; } else { -var20 = "struct type_table { int size; int table[]; }; /* colorized type table. */"; -var21 = 73; -var22 = standard___standard__NativeString___to_s_with_length(var20, var21); -var19 = var22; -varonce18 = var19; +var18 = "struct type_table { int size; int table[]; }; /* colorized type table. */"; +var19 = standard___standard__NativeString___to_s_with_length(var18, 73l); +var17 = var19; +varonce16 = var17; } { -nit___nit__CodeWriter___add_decl(var15, var19); /* Direct call abstract_compiler#CodeWriter#add_decl on */ +nit___nit__CodeWriter___add_decl(var13, var17); /* Direct call abstract_compiler#CodeWriter#add_decl on */ } { { /* Inline abstract_compiler#AbstractCompiler#header (self) on */ -var25 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ -if (unlikely(var25 == NULL)) { +var22 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ +if (unlikely(var22 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 569); +fatal_exit(1); } -var23 = var25; -RET_LABEL24:(void)0; +var20 = var22; +RET_LABEL21:(void)0; } } -if (varonce26) { -var27 = varonce26; +if (likely(varonce23!=NULL)) { +var24 = varonce23; } else { -var28 = "struct vts_entry { short int is_nullable; const struct class *class; }; /* link (nullable or not) between the vts and is bound. */"; -var29 = 130; -var30 = standard___standard__NativeString___to_s_with_length(var28, var29); -var27 = var30; -varonce26 = var27; +var25 = "struct vts_entry { short int is_nullable; const struct class *class; }; /* link (nullable or not) between the vts and is bound. */"; +var26 = standard___standard__NativeString___to_s_with_length(var25, 130l); +var24 = var26; +varonce23 = var24; } { -nit___nit__CodeWriter___add_decl(var23, var27); /* Direct call abstract_compiler#CodeWriter#add_decl on */ +nit___nit__CodeWriter___add_decl(var20, var24); /* Direct call abstract_compiler#CodeWriter#add_decl on */ } { { /* Inline abstract_compiler#AbstractCompiler#header (self) on */ -var33 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ -if (unlikely(var33 == NULL)) { +var29 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ +if (unlikely(var29 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 569); +fatal_exit(1); } -var31 = var33; -RET_LABEL32:(void)0; +var27 = var29; +RET_LABEL28:(void)0; } } -if (varonce34) { -var35 = varonce34; +if (likely(varonce30!=NULL)) { +var31 = varonce30; } else { -var36 = "struct vts_table { int dummy; const struct vts_entry vts[]; }; /* vts list of a C type representation. */"; -var37 = 105; -var38 = standard___standard__NativeString___to_s_with_length(var36, var37); -var35 = var38; -varonce34 = var35; +var32 = "struct vts_table { int dummy; const struct vts_entry vts[]; }; /* vts list of a C type representation. */"; +var33 = standard___standard__NativeString___to_s_with_length(var32, 105l); +var31 = var33; +varonce30 = var31; } { -nit___nit__CodeWriter___add_decl(var31, var35); /* Direct call abstract_compiler#CodeWriter#add_decl on */ +nit___nit__CodeWriter___add_decl(var27, var31); /* Direct call abstract_compiler#CodeWriter#add_decl on */ } { { /* Inline abstract_compiler#AbstractCompiler#header (self) on */ -var41 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ -if (unlikely(var41 == NULL)) { +var36 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ +if (unlikely(var36 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 569); +fatal_exit(1); } -var39 = var41; -RET_LABEL40:(void)0; +var34 = var36; +RET_LABEL35:(void)0; } } -if (varonce42) { -var43 = varonce42; +if (likely(varonce37!=NULL)) { +var38 = varonce37; } else { -var44 = "typedef struct instance { const struct class *class; nitattribute_t attrs[1]; } val; /* general C type representing a Nit instance. */"; -var45 = 134; -var46 = standard___standard__NativeString___to_s_with_length(var44, var45); -var43 = var46; -varonce42 = var43; +var39 = "typedef struct instance { const struct class *class; nitattribute_t attrs[1]; } val; /* general C type representing a Nit instance. */"; +var40 = standard___standard__NativeString___to_s_with_length(var39, 134l); +var38 = var40; +varonce37 = var38; } { -nit___nit__CodeWriter___add_decl(var39, var43); /* Direct call abstract_compiler#CodeWriter#add_decl on */ +nit___nit__CodeWriter___add_decl(var34, var38); /* Direct call abstract_compiler#CodeWriter#add_decl on */ } RET_LABEL:; } @@ -2026,1260 +2035,1066 @@ val* var5 /* : MClassType */; val* var_mtype /* var mtype: MClassType */; val* var6 /* : String */; val* var_c_name /* var c_name: String */; -val* var7 /* : Map[MClass, Array[nullable MPropDef]] */; -val* var9 /* : Map[MClass, Array[nullable MPropDef]] */; +val* var7 /* : Map[MClass, Array[nullable MClass]] */; +val* var9 /* : Map[MClass, Array[nullable MClass]] */; val* var10 /* : nullable Object */; -val* var_vft /* var vft: Array[nullable MPropDef] */; -val* var11 /* : Map[MClass, Array[nullable MPropDef]] */; -val* var13 /* : Map[MClass, Array[nullable MPropDef]] */; -val* var14 /* : nullable Object */; -val* var_attrs /* var attrs: Array[nullable MPropDef] */; -val* var15 /* : Map[MClass, Array[nullable MClass]] */; -val* var17 /* : Map[MClass, Array[nullable MClass]] */; -val* var18 /* : nullable Object */; val* var_class_table /* var class_table: Array[nullable MClass] */; -val* var19 /* : SeparateCompilerVisitor */; +val* var11 /* : SeparateCompilerVisitor */; val* var_v /* var v: SeparateCompilerVisitor */; -val* var20 /* : nullable RapidTypeAnalysis */; -val* var22 /* : nullable RapidTypeAnalysis */; +val* var12 /* : nullable RapidTypeAnalysis */; +val* var14 /* : nullable RapidTypeAnalysis */; val* var_rta /* var rta: nullable RapidTypeAnalysis */; -short int var23 /* : Bool */; short int var_is_dead /* var is_dead: Bool */; -short int var24 /* : Bool */; -short int var25 /* : Bool */; -short int var26 /* : Bool */; -short int var27 /* : Bool */; -short int var28 /* : Bool */; +short int var15 /* : Bool */; +short int var16 /* : Bool */; +short int var17 /* : Bool */; +short int var18 /* : Bool */; +short int var19 /* : Bool */; short int var_ /* var : Bool */; -val* var29 /* : null */; -short int var30 /* : Bool */; -short int var31 /* : Bool */; +short int var20 /* : Bool */; +short int var21 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var23 /* : Bool */; +short int var24 /* : Bool */; +short int var_25 /* var : Bool */; +val* var26 /* : HashSet[MClass] */; +val* var28 /* : HashSet[MClass] */; +short int var29 /* : Bool */; +short int var30 /* : Bool */; +short int var_31 /* var : Bool */; +short int var32 /* : Bool */; short int var33 /* : Bool */; -short int var34 /* : Bool */; -short int var_35 /* var : Bool */; -val* var36 /* : HashSet[MClass] */; -val* var38 /* : HashSet[MClass] */; -short int var39 /* : Bool */; -short int var40 /* : Bool */; -short int var_41 /* var : Bool */; -val* var42 /* : String */; +short int var_34 /* var : Bool */; +val* var35 /* : String */; +val* var37 /* : String */; static val* varonce; -val* var43 /* : String */; -char* var44 /* : NativeString */; -long var45 /* : Int */; -val* var46 /* : FlatString */; -short int var47 /* : Bool */; -short int var_48 /* var : Bool */; -val* var49 /* : String */; -val* var51 /* : String */; -static val* varonce52; -val* var53 /* : String */; -char* var54 /* : NativeString */; -long var55 /* : Int */; -val* var56 /* : FlatString */; -short int var57 /* : Bool */; -short int var59 /* : Bool */; -short int var60 /* : Bool */; -short int var61 /* : Bool */; -static val* varonce62; -val* var63 /* : String */; -char* var64 /* : NativeString */; -long var65 /* : Int */; -val* var66 /* : FlatString */; -static val* varonce67; -val* var68 /* : String */; -char* var69 /* : NativeString */; -long var70 /* : Int */; -val* var71 /* : FlatString */; -val* var72 /* : Array[Object] */; -long var73 /* : Int */; -val* var74 /* : NativeArray[Object] */; -val* var75 /* : String */; -static val* varonce76; -val* var77 /* : String */; -char* var78 /* : NativeString */; -long var79 /* : Int */; -val* var80 /* : FlatString */; -val* var81 /* : Array[Object] */; -long var82 /* : Int */; -val* var83 /* : NativeArray[Object] */; -val* var84 /* : String */; +val* var38 /* : String */; +char* var39 /* : NativeString */; +val* var40 /* : FlatString */; +short int var41 /* : Bool */; +short int var43 /* : Bool */; +short int var44 /* : Bool */; +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 */; +val* var55 /* : String */; +val* var57 /* : NativeArray[String] */; +static val* varonce56; +static val* varonce58; +val* var59 /* : String */; +char* var60 /* : NativeString */; +val* var61 /* : FlatString */; +val* var62 /* : String */; +val* var64 /* : NativeArray[String] */; +static val* varonce63; +static val* varonce65; +val* var66 /* : String */; +char* var67 /* : NativeString */; +val* var68 /* : FlatString */; +static val* varonce69; +val* var70 /* : String */; +char* var71 /* : NativeString */; +val* var72 /* : FlatString */; +val* var73 /* : String */; +val* var75 /* : NativeArray[String] */; +static val* varonce74; +static val* varonce76; +val* var77 /* : String */; +char* var78 /* : NativeString */; +val* var79 /* : FlatString */; +static val* varonce80; +val* var81 /* : String */; +char* var82 /* : NativeString */; +val* var83 /* : FlatString */; +val* var84 /* : String */; +val* var86 /* : NativeArray[String] */; static val* varonce85; -val* var86 /* : String */; -char* var87 /* : NativeString */; -long var88 /* : Int */; -val* var89 /* : FlatString */; -static val* varonce90; -val* var91 /* : String */; -char* var92 /* : NativeString */; -long var93 /* : Int */; +static val* varonce87; +val* var88 /* : String */; +char* var89 /* : NativeString */; +val* var90 /* : FlatString */; +static val* varonce91; +val* var92 /* : String */; +char* var93 /* : NativeString */; val* var94 /* : FlatString */; -val* var95 /* : Array[Object] */; -long var96 /* : Int */; -val* var97 /* : NativeArray[Object] */; -val* var98 /* : String */; -static val* varonce99; -val* var100 /* : String */; -char* var101 /* : NativeString */; -long var102 /* : Int */; -val* var103 /* : FlatString */; -static val* varonce104; -val* var105 /* : String */; -char* var106 /* : NativeString */; +val* var95 /* : String */; +val* var97 /* : NativeArray[String] */; +static val* varonce96; +static val* varonce98; +val* var99 /* : String */; +char* var100 /* : NativeString */; +val* var101 /* : FlatString */; +val* var102 /* : Map[MClass, Int] */; +val* var104 /* : Map[MClass, Int] */; +val* var105 /* : nullable Object */; +val* var106 /* : String */; long var107 /* : Int */; -val* var108 /* : FlatString */; -val* var109 /* : Array[Object] */; -long var110 /* : Int */; -val* var111 /* : NativeArray[Object] */; +val* var108 /* : String */; +val* var110 /* : NativeArray[String] */; +static val* varonce109; +static val* varonce111; val* var112 /* : String */; -static val* varonce113; -val* var114 /* : String */; -char* var115 /* : NativeString */; -long var116 /* : Int */; -val* var117 /* : FlatString */; -static val* varonce118; +char* var113 /* : NativeString */; +val* var114 /* : FlatString */; +static val* varonce115; +val* var116 /* : String */; +char* var117 /* : NativeString */; +val* var118 /* : FlatString */; val* var119 /* : String */; -char* var120 /* : NativeString */; -long var121 /* : Int */; -val* var122 /* : FlatString */; -val* var123 /* : Array[Object] */; -long var124 /* : Int */; -val* var125 /* : NativeArray[Object] */; +val* var121 /* : String */; +val* var122 /* : String */; +val* var124 /* : NativeArray[String] */; +static val* varonce123; +static val* varonce125; val* var126 /* : String */; -val* var127 /* : Map[MClass, Int] */; -val* var129 /* : Map[MClass, Int] */; -val* var130 /* : nullable Object */; -static val* varonce131; -val* var132 /* : String */; -char* var133 /* : NativeString */; -long var134 /* : Int */; -val* var135 /* : FlatString */; -val* var136 /* : Array[Object] */; -long var137 /* : Int */; -val* var138 /* : NativeArray[Object] */; -val* var139 /* : String */; -static val* varonce140; -val* var141 /* : String */; -char* var142 /* : NativeString */; +char* var127 /* : NativeString */; +val* var128 /* : FlatString */; +long var129 /* : Int */; +val* var130 /* : String */; +val* var131 /* : String */; +val* var133 /* : NativeArray[String] */; +static val* varonce132; +static val* varonce134; +val* var135 /* : String */; +char* var136 /* : NativeString */; +val* var137 /* : FlatString */; +val* var138 /* : Map[MClass, Int] */; +val* var140 /* : Map[MClass, Int] */; +val* var141 /* : nullable Object */; +val* var142 /* : String */; long var143 /* : Int */; -val* var144 /* : FlatString */; -val* var145 /* : String */; -val* var147 /* : String */; -static val* varonce148; -val* var149 /* : String */; -char* var150 /* : NativeString */; -long var151 /* : Int */; +val* var144 /* : String */; +short int var145 /* : Bool */; +short int var146 /* : Bool */; +val* var148 /* : NativeArray[String] */; +static val* varonce147; +static val* varonce149; +val* var150 /* : String */; +char* var151 /* : NativeString */; val* var152 /* : FlatString */; -val* var153 /* : Array[Object] */; -long var154 /* : Int */; -val* var155 /* : NativeArray[Object] */; -val* var156 /* : String */; -long var157 /* : Int */; -static val* varonce158; -val* var159 /* : String */; -char* var160 /* : NativeString */; -long var161 /* : Int */; -val* var162 /* : FlatString */; -val* var163 /* : Array[Object] */; -long var164 /* : Int */; -val* var165 /* : NativeArray[Object] */; -val* var166 /* : Object */; -val* var167 /* : String */; -val* var168 /* : Map[MClass, Int] */; -val* var170 /* : Map[MClass, Int] */; -val* var171 /* : nullable Object */; -static val* varonce172; -val* var173 /* : String */; -char* var174 /* : NativeString */; -long var175 /* : Int */; -val* var176 /* : FlatString */; -val* var177 /* : Array[Object] */; -long var178 /* : Int */; -val* var179 /* : NativeArray[Object] */; -val* var180 /* : String */; -short int var181 /* : Bool */; -short int var182 /* : Bool */; -static val* varonce183; -val* var184 /* : String */; -char* var185 /* : NativeString */; -long var186 /* : Int */; -val* var187 /* : FlatString */; -val* var188 /* : Array[Object] */; -long var189 /* : Int */; -val* var190 /* : NativeArray[Object] */; -val* var191 /* : String */; -static val* varonce192; -val* var193 /* : String */; -char* var194 /* : NativeString */; -long var195 /* : Int */; -val* var196 /* : FlatString */; -static val* varonce197; -val* var198 /* : String */; -char* var199 /* : NativeString */; -long var200 /* : Int */; -val* var201 /* : FlatString */; -val* var202 /* : Array[Object] */; -long var203 /* : Int */; -val* var204 /* : NativeArray[Object] */; -val* var205 /* : String */; -static val* varonce206; -val* var207 /* : String */; -char* var208 /* : NativeString */; -long var209 /* : Int */; -val* var210 /* : FlatString */; -static val* varonce211; -val* var212 /* : String */; -char* var213 /* : NativeString */; -long var214 /* : Int */; -val* var215 /* : FlatString */; -static val* varonce216; -val* var217 /* : String */; -char* var218 /* : NativeString */; -long var219 /* : Int */; -val* var220 /* : FlatString */; -val* var221 /* : Array[Object] */; -long var222 /* : Int */; -val* var223 /* : NativeArray[Object] */; -val* var224 /* : String */; -static val* varonce225; -val* var226 /* : String */; -char* var227 /* : NativeString */; -long var228 /* : Int */; -val* var229 /* : FlatString */; -long var230 /* : Int */; +val* var153 /* : String */; +val* var155 /* : NativeArray[String] */; +static val* varonce154; +static val* varonce156; +val* var157 /* : String */; +char* var158 /* : NativeString */; +val* var159 /* : FlatString */; +static val* varonce160; +val* var161 /* : String */; +char* var162 /* : NativeString */; +val* var163 /* : FlatString */; +val* var164 /* : String */; +static val* varonce165; +val* var166 /* : String */; +char* var167 /* : NativeString */; +val* var168 /* : FlatString */; +val* var170 /* : NativeArray[String] */; +static val* varonce169; +static val* varonce171; +val* var172 /* : String */; +char* var173 /* : NativeString */; +val* var174 /* : FlatString */; +static val* varonce175; +val* var176 /* : String */; +char* var177 /* : NativeString */; +val* var178 /* : FlatString */; +val* var179 /* : String */; +static val* varonce180; +val* var181 /* : String */; +char* var182 /* : NativeString */; +val* var183 /* : FlatString */; +val* var184 /* : Map[MClass, Array[nullable MPropDef]] */; +val* var186 /* : Map[MClass, Array[nullable MPropDef]] */; +val* var187 /* : nullable Object */; +val* var_vft /* var vft: nullable Array[nullable MPropDef] */; +short int var188 /* : Bool */; +short int var189 /* : Bool */; +short int var191 /* : Bool */; +short int var192 /* : Bool */; long var_i /* var i: Int */; -long var231 /* : Int */; -long var233 /* : Int */; -long var_234 /* var : Int */; -short int var235 /* : Bool */; -short int var237 /* : Bool */; +long var193 /* : Int */; +long var195 /* : Int */; +long var_196 /* var : Int */; +short int var197 /* : Bool */; +short int var199 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var238 /* : Bool */; -val* var239 /* : nullable Object */; +short int var200 /* : Bool */; +val* var201 /* : nullable Object */; val* var_mpropdef /* var mpropdef: nullable MPropDef */; -val* var240 /* : null */; -short int var241 /* : Bool */; -short int var242 /* : Bool */; -val* var_other244 /* var other: nullable Object */; -short int var245 /* : Bool */; -short int var247 /* : Bool */; -static val* varonce248; +short int var202 /* : Bool */; +short int var203 /* : Bool */; +val* var_other205 /* var other: nullable Object */; +short int var206 /* : Bool */; +short int var208 /* : Bool */; +static val* varonce209; +val* var210 /* : String */; +char* var211 /* : NativeString */; +val* var212 /* : FlatString */; +short int var213 /* : Bool */; +int cltype214; +int idtype215; +short int var216 /* : Bool */; +short int var217 /* : Bool */; +short int var218 /* : Bool */; +short int var220 /* : Bool */; +short int var221 /* : Bool */; +short int var_222 /* var : Bool */; +val* var223 /* : HashSet[MMethodDef] */; +val* var225 /* : HashSet[MMethodDef] */; +short int var226 /* : Bool */; +short int var227 /* : Bool */; +val* var229 /* : NativeArray[String] */; +static val* varonce228; +static val* varonce230; +val* var231 /* : String */; +char* var232 /* : NativeString */; +val* var233 /* : FlatString */; +static val* varonce234; +val* var235 /* : String */; +char* var236 /* : NativeString */; +val* var237 /* : FlatString */; +static val* varonce238; +val* var239 /* : String */; +char* var240 /* : NativeString */; +val* var241 /* : FlatString */; +static val* varonce242; +val* var243 /* : String */; +char* var244 /* : NativeString */; +val* var245 /* : FlatString */; +val* var246 /* : MModule */; +val* var248 /* : MModule */; val* var249 /* : String */; -char* var250 /* : NativeString */; -long var251 /* : Int */; -val* var252 /* : FlatString */; -short int var253 /* : Bool */; -int cltype254; -int idtype255; -short int var256 /* : Bool */; -val* var257 /* : null */; -short int var258 /* : Bool */; -short int var259 /* : Bool */; -short int var261 /* : Bool */; -short int var262 /* : Bool */; -short int var_263 /* var : Bool */; -val* var264 /* : HashSet[MMethodDef] */; -val* var266 /* : HashSet[MMethodDef] */; -short int var267 /* : Bool */; -short int var268 /* : Bool */; -static val* varonce269; +val* var250 /* : String */; +val* var251 /* : String */; +val* var252 /* : String */; +val* var253 /* : SeparateRuntimeFunction */; +val* var_rf /* var rf: SeparateRuntimeFunction */; +val* var254 /* : String */; +val* var256 /* : NativeArray[String] */; +static val* varonce255; +static val* varonce257; +val* var258 /* : String */; +char* var259 /* : NativeString */; +val* var260 /* : FlatString */; +static val* varonce261; +val* var262 /* : String */; +char* var263 /* : NativeString */; +val* var264 /* : FlatString */; +static val* varonce265; +val* var266 /* : String */; +char* var267 /* : NativeString */; +val* var268 /* : FlatString */; +val* var269 /* : String */; val* var270 /* : String */; -char* var271 /* : NativeString */; +val* var271 /* : String */; long var272 /* : Int */; -val* var273 /* : FlatString */; -val* var274 /* : MModule */; -val* var276 /* : MModule */; -static val* varonce277; -val* var278 /* : String */; -char* var279 /* : NativeString */; -long var280 /* : Int */; +static val* varonce274; +val* var275 /* : String */; +char* var276 /* : NativeString */; +val* var277 /* : FlatString */; +static val* varonce278; +val* var279 /* : String */; +char* var280 /* : NativeString */; val* var281 /* : FlatString */; +val* var283 /* : NativeArray[String] */; static val* varonce282; -val* var283 /* : String */; -char* var284 /* : NativeString */; -long var285 /* : Int */; -val* var286 /* : FlatString */; -static val* varonce287; -val* var288 /* : String */; -char* var289 /* : NativeString */; -long var290 /* : Int */; +static val* varonce284; +val* var285 /* : String */; +char* var286 /* : NativeString */; +val* var287 /* : FlatString */; +static val* varonce288; +val* var289 /* : String */; +char* var290 /* : NativeString */; val* var291 /* : FlatString */; -val* var292 /* : Array[Object] */; -long var293 /* : Int */; -val* var294 /* : NativeArray[Object] */; -val* var295 /* : String */; -val* var296 /* : SeparateRuntimeFunction */; -val* var_rf /* var rf: SeparateRuntimeFunction */; -val* var297 /* : String */; -static val* varonce298; -val* var299 /* : String */; -char* var300 /* : NativeString */; +val* var292 /* : String */; +val* var294 /* : NativeArray[String] */; +static val* varonce293; +static val* varonce295; +val* var296 /* : String */; +char* var297 /* : NativeString */; +val* var298 /* : FlatString */; +long var299 /* : Int */; long var301 /* : Int */; -val* var302 /* : FlatString */; +val* var302 /* : String */; val* var303 /* : String */; static val* varonce304; val* var305 /* : String */; char* var306 /* : NativeString */; -long var307 /* : Int */; -val* var308 /* : FlatString */; -val* var309 /* : String */; -static val* varonce310; -val* var311 /* : String */; -char* var312 /* : NativeString */; -long var313 /* : Int */; -val* var314 /* : FlatString */; -val* var315 /* : Array[Object] */; -long var316 /* : Int */; -val* var317 /* : NativeArray[Object] */; -val* var318 /* : String */; -long var319 /* : Int */; -long var320 /* : Int */; -static val* varonce322; -val* var323 /* : String */; -char* var324 /* : NativeString */; -long var325 /* : Int */; -val* var326 /* : FlatString */; -static val* varonce327; -val* var328 /* : String */; -char* var329 /* : NativeString */; -long var330 /* : Int */; -val* var331 /* : FlatString */; -static val* varonce332; -val* var333 /* : String */; -char* var334 /* : NativeString */; -long var335 /* : Int */; -val* var336 /* : FlatString */; -static val* varonce337; -val* var338 /* : String */; -char* var339 /* : NativeString */; -long var340 /* : Int */; -val* var341 /* : FlatString */; -val* var342 /* : Array[Object] */; -long var343 /* : Int */; -val* var344 /* : NativeArray[Object] */; -val* var345 /* : String */; -long var346 /* : Int */; -long var348 /* : Int */; -static val* varonce349; -val* var350 /* : String */; -char* var351 /* : NativeString */; -long var352 /* : Int */; -val* var353 /* : FlatString */; -val* var354 /* : Array[Object] */; -long var355 /* : Int */; -val* var356 /* : NativeArray[Object] */; -val* var357 /* : Object */; +val* var307 /* : FlatString */; +val* var_308 /* var : Array[nullable MClass] */; +val* var309 /* : ArrayIterator[nullable Object] */; +val* var_310 /* var : ArrayIterator[nullable MClass] */; +short int var311 /* : Bool */; +val* var312 /* : nullable Object */; +val* var_msuper /* var msuper: nullable MClass */; +short int var313 /* : Bool */; +short int var314 /* : Bool */; +short int var316 /* : Bool */; +short int var318 /* : Bool */; +static val* varonce319; +val* var320 /* : String */; +char* var321 /* : NativeString */; +val* var322 /* : FlatString */; +val* var324 /* : NativeArray[String] */; +static val* varonce323; +static val* varonce325; +val* var326 /* : String */; +char* var327 /* : NativeString */; +val* var328 /* : FlatString */; +static val* varonce329; +val* var330 /* : String */; +char* var331 /* : NativeString */; +val* var332 /* : FlatString */; +val* var333 /* : Map[MClass, Int] */; +val* var335 /* : Map[MClass, Int] */; +val* var336 /* : nullable Object */; +val* var337 /* : String */; +long var338 /* : Int */; +val* var339 /* : String */; +val* var340 /* : String */; +static val* varonce342; +val* var343 /* : String */; +char* var344 /* : NativeString */; +val* var345 /* : FlatString */; +static val* varonce346; +val* var347 /* : String */; +char* var348 /* : NativeString */; +val* var349 /* : FlatString */; +short int var350 /* : Bool */; +short int var351 /* : Bool */; +short int var_352 /* var : Bool */; +val* var353 /* : MClass */; +val* var355 /* : MClass */; +val* var356 /* : String */; val* var358 /* : String */; static val* varonce359; val* var360 /* : String */; char* var361 /* : NativeString */; -long var362 /* : Int */; -val* var363 /* : FlatString */; -val* var_364 /* var : Array[nullable MClass] */; -val* var365 /* : ArrayIterator[nullable Object] */; -val* var_366 /* var : ArrayIterator[nullable MClass] */; -short int var367 /* : Bool */; -val* var368 /* : nullable Object */; -val* var_msuper /* var msuper: nullable MClass */; -val* var369 /* : null */; -short int var370 /* : Bool */; -short int var371 /* : Bool */; -short int var373 /* : Bool */; -short int var375 /* : Bool */; -static val* varonce376; +val* var362 /* : FlatString */; +short int var363 /* : Bool */; +val* var364 /* : CodeWriter */; +val* var366 /* : CodeWriter */; +val* var368 /* : NativeArray[String] */; +static val* varonce367; +static val* varonce369; +val* var370 /* : String */; +char* var371 /* : NativeString */; +val* var372 /* : FlatString */; +static val* varonce373; +val* var374 /* : String */; +char* var375 /* : NativeString */; +val* var376 /* : FlatString */; val* var377 /* : String */; -char* var378 /* : NativeString */; -long var379 /* : Int */; -val* var380 /* : FlatString */; -val* var381 /* : Map[MClass, Int] */; -val* var383 /* : Map[MClass, Int] */; -val* var384 /* : nullable Object */; -static val* varonce385; -val* var386 /* : String */; -char* var387 /* : NativeString */; -long var388 /* : Int */; -val* var389 /* : FlatString */; +val* var378 /* : CodeWriter */; +val* var380 /* : CodeWriter */; +static val* varonce381; +val* var382 /* : String */; +char* var383 /* : NativeString */; +val* var384 /* : FlatString */; +val* var385 /* : CodeWriter */; +val* var387 /* : CodeWriter */; +val* var389 /* : NativeArray[String] */; +static val* varonce388; static val* varonce390; val* var391 /* : String */; char* var392 /* : NativeString */; -long var393 /* : Int */; -val* var394 /* : FlatString */; -val* var395 /* : Array[Object] */; -long var396 /* : Int */; -val* var397 /* : NativeArray[Object] */; -val* var398 /* : String */; -static val* varonce401; -val* var402 /* : String */; -char* var403 /* : NativeString */; -long var404 /* : Int */; -val* var405 /* : FlatString */; -static val* varonce406; -val* var407 /* : String */; -char* var408 /* : NativeString */; -long var409 /* : Int */; -val* var410 /* : FlatString */; -short int var411 /* : Bool */; -val* var412 /* : String */; -static val* varonce413; -val* var414 /* : String */; -char* var415 /* : NativeString */; -long var416 /* : Int */; -val* var417 /* : FlatString */; -short int var418 /* : Bool */; -short int var420 /* : Bool */; -short int var421 /* : Bool */; -short int var_422 /* var : Bool */; -val* var423 /* : MClass */; -val* var425 /* : MClass */; -val* var426 /* : String */; -val* var428 /* : String */; -static val* varonce429; -val* var430 /* : String */; -char* var431 /* : NativeString */; -long var432 /* : Int */; -val* var433 /* : FlatString */; -short int var434 /* : Bool */; -val* var435 /* : CodeWriter */; -val* var437 /* : CodeWriter */; +val* var393 /* : FlatString */; +val* var394 /* : String */; +val* var395 /* : String */; +val* var396 /* : CodeWriter */; +val* var398 /* : CodeWriter */; +static val* varonce399; +val* var400 /* : String */; +char* var401 /* : NativeString */; +val* var402 /* : FlatString */; +val* var404 /* : NativeArray[String] */; +static val* varonce403; +static val* varonce405; +val* var406 /* : String */; +char* var407 /* : NativeString */; +val* var408 /* : FlatString */; +val* var409 /* : String */; +val* var411 /* : NativeArray[String] */; +static val* varonce410; +static val* varonce412; +val* var413 /* : String */; +char* var414 /* : NativeString */; +val* var415 /* : FlatString */; +static val* varonce416; +val* var417 /* : String */; +char* var418 /* : NativeString */; +val* var419 /* : FlatString */; +static val* varonce420; +val* var421 /* : String */; +char* var422 /* : NativeString */; +val* var423 /* : FlatString */; +val* var424 /* : String */; +val* var425 /* : String */; +val* var427 /* : NativeArray[String] */; +static val* varonce426; +static val* varonce428; +val* var429 /* : String */; +char* var430 /* : NativeString */; +val* var431 /* : FlatString */; +static val* varonce432; +val* var433 /* : String */; +char* var434 /* : NativeString */; +val* var435 /* : FlatString */; +val* var436 /* : String */; +val* var437 /* : String */; +val* var439 /* : NativeArray[String] */; static val* varonce438; -val* var439 /* : String */; -char* var440 /* : NativeString */; -long var441 /* : Int */; -val* var442 /* : FlatString */; -static val* varonce443; -val* var444 /* : String */; -char* var445 /* : NativeString */; -long var446 /* : Int */; +static val* varonce440; +val* var441 /* : String */; +char* var442 /* : NativeString */; +val* var443 /* : FlatString */; +static val* varonce444; +val* var445 /* : String */; +char* var446 /* : NativeString */; val* var447 /* : FlatString */; -val* var448 /* : Array[Object] */; -long var449 /* : Int */; -val* var450 /* : NativeArray[Object] */; -val* var451 /* : String */; -val* var452 /* : CodeWriter */; -val* var454 /* : CodeWriter */; +static val* varonce448; +val* var449 /* : String */; +char* var450 /* : NativeString */; +val* var451 /* : FlatString */; +val* var452 /* : String */; +val* var453 /* : String */; +val* var454 /* : String */; +val* var456 /* : NativeArray[String] */; static val* varonce455; -val* var456 /* : String */; -char* var457 /* : NativeString */; -long var458 /* : Int */; -val* var459 /* : FlatString */; -val* var460 /* : CodeWriter */; -val* var462 /* : CodeWriter */; -val* var463 /* : String */; -static val* varonce464; -val* var465 /* : String */; -char* var466 /* : NativeString */; -long var467 /* : Int */; +static val* varonce457; +val* var458 /* : String */; +char* var459 /* : NativeString */; +val* var460 /* : FlatString */; +static val* varonce461; +val* var462 /* : String */; +char* var463 /* : NativeString */; +val* var464 /* : FlatString */; +static val* varonce465; +val* var466 /* : String */; +char* var467 /* : NativeString */; val* var468 /* : FlatString */; -val* var469 /* : Array[Object] */; -long var470 /* : Int */; -val* var471 /* : NativeArray[Object] */; -val* var472 /* : String */; -val* var473 /* : CodeWriter */; -val* var475 /* : CodeWriter */; -static val* varonce476; -val* var477 /* : String */; -char* var478 /* : NativeString */; -long var479 /* : Int */; -val* var480 /* : FlatString */; -static val* varonce481; -val* var482 /* : String */; -char* var483 /* : NativeString */; -long var484 /* : Int */; -val* var485 /* : FlatString */; -val* var486 /* : Array[Object] */; -long var487 /* : Int */; -val* var488 /* : NativeArray[Object] */; +val* var469 /* : String */; +val* var471 /* : NativeArray[String] */; +static val* varonce470; +static val* varonce472; +val* var473 /* : String */; +char* var474 /* : NativeString */; +val* var475 /* : FlatString */; +val* var476 /* : String */; +val* var478 /* : NativeArray[String] */; +static val* varonce477; +static val* varonce479; +val* var480 /* : String */; +char* var481 /* : NativeString */; +val* var482 /* : FlatString */; +static val* varonce483; +val* var484 /* : String */; +char* var485 /* : NativeString */; +val* var486 /* : FlatString */; +val* var487 /* : String */; +static val* varonce488; val* var489 /* : String */; -static val* varonce490; -val* var491 /* : String */; -char* var492 /* : NativeString */; -long var493 /* : Int */; -val* var494 /* : FlatString */; -static val* varonce495; -val* var496 /* : String */; -char* var497 /* : NativeString */; -long var498 /* : Int */; +char* var490 /* : NativeString */; +val* var491 /* : FlatString */; +static val* varonce492; +val* var493 /* : String */; +char* var494 /* : NativeString */; +val* var495 /* : FlatString */; +static val* varonce496; +val* var497 /* : String */; +char* var498 /* : NativeString */; val* var499 /* : FlatString */; -val* var500 /* : String */; -static val* varonce501; -val* var502 /* : String */; -char* var503 /* : NativeString */; -long var504 /* : Int */; -val* var505 /* : FlatString */; -val* var506 /* : Array[Object] */; -long var507 /* : Int */; -val* var508 /* : NativeArray[Object] */; -val* var509 /* : String */; -static val* varonce510; -val* var511 /* : String */; -char* var512 /* : NativeString */; -long var513 /* : Int */; -val* var514 /* : FlatString */; +val* var500 /* : MClass */; +val* var502 /* : MClass */; +val* var503 /* : String */; +val* var505 /* : String */; +static val* varonce506; +val* var507 /* : String */; +char* var508 /* : NativeString */; +val* var509 /* : FlatString */; +short int var510 /* : Bool */; +short int var512 /* : Bool */; +short int var513 /* : Bool */; +val* var514 /* : SeparateCompilerVisitor */; +val* var516 /* : NativeArray[String] */; static val* varonce515; -val* var516 /* : String */; -char* var517 /* : NativeString */; -long var518 /* : Int */; -val* var519 /* : FlatString */; -val* var520 /* : Array[Object] */; -long var521 /* : Int */; -val* var522 /* : NativeArray[Object] */; -val* var523 /* : String */; +static val* varonce517; +val* var518 /* : String */; +char* var519 /* : NativeString */; +val* var520 /* : FlatString */; +val* var521 /* : String */; +val* var523 /* : NativeArray[String] */; +static val* varonce522; static val* varonce524; val* var525 /* : String */; char* var526 /* : NativeString */; -long var527 /* : Int */; -val* var528 /* : FlatString */; +val* var527 /* : FlatString */; +static val* varonce528; val* var529 /* : String */; -static val* varonce530; -val* var531 /* : String */; -char* var532 /* : NativeString */; -long var533 /* : Int */; -val* var534 /* : FlatString */; -val* var535 /* : String */; +char* var530 /* : NativeString */; +val* var531 /* : FlatString */; +val* var532 /* : String */; +val* var533 /* : String */; +val* var535 /* : NativeArray[String] */; +static val* varonce534; static val* varonce536; val* var537 /* : String */; char* var538 /* : NativeString */; -long var539 /* : Int */; -val* var540 /* : FlatString */; -val* var541 /* : Array[Object] */; -long var542 /* : Int */; -val* var543 /* : NativeArray[Object] */; +val* var539 /* : FlatString */; +static val* varonce540; +val* var541 /* : String */; +char* var542 /* : NativeString */; +val* var543 /* : FlatString */; val* var544 /* : String */; -static val* varonce545; -val* var546 /* : String */; -char* var547 /* : NativeString */; -long var548 /* : Int */; -val* var549 /* : FlatString */; -static val* varonce550; -val* var551 /* : String */; -char* var552 /* : NativeString */; -long var553 /* : Int */; -val* var554 /* : FlatString */; -static val* varonce555; +val* var545 /* : String */; +val* var547 /* : NativeArray[String] */; +static val* varonce546; +static val* varonce548; +val* var549 /* : String */; +char* var550 /* : NativeString */; +val* var551 /* : FlatString */; +static val* varonce552; +val* var553 /* : String */; +char* var554 /* : NativeString */; +val* var555 /* : FlatString */; val* var556 /* : String */; -char* var557 /* : NativeString */; -long var558 /* : Int */; -val* var559 /* : FlatString */; -val* var560 /* : Array[Object] */; -long var561 /* : Int */; -val* var562 /* : NativeArray[Object] */; -val* var563 /* : String */; -static val* varonce564; +val* var557 /* : String */; +val* var559 /* : NativeArray[String] */; +static val* varonce558; +static val* varonce560; +val* var561 /* : String */; +char* var562 /* : NativeString */; +val* var563 /* : FlatString */; +val* var564 /* : String */; val* var565 /* : String */; -char* var566 /* : NativeString */; -long var567 /* : Int */; -val* var568 /* : FlatString */; -val* var569 /* : Array[Object] */; -long var570 /* : Int */; -val* var571 /* : NativeArray[Object] */; -val* var572 /* : String */; -static val* varonce573; -val* var574 /* : String */; -char* var575 /* : NativeString */; -long var576 /* : Int */; +static val* varonce566; +val* var567 /* : String */; +char* var568 /* : NativeString */; +val* var569 /* : FlatString */; +val* var570 /* : RuntimeVariable */; +val* var_res /* var res: RuntimeVariable */; +val* var573 /* : NativeArray[String] */; +static val* varonce572; +static val* varonce574; +val* var575 /* : String */; +char* var576 /* : NativeString */; val* var577 /* : FlatString */; static val* varonce578; val* var579 /* : String */; char* var580 /* : NativeString */; -long var581 /* : Int */; -val* var582 /* : FlatString */; -val* var583 /* : Array[Object] */; -long var584 /* : Int */; -val* var585 /* : NativeArray[Object] */; -val* var586 /* : String */; +val* var581 /* : FlatString */; +val* var582 /* : String */; +val* var583 /* : String */; +val* var584 /* : String */; +val* var586 /* : NativeArray[String] */; +static val* varonce585; static val* varonce587; val* var588 /* : String */; char* var589 /* : NativeString */; -long var590 /* : Int */; -val* var591 /* : FlatString */; +val* var590 /* : FlatString */; +val* var591 /* : String */; +val* var593 /* : NativeArray[String] */; static val* varonce592; -val* var593 /* : String */; -char* var594 /* : NativeString */; -long var595 /* : Int */; -val* var596 /* : FlatString */; -static val* varonce597; -val* var598 /* : String */; -char* var599 /* : NativeString */; -long var600 /* : Int */; +static val* varonce594; +val* var595 /* : String */; +char* var596 /* : NativeString */; +val* var597 /* : FlatString */; +static val* varonce598; +val* var599 /* : String */; +char* var600 /* : NativeString */; val* var601 /* : FlatString */; -val* var602 /* : MClass */; -val* var604 /* : MClass */; -val* var605 /* : String */; +val* var602 /* : String */; +val* var603 /* : String */; +val* var605 /* : NativeArray[String] */; +static val* varonce604; +static val* varonce606; val* var607 /* : String */; -static val* varonce608; -val* var609 /* : String */; -char* var610 /* : NativeString */; -long var611 /* : Int */; -val* var612 /* : FlatString */; -short int var613 /* : Bool */; -short int var615 /* : Bool */; -short int var616 /* : Bool */; -val* var617 /* : SeparateCompilerVisitor */; -static val* varonce618; +char* var608 /* : NativeString */; +val* var609 /* : FlatString */; +static val* varonce610; +val* var611 /* : String */; +char* var612 /* : NativeString */; +val* var613 /* : FlatString */; +static val* varonce614; +val* var615 /* : String */; +char* var616 /* : NativeString */; +val* var617 /* : FlatString */; +val* var618 /* : String */; val* var619 /* : String */; -char* var620 /* : NativeString */; -long var621 /* : Int */; -val* var622 /* : FlatString */; -val* var623 /* : Array[Object] */; -long var624 /* : Int */; -val* var625 /* : NativeArray[Object] */; -val* var626 /* : String */; -val* var627 /* : String */; -static val* varonce628; -val* var629 /* : String */; -char* var630 /* : NativeString */; -long var631 /* : Int */; -val* var632 /* : FlatString */; +val* var620 /* : String */; +val* var622 /* : NativeArray[String] */; +static val* varonce621; +static val* varonce623; +val* var624 /* : String */; +char* var625 /* : NativeString */; +val* var626 /* : FlatString */; +static val* varonce627; +val* var628 /* : String */; +char* var629 /* : NativeString */; +val* var630 /* : FlatString */; +val* var631 /* : String */; +val* var632 /* : String */; static val* varonce633; val* var634 /* : String */; char* var635 /* : NativeString */; -long var636 /* : Int */; -val* var637 /* : FlatString */; -val* var638 /* : Array[Object] */; -long var639 /* : Int */; -val* var640 /* : NativeArray[Object] */; +val* var636 /* : FlatString */; +val* var637 /* : String */; +val* var639 /* : String */; +static val* varonce640; val* var641 /* : String */; -static val* varonce642; -val* var643 /* : String */; -char* var644 /* : NativeString */; -long var645 /* : Int */; -val* var646 /* : FlatString */; -static val* varonce647; -val* var648 /* : String */; -char* var649 /* : NativeString */; -long var650 /* : Int */; -val* var651 /* : FlatString */; -val* var652 /* : Array[Object] */; -long var653 /* : Int */; -val* var654 /* : NativeArray[Object] */; +char* var642 /* : NativeString */; +val* var643 /* : FlatString */; +short int var644 /* : Bool */; +val* var645 /* : CodeWriter */; +val* var647 /* : CodeWriter */; +val* var649 /* : NativeArray[String] */; +static val* varonce648; +static val* varonce650; +val* var651 /* : String */; +char* var652 /* : NativeString */; +val* var653 /* : FlatString */; +static val* varonce654; val* var655 /* : String */; -val* var656 /* : String */; -static val* varonce657; +char* var656 /* : NativeString */; +val* var657 /* : FlatString */; val* var658 /* : String */; -char* var659 /* : NativeString */; -long var660 /* : Int */; -val* var661 /* : FlatString */; +val* var659 /* : CodeWriter */; +val* var661 /* : CodeWriter */; static val* varonce662; val* var663 /* : String */; char* var664 /* : NativeString */; -long var665 /* : Int */; -val* var666 /* : FlatString */; -val* var667 /* : Array[Object] */; -long var668 /* : Int */; -val* var669 /* : NativeArray[Object] */; +val* var665 /* : FlatString */; +val* var666 /* : CodeWriter */; +val* var668 /* : CodeWriter */; +static val* varonce669; val* var670 /* : String */; -static val* varonce671; -val* var672 /* : String */; -char* var673 /* : NativeString */; -long var674 /* : Int */; -val* var675 /* : FlatString */; -val* var676 /* : Array[Object] */; -long var677 /* : Int */; -val* var678 /* : NativeArray[Object] */; -val* var679 /* : String */; -static val* varonce680; -val* var681 /* : String */; -char* var682 /* : NativeString */; -long var683 /* : Int */; -val* var684 /* : FlatString */; -val* var685 /* : RuntimeVariable */; -val* var_res /* var res: RuntimeVariable */; -short int var686 /* : Bool */; -static val* varonce688; -val* var689 /* : String */; -char* var690 /* : NativeString */; -long var691 /* : Int */; +char* var671 /* : NativeString */; +val* var672 /* : FlatString */; +val* var673 /* : CodeWriter */; +val* var675 /* : CodeWriter */; +static val* varonce676; +val* var677 /* : String */; +char* var678 /* : NativeString */; +val* var679 /* : FlatString */; +val* var680 /* : CodeWriter */; +val* var682 /* : CodeWriter */; +static val* varonce683; +val* var684 /* : String */; +char* var685 /* : NativeString */; +val* var686 /* : FlatString */; +val* var688 /* : NativeArray[String] */; +static val* varonce687; +static val* varonce689; +val* var690 /* : String */; +char* var691 /* : NativeString */; val* var692 /* : FlatString */; val* var693 /* : String */; +val* var695 /* : NativeArray[String] */; static val* varonce694; -val* var695 /* : String */; -char* var696 /* : NativeString */; -long var697 /* : Int */; -val* var698 /* : FlatString */; -val* var699 /* : Array[Object] */; -long var700 /* : Int */; -val* var701 /* : NativeArray[Object] */; -val* var702 /* : String */; -static val* varonce703; +static val* varonce696; +val* var697 /* : String */; +char* var698 /* : NativeString */; +val* var699 /* : FlatString */; +static val* varonce700; +val* var701 /* : String */; +char* var702 /* : NativeString */; +val* var703 /* : FlatString */; val* var704 /* : String */; -char* var705 /* : NativeString */; -long var706 /* : Int */; -val* var707 /* : FlatString */; -val* var708 /* : Array[Object] */; -long var709 /* : Int */; -val* var710 /* : NativeArray[Object] */; -val* var711 /* : String */; +val* var705 /* : String */; +val* var707 /* : NativeArray[String] */; +static val* varonce706; +static val* varonce708; +val* var709 /* : String */; +char* var710 /* : NativeString */; +val* var711 /* : FlatString */; static val* varonce712; val* var713 /* : String */; char* var714 /* : NativeString */; -long var715 /* : Int */; -val* var716 /* : FlatString */; -static val* varonce717; -val* var718 /* : String */; -char* var719 /* : NativeString */; -long var720 /* : Int */; -val* var721 /* : FlatString */; -val* var722 /* : Array[Object] */; -long var723 /* : Int */; -val* var724 /* : NativeArray[Object] */; +val* var715 /* : FlatString */; +val* var716 /* : String */; +val* var717 /* : String */; +val* var719 /* : NativeArray[String] */; +static val* varonce718; +static val* varonce720; +val* var721 /* : String */; +char* var722 /* : NativeString */; +val* var723 /* : FlatString */; +static val* varonce724; val* var725 /* : String */; -static val* varonce726; -val* var727 /* : String */; -char* var728 /* : NativeString */; -long var729 /* : Int */; -val* var730 /* : FlatString */; +char* var726 /* : NativeString */; +val* var727 /* : FlatString */; +val* var728 /* : String */; +val* var729 /* : String */; +static val* varonce730; val* var731 /* : String */; -static val* varonce732; -val* var733 /* : String */; -char* var734 /* : NativeString */; -long var735 /* : Int */; -val* var736 /* : FlatString */; -static val* varonce737; -val* var738 /* : String */; -char* var739 /* : NativeString */; -long var740 /* : Int */; +char* var732 /* : NativeString */; +val* var733 /* : FlatString */; +val* var734 /* : String */; +val* var_res735 /* var res: String */; +val* var737 /* : NativeArray[String] */; +static val* varonce736; +static val* varonce738; +val* var739 /* : String */; +char* var740 /* : NativeString */; val* var741 /* : FlatString */; -val* var742 /* : Array[Object] */; -long var743 /* : Int */; -val* var744 /* : NativeArray[Object] */; -val* var745 /* : String */; +static val* varonce742; +val* var743 /* : String */; +char* var744 /* : NativeString */; +val* var745 /* : FlatString */; static val* varonce746; val* var747 /* : String */; char* var748 /* : NativeString */; -long var749 /* : Int */; -val* var750 /* : FlatString */; -static val* varonce751; -val* var752 /* : String */; -char* var753 /* : NativeString */; -long var754 /* : Int */; -val* var755 /* : FlatString */; -val* var756 /* : Array[Object] */; -long var757 /* : Int */; -val* var758 /* : NativeArray[Object] */; -val* var759 /* : String */; -static val* varonce760; -val* var761 /* : String */; -char* var762 /* : NativeString */; -long var763 /* : Int */; -val* var764 /* : FlatString */; -val* var765 /* : String */; +val* var749 /* : FlatString */; +val* var750 /* : String */; +val* var751 /* : Array[MType] */; +val* var752 /* : nullable Object */; +val* var_mtype_elt /* var mtype_elt: MType */; +val* var754 /* : NativeArray[String] */; +static val* varonce753; +static val* varonce755; +val* var756 /* : String */; +char* var757 /* : NativeString */; +val* var758 /* : FlatString */; +static val* varonce759; +val* var760 /* : String */; +char* var761 /* : NativeString */; +val* var762 /* : FlatString */; +static val* varonce763; +val* var764 /* : String */; +char* var765 /* : NativeString */; +val* var766 /* : FlatString */; val* var767 /* : String */; -static val* varonce768; -val* var769 /* : String */; -char* var770 /* : NativeString */; -long var771 /* : Int */; -val* var772 /* : FlatString */; -short int var773 /* : Bool */; -val* var774 /* : CodeWriter */; -val* var776 /* : CodeWriter */; -static val* varonce777; -val* var778 /* : String */; -char* var779 /* : NativeString */; -long var780 /* : Int */; +val* var768 /* : String */; +val* var770 /* : NativeArray[String] */; +static val* varonce769; +static val* varonce771; +val* var772 /* : String */; +char* var773 /* : NativeString */; +val* var774 /* : FlatString */; +val* var775 /* : String */; +val* var777 /* : NativeArray[String] */; +static val* varonce776; +static val* varonce778; +val* var779 /* : String */; +char* var780 /* : NativeString */; val* var781 /* : FlatString */; static val* varonce782; val* var783 /* : String */; char* var784 /* : NativeString */; -long var785 /* : Int */; -val* var786 /* : FlatString */; -val* var787 /* : Array[Object] */; -long var788 /* : Int */; -val* var789 /* : NativeArray[Object] */; +val* var785 /* : FlatString */; +val* var786 /* : String */; +val* var788 /* : NativeArray[String] */; +static val* varonce787; +static val* varonce789; val* var790 /* : String */; -val* var791 /* : CodeWriter */; -val* var793 /* : CodeWriter */; +char* var791 /* : NativeString */; +val* var792 /* : FlatString */; +val* var793 /* : String */; +val* var795 /* : NativeArray[String] */; static val* varonce794; -val* var795 /* : String */; -char* var796 /* : NativeString */; -long var797 /* : Int */; -val* var798 /* : FlatString */; -val* var799 /* : CodeWriter */; -val* var801 /* : CodeWriter */; -static val* varonce802; -val* var803 /* : String */; -char* var804 /* : NativeString */; -long var805 /* : Int */; -val* var806 /* : FlatString */; -val* var807 /* : CodeWriter */; -val* var809 /* : CodeWriter */; -static val* varonce810; -val* var811 /* : String */; -char* var812 /* : NativeString */; -long var813 /* : Int */; -val* var814 /* : FlatString */; -val* var815 /* : CodeWriter */; -val* var817 /* : CodeWriter */; -static val* varonce818; -val* var819 /* : String */; -char* var820 /* : NativeString */; -long var821 /* : Int */; -val* var822 /* : FlatString */; -static val* varonce823; -val* var824 /* : String */; -char* var825 /* : NativeString */; -long var826 /* : Int */; -val* var827 /* : FlatString */; -val* var828 /* : Array[Object] */; -long var829 /* : Int */; -val* var830 /* : NativeArray[Object] */; +static val* varonce796; +val* var797 /* : String */; +char* var798 /* : NativeString */; +val* var799 /* : FlatString */; +static val* varonce800; +val* var801 /* : String */; +char* var802 /* : NativeString */; +val* var803 /* : FlatString */; +val* var804 /* : String */; +static val* varonce805; +val* var806 /* : String */; +char* var807 /* : NativeString */; +val* var808 /* : FlatString */; +short int var809 /* : Bool */; +val* var810 /* : MClass */; +val* var812 /* : MClass */; +val* var813 /* : MClassKind */; +val* var815 /* : MClassKind */; +val* var816 /* : Sys */; +val* var817 /* : MClassKind */; +short int var818 /* : Bool */; +short int var820 /* : Bool */; +short int var822 /* : Bool */; +short int var_823 /* var : Bool */; +val* var824 /* : MClass */; +val* var826 /* : MClass */; +val* var827 /* : String */; +val* var829 /* : String */; +static val* varonce830; val* var831 /* : String */; -val* var832 /* : String */; -static val* varonce833; -val* var834 /* : String */; -char* var835 /* : NativeString */; -long var836 /* : Int */; -val* var837 /* : FlatString */; -static val* varonce838; -val* var839 /* : String */; -char* var840 /* : NativeString */; -long var841 /* : Int */; -val* var842 /* : FlatString */; -val* var843 /* : Array[Object] */; -long var844 /* : Int */; -val* var845 /* : NativeArray[Object] */; -val* var846 /* : String */; -static val* varonce847; +char* var832 /* : NativeString */; +val* var833 /* : FlatString */; +short int var834 /* : Bool */; +short int var836 /* : Bool */; +short int var837 /* : Bool */; +val* var838 /* : MModule */; +val* var840 /* : MModule */; +val* var841 /* : MClassType */; +val* var_pointer_type /* var pointer_type: MClassType */; +val* var843 /* : NativeArray[String] */; +static val* varonce842; +static val* varonce844; +val* var845 /* : String */; +char* var846 /* : NativeString */; +val* var847 /* : FlatString */; val* var848 /* : String */; -char* var849 /* : NativeString */; -long var850 /* : Int */; -val* var851 /* : FlatString */; -static val* varonce852; -val* var853 /* : String */; -char* var854 /* : NativeString */; -long var855 /* : Int */; -val* var856 /* : FlatString */; -val* var857 /* : Array[Object] */; -long var858 /* : Int */; -val* var859 /* : NativeArray[Object] */; +val* var850 /* : NativeArray[String] */; +static val* varonce849; +static val* varonce851; +val* var852 /* : String */; +char* var853 /* : NativeString */; +val* var854 /* : FlatString */; +static val* varonce855; +val* var856 /* : String */; +char* var857 /* : NativeString */; +val* var858 /* : FlatString */; +val* var859 /* : String */; val* var860 /* : String */; -val* var861 /* : String */; -static val* varonce862; -val* var863 /* : String */; -char* var864 /* : NativeString */; -long var865 /* : Int */; +val* var862 /* : NativeArray[String] */; +static val* varonce861; +static val* varonce863; +val* var864 /* : String */; +char* var865 /* : NativeString */; val* var866 /* : FlatString */; static val* varonce867; val* var868 /* : String */; char* var869 /* : NativeString */; -long var870 /* : Int */; -val* var871 /* : FlatString */; -val* var872 /* : Array[Object] */; -long var873 /* : Int */; -val* var874 /* : NativeArray[Object] */; -val* var875 /* : String */; -static val* varonce876; -val* var877 /* : String */; -char* var878 /* : NativeString */; -long var879 /* : Int */; -val* var880 /* : FlatString */; -val* var881 /* : String */; -val* var_res882 /* var res: String */; -static val* varonce883; +val* var870 /* : FlatString */; +val* var871 /* : String */; +val* var872 /* : String */; +val* var874 /* : NativeArray[String] */; +static val* varonce873; +static val* varonce875; +val* var876 /* : String */; +char* var877 /* : NativeString */; +val* var878 /* : FlatString */; +static val* varonce879; +val* var880 /* : String */; +char* var881 /* : NativeString */; +val* var882 /* : FlatString */; +val* var883 /* : String */; val* var884 /* : String */; -char* var885 /* : NativeString */; -long var886 /* : Int */; -val* var887 /* : FlatString */; -static val* varonce888; -val* var889 /* : String */; -char* var890 /* : NativeString */; -long var891 /* : Int */; -val* var892 /* : FlatString */; +val* var886 /* : NativeArray[String] */; +static val* varonce885; +static val* varonce887; +val* var888 /* : String */; +char* var889 /* : NativeString */; +val* var890 /* : FlatString */; +val* var891 /* : String */; +val* var892 /* : String */; static val* varonce893; val* var894 /* : String */; char* var895 /* : NativeString */; -long var896 /* : Int */; -val* var897 /* : FlatString */; -val* var898 /* : Array[Object] */; -long var899 /* : Int */; -val* var900 /* : NativeArray[Object] */; -val* var901 /* : String */; -val* var902 /* : Array[MType] */; -val* var903 /* : nullable Object */; -val* var_mtype_elt /* var mtype_elt: MType */; -static val* varonce904; -val* var905 /* : String */; -char* var906 /* : NativeString */; -long var907 /* : Int */; -val* var908 /* : FlatString */; -static val* varonce909; +val* var896 /* : FlatString */; +val* var897 /* : RuntimeVariable */; +val* var_res898 /* var res: RuntimeVariable */; +val* var901 /* : NativeArray[String] */; +static val* varonce900; +static val* varonce902; +val* var903 /* : String */; +char* var904 /* : NativeString */; +val* var905 /* : FlatString */; +static val* varonce906; +val* var907 /* : String */; +char* var908 /* : NativeString */; +val* var909 /* : FlatString */; val* var910 /* : String */; -char* var911 /* : NativeString */; -long var912 /* : Int */; -val* var913 /* : FlatString */; -val* var914 /* : String */; +val* var911 /* : String */; +val* var912 /* : String */; +val* var914 /* : NativeArray[String] */; +static val* varonce913; static val* varonce915; val* var916 /* : String */; char* var917 /* : NativeString */; -long var918 /* : Int */; -val* var919 /* : FlatString */; -val* var920 /* : Array[Object] */; -long var921 /* : Int */; -val* var922 /* : NativeArray[Object] */; +val* var918 /* : FlatString */; +val* var919 /* : String */; +val* var921 /* : NativeArray[String] */; +static val* varonce920; +static val* varonce922; val* var923 /* : String */; -static val* varonce924; -val* var925 /* : String */; -char* var926 /* : NativeString */; -long var927 /* : Int */; -val* var928 /* : FlatString */; -val* var929 /* : Array[Object] */; -long var930 /* : Int */; -val* var931 /* : NativeArray[Object] */; -val* var932 /* : String */; -static val* varonce933; -val* var934 /* : String */; -char* var935 /* : NativeString */; -long var936 /* : Int */; +char* var924 /* : NativeString */; +val* var925 /* : FlatString */; +static val* varonce926; +val* var927 /* : String */; +char* var928 /* : NativeString */; +val* var929 /* : FlatString */; +val* var930 /* : String */; +val* var931 /* : String */; +val* var933 /* : NativeArray[String] */; +static val* varonce932; +static val* varonce934; +val* var935 /* : String */; +char* var936 /* : NativeString */; val* var937 /* : FlatString */; static val* varonce938; val* var939 /* : String */; char* var940 /* : NativeString */; -long var941 /* : Int */; -val* var942 /* : FlatString */; -val* var943 /* : Array[Object] */; -long var944 /* : Int */; -val* var945 /* : NativeArray[Object] */; +val* var941 /* : FlatString */; +static val* varonce942; +val* var943 /* : String */; +char* var944 /* : NativeString */; +val* var945 /* : FlatString */; val* var946 /* : String */; -static val* varonce947; +val* var947 /* : String */; val* var948 /* : String */; -char* var949 /* : NativeString */; -long var950 /* : Int */; -val* var951 /* : FlatString */; -val* var952 /* : Array[Object] */; -long var953 /* : Int */; -val* var954 /* : NativeArray[Object] */; -val* var955 /* : String */; -static val* varonce956; -val* var957 /* : String */; -char* var958 /* : NativeString */; -long var959 /* : Int */; -val* var960 /* : FlatString */; +val* var950 /* : NativeArray[String] */; +static val* varonce949; +static val* varonce951; +val* var952 /* : String */; +char* var953 /* : NativeString */; +val* var954 /* : FlatString */; +static val* varonce955; +val* var956 /* : String */; +char* var957 /* : NativeString */; +val* var958 /* : FlatString */; +val* var959 /* : String */; +val* var960 /* : String */; static val* varonce961; val* var962 /* : String */; char* var963 /* : NativeString */; -long var964 /* : Int */; -val* var965 /* : FlatString */; -val* var966 /* : Array[Object] */; -long var967 /* : Int */; -val* var968 /* : NativeArray[Object] */; -val* var969 /* : String */; -static val* varonce970; +val* var964 /* : FlatString */; +val* var966 /* : NativeArray[String] */; +static val* varonce965; +static val* varonce967; +val* var968 /* : String */; +char* var969 /* : NativeString */; +val* var970 /* : FlatString */; val* var971 /* : String */; -char* var972 /* : NativeString */; -long var973 /* : Int */; -val* var974 /* : FlatString */; -short int var975 /* : Bool */; -val* var976 /* : MClass */; -val* var978 /* : MClass */; -val* var979 /* : MClassKind */; -val* var981 /* : MClassKind */; -val* var982 /* : MClassKind */; -short int var983 /* : Bool */; -short int var985 /* : Bool */; -short int var987 /* : Bool */; -short int var_988 /* var : Bool */; -val* var989 /* : MClass */; -val* var991 /* : MClass */; -val* var992 /* : String */; +val* var973 /* : NativeArray[String] */; +static val* varonce972; +static val* varonce974; +val* var975 /* : String */; +char* var976 /* : NativeString */; +val* var977 /* : FlatString */; +static val* varonce978; +val* var979 /* : String */; +char* var980 /* : NativeString */; +val* var981 /* : FlatString */; +val* var982 /* : String */; +val* var983 /* : String */; +val* var985 /* : NativeArray[String] */; +static val* varonce984; +static val* varonce986; +val* var987 /* : String */; +char* var988 /* : NativeString */; +val* var989 /* : FlatString */; +static val* varonce990; +val* var991 /* : String */; +char* var992 /* : NativeString */; +val* var993 /* : FlatString */; val* var994 /* : String */; -static val* varonce995; -val* var996 /* : String */; -char* var997 /* : NativeString */; -long var998 /* : Int */; -val* var999 /* : FlatString */; -short int var1000 /* : Bool */; -short int var1002 /* : Bool */; -short int var1003 /* : Bool */; -val* var1004 /* : MModule */; -val* var1006 /* : MModule */; -val* var1007 /* : MClassType */; -val* var_pointer_type /* var pointer_type: MClassType */; +val* var995 /* : String */; +val* var997 /* : NativeArray[String] */; +static val* varonce996; +static val* varonce998; +val* var999 /* : String */; +char* var1000 /* : NativeString */; +val* var1001 /* : FlatString */; +static val* varonce1002; +val* var1003 /* : String */; +char* var1004 /* : NativeString */; +val* var1005 /* : FlatString */; +val* var1006 /* : String */; +val* var1007 /* : String */; +val* var1009 /* : NativeArray[String] */; static val* varonce1008; -val* var1009 /* : String */; -char* var1010 /* : NativeString */; -long var1011 /* : Int */; -val* var1012 /* : FlatString */; -val* var1013 /* : Array[Object] */; -long var1014 /* : Int */; -val* var1015 /* : NativeArray[Object] */; -val* var1016 /* : String */; +static val* varonce1010; +val* var1011 /* : String */; +char* var1012 /* : NativeString */; +val* var1013 /* : FlatString */; +val* var1014 /* : String */; +val* var1015 /* : String */; +static val* varonce1016; val* var1017 /* : String */; -static val* varonce1018; -val* var1019 /* : String */; -char* var1020 /* : NativeString */; -long var1021 /* : Int */; -val* var1022 /* : FlatString */; -static val* varonce1023; -val* var1024 /* : String */; -char* var1025 /* : NativeString */; -long var1026 /* : Int */; -val* var1027 /* : FlatString */; -val* var1028 /* : Array[Object] */; -long var1029 /* : Int */; -val* var1030 /* : NativeArray[Object] */; -val* var1031 /* : String */; -static val* varonce1032; -val* var1033 /* : String */; -char* var1034 /* : NativeString */; -long var1035 /* : Int */; -val* var1036 /* : FlatString */; +char* var1018 /* : NativeString */; +val* var1019 /* : FlatString */; +val* var1020 /* : RuntimeVariable */; +val* var_res1021 /* var res: RuntimeVariable */; +val* var1023 /* : Map[MClass, Array[nullable MProperty]] */; +val* var1025 /* : Map[MClass, Array[nullable MProperty]] */; +val* var1026 /* : nullable Object */; +val* var_attrs /* var attrs: nullable Array[nullable MProperty] */; +short int var1027 /* : Bool */; +short int var1028 /* : Bool */; +val* var1030 /* : NativeArray[String] */; +static val* varonce1029; +static val* varonce1031; +val* var1032 /* : String */; +char* var1033 /* : NativeString */; +val* var1034 /* : FlatString */; +val* var1035 /* : String */; +val* var1036 /* : String */; +val* var1038 /* : NativeArray[String] */; static val* varonce1037; -val* var1038 /* : String */; -char* var1039 /* : NativeString */; -long var1040 /* : Int */; -val* var1041 /* : FlatString */; -val* var1042 /* : Array[Object] */; -long var1043 /* : Int */; -val* var1044 /* : NativeArray[Object] */; -val* var1045 /* : String */; -val* var1046 /* : String */; -static val* varonce1047; -val* var1048 /* : String */; -char* var1049 /* : NativeString */; +static val* varonce1039; +val* var1040 /* : String */; +char* var1041 /* : NativeString */; +val* var1042 /* : FlatString */; +static val* varonce1043; +val* var1044 /* : String */; +char* var1045 /* : NativeString */; +val* var1046 /* : FlatString */; +val* var1047 /* : String */; +long var1048 /* : Int */; long var1050 /* : Int */; -val* var1051 /* : FlatString */; -static val* varonce1052; -val* var1053 /* : String */; -char* var1054 /* : NativeString */; -long var1055 /* : Int */; -val* var1056 /* : FlatString */; -val* var1057 /* : Array[Object] */; -long var1058 /* : Int */; -val* var1059 /* : NativeArray[Object] */; -val* var1060 /* : String */; -static val* varonce1061; -val* var1062 /* : String */; -char* var1063 /* : NativeString */; -long var1064 /* : Int */; +val* var1051 /* : String */; +val* var1052 /* : String */; +val* var1054 /* : NativeArray[String] */; +static val* varonce1053; +static val* varonce1055; +val* var1056 /* : String */; +char* var1057 /* : NativeString */; +val* var1058 /* : FlatString */; +val* var1059 /* : String */; +val* var1061 /* : NativeArray[String] */; +static val* varonce1060; +static val* varonce1062; +val* var1063 /* : String */; +char* var1064 /* : NativeString */; val* var1065 /* : FlatString */; -val* var1066 /* : Array[Object] */; -long var1067 /* : Int */; -val* var1068 /* : NativeArray[Object] */; -val* var1069 /* : String */; -static val* varonce1070; +static val* varonce1066; +val* var1067 /* : String */; +char* var1068 /* : NativeString */; +val* var1069 /* : FlatString */; +val* var1070 /* : String */; val* var1071 /* : String */; -char* var1072 /* : NativeString */; -long var1073 /* : Int */; -val* var1074 /* : FlatString */; -val* var1075 /* : RuntimeVariable */; -val* var_res1076 /* var res: RuntimeVariable */; -short int var1077 /* : Bool */; +short int var1072 /* : Bool */; +short int var1073 /* : Bool */; +short int var1075 /* : Bool */; +short int var1076 /* : Bool */; +val* var1078 /* : NativeArray[String] */; +static val* varonce1077; static val* varonce1079; val* var1080 /* : String */; char* var1081 /* : NativeString */; -long var1082 /* : Int */; -val* var1083 /* : FlatString */; +val* var1082 /* : FlatString */; +static val* varonce1083; val* var1084 /* : String */; -static val* varonce1085; -val* var1086 /* : String */; -char* var1087 /* : NativeString */; -long var1088 /* : Int */; -val* var1089 /* : FlatString */; -val* var1090 /* : Array[Object] */; -long var1091 /* : Int */; -val* var1092 /* : NativeArray[Object] */; -val* var1093 /* : String */; -static val* varonce1094; -val* var1095 /* : String */; -char* var1096 /* : NativeString */; -long var1097 /* : Int */; -val* var1098 /* : FlatString */; -val* var1099 /* : Array[Object] */; -long var1100 /* : Int */; -val* var1101 /* : NativeArray[Object] */; -val* var1102 /* : String */; -static val* varonce1103; -val* var1104 /* : String */; -char* var1105 /* : NativeString */; -long var1106 /* : Int */; -val* var1107 /* : FlatString */; -static val* varonce1108; -val* var1109 /* : String */; -char* var1110 /* : NativeString */; -long var1111 /* : Int */; -val* var1112 /* : FlatString */; -val* var1113 /* : Array[Object] */; -long var1114 /* : Int */; -val* var1115 /* : NativeArray[Object] */; -val* var1116 /* : String */; -static val* varonce1117; -val* var1118 /* : String */; -char* var1119 /* : NativeString */; -long var1120 /* : Int */; -val* var1121 /* : FlatString */; -val* var1122 /* : String */; -static val* varonce1123; -val* var1124 /* : String */; -char* var1125 /* : NativeString */; -long var1126 /* : Int */; -val* var1127 /* : FlatString */; -static val* varonce1128; -val* var1129 /* : String */; -char* var1130 /* : NativeString */; -long var1131 /* : Int */; -val* var1132 /* : FlatString */; -val* var1133 /* : Array[Object] */; -long var1134 /* : Int */; -val* var1135 /* : NativeArray[Object] */; -val* var1136 /* : String */; -static val* varonce1137; -val* var1138 /* : String */; -char* var1139 /* : NativeString */; -long var1140 /* : Int */; -val* var1141 /* : FlatString */; -static val* varonce1142; -val* var1143 /* : String */; -char* var1144 /* : NativeString */; -long var1145 /* : Int */; -val* var1146 /* : FlatString */; -val* var1147 /* : Array[Object] */; -long var1148 /* : Int */; -val* var1149 /* : NativeArray[Object] */; -val* var1150 /* : String */; -static val* varonce1151; -val* var1152 /* : String */; -char* var1153 /* : NativeString */; -long var1154 /* : Int */; -val* var1155 /* : FlatString */; -static val* varonce1156; -val* var1157 /* : String */; -char* var1158 /* : NativeString */; -long var1159 /* : Int */; -val* var1160 /* : FlatString */; -val* var1161 /* : Array[Object] */; -long var1162 /* : Int */; -val* var1163 /* : NativeArray[Object] */; -val* var1164 /* : String */; -val* var1165 /* : String */; -static val* varonce1166; -val* var1167 /* : String */; -char* var1168 /* : NativeString */; -long var1169 /* : Int */; -val* var1170 /* : FlatString */; -static val* varonce1171; -val* var1172 /* : String */; -char* var1173 /* : NativeString */; -long var1174 /* : Int */; -val* var1175 /* : FlatString */; -val* var1176 /* : Array[Object] */; -long var1177 /* : Int */; -val* var1178 /* : NativeArray[Object] */; -val* var1179 /* : String */; -static val* varonce1180; -val* var1181 /* : String */; -char* var1182 /* : NativeString */; -long var1183 /* : Int */; -val* var1184 /* : FlatString */; -static val* varonce1185; -val* var1186 /* : String */; -char* var1187 /* : NativeString */; -long var1188 /* : Int */; -val* var1189 /* : FlatString */; -val* var1190 /* : Array[Object] */; -long var1191 /* : Int */; -val* var1192 /* : NativeArray[Object] */; -val* var1193 /* : String */; -val* var1194 /* : String */; -static val* varonce1195; -val* var1196 /* : String */; -char* var1197 /* : NativeString */; -long var1198 /* : Int */; -val* var1199 /* : FlatString */; -static val* varonce1200; -val* var1201 /* : String */; -char* var1202 /* : NativeString */; -long var1203 /* : Int */; -val* var1204 /* : FlatString */; -val* var1205 /* : Array[Object] */; -long var1206 /* : Int */; -val* var1207 /* : NativeArray[Object] */; -val* var1208 /* : String */; -static val* varonce1209; -val* var1210 /* : String */; -char* var1211 /* : NativeString */; -long var1212 /* : Int */; -val* var1213 /* : FlatString */; -val* var1214 /* : Array[Object] */; -long var1215 /* : Int */; -val* var1216 /* : NativeArray[Object] */; -val* var1217 /* : String */; -static val* varonce1218; -val* var1219 /* : String */; -char* var1220 /* : NativeString */; -long var1221 /* : Int */; -val* var1222 /* : FlatString */; -val* var1223 /* : RuntimeVariable */; -val* var_res1224 /* var res: RuntimeVariable */; -short int var1225 /* : Bool */; -static val* varonce1227; -val* var1228 /* : String */; -char* var1229 /* : NativeString */; -long var1230 /* : Int */; -val* var1231 /* : FlatString */; -long var1232 /* : Int */; -long var1234 /* : Int */; -static val* varonce1235; -val* var1236 /* : String */; -char* var1237 /* : NativeString */; -long var1238 /* : Int */; -val* var1239 /* : FlatString */; -val* var1240 /* : Array[Object] */; -long var1241 /* : Int */; -val* var1242 /* : NativeArray[Object] */; -val* var1243 /* : Object */; -val* var1244 /* : String */; -static val* varonce1245; -val* var1246 /* : String */; -char* var1247 /* : NativeString */; -long var1248 /* : Int */; -val* var1249 /* : FlatString */; -val* var1250 /* : Array[Object] */; -long var1251 /* : Int */; -val* var1252 /* : NativeArray[Object] */; -val* var1253 /* : String */; -static val* varonce1254; -val* var1255 /* : String */; -char* var1256 /* : NativeString */; -long var1257 /* : Int */; -val* var1258 /* : FlatString */; -static val* varonce1259; -val* var1260 /* : String */; -char* var1261 /* : NativeString */; -long var1262 /* : Int */; -val* var1263 /* : FlatString */; -val* var1264 /* : Array[Object] */; -long var1265 /* : Int */; -val* var1266 /* : NativeArray[Object] */; -val* var1267 /* : String */; -static val* varonce1268; -val* var1269 /* : String */; -char* var1270 /* : NativeString */; -long var1271 /* : Int */; -val* var1272 /* : FlatString */; -static val* varonce1273; -val* var1274 /* : String */; -char* var1275 /* : NativeString */; -long var1276 /* : Int */; -val* var1277 /* : FlatString */; -val* var1278 /* : Array[Object] */; -long var1279 /* : Int */; -val* var1280 /* : NativeArray[Object] */; -val* var1281 /* : String */; -static val* varonce1282; -val* var1283 /* : String */; -char* var1284 /* : NativeString */; -long var1285 /* : Int */; -val* var1286 /* : FlatString */; +char* var1085 /* : NativeString */; +val* var1086 /* : FlatString */; +val* var1087 /* : String */; +val* var1088 /* : String */; +static val* varonce1089; +val* var1090 /* : String */; +char* var1091 /* : NativeString */; +val* var1092 /* : FlatString */; var_mclass = p0; { { /* Inline model#MClass#intro (var_mclass) on */ var2 = var_mclass->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 423); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 460); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; @@ -3290,8 +3105,8 @@ RET_LABEL1:(void)0; var5 = var->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556); +fatal_exit(1); } var3 = var5; RET_LABEL4:(void)0; @@ -3303,3467 +3118,3360 @@ var6 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass); } var_c_name = var6; { -{ /* Inline separate_compiler#SeparateCompiler#method_tables (self) on */ -var9 = self->attrs[COLOR_nit__separate_compiler__SeparateCompiler___method_tables].val; /* _method_tables on */ +{ /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_tables (self) on */ +var9 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_tables].val; /* _class_tables on */ if (unlikely(var9 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 856); -show_backtrace(1); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 427); +fatal_exit(1); } var7 = var9; RET_LABEL8:(void)0; } } { -var10 = ((val* (*)(val* self, val* p0))(var7->class->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var7, var_mclass) /* [] on */; -} -var_vft = var10; -{ -{ /* Inline separate_compiler#SeparateCompiler#attr_tables (self) on */ -var13 = self->attrs[COLOR_nit__separate_compiler__SeparateCompiler___attr_tables].val; /* _attr_tables on */ -if (unlikely(var13 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 857); -show_backtrace(1); -} -var11 = var13; -RET_LABEL12:(void)0; -} -} -{ -var14 = ((val* (*)(val* self, val* p0))(var11->class->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var11, var_mclass) /* [] on */; -} -var_attrs = var14; -{ -{ /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_tables (self) on */ -var17 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_tables].val; /* _class_tables on */ -if (unlikely(var17 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 416); -show_backtrace(1); -} -var15 = var17; -RET_LABEL16:(void)0; -} -} -{ -var18 = ((val* (*)(val* self, val* p0))(var15->class->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var15, var_mclass) /* [] on */; +var10 = ((val*(*)(val* self, val* p0))((((long)var7&3)?class_info[((long)var7&3)]:var7->class)->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var7, var_mclass); /* [] on */ } -var_class_table = var18; +var_class_table = var10; { -var19 = nit___nit__SeparateErasureCompiler___nit__abstract_compiler__AbstractCompiler__new_visitor(self); +var11 = nit___nit__SeparateErasureCompiler___nit__abstract_compiler__AbstractCompiler__new_visitor(self); } -var_v = var19; +var_v = var11; { { /* Inline separate_compiler#SeparateCompiler#runtime_type_analysis (self) on */ -var22 = self->attrs[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on */ -var20 = var22; -RET_LABEL21:(void)0; +var14 = self->attrs[COLOR_nit__separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on */ +var12 = var14; +RET_LABEL13:(void)0; } } -var_rta = var20; -var23 = 0; -var_is_dead = var23; -var28 = !var_is_dead; -var_ = var28; -if (var28){ -var29 = NULL; +var_rta = var12; +var_is_dead = 0; +var19 = !var_is_dead; +var_ = var19; +if (var19){ if (var_rta == NULL) { -var30 = 0; /* is null */ +var20 = 0; /* is null */ } else { -var30 = 1; /* arg is null and recv is not */ +var20 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_rta,var29) on */ -var_other = var29; +{ /* Inline kernel#Object#!= (var_rta,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var33 = ((short int (*)(val* self, val* p0))(var_rta->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_rta, var_other) /* == on */; +var23 = ((short int(*)(val* self, val* p0))(var_rta->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_rta, var_other); /* == on */ } -var34 = !var33; -var31 = var34; -goto RET_LABEL32; -RET_LABEL32:(void)0; +var24 = !var23; +var21 = var24; +goto RET_LABEL22; +RET_LABEL22:(void)0; } -var30 = var31; +var20 = var21; } -var27 = var30; +var18 = var20; } else { -var27 = var_; +var18 = var_; } -var_35 = var27; -if (var27){ +var_25 = var18; +if (var18){ { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (var_rta) on */ -var38 = var_rta->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes].val; /* _live_classes on */ -if (unlikely(var38 == NULL)) { +var28 = var_rta->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes].val; /* _live_classes on */ +if (unlikely(var28 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 62); -show_backtrace(1); -} -var36 = var38; -RET_LABEL37:(void)0; +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 69); +fatal_exit(1); } +var26 = var28; +RET_LABEL27:(void)0; } -{ -var39 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var36, var_mclass); -} -var40 = !var39; -var26 = var40; -} else { -var26 = var_35; } -var_41 = var26; -if (var26){ { -var42 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); +var29 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var26, var_mclass); } -if (varonce) { -var43 = varonce; +var30 = !var29; +var17 = var30; } else { -var44 = "val*"; -var45 = 4; -var46 = standard___standard__NativeString___to_s_with_length(var44, var45); -var43 = var46; -varonce = var43; +var17 = var_25; } +var_31 = var17; +if (var17){ { -var47 = ((short int (*)(val* self, val* p0))(var42->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var42, var43) /* == on */; +var32 = nit__abstract_compiler___MClassType___MType__is_c_primitive(var_mtype); } -var25 = var47; +var33 = !var32; +var16 = var33; } else { -var25 = var_41; +var16 = var_31; } -var_48 = var25; -if (var25){ +var_34 = var16; +if (var16){ { { /* Inline model#MClass#name (var_mclass) on */ -var51 = var_mclass->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ -if (unlikely(var51 == NULL)) { +var37 = var_mclass->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ +if (unlikely(var37 == 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); } -var49 = var51; -RET_LABEL50:(void)0; +var35 = var37; +RET_LABEL36:(void)0; } } -if (varonce52) { -var53 = varonce52; +if (likely(varonce!=NULL)) { +var38 = varonce; } else { -var54 = "NativeArray"; -var55 = 11; -var56 = standard___standard__NativeString___to_s_with_length(var54, var55); -var53 = var56; -varonce52 = var53; +var39 = "NativeArray"; +var40 = standard___standard__NativeString___to_s_with_length(var39, 11l); +var38 = var40; +varonce = var38; } { -{ /* Inline kernel#Object#!= (var49,var53) on */ -var_other = var53; +{ /* Inline kernel#Object#!= (var35,var38) on */ +var_other = var38; { -var59 = ((short int (*)(val* self, val* p0))(var49->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var49, var_other) /* == on */; +var43 = ((short int(*)(val* self, val* p0))(var35->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var35, var_other); /* == on */ } -var60 = !var59; -var57 = var60; -goto RET_LABEL58; -RET_LABEL58:(void)0; +var44 = !var43; +var41 = var44; +goto RET_LABEL42; +RET_LABEL42:(void)0; } } -var24 = var57; +var15 = var41; } else { -var24 = var_48; +var15 = var_34; } -if (var24){ -var61 = 1; -var_is_dead = var61; +if (var15){ +var_is_dead = 1; } else { } -if (varonce62) { -var63 = varonce62; +if (unlikely(varonce45==NULL)) { +var46 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce47!=NULL)) { +var48 = varonce47; } else { -var64 = "/* runtime class "; -var65 = 17; -var66 = standard___standard__NativeString___to_s_with_length(var64, var65); -var63 = var66; -varonce62 = var63; +var49 = "/* runtime class "; +var50 = standard___standard__NativeString___to_s_with_length(var49, 17l); +var48 = var50; +varonce47 = var48; } -if (varonce67) { -var68 = varonce67; +((struct instance_standard__NativeArray*)var46)->values[0]=var48; +if (likely(varonce51!=NULL)) { +var52 = varonce51; } else { -var69 = " */"; -var70 = 3; -var71 = standard___standard__NativeString___to_s_with_length(var69, var70); -var68 = var71; -varonce67 = var68; -} -var72 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var72 = array_instance Array[Object] */ -var73 = 3; -var74 = NEW_standard__NativeArray(var73, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var74)->values[0] = (val*) var63; -((struct instance_standard__NativeArray*)var74)->values[1] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var74)->values[2] = (val*) var68; -{ -((void (*)(val* self, val* p0, long p1))(var72->class->vft[COLOR_standard__array__Array__with_native]))(var72, var74, var73) /* with_native on */; +var53 = " */"; +var54 = standard___standard__NativeString___to_s_with_length(var53, 3l); +var52 = var54; +varonce51 = var52; } +((struct instance_standard__NativeArray*)var46)->values[2]=var52; +} else { +var46 = varonce45; +varonce45 = NULL; } +((struct instance_standard__NativeArray*)var46)->values[1]=var_c_name; { -var75 = ((val* (*)(val* self))(var72->class->vft[COLOR_standard__string__Object__to_s]))(var72) /* to_s on */; +var55 = ((val*(*)(val* self))(var46->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var46); /* native_to_s on */ } +varonce45 = var46; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var75); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var55); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -if (varonce76) { -var77 = varonce76; +if (unlikely(varonce56==NULL)) { +var57 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce58!=NULL)) { +var59 = varonce58; } else { -var78 = "class_"; -var79 = 6; -var80 = standard___standard__NativeString___to_s_with_length(var78, var79); -var77 = var80; -varonce76 = var77; -} -var81 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var81 = array_instance Array[Object] */ -var82 = 2; -var83 = NEW_standard__NativeArray(var82, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var83)->values[0] = (val*) var77; -((struct instance_standard__NativeArray*)var83)->values[1] = (val*) var_c_name; -{ -((void (*)(val* self, val* p0, long p1))(var81->class->vft[COLOR_standard__array__Array__with_native]))(var81, var83, var82) /* with_native on */; +var60 = "class_"; +var61 = standard___standard__NativeString___to_s_with_length(var60, 6l); +var59 = var61; +varonce58 = var59; } +((struct instance_standard__NativeArray*)var57)->values[0]=var59; +} else { +var57 = varonce56; +varonce56 = NULL; } +((struct instance_standard__NativeArray*)var57)->values[1]=var_c_name; { -var84 = ((val* (*)(val* self))(var81->class->vft[COLOR_standard__string__Object__to_s]))(var81) /* to_s on */; +var62 = ((val*(*)(val* self))(var57->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var57); /* native_to_s on */ } -if (varonce85) { -var86 = varonce85; +varonce56 = var57; +if (unlikely(varonce63==NULL)) { +var64 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce65!=NULL)) { +var66 = varonce65; } else { -var87 = "extern const struct class class_"; -var88 = 32; -var89 = standard___standard__NativeString___to_s_with_length(var87, var88); -var86 = var89; -varonce85 = var86; +var67 = "extern const struct class class_"; +var68 = standard___standard__NativeString___to_s_with_length(var67, 32l); +var66 = var68; +varonce65 = var66; } -if (varonce90) { -var91 = varonce90; +((struct instance_standard__NativeArray*)var64)->values[0]=var66; +if (likely(varonce69!=NULL)) { +var70 = varonce69; } else { -var92 = ";"; -var93 = 1; -var94 = standard___standard__NativeString___to_s_with_length(var92, var93); -var91 = var94; -varonce90 = var91; -} -var95 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var95 = array_instance Array[Object] */ -var96 = 3; -var97 = NEW_standard__NativeArray(var96, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var97)->values[0] = (val*) var86; -((struct instance_standard__NativeArray*)var97)->values[1] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var97)->values[2] = (val*) var91; -{ -((void (*)(val* self, val* p0, long p1))(var95->class->vft[COLOR_standard__array__Array__with_native]))(var95, var97, var96) /* with_native on */; +var71 = ";"; +var72 = standard___standard__NativeString___to_s_with_length(var71, 1l); +var70 = var72; +varonce69 = var70; } +((struct instance_standard__NativeArray*)var64)->values[2]=var70; +} else { +var64 = varonce63; +varonce63 = NULL; } +((struct instance_standard__NativeArray*)var64)->values[1]=var_c_name; { -var98 = ((val* (*)(val* self))(var95->class->vft[COLOR_standard__string__Object__to_s]))(var95) /* to_s on */; +var73 = ((val*(*)(val* self))(var64->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var64); /* native_to_s on */ } +varonce63 = var64; { -nit___nit__AbstractCompiler___provide_declaration(self, var84, var98); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on */ +nit___nit__AbstractCompiler___provide_declaration(self, var62, var73); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on */ } -if (varonce99) { -var100 = varonce99; +if (unlikely(varonce74==NULL)) { +var75 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce76!=NULL)) { +var77 = varonce76; } else { -var101 = "extern const struct type_table type_table_"; -var102 = 42; -var103 = standard___standard__NativeString___to_s_with_length(var101, var102); -var100 = var103; -varonce99 = var100; +var78 = "extern const struct type_table type_table_"; +var79 = standard___standard__NativeString___to_s_with_length(var78, 42l); +var77 = var79; +varonce76 = var77; } -if (varonce104) { -var105 = varonce104; +((struct instance_standard__NativeArray*)var75)->values[0]=var77; +if (likely(varonce80!=NULL)) { +var81 = varonce80; } else { -var106 = ";"; -var107 = 1; -var108 = standard___standard__NativeString___to_s_with_length(var106, var107); -var105 = var108; -varonce104 = var105; -} -var109 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var109 = array_instance Array[Object] */ -var110 = 3; -var111 = NEW_standard__NativeArray(var110, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var111)->values[0] = (val*) var100; -((struct instance_standard__NativeArray*)var111)->values[1] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var111)->values[2] = (val*) var105; -{ -((void (*)(val* self, val* p0, long p1))(var109->class->vft[COLOR_standard__array__Array__with_native]))(var109, var111, var110) /* with_native on */; +var82 = ";"; +var83 = standard___standard__NativeString___to_s_with_length(var82, 1l); +var81 = var83; +varonce80 = var81; } +((struct instance_standard__NativeArray*)var75)->values[2]=var81; +} else { +var75 = varonce74; +varonce74 = NULL; } +((struct instance_standard__NativeArray*)var75)->values[1]=var_c_name; { -var112 = ((val* (*)(val* self))(var109->class->vft[COLOR_standard__string__Object__to_s]))(var109) /* to_s on */; +var84 = ((val*(*)(val* self))(var75->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var75); /* native_to_s on */ } +varonce74 = var75; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var112); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var84); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -if (varonce113) { -var114 = varonce113; +if (unlikely(varonce85==NULL)) { +var86 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce87!=NULL)) { +var88 = varonce87; } else { -var115 = "const struct class class_"; -var116 = 25; -var117 = standard___standard__NativeString___to_s_with_length(var115, var116); -var114 = var117; -varonce113 = var114; +var89 = "const struct class class_"; +var90 = standard___standard__NativeString___to_s_with_length(var89, 25l); +var88 = var90; +varonce87 = var88; } -if (varonce118) { -var119 = varonce118; +((struct instance_standard__NativeArray*)var86)->values[0]=var88; +if (likely(varonce91!=NULL)) { +var92 = varonce91; } else { -var120 = " = {"; -var121 = 4; -var122 = standard___standard__NativeString___to_s_with_length(var120, var121); -var119 = var122; -varonce118 = var119; -} -var123 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var123 = array_instance Array[Object] */ -var124 = 3; -var125 = NEW_standard__NativeArray(var124, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var125)->values[0] = (val*) var114; -((struct instance_standard__NativeArray*)var125)->values[1] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var125)->values[2] = (val*) var119; -{ -((void (*)(val* self, val* p0, long p1))(var123->class->vft[COLOR_standard__array__Array__with_native]))(var123, var125, var124) /* with_native on */; +var93 = " = {"; +var94 = standard___standard__NativeString___to_s_with_length(var93, 4l); +var92 = var94; +varonce91 = var92; } +((struct instance_standard__NativeArray*)var86)->values[2]=var92; +} else { +var86 = varonce85; +varonce85 = NULL; } +((struct instance_standard__NativeArray*)var86)->values[1]=var_c_name; { -var126 = ((val* (*)(val* self))(var123->class->vft[COLOR_standard__string__Object__to_s]))(var123) /* to_s on */; +var95 = ((val*(*)(val* self))(var86->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var86); /* native_to_s on */ } +varonce85 = var86; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var126); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var95); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +} +if (unlikely(varonce96==NULL)) { +var97 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce98!=NULL)) { +var99 = varonce98; +} else { +var100 = ","; +var101 = standard___standard__NativeString___to_s_with_length(var100, 1l); +var99 = var101; +varonce98 = var99; +} +((struct instance_standard__NativeArray*)var97)->values[1]=var99; +} else { +var97 = varonce96; +varonce96 = NULL; } { { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_ids (self) on */ -var129 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_ids].val; /* _class_ids on */ -if (unlikely(var129 == NULL)) { +var104 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_ids].val; /* _class_ids on */ +if (unlikely(var104 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_ids"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 79); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 84); +fatal_exit(1); } -var127 = var129; -RET_LABEL128:(void)0; +var102 = var104; +RET_LABEL103:(void)0; } } { -var130 = ((val* (*)(val* self, val* p0))(var127->class->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var127, var_mclass) /* [] on */; +var105 = ((val*(*)(val* self, val* p0))((((long)var102&3)?class_info[((long)var102&3)]:var102->class)->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var102, var_mclass); /* [] on */ } -if (varonce131) { -var132 = varonce131; -} else { -var133 = ","; -var134 = 1; -var135 = standard___standard__NativeString___to_s_with_length(var133, var134); -var132 = var135; -varonce131 = var132; -} -var136 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var136 = array_instance Array[Object] */ -var137 = 2; -var138 = NEW_standard__NativeArray(var137, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var138)->values[0] = (val*) var130; -((struct instance_standard__NativeArray*)var138)->values[1] = (val*) var132; +var107 = (long)(var105)>>2; +var106 = standard__string___Int___Object__to_s(var107); +((struct instance_standard__NativeArray*)var97)->values[0]=var106; { -((void (*)(val* self, val* p0, long p1))(var136->class->vft[COLOR_standard__array__Array__with_native]))(var136, var138, var137) /* with_native on */; -} +var108 = ((val*(*)(val* self))(var97->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var97); /* native_to_s on */ } +varonce96 = var97; { -var139 = ((val* (*)(val* self))(var136->class->vft[COLOR_standard__string__Object__to_s]))(var136) /* to_s on */; +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var108); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -{ -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var139); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +if (unlikely(varonce109==NULL)) { +var110 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce111!=NULL)) { +var112 = varonce111; +} else { +var113 = "\""; +var114 = standard___standard__NativeString___to_s_with_length(var113, 1l); +var112 = var114; +varonce111 = var112; +} +((struct instance_standard__NativeArray*)var110)->values[0]=var112; +if (likely(varonce115!=NULL)) { +var116 = varonce115; +} else { +var117 = "\", /* class_name_string */"; +var118 = standard___standard__NativeString___to_s_with_length(var117, 26l); +var116 = var118; +varonce115 = var116; } -if (varonce140) { -var141 = varonce140; +((struct instance_standard__NativeArray*)var110)->values[2]=var116; } else { -var142 = "\""; -var143 = 1; -var144 = standard___standard__NativeString___to_s_with_length(var142, var143); -var141 = var144; -varonce140 = var141; +var110 = varonce109; +varonce109 = NULL; } { { /* Inline model#MClass#name (var_mclass) on */ -var147 = var_mclass->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ -if (unlikely(var147 == NULL)) { +var121 = var_mclass->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ +if (unlikely(var121 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348); -show_backtrace(1); -} -var145 = var147; -RET_LABEL146:(void)0; -} -} -if (varonce148) { -var149 = varonce148; -} else { -var150 = "\", /* class_name_string */"; -var151 = 26; -var152 = standard___standard__NativeString___to_s_with_length(var150, var151); -var149 = var152; -varonce148 = var149; +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 362); +fatal_exit(1); } -var153 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var153 = array_instance Array[Object] */ -var154 = 3; -var155 = NEW_standard__NativeArray(var154, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var155)->values[0] = (val*) var141; -((struct instance_standard__NativeArray*)var155)->values[1] = (val*) var145; -((struct instance_standard__NativeArray*)var155)->values[2] = (val*) var149; -{ -((void (*)(val* self, val* p0, long p1))(var153->class->vft[COLOR_standard__array__Array__with_native]))(var153, var155, var154) /* with_native on */; +var119 = var121; +RET_LABEL120:(void)0; } } +((struct instance_standard__NativeArray*)var110)->values[1]=var119; { -var156 = ((val* (*)(val* self))(var153->class->vft[COLOR_standard__string__Object__to_s]))(var153) /* to_s on */; +var122 = ((val*(*)(val* self))(var110->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var110); /* native_to_s on */ } +varonce109 = var110; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var156); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var122); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -{ -var157 = nit___nit__SeparateCompiler___box_kind_of(self, var_mclass); +if (unlikely(varonce123==NULL)) { +var124 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce125!=NULL)) { +var126 = varonce125; +} else { +var127 = ", /* box_kind */"; +var128 = standard___standard__NativeString___to_s_with_length(var127, 16l); +var126 = var128; +varonce125 = var126; } -if (varonce158) { -var159 = varonce158; +((struct instance_standard__NativeArray*)var124)->values[1]=var126; } else { -var160 = ", /* box_kind */"; -var161 = 16; -var162 = standard___standard__NativeString___to_s_with_length(var160, var161); -var159 = var162; -varonce158 = var159; +var124 = varonce123; +varonce123 = NULL; } -var163 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var163 = array_instance Array[Object] */ -var164 = 2; -var165 = NEW_standard__NativeArray(var164, &type_standard__NativeArray__standard__Object); -var166 = BOX_standard__Int(var157); /* autobox from Int to Object */ -((struct instance_standard__NativeArray*)var165)->values[0] = (val*) var166; -((struct instance_standard__NativeArray*)var165)->values[1] = (val*) var159; { -((void (*)(val* self, val* p0, long p1))(var163->class->vft[COLOR_standard__array__Array__with_native]))(var163, var165, var164) /* with_native on */; -} +var129 = nit___nit__SeparateCompiler___box_kind_of(self, var_mclass); } +var130 = standard__string___Int___Object__to_s(var129); +((struct instance_standard__NativeArray*)var124)->values[0]=var130; { -var167 = ((val* (*)(val* self))(var163->class->vft[COLOR_standard__string__Object__to_s]))(var163) /* to_s on */; +var131 = ((val*(*)(val* self))(var124->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var124); /* native_to_s on */ } +varonce123 = var124; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var167); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var131); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +} +if (unlikely(varonce132==NULL)) { +var133 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce134!=NULL)) { +var135 = varonce134; +} else { +var136 = ","; +var137 = standard___standard__NativeString___to_s_with_length(var136, 1l); +var135 = var137; +varonce134 = var135; +} +((struct instance_standard__NativeArray*)var133)->values[1]=var135; +} else { +var133 = varonce132; +varonce132 = NULL; } { { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_colors (self) on */ -var170 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_colors].val; /* _class_colors on */ -if (unlikely(var170 == NULL)) { +var140 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_colors].val; /* _class_colors on */ +if (unlikely(var140 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_colors"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 80); -show_backtrace(1); -} -var168 = var170; -RET_LABEL169:(void)0; -} +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 85); +fatal_exit(1); } -{ -var171 = ((val* (*)(val* self, val* p0))(var168->class->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var168, var_mclass) /* [] on */; +var138 = var140; +RET_LABEL139:(void)0; } -if (varonce172) { -var173 = varonce172; -} else { -var174 = ","; -var175 = 1; -var176 = standard___standard__NativeString___to_s_with_length(var174, var175); -var173 = var176; -varonce172 = var173; } -var177 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var177 = array_instance Array[Object] */ -var178 = 2; -var179 = NEW_standard__NativeArray(var178, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var179)->values[0] = (val*) var171; -((struct instance_standard__NativeArray*)var179)->values[1] = (val*) var173; { -((void (*)(val* self, val* p0, long p1))(var177->class->vft[COLOR_standard__array__Array__with_native]))(var177, var179, var178) /* with_native on */; -} +var141 = ((val*(*)(val* self, val* p0))((((long)var138&3)?class_info[((long)var138&3)]:var138->class)->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var138, var_mclass); /* [] on */ } +var143 = (long)(var141)>>2; +var142 = standard__string___Int___Object__to_s(var143); +((struct instance_standard__NativeArray*)var133)->values[0]=var142; { -var180 = ((val* (*)(val* self))(var177->class->vft[COLOR_standard__string__Object__to_s]))(var177) /* to_s on */; +var144 = ((val*(*)(val* self))(var133->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var133); /* native_to_s on */ } +varonce132 = var133; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var180); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var144); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -var181 = !var_is_dead; -if (var181){ +var145 = !var_is_dead; +if (var145){ { -var182 = nit___nit__SeparateErasureCompiler___build_class_vts_table(self, var_mclass); +var146 = nit___nit__SeparateErasureCompiler___build_class_vts_table(self, var_mclass); } -if (var182){ -if (varonce183) { -var184 = varonce183; +if (var146){ +if (unlikely(varonce147==NULL)) { +var148 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce149!=NULL)) { +var150 = varonce149; } else { -var185 = "vts_table_"; -var186 = 10; -var187 = standard___standard__NativeString___to_s_with_length(var185, var186); -var184 = var187; -varonce183 = var184; -} -var188 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var188 = array_instance Array[Object] */ -var189 = 2; -var190 = NEW_standard__NativeArray(var189, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var190)->values[0] = (val*) var184; -((struct instance_standard__NativeArray*)var190)->values[1] = (val*) var_c_name; -{ -((void (*)(val* self, val* p0, long p1))(var188->class->vft[COLOR_standard__array__Array__with_native]))(var188, var190, var189) /* with_native on */; +var151 = "vts_table_"; +var152 = standard___standard__NativeString___to_s_with_length(var151, 10l); +var150 = var152; +varonce149 = var150; } +((struct instance_standard__NativeArray*)var148)->values[0]=var150; +} else { +var148 = varonce147; +varonce147 = NULL; } +((struct instance_standard__NativeArray*)var148)->values[1]=var_c_name; { -var191 = ((val* (*)(val* self))(var188->class->vft[COLOR_standard__string__Object__to_s]))(var188) /* to_s on */; +var153 = ((val*(*)(val* self))(var148->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var148); /* native_to_s on */ } +varonce147 = var148; { -nit___nit__AbstractCompilerVisitor___require_declaration(var_v, var191); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +nit___nit__AbstractCompilerVisitor___require_declaration(var_v, var153); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ } -if (varonce192) { -var193 = varonce192; +if (unlikely(varonce154==NULL)) { +var155 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce156!=NULL)) { +var157 = varonce156; } else { -var194 = "&vts_table_"; -var195 = 11; -var196 = standard___standard__NativeString___to_s_with_length(var194, var195); -var193 = var196; -varonce192 = var193; +var158 = "&vts_table_"; +var159 = standard___standard__NativeString___to_s_with_length(var158, 11l); +var157 = var159; +varonce156 = var157; } -if (varonce197) { -var198 = varonce197; +((struct instance_standard__NativeArray*)var155)->values[0]=var157; +if (likely(varonce160!=NULL)) { +var161 = varonce160; } else { -var199 = ","; -var200 = 1; -var201 = standard___standard__NativeString___to_s_with_length(var199, var200); -var198 = var201; -varonce197 = var198; -} -var202 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var202 = array_instance Array[Object] */ -var203 = 3; -var204 = NEW_standard__NativeArray(var203, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var204)->values[0] = (val*) var193; -((struct instance_standard__NativeArray*)var204)->values[1] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var204)->values[2] = (val*) var198; -{ -((void (*)(val* self, val* p0, long p1))(var202->class->vft[COLOR_standard__array__Array__with_native]))(var202, var204, var203) /* with_native on */; +var162 = ","; +var163 = standard___standard__NativeString___to_s_with_length(var162, 1l); +var161 = var163; +varonce160 = var161; } +((struct instance_standard__NativeArray*)var155)->values[2]=var161; +} else { +var155 = varonce154; +varonce154 = NULL; } +((struct instance_standard__NativeArray*)var155)->values[1]=var_c_name; { -var205 = ((val* (*)(val* self))(var202->class->vft[COLOR_standard__string__Object__to_s]))(var202) /* to_s on */; +var164 = ((val*(*)(val* self))(var155->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var155); /* native_to_s on */ } +varonce154 = var155; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var205); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var164); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } } else { -if (varonce206) { -var207 = varonce206; +if (likely(varonce165!=NULL)) { +var166 = varonce165; } else { -var208 = "NULL,"; -var209 = 5; -var210 = standard___standard__NativeString___to_s_with_length(var208, var209); -var207 = var210; -varonce206 = var207; +var167 = "NULL,"; +var168 = standard___standard__NativeString___to_s_with_length(var167, 5l); +var166 = var168; +varonce165 = var166; } { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var207); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var166); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } } -if (varonce211) { -var212 = varonce211; +if (unlikely(varonce169==NULL)) { +var170 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce171!=NULL)) { +var172 = varonce171; } else { -var213 = "&type_table_"; -var214 = 12; -var215 = standard___standard__NativeString___to_s_with_length(var213, var214); -var212 = var215; -varonce211 = var212; +var173 = "&type_table_"; +var174 = standard___standard__NativeString___to_s_with_length(var173, 12l); +var172 = var174; +varonce171 = var172; } -if (varonce216) { -var217 = varonce216; +((struct instance_standard__NativeArray*)var170)->values[0]=var172; +if (likely(varonce175!=NULL)) { +var176 = varonce175; } else { -var218 = ","; -var219 = 1; -var220 = standard___standard__NativeString___to_s_with_length(var218, var219); -var217 = var220; -varonce216 = var217; +var177 = ","; +var178 = standard___standard__NativeString___to_s_with_length(var177, 1l); +var176 = var178; +varonce175 = var176; } -var221 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var221 = array_instance Array[Object] */ -var222 = 3; -var223 = NEW_standard__NativeArray(var222, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var223)->values[0] = (val*) var212; -((struct instance_standard__NativeArray*)var223)->values[1] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var223)->values[2] = (val*) var217; +((struct instance_standard__NativeArray*)var170)->values[2]=var176; +} else { +var170 = varonce169; +varonce169 = NULL; +} +((struct instance_standard__NativeArray*)var170)->values[1]=var_c_name; +{ +var179 = ((val*(*)(val* self))(var170->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var170); /* native_to_s on */ +} +varonce169 = var170; { -((void (*)(val* self, val* p0, long p1))(var221->class->vft[COLOR_standard__array__Array__with_native]))(var221, var223, var222) /* with_native on */; +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var179); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } +if (likely(varonce180!=NULL)) { +var181 = varonce180; +} else { +var182 = "{"; +var183 = standard___standard__NativeString___to_s_with_length(var182, 1l); +var181 = var183; +varonce180 = var181; +} +{ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var181); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } { -var224 = ((val* (*)(val* self))(var221->class->vft[COLOR_standard__string__Object__to_s]))(var221) /* to_s on */; +{ /* Inline separate_compiler#SeparateCompiler#method_tables (self) on */ +var186 = self->attrs[COLOR_nit__separate_compiler__SeparateCompiler___method_tables].val; /* _method_tables on */ +if (unlikely(var186 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1053); +fatal_exit(1); +} +var184 = var186; +RET_LABEL185:(void)0; +} } { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var224); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +var187 = ((val*(*)(val* self, val* p0))((((long)var184&3)?class_info[((long)var184&3)]:var184->class)->vft[COLOR_standard__abstract_collection__MapRead__get_or_null]))(var184, var_mclass); /* get_or_null on */ } -if (varonce225) { -var226 = varonce225; +var_vft = var187; +if (var_vft == NULL) { +var188 = 0; /* is null */ } else { -var227 = "{"; -var228 = 1; -var229 = standard___standard__NativeString___to_s_with_length(var227, var228); -var226 = var229; -varonce225 = var226; +var188 = 1; /* arg is null and recv is not */ } +if (0) { +{ /* Inline kernel#Object#!= (var_vft,((val*)NULL)) on */ +var_other = ((val*)NULL); { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var226); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +var191 = ((short int(*)(val* self, val* p0))(var_vft->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_vft, var_other); /* == on */ } -var230 = 0; -var_i = var230; +var192 = !var191; +var189 = var192; +goto RET_LABEL190; +RET_LABEL190:(void)0; +} +var188 = var189; +} +if (var188){ +var_i = 0l; { -{ /* Inline array#AbstractArrayRead#length (var_vft) on */ -var233 = var_vft->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var231 = var233; -RET_LABEL232:(void)0; +{ /* Inline array#AbstractArrayRead#length (var_vft) on */ +var195 = var_vft->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var193 = var195; +RET_LABEL194:(void)0; } } -var_234 = var231; +var_196 = var193; for(;;) { { -{ /* Inline kernel#Int#< (var_i,var_234) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var237 = 1; /* easy isa OTHER*/ -if (unlikely(!var237)) { +{ /* Inline kernel#Int#< (var_i,var_196) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var199 = 1; /* easy isa OTHER*/ +if (unlikely(!var199)) { 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); } -var238 = var_i < var_234; -var235 = var238; -goto RET_LABEL236; -RET_LABEL236:(void)0; +var200 = var_i < var_196; +var197 = var200; +goto RET_LABEL198; +RET_LABEL198:(void)0; } } -if (var235){ +if (var197){ { -var239 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_vft, var_i); +var201 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_vft, var_i); } -var_mpropdef = var239; -var240 = NULL; +var_mpropdef = var201; if (var_mpropdef == NULL) { -var241 = 1; /* is null */ +var202 = 1; /* is null */ } else { -var241 = 0; /* arg is null but recv is not */ +var202 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_mpropdef,var240) on */ -var_other244 = var240; +{ /* Inline kernel#Object#== (var_mpropdef,((val*)NULL)) on */ +var_other205 = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other244) on */ -var247 = var_mpropdef == var_other244; -var245 = var247; -goto RET_LABEL246; -RET_LABEL246:(void)0; +{ /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other205) on */ +var208 = var_mpropdef == var_other205; +var206 = var208; +goto RET_LABEL207; +RET_LABEL207:(void)0; } } -var242 = var245; -goto RET_LABEL243; -RET_LABEL243:(void)0; +var203 = var206; +goto RET_LABEL204; +RET_LABEL204:(void)0; } -var241 = var242; +var202 = var203; } -if (var241){ -if (varonce248) { -var249 = varonce248; +if (var202){ +if (likely(varonce209!=NULL)) { +var210 = varonce209; } else { -var250 = "NULL, /* empty */"; -var251 = 17; -var252 = standard___standard__NativeString___to_s_with_length(var250, var251); -var249 = var252; -varonce248 = var249; +var211 = "NULL, /* empty */"; +var212 = standard___standard__NativeString___to_s_with_length(var211, 17l); +var210 = var212; +varonce209 = var210; } { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var249); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var210); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } } else { /* isa MMethodDef */ -cltype254 = type_nit__MMethodDef.color; -idtype255 = type_nit__MMethodDef.id; -if(cltype254 >= var_mpropdef->type->table_size) { -var253 = 0; +cltype214 = type_nit__MMethodDef.color; +idtype215 = type_nit__MMethodDef.id; +if(cltype214 >= var_mpropdef->type->table_size) { +var213 = 0; } else { -var253 = var_mpropdef->type->type_table[cltype254] == idtype255; +var213 = var_mpropdef->type->type_table[cltype214] == idtype215; } -if (unlikely(!var253)) { +if (unlikely(!var213)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 233); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 237); +fatal_exit(1); } -var257 = NULL; if (var_rta == NULL) { -var258 = 0; /* is null */ +var217 = 0; /* is null */ } else { -var258 = 1; /* arg is null and recv is not */ +var217 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_rta,var257) on */ -var_other = var257; +{ /* Inline kernel#Object#!= (var_rta,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var261 = ((short int (*)(val* self, val* p0))(var_rta->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_rta, var_other) /* == on */; +var220 = ((short int(*)(val* self, val* p0))(var_rta->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_rta, var_other); /* == on */ } -var262 = !var261; -var259 = var262; -goto RET_LABEL260; -RET_LABEL260:(void)0; +var221 = !var220; +var218 = var221; +goto RET_LABEL219; +RET_LABEL219:(void)0; } -var258 = var259; +var217 = var218; } -var_263 = var258; -if (var258){ +var_222 = var217; +if (var217){ { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (var_rta) on */ -var266 = var_rta->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs].val; /* _live_methoddefs on */ -if (unlikely(var266 == NULL)) { +var225 = var_rta->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs].val; /* _live_methoddefs on */ +if (unlikely(var225 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 72); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 79); +fatal_exit(1); } -var264 = var266; -RET_LABEL265:(void)0; +var223 = var225; +RET_LABEL224:(void)0; } } { -var267 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var264, var_mpropdef); +var226 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var223, var_mpropdef); } -var268 = !var267; -var256 = var268; +var227 = !var226; +var216 = var227; } else { -var256 = var_263; +var216 = var_222; } -if (var256){ -if (varonce269) { -var270 = varonce269; +if (var216){ +if (unlikely(varonce228==NULL)) { +var229 = NEW_standard__NativeArray(7l, &type_standard__NativeArray__standard__String); +if (likely(varonce230!=NULL)) { +var231 = varonce230; } else { -var271 = "NULL, /* DEAD "; -var272 = 14; -var273 = standard___standard__NativeString___to_s_with_length(var271, var272); -var270 = var273; -varonce269 = var270; -} -{ -{ /* Inline model#MClass#intro_mmodule (var_mclass) on */ -var276 = var_mclass->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ -if (unlikely(var276 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 343); -show_backtrace(1); -} -var274 = var276; -RET_LABEL275:(void)0; +var232 = "NULL, /* DEAD "; +var233 = standard___standard__NativeString___to_s_with_length(var232, 14l); +var231 = var233; +varonce230 = var231; } +((struct instance_standard__NativeArray*)var229)->values[0]=var231; +if (likely(varonce234!=NULL)) { +var235 = varonce234; +} else { +var236 = ":"; +var237 = standard___standard__NativeString___to_s_with_length(var236, 1l); +var235 = var237; +varonce234 = var235; } -if (varonce277) { -var278 = varonce277; +((struct instance_standard__NativeArray*)var229)->values[2]=var235; +if (likely(varonce238!=NULL)) { +var239 = varonce238; } else { -var279 = ":"; -var280 = 1; -var281 = standard___standard__NativeString___to_s_with_length(var279, var280); -var278 = var281; -varonce277 = var278; +var240 = ":"; +var241 = standard___standard__NativeString___to_s_with_length(var240, 1l); +var239 = var241; +varonce238 = var239; } -if (varonce282) { -var283 = varonce282; +((struct instance_standard__NativeArray*)var229)->values[4]=var239; +if (likely(varonce242!=NULL)) { +var243 = varonce242; } else { -var284 = ":"; -var285 = 1; -var286 = standard___standard__NativeString___to_s_with_length(var284, var285); -var283 = var286; -varonce282 = var283; +var244 = " */"; +var245 = standard___standard__NativeString___to_s_with_length(var244, 3l); +var243 = var245; +varonce242 = var243; } -if (varonce287) { -var288 = varonce287; +((struct instance_standard__NativeArray*)var229)->values[6]=var243; } else { -var289 = " */"; -var290 = 3; -var291 = standard___standard__NativeString___to_s_with_length(var289, var290); -var288 = var291; -varonce287 = var288; +var229 = varonce228; +varonce228 = NULL; +} +{ +{ /* Inline model#MClass#intro_mmodule (var_mclass) on */ +var248 = var_mclass->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ +if (unlikely(var248 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 357); +fatal_exit(1); +} +var246 = var248; +RET_LABEL247:(void)0; } -var292 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var292 = array_instance Array[Object] */ -var293 = 7; -var294 = NEW_standard__NativeArray(var293, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var294)->values[0] = (val*) var270; -((struct instance_standard__NativeArray*)var294)->values[1] = (val*) var274; -((struct instance_standard__NativeArray*)var294)->values[2] = (val*) var278; -((struct instance_standard__NativeArray*)var294)->values[3] = (val*) var_mclass; -((struct instance_standard__NativeArray*)var294)->values[4] = (val*) var283; -((struct instance_standard__NativeArray*)var294)->values[5] = (val*) var_mpropdef; -((struct instance_standard__NativeArray*)var294)->values[6] = (val*) var288; +} +{ +var249 = ((val*(*)(val* self))(var246->class->vft[COLOR_standard__string__Object__to_s]))(var246); /* to_s on */ +} +((struct instance_standard__NativeArray*)var229)->values[1]=var249; { -((void (*)(val* self, val* p0, long p1))(var292->class->vft[COLOR_standard__array__Array__with_native]))(var292, var294, var293) /* with_native on */; +var250 = ((val*(*)(val* self))(var_mclass->class->vft[COLOR_standard__string__Object__to_s]))(var_mclass); /* to_s on */ } +((struct instance_standard__NativeArray*)var229)->values[3]=var250; +{ +var251 = ((val*(*)(val* self))(var_mpropdef->class->vft[COLOR_standard__string__Object__to_s]))(var_mpropdef); /* to_s on */ } +((struct instance_standard__NativeArray*)var229)->values[5]=var251; { -var295 = ((val* (*)(val* self))(var292->class->vft[COLOR_standard__string__Object__to_s]))(var292) /* to_s on */; +var252 = ((val*(*)(val* self))(var229->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var229); /* native_to_s on */ } +varonce228 = var229; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var295); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var252); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } goto BREAK_label; } else { } { -var296 = nit__separate_compiler___MMethodDef___virtual_runtime_function(var_mpropdef); +var253 = nit__separate_compiler___MMethodDef___virtual_runtime_function(var_mpropdef); } -var_rf = var296; +var_rf = var253; { -var297 = nit___nit__AbstractRuntimeFunction___c_name(var_rf); +var254 = nit___nit__AbstractRuntimeFunction___c_name(var_rf); } { -nit___nit__AbstractCompilerVisitor___require_declaration(var_v, var297); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +nit___nit__AbstractCompilerVisitor___require_declaration(var_v, var254); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ } -if (varonce298) { -var299 = varonce298; +if (unlikely(varonce255==NULL)) { +var256 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce257!=NULL)) { +var258 = varonce257; } else { -var300 = "(nitmethod_t)"; -var301 = 13; -var302 = standard___standard__NativeString___to_s_with_length(var300, var301); -var299 = var302; -varonce298 = var299; +var259 = "(nitmethod_t)"; +var260 = standard___standard__NativeString___to_s_with_length(var259, 13l); +var258 = var260; +varonce257 = var258; } -{ -var303 = nit___nit__AbstractRuntimeFunction___c_name(var_rf); -} -if (varonce304) { -var305 = varonce304; +((struct instance_standard__NativeArray*)var256)->values[0]=var258; +if (likely(varonce261!=NULL)) { +var262 = varonce261; } else { -var306 = ", /* pointer to "; -var307 = 16; -var308 = standard___standard__NativeString___to_s_with_length(var306, var307); -var305 = var308; -varonce304 = var305; +var263 = ", /* pointer to "; +var264 = standard___standard__NativeString___to_s_with_length(var263, 16l); +var262 = var264; +varonce261 = var262; } -{ -var309 = nit___nit__MPropDef___nit__model_base__MEntity__full_name(var_mpropdef); +((struct instance_standard__NativeArray*)var256)->values[2]=var262; +if (likely(varonce265!=NULL)) { +var266 = varonce265; +} else { +var267 = " */"; +var268 = standard___standard__NativeString___to_s_with_length(var267, 3l); +var266 = var268; +varonce265 = var266; } -if (varonce310) { -var311 = varonce310; +((struct instance_standard__NativeArray*)var256)->values[4]=var266; } else { -var312 = " */"; -var313 = 3; -var314 = standard___standard__NativeString___to_s_with_length(var312, var313); -var311 = var314; -varonce310 = var311; +var256 = varonce255; +varonce255 = NULL; } -var315 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var315 = array_instance Array[Object] */ -var316 = 5; -var317 = NEW_standard__NativeArray(var316, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var317)->values[0] = (val*) var299; -((struct instance_standard__NativeArray*)var317)->values[1] = (val*) var303; -((struct instance_standard__NativeArray*)var317)->values[2] = (val*) var305; -((struct instance_standard__NativeArray*)var317)->values[3] = (val*) var309; -((struct instance_standard__NativeArray*)var317)->values[4] = (val*) var311; { -((void (*)(val* self, val* p0, long p1))(var315->class->vft[COLOR_standard__array__Array__with_native]))(var315, var317, var316) /* with_native on */; +var269 = nit___nit__AbstractRuntimeFunction___c_name(var_rf); } +((struct instance_standard__NativeArray*)var256)->values[1]=var269; +{ +var270 = nit___nit__MPropDef___nit__model_base__MEntity__full_name(var_mpropdef); } +((struct instance_standard__NativeArray*)var256)->values[3]=var270; { -var318 = ((val* (*)(val* self))(var315->class->vft[COLOR_standard__string__Object__to_s]))(var315) /* to_s on */; +var271 = ((val*(*)(val* self))(var256->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var256); /* native_to_s on */ } +varonce255 = var256; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var318); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var271); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } } BREAK_label: (void)0; -var319 = 1; { -var320 = standard___standard__Int___Discrete__successor(var_i, var319); +var272 = standard___standard__Int___Discrete__successor(var_i, 1l); } -var_i = var320; +var_i = var272; } else { -goto BREAK_label321; +goto BREAK_label273; +} } +BREAK_label273: (void)0; +} else { } -BREAK_label321: (void)0; -if (varonce322) { -var323 = varonce322; +if (likely(varonce274!=NULL)) { +var275 = varonce274; } else { -var324 = "}"; -var325 = 1; -var326 = standard___standard__NativeString___to_s_with_length(var324, var325); -var323 = var326; -varonce322 = var323; +var276 = "}"; +var277 = standard___standard__NativeString___to_s_with_length(var276, 1l); +var275 = var277; +varonce274 = var275; } { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var323); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var275); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } } else { } -if (varonce327) { -var328 = varonce327; +if (likely(varonce278!=NULL)) { +var279 = varonce278; } else { -var329 = "};"; -var330 = 2; -var331 = standard___standard__NativeString___to_s_with_length(var329, var330); -var328 = var331; -varonce327 = var328; +var280 = "};"; +var281 = standard___standard__NativeString___to_s_with_length(var280, 2l); +var279 = var281; +varonce278 = var279; } { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var328); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var279); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -if (varonce332) { -var333 = varonce332; +if (unlikely(varonce282==NULL)) { +var283 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce284!=NULL)) { +var285 = varonce284; } else { -var334 = "const struct type_table type_table_"; -var335 = 35; -var336 = standard___standard__NativeString___to_s_with_length(var334, var335); -var333 = var336; -varonce332 = var333; +var286 = "const struct type_table type_table_"; +var287 = standard___standard__NativeString___to_s_with_length(var286, 35l); +var285 = var287; +varonce284 = var285; } -if (varonce337) { -var338 = varonce337; +((struct instance_standard__NativeArray*)var283)->values[0]=var285; +if (likely(varonce288!=NULL)) { +var289 = varonce288; } else { -var339 = " = {"; -var340 = 4; -var341 = standard___standard__NativeString___to_s_with_length(var339, var340); -var338 = var341; -varonce337 = var338; -} -var342 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var342 = array_instance Array[Object] */ -var343 = 3; -var344 = NEW_standard__NativeArray(var343, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var344)->values[0] = (val*) var333; -((struct instance_standard__NativeArray*)var344)->values[1] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var344)->values[2] = (val*) var338; -{ -((void (*)(val* self, val* p0, long p1))(var342->class->vft[COLOR_standard__array__Array__with_native]))(var342, var344, var343) /* with_native on */; +var290 = " = {"; +var291 = standard___standard__NativeString___to_s_with_length(var290, 4l); +var289 = var291; +varonce288 = var289; } +((struct instance_standard__NativeArray*)var283)->values[2]=var289; +} else { +var283 = varonce282; +varonce282 = NULL; } +((struct instance_standard__NativeArray*)var283)->values[1]=var_c_name; { -var345 = ((val* (*)(val* self))(var342->class->vft[COLOR_standard__string__Object__to_s]))(var342) /* to_s on */; +var292 = ((val*(*)(val* self))(var283->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var283); /* native_to_s on */ } +varonce282 = var283; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var345); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ -} -{ -{ /* Inline array#AbstractArrayRead#length (var_class_table) on */ -var348 = var_class_table->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var346 = var348; -RET_LABEL347:(void)0; +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var292); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } +if (unlikely(varonce293==NULL)) { +var294 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce295!=NULL)) { +var296 = varonce295; +} else { +var297 = ","; +var298 = standard___standard__NativeString___to_s_with_length(var297, 1l); +var296 = var298; +varonce295 = var296; } -if (varonce349) { -var350 = varonce349; +((struct instance_standard__NativeArray*)var294)->values[1]=var296; } else { -var351 = ","; -var352 = 1; -var353 = standard___standard__NativeString___to_s_with_length(var351, var352); -var350 = var353; -varonce349 = var350; +var294 = varonce293; +varonce293 = NULL; } -var354 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var354 = array_instance Array[Object] */ -var355 = 2; -var356 = NEW_standard__NativeArray(var355, &type_standard__NativeArray__standard__Object); -var357 = BOX_standard__Int(var346); /* autobox from Int to Object */ -((struct instance_standard__NativeArray*)var356)->values[0] = (val*) var357; -((struct instance_standard__NativeArray*)var356)->values[1] = (val*) var350; { -((void (*)(val* self, val* p0, long p1))(var354->class->vft[COLOR_standard__array__Array__with_native]))(var354, var356, var355) /* with_native on */; +{ /* Inline array#AbstractArrayRead#length (var_class_table) on */ +var301 = var_class_table->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var299 = var301; +RET_LABEL300:(void)0; } } +var302 = standard__string___Int___Object__to_s(var299); +((struct instance_standard__NativeArray*)var294)->values[0]=var302; { -var358 = ((val* (*)(val* self))(var354->class->vft[COLOR_standard__string__Object__to_s]))(var354) /* to_s on */; +var303 = ((val*(*)(val* self))(var294->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var294); /* native_to_s on */ } +varonce293 = var294; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var358); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var303); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -if (varonce359) { -var360 = varonce359; +if (likely(varonce304!=NULL)) { +var305 = varonce304; } else { -var361 = "{"; -var362 = 1; -var363 = standard___standard__NativeString___to_s_with_length(var361, var362); -var360 = var363; -varonce359 = var360; +var306 = "{"; +var307 = standard___standard__NativeString___to_s_with_length(var306, 1l); +var305 = var307; +varonce304 = var305; } { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var360); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var305); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -var_364 = var_class_table; +var_308 = var_class_table; { -var365 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_364); +var309 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_308); } -var_366 = var365; +var_310 = var309; for(;;) { { -var367 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_366); +var311 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_310); } -if (var367){ +if (var311){ { -var368 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_366); +var312 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_310); } -var_msuper = var368; -var369 = NULL; +var_msuper = var312; if (var_msuper == NULL) { -var370 = 1; /* is null */ +var313 = 1; /* is null */ } else { -var370 = 0; /* arg is null but recv is not */ +var313 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_msuper,var369) on */ -var_other244 = var369; +{ /* Inline kernel#Object#== (var_msuper,((val*)NULL)) on */ +var_other205 = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_msuper,var_other244) on */ -var375 = var_msuper == var_other244; -var373 = var375; -goto RET_LABEL374; -RET_LABEL374:(void)0; +{ /* Inline kernel#Object#is_same_instance (var_msuper,var_other205) on */ +var318 = var_msuper == var_other205; +var316 = var318; +goto RET_LABEL317; +RET_LABEL317:(void)0; } } -var371 = var373; -goto RET_LABEL372; -RET_LABEL372:(void)0; +var314 = var316; +goto RET_LABEL315; +RET_LABEL315:(void)0; } -var370 = var371; +var313 = var314; } -if (var370){ -if (varonce376) { -var377 = varonce376; +if (var313){ +if (likely(varonce319!=NULL)) { +var320 = varonce319; } else { -var378 = "-1, /* empty */"; -var379 = 15; -var380 = standard___standard__NativeString___to_s_with_length(var378, var379); -var377 = var380; -varonce376 = var377; +var321 = "-1, /* empty */"; +var322 = standard___standard__NativeString___to_s_with_length(var321, 15l); +var320 = var322; +varonce319 = var320; } { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var377); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var320); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } } else { -{ -{ /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_ids (self) on */ -var383 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_ids].val; /* _class_ids on */ -if (unlikely(var383 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_ids"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 79); -show_backtrace(1); +if (unlikely(varonce323==NULL)) { +var324 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce325!=NULL)) { +var326 = varonce325; +} else { +var327 = ", /* "; +var328 = standard___standard__NativeString___to_s_with_length(var327, 5l); +var326 = var328; +varonce325 = var326; } -var381 = var383; -RET_LABEL382:(void)0; +((struct instance_standard__NativeArray*)var324)->values[1]=var326; +if (likely(varonce329!=NULL)) { +var330 = varonce329; +} else { +var331 = " */"; +var332 = standard___standard__NativeString___to_s_with_length(var331, 3l); +var330 = var332; +varonce329 = var330; } +((struct instance_standard__NativeArray*)var324)->values[3]=var330; +} else { +var324 = varonce323; +varonce323 = NULL; } { -var384 = ((val* (*)(val* self, val* p0))(var381->class->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var381, var_msuper) /* [] on */; +{ /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_ids (self) on */ +var335 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_ids].val; /* _class_ids on */ +if (unlikely(var335 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_ids"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 84); +fatal_exit(1); } -if (varonce385) { -var386 = varonce385; -} else { -var387 = ", /* "; -var388 = 5; -var389 = standard___standard__NativeString___to_s_with_length(var387, var388); -var386 = var389; -varonce385 = var386; +var333 = var335; +RET_LABEL334:(void)0; } -if (varonce390) { -var391 = varonce390; -} else { -var392 = " */"; -var393 = 3; -var394 = standard___standard__NativeString___to_s_with_length(var392, var393); -var391 = var394; -varonce390 = var391; } -var395 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var395 = array_instance Array[Object] */ -var396 = 4; -var397 = NEW_standard__NativeArray(var396, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var397)->values[0] = (val*) var384; -((struct instance_standard__NativeArray*)var397)->values[1] = (val*) var386; -((struct instance_standard__NativeArray*)var397)->values[2] = (val*) var_msuper; -((struct instance_standard__NativeArray*)var397)->values[3] = (val*) var391; { -((void (*)(val* self, val* p0, long p1))(var395->class->vft[COLOR_standard__array__Array__with_native]))(var395, var397, var396) /* with_native on */; +var336 = ((val*(*)(val* self, val* p0))((((long)var333&3)?class_info[((long)var333&3)]:var333->class)->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var333, var_msuper); /* [] on */ } +var338 = (long)(var336)>>2; +var337 = standard__string___Int___Object__to_s(var338); +((struct instance_standard__NativeArray*)var324)->values[0]=var337; +{ +var339 = ((val*(*)(val* self))(var_msuper->class->vft[COLOR_standard__string__Object__to_s]))(var_msuper); /* to_s on */ } +((struct instance_standard__NativeArray*)var324)->values[2]=var339; { -var398 = ((val* (*)(val* self))(var395->class->vft[COLOR_standard__string__Object__to_s]))(var395) /* to_s on */; +var340 = ((val*(*)(val* self))(var324->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var324); /* native_to_s on */ } +varonce323 = var324; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var398); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var340); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_366); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_310); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label399; +goto BREAK_label341; } } -BREAK_label399: (void)0; +BREAK_label341: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_366) on */ -RET_LABEL400:(void)0; +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_310); /* Direct call array#ArrayIterator#finish on */ } -} -if (varonce401) { -var402 = varonce401; +if (likely(varonce342!=NULL)) { +var343 = varonce342; } else { -var403 = "}"; -var404 = 1; -var405 = standard___standard__NativeString___to_s_with_length(var403, var404); -var402 = var405; -varonce401 = var402; +var344 = "}"; +var345 = standard___standard__NativeString___to_s_with_length(var344, 1l); +var343 = var345; +varonce342 = var343; } { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var402); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var343); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -if (varonce406) { -var407 = varonce406; +if (likely(varonce346!=NULL)) { +var347 = varonce346; } else { -var408 = "};"; -var409 = 2; -var410 = standard___standard__NativeString___to_s_with_length(var408, var409); -var407 = var410; -varonce406 = var407; -} -{ -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var407); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +var348 = "};"; +var349 = standard___standard__NativeString___to_s_with_length(var348, 2l); +var347 = var349; +varonce346 = var347; } { -var412 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); -} -if (varonce413) { -var414 = varonce413; -} else { -var415 = "val*"; -var416 = 4; -var417 = standard___standard__NativeString___to_s_with_length(var415, var416); -var414 = var417; -varonce413 = var414; +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var347); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } { -{ /* Inline kernel#Object#!= (var412,var414) on */ -var_other = var414; -{ -var420 = ((short int (*)(val* self, val* p0))(var412->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var412, var_other) /* == on */; -} -var421 = !var420; -var418 = var421; -goto RET_LABEL419; -RET_LABEL419:(void)0; -} +var351 = nit__abstract_compiler___MClassType___MType__is_c_primitive(var_mtype); } -var_422 = var418; -if (var418){ -var411 = var_422; +var_352 = var351; +if (var351){ +var350 = var_352; } else { { { /* Inline model#MClassType#mclass (var_mtype) on */ -var425 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var425 == NULL)) { +var355 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var355 == 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); } -var423 = var425; -RET_LABEL424:(void)0; +var353 = var355; +RET_LABEL354:(void)0; } } { -{ /* Inline model#MClass#name (var423) on */ -var428 = var423->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ -if (unlikely(var428 == NULL)) { +{ /* Inline model#MClass#name (var353) on */ +var358 = var353->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ +if (unlikely(var358 == 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); } -var426 = var428; -RET_LABEL427:(void)0; +var356 = var358; +RET_LABEL357:(void)0; } } -if (varonce429) { -var430 = varonce429; +if (likely(varonce359!=NULL)) { +var360 = varonce359; } else { -var431 = "Pointer"; -var432 = 7; -var433 = standard___standard__NativeString___to_s_with_length(var431, var432); -var430 = var433; -varonce429 = var430; +var361 = "Pointer"; +var362 = standard___standard__NativeString___to_s_with_length(var361, 7l); +var360 = var362; +varonce359 = var360; } { -var434 = ((short int (*)(val* self, val* p0))(var426->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var426, var430) /* == on */; +var363 = ((short int(*)(val* self, val* p0))(var356->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var356, var360); /* == on */ } -var411 = var434; +var350 = var363; } -if (var411){ +if (var350){ { { /* Inline abstract_compiler#AbstractCompiler#header (self) on */ -var437 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ -if (unlikely(var437 == NULL)) { +var366 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ +if (unlikely(var366 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 569); +fatal_exit(1); } -var435 = var437; -RET_LABEL436:(void)0; +var364 = var366; +RET_LABEL365:(void)0; } } -if (varonce438) { -var439 = varonce438; +if (unlikely(varonce367==NULL)) { +var368 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce369!=NULL)) { +var370 = varonce369; } else { -var440 = "struct instance_"; -var441 = 16; -var442 = standard___standard__NativeString___to_s_with_length(var440, var441); -var439 = var442; -varonce438 = var439; +var371 = "struct instance_"; +var372 = standard___standard__NativeString___to_s_with_length(var371, 16l); +var370 = var372; +varonce369 = var370; } -if (varonce443) { -var444 = varonce443; +((struct instance_standard__NativeArray*)var368)->values[0]=var370; +if (likely(varonce373!=NULL)) { +var374 = varonce373; } else { -var445 = " {"; -var446 = 2; -var447 = standard___standard__NativeString___to_s_with_length(var445, var446); -var444 = var447; -varonce443 = var444; -} -var448 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var448 = array_instance Array[Object] */ -var449 = 3; -var450 = NEW_standard__NativeArray(var449, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var450)->values[0] = (val*) var439; -((struct instance_standard__NativeArray*)var450)->values[1] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var450)->values[2] = (val*) var444; -{ -((void (*)(val* self, val* p0, long p1))(var448->class->vft[COLOR_standard__array__Array__with_native]))(var448, var450, var449) /* with_native on */; +var375 = " {"; +var376 = standard___standard__NativeString___to_s_with_length(var375, 2l); +var374 = var376; +varonce373 = var374; } +((struct instance_standard__NativeArray*)var368)->values[2]=var374; +} else { +var368 = varonce367; +varonce367 = NULL; } +((struct instance_standard__NativeArray*)var368)->values[1]=var_c_name; { -var451 = ((val* (*)(val* self))(var448->class->vft[COLOR_standard__string__Object__to_s]))(var448) /* to_s on */; +var377 = ((val*(*)(val* self))(var368->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var368); /* native_to_s on */ } +varonce367 = var368; { -nit___nit__CodeWriter___add_decl(var435, var451); /* Direct call abstract_compiler#CodeWriter#add_decl on */ +nit___nit__CodeWriter___add_decl(var364, var377); /* Direct call abstract_compiler#CodeWriter#add_decl on */ } { { /* Inline abstract_compiler#AbstractCompiler#header (self) on */ -var454 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ -if (unlikely(var454 == NULL)) { +var380 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ +if (unlikely(var380 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 569); +fatal_exit(1); } -var452 = var454; -RET_LABEL453:(void)0; +var378 = var380; +RET_LABEL379:(void)0; } } -if (varonce455) { -var456 = varonce455; +if (likely(varonce381!=NULL)) { +var382 = varonce381; } else { -var457 = "const struct class *class;"; -var458 = 26; -var459 = standard___standard__NativeString___to_s_with_length(var457, var458); -var456 = var459; -varonce455 = var456; +var383 = "const struct class *class;"; +var384 = standard___standard__NativeString___to_s_with_length(var383, 26l); +var382 = var384; +varonce381 = var382; } { -nit___nit__CodeWriter___add_decl(var452, var456); /* Direct call abstract_compiler#CodeWriter#add_decl on */ +nit___nit__CodeWriter___add_decl(var378, var382); /* Direct call abstract_compiler#CodeWriter#add_decl on */ } { { /* Inline abstract_compiler#AbstractCompiler#header (self) on */ -var462 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ -if (unlikely(var462 == NULL)) { +var387 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ +if (unlikely(var387 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 569); +fatal_exit(1); } -var460 = var462; -RET_LABEL461:(void)0; +var385 = var387; +RET_LABEL386:(void)0; } } -{ -var463 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); +if (unlikely(varonce388==NULL)) { +var389 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce390!=NULL)) { +var391 = varonce390; +} else { +var392 = " value;"; +var393 = standard___standard__NativeString___to_s_with_length(var392, 7l); +var391 = var393; +varonce390 = var391; } -if (varonce464) { -var465 = varonce464; +((struct instance_standard__NativeArray*)var389)->values[1]=var391; } else { -var466 = " value;"; -var467 = 7; -var468 = standard___standard__NativeString___to_s_with_length(var466, var467); -var465 = var468; -varonce464 = var465; +var389 = varonce388; +varonce388 = NULL; } -var469 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var469 = array_instance Array[Object] */ -var470 = 2; -var471 = NEW_standard__NativeArray(var470, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var471)->values[0] = (val*) var463; -((struct instance_standard__NativeArray*)var471)->values[1] = (val*) var465; { -((void (*)(val* self, val* p0, long p1))(var469->class->vft[COLOR_standard__array__Array__with_native]))(var469, var471, var470) /* with_native on */; -} +var394 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); } +((struct instance_standard__NativeArray*)var389)->values[0]=var394; { -var472 = ((val* (*)(val* self))(var469->class->vft[COLOR_standard__string__Object__to_s]))(var469) /* to_s on */; +var395 = ((val*(*)(val* self))(var389->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var389); /* native_to_s on */ } +varonce388 = var389; { -nit___nit__CodeWriter___add_decl(var460, var472); /* Direct call abstract_compiler#CodeWriter#add_decl on */ +nit___nit__CodeWriter___add_decl(var385, var395); /* Direct call abstract_compiler#CodeWriter#add_decl on */ } { { /* Inline abstract_compiler#AbstractCompiler#header (self) on */ -var475 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ -if (unlikely(var475 == NULL)) { +var398 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ +if (unlikely(var398 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 569); +fatal_exit(1); } -var473 = var475; -RET_LABEL474:(void)0; +var396 = var398; +RET_LABEL397:(void)0; } } -if (varonce476) { -var477 = varonce476; +if (likely(varonce399!=NULL)) { +var400 = varonce399; } else { -var478 = "};"; -var479 = 2; -var480 = standard___standard__NativeString___to_s_with_length(var478, var479); -var477 = var480; -varonce476 = var477; +var401 = "};"; +var402 = standard___standard__NativeString___to_s_with_length(var401, 2l); +var400 = var402; +varonce399 = var400; } { -nit___nit__CodeWriter___add_decl(var473, var477); /* Direct call abstract_compiler#CodeWriter#add_decl on */ +nit___nit__CodeWriter___add_decl(var396, var400); /* Direct call abstract_compiler#CodeWriter#add_decl on */ } -if (varonce481) { -var482 = varonce481; +if (unlikely(varonce403==NULL)) { +var404 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce405!=NULL)) { +var406 = varonce405; } else { -var483 = "BOX_"; -var484 = 4; -var485 = standard___standard__NativeString___to_s_with_length(var483, var484); -var482 = var485; -varonce481 = var482; -} -var486 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var486 = array_instance Array[Object] */ -var487 = 2; -var488 = NEW_standard__NativeArray(var487, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var488)->values[0] = (val*) var482; -((struct instance_standard__NativeArray*)var488)->values[1] = (val*) var_c_name; -{ -((void (*)(val* self, val* p0, long p1))(var486->class->vft[COLOR_standard__array__Array__with_native]))(var486, var488, var487) /* with_native on */; +var407 = "BOX_"; +var408 = standard___standard__NativeString___to_s_with_length(var407, 4l); +var406 = var408; +varonce405 = var406; } +((struct instance_standard__NativeArray*)var404)->values[0]=var406; +} else { +var404 = varonce403; +varonce403 = NULL; } +((struct instance_standard__NativeArray*)var404)->values[1]=var_c_name; { -var489 = ((val* (*)(val* self))(var486->class->vft[COLOR_standard__string__Object__to_s]))(var486) /* to_s on */; +var409 = ((val*(*)(val* self))(var404->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var404); /* native_to_s on */ } -if (varonce490) { -var491 = varonce490; +varonce403 = var404; +if (unlikely(varonce410==NULL)) { +var411 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce412!=NULL)) { +var413 = varonce412; } else { -var492 = "val* BOX_"; -var493 = 9; -var494 = standard___standard__NativeString___to_s_with_length(var492, var493); -var491 = var494; -varonce490 = var491; +var414 = "val* BOX_"; +var415 = standard___standard__NativeString___to_s_with_length(var414, 9l); +var413 = var415; +varonce412 = var413; } -if (varonce495) { -var496 = varonce495; +((struct instance_standard__NativeArray*)var411)->values[0]=var413; +if (likely(varonce416!=NULL)) { +var417 = varonce416; } else { -var497 = "("; -var498 = 1; -var499 = standard___standard__NativeString___to_s_with_length(var497, var498); -var496 = var499; -varonce495 = var496; +var418 = "("; +var419 = standard___standard__NativeString___to_s_with_length(var418, 1l); +var417 = var419; +varonce416 = var417; } -{ -var500 = nit__abstract_compiler___MClassType___MType__ctype_extern(var_mtype); +((struct instance_standard__NativeArray*)var411)->values[2]=var417; +if (likely(varonce420!=NULL)) { +var421 = varonce420; +} else { +var422 = ");"; +var423 = standard___standard__NativeString___to_s_with_length(var422, 2l); +var421 = var423; +varonce420 = var421; } -if (varonce501) { -var502 = varonce501; +((struct instance_standard__NativeArray*)var411)->values[4]=var421; } else { -var503 = ");"; -var504 = 2; -var505 = standard___standard__NativeString___to_s_with_length(var503, var504); -var502 = var505; -varonce501 = var502; +var411 = varonce410; +varonce410 = NULL; } -var506 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var506 = array_instance Array[Object] */ -var507 = 5; -var508 = NEW_standard__NativeArray(var507, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var508)->values[0] = (val*) var491; -((struct instance_standard__NativeArray*)var508)->values[1] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var508)->values[2] = (val*) var496; -((struct instance_standard__NativeArray*)var508)->values[3] = (val*) var500; -((struct instance_standard__NativeArray*)var508)->values[4] = (val*) var502; +((struct instance_standard__NativeArray*)var411)->values[1]=var_c_name; { -((void (*)(val* self, val* p0, long p1))(var506->class->vft[COLOR_standard__array__Array__with_native]))(var506, var508, var507) /* with_native on */; -} +var424 = nit__abstract_compiler___MClassType___MType__ctype_extern(var_mtype); } +((struct instance_standard__NativeArray*)var411)->values[3]=var424; { -var509 = ((val* (*)(val* self))(var506->class->vft[COLOR_standard__string__Object__to_s]))(var506) /* to_s on */; +var425 = ((val*(*)(val* self))(var411->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var411); /* native_to_s on */ } +varonce410 = var411; { -nit___nit__AbstractCompiler___provide_declaration(self, var489, var509); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on */ +nit___nit__AbstractCompiler___provide_declaration(self, var409, var425); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on */ } -if (varonce510) { -var511 = varonce510; +if (unlikely(varonce426==NULL)) { +var427 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce428!=NULL)) { +var429 = varonce428; } else { -var512 = "/* allocate "; -var513 = 12; -var514 = standard___standard__NativeString___to_s_with_length(var512, var513); -var511 = var514; -varonce510 = var511; +var430 = "/* allocate "; +var431 = standard___standard__NativeString___to_s_with_length(var430, 12l); +var429 = var431; +varonce428 = var429; } -if (varonce515) { -var516 = varonce515; +((struct instance_standard__NativeArray*)var427)->values[0]=var429; +if (likely(varonce432!=NULL)) { +var433 = varonce432; } else { -var517 = " */"; -var518 = 3; -var519 = standard___standard__NativeString___to_s_with_length(var517, var518); -var516 = var519; -varonce515 = var516; +var434 = " */"; +var435 = standard___standard__NativeString___to_s_with_length(var434, 3l); +var433 = var435; +varonce432 = var433; } -var520 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var520 = array_instance Array[Object] */ -var521 = 3; -var522 = NEW_standard__NativeArray(var521, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var522)->values[0] = (val*) var511; -((struct instance_standard__NativeArray*)var522)->values[1] = (val*) var_mtype; -((struct instance_standard__NativeArray*)var522)->values[2] = (val*) var516; -{ -((void (*)(val* self, val* p0, long p1))(var520->class->vft[COLOR_standard__array__Array__with_native]))(var520, var522, var521) /* with_native on */; +((struct instance_standard__NativeArray*)var427)->values[2]=var433; +} else { +var427 = varonce426; +varonce426 = NULL; } +{ +var436 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_standard__string__Object__to_s]))(var_mtype); /* to_s on */ } +((struct instance_standard__NativeArray*)var427)->values[1]=var436; { -var523 = ((val* (*)(val* self))(var520->class->vft[COLOR_standard__string__Object__to_s]))(var520) /* to_s on */; +var437 = ((val*(*)(val* self))(var427->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var427); /* native_to_s on */ } +varonce426 = var427; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var523); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var437); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -if (varonce524) { -var525 = varonce524; +if (unlikely(varonce438==NULL)) { +var439 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce440!=NULL)) { +var441 = varonce440; } else { -var526 = "val* BOX_"; -var527 = 9; -var528 = standard___standard__NativeString___to_s_with_length(var526, var527); -var525 = var528; -varonce524 = var525; +var442 = "val* BOX_"; +var443 = standard___standard__NativeString___to_s_with_length(var442, 9l); +var441 = var443; +varonce440 = var441; } -{ -var529 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype) /* c_name on */; -} -if (varonce530) { -var531 = varonce530; +((struct instance_standard__NativeArray*)var439)->values[0]=var441; +if (likely(varonce444!=NULL)) { +var445 = varonce444; } else { -var532 = "("; -var533 = 1; -var534 = standard___standard__NativeString___to_s_with_length(var532, var533); -var531 = var534; -varonce530 = var531; +var446 = "("; +var447 = standard___standard__NativeString___to_s_with_length(var446, 1l); +var445 = var447; +varonce444 = var445; } -{ -var535 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); +((struct instance_standard__NativeArray*)var439)->values[2]=var445; +if (likely(varonce448!=NULL)) { +var449 = varonce448; +} else { +var450 = " value) {"; +var451 = standard___standard__NativeString___to_s_with_length(var450, 9l); +var449 = var451; +varonce448 = var449; } -if (varonce536) { -var537 = varonce536; +((struct instance_standard__NativeArray*)var439)->values[4]=var449; } else { -var538 = " value) {"; -var539 = 9; -var540 = standard___standard__NativeString___to_s_with_length(var538, var539); -var537 = var540; -varonce536 = var537; +var439 = varonce438; +varonce438 = NULL; } -var541 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var541 = array_instance Array[Object] */ -var542 = 5; -var543 = NEW_standard__NativeArray(var542, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var543)->values[0] = (val*) var525; -((struct instance_standard__NativeArray*)var543)->values[1] = (val*) var529; -((struct instance_standard__NativeArray*)var543)->values[2] = (val*) var531; -((struct instance_standard__NativeArray*)var543)->values[3] = (val*) var535; -((struct instance_standard__NativeArray*)var543)->values[4] = (val*) var537; { -((void (*)(val* self, val* p0, long p1))(var541->class->vft[COLOR_standard__array__Array__with_native]))(var541, var543, var542) /* with_native on */; +var452 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype); /* c_name on */ } +((struct instance_standard__NativeArray*)var439)->values[1]=var452; +{ +var453 = nit__abstract_compiler___MClassType___MType__ctype_extern(var_mtype); } +((struct instance_standard__NativeArray*)var439)->values[3]=var453; { -var544 = ((val* (*)(val* self))(var541->class->vft[COLOR_standard__string__Object__to_s]))(var541) /* to_s on */; +var454 = ((val*(*)(val* self))(var439->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var439); /* native_to_s on */ } +varonce438 = var439; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var544); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var454); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -if (varonce545) { -var546 = varonce545; +if (unlikely(varonce455==NULL)) { +var456 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce457!=NULL)) { +var458 = varonce457; } else { -var547 = "struct instance_"; -var548 = 16; -var549 = standard___standard__NativeString___to_s_with_length(var547, var548); -var546 = var549; -varonce545 = var546; +var459 = "struct instance_"; +var460 = standard___standard__NativeString___to_s_with_length(var459, 16l); +var458 = var460; +varonce457 = var458; } -if (varonce550) { -var551 = varonce550; +((struct instance_standard__NativeArray*)var456)->values[0]=var458; +if (likely(varonce461!=NULL)) { +var462 = varonce461; } else { -var552 = "*res = nit_alloc(sizeof(struct instance_"; -var553 = 40; -var554 = standard___standard__NativeString___to_s_with_length(var552, var553); -var551 = var554; -varonce550 = var551; +var463 = "*res = nit_alloc(sizeof(struct instance_"; +var464 = standard___standard__NativeString___to_s_with_length(var463, 40l); +var462 = var464; +varonce461 = var462; } -if (varonce555) { -var556 = varonce555; +((struct instance_standard__NativeArray*)var456)->values[2]=var462; +if (likely(varonce465!=NULL)) { +var466 = varonce465; } else { -var557 = "));"; -var558 = 3; -var559 = standard___standard__NativeString___to_s_with_length(var557, var558); -var556 = var559; -varonce555 = var556; -} -var560 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var560 = array_instance Array[Object] */ -var561 = 5; -var562 = NEW_standard__NativeArray(var561, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var562)->values[0] = (val*) var546; -((struct instance_standard__NativeArray*)var562)->values[1] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var562)->values[2] = (val*) var551; -((struct instance_standard__NativeArray*)var562)->values[3] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var562)->values[4] = (val*) var556; -{ -((void (*)(val* self, val* p0, long p1))(var560->class->vft[COLOR_standard__array__Array__with_native]))(var560, var562, var561) /* with_native on */; +var467 = "));"; +var468 = standard___standard__NativeString___to_s_with_length(var467, 3l); +var466 = var468; +varonce465 = var466; } +((struct instance_standard__NativeArray*)var456)->values[4]=var466; +} else { +var456 = varonce455; +varonce455 = NULL; } +((struct instance_standard__NativeArray*)var456)->values[1]=var_c_name; +((struct instance_standard__NativeArray*)var456)->values[3]=var_c_name; { -var563 = ((val* (*)(val* self))(var560->class->vft[COLOR_standard__string__Object__to_s]))(var560) /* to_s on */; +var469 = ((val*(*)(val* self))(var456->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var456); /* native_to_s on */ } +varonce455 = var456; { -nit___nit__AbstractCompilerVisitor___add(var_v, var563); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var469); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce564) { -var565 = varonce564; +if (unlikely(varonce470==NULL)) { +var471 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce472!=NULL)) { +var473 = varonce472; } else { -var566 = "class_"; -var567 = 6; -var568 = standard___standard__NativeString___to_s_with_length(var566, var567); -var565 = var568; -varonce564 = var565; -} -var569 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var569 = array_instance Array[Object] */ -var570 = 2; -var571 = NEW_standard__NativeArray(var570, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var571)->values[0] = (val*) var565; -((struct instance_standard__NativeArray*)var571)->values[1] = (val*) var_c_name; -{ -((void (*)(val* self, val* p0, long p1))(var569->class->vft[COLOR_standard__array__Array__with_native]))(var569, var571, var570) /* with_native on */; +var474 = "class_"; +var475 = standard___standard__NativeString___to_s_with_length(var474, 6l); +var473 = var475; +varonce472 = var473; } +((struct instance_standard__NativeArray*)var471)->values[0]=var473; +} else { +var471 = varonce470; +varonce470 = NULL; } +((struct instance_standard__NativeArray*)var471)->values[1]=var_c_name; { -var572 = ((val* (*)(val* self))(var569->class->vft[COLOR_standard__string__Object__to_s]))(var569) /* to_s on */; +var476 = ((val*(*)(val* self))(var471->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var471); /* native_to_s on */ } +varonce470 = var471; { -nit___nit__AbstractCompilerVisitor___require_declaration(var_v, var572); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +nit___nit__AbstractCompilerVisitor___require_declaration(var_v, var476); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ } -if (varonce573) { -var574 = varonce573; +if (unlikely(varonce477==NULL)) { +var478 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce479!=NULL)) { +var480 = varonce479; } else { -var575 = "res->class = &class_"; -var576 = 20; -var577 = standard___standard__NativeString___to_s_with_length(var575, var576); -var574 = var577; -varonce573 = var574; +var481 = "res->class = &class_"; +var482 = standard___standard__NativeString___to_s_with_length(var481, 20l); +var480 = var482; +varonce479 = var480; } -if (varonce578) { -var579 = varonce578; +((struct instance_standard__NativeArray*)var478)->values[0]=var480; +if (likely(varonce483!=NULL)) { +var484 = varonce483; } else { -var580 = ";"; -var581 = 1; -var582 = standard___standard__NativeString___to_s_with_length(var580, var581); -var579 = var582; -varonce578 = var579; -} -var583 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var583 = array_instance Array[Object] */ -var584 = 3; -var585 = NEW_standard__NativeArray(var584, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var585)->values[0] = (val*) var574; -((struct instance_standard__NativeArray*)var585)->values[1] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var585)->values[2] = (val*) var579; -{ -((void (*)(val* self, val* p0, long p1))(var583->class->vft[COLOR_standard__array__Array__with_native]))(var583, var585, var584) /* with_native on */; +var485 = ";"; +var486 = standard___standard__NativeString___to_s_with_length(var485, 1l); +var484 = var486; +varonce483 = var484; } +((struct instance_standard__NativeArray*)var478)->values[2]=var484; +} else { +var478 = varonce477; +varonce477 = NULL; } +((struct instance_standard__NativeArray*)var478)->values[1]=var_c_name; { -var586 = ((val* (*)(val* self))(var583->class->vft[COLOR_standard__string__Object__to_s]))(var583) /* to_s on */; +var487 = ((val*(*)(val* self))(var478->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var478); /* native_to_s on */ } +varonce477 = var478; { -nit___nit__AbstractCompilerVisitor___add(var_v, var586); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var487); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce587) { -var588 = varonce587; +if (likely(varonce488!=NULL)) { +var489 = varonce488; } else { -var589 = "res->value = value;"; -var590 = 19; -var591 = standard___standard__NativeString___to_s_with_length(var589, var590); -var588 = var591; -varonce587 = var588; +var490 = "res->value = value;"; +var491 = standard___standard__NativeString___to_s_with_length(var490, 19l); +var489 = var491; +varonce488 = var489; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var588); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var489); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce592) { -var593 = varonce592; +if (likely(varonce492!=NULL)) { +var493 = varonce492; } else { -var594 = "return (val*)res;"; -var595 = 17; -var596 = standard___standard__NativeString___to_s_with_length(var594, var595); -var593 = var596; -varonce592 = var593; +var494 = "return (val*)res;"; +var495 = standard___standard__NativeString___to_s_with_length(var494, 17l); +var493 = var495; +varonce492 = var493; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var593); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var493); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce597) { -var598 = varonce597; +if (likely(varonce496!=NULL)) { +var497 = varonce496; } else { -var599 = "}"; -var600 = 1; -var601 = standard___standard__NativeString___to_s_with_length(var599, var600); -var598 = var601; -varonce597 = var598; +var498 = "}"; +var499 = standard___standard__NativeString___to_s_with_length(var498, 1l); +var497 = var499; +varonce496 = var497; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var598); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var497); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } { { /* Inline model#MClassType#mclass (var_mtype) on */ -var604 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var604 == NULL)) { +var502 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var502 == 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); } -var602 = var604; -RET_LABEL603:(void)0; +var500 = var502; +RET_LABEL501:(void)0; } } { -{ /* Inline model#MClass#name (var602) on */ -var607 = var602->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ -if (unlikely(var607 == NULL)) { +{ /* Inline model#MClass#name (var500) on */ +var505 = var500->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ +if (unlikely(var505 == 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); } -var605 = var607; -RET_LABEL606:(void)0; +var503 = var505; +RET_LABEL504:(void)0; } } -if (varonce608) { -var609 = varonce608; +if (likely(varonce506!=NULL)) { +var507 = varonce506; } else { -var610 = "Pointer"; -var611 = 7; -var612 = standard___standard__NativeString___to_s_with_length(var610, var611); -var609 = var612; -varonce608 = var609; +var508 = "Pointer"; +var509 = standard___standard__NativeString___to_s_with_length(var508, 7l); +var507 = var509; +varonce506 = var507; } { -{ /* Inline kernel#Object#!= (var605,var609) on */ -var_other = var609; +{ /* Inline kernel#Object#!= (var503,var507) on */ +var_other = var507; { -var615 = ((short int (*)(val* self, val* p0))(var605->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var605, var_other) /* == on */; +var512 = ((short int(*)(val* self, val* p0))(var503->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var503, var_other); /* == on */ } -var616 = !var615; -var613 = var616; -goto RET_LABEL614; -RET_LABEL614:(void)0; +var513 = !var512; +var510 = var513; +goto RET_LABEL511; +RET_LABEL511:(void)0; } } -if (var613){ +if (var510){ goto RET_LABEL; } else { } { -var617 = nit___nit__SeparateErasureCompiler___nit__abstract_compiler__AbstractCompiler__new_visitor(self); +var514 = nit___nit__SeparateErasureCompiler___nit__abstract_compiler__AbstractCompiler__new_visitor(self); } -var_v = var617; -if (varonce618) { -var619 = varonce618; +var_v = var514; +if (unlikely(varonce515==NULL)) { +var516 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce517!=NULL)) { +var518 = varonce517; } else { -var620 = "NEW_"; -var621 = 4; -var622 = standard___standard__NativeString___to_s_with_length(var620, var621); -var619 = var622; -varonce618 = var619; -} -var623 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var623 = array_instance Array[Object] */ -var624 = 2; -var625 = NEW_standard__NativeArray(var624, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var625)->values[0] = (val*) var619; -((struct instance_standard__NativeArray*)var625)->values[1] = (val*) var_c_name; -{ -((void (*)(val* self, val* p0, long p1))(var623->class->vft[COLOR_standard__array__Array__with_native]))(var623, var625, var624) /* with_native on */; +var519 = "NEW_"; +var520 = standard___standard__NativeString___to_s_with_length(var519, 4l); +var518 = var520; +varonce517 = var518; } +((struct instance_standard__NativeArray*)var516)->values[0]=var518; +} else { +var516 = varonce515; +varonce515 = NULL; } +((struct instance_standard__NativeArray*)var516)->values[1]=var_c_name; { -var626 = ((val* (*)(val* self))(var623->class->vft[COLOR_standard__string__Object__to_s]))(var623) /* to_s on */; +var521 = ((val*(*)(val* self))(var516->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var516); /* native_to_s on */ } -{ -var627 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); +varonce515 = var516; +if (unlikely(varonce522==NULL)) { +var523 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce524!=NULL)) { +var525 = varonce524; +} else { +var526 = " NEW_"; +var527 = standard___standard__NativeString___to_s_with_length(var526, 5l); +var525 = var527; +varonce524 = var525; } -if (varonce628) { -var629 = varonce628; +((struct instance_standard__NativeArray*)var523)->values[1]=var525; +if (likely(varonce528!=NULL)) { +var529 = varonce528; } else { -var630 = " NEW_"; -var631 = 5; -var632 = standard___standard__NativeString___to_s_with_length(var630, var631); -var629 = var632; -varonce628 = var629; +var530 = "();"; +var531 = standard___standard__NativeString___to_s_with_length(var530, 3l); +var529 = var531; +varonce528 = var529; } -if (varonce633) { -var634 = varonce633; +((struct instance_standard__NativeArray*)var523)->values[3]=var529; } else { -var635 = "();"; -var636 = 3; -var637 = standard___standard__NativeString___to_s_with_length(var635, var636); -var634 = var637; -varonce633 = var634; +var523 = varonce522; +varonce522 = NULL; } -var638 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var638 = array_instance Array[Object] */ -var639 = 4; -var640 = NEW_standard__NativeArray(var639, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var640)->values[0] = (val*) var627; -((struct instance_standard__NativeArray*)var640)->values[1] = (val*) var629; -((struct instance_standard__NativeArray*)var640)->values[2] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var640)->values[3] = (val*) var634; { -((void (*)(val* self, val* p0, long p1))(var638->class->vft[COLOR_standard__array__Array__with_native]))(var638, var640, var639) /* with_native on */; -} +var532 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); } +((struct instance_standard__NativeArray*)var523)->values[0]=var532; +((struct instance_standard__NativeArray*)var523)->values[2]=var_c_name; { -var641 = ((val* (*)(val* self))(var638->class->vft[COLOR_standard__string__Object__to_s]))(var638) /* to_s on */; +var533 = ((val*(*)(val* self))(var523->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var523); /* native_to_s on */ } +varonce522 = var523; { -nit___nit__AbstractCompiler___provide_declaration(self, var626, var641); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on */ +nit___nit__AbstractCompiler___provide_declaration(self, var521, var533); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on */ +} +if (unlikely(varonce534==NULL)) { +var535 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce536!=NULL)) { +var537 = varonce536; +} else { +var538 = "/* allocate "; +var539 = standard___standard__NativeString___to_s_with_length(var538, 12l); +var537 = var539; +varonce536 = var537; } -if (varonce642) { -var643 = varonce642; +((struct instance_standard__NativeArray*)var535)->values[0]=var537; +if (likely(varonce540!=NULL)) { +var541 = varonce540; } else { -var644 = "/* allocate "; -var645 = 12; -var646 = standard___standard__NativeString___to_s_with_length(var644, var645); -var643 = var646; -varonce642 = var643; +var542 = " */"; +var543 = standard___standard__NativeString___to_s_with_length(var542, 3l); +var541 = var543; +varonce540 = var541; } -if (varonce647) { -var648 = varonce647; +((struct instance_standard__NativeArray*)var535)->values[2]=var541; } else { -var649 = " */"; -var650 = 3; -var651 = standard___standard__NativeString___to_s_with_length(var649, var650); -var648 = var651; -varonce647 = var648; +var535 = varonce534; +varonce534 = NULL; } -var652 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var652 = array_instance Array[Object] */ -var653 = 3; -var654 = NEW_standard__NativeArray(var653, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var654)->values[0] = (val*) var643; -((struct instance_standard__NativeArray*)var654)->values[1] = (val*) var_mtype; -((struct instance_standard__NativeArray*)var654)->values[2] = (val*) var648; { -((void (*)(val* self, val* p0, long p1))(var652->class->vft[COLOR_standard__array__Array__with_native]))(var652, var654, var653) /* with_native on */; -} +var544 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_standard__string__Object__to_s]))(var_mtype); /* to_s on */ } +((struct instance_standard__NativeArray*)var535)->values[1]=var544; { -var655 = ((val* (*)(val* self))(var652->class->vft[COLOR_standard__string__Object__to_s]))(var652) /* to_s on */; +var545 = ((val*(*)(val* self))(var535->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var535); /* native_to_s on */ } +varonce534 = var535; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var655); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var545); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -{ -var656 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); +if (unlikely(varonce546==NULL)) { +var547 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce548!=NULL)) { +var549 = varonce548; +} else { +var550 = " NEW_"; +var551 = standard___standard__NativeString___to_s_with_length(var550, 5l); +var549 = var551; +varonce548 = var549; } -if (varonce657) { -var658 = varonce657; +((struct instance_standard__NativeArray*)var547)->values[1]=var549; +if (likely(varonce552!=NULL)) { +var553 = varonce552; } else { -var659 = " NEW_"; -var660 = 5; -var661 = standard___standard__NativeString___to_s_with_length(var659, var660); -var658 = var661; -varonce657 = var658; +var554 = "() {"; +var555 = standard___standard__NativeString___to_s_with_length(var554, 4l); +var553 = var555; +varonce552 = var553; } -if (varonce662) { -var663 = varonce662; +((struct instance_standard__NativeArray*)var547)->values[3]=var553; } else { -var664 = "() {"; -var665 = 4; -var666 = standard___standard__NativeString___to_s_with_length(var664, var665); -var663 = var666; -varonce662 = var663; +var547 = varonce546; +varonce546 = NULL; } -var667 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var667 = array_instance Array[Object] */ -var668 = 4; -var669 = NEW_standard__NativeArray(var668, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var669)->values[0] = (val*) var656; -((struct instance_standard__NativeArray*)var669)->values[1] = (val*) var658; -((struct instance_standard__NativeArray*)var669)->values[2] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var669)->values[3] = (val*) var663; { -((void (*)(val* self, val* p0, long p1))(var667->class->vft[COLOR_standard__array__Array__with_native]))(var667, var669, var668) /* with_native on */; -} +var556 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); } +((struct instance_standard__NativeArray*)var547)->values[0]=var556; +((struct instance_standard__NativeArray*)var547)->values[2]=var_c_name; { -var670 = ((val* (*)(val* self))(var667->class->vft[COLOR_standard__string__Object__to_s]))(var667) /* to_s on */; +var557 = ((val*(*)(val* self))(var547->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var547); /* native_to_s on */ } +varonce546 = var547; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var670); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var557); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } if (var_is_dead){ -if (varonce671) { -var672 = varonce671; +if (unlikely(varonce558==NULL)) { +var559 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce560!=NULL)) { +var561 = varonce560; } else { -var673 = " is DEAD"; -var674 = 8; -var675 = standard___standard__NativeString___to_s_with_length(var673, var674); -var672 = var675; -varonce671 = var672; +var562 = " is DEAD"; +var563 = standard___standard__NativeString___to_s_with_length(var562, 8l); +var561 = var563; +varonce560 = var561; } -var676 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var676 = array_instance Array[Object] */ -var677 = 2; -var678 = NEW_standard__NativeArray(var677, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var678)->values[0] = (val*) var_mclass; -((struct instance_standard__NativeArray*)var678)->values[1] = (val*) var672; -{ -((void (*)(val* self, val* p0, long p1))(var676->class->vft[COLOR_standard__array__Array__with_native]))(var676, var678, var677) /* with_native on */; +((struct instance_standard__NativeArray*)var559)->values[1]=var561; +} else { +var559 = varonce558; +varonce558 = NULL; } +{ +var564 = ((val*(*)(val* self))(var_mclass->class->vft[COLOR_standard__string__Object__to_s]))(var_mclass); /* to_s on */ } +((struct instance_standard__NativeArray*)var559)->values[0]=var564; { -var679 = ((val* (*)(val* self))(var676->class->vft[COLOR_standard__string__Object__to_s]))(var676) /* to_s on */; +var565 = ((val*(*)(val* self))(var559->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var559); /* native_to_s on */ } +varonce558 = var559; { -nit___nit__AbstractCompilerVisitor___add_abort(var_v, var679); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ +nit___nit__AbstractCompilerVisitor___add_abort(var_v, var565); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ } } else { -if (varonce680) { -var681 = varonce680; +if (likely(varonce566!=NULL)) { +var567 = varonce566; } else { -var682 = "self"; -var683 = 4; -var684 = standard___standard__NativeString___to_s_with_length(var682, var683); -var681 = var684; -varonce680 = var681; +var568 = "self"; +var569 = standard___standard__NativeString___to_s_with_length(var568, 4l); +var567 = var569; +varonce566 = var567; } { -var685 = nit___nit__AbstractCompilerVisitor___new_named_var(var_v, var_mtype, var681); +var570 = nit___nit__AbstractCompilerVisitor___new_named_var(var_v, var_mtype, var567); } -var_res = var685; -var686 = 1; +var_res = var570; { -{ /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res,var686) on */ -var_res->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___is_exact].s = var686; /* _is_exact on */ -RET_LABEL687:(void)0; +{ /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res,1) on */ +var_res->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___is_exact].s = 1; /* _is_exact on */ +RET_LABEL571:(void)0; } } -if (varonce688) { -var689 = varonce688; +if (unlikely(varonce572==NULL)) { +var573 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce574!=NULL)) { +var575 = varonce574; } else { -var690 = " = nit_alloc(sizeof(struct instance_"; -var691 = 36; -var692 = standard___standard__NativeString___to_s_with_length(var690, var691); -var689 = var692; -varonce688 = var689; +var576 = " = nit_alloc(sizeof(struct instance_"; +var577 = standard___standard__NativeString___to_s_with_length(var576, 36l); +var575 = var577; +varonce574 = var575; } -{ -var693 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype) /* c_name on */; +((struct instance_standard__NativeArray*)var573)->values[1]=var575; +if (likely(varonce578!=NULL)) { +var579 = varonce578; +} else { +var580 = "));"; +var581 = standard___standard__NativeString___to_s_with_length(var580, 3l); +var579 = var581; +varonce578 = var579; } -if (varonce694) { -var695 = varonce694; +((struct instance_standard__NativeArray*)var573)->values[3]=var579; } else { -var696 = "));"; -var697 = 3; -var698 = standard___standard__NativeString___to_s_with_length(var696, var697); -var695 = var698; -varonce694 = var695; +var573 = varonce572; +varonce572 = NULL; } -var699 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var699 = array_instance Array[Object] */ -var700 = 4; -var701 = NEW_standard__NativeArray(var700, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var701)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var701)->values[1] = (val*) var689; -((struct instance_standard__NativeArray*)var701)->values[2] = (val*) var693; -((struct instance_standard__NativeArray*)var701)->values[3] = (val*) var695; { -((void (*)(val* self, val* p0, long p1))(var699->class->vft[COLOR_standard__array__Array__with_native]))(var699, var701, var700) /* with_native on */; +var582 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var573)->values[0]=var582; +{ +var583 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype); /* c_name on */ } +((struct instance_standard__NativeArray*)var573)->values[2]=var583; { -var702 = ((val* (*)(val* self))(var699->class->vft[COLOR_standard__string__Object__to_s]))(var699) /* to_s on */; +var584 = ((val*(*)(val* self))(var573->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var573); /* native_to_s on */ } +varonce572 = var573; { -nit___nit__AbstractCompilerVisitor___add(var_v, var702); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var584); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce703) { -var704 = varonce703; +if (unlikely(varonce585==NULL)) { +var586 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce587!=NULL)) { +var588 = varonce587; } else { -var705 = "class_"; -var706 = 6; -var707 = standard___standard__NativeString___to_s_with_length(var705, var706); -var704 = var707; -varonce703 = var704; -} -var708 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var708 = array_instance Array[Object] */ -var709 = 2; -var710 = NEW_standard__NativeArray(var709, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var710)->values[0] = (val*) var704; -((struct instance_standard__NativeArray*)var710)->values[1] = (val*) var_c_name; -{ -((void (*)(val* self, val* p0, long p1))(var708->class->vft[COLOR_standard__array__Array__with_native]))(var708, var710, var709) /* with_native on */; +var589 = "class_"; +var590 = standard___standard__NativeString___to_s_with_length(var589, 6l); +var588 = var590; +varonce587 = var588; } +((struct instance_standard__NativeArray*)var586)->values[0]=var588; +} else { +var586 = varonce585; +varonce585 = NULL; } +((struct instance_standard__NativeArray*)var586)->values[1]=var_c_name; { -var711 = ((val* (*)(val* self))(var708->class->vft[COLOR_standard__string__Object__to_s]))(var708) /* to_s on */; +var591 = ((val*(*)(val* self))(var586->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var586); /* native_to_s on */ } +varonce585 = var586; { -nit___nit__AbstractCompilerVisitor___require_declaration(var_v, var711); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +nit___nit__AbstractCompilerVisitor___require_declaration(var_v, var591); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ } -if (varonce712) { -var713 = varonce712; +if (unlikely(varonce592==NULL)) { +var593 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce594!=NULL)) { +var595 = varonce594; } else { -var714 = "->class = &class_"; -var715 = 17; -var716 = standard___standard__NativeString___to_s_with_length(var714, var715); -var713 = var716; -varonce712 = var713; +var596 = "->class = &class_"; +var597 = standard___standard__NativeString___to_s_with_length(var596, 17l); +var595 = var597; +varonce594 = var595; } -if (varonce717) { -var718 = varonce717; +((struct instance_standard__NativeArray*)var593)->values[1]=var595; +if (likely(varonce598!=NULL)) { +var599 = varonce598; } else { -var719 = ";"; -var720 = 1; -var721 = standard___standard__NativeString___to_s_with_length(var719, var720); -var718 = var721; -varonce717 = var718; +var600 = ";"; +var601 = standard___standard__NativeString___to_s_with_length(var600, 1l); +var599 = var601; +varonce598 = var599; } -var722 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var722 = array_instance Array[Object] */ -var723 = 4; -var724 = NEW_standard__NativeArray(var723, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var724)->values[0] = (val*) var_res; -((struct instance_standard__NativeArray*)var724)->values[1] = (val*) var713; -((struct instance_standard__NativeArray*)var724)->values[2] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var724)->values[3] = (val*) var718; -{ -((void (*)(val* self, val* p0, long p1))(var722->class->vft[COLOR_standard__array__Array__with_native]))(var722, var724, var723) /* with_native on */; +((struct instance_standard__NativeArray*)var593)->values[3]=var599; +} else { +var593 = varonce592; +varonce592 = NULL; } +{ +var602 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var593)->values[0]=var602; +((struct instance_standard__NativeArray*)var593)->values[2]=var_c_name; { -var725 = ((val* (*)(val* self))(var722->class->vft[COLOR_standard__string__Object__to_s]))(var722) /* to_s on */; +var603 = ((val*(*)(val* self))(var593->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var593); /* native_to_s on */ } +varonce592 = var593; { -nit___nit__AbstractCompilerVisitor___add(var_v, var725); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var603); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce726) { -var727 = varonce726; +if (unlikely(varonce604==NULL)) { +var605 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce606!=NULL)) { +var607 = varonce606; } else { -var728 = "((struct instance_"; -var729 = 18; -var730 = standard___standard__NativeString___to_s_with_length(var728, var729); -var727 = var730; -varonce726 = var727; +var608 = "((struct instance_"; +var609 = standard___standard__NativeString___to_s_with_length(var608, 18l); +var607 = var609; +varonce606 = var607; } -{ -var731 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype) /* c_name on */; +((struct instance_standard__NativeArray*)var605)->values[0]=var607; +if (likely(varonce610!=NULL)) { +var611 = varonce610; +} else { +var612 = "*)"; +var613 = standard___standard__NativeString___to_s_with_length(var612, 2l); +var611 = var613; +varonce610 = var611; } -if (varonce732) { -var733 = varonce732; +((struct instance_standard__NativeArray*)var605)->values[2]=var611; +if (likely(varonce614!=NULL)) { +var615 = varonce614; } else { -var734 = "*)"; -var735 = 2; -var736 = standard___standard__NativeString___to_s_with_length(var734, var735); -var733 = var736; -varonce732 = var733; +var616 = ")->value = NULL;"; +var617 = standard___standard__NativeString___to_s_with_length(var616, 16l); +var615 = var617; +varonce614 = var615; } -if (varonce737) { -var738 = varonce737; +((struct instance_standard__NativeArray*)var605)->values[4]=var615; } else { -var739 = ")->value = NULL;"; -var740 = 16; -var741 = standard___standard__NativeString___to_s_with_length(var739, var740); -var738 = var741; -varonce737 = var738; +var605 = varonce604; +varonce604 = NULL; } -var742 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var742 = array_instance Array[Object] */ -var743 = 5; -var744 = NEW_standard__NativeArray(var743, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var744)->values[0] = (val*) var727; -((struct instance_standard__NativeArray*)var744)->values[1] = (val*) var731; -((struct instance_standard__NativeArray*)var744)->values[2] = (val*) var733; -((struct instance_standard__NativeArray*)var744)->values[3] = (val*) var_res; -((struct instance_standard__NativeArray*)var744)->values[4] = (val*) var738; { -((void (*)(val* self, val* p0, long p1))(var742->class->vft[COLOR_standard__array__Array__with_native]))(var742, var744, var743) /* with_native on */; +var618 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_mtype); /* c_name on */ } +((struct instance_standard__NativeArray*)var605)->values[1]=var618; +{ +var619 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var605)->values[3]=var619; { -var745 = ((val* (*)(val* self))(var742->class->vft[COLOR_standard__string__Object__to_s]))(var742) /* to_s on */; +var620 = ((val*(*)(val* self))(var605->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var605); /* native_to_s on */ } +varonce604 = var605; { -nit___nit__AbstractCompilerVisitor___add(var_v, var745); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var620); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce746) { -var747 = varonce746; +if (unlikely(varonce621==NULL)) { +var622 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce623!=NULL)) { +var624 = varonce623; } else { -var748 = "return "; -var749 = 7; -var750 = standard___standard__NativeString___to_s_with_length(var748, var749); -var747 = var750; -varonce746 = var747; +var625 = "return "; +var626 = standard___standard__NativeString___to_s_with_length(var625, 7l); +var624 = var626; +varonce623 = var624; } -if (varonce751) { -var752 = varonce751; +((struct instance_standard__NativeArray*)var622)->values[0]=var624; +if (likely(varonce627!=NULL)) { +var628 = varonce627; } else { -var753 = ";"; -var754 = 1; -var755 = standard___standard__NativeString___to_s_with_length(var753, var754); -var752 = var755; -varonce751 = var752; +var629 = ";"; +var630 = standard___standard__NativeString___to_s_with_length(var629, 1l); +var628 = var630; +varonce627 = var628; } -var756 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var756 = array_instance Array[Object] */ -var757 = 3; -var758 = NEW_standard__NativeArray(var757, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var758)->values[0] = (val*) var747; -((struct instance_standard__NativeArray*)var758)->values[1] = (val*) var_res; -((struct instance_standard__NativeArray*)var758)->values[2] = (val*) var752; -{ -((void (*)(val* self, val* p0, long p1))(var756->class->vft[COLOR_standard__array__Array__with_native]))(var756, var758, var757) /* with_native on */; +((struct instance_standard__NativeArray*)var622)->values[2]=var628; +} else { +var622 = varonce621; +varonce621 = NULL; } +{ +var631 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var622)->values[1]=var631; { -var759 = ((val* (*)(val* self))(var756->class->vft[COLOR_standard__string__Object__to_s]))(var756) /* to_s on */; +var632 = ((val*(*)(val* self))(var622->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var622); /* native_to_s on */ } +varonce621 = var622; { -nit___nit__AbstractCompilerVisitor___add(var_v, var759); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var632); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } } -if (varonce760) { -var761 = varonce760; +if (likely(varonce633!=NULL)) { +var634 = varonce633; } else { -var762 = "}"; -var763 = 1; -var764 = standard___standard__NativeString___to_s_with_length(var762, var763); -var761 = var764; -varonce760 = var761; +var635 = "}"; +var636 = standard___standard__NativeString___to_s_with_length(var635, 1l); +var634 = var636; +varonce633 = var634; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var761); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var634); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } goto RET_LABEL; } else { { { /* Inline model#MClass#name (var_mclass) on */ -var767 = var_mclass->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ -if (unlikely(var767 == NULL)) { +var639 = var_mclass->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ +if (unlikely(var639 == 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); } -var765 = var767; -RET_LABEL766:(void)0; +var637 = var639; +RET_LABEL638:(void)0; } } -if (varonce768) { -var769 = varonce768; +if (likely(varonce640!=NULL)) { +var641 = varonce640; } else { -var770 = "NativeArray"; -var771 = 11; -var772 = standard___standard__NativeString___to_s_with_length(var770, var771); -var769 = var772; -varonce768 = var769; +var642 = "NativeArray"; +var643 = standard___standard__NativeString___to_s_with_length(var642, 11l); +var641 = var643; +varonce640 = var641; } { -var773 = ((short int (*)(val* self, val* p0))(var765->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var765, var769) /* == on */; +var644 = ((short int(*)(val* self, val* p0))(var637->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var637, var641); /* == on */ } -if (var773){ +if (var644){ { { /* Inline abstract_compiler#AbstractCompiler#header (self) on */ -var776 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ -if (unlikely(var776 == NULL)) { +var647 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ +if (unlikely(var647 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 569); +fatal_exit(1); } -var774 = var776; -RET_LABEL775:(void)0; +var645 = var647; +RET_LABEL646:(void)0; } } -if (varonce777) { -var778 = varonce777; +if (unlikely(varonce648==NULL)) { +var649 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce650!=NULL)) { +var651 = varonce650; } else { -var779 = "struct instance_"; -var780 = 16; -var781 = standard___standard__NativeString___to_s_with_length(var779, var780); -var778 = var781; -varonce777 = var778; +var652 = "struct instance_"; +var653 = standard___standard__NativeString___to_s_with_length(var652, 16l); +var651 = var653; +varonce650 = var651; } -if (varonce782) { -var783 = varonce782; +((struct instance_standard__NativeArray*)var649)->values[0]=var651; +if (likely(varonce654!=NULL)) { +var655 = varonce654; } else { -var784 = " {"; -var785 = 2; -var786 = standard___standard__NativeString___to_s_with_length(var784, var785); -var783 = var786; -varonce782 = var783; -} -var787 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var787 = array_instance Array[Object] */ -var788 = 3; -var789 = NEW_standard__NativeArray(var788, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var789)->values[0] = (val*) var778; -((struct instance_standard__NativeArray*)var789)->values[1] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var789)->values[2] = (val*) var783; -{ -((void (*)(val* self, val* p0, long p1))(var787->class->vft[COLOR_standard__array__Array__with_native]))(var787, var789, var788) /* with_native on */; +var656 = " {"; +var657 = standard___standard__NativeString___to_s_with_length(var656, 2l); +var655 = var657; +varonce654 = var655; } +((struct instance_standard__NativeArray*)var649)->values[2]=var655; +} else { +var649 = varonce648; +varonce648 = NULL; } +((struct instance_standard__NativeArray*)var649)->values[1]=var_c_name; { -var790 = ((val* (*)(val* self))(var787->class->vft[COLOR_standard__string__Object__to_s]))(var787) /* to_s on */; +var658 = ((val*(*)(val* self))(var649->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var649); /* native_to_s on */ } +varonce648 = var649; { -nit___nit__CodeWriter___add_decl(var774, var790); /* Direct call abstract_compiler#CodeWriter#add_decl on */ +nit___nit__CodeWriter___add_decl(var645, var658); /* Direct call abstract_compiler#CodeWriter#add_decl on */ } { { /* Inline abstract_compiler#AbstractCompiler#header (self) on */ -var793 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ -if (unlikely(var793 == NULL)) { +var661 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ +if (unlikely(var661 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 569); +fatal_exit(1); } -var791 = var793; -RET_LABEL792:(void)0; +var659 = var661; +RET_LABEL660:(void)0; } } -if (varonce794) { -var795 = varonce794; +if (likely(varonce662!=NULL)) { +var663 = varonce662; } else { -var796 = "const struct class *class;"; -var797 = 26; -var798 = standard___standard__NativeString___to_s_with_length(var796, var797); -var795 = var798; -varonce794 = var795; +var664 = "const struct class *class;"; +var665 = standard___standard__NativeString___to_s_with_length(var664, 26l); +var663 = var665; +varonce662 = var663; } { -nit___nit__CodeWriter___add_decl(var791, var795); /* Direct call abstract_compiler#CodeWriter#add_decl on */ +nit___nit__CodeWriter___add_decl(var659, var663); /* Direct call abstract_compiler#CodeWriter#add_decl on */ } { { /* Inline abstract_compiler#AbstractCompiler#header (self) on */ -var801 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ -if (unlikely(var801 == NULL)) { +var668 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ +if (unlikely(var668 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 569); +fatal_exit(1); } -var799 = var801; -RET_LABEL800:(void)0; +var666 = var668; +RET_LABEL667:(void)0; } } -if (varonce802) { -var803 = varonce802; +if (likely(varonce669!=NULL)) { +var670 = varonce669; } else { -var804 = "int length;"; -var805 = 11; -var806 = standard___standard__NativeString___to_s_with_length(var804, var805); -var803 = var806; -varonce802 = var803; +var671 = "int length;"; +var672 = standard___standard__NativeString___to_s_with_length(var671, 11l); +var670 = var672; +varonce669 = var670; } { -nit___nit__CodeWriter___add_decl(var799, var803); /* Direct call abstract_compiler#CodeWriter#add_decl on */ +nit___nit__CodeWriter___add_decl(var666, var670); /* Direct call abstract_compiler#CodeWriter#add_decl on */ } { { /* Inline abstract_compiler#AbstractCompiler#header (self) on */ -var809 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ -if (unlikely(var809 == NULL)) { +var675 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ +if (unlikely(var675 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 569); +fatal_exit(1); } -var807 = var809; -RET_LABEL808:(void)0; +var673 = var675; +RET_LABEL674:(void)0; } } -if (varonce810) { -var811 = varonce810; +if (likely(varonce676!=NULL)) { +var677 = varonce676; } else { -var812 = "val* values[];"; -var813 = 14; -var814 = standard___standard__NativeString___to_s_with_length(var812, var813); -var811 = var814; -varonce810 = var811; +var678 = "val* values[];"; +var679 = standard___standard__NativeString___to_s_with_length(var678, 14l); +var677 = var679; +varonce676 = var677; } { -nit___nit__CodeWriter___add_decl(var807, var811); /* Direct call abstract_compiler#CodeWriter#add_decl on */ +nit___nit__CodeWriter___add_decl(var673, var677); /* Direct call abstract_compiler#CodeWriter#add_decl on */ } { { /* Inline abstract_compiler#AbstractCompiler#header (self) on */ -var817 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ -if (unlikely(var817 == NULL)) { +var682 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on */ +if (unlikely(var682 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 569); +fatal_exit(1); } -var815 = var817; -RET_LABEL816:(void)0; +var680 = var682; +RET_LABEL681:(void)0; } } -if (varonce818) { -var819 = varonce818; +if (likely(varonce683!=NULL)) { +var684 = varonce683; } else { -var820 = "};"; -var821 = 2; -var822 = standard___standard__NativeString___to_s_with_length(var820, var821); -var819 = var822; -varonce818 = var819; +var685 = "};"; +var686 = standard___standard__NativeString___to_s_with_length(var685, 2l); +var684 = var686; +varonce683 = var684; } { -nit___nit__CodeWriter___add_decl(var815, var819); /* Direct call abstract_compiler#CodeWriter#add_decl on */ +nit___nit__CodeWriter___add_decl(var680, var684); /* Direct call abstract_compiler#CodeWriter#add_decl on */ } -if (varonce823) { -var824 = varonce823; +if (unlikely(varonce687==NULL)) { +var688 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce689!=NULL)) { +var690 = varonce689; } else { -var825 = "NEW_"; -var826 = 4; -var827 = standard___standard__NativeString___to_s_with_length(var825, var826); -var824 = var827; -varonce823 = var824; -} -var828 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var828 = array_instance Array[Object] */ -var829 = 2; -var830 = NEW_standard__NativeArray(var829, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var830)->values[0] = (val*) var824; -((struct instance_standard__NativeArray*)var830)->values[1] = (val*) var_c_name; -{ -((void (*)(val* self, val* p0, long p1))(var828->class->vft[COLOR_standard__array__Array__with_native]))(var828, var830, var829) /* with_native on */; +var691 = "NEW_"; +var692 = standard___standard__NativeString___to_s_with_length(var691, 4l); +var690 = var692; +varonce689 = var690; } +((struct instance_standard__NativeArray*)var688)->values[0]=var690; +} else { +var688 = varonce687; +varonce687 = NULL; } +((struct instance_standard__NativeArray*)var688)->values[1]=var_c_name; { -var831 = ((val* (*)(val* self))(var828->class->vft[COLOR_standard__string__Object__to_s]))(var828) /* to_s on */; +var693 = ((val*(*)(val* self))(var688->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var688); /* native_to_s on */ } -{ -var832 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); +varonce687 = var688; +if (unlikely(varonce694==NULL)) { +var695 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce696!=NULL)) { +var697 = varonce696; +} else { +var698 = " NEW_"; +var699 = standard___standard__NativeString___to_s_with_length(var698, 5l); +var697 = var699; +varonce696 = var697; } -if (varonce833) { -var834 = varonce833; +((struct instance_standard__NativeArray*)var695)->values[1]=var697; +if (likely(varonce700!=NULL)) { +var701 = varonce700; } else { -var835 = " NEW_"; -var836 = 5; -var837 = standard___standard__NativeString___to_s_with_length(var835, var836); -var834 = var837; -varonce833 = var834; +var702 = "(int length);"; +var703 = standard___standard__NativeString___to_s_with_length(var702, 13l); +var701 = var703; +varonce700 = var701; } -if (varonce838) { -var839 = varonce838; +((struct instance_standard__NativeArray*)var695)->values[3]=var701; } else { -var840 = "(int length);"; -var841 = 13; -var842 = standard___standard__NativeString___to_s_with_length(var840, var841); -var839 = var842; -varonce838 = var839; +var695 = varonce694; +varonce694 = NULL; } -var843 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var843 = array_instance Array[Object] */ -var844 = 4; -var845 = NEW_standard__NativeArray(var844, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var845)->values[0] = (val*) var832; -((struct instance_standard__NativeArray*)var845)->values[1] = (val*) var834; -((struct instance_standard__NativeArray*)var845)->values[2] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var845)->values[3] = (val*) var839; { -((void (*)(val* self, val* p0, long p1))(var843->class->vft[COLOR_standard__array__Array__with_native]))(var843, var845, var844) /* with_native on */; -} +var704 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); } +((struct instance_standard__NativeArray*)var695)->values[0]=var704; +((struct instance_standard__NativeArray*)var695)->values[2]=var_c_name; { -var846 = ((val* (*)(val* self))(var843->class->vft[COLOR_standard__string__Object__to_s]))(var843) /* to_s on */; +var705 = ((val*(*)(val* self))(var695->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var695); /* native_to_s on */ } +varonce694 = var695; { -nit___nit__AbstractCompiler___provide_declaration(self, var831, var846); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on */ +nit___nit__AbstractCompiler___provide_declaration(self, var693, var705); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on */ } -if (varonce847) { -var848 = varonce847; +if (unlikely(varonce706==NULL)) { +var707 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce708!=NULL)) { +var709 = varonce708; } else { -var849 = "/* allocate "; -var850 = 12; -var851 = standard___standard__NativeString___to_s_with_length(var849, var850); -var848 = var851; -varonce847 = var848; +var710 = "/* allocate "; +var711 = standard___standard__NativeString___to_s_with_length(var710, 12l); +var709 = var711; +varonce708 = var709; } -if (varonce852) { -var853 = varonce852; +((struct instance_standard__NativeArray*)var707)->values[0]=var709; +if (likely(varonce712!=NULL)) { +var713 = varonce712; } else { -var854 = " */"; -var855 = 3; -var856 = standard___standard__NativeString___to_s_with_length(var854, var855); -var853 = var856; -varonce852 = var853; -} -var857 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var857 = array_instance Array[Object] */ -var858 = 3; -var859 = NEW_standard__NativeArray(var858, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var859)->values[0] = (val*) var848; -((struct instance_standard__NativeArray*)var859)->values[1] = (val*) var_mtype; -((struct instance_standard__NativeArray*)var859)->values[2] = (val*) var853; -{ -((void (*)(val* self, val* p0, long p1))(var857->class->vft[COLOR_standard__array__Array__with_native]))(var857, var859, var858) /* with_native on */; +var714 = " */"; +var715 = standard___standard__NativeString___to_s_with_length(var714, 3l); +var713 = var715; +varonce712 = var713; } +((struct instance_standard__NativeArray*)var707)->values[2]=var713; +} else { +var707 = varonce706; +varonce706 = NULL; } { -var860 = ((val* (*)(val* self))(var857->class->vft[COLOR_standard__string__Object__to_s]))(var857) /* to_s on */; +var716 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_standard__string__Object__to_s]))(var_mtype); /* to_s on */ } +((struct instance_standard__NativeArray*)var707)->values[1]=var716; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var860); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +var717 = ((val*(*)(val* self))(var707->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var707); /* native_to_s on */ } +varonce706 = var707; { -var861 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var717); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -if (varonce862) { -var863 = varonce862; +if (unlikely(varonce718==NULL)) { +var719 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce720!=NULL)) { +var721 = varonce720; } else { -var864 = " NEW_"; -var865 = 5; -var866 = standard___standard__NativeString___to_s_with_length(var864, var865); -var863 = var866; -varonce862 = var863; +var722 = " NEW_"; +var723 = standard___standard__NativeString___to_s_with_length(var722, 5l); +var721 = var723; +varonce720 = var721; } -if (varonce867) { -var868 = varonce867; +((struct instance_standard__NativeArray*)var719)->values[1]=var721; +if (likely(varonce724!=NULL)) { +var725 = varonce724; } else { -var869 = "(int length) {"; -var870 = 14; -var871 = standard___standard__NativeString___to_s_with_length(var869, var870); -var868 = var871; -varonce867 = var868; +var726 = "(int length) {"; +var727 = standard___standard__NativeString___to_s_with_length(var726, 14l); +var725 = var727; +varonce724 = var725; } -var872 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var872 = array_instance Array[Object] */ -var873 = 4; -var874 = NEW_standard__NativeArray(var873, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var874)->values[0] = (val*) var861; -((struct instance_standard__NativeArray*)var874)->values[1] = (val*) var863; -((struct instance_standard__NativeArray*)var874)->values[2] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var874)->values[3] = (val*) var868; -{ -((void (*)(val* self, val* p0, long p1))(var872->class->vft[COLOR_standard__array__Array__with_native]))(var872, var874, var873) /* with_native on */; +((struct instance_standard__NativeArray*)var719)->values[3]=var725; +} else { +var719 = varonce718; +varonce718 = NULL; } +{ +var728 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); } +((struct instance_standard__NativeArray*)var719)->values[0]=var728; +((struct instance_standard__NativeArray*)var719)->values[2]=var_c_name; { -var875 = ((val* (*)(val* self))(var872->class->vft[COLOR_standard__string__Object__to_s]))(var872) /* to_s on */; +var729 = ((val*(*)(val* self))(var719->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var719); /* native_to_s on */ } +varonce718 = var719; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var875); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var729); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -if (varonce876) { -var877 = varonce876; +if (likely(varonce730!=NULL)) { +var731 = varonce730; } else { -var878 = "self"; -var879 = 4; -var880 = standard___standard__NativeString___to_s_with_length(var878, var879); -var877 = var880; -varonce876 = var877; +var732 = "self"; +var733 = standard___standard__NativeString___to_s_with_length(var732, 4l); +var731 = var733; +varonce730 = var731; } { -var881 = nit___nit__AbstractCompilerVisitor___get_name(var_v, var877); +var734 = nit___nit__AbstractCompilerVisitor___get_name(var_v, var731); } -var_res882 = var881; -if (varonce883) { -var884 = varonce883; +var_res735 = var734; +if (unlikely(varonce736==NULL)) { +var737 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce738!=NULL)) { +var739 = varonce738; } else { -var885 = "struct instance_"; -var886 = 16; -var887 = standard___standard__NativeString___to_s_with_length(var885, var886); -var884 = var887; -varonce883 = var884; +var740 = "struct instance_"; +var741 = standard___standard__NativeString___to_s_with_length(var740, 16l); +var739 = var741; +varonce738 = var739; } -if (varonce888) { -var889 = varonce888; +((struct instance_standard__NativeArray*)var737)->values[0]=var739; +if (likely(varonce742!=NULL)) { +var743 = varonce742; } else { -var890 = " *"; -var891 = 2; -var892 = standard___standard__NativeString___to_s_with_length(var890, var891); -var889 = var892; -varonce888 = var889; +var744 = " *"; +var745 = standard___standard__NativeString___to_s_with_length(var744, 2l); +var743 = var745; +varonce742 = var743; } -if (varonce893) { -var894 = varonce893; +((struct instance_standard__NativeArray*)var737)->values[2]=var743; +if (likely(varonce746!=NULL)) { +var747 = varonce746; } else { -var895 = ";"; -var896 = 1; -var897 = standard___standard__NativeString___to_s_with_length(var895, var896); -var894 = var897; -varonce893 = var894; -} -var898 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var898 = array_instance Array[Object] */ -var899 = 5; -var900 = NEW_standard__NativeArray(var899, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var900)->values[0] = (val*) var884; -((struct instance_standard__NativeArray*)var900)->values[1] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var900)->values[2] = (val*) var889; -((struct instance_standard__NativeArray*)var900)->values[3] = (val*) var_res882; -((struct instance_standard__NativeArray*)var900)->values[4] = (val*) var894; -{ -((void (*)(val* self, val* p0, long p1))(var898->class->vft[COLOR_standard__array__Array__with_native]))(var898, var900, var899) /* with_native on */; +var748 = ";"; +var749 = standard___standard__NativeString___to_s_with_length(var748, 1l); +var747 = var749; +varonce746 = var747; } +((struct instance_standard__NativeArray*)var737)->values[4]=var747; +} else { +var737 = varonce736; +varonce736 = NULL; } +((struct instance_standard__NativeArray*)var737)->values[1]=var_c_name; +((struct instance_standard__NativeArray*)var737)->values[3]=var_res735; { -var901 = ((val* (*)(val* self))(var898->class->vft[COLOR_standard__string__Object__to_s]))(var898) /* to_s on */; +var750 = ((val*(*)(val* self))(var737->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var737); /* native_to_s on */ } +varonce736 = var737; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var901); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var750); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } { -var902 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MClassType__arguments]))(var_mtype) /* arguments on */; +var751 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MClassType__arguments]))(var_mtype); /* arguments on */ } { -var903 = standard___standard__SequenceRead___Collection__first(var902); +var752 = standard___standard__SequenceRead___Collection__first(var751); } -var_mtype_elt = var903; -if (varonce904) { -var905 = varonce904; +var_mtype_elt = var752; +if (unlikely(varonce753==NULL)) { +var754 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String); +if (likely(varonce755!=NULL)) { +var756 = varonce755; } else { -var906 = " = nit_alloc(sizeof(struct instance_"; -var907 = 36; -var908 = standard___standard__NativeString___to_s_with_length(var906, var907); -var905 = var908; -varonce904 = var905; +var757 = " = nit_alloc(sizeof(struct instance_"; +var758 = standard___standard__NativeString___to_s_with_length(var757, 36l); +var756 = var758; +varonce755 = var756; } -if (varonce909) { -var910 = varonce909; +((struct instance_standard__NativeArray*)var754)->values[1]=var756; +if (likely(varonce759!=NULL)) { +var760 = varonce759; } else { -var911 = ") + length*sizeof("; -var912 = 18; -var913 = standard___standard__NativeString___to_s_with_length(var911, var912); -var910 = var913; -varonce909 = var910; +var761 = ") + length*sizeof("; +var762 = standard___standard__NativeString___to_s_with_length(var761, 18l); +var760 = var762; +varonce759 = var760; } -{ -var914 = ((val* (*)(val* self))(var_mtype_elt->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var_mtype_elt) /* ctype on */; +((struct instance_standard__NativeArray*)var754)->values[3]=var760; +if (likely(varonce763!=NULL)) { +var764 = varonce763; +} else { +var765 = "));"; +var766 = standard___standard__NativeString___to_s_with_length(var765, 3l); +var764 = var766; +varonce763 = var764; } -if (varonce915) { -var916 = varonce915; +((struct instance_standard__NativeArray*)var754)->values[5]=var764; } else { -var917 = "));"; -var918 = 3; -var919 = standard___standard__NativeString___to_s_with_length(var917, var918); -var916 = var919; -varonce915 = var916; +var754 = varonce753; +varonce753 = NULL; } -var920 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var920 = array_instance Array[Object] */ -var921 = 6; -var922 = NEW_standard__NativeArray(var921, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var922)->values[0] = (val*) var_res882; -((struct instance_standard__NativeArray*)var922)->values[1] = (val*) var905; -((struct instance_standard__NativeArray*)var922)->values[2] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var922)->values[3] = (val*) var910; -((struct instance_standard__NativeArray*)var922)->values[4] = (val*) var914; -((struct instance_standard__NativeArray*)var922)->values[5] = (val*) var916; +((struct instance_standard__NativeArray*)var754)->values[0]=var_res735; +((struct instance_standard__NativeArray*)var754)->values[2]=var_c_name; { -((void (*)(val* self, val* p0, long p1))(var920->class->vft[COLOR_standard__array__Array__with_native]))(var920, var922, var921) /* with_native on */; -} +var767 = ((val*(*)(val* self))(var_mtype_elt->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var_mtype_elt); /* ctype on */ } +((struct instance_standard__NativeArray*)var754)->values[4]=var767; { -var923 = ((val* (*)(val* self))(var920->class->vft[COLOR_standard__string__Object__to_s]))(var920) /* to_s on */; +var768 = ((val*(*)(val* self))(var754->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var754); /* native_to_s on */ } +varonce753 = var754; { -nit___nit__AbstractCompilerVisitor___add(var_v, var923); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var768); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce924) { -var925 = varonce924; +if (unlikely(varonce769==NULL)) { +var770 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce771!=NULL)) { +var772 = varonce771; } else { -var926 = "class_"; -var927 = 6; -var928 = standard___standard__NativeString___to_s_with_length(var926, var927); -var925 = var928; -varonce924 = var925; -} -var929 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var929 = array_instance Array[Object] */ -var930 = 2; -var931 = NEW_standard__NativeArray(var930, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var931)->values[0] = (val*) var925; -((struct instance_standard__NativeArray*)var931)->values[1] = (val*) var_c_name; -{ -((void (*)(val* self, val* p0, long p1))(var929->class->vft[COLOR_standard__array__Array__with_native]))(var929, var931, var930) /* with_native on */; +var773 = "class_"; +var774 = standard___standard__NativeString___to_s_with_length(var773, 6l); +var772 = var774; +varonce771 = var772; } +((struct instance_standard__NativeArray*)var770)->values[0]=var772; +} else { +var770 = varonce769; +varonce769 = NULL; } +((struct instance_standard__NativeArray*)var770)->values[1]=var_c_name; { -var932 = ((val* (*)(val* self))(var929->class->vft[COLOR_standard__string__Object__to_s]))(var929) /* to_s on */; +var775 = ((val*(*)(val* self))(var770->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var770); /* native_to_s on */ } +varonce769 = var770; { -nit___nit__AbstractCompilerVisitor___require_declaration(var_v, var932); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +nit___nit__AbstractCompilerVisitor___require_declaration(var_v, var775); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ } -if (varonce933) { -var934 = varonce933; +if (unlikely(varonce776==NULL)) { +var777 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce778!=NULL)) { +var779 = varonce778; } else { -var935 = "->class = &class_"; -var936 = 17; -var937 = standard___standard__NativeString___to_s_with_length(var935, var936); -var934 = var937; -varonce933 = var934; +var780 = "->class = &class_"; +var781 = standard___standard__NativeString___to_s_with_length(var780, 17l); +var779 = var781; +varonce778 = var779; } -if (varonce938) { -var939 = varonce938; +((struct instance_standard__NativeArray*)var777)->values[1]=var779; +if (likely(varonce782!=NULL)) { +var783 = varonce782; } else { -var940 = ";"; -var941 = 1; -var942 = standard___standard__NativeString___to_s_with_length(var940, var941); -var939 = var942; -varonce938 = var939; -} -var943 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var943 = array_instance Array[Object] */ -var944 = 4; -var945 = NEW_standard__NativeArray(var944, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var945)->values[0] = (val*) var_res882; -((struct instance_standard__NativeArray*)var945)->values[1] = (val*) var934; -((struct instance_standard__NativeArray*)var945)->values[2] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var945)->values[3] = (val*) var939; -{ -((void (*)(val* self, val* p0, long p1))(var943->class->vft[COLOR_standard__array__Array__with_native]))(var943, var945, var944) /* with_native on */; +var784 = ";"; +var785 = standard___standard__NativeString___to_s_with_length(var784, 1l); +var783 = var785; +varonce782 = var783; } +((struct instance_standard__NativeArray*)var777)->values[3]=var783; +} else { +var777 = varonce776; +varonce776 = NULL; } +((struct instance_standard__NativeArray*)var777)->values[0]=var_res735; +((struct instance_standard__NativeArray*)var777)->values[2]=var_c_name; { -var946 = ((val* (*)(val* self))(var943->class->vft[COLOR_standard__string__Object__to_s]))(var943) /* to_s on */; +var786 = ((val*(*)(val* self))(var777->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var777); /* native_to_s on */ } +varonce776 = var777; { -nit___nit__AbstractCompilerVisitor___add(var_v, var946); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var786); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce947) { -var948 = varonce947; +if (unlikely(varonce787==NULL)) { +var788 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce789!=NULL)) { +var790 = varonce789; } else { -var949 = "->length = length;"; -var950 = 18; -var951 = standard___standard__NativeString___to_s_with_length(var949, var950); -var948 = var951; -varonce947 = var948; -} -var952 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var952 = array_instance Array[Object] */ -var953 = 2; -var954 = NEW_standard__NativeArray(var953, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var954)->values[0] = (val*) var_res882; -((struct instance_standard__NativeArray*)var954)->values[1] = (val*) var948; -{ -((void (*)(val* self, val* p0, long p1))(var952->class->vft[COLOR_standard__array__Array__with_native]))(var952, var954, var953) /* with_native on */; +var791 = "->length = length;"; +var792 = standard___standard__NativeString___to_s_with_length(var791, 18l); +var790 = var792; +varonce789 = var790; } +((struct instance_standard__NativeArray*)var788)->values[1]=var790; +} else { +var788 = varonce787; +varonce787 = NULL; } +((struct instance_standard__NativeArray*)var788)->values[0]=var_res735; { -var955 = ((val* (*)(val* self))(var952->class->vft[COLOR_standard__string__Object__to_s]))(var952) /* to_s on */; +var793 = ((val*(*)(val* self))(var788->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var788); /* native_to_s on */ } +varonce787 = var788; { -nit___nit__AbstractCompilerVisitor___add(var_v, var955); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var793); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce956) { -var957 = varonce956; +if (unlikely(varonce794==NULL)) { +var795 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce796!=NULL)) { +var797 = varonce796; } else { -var958 = "return (val*)"; -var959 = 13; -var960 = standard___standard__NativeString___to_s_with_length(var958, var959); -var957 = var960; -varonce956 = var957; +var798 = "return (val*)"; +var799 = standard___standard__NativeString___to_s_with_length(var798, 13l); +var797 = var799; +varonce796 = var797; } -if (varonce961) { -var962 = varonce961; +((struct instance_standard__NativeArray*)var795)->values[0]=var797; +if (likely(varonce800!=NULL)) { +var801 = varonce800; } else { -var963 = ";"; -var964 = 1; -var965 = standard___standard__NativeString___to_s_with_length(var963, var964); -var962 = var965; -varonce961 = var962; -} -var966 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var966 = array_instance Array[Object] */ -var967 = 3; -var968 = NEW_standard__NativeArray(var967, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var968)->values[0] = (val*) var957; -((struct instance_standard__NativeArray*)var968)->values[1] = (val*) var_res882; -((struct instance_standard__NativeArray*)var968)->values[2] = (val*) var962; -{ -((void (*)(val* self, val* p0, long p1))(var966->class->vft[COLOR_standard__array__Array__with_native]))(var966, var968, var967) /* with_native on */; +var802 = ";"; +var803 = standard___standard__NativeString___to_s_with_length(var802, 1l); +var801 = var803; +varonce800 = var801; } +((struct instance_standard__NativeArray*)var795)->values[2]=var801; +} else { +var795 = varonce794; +varonce794 = NULL; } +((struct instance_standard__NativeArray*)var795)->values[1]=var_res735; { -var969 = ((val* (*)(val* self))(var966->class->vft[COLOR_standard__string__Object__to_s]))(var966) /* to_s on */; +var804 = ((val*(*)(val* self))(var795->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var795); /* native_to_s on */ } +varonce794 = var795; { -nit___nit__AbstractCompilerVisitor___add(var_v, var969); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var804); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce970) { -var971 = varonce970; +if (likely(varonce805!=NULL)) { +var806 = varonce805; } else { -var972 = "}"; -var973 = 1; -var974 = standard___standard__NativeString___to_s_with_length(var972, var973); -var971 = var974; -varonce970 = var971; +var807 = "}"; +var808 = standard___standard__NativeString___to_s_with_length(var807, 1l); +var806 = var808; +varonce805 = var806; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var971); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var806); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } goto RET_LABEL; } else { { { /* Inline model#MClassType#mclass (var_mtype) on */ -var978 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var978 == NULL)) { +var812 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var812 == 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); } -var976 = var978; -RET_LABEL977:(void)0; +var810 = var812; +RET_LABEL811:(void)0; } } { -{ /* Inline model#MClass#kind (var976) on */ -var981 = var976->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on */ -if (unlikely(var981 == NULL)) { +{ /* Inline model#MClass#kind (var810) on */ +var815 = var810->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on */ +if (unlikely(var815 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 399); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 436); +fatal_exit(1); } -var979 = var981; -RET_LABEL980:(void)0; +var813 = var815; +RET_LABEL814:(void)0; } } +var816 = glob_sys; { -var982 = nit__model___standard__Object___extern_kind(self); +var817 = nit__model___standard__Sys___extern_kind(var816); } { -{ /* Inline kernel#Object#== (var979,var982) on */ -var_other244 = var982; +{ /* Inline kernel#Object#== (var813,var817) on */ +var_other205 = var817; { -{ /* Inline kernel#Object#is_same_instance (var979,var_other244) on */ -var987 = var979 == var_other244; -var985 = var987; -goto RET_LABEL986; -RET_LABEL986:(void)0; +{ /* Inline kernel#Object#is_same_instance (var813,var_other205) on */ +var822 = var813 == var_other205; +var820 = var822; +goto RET_LABEL821; +RET_LABEL821:(void)0; } } -var983 = var985; -goto RET_LABEL984; -RET_LABEL984:(void)0; +var818 = var820; +goto RET_LABEL819; +RET_LABEL819:(void)0; } } -var_988 = var983; -if (var983){ +var_823 = var818; +if (var818){ { { /* Inline model#MClassType#mclass (var_mtype) on */ -var991 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var991 == NULL)) { +var826 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var826 == 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); } -var989 = var991; -RET_LABEL990:(void)0; +var824 = var826; +RET_LABEL825:(void)0; } } { -{ /* Inline model#MClass#name (var989) on */ -var994 = var989->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ -if (unlikely(var994 == NULL)) { +{ /* Inline model#MClass#name (var824) on */ +var829 = var824->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ +if (unlikely(var829 == 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); } -var992 = var994; -RET_LABEL993:(void)0; +var827 = var829; +RET_LABEL828:(void)0; } } -if (varonce995) { -var996 = varonce995; +if (likely(varonce830!=NULL)) { +var831 = varonce830; } else { -var997 = "NativeString"; -var998 = 12; -var999 = standard___standard__NativeString___to_s_with_length(var997, var998); -var996 = var999; -varonce995 = var996; +var832 = "NativeString"; +var833 = standard___standard__NativeString___to_s_with_length(var832, 12l); +var831 = var833; +varonce830 = var831; } { -{ /* Inline kernel#Object#!= (var992,var996) on */ -var_other = var996; +{ /* Inline kernel#Object#!= (var827,var831) on */ +var_other = var831; { -var1002 = ((short int (*)(val* self, val* p0))(var992->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var992, var_other) /* == on */; +var836 = ((short int(*)(val* self, val* p0))(var827->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var827, var_other); /* == on */ } -var1003 = !var1002; -var1000 = var1003; -goto RET_LABEL1001; -RET_LABEL1001:(void)0; +var837 = !var836; +var834 = var837; +goto RET_LABEL835; +RET_LABEL835:(void)0; } } -var975 = var1000; +var809 = var834; } else { -var975 = var_988; +var809 = var_823; } -if (var975){ +if (var809){ { { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on */ -var1006 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ -if (unlikely(var1006 == NULL)) { +var840 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var840 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 515); +fatal_exit(1); } -var1004 = var1006; -RET_LABEL1005:(void)0; +var838 = var840; +RET_LABEL839:(void)0; } } { -var1007 = nit__model___MModule___pointer_type(var1004); +var841 = nit__model___MModule___pointer_type(var838); } -var_pointer_type = var1007; -if (varonce1008) { -var1009 = varonce1008; +var_pointer_type = var841; +if (unlikely(varonce842==NULL)) { +var843 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce844!=NULL)) { +var845 = varonce844; } else { -var1010 = "NEW_"; -var1011 = 4; -var1012 = standard___standard__NativeString___to_s_with_length(var1010, var1011); -var1009 = var1012; -varonce1008 = var1009; -} -var1013 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1013 = array_instance Array[Object] */ -var1014 = 2; -var1015 = NEW_standard__NativeArray(var1014, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1015)->values[0] = (val*) var1009; -((struct instance_standard__NativeArray*)var1015)->values[1] = (val*) var_c_name; -{ -((void (*)(val* self, val* p0, long p1))(var1013->class->vft[COLOR_standard__array__Array__with_native]))(var1013, var1015, var1014) /* with_native on */; +var846 = "NEW_"; +var847 = standard___standard__NativeString___to_s_with_length(var846, 4l); +var845 = var847; +varonce844 = var845; } +((struct instance_standard__NativeArray*)var843)->values[0]=var845; +} else { +var843 = varonce842; +varonce842 = NULL; } +((struct instance_standard__NativeArray*)var843)->values[1]=var_c_name; { -var1016 = ((val* (*)(val* self))(var1013->class->vft[COLOR_standard__string__Object__to_s]))(var1013) /* to_s on */; +var848 = ((val*(*)(val* self))(var843->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var843); /* native_to_s on */ } -{ -var1017 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); +varonce842 = var843; +if (unlikely(varonce849==NULL)) { +var850 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce851!=NULL)) { +var852 = varonce851; +} else { +var853 = " NEW_"; +var854 = standard___standard__NativeString___to_s_with_length(var853, 5l); +var852 = var854; +varonce851 = var852; } -if (varonce1018) { -var1019 = varonce1018; +((struct instance_standard__NativeArray*)var850)->values[1]=var852; +if (likely(varonce855!=NULL)) { +var856 = varonce855; } else { -var1020 = " NEW_"; -var1021 = 5; -var1022 = standard___standard__NativeString___to_s_with_length(var1020, var1021); -var1019 = var1022; -varonce1018 = var1019; +var857 = "();"; +var858 = standard___standard__NativeString___to_s_with_length(var857, 3l); +var856 = var858; +varonce855 = var856; } -if (varonce1023) { -var1024 = varonce1023; +((struct instance_standard__NativeArray*)var850)->values[3]=var856; } else { -var1025 = "();"; -var1026 = 3; -var1027 = standard___standard__NativeString___to_s_with_length(var1025, var1026); -var1024 = var1027; -varonce1023 = var1024; +var850 = varonce849; +varonce849 = NULL; } -var1028 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1028 = array_instance Array[Object] */ -var1029 = 4; -var1030 = NEW_standard__NativeArray(var1029, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1030)->values[0] = (val*) var1017; -((struct instance_standard__NativeArray*)var1030)->values[1] = (val*) var1019; -((struct instance_standard__NativeArray*)var1030)->values[2] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var1030)->values[3] = (val*) var1024; { -((void (*)(val* self, val* p0, long p1))(var1028->class->vft[COLOR_standard__array__Array__with_native]))(var1028, var1030, var1029) /* with_native on */; -} +var859 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); } +((struct instance_standard__NativeArray*)var850)->values[0]=var859; +((struct instance_standard__NativeArray*)var850)->values[2]=var_c_name; { -var1031 = ((val* (*)(val* self))(var1028->class->vft[COLOR_standard__string__Object__to_s]))(var1028) /* to_s on */; +var860 = ((val*(*)(val* self))(var850->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var850); /* native_to_s on */ } +varonce849 = var850; { -nit___nit__AbstractCompiler___provide_declaration(self, var1016, var1031); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on */ +nit___nit__AbstractCompiler___provide_declaration(self, var848, var860); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on */ } -if (varonce1032) { -var1033 = varonce1032; +if (unlikely(varonce861==NULL)) { +var862 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce863!=NULL)) { +var864 = varonce863; } else { -var1034 = "/* allocate "; -var1035 = 12; -var1036 = standard___standard__NativeString___to_s_with_length(var1034, var1035); -var1033 = var1036; -varonce1032 = var1033; +var865 = "/* allocate "; +var866 = standard___standard__NativeString___to_s_with_length(var865, 12l); +var864 = var866; +varonce863 = var864; } -if (varonce1037) { -var1038 = varonce1037; +((struct instance_standard__NativeArray*)var862)->values[0]=var864; +if (likely(varonce867!=NULL)) { +var868 = varonce867; } else { -var1039 = " */"; -var1040 = 3; -var1041 = standard___standard__NativeString___to_s_with_length(var1039, var1040); -var1038 = var1041; -varonce1037 = var1038; -} -var1042 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1042 = array_instance Array[Object] */ -var1043 = 3; -var1044 = NEW_standard__NativeArray(var1043, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1044)->values[0] = (val*) var1033; -((struct instance_standard__NativeArray*)var1044)->values[1] = (val*) var_mtype; -((struct instance_standard__NativeArray*)var1044)->values[2] = (val*) var1038; -{ -((void (*)(val* self, val* p0, long p1))(var1042->class->vft[COLOR_standard__array__Array__with_native]))(var1042, var1044, var1043) /* with_native on */; +var869 = " */"; +var870 = standard___standard__NativeString___to_s_with_length(var869, 3l); +var868 = var870; +varonce867 = var868; } +((struct instance_standard__NativeArray*)var862)->values[2]=var868; +} else { +var862 = varonce861; +varonce861 = NULL; } { -var1045 = ((val* (*)(val* self))(var1042->class->vft[COLOR_standard__string__Object__to_s]))(var1042) /* to_s on */; +var871 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_standard__string__Object__to_s]))(var_mtype); /* to_s on */ } +((struct instance_standard__NativeArray*)var862)->values[1]=var871; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var1045); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +var872 = ((val*(*)(val* self))(var862->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var862); /* native_to_s on */ } +varonce861 = var862; { -var1046 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var872); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -if (varonce1047) { -var1048 = varonce1047; +if (unlikely(varonce873==NULL)) { +var874 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce875!=NULL)) { +var876 = varonce875; } else { -var1049 = " NEW_"; -var1050 = 5; -var1051 = standard___standard__NativeString___to_s_with_length(var1049, var1050); -var1048 = var1051; -varonce1047 = var1048; +var877 = " NEW_"; +var878 = standard___standard__NativeString___to_s_with_length(var877, 5l); +var876 = var878; +varonce875 = var876; } -if (varonce1052) { -var1053 = varonce1052; +((struct instance_standard__NativeArray*)var874)->values[1]=var876; +if (likely(varonce879!=NULL)) { +var880 = varonce879; } else { -var1054 = "() {"; -var1055 = 4; -var1056 = standard___standard__NativeString___to_s_with_length(var1054, var1055); -var1053 = var1056; -varonce1052 = var1053; +var881 = "() {"; +var882 = standard___standard__NativeString___to_s_with_length(var881, 4l); +var880 = var882; +varonce879 = var880; } -var1057 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1057 = array_instance Array[Object] */ -var1058 = 4; -var1059 = NEW_standard__NativeArray(var1058, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1059)->values[0] = (val*) var1046; -((struct instance_standard__NativeArray*)var1059)->values[1] = (val*) var1048; -((struct instance_standard__NativeArray*)var1059)->values[2] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var1059)->values[3] = (val*) var1053; -{ -((void (*)(val* self, val* p0, long p1))(var1057->class->vft[COLOR_standard__array__Array__with_native]))(var1057, var1059, var1058) /* with_native on */; +((struct instance_standard__NativeArray*)var874)->values[3]=var880; +} else { +var874 = varonce873; +varonce873 = NULL; } +{ +var883 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); } +((struct instance_standard__NativeArray*)var874)->values[0]=var883; +((struct instance_standard__NativeArray*)var874)->values[2]=var_c_name; { -var1060 = ((val* (*)(val* self))(var1057->class->vft[COLOR_standard__string__Object__to_s]))(var1057) /* to_s on */; +var884 = ((val*(*)(val* self))(var874->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var874); /* native_to_s on */ } +varonce873 = var874; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var1060); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var884); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } if (var_is_dead){ -if (varonce1061) { -var1062 = varonce1061; +if (unlikely(varonce885==NULL)) { +var886 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce887!=NULL)) { +var888 = varonce887; } else { -var1063 = " is DEAD"; -var1064 = 8; -var1065 = standard___standard__NativeString___to_s_with_length(var1063, var1064); -var1062 = var1065; -varonce1061 = var1062; +var889 = " is DEAD"; +var890 = standard___standard__NativeString___to_s_with_length(var889, 8l); +var888 = var890; +varonce887 = var888; } -var1066 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1066 = array_instance Array[Object] */ -var1067 = 2; -var1068 = NEW_standard__NativeArray(var1067, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1068)->values[0] = (val*) var_mclass; -((struct instance_standard__NativeArray*)var1068)->values[1] = (val*) var1062; -{ -((void (*)(val* self, val* p0, long p1))(var1066->class->vft[COLOR_standard__array__Array__with_native]))(var1066, var1068, var1067) /* with_native on */; +((struct instance_standard__NativeArray*)var886)->values[1]=var888; +} else { +var886 = varonce885; +varonce885 = NULL; } +{ +var891 = ((val*(*)(val* self))(var_mclass->class->vft[COLOR_standard__string__Object__to_s]))(var_mclass); /* to_s on */ } +((struct instance_standard__NativeArray*)var886)->values[0]=var891; { -var1069 = ((val* (*)(val* self))(var1066->class->vft[COLOR_standard__string__Object__to_s]))(var1066) /* to_s on */; +var892 = ((val*(*)(val* self))(var886->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var886); /* native_to_s on */ } +varonce885 = var886; { -nit___nit__AbstractCompilerVisitor___add_abort(var_v, var1069); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ +nit___nit__AbstractCompilerVisitor___add_abort(var_v, var892); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ } } else { -if (varonce1070) { -var1071 = varonce1070; +if (likely(varonce893!=NULL)) { +var894 = varonce893; } else { -var1072 = "self"; -var1073 = 4; -var1074 = standard___standard__NativeString___to_s_with_length(var1072, var1073); -var1071 = var1074; -varonce1070 = var1071; +var895 = "self"; +var896 = standard___standard__NativeString___to_s_with_length(var895, 4l); +var894 = var896; +varonce893 = var894; } { -var1075 = nit___nit__AbstractCompilerVisitor___new_named_var(var_v, var_mtype, var1071); +var897 = nit___nit__AbstractCompilerVisitor___new_named_var(var_v, var_mtype, var894); } -var_res1076 = var1075; -var1077 = 1; +var_res898 = var897; { -{ /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res1076,var1077) on */ -var_res1076->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___is_exact].s = var1077; /* _is_exact on */ -RET_LABEL1078:(void)0; +{ /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res898,1) on */ +var_res898->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___is_exact].s = 1; /* _is_exact on */ +RET_LABEL899:(void)0; } } -if (varonce1079) { -var1080 = varonce1079; +if (unlikely(varonce900==NULL)) { +var901 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce902!=NULL)) { +var903 = varonce902; } else { -var1081 = " = nit_alloc(sizeof(struct instance_"; -var1082 = 36; -var1083 = standard___standard__NativeString___to_s_with_length(var1081, var1082); -var1080 = var1083; -varonce1079 = var1080; +var904 = " = nit_alloc(sizeof(struct instance_"; +var905 = standard___standard__NativeString___to_s_with_length(var904, 36l); +var903 = var905; +varonce902 = var903; } -{ -var1084 = ((val* (*)(val* self))(var_pointer_type->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_pointer_type) /* c_name on */; +((struct instance_standard__NativeArray*)var901)->values[1]=var903; +if (likely(varonce906!=NULL)) { +var907 = varonce906; +} else { +var908 = "));"; +var909 = standard___standard__NativeString___to_s_with_length(var908, 3l); +var907 = var909; +varonce906 = var907; } -if (varonce1085) { -var1086 = varonce1085; +((struct instance_standard__NativeArray*)var901)->values[3]=var907; } else { -var1087 = "));"; -var1088 = 3; -var1089 = standard___standard__NativeString___to_s_with_length(var1087, var1088); -var1086 = var1089; -varonce1085 = var1086; +var901 = varonce900; +varonce900 = NULL; } -var1090 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1090 = array_instance Array[Object] */ -var1091 = 4; -var1092 = NEW_standard__NativeArray(var1091, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1092)->values[0] = (val*) var_res1076; -((struct instance_standard__NativeArray*)var1092)->values[1] = (val*) var1080; -((struct instance_standard__NativeArray*)var1092)->values[2] = (val*) var1084; -((struct instance_standard__NativeArray*)var1092)->values[3] = (val*) var1086; { -((void (*)(val* self, val* p0, long p1))(var1090->class->vft[COLOR_standard__array__Array__with_native]))(var1090, var1092, var1091) /* with_native on */; +var910 = ((val*(*)(val* self))(var_res898->class->vft[COLOR_standard__string__Object__to_s]))(var_res898); /* to_s on */ } +((struct instance_standard__NativeArray*)var901)->values[0]=var910; +{ +var911 = ((val*(*)(val* self))(var_pointer_type->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_pointer_type); /* c_name on */ } +((struct instance_standard__NativeArray*)var901)->values[2]=var911; { -var1093 = ((val* (*)(val* self))(var1090->class->vft[COLOR_standard__string__Object__to_s]))(var1090) /* to_s on */; +var912 = ((val*(*)(val* self))(var901->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var901); /* native_to_s on */ } +varonce900 = var901; { -nit___nit__AbstractCompilerVisitor___add(var_v, var1093); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var912); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce1094) { -var1095 = varonce1094; +if (unlikely(varonce913==NULL)) { +var914 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce915!=NULL)) { +var916 = varonce915; } else { -var1096 = "class_"; -var1097 = 6; -var1098 = standard___standard__NativeString___to_s_with_length(var1096, var1097); -var1095 = var1098; -varonce1094 = var1095; -} -var1099 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1099 = array_instance Array[Object] */ -var1100 = 2; -var1101 = NEW_standard__NativeArray(var1100, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1101)->values[0] = (val*) var1095; -((struct instance_standard__NativeArray*)var1101)->values[1] = (val*) var_c_name; -{ -((void (*)(val* self, val* p0, long p1))(var1099->class->vft[COLOR_standard__array__Array__with_native]))(var1099, var1101, var1100) /* with_native on */; +var917 = "class_"; +var918 = standard___standard__NativeString___to_s_with_length(var917, 6l); +var916 = var918; +varonce915 = var916; } +((struct instance_standard__NativeArray*)var914)->values[0]=var916; +} else { +var914 = varonce913; +varonce913 = NULL; } +((struct instance_standard__NativeArray*)var914)->values[1]=var_c_name; { -var1102 = ((val* (*)(val* self))(var1099->class->vft[COLOR_standard__string__Object__to_s]))(var1099) /* to_s on */; +var919 = ((val*(*)(val* self))(var914->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var914); /* native_to_s on */ } +varonce913 = var914; { -nit___nit__AbstractCompilerVisitor___require_declaration(var_v, var1102); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +nit___nit__AbstractCompilerVisitor___require_declaration(var_v, var919); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ } -if (varonce1103) { -var1104 = varonce1103; +if (unlikely(varonce920==NULL)) { +var921 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce922!=NULL)) { +var923 = varonce922; } else { -var1105 = "->class = &class_"; -var1106 = 17; -var1107 = standard___standard__NativeString___to_s_with_length(var1105, var1106); -var1104 = var1107; -varonce1103 = var1104; +var924 = "->class = &class_"; +var925 = standard___standard__NativeString___to_s_with_length(var924, 17l); +var923 = var925; +varonce922 = var923; } -if (varonce1108) { -var1109 = varonce1108; +((struct instance_standard__NativeArray*)var921)->values[1]=var923; +if (likely(varonce926!=NULL)) { +var927 = varonce926; } else { -var1110 = ";"; -var1111 = 1; -var1112 = standard___standard__NativeString___to_s_with_length(var1110, var1111); -var1109 = var1112; -varonce1108 = var1109; +var928 = ";"; +var929 = standard___standard__NativeString___to_s_with_length(var928, 1l); +var927 = var929; +varonce926 = var927; } -var1113 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1113 = array_instance Array[Object] */ -var1114 = 4; -var1115 = NEW_standard__NativeArray(var1114, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1115)->values[0] = (val*) var_res1076; -((struct instance_standard__NativeArray*)var1115)->values[1] = (val*) var1104; -((struct instance_standard__NativeArray*)var1115)->values[2] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var1115)->values[3] = (val*) var1109; -{ -((void (*)(val* self, val* p0, long p1))(var1113->class->vft[COLOR_standard__array__Array__with_native]))(var1113, var1115, var1114) /* with_native on */; +((struct instance_standard__NativeArray*)var921)->values[3]=var927; +} else { +var921 = varonce920; +varonce920 = NULL; } +{ +var930 = ((val*(*)(val* self))(var_res898->class->vft[COLOR_standard__string__Object__to_s]))(var_res898); /* to_s on */ } +((struct instance_standard__NativeArray*)var921)->values[0]=var930; +((struct instance_standard__NativeArray*)var921)->values[2]=var_c_name; { -var1116 = ((val* (*)(val* self))(var1113->class->vft[COLOR_standard__string__Object__to_s]))(var1113) /* to_s on */; +var931 = ((val*(*)(val* self))(var921->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var921); /* native_to_s on */ } +varonce920 = var921; { -nit___nit__AbstractCompilerVisitor___add(var_v, var1116); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var931); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce1117) { -var1118 = varonce1117; +if (unlikely(varonce932==NULL)) { +var933 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce934!=NULL)) { +var935 = varonce934; } else { -var1119 = "((struct instance_"; -var1120 = 18; -var1121 = standard___standard__NativeString___to_s_with_length(var1119, var1120); -var1118 = var1121; -varonce1117 = var1118; +var936 = "((struct instance_"; +var937 = standard___standard__NativeString___to_s_with_length(var936, 18l); +var935 = var937; +varonce934 = var935; } -{ -var1122 = ((val* (*)(val* self))(var_pointer_type->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_pointer_type) /* c_name on */; +((struct instance_standard__NativeArray*)var933)->values[0]=var935; +if (likely(varonce938!=NULL)) { +var939 = varonce938; +} else { +var940 = "*)"; +var941 = standard___standard__NativeString___to_s_with_length(var940, 2l); +var939 = var941; +varonce938 = var939; } -if (varonce1123) { -var1124 = varonce1123; +((struct instance_standard__NativeArray*)var933)->values[2]=var939; +if (likely(varonce942!=NULL)) { +var943 = varonce942; } else { -var1125 = "*)"; -var1126 = 2; -var1127 = standard___standard__NativeString___to_s_with_length(var1125, var1126); -var1124 = var1127; -varonce1123 = var1124; +var944 = ")->value = NULL;"; +var945 = standard___standard__NativeString___to_s_with_length(var944, 16l); +var943 = var945; +varonce942 = var943; } -if (varonce1128) { -var1129 = varonce1128; +((struct instance_standard__NativeArray*)var933)->values[4]=var943; } else { -var1130 = ")->value = NULL;"; -var1131 = 16; -var1132 = standard___standard__NativeString___to_s_with_length(var1130, var1131); -var1129 = var1132; -varonce1128 = var1129; +var933 = varonce932; +varonce932 = NULL; } -var1133 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1133 = array_instance Array[Object] */ -var1134 = 5; -var1135 = NEW_standard__NativeArray(var1134, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1135)->values[0] = (val*) var1118; -((struct instance_standard__NativeArray*)var1135)->values[1] = (val*) var1122; -((struct instance_standard__NativeArray*)var1135)->values[2] = (val*) var1124; -((struct instance_standard__NativeArray*)var1135)->values[3] = (val*) var_res1076; -((struct instance_standard__NativeArray*)var1135)->values[4] = (val*) var1129; { -((void (*)(val* self, val* p0, long p1))(var1133->class->vft[COLOR_standard__array__Array__with_native]))(var1133, var1135, var1134) /* with_native on */; +var946 = ((val*(*)(val* self))(var_pointer_type->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_pointer_type); /* c_name on */ } +((struct instance_standard__NativeArray*)var933)->values[1]=var946; +{ +var947 = ((val*(*)(val* self))(var_res898->class->vft[COLOR_standard__string__Object__to_s]))(var_res898); /* to_s on */ } +((struct instance_standard__NativeArray*)var933)->values[3]=var947; { -var1136 = ((val* (*)(val* self))(var1133->class->vft[COLOR_standard__string__Object__to_s]))(var1133) /* to_s on */; +var948 = ((val*(*)(val* self))(var933->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var933); /* native_to_s on */ } +varonce932 = var933; { -nit___nit__AbstractCompilerVisitor___add(var_v, var1136); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var948); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce1137) { -var1138 = varonce1137; +if (unlikely(varonce949==NULL)) { +var950 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce951!=NULL)) { +var952 = varonce951; } else { -var1139 = "return "; -var1140 = 7; -var1141 = standard___standard__NativeString___to_s_with_length(var1139, var1140); -var1138 = var1141; -varonce1137 = var1138; +var953 = "return "; +var954 = standard___standard__NativeString___to_s_with_length(var953, 7l); +var952 = var954; +varonce951 = var952; } -if (varonce1142) { -var1143 = varonce1142; +((struct instance_standard__NativeArray*)var950)->values[0]=var952; +if (likely(varonce955!=NULL)) { +var956 = varonce955; } else { -var1144 = ";"; -var1145 = 1; -var1146 = standard___standard__NativeString___to_s_with_length(var1144, var1145); -var1143 = var1146; -varonce1142 = var1143; +var957 = ";"; +var958 = standard___standard__NativeString___to_s_with_length(var957, 1l); +var956 = var958; +varonce955 = var956; } -var1147 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1147 = array_instance Array[Object] */ -var1148 = 3; -var1149 = NEW_standard__NativeArray(var1148, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1149)->values[0] = (val*) var1138; -((struct instance_standard__NativeArray*)var1149)->values[1] = (val*) var_res1076; -((struct instance_standard__NativeArray*)var1149)->values[2] = (val*) var1143; -{ -((void (*)(val* self, val* p0, long p1))(var1147->class->vft[COLOR_standard__array__Array__with_native]))(var1147, var1149, var1148) /* with_native on */; +((struct instance_standard__NativeArray*)var950)->values[2]=var956; +} else { +var950 = varonce949; +varonce949 = NULL; } +{ +var959 = ((val*(*)(val* self))(var_res898->class->vft[COLOR_standard__string__Object__to_s]))(var_res898); /* to_s on */ } +((struct instance_standard__NativeArray*)var950)->values[1]=var959; { -var1150 = ((val* (*)(val* self))(var1147->class->vft[COLOR_standard__string__Object__to_s]))(var1147) /* to_s on */; +var960 = ((val*(*)(val* self))(var950->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var950); /* native_to_s on */ } +varonce949 = var950; { -nit___nit__AbstractCompilerVisitor___add(var_v, var1150); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var960); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } } -if (varonce1151) { -var1152 = varonce1151; +if (likely(varonce961!=NULL)) { +var962 = varonce961; } else { -var1153 = "}"; -var1154 = 1; -var1155 = standard___standard__NativeString___to_s_with_length(var1153, var1154); -var1152 = var1155; -varonce1151 = var1152; +var963 = "}"; +var964 = standard___standard__NativeString___to_s_with_length(var963, 1l); +var962 = var964; +varonce961 = var962; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var1152); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var962); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } goto RET_LABEL; } else { } } } -if (varonce1156) { -var1157 = varonce1156; +if (unlikely(varonce965==NULL)) { +var966 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce967!=NULL)) { +var968 = varonce967; } else { -var1158 = "NEW_"; -var1159 = 4; -var1160 = standard___standard__NativeString___to_s_with_length(var1158, var1159); -var1157 = var1160; -varonce1156 = var1157; -} -var1161 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1161 = array_instance Array[Object] */ -var1162 = 2; -var1163 = NEW_standard__NativeArray(var1162, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1163)->values[0] = (val*) var1157; -((struct instance_standard__NativeArray*)var1163)->values[1] = (val*) var_c_name; -{ -((void (*)(val* self, val* p0, long p1))(var1161->class->vft[COLOR_standard__array__Array__with_native]))(var1161, var1163, var1162) /* with_native on */; +var969 = "NEW_"; +var970 = standard___standard__NativeString___to_s_with_length(var969, 4l); +var968 = var970; +varonce967 = var968; } +((struct instance_standard__NativeArray*)var966)->values[0]=var968; +} else { +var966 = varonce965; +varonce965 = NULL; } +((struct instance_standard__NativeArray*)var966)->values[1]=var_c_name; { -var1164 = ((val* (*)(val* self))(var1161->class->vft[COLOR_standard__string__Object__to_s]))(var1161) /* to_s on */; +var971 = ((val*(*)(val* self))(var966->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var966); /* native_to_s on */ } -{ -var1165 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); +varonce965 = var966; +if (unlikely(varonce972==NULL)) { +var973 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce974!=NULL)) { +var975 = varonce974; +} else { +var976 = " NEW_"; +var977 = standard___standard__NativeString___to_s_with_length(var976, 5l); +var975 = var977; +varonce974 = var975; } -if (varonce1166) { -var1167 = varonce1166; +((struct instance_standard__NativeArray*)var973)->values[1]=var975; +if (likely(varonce978!=NULL)) { +var979 = varonce978; } else { -var1168 = " NEW_"; -var1169 = 5; -var1170 = standard___standard__NativeString___to_s_with_length(var1168, var1169); -var1167 = var1170; -varonce1166 = var1167; +var980 = "(void);"; +var981 = standard___standard__NativeString___to_s_with_length(var980, 7l); +var979 = var981; +varonce978 = var979; } -if (varonce1171) { -var1172 = varonce1171; +((struct instance_standard__NativeArray*)var973)->values[3]=var979; } else { -var1173 = "(void);"; -var1174 = 7; -var1175 = standard___standard__NativeString___to_s_with_length(var1173, var1174); -var1172 = var1175; -varonce1171 = var1172; +var973 = varonce972; +varonce972 = NULL; } -var1176 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1176 = array_instance Array[Object] */ -var1177 = 4; -var1178 = NEW_standard__NativeArray(var1177, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1178)->values[0] = (val*) var1165; -((struct instance_standard__NativeArray*)var1178)->values[1] = (val*) var1167; -((struct instance_standard__NativeArray*)var1178)->values[2] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var1178)->values[3] = (val*) var1172; { -((void (*)(val* self, val* p0, long p1))(var1176->class->vft[COLOR_standard__array__Array__with_native]))(var1176, var1178, var1177) /* with_native on */; -} +var982 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); } +((struct instance_standard__NativeArray*)var973)->values[0]=var982; +((struct instance_standard__NativeArray*)var973)->values[2]=var_c_name; { -var1179 = ((val* (*)(val* self))(var1176->class->vft[COLOR_standard__string__Object__to_s]))(var1176) /* to_s on */; +var983 = ((val*(*)(val* self))(var973->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var973); /* native_to_s on */ } +varonce972 = var973; { -nit___nit__AbstractCompiler___provide_declaration(self, var1164, var1179); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on */ +nit___nit__AbstractCompiler___provide_declaration(self, var971, var983); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on */ } -if (varonce1180) { -var1181 = varonce1180; +if (unlikely(varonce984==NULL)) { +var985 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce986!=NULL)) { +var987 = varonce986; } else { -var1182 = "/* allocate "; -var1183 = 12; -var1184 = standard___standard__NativeString___to_s_with_length(var1182, var1183); -var1181 = var1184; -varonce1180 = var1181; +var988 = "/* allocate "; +var989 = standard___standard__NativeString___to_s_with_length(var988, 12l); +var987 = var989; +varonce986 = var987; } -if (varonce1185) { -var1186 = varonce1185; +((struct instance_standard__NativeArray*)var985)->values[0]=var987; +if (likely(varonce990!=NULL)) { +var991 = varonce990; } else { -var1187 = " */"; -var1188 = 3; -var1189 = standard___standard__NativeString___to_s_with_length(var1187, var1188); -var1186 = var1189; -varonce1185 = var1186; -} -var1190 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1190 = array_instance Array[Object] */ -var1191 = 3; -var1192 = NEW_standard__NativeArray(var1191, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1192)->values[0] = (val*) var1181; -((struct instance_standard__NativeArray*)var1192)->values[1] = (val*) var_mtype; -((struct instance_standard__NativeArray*)var1192)->values[2] = (val*) var1186; -{ -((void (*)(val* self, val* p0, long p1))(var1190->class->vft[COLOR_standard__array__Array__with_native]))(var1190, var1192, var1191) /* with_native on */; +var992 = " */"; +var993 = standard___standard__NativeString___to_s_with_length(var992, 3l); +var991 = var993; +varonce990 = var991; } +((struct instance_standard__NativeArray*)var985)->values[2]=var991; +} else { +var985 = varonce984; +varonce984 = NULL; } { -var1193 = ((val* (*)(val* self))(var1190->class->vft[COLOR_standard__string__Object__to_s]))(var1190) /* to_s on */; +var994 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_standard__string__Object__to_s]))(var_mtype); /* to_s on */ } +((struct instance_standard__NativeArray*)var985)->values[1]=var994; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var1193); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +var995 = ((val*(*)(val* self))(var985->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var985); /* native_to_s on */ } +varonce984 = var985; { -var1194 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var995); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -if (varonce1195) { -var1196 = varonce1195; +if (unlikely(varonce996==NULL)) { +var997 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce998!=NULL)) { +var999 = varonce998; } else { -var1197 = " NEW_"; -var1198 = 5; -var1199 = standard___standard__NativeString___to_s_with_length(var1197, var1198); -var1196 = var1199; -varonce1195 = var1196; +var1000 = " NEW_"; +var1001 = standard___standard__NativeString___to_s_with_length(var1000, 5l); +var999 = var1001; +varonce998 = var999; } -if (varonce1200) { -var1201 = varonce1200; +((struct instance_standard__NativeArray*)var997)->values[1]=var999; +if (likely(varonce1002!=NULL)) { +var1003 = varonce1002; } else { -var1202 = "(void) {"; -var1203 = 8; -var1204 = standard___standard__NativeString___to_s_with_length(var1202, var1203); -var1201 = var1204; -varonce1200 = var1201; +var1004 = "(void) {"; +var1005 = standard___standard__NativeString___to_s_with_length(var1004, 8l); +var1003 = var1005; +varonce1002 = var1003; } -var1205 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1205 = array_instance Array[Object] */ -var1206 = 4; -var1207 = NEW_standard__NativeArray(var1206, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1207)->values[0] = (val*) var1194; -((struct instance_standard__NativeArray*)var1207)->values[1] = (val*) var1196; -((struct instance_standard__NativeArray*)var1207)->values[2] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var1207)->values[3] = (val*) var1201; -{ -((void (*)(val* self, val* p0, long p1))(var1205->class->vft[COLOR_standard__array__Array__with_native]))(var1205, var1207, var1206) /* with_native on */; +((struct instance_standard__NativeArray*)var997)->values[3]=var1003; +} else { +var997 = varonce996; +varonce996 = NULL; } +{ +var1006 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype); } +((struct instance_standard__NativeArray*)var997)->values[0]=var1006; +((struct instance_standard__NativeArray*)var997)->values[2]=var_c_name; { -var1208 = ((val* (*)(val* self))(var1205->class->vft[COLOR_standard__string__Object__to_s]))(var1205) /* to_s on */; +var1007 = ((val*(*)(val* self))(var997->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var997); /* native_to_s on */ } +varonce996 = var997; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var1208); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var1007); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } if (var_is_dead){ -if (varonce1209) { -var1210 = varonce1209; +if (unlikely(varonce1008==NULL)) { +var1009 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce1010!=NULL)) { +var1011 = varonce1010; } else { -var1211 = " is DEAD"; -var1212 = 8; -var1213 = standard___standard__NativeString___to_s_with_length(var1211, var1212); -var1210 = var1213; -varonce1209 = var1210; +var1012 = " is DEAD"; +var1013 = standard___standard__NativeString___to_s_with_length(var1012, 8l); +var1011 = var1013; +varonce1010 = var1011; } -var1214 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1214 = array_instance Array[Object] */ -var1215 = 2; -var1216 = NEW_standard__NativeArray(var1215, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1216)->values[0] = (val*) var_mclass; -((struct instance_standard__NativeArray*)var1216)->values[1] = (val*) var1210; -{ -((void (*)(val* self, val* p0, long p1))(var1214->class->vft[COLOR_standard__array__Array__with_native]))(var1214, var1216, var1215) /* with_native on */; +((struct instance_standard__NativeArray*)var1009)->values[1]=var1011; +} else { +var1009 = varonce1008; +varonce1008 = NULL; } +{ +var1014 = ((val*(*)(val* self))(var_mclass->class->vft[COLOR_standard__string__Object__to_s]))(var_mclass); /* to_s on */ } +((struct instance_standard__NativeArray*)var1009)->values[0]=var1014; { -var1217 = ((val* (*)(val* self))(var1214->class->vft[COLOR_standard__string__Object__to_s]))(var1214) /* to_s on */; +var1015 = ((val*(*)(val* self))(var1009->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1009); /* native_to_s on */ } +varonce1008 = var1009; { -nit___nit__AbstractCompilerVisitor___add_abort(var_v, var1217); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ +nit___nit__AbstractCompilerVisitor___add_abort(var_v, var1015); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ } } else { -if (varonce1218) { -var1219 = varonce1218; +if (likely(varonce1016!=NULL)) { +var1017 = varonce1016; } else { -var1220 = "self"; -var1221 = 4; -var1222 = standard___standard__NativeString___to_s_with_length(var1220, var1221); -var1219 = var1222; -varonce1218 = var1219; +var1018 = "self"; +var1019 = standard___standard__NativeString___to_s_with_length(var1018, 4l); +var1017 = var1019; +varonce1016 = var1017; } { -var1223 = nit___nit__AbstractCompilerVisitor___new_named_var(var_v, var_mtype, var1219); +var1020 = nit___nit__AbstractCompilerVisitor___new_named_var(var_v, var_mtype, var1017); } -var_res1224 = var1223; -var1225 = 1; +var_res1021 = var1020; { -{ /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res1224,var1225) on */ -var_res1224->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___is_exact].s = var1225; /* _is_exact on */ -RET_LABEL1226:(void)0; +{ /* Inline abstract_compiler#RuntimeVariable#is_exact= (var_res1021,1) on */ +var_res1021->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___is_exact].s = 1; /* _is_exact on */ +RET_LABEL1022:(void)0; } } -if (varonce1227) { -var1228 = varonce1227; -} else { -var1229 = " = nit_alloc(sizeof(struct instance) + "; -var1230 = 39; -var1231 = standard___standard__NativeString___to_s_with_length(var1229, var1230); -var1228 = var1231; -varonce1227 = var1228; +{ +{ /* Inline separate_compiler#SeparateCompiler#attr_tables (self) on */ +var1025 = self->attrs[COLOR_nit__separate_compiler__SeparateCompiler___attr_tables].val; /* _attr_tables on */ +if (unlikely(var1025 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1054); +fatal_exit(1); +} +var1023 = var1025; +RET_LABEL1024:(void)0; +} } { -{ /* Inline array#AbstractArrayRead#length (var_attrs) on */ -var1234 = var_attrs->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var1232 = var1234; -RET_LABEL1233:(void)0; +var1026 = ((val*(*)(val* self, val* p0))((((long)var1023&3)?class_info[((long)var1023&3)]:var1023->class)->vft[COLOR_standard__abstract_collection__MapRead__get_or_null]))(var1023, var_mclass); /* get_or_null on */ } +var_attrs = var1026; +if (var_attrs == NULL) { +var1027 = 1; /* is null */ +} else { +var1027 = 0; /* arg is null but recv is not */ } -if (varonce1235) { -var1236 = varonce1235; +if (0) { +var1028 = standard___standard__Array___standard__kernel__Object___61d_61d(var_attrs, ((val*)NULL)); +var1027 = var1028; +} +if (var1027){ +if (unlikely(varonce1029==NULL)) { +var1030 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce1031!=NULL)) { +var1032 = varonce1031; } else { -var1237 = "*sizeof(nitattribute_t));"; -var1238 = 25; -var1239 = standard___standard__NativeString___to_s_with_length(var1237, var1238); -var1236 = var1239; -varonce1235 = var1236; +var1033 = " = nit_alloc(sizeof(struct instance));"; +var1034 = standard___standard__NativeString___to_s_with_length(var1033, 38l); +var1032 = var1034; +varonce1031 = var1032; } -var1240 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1240 = array_instance Array[Object] */ -var1241 = 4; -var1242 = NEW_standard__NativeArray(var1241, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1242)->values[0] = (val*) var_res1224; -((struct instance_standard__NativeArray*)var1242)->values[1] = (val*) var1228; -var1243 = BOX_standard__Int(var1232); /* autobox from Int to Object */ -((struct instance_standard__NativeArray*)var1242)->values[2] = (val*) var1243; -((struct instance_standard__NativeArray*)var1242)->values[3] = (val*) var1236; -{ -((void (*)(val* self, val* p0, long p1))(var1240->class->vft[COLOR_standard__array__Array__with_native]))(var1240, var1242, var1241) /* with_native on */; +((struct instance_standard__NativeArray*)var1030)->values[1]=var1032; +} else { +var1030 = varonce1029; +varonce1029 = NULL; } +{ +var1035 = ((val*(*)(val* self))(var_res1021->class->vft[COLOR_standard__string__Object__to_s]))(var_res1021); /* to_s on */ } +((struct instance_standard__NativeArray*)var1030)->values[0]=var1035; { -var1244 = ((val* (*)(val* self))(var1240->class->vft[COLOR_standard__string__Object__to_s]))(var1240) /* to_s on */; +var1036 = ((val*(*)(val* self))(var1030->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1030); /* native_to_s on */ } +varonce1029 = var1030; { -nit___nit__AbstractCompilerVisitor___add(var_v, var1244); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var1036); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce1245) { -var1246 = varonce1245; } else { -var1247 = "class_"; -var1248 = 6; -var1249 = standard___standard__NativeString___to_s_with_length(var1247, var1248); -var1246 = var1249; -varonce1245 = var1246; +if (unlikely(varonce1037==NULL)) { +var1038 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce1039!=NULL)) { +var1040 = varonce1039; +} else { +var1041 = " = nit_alloc(sizeof(struct instance) + "; +var1042 = standard___standard__NativeString___to_s_with_length(var1041, 39l); +var1040 = var1042; +varonce1039 = var1040; +} +((struct instance_standard__NativeArray*)var1038)->values[1]=var1040; +if (likely(varonce1043!=NULL)) { +var1044 = varonce1043; +} else { +var1045 = "*sizeof(nitattribute_t));"; +var1046 = standard___standard__NativeString___to_s_with_length(var1045, 25l); +var1044 = var1046; +varonce1043 = var1044; +} +((struct instance_standard__NativeArray*)var1038)->values[3]=var1044; +} else { +var1038 = varonce1037; +varonce1037 = NULL; +} +{ +var1047 = ((val*(*)(val* self))(var_res1021->class->vft[COLOR_standard__string__Object__to_s]))(var_res1021); /* to_s on */ +} +((struct instance_standard__NativeArray*)var1038)->values[0]=var1047; +{ +{ /* Inline array#AbstractArrayRead#length (var_attrs) on */ +var1050 = var_attrs->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var1048 = var1050; +RET_LABEL1049:(void)0; +} } -var1250 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1250 = array_instance Array[Object] */ -var1251 = 2; -var1252 = NEW_standard__NativeArray(var1251, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1252)->values[0] = (val*) var1246; -((struct instance_standard__NativeArray*)var1252)->values[1] = (val*) var_c_name; +var1051 = standard__string___Int___Object__to_s(var1048); +((struct instance_standard__NativeArray*)var1038)->values[2]=var1051; +{ +var1052 = ((val*(*)(val* self))(var1038->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1038); /* native_to_s on */ +} +varonce1037 = var1038; { -((void (*)(val* self, val* p0, long p1))(var1250->class->vft[COLOR_standard__array__Array__with_native]))(var1250, var1252, var1251) /* with_native on */; +nit___nit__AbstractCompilerVisitor___add(var_v, var1052); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } } +if (unlikely(varonce1053==NULL)) { +var1054 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce1055!=NULL)) { +var1056 = varonce1055; +} else { +var1057 = "class_"; +var1058 = standard___standard__NativeString___to_s_with_length(var1057, 6l); +var1056 = var1058; +varonce1055 = var1056; +} +((struct instance_standard__NativeArray*)var1054)->values[0]=var1056; +} else { +var1054 = varonce1053; +varonce1053 = NULL; +} +((struct instance_standard__NativeArray*)var1054)->values[1]=var_c_name; { -var1253 = ((val* (*)(val* self))(var1250->class->vft[COLOR_standard__string__Object__to_s]))(var1250) /* to_s on */; +var1059 = ((val*(*)(val* self))(var1054->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1054); /* native_to_s on */ } +varonce1053 = var1054; { -nit___nit__AbstractCompilerVisitor___require_declaration(var_v, var1253); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +nit___nit__AbstractCompilerVisitor___require_declaration(var_v, var1059); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ } -if (varonce1254) { -var1255 = varonce1254; +if (unlikely(varonce1060==NULL)) { +var1061 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce1062!=NULL)) { +var1063 = varonce1062; } else { -var1256 = "->class = &class_"; -var1257 = 17; -var1258 = standard___standard__NativeString___to_s_with_length(var1256, var1257); -var1255 = var1258; -varonce1254 = var1255; +var1064 = "->class = &class_"; +var1065 = standard___standard__NativeString___to_s_with_length(var1064, 17l); +var1063 = var1065; +varonce1062 = var1063; } -if (varonce1259) { -var1260 = varonce1259; +((struct instance_standard__NativeArray*)var1061)->values[1]=var1063; +if (likely(varonce1066!=NULL)) { +var1067 = varonce1066; } else { -var1261 = ";"; -var1262 = 1; -var1263 = standard___standard__NativeString___to_s_with_length(var1261, var1262); -var1260 = var1263; -varonce1259 = var1260; +var1068 = ";"; +var1069 = standard___standard__NativeString___to_s_with_length(var1068, 1l); +var1067 = var1069; +varonce1066 = var1067; +} +((struct instance_standard__NativeArray*)var1061)->values[3]=var1067; +} else { +var1061 = varonce1060; +varonce1060 = NULL; } -var1264 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1264 = array_instance Array[Object] */ -var1265 = 4; -var1266 = NEW_standard__NativeArray(var1265, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1266)->values[0] = (val*) var_res1224; -((struct instance_standard__NativeArray*)var1266)->values[1] = (val*) var1255; -((struct instance_standard__NativeArray*)var1266)->values[2] = (val*) var_c_name; -((struct instance_standard__NativeArray*)var1266)->values[3] = (val*) var1260; { -((void (*)(val* self, val* p0, long p1))(var1264->class->vft[COLOR_standard__array__Array__with_native]))(var1264, var1266, var1265) /* with_native on */; +var1070 = ((val*(*)(val* self))(var_res1021->class->vft[COLOR_standard__string__Object__to_s]))(var_res1021); /* to_s on */ } +((struct instance_standard__NativeArray*)var1061)->values[0]=var1070; +((struct instance_standard__NativeArray*)var1061)->values[2]=var_c_name; +{ +var1071 = ((val*(*)(val* self))(var1061->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1061); /* native_to_s on */ } +varonce1060 = var1061; { -var1267 = ((val* (*)(val* self))(var1264->class->vft[COLOR_standard__string__Object__to_s]))(var1264) /* to_s on */; +nit___nit__AbstractCompilerVisitor___add(var_v, var1071); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +} +if (var_attrs == NULL) { +var1072 = 0; /* is null */ +} else { +var1072 = 1; /* arg is null and recv is not */ } +if (0) { +{ /* Inline kernel#Object#!= (var_attrs,((val*)NULL)) on */ +var_other = ((val*)NULL); { -nit___nit__AbstractCompilerVisitor___add(var_v, var1267); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +var1075 = ((short int(*)(val* self, val* p0))(var_attrs->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_attrs, var_other); /* == on */ +} +var1076 = !var1075; +var1073 = var1076; +goto RET_LABEL1074; +RET_LABEL1074:(void)0; +} +var1072 = var1073; } +if (var1072){ { -nit___nit__AbstractCompiler___generate_init_attr(self, var_v, var_res1224, var_mtype); /* Direct call abstract_compiler#AbstractCompiler#generate_init_attr on */ +nit___nit__AbstractCompiler___generate_init_attr(self, var_v, var_res1021, var_mtype); /* Direct call abstract_compiler#AbstractCompiler#generate_init_attr on */ } { -nit___nit__AbstractCompilerVisitor___set_finalizer(var_v, var_res1224); /* Direct call abstract_compiler#AbstractCompilerVisitor#set_finalizer on */ +nit___nit__AbstractCompilerVisitor___set_finalizer(var_v, var_res1021); /* Direct call abstract_compiler#AbstractCompilerVisitor#set_finalizer on */ } -if (varonce1268) { -var1269 = varonce1268; } else { -var1270 = "return "; -var1271 = 7; -var1272 = standard___standard__NativeString___to_s_with_length(var1270, var1271); -var1269 = var1272; -varonce1268 = var1269; } -if (varonce1273) { -var1274 = varonce1273; +if (unlikely(varonce1077==NULL)) { +var1078 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce1079!=NULL)) { +var1080 = varonce1079; } else { -var1275 = ";"; -var1276 = 1; -var1277 = standard___standard__NativeString___to_s_with_length(var1275, var1276); -var1274 = var1277; -varonce1273 = var1274; +var1081 = "return "; +var1082 = standard___standard__NativeString___to_s_with_length(var1081, 7l); +var1080 = var1082; +varonce1079 = var1080; } -var1278 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var1278 = array_instance Array[Object] */ -var1279 = 3; -var1280 = NEW_standard__NativeArray(var1279, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var1280)->values[0] = (val*) var1269; -((struct instance_standard__NativeArray*)var1280)->values[1] = (val*) var_res1224; -((struct instance_standard__NativeArray*)var1280)->values[2] = (val*) var1274; -{ -((void (*)(val* self, val* p0, long p1))(var1278->class->vft[COLOR_standard__array__Array__with_native]))(var1278, var1280, var1279) /* with_native on */; +((struct instance_standard__NativeArray*)var1078)->values[0]=var1080; +if (likely(varonce1083!=NULL)) { +var1084 = varonce1083; +} else { +var1085 = ";"; +var1086 = standard___standard__NativeString___to_s_with_length(var1085, 1l); +var1084 = var1086; +varonce1083 = var1084; } +((struct instance_standard__NativeArray*)var1078)->values[2]=var1084; +} else { +var1078 = varonce1077; +varonce1077 = NULL; +} +{ +var1087 = ((val*(*)(val* self))(var_res1021->class->vft[COLOR_standard__string__Object__to_s]))(var_res1021); /* to_s on */ } +((struct instance_standard__NativeArray*)var1078)->values[1]=var1087; { -var1281 = ((val* (*)(val* self))(var1278->class->vft[COLOR_standard__string__Object__to_s]))(var1278) /* to_s on */; +var1088 = ((val*(*)(val* self))(var1078->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1078); /* native_to_s on */ } +varonce1077 = var1078; { -nit___nit__AbstractCompilerVisitor___add(var_v, var1281); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var1088); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } } -if (varonce1282) { -var1283 = varonce1282; +if (likely(varonce1089!=NULL)) { +var1090 = varonce1089; } else { -var1284 = "}"; -var1285 = 1; -var1286 = standard___standard__NativeString___to_s_with_length(var1284, var1285); -var1283 = var1286; -varonce1282 = var1283; +var1091 = "}"; +var1092 = standard___standard__NativeString___to_s_with_length(var1091, 1l); +var1090 = var1092; +varonce1089 = var1090; } { -nit___nit__AbstractCompilerVisitor___add(var_v, var1283); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(var_v, var1090); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } RET_LABEL:; } @@ -6775,642 +6483,594 @@ val* var1 /* : Map[MClass, Array[nullable MPropDef]] */; val* var3 /* : Map[MClass, Array[nullable MPropDef]] */; val* var4 /* : nullable Object */; short int var5 /* : Bool */; -short int var6 /* : Bool */; +val* var6 /* : NativeArray[String] */; static val* varonce; -val* var7 /* : String */; -char* var8 /* : NativeString */; -long var9 /* : Int */; +static val* varonce7; +val* var8 /* : String */; +char* var9 /* : NativeString */; val* var10 /* : FlatString */; val* var11 /* : String */; -val* var12 /* : Array[Object] */; -long var13 /* : Int */; -val* var14 /* : NativeArray[Object] */; -val* var15 /* : String */; -static val* varonce16; -val* var17 /* : String */; -char* var18 /* : NativeString */; -long var19 /* : Int */; -val* var20 /* : FlatString */; -val* var21 /* : String */; -static val* varonce22; +val* var12 /* : String */; +val* var14 /* : NativeArray[String] */; +static val* varonce13; +static val* varonce15; +val* var16 /* : String */; +char* var17 /* : NativeString */; +val* var18 /* : FlatString */; +static val* varonce19; +val* var20 /* : String */; +char* var21 /* : NativeString */; +val* var22 /* : FlatString */; 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 */; -val* var31 /* : SeparateCompilerVisitor */; +val* var24 /* : String */; +val* var25 /* : SeparateCompilerVisitor */; val* var_v /* var v: SeparateCompilerVisitor */; +val* var27 /* : NativeArray[String] */; +static val* varonce26; +static val* varonce28; +val* var29 /* : String */; +char* var30 /* : NativeString */; +val* var31 /* : FlatString */; static val* varonce32; val* var33 /* : String */; char* var34 /* : NativeString */; -long var35 /* : Int */; -val* var36 /* : FlatString */; +val* var35 /* : FlatString */; +val* var36 /* : String */; val* var37 /* : String */; static val* varonce38; val* var39 /* : String */; char* var40 /* : NativeString */; -long var41 /* : Int */; -val* var42 /* : FlatString */; -val* var43 /* : Array[Object] */; -long var44 /* : Int */; -val* var45 /* : NativeArray[Object] */; -val* var46 /* : String */; -static val* varonce47; -val* var48 /* : String */; -char* var49 /* : NativeString */; -long var50 /* : Int */; -val* var51 /* : FlatString */; -static val* varonce52; -val* var53 /* : String */; -char* var54 /* : NativeString */; -long var55 /* : Int */; -val* var56 /* : FlatString */; -val* var57 /* : Map[MClass, Array[nullable MPropDef]] */; -val* var59 /* : Map[MClass, Array[nullable MPropDef]] */; -val* var60 /* : nullable Object */; +val* var41 /* : FlatString */; +static val* varonce42; +val* var43 /* : String */; +char* var44 /* : NativeString */; +val* var45 /* : FlatString */; +val* var46 /* : Map[MClass, Array[nullable MPropDef]] */; +val* var48 /* : Map[MClass, Array[nullable MPropDef]] */; +val* var49 /* : nullable Object */; val* var_ /* var : Array[nullable MPropDef] */; -val* var61 /* : ArrayIterator[nullable Object] */; -val* var_62 /* var : ArrayIterator[nullable MPropDef] */; -short int var63 /* : Bool */; -val* var64 /* : nullable Object */; +val* var50 /* : ArrayIterator[nullable Object] */; +val* var_51 /* var : ArrayIterator[nullable MPropDef] */; +short int var52 /* : Bool */; +val* var53 /* : nullable Object */; val* var_vt /* var vt: nullable MPropDef */; -val* var65 /* : null */; -short int var66 /* : Bool */; -short int var67 /* : Bool */; +short int var54 /* : Bool */; +short int var55 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var69 /* : Bool */; -short int var71 /* : Bool */; -static val* varonce72; -val* var73 /* : String */; -char* var74 /* : NativeString */; -long var75 /* : Int */; -val* var76 /* : FlatString */; -long var77 /* : Int */; +short int var57 /* : Bool */; +short int var59 /* : Bool */; +static val* varonce60; +val* var61 /* : String */; +char* var62 /* : NativeString */; +val* var63 /* : FlatString */; long var_is_null /* var is_null: Int */; -val* var78 /* : MClassDef */; -val* var80 /* : MClassDef */; -val* var81 /* : MClassType */; -val* var83 /* : MClassType */; -short int var84 /* : Bool */; +val* var64 /* : MClassDef */; +val* var66 /* : MClassDef */; +val* var67 /* : MClassType */; +val* var69 /* : MClassType */; +short int var70 /* : Bool */; int cltype; int idtype; const char* var_class_name; -val* var85 /* : nullable MType */; -val* var87 /* : nullable MType */; -val* var88 /* : MType */; +val* var71 /* : nullable MType */; +val* var73 /* : nullable MType */; +val* var74 /* : MType */; val* var_bound /* var bound: MType */; -short int var89 /* : Bool */; -int cltype90; -int idtype91; -val* var92 /* : MClassDef */; -val* var94 /* : MClassDef */; -val* var95 /* : MClassType */; -val* var97 /* : MClassType */; -val* var98 /* : MType */; -val* var100 /* : MType */; -val* var101 /* : MType */; -long var102 /* : Int */; -short int var103 /* : Bool */; -int cltype104; -int idtype105; -const char* var_class_name106; -val* var107 /* : MClass */; -val* var109 /* : MClass */; +short int var75 /* : Bool */; +int cltype76; +int idtype77; +val* var78 /* : MClassDef */; +val* var80 /* : MClassDef */; +val* var81 /* : MClassType */; +val* var83 /* : MClassType */; +val* var84 /* : MType */; +val* var86 /* : MType */; +val* var87 /* : MType */; +short int var88 /* : Bool */; +int cltype89; +int idtype90; +const char* var_class_name91; +val* var92 /* : MClass */; +val* var94 /* : MClass */; val* var_vtclass /* var vtclass: MClass */; -static val* varonce110; -val* var111 /* : String */; -char* var112 /* : NativeString */; -long var113 /* : Int */; -val* var114 /* : FlatString */; -val* var115 /* : String */; -val* var116 /* : Array[Object] */; -long var117 /* : Int */; -val* var118 /* : NativeArray[Object] */; -val* var119 /* : String */; -static val* varonce120; +val* var96 /* : NativeArray[String] */; +static val* varonce95; +static val* varonce97; +val* var98 /* : String */; +char* var99 /* : NativeString */; +val* var100 /* : FlatString */; +val* var101 /* : String */; +val* var102 /* : String */; +val* var104 /* : NativeArray[String] */; +static val* varonce103; +static val* varonce105; +val* var106 /* : String */; +char* var107 /* : NativeString */; +val* var108 /* : FlatString */; +static val* varonce109; +val* var110 /* : String */; +char* var111 /* : NativeString */; +val* var112 /* : FlatString */; +static val* varonce113; +val* var114 /* : String */; +char* var115 /* : NativeString */; +val* var116 /* : FlatString */; +static val* varonce117; +val* var118 /* : String */; +char* var119 /* : NativeString */; +val* var120 /* : FlatString */; val* var121 /* : String */; -char* var122 /* : NativeString */; -long var123 /* : Int */; -val* var124 /* : FlatString */; -static val* varonce125; -val* var126 /* : String */; -char* var127 /* : NativeString */; -long var128 /* : Int */; +val* var122 /* : String */; +val* var123 /* : String */; +val* var124 /* : String */; +static val* varonce126; +val* var127 /* : String */; +char* var128 /* : NativeString */; val* var129 /* : FlatString */; -val* var130 /* : String */; -static val* varonce131; -val* var132 /* : String */; -char* var133 /* : NativeString */; -long var134 /* : Int */; -val* var135 /* : FlatString */; -static val* varonce136; -val* var137 /* : String */; -char* var138 /* : NativeString */; -long var139 /* : Int */; -val* var140 /* : FlatString */; -val* var141 /* : Array[Object] */; -long var142 /* : Int */; -val* var143 /* : NativeArray[Object] */; -val* var144 /* : Object */; -val* var145 /* : String */; -static val* varonce148; -val* var149 /* : String */; -char* var150 /* : NativeString */; -long var151 /* : Int */; -val* var152 /* : FlatString */; -static val* varonce153; -val* var154 /* : String */; -char* var155 /* : NativeString */; -long var156 /* : Int */; -val* var157 /* : FlatString */; -short int var158 /* : Bool */; +static val* varonce130; +val* var131 /* : String */; +char* var132 /* : NativeString */; +val* var133 /* : FlatString */; var_mclass = p0; { { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables (self) on */ var3 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables].val; /* _vt_tables on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 417); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 428); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; } } { -var4 = ((val* (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var1, var_mclass) /* [] on */; +var4 = ((val*(*)(val* self, val* p0))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var1, var_mclass); /* [] on */ } { var5 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var4); } if (var5){ -var6 = 0; -var = var6; +var = 0; goto RET_LABEL; } else { } -if (varonce) { -var7 = varonce; +if (unlikely(varonce==NULL)) { +var6 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce7!=NULL)) { +var8 = varonce7; } else { -var8 = "vts_table_"; -var9 = 10; -var10 = standard___standard__NativeString___to_s_with_length(var8, var9); -var7 = var10; -varonce = var7; +var9 = "vts_table_"; +var10 = standard___standard__NativeString___to_s_with_length(var9, 10l); +var8 = var10; +varonce7 = var8; } -{ -var11 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass); +((struct instance_standard__NativeArray*)var6)->values[0]=var8; +} else { +var6 = varonce; +varonce = NULL; } -var12 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var12 = array_instance Array[Object] */ -var13 = 2; -var14 = NEW_standard__NativeArray(var13, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var14)->values[0] = (val*) var7; -((struct instance_standard__NativeArray*)var14)->values[1] = (val*) var11; { -((void (*)(val* self, val* p0, long p1))(var12->class->vft[COLOR_standard__array__Array__with_native]))(var12, var14, var13) /* with_native on */; -} +var11 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass); } +((struct instance_standard__NativeArray*)var6)->values[1]=var11; { -var15 = ((val* (*)(val* self))(var12->class->vft[COLOR_standard__string__Object__to_s]))(var12) /* to_s on */; +var12 = ((val*(*)(val* self))(var6->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var6); /* native_to_s on */ } -if (varonce16) { -var17 = varonce16; +varonce = var6; +if (unlikely(varonce13==NULL)) { +var14 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce15!=NULL)) { +var16 = varonce15; } else { -var18 = "extern const struct vts_table vts_table_"; -var19 = 40; -var20 = standard___standard__NativeString___to_s_with_length(var18, var19); -var17 = var20; -varonce16 = var17; +var17 = "extern const struct vts_table vts_table_"; +var18 = standard___standard__NativeString___to_s_with_length(var17, 40l); +var16 = var18; +varonce15 = var16; } -{ -var21 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass); +((struct instance_standard__NativeArray*)var14)->values[0]=var16; +if (likely(varonce19!=NULL)) { +var20 = varonce19; +} else { +var21 = ";"; +var22 = standard___standard__NativeString___to_s_with_length(var21, 1l); +var20 = var22; +varonce19 = var20; } -if (varonce22) { -var23 = varonce22; +((struct instance_standard__NativeArray*)var14)->values[2]=var20; } else { -var24 = ";"; -var25 = 1; -var26 = standard___standard__NativeString___to_s_with_length(var24, var25); -var23 = var26; -varonce22 = var23; +var14 = varonce13; +varonce13 = NULL; } -var27 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var27 = array_instance Array[Object] */ -var28 = 3; -var29 = NEW_standard__NativeArray(var28, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var29)->values[0] = (val*) var17; -((struct instance_standard__NativeArray*)var29)->values[1] = (val*) var21; -((struct instance_standard__NativeArray*)var29)->values[2] = (val*) var23; { -((void (*)(val* self, val* p0, long p1))(var27->class->vft[COLOR_standard__array__Array__with_native]))(var27, var29, var28) /* with_native on */; -} +var23 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass); } +((struct instance_standard__NativeArray*)var14)->values[1]=var23; { -var30 = ((val* (*)(val* self))(var27->class->vft[COLOR_standard__string__Object__to_s]))(var27) /* to_s on */; +var24 = ((val*(*)(val* self))(var14->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var14); /* native_to_s on */ } +varonce13 = var14; { -nit___nit__AbstractCompiler___provide_declaration(self, var15, var30); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on */ +nit___nit__AbstractCompiler___provide_declaration(self, var12, var24); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on */ } { -var31 = nit___nit__SeparateErasureCompiler___nit__abstract_compiler__AbstractCompiler__new_visitor(self); +var25 = nit___nit__SeparateErasureCompiler___nit__abstract_compiler__AbstractCompiler__new_visitor(self); +} +var_v = var25; +if (unlikely(varonce26==NULL)) { +var27 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce28!=NULL)) { +var29 = varonce28; +} else { +var30 = "const struct vts_table vts_table_"; +var31 = standard___standard__NativeString___to_s_with_length(var30, 33l); +var29 = var31; +varonce28 = var29; } -var_v = var31; -if (varonce32) { +((struct instance_standard__NativeArray*)var27)->values[0]=var29; +if (likely(varonce32!=NULL)) { var33 = varonce32; } else { -var34 = "const struct vts_table vts_table_"; -var35 = 33; -var36 = standard___standard__NativeString___to_s_with_length(var34, var35); -var33 = var36; +var34 = " = {"; +var35 = standard___standard__NativeString___to_s_with_length(var34, 4l); +var33 = var35; varonce32 = var33; } -{ -var37 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass); -} -if (varonce38) { -var39 = varonce38; +((struct instance_standard__NativeArray*)var27)->values[2]=var33; } else { -var40 = " = {"; -var41 = 4; -var42 = standard___standard__NativeString___to_s_with_length(var40, var41); -var39 = var42; -varonce38 = var39; +var27 = varonce26; +varonce26 = NULL; } -var43 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var43 = array_instance Array[Object] */ -var44 = 3; -var45 = NEW_standard__NativeArray(var44, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var45)->values[0] = (val*) var33; -((struct instance_standard__NativeArray*)var45)->values[1] = (val*) var37; -((struct instance_standard__NativeArray*)var45)->values[2] = (val*) var39; { -((void (*)(val* self, val* p0, long p1))(var43->class->vft[COLOR_standard__array__Array__with_native]))(var43, var45, var44) /* with_native on */; -} +var36 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_mclass); } +((struct instance_standard__NativeArray*)var27)->values[1]=var36; { -var46 = ((val* (*)(val* self))(var43->class->vft[COLOR_standard__string__Object__to_s]))(var43) /* to_s on */; +var37 = ((val*(*)(val* self))(var27->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var27); /* native_to_s on */ } +varonce26 = var27; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var46); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var37); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -if (varonce47) { -var48 = varonce47; +if (likely(varonce38!=NULL)) { +var39 = varonce38; } else { -var49 = "0, /* dummy */"; -var50 = 14; -var51 = standard___standard__NativeString___to_s_with_length(var49, var50); -var48 = var51; -varonce47 = var48; +var40 = "0, /* dummy */"; +var41 = standard___standard__NativeString___to_s_with_length(var40, 14l); +var39 = var41; +varonce38 = var39; } { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var48); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var39); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -if (varonce52) { -var53 = varonce52; +if (likely(varonce42!=NULL)) { +var43 = varonce42; } else { -var54 = "{"; -var55 = 1; -var56 = standard___standard__NativeString___to_s_with_length(var54, var55); -var53 = var56; -varonce52 = var53; +var44 = "{"; +var45 = standard___standard__NativeString___to_s_with_length(var44, 1l); +var43 = var45; +varonce42 = var43; } { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var53); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var43); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } { { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables (self) on */ -var59 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables].val; /* _vt_tables on */ -if (unlikely(var59 == NULL)) { +var48 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables].val; /* _vt_tables on */ +if (unlikely(var48 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 417); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 428); +fatal_exit(1); } -var57 = var59; -RET_LABEL58:(void)0; +var46 = var48; +RET_LABEL47:(void)0; } } { -var60 = ((val* (*)(val* self, val* p0))(var57->class->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var57, var_mclass) /* [] on */; +var49 = ((val*(*)(val* self, val* p0))((((long)var46&3)?class_info[((long)var46&3)]:var46->class)->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var46, var_mclass); /* [] on */ } -var_ = var60; +var_ = var49; { -var61 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); +var50 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); } -var_62 = var61; +var_51 = var50; for(;;) { { -var63 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_62); +var52 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_51); } -if (var63){ +if (var52){ { -var64 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_62); +var53 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_51); } -var_vt = var64; -var65 = NULL; +var_vt = var53; if (var_vt == NULL) { -var66 = 1; /* is null */ +var54 = 1; /* is null */ } else { -var66 = 0; /* arg is null but recv is not */ +var54 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_vt,var65) on */ -var_other = var65; +{ /* Inline kernel#Object#== (var_vt,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var_vt,var_other) on */ -var71 = var_vt == var_other; -var69 = var71; -goto RET_LABEL70; -RET_LABEL70:(void)0; +var59 = var_vt == var_other; +var57 = var59; +goto RET_LABEL58; +RET_LABEL58:(void)0; } } -var67 = var69; -goto RET_LABEL68; -RET_LABEL68:(void)0; +var55 = var57; +goto RET_LABEL56; +RET_LABEL56:(void)0; } -var66 = var67; +var54 = var55; } -if (var66){ -if (varonce72) { -var73 = varonce72; +if (var54){ +if (likely(varonce60!=NULL)) { +var61 = varonce60; } else { -var74 = "{-1, NULL}, /* empty */"; -var75 = 23; -var76 = standard___standard__NativeString___to_s_with_length(var74, var75); -var73 = var76; -varonce72 = var73; +var62 = "{-1, NULL}, /* empty */"; +var63 = standard___standard__NativeString___to_s_with_length(var62, 23l); +var61 = var63; +varonce60 = var61; } { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var73); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var61); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } } else { -var77 = 0; -var_is_null = var77; +var_is_null = 0l; { { /* Inline model#MClass#intro (var_mclass) on */ -var80 = var_mclass->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ -if (unlikely(var80 == NULL)) { +var66 = var_mclass->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ +if (unlikely(var66 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 423); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 460); +fatal_exit(1); } -var78 = var80; -RET_LABEL79:(void)0; +var64 = var66; +RET_LABEL65:(void)0; } } { -{ /* Inline model#MClassDef#bound_mtype (var78) on */ -var83 = var78->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ -if (unlikely(var83 == NULL)) { +{ /* Inline model#MClassDef#bound_mtype (var64) on */ +var69 = var64->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var69 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556); +fatal_exit(1); } -var81 = var83; -RET_LABEL82:(void)0; +var67 = var69; +RET_LABEL68:(void)0; } } /* isa MVirtualTypeDef */ cltype = type_nit__MVirtualTypeDef.color; idtype = type_nit__MVirtualTypeDef.id; if(cltype >= var_vt->type->table_size) { -var84 = 0; +var70 = 0; } else { -var84 = var_vt->type->type_table[cltype] == idtype; +var70 = var_vt->type->type_table[cltype] == idtype; } -if (unlikely(!var84)) { +if (unlikely(!var70)) { var_class_name = var_vt == NULL ? "null" : var_vt->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 378); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 389); +fatal_exit(1); } { { /* Inline model#MVirtualTypeDef#bound (var_vt) on */ -var87 = var_vt->attrs[COLOR_nit__model__MVirtualTypeDef___bound].val; /* _bound on */ -var85 = var87; -RET_LABEL86:(void)0; +var73 = var_vt->attrs[COLOR_nit__model__MVirtualTypeDef___bound].val; /* _bound on */ +var71 = var73; +RET_LABEL72:(void)0; } } { -var88 = nit___nit__SeparateErasureCompiler___retrieve_vt_bound(self, var81, var85); +var74 = nit___nit__SeparateErasureCompiler___retrieve_vt_bound(self, var67, var71); } -var_bound = var88; +var_bound = var74; for(;;) { /* isa MNullableType */ -cltype90 = type_nit__MNullableType.color; -idtype91 = type_nit__MNullableType.id; -if(cltype90 >= var_bound->type->table_size) { -var89 = 0; +cltype76 = type_nit__MNullableType.color; +idtype77 = type_nit__MNullableType.id; +if(cltype76 >= var_bound->type->table_size) { +var75 = 0; } else { -var89 = var_bound->type->type_table[cltype90] == idtype91; +var75 = var_bound->type->type_table[cltype76] == idtype77; } -if (var89){ +if (var75){ { { /* Inline model#MClass#intro (var_mclass) on */ -var94 = var_mclass->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ -if (unlikely(var94 == NULL)) { +var80 = var_mclass->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ +if (unlikely(var80 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 423); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 460); +fatal_exit(1); } -var92 = var94; -RET_LABEL93:(void)0; +var78 = var80; +RET_LABEL79:(void)0; } } { -{ /* Inline model#MClassDef#bound_mtype (var92) on */ -var97 = var92->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ -if (unlikely(var97 == NULL)) { +{ /* Inline model#MClassDef#bound_mtype (var78) on */ +var83 = var78->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var83 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556); +fatal_exit(1); } -var95 = var97; -RET_LABEL96:(void)0; +var81 = var83; +RET_LABEL82:(void)0; } } { -{ /* Inline model#MNullableType#mtype (var_bound) on */ -var100 = var_bound->attrs[COLOR_nit__model__MNullableType___mtype].val; /* _mtype on */ -if (unlikely(var100 == NULL)) { +{ /* Inline model#MProxyType#mtype (var_bound) on */ +var86 = var_bound->attrs[COLOR_nit__model__MProxyType___mtype].val; /* _mtype on */ +if (unlikely(var86 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1506); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1598); +fatal_exit(1); } -var98 = var100; -RET_LABEL99:(void)0; +var84 = var86; +RET_LABEL85:(void)0; } } { -var101 = nit___nit__SeparateErasureCompiler___retrieve_vt_bound(self, var95, var98); +var87 = nit___nit__SeparateErasureCompiler___retrieve_vt_bound(self, var81, var84); } -var_bound = var101; -var102 = 1; -var_is_null = var102; +var_bound = var87; +var_is_null = 1l; } else { goto BREAK_label; } } BREAK_label: (void)0; /* isa MClassType */ -cltype104 = type_nit__MClassType.color; -idtype105 = type_nit__MClassType.id; -if(cltype104 >= var_bound->type->table_size) { -var103 = 0; +cltype89 = type_nit__MClassType.color; +idtype90 = type_nit__MClassType.id; +if(cltype89 >= var_bound->type->table_size) { +var88 = 0; } else { -var103 = var_bound->type->type_table[cltype104] == idtype105; +var88 = var_bound->type->type_table[cltype89] == idtype90; } -if (unlikely(!var103)) { -var_class_name106 = var_bound == NULL ? "null" : var_bound->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name106); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 383); -show_backtrace(1); +if (unlikely(!var88)) { +var_class_name91 = var_bound == NULL ? "null" : var_bound->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name91); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 394); +fatal_exit(1); } { { /* Inline model#MClassType#mclass (var_bound) on */ -var109 = var_bound->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var109 == NULL)) { +var94 = var_bound->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var94 == 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); } -var107 = var109; -RET_LABEL108:(void)0; +var92 = var94; +RET_LABEL93:(void)0; } } -var_vtclass = var107; -if (varonce110) { -var111 = varonce110; +var_vtclass = var92; +if (unlikely(varonce95==NULL)) { +var96 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce97!=NULL)) { +var98 = varonce97; } else { -var112 = "class_"; -var113 = 6; -var114 = standard___standard__NativeString___to_s_with_length(var112, var113); -var111 = var114; -varonce110 = var111; +var99 = "class_"; +var100 = standard___standard__NativeString___to_s_with_length(var99, 6l); +var98 = var100; +varonce97 = var98; } -{ -var115 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_vtclass); +((struct instance_standard__NativeArray*)var96)->values[0]=var98; +} else { +var96 = varonce95; +varonce95 = NULL; } -var116 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var116 = array_instance Array[Object] */ -var117 = 2; -var118 = NEW_standard__NativeArray(var117, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var118)->values[0] = (val*) var111; -((struct instance_standard__NativeArray*)var118)->values[1] = (val*) var115; { -((void (*)(val* self, val* p0, long p1))(var116->class->vft[COLOR_standard__array__Array__with_native]))(var116, var118, var117) /* with_native on */; -} +var101 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_vtclass); } +((struct instance_standard__NativeArray*)var96)->values[1]=var101; { -var119 = ((val* (*)(val* self))(var116->class->vft[COLOR_standard__string__Object__to_s]))(var116) /* to_s on */; +var102 = ((val*(*)(val* self))(var96->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var96); /* native_to_s on */ } +varonce95 = var96; { -nit___nit__AbstractCompilerVisitor___require_declaration(var_v, var119); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +nit___nit__AbstractCompilerVisitor___require_declaration(var_v, var102); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ } -if (varonce120) { -var121 = varonce120; +if (unlikely(varonce103==NULL)) { +var104 = NEW_standard__NativeArray(7l, &type_standard__NativeArray__standard__String); +if (likely(varonce105!=NULL)) { +var106 = varonce105; } else { -var122 = "{"; -var123 = 1; -var124 = standard___standard__NativeString___to_s_with_length(var122, var123); -var121 = var124; -varonce120 = var121; +var107 = "{"; +var108 = standard___standard__NativeString___to_s_with_length(var107, 1l); +var106 = var108; +varonce105 = var106; } -if (varonce125) { -var126 = varonce125; +((struct instance_standard__NativeArray*)var104)->values[0]=var106; +if (likely(varonce109!=NULL)) { +var110 = varonce109; } else { -var127 = ", &class_"; -var128 = 9; -var129 = standard___standard__NativeString___to_s_with_length(var127, var128); -var126 = var129; -varonce125 = var126; +var111 = ", &class_"; +var112 = standard___standard__NativeString___to_s_with_length(var111, 9l); +var110 = var112; +varonce109 = var110; } -{ -var130 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_vtclass); +((struct instance_standard__NativeArray*)var104)->values[2]=var110; +if (likely(varonce113!=NULL)) { +var114 = varonce113; +} else { +var115 = "}, /* "; +var116 = standard___standard__NativeString___to_s_with_length(var115, 6l); +var114 = var116; +varonce113 = var114; } -if (varonce131) { -var132 = varonce131; +((struct instance_standard__NativeArray*)var104)->values[4]=var114; +if (likely(varonce117!=NULL)) { +var118 = varonce117; } else { -var133 = "}, /* "; -var134 = 6; -var135 = standard___standard__NativeString___to_s_with_length(var133, var134); -var132 = var135; -varonce131 = var132; +var119 = " */"; +var120 = standard___standard__NativeString___to_s_with_length(var119, 3l); +var118 = var120; +varonce117 = var118; } -if (varonce136) { -var137 = varonce136; +((struct instance_standard__NativeArray*)var104)->values[6]=var118; } else { -var138 = " */"; -var139 = 3; -var140 = standard___standard__NativeString___to_s_with_length(var138, var139); -var137 = var140; -varonce136 = var137; +var104 = varonce103; +varonce103 = NULL; } -var141 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var141 = array_instance Array[Object] */ -var142 = 7; -var143 = NEW_standard__NativeArray(var142, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var143)->values[0] = (val*) var121; -var144 = BOX_standard__Int(var_is_null); /* autobox from Int to Object */ -((struct instance_standard__NativeArray*)var143)->values[1] = (val*) var144; -((struct instance_standard__NativeArray*)var143)->values[2] = (val*) var126; -((struct instance_standard__NativeArray*)var143)->values[3] = (val*) var130; -((struct instance_standard__NativeArray*)var143)->values[4] = (val*) var132; -((struct instance_standard__NativeArray*)var143)->values[5] = (val*) var_vt; -((struct instance_standard__NativeArray*)var143)->values[6] = (val*) var137; +var121 = standard__string___Int___Object__to_s(var_is_null); +((struct instance_standard__NativeArray*)var104)->values[1]=var121; { -((void (*)(val* self, val* p0, long p1))(var141->class->vft[COLOR_standard__array__Array__with_native]))(var141, var143, var142) /* with_native on */; +var122 = nit___nit__MClass___nit__model_base__MEntity__c_name(var_vtclass); } +((struct instance_standard__NativeArray*)var104)->values[3]=var122; +{ +var123 = ((val*(*)(val* self))(var_vt->class->vft[COLOR_standard__string__Object__to_s]))(var_vt); /* to_s on */ } +((struct instance_standard__NativeArray*)var104)->values[5]=var123; { -var145 = ((val* (*)(val* self))(var141->class->vft[COLOR_standard__string__Object__to_s]))(var141) /* to_s on */; +var124 = ((val*(*)(val* self))(var104->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var104); /* native_to_s on */ } +varonce103 = var104; { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var145); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var124); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_62); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_51); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label146; +goto BREAK_label125; } } -BREAK_label146: (void)0; +BREAK_label125: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_62) on */ -RET_LABEL147:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_51); /* Direct call array#ArrayIterator#finish on */ } -if (varonce148) { -var149 = varonce148; +if (likely(varonce126!=NULL)) { +var127 = varonce126; } else { -var150 = "},"; -var151 = 2; -var152 = standard___standard__NativeString___to_s_with_length(var150, var151); -var149 = var152; -varonce148 = var149; +var128 = "},"; +var129 = standard___standard__NativeString___to_s_with_length(var128, 2l); +var127 = var129; +varonce126 = var127; } { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var149); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var127); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -if (varonce153) { -var154 = varonce153; +if (likely(varonce130!=NULL)) { +var131 = varonce130; } else { -var155 = "};"; -var156 = 2; -var157 = standard___standard__NativeString___to_s_with_length(var155, var156); -var154 = var157; -varonce153 = var154; +var132 = "};"; +var133 = standard___standard__NativeString___to_s_with_length(var132, 2l); +var131 = var133; +varonce130 = var131; } { -nit___nit__AbstractCompilerVisitor___add_decl(var_v, var154); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ +nit___nit__AbstractCompilerVisitor___add_decl(var_v, var131); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on */ } -var158 = 1; -var = var158; +var = 1; goto RET_LABEL; RET_LABEL:; return var; @@ -7420,124 +7080,122 @@ val* nit___nit__SeparateErasureCompiler___retrieve_vt_bound(val* self, val* p0, val* var /* : MType */; val* var_anchor /* var anchor: MClassType */; val* var_mtype /* var mtype: nullable MType */; -val* var1 /* : null */; +short int var1 /* : Bool */; short int var2 /* : Bool */; -short int var3 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var5 /* : Bool */; -short int var7 /* : Bool */; +short int var4 /* : Bool */; +short int var6 /* : Bool */; +val* var7 /* : Sys */; static val* varonce; val* var8 /* : String */; char* var9 /* : NativeString */; -long var10 /* : Int */; -val* var11 /* : FlatString */; -short int var12 /* : Bool */; +val* var10 /* : FlatString */; +short int var11 /* : Bool */; int cltype; int idtype; -val* var13 /* : MModule */; -val* var15 /* : MModule */; -val* var16 /* : MType */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -val* var20 /* : MModule */; -val* var22 /* : MModule */; -val* var23 /* : MType */; +val* var12 /* : MModule */; +val* var14 /* : MModule */; +val* var15 /* : MType */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +val* var19 /* : MModule */; +val* var21 /* : MModule */; +val* var22 /* : MType */; var_anchor = p0; var_mtype = p1; -var1 = NULL; if (var_mtype == NULL) { -var2 = 1; /* is null */ +var1 = 1; /* is null */ } else { -var2 = 0; /* arg is null but recv is not */ +var1 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_mtype,var1) on */ -var_other = var1; +{ /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on */ -var7 = var_mtype == var_other; -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; +var6 = var_mtype == var_other; +var4 = var6; +goto RET_LABEL5; +RET_LABEL5:(void)0; } } -var3 = var5; -goto RET_LABEL4; -RET_LABEL4:(void)0; +var2 = var4; +goto RET_LABEL3; +RET_LABEL3:(void)0; } -var2 = var3; +var1 = var2; } -if (var2){ -if (varonce) { +if (var1){ +var7 = glob_sys; +if (likely(varonce!=NULL)) { var8 = varonce; } else { var9 = "NOT YET IMPLEMENTED: retrieve_vt_bound on null"; -var10 = 46; -var11 = standard___standard__NativeString___to_s_with_length(var9, var10); -var8 = var11; +var10 = standard___standard__NativeString___to_s_with_length(var9, 46l); +var8 = var10; varonce = var8; } { -standard__file___Object___print(self, var8); /* Direct call file#Object#print on */ +standard__file___Sys___print(var7, var8); /* Direct call file#Sys#print on */ } PRINT_ERROR("Runtime error: %s", "Aborted"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 396); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 407); +fatal_exit(1); } else { } /* isa MVirtualType */ cltype = type_nit__MVirtualType.color; idtype = type_nit__MVirtualType.id; if(cltype >= var_mtype->type->table_size) { -var12 = 0; +var11 = 0; } else { -var12 = var_mtype->type->type_table[cltype] == idtype; +var11 = var_mtype->type->type_table[cltype] == idtype; } -if (var12){ +if (var11){ { { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on */ -var15 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ -if (unlikely(var15 == NULL)) { +var14 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 515); +fatal_exit(1); } -var13 = var15; -RET_LABEL14:(void)0; +var12 = var14; +RET_LABEL13:(void)0; } } { -var16 = nit___nit__MType___anchor_to(var_mtype, var13, var_anchor); +var15 = nit___nit__MType___anchor_to(var_mtype, var12, var_anchor); } -var = var16; +var = var15; goto RET_LABEL; } else { /* isa MParameterType */ -cltype18 = type_nit__MParameterType.color; -idtype19 = type_nit__MParameterType.id; -if(cltype18 >= var_mtype->type->table_size) { -var17 = 0; +cltype17 = type_nit__MParameterType.color; +idtype18 = type_nit__MParameterType.id; +if(cltype17 >= var_mtype->type->table_size) { +var16 = 0; } else { -var17 = var_mtype->type->type_table[cltype18] == idtype19; +var16 = var_mtype->type->type_table[cltype17] == idtype18; } -if (var17){ +if (var16){ { { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on */ -var22 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ -if (unlikely(var22 == NULL)) { +var21 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on */ +if (unlikely(var21 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 515); +fatal_exit(1); } -var20 = var22; -RET_LABEL21:(void)0; +var19 = var21; +RET_LABEL20:(void)0; } } { -var23 = nit___nit__MType___anchor_to(var_mtype, var20, var_anchor); +var22 = nit___nit__MType___anchor_to(var_mtype, var19, var_anchor); } -var = var23; +var = var22; goto RET_LABEL; } else { var = var_mtype; @@ -7556,8 +7214,8 @@ val* var2 /* : Map[MVirtualTypeProp, Int] */; var2 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_colors].val; /* _vt_colors on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_colors"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 81); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 86); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; @@ -7579,10 +7237,10 @@ const struct type* type_struct; const char* var_class_name; var1 = NEW_nit__SeparateErasureCompilerVisitor(&type_nit__SeparateErasureCompilerVisitor); { -((void (*)(val* self, val* p0))(var1->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compiler_61d]))(var1, self) /* compiler= on */; +((void(*)(val* self, val* p0))(var1->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compiler_61d]))(var1, self); /* compiler= on */ } { -((void (*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1) /* init on */; +((void(*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1); /* init on */ } /* isa VISITOR */ type_struct = self->type->resolution_table->types[COLOR_nit__abstract_compiler__AbstractCompiler__VISITOR]; @@ -7596,8 +7254,8 @@ var2 = var1->type->type_table[cltype] == idtype; if (unlikely(!var2)) { var_class_name = var1 == NULL ? "null" : var1->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 412); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 423); +fatal_exit(1); } var = var1; goto RET_LABEL; @@ -7611,8 +7269,8 @@ val* var1 /* : Map[MClass, Array[nullable MClass]] */; var1 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_tables].val; /* _class_tables on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 416); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 427); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -7630,8 +7288,8 @@ val* var1 /* : Map[MClass, Array[nullable MPropDef]] */; var1 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables].val; /* _vt_tables on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 417); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 428); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -7644,409 +7302,381 @@ RET_LABEL:; } /* method separate_erasure_compiler#SeparateErasureCompiler#display_sizes for (self: SeparateErasureCompiler) */ void nit___nit__SeparateErasureCompiler___nit__separate_compiler__SeparateCompiler__display_sizes(val* self) { +val* var /* : Sys */; static val* varonce; -val* var /* : String */; -char* var1 /* : NativeString */; -long var2 /* : Int */; +val* var1 /* : String */; +char* var2 /* : NativeString */; val* var3 /* : FlatString */; -static val* varonce4; -val* var5 /* : String */; -char* var6 /* : NativeString */; -long var7 /* : Int */; +val* var4 /* : Sys */; +static val* varonce5; +val* var6 /* : String */; +char* var7 /* : NativeString */; val* var8 /* : FlatString */; -long var9 /* : Int */; long var_total /* var total: Int */; -long var10 /* : Int */; long var_holes /* var holes: Int */; +val* var9 /* : Map[MClass, Array[nullable MClass]] */; val* var11 /* : Map[MClass, Array[nullable MClass]] */; -val* var13 /* : Map[MClass, Array[nullable MClass]] */; val* var_ /* var : Map[MClass, Array[nullable MClass]] */; -val* var14 /* : MapIterator[nullable Object, nullable Object] */; -val* var_15 /* var : MapIterator[MClass, Array[nullable MClass]] */; -short int var16 /* : Bool */; -val* var17 /* : nullable Object */; +val* var12 /* : MapIterator[nullable Object, nullable Object] */; +val* var_13 /* var : MapIterator[MClass, Array[nullable MClass]] */; +short int var14 /* : Bool */; +val* var15 /* : nullable Object */; val* var_t /* var t: MClass */; -val* var18 /* : nullable Object */; +val* var16 /* : nullable Object */; val* var_table /* var table: Array[nullable MClass] */; +long var17 /* : Int */; long var19 /* : Int */; -long var21 /* : Int */; -long var22 /* : Int */; -short int var24 /* : Bool */; +long var20 /* : Int */; +short int var22 /* : Bool */; int cltype; int idtype; const char* var_class_name; -long var25 /* : Int */; -val* var_26 /* var : Array[nullable MClass] */; -val* var27 /* : ArrayIterator[nullable Object] */; -val* var_28 /* var : ArrayIterator[nullable MClass] */; -short int var29 /* : Bool */; -val* var30 /* : nullable Object */; +long var23 /* : Int */; +val* var_24 /* var : Array[nullable MClass] */; +val* var25 /* : ArrayIterator[nullable Object] */; +val* var_26 /* var : ArrayIterator[nullable MClass] */; +short int var27 /* : Bool */; +val* var28 /* : nullable Object */; val* var_e /* var e: nullable MClass */; -val* var31 /* : null */; -short int var32 /* : Bool */; -short int var33 /* : Bool */; +short int var29 /* : Bool */; +short int var30 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var35 /* : Bool */; +short int var32 /* : Bool */; +short int var34 /* : Bool */; +long var35 /* : Int */; short int var37 /* : Bool */; -long var38 /* : Int */; -long var39 /* : Int */; -short int var41 /* : Bool */; -int cltype42; -int idtype43; -const char* var_class_name44; -long var45 /* : Int */; -static val* varonce49; -val* var50 /* : String */; -char* var51 /* : NativeString */; -long var52 /* : Int */; -val* var53 /* : FlatString */; -static val* varonce54; -val* var55 /* : String */; -char* var56 /* : NativeString */; -long var57 /* : Int */; -val* var58 /* : FlatString */; -val* var59 /* : Array[Object] */; -long var60 /* : Int */; -val* var61 /* : NativeArray[Object] */; -val* var62 /* : Object */; -val* var63 /* : Object */; -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 */; -long var75 /* : Int */; -long var76 /* : Int */; -val* var77 /* : Map[MClass, Array[nullable MPropDef]] */; -val* var79 /* : Map[MClass, Array[nullable MPropDef]] */; -val* var_80 /* var : Map[MClass, Array[nullable MPropDef]] */; -val* var81 /* : MapIterator[nullable Object, nullable Object] */; -val* var_82 /* var : MapIterator[MClass, Array[nullable MPropDef]] */; -short int var83 /* : Bool */; -val* var84 /* : nullable Object */; -val* var_t85 /* var t: MClass */; -val* var86 /* : nullable Object */; -val* var_table87 /* var table: Array[nullable MPropDef] */; +int cltype38; +int idtype39; +const char* var_class_name40; +long var41 /* : Int */; +val* var44 /* : Sys */; +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 */; +val* var55 /* : String */; +val* var56 /* : String */; +val* var57 /* : String */; +val* var58 /* : Sys */; +static val* varonce59; +val* var60 /* : String */; +char* var61 /* : NativeString */; +val* var62 /* : FlatString */; +val* var63 /* : Sys */; +static val* varonce64; +val* var65 /* : String */; +char* var66 /* : NativeString */; +val* var67 /* : FlatString */; +val* var68 /* : Map[MClass, Array[nullable MPropDef]] */; +val* var70 /* : Map[MClass, Array[nullable MPropDef]] */; +val* var_71 /* var : Map[MClass, Array[nullable MPropDef]] */; +val* var72 /* : MapIterator[nullable Object, nullable Object] */; +val* var_73 /* var : MapIterator[MClass, Array[nullable MPropDef]] */; +short int var74 /* : Bool */; +val* var75 /* : nullable Object */; +val* var_t76 /* var t: MClass */; +val* var77 /* : nullable Object */; +val* var_table78 /* var table: Array[nullable MPropDef] */; +long var79 /* : Int */; +long var81 /* : Int */; +long var82 /* : Int */; +short int var84 /* : Bool */; +int cltype85; +int idtype86; +const char* var_class_name87; long var88 /* : Int */; -long var90 /* : Int */; -long var91 /* : Int */; -short int var93 /* : Bool */; -int cltype94; -int idtype95; -const char* var_class_name96; -long var97 /* : Int */; -val* var_98 /* var : Array[nullable MPropDef] */; -val* var99 /* : ArrayIterator[nullable Object] */; -val* var_100 /* var : ArrayIterator[nullable MPropDef] */; -short int var101 /* : Bool */; -val* var102 /* : nullable Object */; -val* var_e103 /* var e: nullable MPropDef */; -val* var104 /* : null */; -short int var105 /* : Bool */; -short int var106 /* : Bool */; -short int var108 /* : Bool */; -short int var110 /* : Bool */; -long var111 /* : Int */; -long var112 /* : Int */; -short int var114 /* : Bool */; -int cltype115; -int idtype116; -const char* var_class_name117; -long var118 /* : Int */; -static val* varonce123; +val* var_89 /* var : Array[nullable MPropDef] */; +val* var90 /* : ArrayIterator[nullable Object] */; +val* var_91 /* var : ArrayIterator[nullable MPropDef] */; +short int var92 /* : Bool */; +val* var93 /* : nullable Object */; +val* var_e94 /* var e: nullable MPropDef */; +short int var95 /* : Bool */; +short int var96 /* : Bool */; +short int var98 /* : Bool */; +short int var100 /* : Bool */; +long var101 /* : Int */; +short int var103 /* : Bool */; +int cltype104; +int idtype105; +const char* var_class_name106; +long var107 /* : Int */; +val* var111 /* : Sys */; +val* var113 /* : NativeArray[String] */; +static val* varonce112; +static val* varonce114; +val* var115 /* : String */; +char* var116 /* : NativeString */; +val* var117 /* : FlatString */; +static val* varonce118; +val* var119 /* : String */; +char* var120 /* : NativeString */; +val* var121 /* : FlatString */; +val* var122 /* : String */; +val* var123 /* : String */; val* var124 /* : String */; -char* var125 /* : NativeString */; -long var126 /* : Int */; -val* var127 /* : FlatString */; -static val* varonce128; -val* var129 /* : String */; -char* var130 /* : NativeString */; -long var131 /* : Int */; -val* var132 /* : FlatString */; -val* var133 /* : Array[Object] */; -long var134 /* : Int */; -val* var135 /* : NativeArray[Object] */; -val* var136 /* : Object */; -val* var137 /* : Object */; -val* var138 /* : String */; -static val* varonce139; -val* var140 /* : String */; -char* var141 /* : NativeString */; -long var142 /* : Int */; -val* var143 /* : FlatString */; -static val* varonce144; -val* var145 /* : String */; -char* var146 /* : NativeString */; -long var147 /* : Int */; -val* var148 /* : FlatString */; +val* var125 /* : Sys */; +static val* varonce126; +val* var127 /* : String */; +char* var128 /* : NativeString */; +val* var129 /* : FlatString */; +val* var130 /* : Sys */; +static val* varonce131; +val* var132 /* : String */; +char* var133 /* : NativeString */; +val* var134 /* : FlatString */; +val* var135 /* : Map[MClass, Array[nullable MPropDef]] */; +val* var137 /* : Map[MClass, Array[nullable MPropDef]] */; +val* var_138 /* var : Map[MClass, Array[nullable MPropDef]] */; +val* var139 /* : MapIterator[nullable Object, nullable Object] */; +val* var_140 /* var : MapIterator[MClass, Array[nullable MPropDef]] */; +short int var141 /* : Bool */; +val* var142 /* : nullable Object */; +val* var_t143 /* var t: MClass */; +val* var144 /* : nullable Object */; +val* var_table145 /* var table: Array[nullable MPropDef] */; +long var146 /* : Int */; +long var148 /* : Int */; long var149 /* : Int */; -long var150 /* : Int */; -val* var151 /* : Map[MClass, Array[nullable MPropDef]] */; -val* var153 /* : Map[MClass, Array[nullable MPropDef]] */; -val* var_154 /* var : Map[MClass, Array[nullable MPropDef]] */; -val* var155 /* : MapIterator[nullable Object, nullable Object] */; -val* var_156 /* var : MapIterator[MClass, Array[nullable MPropDef]] */; -short int var157 /* : Bool */; -val* var158 /* : nullable Object */; -val* var_t159 /* var t: MClass */; +short int var151 /* : Bool */; +int cltype152; +int idtype153; +const char* var_class_name154; +long var155 /* : Int */; +val* var_156 /* var : Array[nullable MPropDef] */; +val* var157 /* : ArrayIterator[nullable Object] */; +val* var_158 /* var : ArrayIterator[nullable MPropDef] */; +short int var159 /* : Bool */; val* var160 /* : nullable Object */; -val* var_table161 /* var table: Array[nullable MPropDef] */; -long var162 /* : Int */; -long var164 /* : Int */; -long var165 /* : Int */; +val* var_e161 /* var e: nullable MPropDef */; +short int var162 /* : Bool */; +short int var163 /* : Bool */; +short int var165 /* : Bool */; short int var167 /* : Bool */; -int cltype168; -int idtype169; -const char* var_class_name170; -long var171 /* : Int */; -val* var_172 /* var : Array[nullable MPropDef] */; -val* var173 /* : ArrayIterator[nullable Object] */; -val* var_174 /* var : ArrayIterator[nullable MPropDef] */; -short int var175 /* : Bool */; -val* var176 /* : nullable Object */; -val* var_e177 /* var e: nullable MPropDef */; -val* var178 /* : null */; -short int var179 /* : Bool */; -short int var180 /* : Bool */; -short int var182 /* : Bool */; -short int var184 /* : Bool */; -long var185 /* : Int */; -long var186 /* : Int */; -short int var188 /* : Bool */; -int cltype189; -int idtype190; -const char* var_class_name191; -long var192 /* : Int */; -static val* varonce197; -val* var198 /* : String */; -char* var199 /* : NativeString */; -long var200 /* : Int */; +long var168 /* : Int */; +short int var170 /* : Bool */; +int cltype171; +int idtype172; +const char* var_class_name173; +long var174 /* : Int */; +val* var178 /* : Sys */; +val* var180 /* : NativeArray[String] */; +static val* varonce179; +static val* varonce181; +val* var182 /* : String */; +char* var183 /* : NativeString */; +val* var184 /* : FlatString */; +static val* varonce185; +val* var186 /* : String */; +char* var187 /* : NativeString */; +val* var188 /* : FlatString */; +val* var189 /* : String */; +val* var190 /* : String */; +val* var191 /* : String */; +val* var192 /* : Sys */; +static val* varonce193; +val* var194 /* : String */; +char* var195 /* : NativeString */; +val* var196 /* : FlatString */; +val* var197 /* : Sys */; +static val* varonce198; +val* var199 /* : String */; +char* var200 /* : NativeString */; val* var201 /* : FlatString */; -static val* varonce202; -val* var203 /* : String */; -char* var204 /* : NativeString */; -long var205 /* : Int */; -val* var206 /* : FlatString */; -val* var207 /* : Array[Object] */; -long var208 /* : Int */; -val* var209 /* : NativeArray[Object] */; -val* var210 /* : Object */; -val* var211 /* : Object */; -val* var212 /* : String */; -static val* varonce213; -val* var214 /* : String */; -char* var215 /* : NativeString */; +val* var202 /* : Map[MClass, Array[nullable MProperty]] */; +val* var204 /* : Map[MClass, Array[nullable MProperty]] */; +val* var_205 /* var : Map[MClass, Array[nullable MProperty]] */; +val* var206 /* : MapIterator[nullable Object, nullable Object] */; +val* var_207 /* var : MapIterator[MClass, Array[nullable MProperty]] */; +short int var208 /* : Bool */; +val* var209 /* : nullable Object */; +val* var_t210 /* var t: MClass */; +val* var211 /* : nullable Object */; +val* var_table212 /* var table: Array[nullable MProperty] */; +long var213 /* : Int */; +long var215 /* : Int */; long var216 /* : Int */; -val* var217 /* : FlatString */; -static val* varonce218; -val* var219 /* : String */; -char* var220 /* : NativeString */; -long var221 /* : Int */; -val* var222 /* : FlatString */; -long var223 /* : Int */; -long var224 /* : Int */; -val* var225 /* : Map[MClass, Array[nullable MPropDef]] */; -val* var227 /* : Map[MClass, Array[nullable MPropDef]] */; -val* var_228 /* var : Map[MClass, Array[nullable MPropDef]] */; -val* var229 /* : MapIterator[nullable Object, nullable Object] */; -val* var_230 /* var : MapIterator[MClass, Array[nullable MPropDef]] */; -short int var231 /* : Bool */; -val* var232 /* : nullable Object */; -val* var_t233 /* var t: MClass */; -val* var234 /* : nullable Object */; -val* var_table235 /* var table: Array[nullable MPropDef] */; -long var236 /* : Int */; -long var238 /* : Int */; -long var239 /* : Int */; -short int var241 /* : Bool */; -int cltype242; -int idtype243; -const char* var_class_name244; -long var245 /* : Int */; -val* var_246 /* var : Array[nullable MPropDef] */; -val* var247 /* : ArrayIterator[nullable Object] */; -val* var_248 /* var : ArrayIterator[nullable MPropDef] */; -short int var249 /* : Bool */; -val* var250 /* : nullable Object */; -val* var_e251 /* var e: nullable MPropDef */; -val* var252 /* : null */; -short int var253 /* : Bool */; -short int var254 /* : Bool */; -short int var256 /* : Bool */; -short int var258 /* : Bool */; -long var259 /* : Int */; -long var260 /* : Int */; -short int var262 /* : Bool */; -int cltype263; -int idtype264; -const char* var_class_name265; -long var266 /* : Int */; -static val* varonce271; -val* var272 /* : String */; -char* var273 /* : NativeString */; -long var274 /* : Int */; -val* var275 /* : FlatString */; -static val* varonce276; -val* var277 /* : String */; -char* var278 /* : NativeString */; -long var279 /* : Int */; -val* var280 /* : FlatString */; -val* var281 /* : Array[Object] */; -long var282 /* : Int */; -val* var283 /* : NativeArray[Object] */; -val* var284 /* : Object */; -val* var285 /* : Object */; -val* var286 /* : String */; -if (varonce) { -var = varonce; -} else { -var1 = "# size of subtyping tables"; -var2 = 26; -var3 = standard___standard__NativeString___to_s_with_length(var1, var2); -var = var3; -varonce = var; -} -{ -standard__file___Object___print(self, var); /* Direct call file#Object#print on */ -} -if (varonce4) { -var5 = varonce4; -} else { -var6 = "\11total \11holes"; -var7 = 13; -var8 = standard___standard__NativeString___to_s_with_length(var6, var7); -var5 = var8; -varonce4 = var5; -} -{ -standard__file___Object___print(self, var5); /* Direct call file#Object#print on */ +short int var218 /* : Bool */; +int cltype219; +int idtype220; +const char* var_class_name221; +long var222 /* : Int */; +val* var_223 /* var : Array[nullable MProperty] */; +val* var224 /* : ArrayIterator[nullable Object] */; +val* var_225 /* var : ArrayIterator[nullable MProperty] */; +short int var226 /* : Bool */; +val* var227 /* : nullable Object */; +val* var_e228 /* var e: nullable MProperty */; +short int var229 /* : Bool */; +short int var230 /* : Bool */; +short int var232 /* : Bool */; +short int var234 /* : Bool */; +long var235 /* : Int */; +short int var237 /* : Bool */; +int cltype238; +int idtype239; +const char* var_class_name240; +long var241 /* : Int */; +val* var245 /* : Sys */; +val* var247 /* : NativeArray[String] */; +static val* varonce246; +static val* varonce248; +val* var249 /* : String */; +char* var250 /* : NativeString */; +val* var251 /* : FlatString */; +static val* varonce252; +val* var253 /* : String */; +char* var254 /* : NativeString */; +val* var255 /* : FlatString */; +val* var256 /* : String */; +val* var257 /* : String */; +val* var258 /* : String */; +var = glob_sys; +if (likely(varonce!=NULL)) { +var1 = varonce; +} else { +var2 = "# size of subtyping tables"; +var3 = standard___standard__NativeString___to_s_with_length(var2, 26l); +var1 = var3; +varonce = var1; } -var9 = 0; -var_total = var9; -var10 = 0; -var_holes = var10; +{ +standard__file___Sys___print(var, var1); /* Direct call file#Sys#print on */ +} +var4 = glob_sys; +if (likely(varonce5!=NULL)) { +var6 = varonce5; +} else { +var7 = "\ttotal \tholes"; +var8 = standard___standard__NativeString___to_s_with_length(var7, 13l); +var6 = var8; +varonce5 = var6; +} +{ +standard__file___Sys___print(var4, var6); /* Direct call file#Sys#print on */ +} +var_total = 0l; +var_holes = 0l; { { /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_tables (self) on */ -var13 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_tables].val; /* _class_tables on */ -if (unlikely(var13 == NULL)) { +var11 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___class_tables].val; /* _class_tables on */ +if (unlikely(var11 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 416); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 427); +fatal_exit(1); } -var11 = var13; -RET_LABEL12:(void)0; +var9 = var11; +RET_LABEL10:(void)0; } } -var_ = var11; +var_ = var9; { -var14 = ((val* (*)(val* self))(var_->class->vft[COLOR_standard__abstract_collection__MapRead__iterator]))(var_) /* iterator on */; +var12 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__MapRead__iterator]))(var_); /* iterator on */ } -var_15 = var14; +var_13 = var12; for(;;) { { -var16 = ((short int (*)(val* self))(var_15->class->vft[COLOR_standard__abstract_collection__MapIterator__is_ok]))(var_15) /* is_ok on */; +var14 = ((short int(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_standard__abstract_collection__MapIterator__is_ok]))(var_13); /* is_ok on */ } -if (var16){ +if (var14){ { -var17 = ((val* (*)(val* self))(var_15->class->vft[COLOR_standard__abstract_collection__MapIterator__key]))(var_15) /* key on */; +var15 = ((val*(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_standard__abstract_collection__MapIterator__key]))(var_13); /* key on */ } -var_t = var17; +var_t = var15; { -var18 = ((val* (*)(val* self))(var_15->class->vft[COLOR_standard__abstract_collection__MapIterator__item]))(var_15) /* item on */; +var16 = ((val*(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_standard__abstract_collection__MapIterator__item]))(var_13); /* item on */ } -var_table = var18; +var_table = var16; { { /* Inline array#AbstractArrayRead#length (var_table) on */ -var21 = var_table->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var19 = var21; -RET_LABEL20:(void)0; +var19 = var_table->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var17 = var19; +RET_LABEL18:(void)0; } } { -{ /* Inline kernel#Int#+ (var_total,var19) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var24 = 1; /* easy isa OTHER*/ -if (unlikely(!var24)) { +{ /* Inline kernel#Int#+ (var_total,var17) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var22 = 1; /* easy isa OTHER*/ +if (unlikely(!var22)) { 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, 413); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var25 = var_total + var19; -var22 = var25; -goto RET_LABEL23; -RET_LABEL23:(void)0; +var23 = var_total + var17; +var20 = var23; +goto RET_LABEL21; +RET_LABEL21:(void)0; } } -var_total = var22; -var_26 = var_table; +var_total = var20; +var_24 = var_table; { -var27 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_26); +var25 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_24); } -var_28 = var27; +var_26 = var25; for(;;) { { -var29 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_28); +var27 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_26); } -if (var29){ +if (var27){ { -var30 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_28); +var28 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_26); } -var_e = var30; -var31 = NULL; +var_e = var28; if (var_e == NULL) { -var32 = 1; /* is null */ +var29 = 1; /* is null */ } else { -var32 = 0; /* arg is null but recv is not */ +var29 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_e,var31) on */ -var_other = var31; +{ /* Inline kernel#Object#== (var_e,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var_e,var_other) on */ -var37 = var_e == var_other; -var35 = var37; -goto RET_LABEL36; -RET_LABEL36:(void)0; +var34 = var_e == var_other; +var32 = var34; +goto RET_LABEL33; +RET_LABEL33:(void)0; } } -var33 = var35; -goto RET_LABEL34; -RET_LABEL34:(void)0; +var30 = var32; +goto RET_LABEL31; +RET_LABEL31:(void)0; } -var32 = var33; +var29 = var30; } -if (var32){ -var38 = 1; +if (var29){ { -{ /* Inline kernel#Int#+ (var_holes,var38) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var41 = 1; /* easy 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, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_holes,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var37 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var37)) { +var_class_name40 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var45 = var_holes + var38; -var39 = var45; -goto RET_LABEL40; -RET_LABEL40:(void)0; +var41 = var_holes + 1l; +var35 = var41; +goto RET_LABEL36; +RET_LABEL36:(void)0; } } -var_holes = var39; +var_holes = var35; } else { } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_28); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_26); /* Direct call array#ArrayIterator#next on */ } } else { goto BREAK_label; @@ -8054,678 +7684,650 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_28) on */ -RET_LABEL46:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_26); /* Direct call array#ArrayIterator#finish on */ } { -((void (*)(val* self))(var_15->class->vft[COLOR_standard__abstract_collection__MapIterator__next]))(var_15) /* next on */; +((void(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_standard__abstract_collection__MapIterator__next]))(var_13); /* next on */ } } else { -goto BREAK_label47; +goto BREAK_label42; } } -BREAK_label47: (void)0; +BREAK_label42: (void)0; { -{ /* Inline abstract_collection#MapIterator#finish (var_15) on */ -RET_LABEL48:(void)0; +{ /* Inline abstract_collection#MapIterator#finish (var_13) on */ +RET_LABEL43:(void)0; } } -if (varonce49) { -var50 = varonce49; +var44 = glob_sys; +if (unlikely(varonce45==NULL)) { +var46 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce47!=NULL)) { +var48 = varonce47; } else { -var51 = "\11"; -var52 = 1; -var53 = standard___standard__NativeString___to_s_with_length(var51, var52); -var50 = var53; -varonce49 = var50; +var49 = "\t"; +var50 = standard___standard__NativeString___to_s_with_length(var49, 1l); +var48 = var50; +varonce47 = var48; } -if (varonce54) { -var55 = varonce54; +((struct instance_standard__NativeArray*)var46)->values[0]=var48; +if (likely(varonce51!=NULL)) { +var52 = varonce51; } else { -var56 = "\11"; -var57 = 1; -var58 = standard___standard__NativeString___to_s_with_length(var56, var57); -var55 = var58; -varonce54 = var55; -} -var59 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var59 = array_instance Array[Object] */ -var60 = 4; -var61 = NEW_standard__NativeArray(var60, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var61)->values[0] = (val*) var50; -var62 = BOX_standard__Int(var_total); /* autobox from Int to Object */ -((struct instance_standard__NativeArray*)var61)->values[1] = (val*) var62; -((struct instance_standard__NativeArray*)var61)->values[2] = (val*) var55; -var63 = BOX_standard__Int(var_holes); /* autobox from Int to Object */ -((struct instance_standard__NativeArray*)var61)->values[3] = (val*) var63; -{ -((void (*)(val* self, val* p0, long p1))(var59->class->vft[COLOR_standard__array__Array__with_native]))(var59, var61, var60) /* with_native on */; +var53 = "\t"; +var54 = standard___standard__NativeString___to_s_with_length(var53, 1l); +var52 = var54; +varonce51 = var52; } +((struct instance_standard__NativeArray*)var46)->values[2]=var52; +} else { +var46 = varonce45; +varonce45 = NULL; } +var55 = standard__string___Int___Object__to_s(var_total); +((struct instance_standard__NativeArray*)var46)->values[1]=var55; +var56 = standard__string___Int___Object__to_s(var_holes); +((struct instance_standard__NativeArray*)var46)->values[3]=var56; { -var64 = ((val* (*)(val* self))(var59->class->vft[COLOR_standard__string__Object__to_s]))(var59) /* to_s on */; +var57 = ((val*(*)(val* self))(var46->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var46); /* native_to_s on */ } +varonce45 = var46; { -standard__file___Object___print(self, var64); /* Direct call file#Object#print on */ +standard__file___Sys___print(var44, var57); /* Direct call file#Sys#print on */ } -if (varonce65) { -var66 = varonce65; +var58 = glob_sys; +if (likely(varonce59!=NULL)) { +var60 = varonce59; } else { -var67 = "# size of resolution tables"; -var68 = 27; -var69 = standard___standard__NativeString___to_s_with_length(var67, var68); -var66 = var69; -varonce65 = var66; +var61 = "# size of resolution tables"; +var62 = standard___standard__NativeString___to_s_with_length(var61, 27l); +var60 = var62; +varonce59 = var60; } { -standard__file___Object___print(self, var66); /* Direct call file#Object#print on */ +standard__file___Sys___print(var58, var60); /* Direct call file#Sys#print on */ } -if (varonce70) { -var71 = varonce70; +var63 = glob_sys; +if (likely(varonce64!=NULL)) { +var65 = varonce64; } else { -var72 = "\11total \11holes"; -var73 = 13; -var74 = standard___standard__NativeString___to_s_with_length(var72, var73); -var71 = var74; -varonce70 = var71; +var66 = "\ttotal \tholes"; +var67 = standard___standard__NativeString___to_s_with_length(var66, 13l); +var65 = var67; +varonce64 = var65; } { -standard__file___Object___print(self, var71); /* Direct call file#Object#print on */ +standard__file___Sys___print(var63, var65); /* Direct call file#Sys#print on */ } -var75 = 0; -var_total = var75; -var76 = 0; -var_holes = var76; +var_total = 0l; +var_holes = 0l; { { /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables (self) on */ -var79 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables].val; /* _vt_tables on */ -if (unlikely(var79 == NULL)) { +var70 = self->attrs[COLOR_nit__separate_erasure_compiler__SeparateErasureCompiler___vt_tables].val; /* _vt_tables on */ +if (unlikely(var70 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 417); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 428); +fatal_exit(1); } -var77 = var79; -RET_LABEL78:(void)0; +var68 = var70; +RET_LABEL69:(void)0; } } -var_80 = var77; +var_71 = var68; { -var81 = ((val* (*)(val* self))(var_80->class->vft[COLOR_standard__abstract_collection__MapRead__iterator]))(var_80) /* iterator on */; +var72 = ((val*(*)(val* self))((((long)var_71&3)?class_info[((long)var_71&3)]:var_71->class)->vft[COLOR_standard__abstract_collection__MapRead__iterator]))(var_71); /* iterator on */ } -var_82 = var81; +var_73 = var72; for(;;) { { -var83 = ((short int (*)(val* self))(var_82->class->vft[COLOR_standard__abstract_collection__MapIterator__is_ok]))(var_82) /* is_ok on */; +var74 = ((short int(*)(val* self))((((long)var_73&3)?class_info[((long)var_73&3)]:var_73->class)->vft[COLOR_standard__abstract_collection__MapIterator__is_ok]))(var_73); /* is_ok on */ } -if (var83){ +if (var74){ { -var84 = ((val* (*)(val* self))(var_82->class->vft[COLOR_standard__abstract_collection__MapIterator__key]))(var_82) /* key on */; +var75 = ((val*(*)(val* self))((((long)var_73&3)?class_info[((long)var_73&3)]:var_73->class)->vft[COLOR_standard__abstract_collection__MapIterator__key]))(var_73); /* key on */ } -var_t85 = var84; +var_t76 = var75; { -var86 = ((val* (*)(val* self))(var_82->class->vft[COLOR_standard__abstract_collection__MapIterator__item]))(var_82) /* item on */; +var77 = ((val*(*)(val* self))((((long)var_73&3)?class_info[((long)var_73&3)]:var_73->class)->vft[COLOR_standard__abstract_collection__MapIterator__item]))(var_73); /* item on */ } -var_table87 = var86; +var_table78 = var77; { -{ /* Inline array#AbstractArrayRead#length (var_table87) on */ -var90 = var_table87->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var88 = var90; -RET_LABEL89:(void)0; +{ /* Inline array#AbstractArrayRead#length (var_table78) on */ +var81 = var_table78->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var79 = var81; +RET_LABEL80:(void)0; } } { -{ /* Inline kernel#Int#+ (var_total,var88) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var93 = 1; /* easy isa OTHER*/ -if (unlikely(!var93)) { -var_class_name96 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name96); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_total,var79) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var84 = 1; /* easy isa OTHER*/ +if (unlikely(!var84)) { +var_class_name87 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name87); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var97 = var_total + var88; -var91 = var97; -goto RET_LABEL92; -RET_LABEL92:(void)0; +var88 = var_total + var79; +var82 = var88; +goto RET_LABEL83; +RET_LABEL83:(void)0; } } -var_total = var91; -var_98 = var_table87; +var_total = var82; +var_89 = var_table78; { -var99 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_98); +var90 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_89); } -var_100 = var99; +var_91 = var90; for(;;) { { -var101 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_100); +var92 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_91); } -if (var101){ +if (var92){ { -var102 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_100); +var93 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_91); } -var_e103 = var102; -var104 = NULL; -if (var_e103 == NULL) { -var105 = 1; /* is null */ +var_e94 = var93; +if (var_e94 == NULL) { +var95 = 1; /* is null */ } else { -var105 = 0; /* arg is null but recv is not */ +var95 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_e103,var104) on */ -var_other = var104; +{ /* Inline kernel#Object#== (var_e94,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_e103,var_other) on */ -var110 = var_e103 == var_other; -var108 = var110; -goto RET_LABEL109; -RET_LABEL109:(void)0; +{ /* Inline kernel#Object#is_same_instance (var_e94,var_other) on */ +var100 = var_e94 == var_other; +var98 = var100; +goto RET_LABEL99; +RET_LABEL99:(void)0; } } -var106 = var108; -goto RET_LABEL107; -RET_LABEL107:(void)0; +var96 = var98; +goto RET_LABEL97; +RET_LABEL97:(void)0; } -var105 = var106; +var95 = var96; } -if (var105){ -var111 = 1; +if (var95){ { -{ /* Inline kernel#Int#+ (var_holes,var111) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var114 = 1; /* easy isa OTHER*/ -if (unlikely(!var114)) { -var_class_name117 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name117); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_holes,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var103 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var103)) { +var_class_name106 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name106); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var118 = var_holes + var111; -var112 = var118; -goto RET_LABEL113; -RET_LABEL113:(void)0; +var107 = var_holes + 1l; +var101 = var107; +goto RET_LABEL102; +RET_LABEL102:(void)0; } } -var_holes = var112; +var_holes = var101; } else { } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_100); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_91); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label119; +goto BREAK_label108; } } -BREAK_label119: (void)0; +BREAK_label108: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_100) on */ -RET_LABEL120:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_91); /* Direct call array#ArrayIterator#finish on */ } { -((void (*)(val* self))(var_82->class->vft[COLOR_standard__abstract_collection__MapIterator__next]))(var_82) /* next on */; +((void(*)(val* self))((((long)var_73&3)?class_info[((long)var_73&3)]:var_73->class)->vft[COLOR_standard__abstract_collection__MapIterator__next]))(var_73); /* next on */ } } else { -goto BREAK_label121; +goto BREAK_label109; } } -BREAK_label121: (void)0; +BREAK_label109: (void)0; { -{ /* Inline abstract_collection#MapIterator#finish (var_82) on */ -RET_LABEL122:(void)0; +{ /* Inline abstract_collection#MapIterator#finish (var_73) on */ +RET_LABEL110:(void)0; } } -if (varonce123) { -var124 = varonce123; +var111 = glob_sys; +if (unlikely(varonce112==NULL)) { +var113 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce114!=NULL)) { +var115 = varonce114; } else { -var125 = "\11"; -var126 = 1; -var127 = standard___standard__NativeString___to_s_with_length(var125, var126); -var124 = var127; -varonce123 = var124; +var116 = "\t"; +var117 = standard___standard__NativeString___to_s_with_length(var116, 1l); +var115 = var117; +varonce114 = var115; } -if (varonce128) { -var129 = varonce128; +((struct instance_standard__NativeArray*)var113)->values[0]=var115; +if (likely(varonce118!=NULL)) { +var119 = varonce118; } else { -var130 = "\11"; -var131 = 1; -var132 = standard___standard__NativeString___to_s_with_length(var130, var131); -var129 = var132; -varonce128 = var129; -} -var133 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var133 = array_instance Array[Object] */ -var134 = 4; -var135 = NEW_standard__NativeArray(var134, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var135)->values[0] = (val*) var124; -var136 = BOX_standard__Int(var_total); /* autobox from Int to Object */ -((struct instance_standard__NativeArray*)var135)->values[1] = (val*) var136; -((struct instance_standard__NativeArray*)var135)->values[2] = (val*) var129; -var137 = BOX_standard__Int(var_holes); /* autobox from Int to Object */ -((struct instance_standard__NativeArray*)var135)->values[3] = (val*) var137; -{ -((void (*)(val* self, val* p0, long p1))(var133->class->vft[COLOR_standard__array__Array__with_native]))(var133, var135, var134) /* with_native on */; +var120 = "\t"; +var121 = standard___standard__NativeString___to_s_with_length(var120, 1l); +var119 = var121; +varonce118 = var119; } +((struct instance_standard__NativeArray*)var113)->values[2]=var119; +} else { +var113 = varonce112; +varonce112 = NULL; } +var122 = standard__string___Int___Object__to_s(var_total); +((struct instance_standard__NativeArray*)var113)->values[1]=var122; +var123 = standard__string___Int___Object__to_s(var_holes); +((struct instance_standard__NativeArray*)var113)->values[3]=var123; { -var138 = ((val* (*)(val* self))(var133->class->vft[COLOR_standard__string__Object__to_s]))(var133) /* to_s on */; +var124 = ((val*(*)(val* self))(var113->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var113); /* native_to_s on */ } +varonce112 = var113; { -standard__file___Object___print(self, var138); /* Direct call file#Object#print on */ +standard__file___Sys___print(var111, var124); /* Direct call file#Sys#print on */ } -if (varonce139) { -var140 = varonce139; +var125 = glob_sys; +if (likely(varonce126!=NULL)) { +var127 = varonce126; } else { -var141 = "# size of methods tables"; -var142 = 24; -var143 = standard___standard__NativeString___to_s_with_length(var141, var142); -var140 = var143; -varonce139 = var140; +var128 = "# size of methods tables"; +var129 = standard___standard__NativeString___to_s_with_length(var128, 24l); +var127 = var129; +varonce126 = var127; } { -standard__file___Object___print(self, var140); /* Direct call file#Object#print on */ +standard__file___Sys___print(var125, var127); /* Direct call file#Sys#print on */ } -if (varonce144) { -var145 = varonce144; +var130 = glob_sys; +if (likely(varonce131!=NULL)) { +var132 = varonce131; } else { -var146 = "\11total \11holes"; -var147 = 13; -var148 = standard___standard__NativeString___to_s_with_length(var146, var147); -var145 = var148; -varonce144 = var145; +var133 = "\ttotal \tholes"; +var134 = standard___standard__NativeString___to_s_with_length(var133, 13l); +var132 = var134; +varonce131 = var132; } { -standard__file___Object___print(self, var145); /* Direct call file#Object#print on */ +standard__file___Sys___print(var130, var132); /* Direct call file#Sys#print on */ } -var149 = 0; -var_total = var149; -var150 = 0; -var_holes = var150; +var_total = 0l; +var_holes = 0l; { { /* Inline separate_compiler#SeparateCompiler#method_tables (self) on */ -var153 = self->attrs[COLOR_nit__separate_compiler__SeparateCompiler___method_tables].val; /* _method_tables on */ -if (unlikely(var153 == NULL)) { +var137 = self->attrs[COLOR_nit__separate_compiler__SeparateCompiler___method_tables].val; /* _method_tables on */ +if (unlikely(var137 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 856); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1053); +fatal_exit(1); } -var151 = var153; -RET_LABEL152:(void)0; +var135 = var137; +RET_LABEL136:(void)0; } } -var_154 = var151; +var_138 = var135; { -var155 = ((val* (*)(val* self))(var_154->class->vft[COLOR_standard__abstract_collection__MapRead__iterator]))(var_154) /* iterator on */; +var139 = ((val*(*)(val* self))((((long)var_138&3)?class_info[((long)var_138&3)]:var_138->class)->vft[COLOR_standard__abstract_collection__MapRead__iterator]))(var_138); /* iterator on */ } -var_156 = var155; +var_140 = var139; for(;;) { { -var157 = ((short int (*)(val* self))(var_156->class->vft[COLOR_standard__abstract_collection__MapIterator__is_ok]))(var_156) /* is_ok on */; +var141 = ((short int(*)(val* self))((((long)var_140&3)?class_info[((long)var_140&3)]:var_140->class)->vft[COLOR_standard__abstract_collection__MapIterator__is_ok]))(var_140); /* is_ok on */ } -if (var157){ +if (var141){ { -var158 = ((val* (*)(val* self))(var_156->class->vft[COLOR_standard__abstract_collection__MapIterator__key]))(var_156) /* key on */; +var142 = ((val*(*)(val* self))((((long)var_140&3)?class_info[((long)var_140&3)]:var_140->class)->vft[COLOR_standard__abstract_collection__MapIterator__key]))(var_140); /* key on */ } -var_t159 = var158; +var_t143 = var142; { -var160 = ((val* (*)(val* self))(var_156->class->vft[COLOR_standard__abstract_collection__MapIterator__item]))(var_156) /* item on */; +var144 = ((val*(*)(val* self))((((long)var_140&3)?class_info[((long)var_140&3)]:var_140->class)->vft[COLOR_standard__abstract_collection__MapIterator__item]))(var_140); /* item on */ } -var_table161 = var160; +var_table145 = var144; { -{ /* Inline array#AbstractArrayRead#length (var_table161) on */ -var164 = var_table161->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var162 = var164; -RET_LABEL163:(void)0; +{ /* Inline array#AbstractArrayRead#length (var_table145) on */ +var148 = var_table145->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var146 = var148; +RET_LABEL147:(void)0; } } { -{ /* Inline kernel#Int#+ (var_total,var162) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var167 = 1; /* easy isa OTHER*/ -if (unlikely(!var167)) { -var_class_name170 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name170); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_total,var146) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var151 = 1; /* easy isa OTHER*/ +if (unlikely(!var151)) { +var_class_name154 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name154); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var171 = var_total + var162; -var165 = var171; -goto RET_LABEL166; -RET_LABEL166:(void)0; +var155 = var_total + var146; +var149 = var155; +goto RET_LABEL150; +RET_LABEL150:(void)0; } } -var_total = var165; -var_172 = var_table161; +var_total = var149; +var_156 = var_table145; { -var173 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_172); +var157 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_156); } -var_174 = var173; +var_158 = var157; for(;;) { { -var175 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_174); +var159 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_158); } -if (var175){ +if (var159){ { -var176 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_174); +var160 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_158); } -var_e177 = var176; -var178 = NULL; -if (var_e177 == NULL) { -var179 = 1; /* is null */ +var_e161 = var160; +if (var_e161 == NULL) { +var162 = 1; /* is null */ } else { -var179 = 0; /* arg is null but recv is not */ +var162 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_e177,var178) on */ -var_other = var178; +{ /* Inline kernel#Object#== (var_e161,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_e177,var_other) on */ -var184 = var_e177 == var_other; -var182 = var184; -goto RET_LABEL183; -RET_LABEL183:(void)0; +{ /* Inline kernel#Object#is_same_instance (var_e161,var_other) on */ +var167 = var_e161 == var_other; +var165 = var167; +goto RET_LABEL166; +RET_LABEL166:(void)0; } } -var180 = var182; -goto RET_LABEL181; -RET_LABEL181:(void)0; +var163 = var165; +goto RET_LABEL164; +RET_LABEL164:(void)0; } -var179 = var180; +var162 = var163; } -if (var179){ -var185 = 1; +if (var162){ { -{ /* Inline kernel#Int#+ (var_holes,var185) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var188 = 1; /* easy isa OTHER*/ -if (unlikely(!var188)) { -var_class_name191 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name191); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_holes,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var170 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var170)) { +var_class_name173 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name173); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var192 = var_holes + var185; -var186 = var192; -goto RET_LABEL187; -RET_LABEL187:(void)0; +var174 = var_holes + 1l; +var168 = var174; +goto RET_LABEL169; +RET_LABEL169:(void)0; } } -var_holes = var186; +var_holes = var168; } else { } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_174); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_158); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label193; +goto BREAK_label175; } } -BREAK_label193: (void)0; +BREAK_label175: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_174) on */ -RET_LABEL194:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_158); /* Direct call array#ArrayIterator#finish on */ } { -((void (*)(val* self))(var_156->class->vft[COLOR_standard__abstract_collection__MapIterator__next]))(var_156) /* next on */; +((void(*)(val* self))((((long)var_140&3)?class_info[((long)var_140&3)]:var_140->class)->vft[COLOR_standard__abstract_collection__MapIterator__next]))(var_140); /* next on */ } } else { -goto BREAK_label195; +goto BREAK_label176; } } -BREAK_label195: (void)0; +BREAK_label176: (void)0; { -{ /* Inline abstract_collection#MapIterator#finish (var_156) on */ -RET_LABEL196:(void)0; +{ /* Inline abstract_collection#MapIterator#finish (var_140) on */ +RET_LABEL177:(void)0; } } -if (varonce197) { -var198 = varonce197; +var178 = glob_sys; +if (unlikely(varonce179==NULL)) { +var180 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce181!=NULL)) { +var182 = varonce181; } else { -var199 = "\11"; -var200 = 1; -var201 = standard___standard__NativeString___to_s_with_length(var199, var200); -var198 = var201; -varonce197 = var198; +var183 = "\t"; +var184 = standard___standard__NativeString___to_s_with_length(var183, 1l); +var182 = var184; +varonce181 = var182; } -if (varonce202) { -var203 = varonce202; +((struct instance_standard__NativeArray*)var180)->values[0]=var182; +if (likely(varonce185!=NULL)) { +var186 = varonce185; } else { -var204 = "\11"; -var205 = 1; -var206 = standard___standard__NativeString___to_s_with_length(var204, var205); -var203 = var206; -varonce202 = var203; -} -var207 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var207 = array_instance Array[Object] */ -var208 = 4; -var209 = NEW_standard__NativeArray(var208, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var209)->values[0] = (val*) var198; -var210 = BOX_standard__Int(var_total); /* autobox from Int to Object */ -((struct instance_standard__NativeArray*)var209)->values[1] = (val*) var210; -((struct instance_standard__NativeArray*)var209)->values[2] = (val*) var203; -var211 = BOX_standard__Int(var_holes); /* autobox from Int to Object */ -((struct instance_standard__NativeArray*)var209)->values[3] = (val*) var211; -{ -((void (*)(val* self, val* p0, long p1))(var207->class->vft[COLOR_standard__array__Array__with_native]))(var207, var209, var208) /* with_native on */; +var187 = "\t"; +var188 = standard___standard__NativeString___to_s_with_length(var187, 1l); +var186 = var188; +varonce185 = var186; } +((struct instance_standard__NativeArray*)var180)->values[2]=var186; +} else { +var180 = varonce179; +varonce179 = NULL; } +var189 = standard__string___Int___Object__to_s(var_total); +((struct instance_standard__NativeArray*)var180)->values[1]=var189; +var190 = standard__string___Int___Object__to_s(var_holes); +((struct instance_standard__NativeArray*)var180)->values[3]=var190; { -var212 = ((val* (*)(val* self))(var207->class->vft[COLOR_standard__string__Object__to_s]))(var207) /* to_s on */; +var191 = ((val*(*)(val* self))(var180->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var180); /* native_to_s on */ } +varonce179 = var180; { -standard__file___Object___print(self, var212); /* Direct call file#Object#print on */ +standard__file___Sys___print(var178, var191); /* Direct call file#Sys#print on */ } -if (varonce213) { -var214 = varonce213; +var192 = glob_sys; +if (likely(varonce193!=NULL)) { +var194 = varonce193; } else { -var215 = "# size of attributes tables"; -var216 = 27; -var217 = standard___standard__NativeString___to_s_with_length(var215, var216); -var214 = var217; -varonce213 = var214; +var195 = "# size of attributes tables"; +var196 = standard___standard__NativeString___to_s_with_length(var195, 27l); +var194 = var196; +varonce193 = var194; } { -standard__file___Object___print(self, var214); /* Direct call file#Object#print on */ +standard__file___Sys___print(var192, var194); /* Direct call file#Sys#print on */ } -if (varonce218) { -var219 = varonce218; +var197 = glob_sys; +if (likely(varonce198!=NULL)) { +var199 = varonce198; } else { -var220 = "\11total \11holes"; -var221 = 13; -var222 = standard___standard__NativeString___to_s_with_length(var220, var221); -var219 = var222; -varonce218 = var219; +var200 = "\ttotal \tholes"; +var201 = standard___standard__NativeString___to_s_with_length(var200, 13l); +var199 = var201; +varonce198 = var199; } { -standard__file___Object___print(self, var219); /* Direct call file#Object#print on */ +standard__file___Sys___print(var197, var199); /* Direct call file#Sys#print on */ } -var223 = 0; -var_total = var223; -var224 = 0; -var_holes = var224; +var_total = 0l; +var_holes = 0l; { { /* Inline separate_compiler#SeparateCompiler#attr_tables (self) on */ -var227 = self->attrs[COLOR_nit__separate_compiler__SeparateCompiler___attr_tables].val; /* _attr_tables on */ -if (unlikely(var227 == NULL)) { +var204 = self->attrs[COLOR_nit__separate_compiler__SeparateCompiler___attr_tables].val; /* _attr_tables on */ +if (unlikely(var204 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 857); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1054); +fatal_exit(1); } -var225 = var227; -RET_LABEL226:(void)0; +var202 = var204; +RET_LABEL203:(void)0; } } -var_228 = var225; +var_205 = var202; { -var229 = ((val* (*)(val* self))(var_228->class->vft[COLOR_standard__abstract_collection__MapRead__iterator]))(var_228) /* iterator on */; +var206 = ((val*(*)(val* self))((((long)var_205&3)?class_info[((long)var_205&3)]:var_205->class)->vft[COLOR_standard__abstract_collection__MapRead__iterator]))(var_205); /* iterator on */ } -var_230 = var229; +var_207 = var206; for(;;) { { -var231 = ((short int (*)(val* self))(var_230->class->vft[COLOR_standard__abstract_collection__MapIterator__is_ok]))(var_230) /* is_ok on */; +var208 = ((short int(*)(val* self))((((long)var_207&3)?class_info[((long)var_207&3)]:var_207->class)->vft[COLOR_standard__abstract_collection__MapIterator__is_ok]))(var_207); /* is_ok on */ } -if (var231){ +if (var208){ { -var232 = ((val* (*)(val* self))(var_230->class->vft[COLOR_standard__abstract_collection__MapIterator__key]))(var_230) /* key on */; +var209 = ((val*(*)(val* self))((((long)var_207&3)?class_info[((long)var_207&3)]:var_207->class)->vft[COLOR_standard__abstract_collection__MapIterator__key]))(var_207); /* key on */ } -var_t233 = var232; +var_t210 = var209; { -var234 = ((val* (*)(val* self))(var_230->class->vft[COLOR_standard__abstract_collection__MapIterator__item]))(var_230) /* item on */; +var211 = ((val*(*)(val* self))((((long)var_207&3)?class_info[((long)var_207&3)]:var_207->class)->vft[COLOR_standard__abstract_collection__MapIterator__item]))(var_207); /* item on */ } -var_table235 = var234; +var_table212 = var211; { -{ /* Inline array#AbstractArrayRead#length (var_table235) on */ -var238 = var_table235->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var236 = var238; -RET_LABEL237:(void)0; +{ /* Inline array#AbstractArrayRead#length (var_table212) on */ +var215 = var_table212->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var213 = var215; +RET_LABEL214:(void)0; } } { -{ /* Inline kernel#Int#+ (var_total,var236) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var241 = 1; /* easy isa OTHER*/ -if (unlikely(!var241)) { -var_class_name244 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name244); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_total,var213) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var218 = 1; /* easy isa OTHER*/ +if (unlikely(!var218)) { +var_class_name221 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name221); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var245 = var_total + var236; -var239 = var245; -goto RET_LABEL240; -RET_LABEL240:(void)0; +var222 = var_total + var213; +var216 = var222; +goto RET_LABEL217; +RET_LABEL217:(void)0; } } -var_total = var239; -var_246 = var_table235; +var_total = var216; +var_223 = var_table212; { -var247 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_246); +var224 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_223); } -var_248 = var247; +var_225 = var224; for(;;) { { -var249 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_248); +var226 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_225); } -if (var249){ +if (var226){ { -var250 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_248); +var227 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_225); } -var_e251 = var250; -var252 = NULL; -if (var_e251 == NULL) { -var253 = 1; /* is null */ +var_e228 = var227; +if (var_e228 == NULL) { +var229 = 1; /* is null */ } else { -var253 = 0; /* arg is null but recv is not */ +var229 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_e251,var252) on */ -var_other = var252; +{ /* Inline kernel#Object#== (var_e228,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_e251,var_other) on */ -var258 = var_e251 == var_other; -var256 = var258; -goto RET_LABEL257; -RET_LABEL257:(void)0; +{ /* Inline kernel#Object#is_same_instance (var_e228,var_other) on */ +var234 = var_e228 == var_other; +var232 = var234; +goto RET_LABEL233; +RET_LABEL233:(void)0; } } -var254 = var256; -goto RET_LABEL255; -RET_LABEL255:(void)0; +var230 = var232; +goto RET_LABEL231; +RET_LABEL231:(void)0; } -var253 = var254; +var229 = var230; } -if (var253){ -var259 = 1; +if (var229){ { -{ /* Inline kernel#Int#+ (var_holes,var259) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var262 = 1; /* easy isa OTHER*/ -if (unlikely(!var262)) { -var_class_name265 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name265); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_holes,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var237 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var237)) { +var_class_name240 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name240); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var266 = var_holes + var259; -var260 = var266; -goto RET_LABEL261; -RET_LABEL261:(void)0; +var241 = var_holes + 1l; +var235 = var241; +goto RET_LABEL236; +RET_LABEL236:(void)0; } } -var_holes = var260; +var_holes = var235; } else { } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_248); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_225); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label267; +goto BREAK_label242; } } -BREAK_label267: (void)0; +BREAK_label242: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_248) on */ -RET_LABEL268:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_225); /* Direct call array#ArrayIterator#finish on */ } { -((void (*)(val* self))(var_230->class->vft[COLOR_standard__abstract_collection__MapIterator__next]))(var_230) /* next on */; +((void(*)(val* self))((((long)var_207&3)?class_info[((long)var_207&3)]:var_207->class)->vft[COLOR_standard__abstract_collection__MapIterator__next]))(var_207); /* next on */ } } else { -goto BREAK_label269; +goto BREAK_label243; } } -BREAK_label269: (void)0; +BREAK_label243: (void)0; { -{ /* Inline abstract_collection#MapIterator#finish (var_230) on */ -RET_LABEL270:(void)0; +{ /* Inline abstract_collection#MapIterator#finish (var_207) on */ +RET_LABEL244:(void)0; } } -if (varonce271) { -var272 = varonce271; +var245 = glob_sys; +if (unlikely(varonce246==NULL)) { +var247 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce248!=NULL)) { +var249 = varonce248; } else { -var273 = "\11"; -var274 = 1; -var275 = standard___standard__NativeString___to_s_with_length(var273, var274); -var272 = var275; -varonce271 = var272; +var250 = "\t"; +var251 = standard___standard__NativeString___to_s_with_length(var250, 1l); +var249 = var251; +varonce248 = var249; } -if (varonce276) { -var277 = varonce276; +((struct instance_standard__NativeArray*)var247)->values[0]=var249; +if (likely(varonce252!=NULL)) { +var253 = varonce252; } else { -var278 = "\11"; -var279 = 1; -var280 = standard___standard__NativeString___to_s_with_length(var278, var279); -var277 = var280; -varonce276 = var277; -} -var281 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var281 = array_instance Array[Object] */ -var282 = 4; -var283 = NEW_standard__NativeArray(var282, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var283)->values[0] = (val*) var272; -var284 = BOX_standard__Int(var_total); /* autobox from Int to Object */ -((struct instance_standard__NativeArray*)var283)->values[1] = (val*) var284; -((struct instance_standard__NativeArray*)var283)->values[2] = (val*) var277; -var285 = BOX_standard__Int(var_holes); /* autobox from Int to Object */ -((struct instance_standard__NativeArray*)var283)->values[3] = (val*) var285; -{ -((void (*)(val* self, val* p0, long p1))(var281->class->vft[COLOR_standard__array__Array__with_native]))(var281, var283, var282) /* with_native on */; +var254 = "\t"; +var255 = standard___standard__NativeString___to_s_with_length(var254, 1l); +var253 = var255; +varonce252 = var253; } +((struct instance_standard__NativeArray*)var247)->values[2]=var253; +} else { +var247 = varonce246; +varonce246 = NULL; } +var256 = standard__string___Int___Object__to_s(var_total); +((struct instance_standard__NativeArray*)var247)->values[1]=var256; +var257 = standard__string___Int___Object__to_s(var_holes); +((struct instance_standard__NativeArray*)var247)->values[3]=var257; { -var286 = ((val* (*)(val* self))(var281->class->vft[COLOR_standard__string__Object__to_s]))(var281) /* to_s on */; +var258 = ((val*(*)(val* self))(var247->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var247); /* native_to_s on */ } +varonce246 = var247; { -standard__file___Object___print(self, var286); /* Direct call file#Object#print on */ +standard__file___Sys___print(var245, var258); /* Direct call file#Sys#print on */ } RET_LABEL:; } @@ -8756,76 +8358,67 @@ val* var19 /* : nullable Object */; val* var21 /* : nullable Object */; short int var22 /* : Bool */; short int var23 /* : Bool */; -val* var24 /* : null */; +short int var24 /* : Bool */; short int var25 /* : Bool */; -short int var26 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var27 /* : Bool */; short int var28 /* : Bool */; -short int var29 /* : Bool */; -val* var30 /* : MSignature */; -val* var32 /* : MSignature */; -val* var33 /* : nullable MType */; -val* var35 /* : nullable MType */; +val* var29 /* : MSignature */; +val* var31 /* : MSignature */; +val* var32 /* : nullable MType */; +val* var34 /* : nullable MType */; val* var_mtype /* var mtype: nullable MType */; -val* var36 /* : null */; -short int var37 /* : Bool */; +short int var35 /* : Bool */; +short int var36 /* : Bool */; short int var38 /* : Bool */; -short int var40 /* : Bool */; -short int var41 /* : Bool */; +short int var39 /* : Bool */; +val* var40 /* : NativeArray[String] */; static val* varonce; +static val* varonce41; val* var42 /* : String */; char* var43 /* : NativeString */; -long var44 /* : Int */; -val* var45 /* : FlatString */; -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 */; -static val* varonce60; -val* var61 /* : String */; -char* var62 /* : NativeString */; -long var63 /* : Int */; -val* var64 /* : FlatString */; -val* var65 /* : RuntimeVariable */; +val* var44 /* : FlatString */; +static val* varonce45; +val* var46 /* : String */; +char* var47 /* : NativeString */; +val* var48 /* : FlatString */; +static val* varonce49; +val* var50 /* : String */; +char* var51 /* : NativeString */; +val* var52 /* : FlatString */; +val* var53 /* : String */; +val* var54 /* : String */; +val* var55 /* : String */; +static val* varonce56; +val* var57 /* : String */; +char* var58 /* : NativeString */; +val* var59 /* : FlatString */; +val* var60 /* : RuntimeVariable */; val* var_cond /* var cond: RuntimeVariable */; -static val* varonce66; -val* var67 /* : String */; -char* var68 /* : NativeString */; -long var69 /* : Int */; +val* var62 /* : NativeArray[String] */; +static val* varonce61; +static val* varonce63; +val* var64 /* : String */; +char* var65 /* : NativeString */; +val* var66 /* : FlatString */; +static val* varonce67; +val* var68 /* : String */; +char* var69 /* : NativeString */; val* var70 /* : FlatString */; -static val* varonce71; +val* var71 /* : String */; val* var72 /* : String */; -char* var73 /* : NativeString */; -long var74 /* : Int */; -val* var75 /* : FlatString */; -val* var76 /* : Array[Object] */; -long var77 /* : Int */; -val* var78 /* : NativeArray[Object] */; -val* var79 /* : String */; -static val* varonce80; -val* var81 /* : String */; -char* var82 /* : NativeString */; -long var83 /* : Int */; -val* var84 /* : FlatString */; -static val* varonce85; -val* var86 /* : String */; -char* var87 /* : NativeString */; -long var88 /* : Int */; -val* var89 /* : FlatString */; +static val* varonce73; +val* var74 /* : String */; +char* var75 /* : NativeString */; +val* var76 /* : FlatString */; +static val* varonce77; +val* var78 /* : String */; +char* var79 /* : NativeString */; +val* var80 /* : FlatString */; var_callsite = p0; var_arguments = p1; { -var1 = ((val* (*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(self, p0, p1) /* compile_callsite on */; +var1 = ((val*(*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(self, p0, p1); /* compile_callsite on */ } var_res = var1; { @@ -8842,8 +8435,8 @@ if (var3){ var8 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on */ if (unlikely(var8 == 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; @@ -8860,16 +8453,16 @@ var9 = var6->type->type_table[cltype] == idtype; if (unlikely(!var9)) { var_class_name = var6 == NULL ? "null" : var6->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SeparateErasureCompiler", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 469); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 480); +fatal_exit(1); } { { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var6) on */ var12 = var6->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on */ if (unlikely(var12 == 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); } var10 = var12; RET_LABEL11:(void)0; @@ -8881,7 +8474,7 @@ var15 = var10->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].v if (unlikely(var15 == 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); } var13 = var15; RET_LABEL14:(void)0; @@ -8893,7 +8486,7 @@ var18 = var13->attrs[COLOR_nit__separate_erasure_compiler__ToolContext___opt_no_ if (unlikely(var18 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_erasure_cast"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 26); -show_backtrace(1); +fatal_exit(1); } var16 = var18; RET_LABEL17:(void)0; @@ -8906,198 +8499,195 @@ var19 = var21; RET_LABEL20:(void)0; } } -var22 = ((struct instance_standard__Bool*)var19)->value; /* autounbox from nullable Object to Bool */; +var22 = (short int)((long)(var19)>>2); var23 = !var22; var2 = var23; } else { var2 = var_; } if (var2){ -var24 = NULL; if (var_res == NULL) { -var25 = 0; /* is null */ +var24 = 0; /* is null */ } else { -var25 = 1; /* arg is null and recv is not */ +var24 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_res,var24) on */ -var_other = var24; +{ /* Inline kernel#Object#!= (var_res,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var28 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other) /* == on */; +var27 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other); /* == on */ } -var29 = !var28; -var26 = var29; -goto RET_LABEL27; -RET_LABEL27:(void)0; +var28 = !var27; +var25 = var28; +goto RET_LABEL26; +RET_LABEL26:(void)0; } -var25 = var26; +var24 = var25; } -if (unlikely(!var25)) { +if (unlikely(!var24)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 470); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 481); +fatal_exit(1); } { { /* Inline typing#CallSite#msignature (var_callsite) on */ -var32 = var_callsite->attrs[COLOR_nit__typing__CallSite___msignature].val; /* _msignature on */ -if (unlikely(var32 == NULL)) { +var31 = var_callsite->attrs[COLOR_nit__typing__CallSite___msignature].val; /* _msignature on */ +if (unlikely(var31 == 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); } -var30 = var32; -RET_LABEL31:(void)0; +var29 = var31; +RET_LABEL30:(void)0; } } { -{ /* Inline model#MSignature#return_mtype (var30) on */ -var35 = var30->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on */ -var33 = var35; -RET_LABEL34:(void)0; +{ /* Inline model#MSignature#return_mtype (var29) on */ +var34 = var29->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on */ +var32 = var34; +RET_LABEL33:(void)0; } } -var_mtype = var33; -var36 = NULL; +var_mtype = var32; if (var_mtype == NULL) { -var37 = 0; /* is null */ +var35 = 0; /* is null */ } else { -var37 = 1; /* arg is null and recv is not */ +var35 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_mtype,var36) on */ -var_other = var36; +{ /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var40 = ((short int (*)(val* self, val* p0))(var_mtype->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mtype, var_other) /* == on */; +var38 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mtype, var_other); /* == on */ } -var41 = !var40; -var38 = var41; -goto RET_LABEL39; -RET_LABEL39:(void)0; +var39 = !var38; +var36 = var39; +goto RET_LABEL37; +RET_LABEL37:(void)0; } -var37 = var38; +var35 = var36; } -if (unlikely(!var37)) { +if (unlikely(!var35)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 472); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_erasure_compiler, 483); +fatal_exit(1); } -if (varonce) { -var42 = varonce; +if (unlikely(varonce==NULL)) { +var40 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce41!=NULL)) { +var42 = varonce41; } else { var43 = "/* Erasure cast for return "; -var44 = 27; -var45 = standard___standard__NativeString___to_s_with_length(var43, var44); -var42 = var45; -varonce = var42; +var44 = standard___standard__NativeString___to_s_with_length(var43, 27l); +var42 = var44; +varonce41 = var42; } -if (varonce46) { -var47 = varonce46; +((struct instance_standard__NativeArray*)var40)->values[0]=var42; +if (likely(varonce45!=NULL)) { +var46 = varonce45; } else { -var48 = " isa "; -var49 = 5; -var50 = standard___standard__NativeString___to_s_with_length(var48, var49); -var47 = var50; -varonce46 = var47; +var47 = " isa "; +var48 = standard___standard__NativeString___to_s_with_length(var47, 5l); +var46 = var48; +varonce45 = var46; } -if (varonce51) { -var52 = varonce51; +((struct instance_standard__NativeArray*)var40)->values[2]=var46; +if (likely(varonce49!=NULL)) { +var50 = varonce49; } else { -var53 = " */"; -var54 = 3; -var55 = standard___standard__NativeString___to_s_with_length(var53, var54); -var52 = var55; -varonce51 = var52; +var51 = " */"; +var52 = standard___standard__NativeString___to_s_with_length(var51, 3l); +var50 = var52; +varonce49 = var50; +} +((struct instance_standard__NativeArray*)var40)->values[4]=var50; +} else { +var40 = varonce; +varonce = NULL; } -var56 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var56 = array_instance Array[Object] */ -var57 = 5; -var58 = NEW_standard__NativeArray(var57, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var58)->values[0] = (val*) var42; -((struct instance_standard__NativeArray*)var58)->values[1] = (val*) var_res; -((struct instance_standard__NativeArray*)var58)->values[2] = (val*) var47; -((struct instance_standard__NativeArray*)var58)->values[3] = (val*) var_mtype; -((struct instance_standard__NativeArray*)var58)->values[4] = (val*) var52; { -((void (*)(val* self, val* p0, long p1))(var56->class->vft[COLOR_standard__array__Array__with_native]))(var56, var58, var57) /* with_native on */; +var53 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on */ } +((struct instance_standard__NativeArray*)var40)->values[1]=var53; +{ +var54 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_standard__string__Object__to_s]))(var_mtype); /* to_s on */ } +((struct instance_standard__NativeArray*)var40)->values[3]=var54; { -var59 = ((val* (*)(val* self))(var56->class->vft[COLOR_standard__string__Object__to_s]))(var56) /* to_s on */; +var55 = ((val*(*)(val* self))(var40->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var40); /* native_to_s on */ } +varonce = var40; { -nit___nit__AbstractCompilerVisitor___add(self, var59); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(self, var55); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce60) { -var61 = varonce60; +if (likely(varonce56!=NULL)) { +var57 = varonce56; } else { -var62 = "erasure"; -var63 = 7; -var64 = standard___standard__NativeString___to_s_with_length(var62, var63); -var61 = var64; -varonce60 = var61; +var58 = "erasure"; +var59 = standard___standard__NativeString___to_s_with_length(var58, 7l); +var57 = var59; +varonce56 = var57; } { -var65 = nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__type_test(self, var_res, var_mtype, var61); +var60 = nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__type_test(self, var_res, var_mtype, var57); +} +var_cond = var60; +if (unlikely(varonce61==NULL)) { +var62 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce63!=NULL)) { +var64 = varonce63; +} else { +var65 = "if (!"; +var66 = standard___standard__NativeString___to_s_with_length(var65, 5l); +var64 = var66; +varonce63 = var64; } -var_cond = var65; -if (varonce66) { -var67 = varonce66; +((struct instance_standard__NativeArray*)var62)->values[0]=var64; +if (likely(varonce67!=NULL)) { +var68 = varonce67; } else { -var68 = "if (!"; -var69 = 5; -var70 = standard___standard__NativeString___to_s_with_length(var68, var69); -var67 = var70; -varonce66 = var67; +var69 = ") {"; +var70 = standard___standard__NativeString___to_s_with_length(var69, 3l); +var68 = var70; +varonce67 = var68; } -if (varonce71) { -var72 = varonce71; +((struct instance_standard__NativeArray*)var62)->values[2]=var68; } else { -var73 = ") {"; -var74 = 3; -var75 = standard___standard__NativeString___to_s_with_length(var73, var74); -var72 = var75; -varonce71 = var72; +var62 = varonce61; +varonce61 = NULL; } -var76 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var76 = array_instance Array[Object] */ -var77 = 3; -var78 = NEW_standard__NativeArray(var77, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var78)->values[0] = (val*) var67; -((struct instance_standard__NativeArray*)var78)->values[1] = (val*) var_cond; -((struct instance_standard__NativeArray*)var78)->values[2] = (val*) var72; { -((void (*)(val* self, val* p0, long p1))(var76->class->vft[COLOR_standard__array__Array__with_native]))(var76, var78, var77) /* with_native on */; -} +var71 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_standard__string__Object__to_s]))(var_cond); /* to_s on */ } +((struct instance_standard__NativeArray*)var62)->values[1]=var71; { -var79 = ((val* (*)(val* self))(var76->class->vft[COLOR_standard__string__Object__to_s]))(var76) /* to_s on */; +var72 = ((val*(*)(val* self))(var62->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var62); /* native_to_s on */ } +varonce61 = var62; { -nit___nit__AbstractCompilerVisitor___add(self, var79); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(self, var72); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } -if (varonce80) { -var81 = varonce80; +if (likely(varonce73!=NULL)) { +var74 = varonce73; } else { -var82 = "Cast failed"; -var83 = 11; -var84 = standard___standard__NativeString___to_s_with_length(var82, var83); -var81 = var84; -varonce80 = var81; +var75 = "Cast failed"; +var76 = standard___standard__NativeString___to_s_with_length(var75, 11l); +var74 = var76; +varonce73 = var74; } { -nit___nit__AbstractCompilerVisitor___add_abort(self, var81); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ +nit___nit__AbstractCompilerVisitor___add_abort(self, var74); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on */ } -if (varonce85) { -var86 = varonce85; +if (likely(varonce77!=NULL)) { +var78 = varonce77; } else { -var87 = "}"; -var88 = 1; -var89 = standard___standard__NativeString___to_s_with_length(var87, var88); -var86 = var89; -varonce85 = var86; +var79 = "}"; +var80 = standard___standard__NativeString___to_s_with_length(var79, 1l); +var78 = var80; +varonce77 = var78; } { -nit___nit__AbstractCompilerVisitor___add(self, var86); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ +nit___nit__AbstractCompilerVisitor___add(self, var78); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on */ } } else { } @@ -9110,128 +8700,118 @@ return var; val* nit___nit__SeparateErasureCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__init_instance(val* self, val* p0) { val* var /* : RuntimeVariable */; val* var_mtype /* var mtype: MClassType */; +val* var1 /* : NativeArray[String] */; static val* varonce; -val* var1 /* : String */; -char* var2 /* : NativeString */; -long var3 /* : Int */; -val* var4 /* : FlatString */; -val* var5 /* : MClass */; -val* var7 /* : MClass */; -val* var8 /* : String */; -val* var9 /* : Array[Object] */; -long var10 /* : Int */; -val* var11 /* : NativeArray[Object] */; -val* var12 /* : String */; +static val* varonce2; +val* var3 /* : String */; +char* var4 /* : NativeString */; +val* var5 /* : FlatString */; +val* var6 /* : MClass */; +val* var8 /* : MClass */; +val* var9 /* : String */; +val* var10 /* : String */; +val* var12 /* : NativeArray[String] */; +static val* varonce11; static val* varonce13; val* var14 /* : String */; char* var15 /* : NativeString */; -long var16 /* : Int */; -val* var17 /* : FlatString */; -val* var18 /* : MClass */; -val* var20 /* : MClass */; -val* var21 /* : String */; -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 */; -val* var31 /* : RuntimeVariable */; +val* var16 /* : FlatString */; +static val* varonce17; +val* var18 /* : String */; +char* var19 /* : NativeString */; +val* var20 /* : FlatString */; +val* var21 /* : MClass */; +val* var23 /* : MClass */; +val* var24 /* : String */; +val* var25 /* : String */; +val* var26 /* : RuntimeVariable */; var_mtype = p0; -if (varonce) { -var1 = varonce; +if (unlikely(varonce==NULL)) { +var1 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce2!=NULL)) { +var3 = varonce2; } else { -var2 = "NEW_"; -var3 = 4; -var4 = standard___standard__NativeString___to_s_with_length(var2, var3); -var1 = var4; -varonce = var1; +var4 = "NEW_"; +var5 = standard___standard__NativeString___to_s_with_length(var4, 4l); +var3 = var5; +varonce2 = var3; +} +((struct instance_standard__NativeArray*)var1)->values[0]=var3; +} else { +var1 = varonce; +varonce = NULL; } { { /* Inline model#MClassType#mclass (var_mtype) on */ -var7 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var7 == NULL)) { +var8 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var8 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); -} -var5 = var7; -RET_LABEL6:(void)0; +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } +var6 = var8; +RET_LABEL7:(void)0; } -{ -var8 = nit___nit__MClass___nit__model_base__MEntity__c_name(var5); } -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*) var1; -((struct instance_standard__NativeArray*)var11)->values[1] = (val*) var8; { -((void (*)(val* self, val* p0, long p1))(var9->class->vft[COLOR_standard__array__Array__with_native]))(var9, var11, var10) /* with_native on */; -} +var9 = nit___nit__MClass___nit__model_base__MEntity__c_name(var6); } +((struct instance_standard__NativeArray*)var1)->values[1]=var9; { -var12 = ((val* (*)(val* self))(var9->class->vft[COLOR_standard__string__Object__to_s]))(var9) /* to_s on */; +var10 = ((val*(*)(val* self))(var1->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1); /* native_to_s on */ } +varonce = var1; { -nit___nit__AbstractCompilerVisitor___require_declaration(self, var12); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ +nit___nit__AbstractCompilerVisitor___require_declaration(self, var10); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on */ } -if (varonce13) { +if (unlikely(varonce11==NULL)) { +var12 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce13!=NULL)) { var14 = varonce13; } else { var15 = "NEW_"; -var16 = 4; -var17 = standard___standard__NativeString___to_s_with_length(var15, var16); -var14 = var17; +var16 = standard___standard__NativeString___to_s_with_length(var15, 4l); +var14 = var16; varonce13 = var14; } -{ -{ /* Inline model#MClassType#mclass (var_mtype) on */ -var20 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var20 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); -} +((struct instance_standard__NativeArray*)var12)->values[0]=var14; +if (likely(varonce17!=NULL)) { +var18 = varonce17; +} else { +var19 = "()"; +var20 = standard___standard__NativeString___to_s_with_length(var19, 2l); var18 = var20; -RET_LABEL19:(void)0; +varonce17 = var18; } +((struct instance_standard__NativeArray*)var12)->values[2]=var18; +} else { +var12 = varonce11; +varonce11 = NULL; } { -var21 = nit___nit__MClass___nit__model_base__MEntity__c_name(var18); +{ /* Inline model#MClassType#mclass (var_mtype) on */ +var23 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var23 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } -if (varonce22) { -var23 = varonce22; -} else { -var24 = "()"; -var25 = 2; -var26 = standard___standard__NativeString___to_s_with_length(var24, var25); -var23 = var26; -varonce22 = var23; +var21 = var23; +RET_LABEL22:(void)0; } -var27 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var27 = array_instance Array[Object] */ -var28 = 3; -var29 = NEW_standard__NativeArray(var28, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var29)->values[0] = (val*) var14; -((struct instance_standard__NativeArray*)var29)->values[1] = (val*) var21; -((struct instance_standard__NativeArray*)var29)->values[2] = (val*) var23; -{ -((void (*)(val* self, val* p0, long p1))(var27->class->vft[COLOR_standard__array__Array__with_native]))(var27, var29, var28) /* with_native on */; } +{ +var24 = nit___nit__MClass___nit__model_base__MEntity__c_name(var21); } +((struct instance_standard__NativeArray*)var12)->values[1]=var24; { -var30 = ((val* (*)(val* self))(var27->class->vft[COLOR_standard__string__Object__to_s]))(var27) /* to_s on */; +var25 = ((val*(*)(val* self))(var12->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var12); /* native_to_s on */ } +varonce11 = var12; { -var31 = nit___nit__AbstractCompilerVisitor___new_expr(self, var30, var_mtype); +var26 = nit___nit__AbstractCompilerVisitor___new_expr(self, var25, var_mtype); } -var = var31; +var = var26; goto RET_LABEL; RET_LABEL:; return var;