X-Git-Url: http://nitlanguage.org diff --git a/c_src/nit__rapid_type_analysis.sep.1.c b/c_src/nit__rapid_type_analysis.sep.1.c index 58f6ef0..42979b4 100644 --- a/c_src/nit__rapid_type_analysis.sep.1.c +++ b/c_src/nit__rapid_type_analysis.sep.1.c @@ -5,21 +5,157 @@ val* var /* : RapidTypeAnalysis */; val* var_mainmodule /* var mainmodule: MModule */; val* var1 /* : RapidTypeAnalysis */; val* var_analysis /* var analysis: RapidTypeAnalysis */; +val* var2 /* : ToolContext */; +val* var4 /* : ToolContext */; +val* var5 /* : OptionBool */; +val* var7 /* : OptionBool */; +val* var8 /* : nullable Object */; +val* var10 /* : nullable Object */; +short int var11 /* : Bool */; +val* var12 /* : ToolContext */; +val* var14 /* : ToolContext */; +val* var15 /* : String */; +val* var17 /* : String */; +val* var18 /* : String */; +val* var20 /* : String */; +val* var21 /* : String */; +val* var_basename /* var basename: String */; +val* var22 /* : OrderedTree[Object] */; +static val* varonce; +val* var23 /* : String */; +char* var24 /* : NativeString */; +val* var25 /* : FlatString */; +val* var26 /* : String */; +val* var27 /* : CsvDocument */; +static val* varonce28; +val* var29 /* : String */; +char* var30 /* : NativeString */; +val* var31 /* : FlatString */; +val* var32 /* : String */; var_mainmodule = p0; var1 = NEW_nit__RapidTypeAnalysis(&type_nit__RapidTypeAnalysis); { -((void (*)(val* self, val* p0))(var1->class->vft[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis__modelbuilder_61d]))(var1, self) /* modelbuilder= on */; +((void(*)(val* self, val* p0))(var1->class->vft[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis__modelbuilder_61d]))(var1, self); /* modelbuilder= on */ } { -((void (*)(val* self, val* p0))(var1->class->vft[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis__mainmodule_61d]))(var1, var_mainmodule) /* mainmodule= on */; +((void(*)(val* self, val* p0))(var1->class->vft[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis__mainmodule_61d]))(var1, var_mainmodule); /* mainmodule= 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 */ } var_analysis = var1; { nit___nit__RapidTypeAnalysis___run_analysis(var_analysis); /* Direct call rapid_type_analysis#RapidTypeAnalysis#run_analysis on */ } +{ +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on */ +var4 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var4 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); +} +var2 = var4; +RET_LABEL3:(void)0; +} +} +{ +{ /* Inline toolcontext#ToolContext#opt_log (var2) on */ +var7 = var2->attrs[COLOR_nit__toolcontext__ToolContext___opt_log].val; /* _opt_log on */ +if (unlikely(var7 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_log"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 344); +fatal_exit(1); +} +var5 = var7; +RET_LABEL6:(void)0; +} +} +{ +{ /* Inline opts#Option#value (var5) on */ +var10 = var5->attrs[COLOR_opts__Option___value].val; /* _value on */ +var8 = var10; +RET_LABEL9:(void)0; +} +} +var11 = (short int)((long)(var8)>>2); +if (var11){ +{ +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on */ +var14 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var14 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); +} +var12 = var14; +RET_LABEL13:(void)0; +} +} +{ +{ /* Inline toolcontext#ToolContext#log_directory (var12) on */ +var17 = var12->attrs[COLOR_nit__toolcontext__ToolContext___log_directory].val; /* _log_directory on */ +if (unlikely(var17 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _log_directory"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__toolcontext, 137); +fatal_exit(1); +} +var15 = var17; +RET_LABEL16:(void)0; +} +} +{ +{ /* Inline mmodule#MModule#name (var_mainmodule) on */ +var20 = var_mainmodule->attrs[COLOR_nit__mmodule__MModule___name].val; /* _name on */ +if (unlikely(var20 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 87); +fatal_exit(1); +} +var18 = var20; +RET_LABEL19:(void)0; +} +} +{ +var21 = standard__file___String____47d(var15, var18); +} +var_basename = var21; +{ +var22 = nit___nit__RapidTypeAnalysis___live_methods_to_tree(var_analysis); +} +if (likely(varonce!=NULL)) { +var23 = varonce; +} else { +var24 = ".rta_methods.txt"; +var25 = standard___standard__NativeString___to_s_with_length(var24, 16l); +var23 = var25; +varonce = var23; +} +{ +var26 = ((val*(*)(val* self, val* p0))(var_basename->class->vft[COLOR_standard__string__String___43d]))(var_basename, var23); /* + on */ +} +{ +standard__file___Writable___write_to_file(var22, var26); /* Direct call file#Writable#write_to_file on */ +} +{ +var27 = nit___nit__RapidTypeAnalysis___live_types_to_csv(var_analysis); +} +if (likely(varonce28!=NULL)) { +var29 = varonce28; +} else { +var30 = ".rta_types.csv"; +var31 = standard___standard__NativeString___to_s_with_length(var30, 14l); +var29 = var31; +varonce28 = var29; +} +{ +var32 = ((val*(*)(val* self, val* p0))(var_basename->class->vft[COLOR_standard__string__String___43d]))(var_basename, var29); /* + on */ +} +{ +standard__file___Writable___write_to_file(var27, var32); /* Direct call file#Writable#write_to_file on */ +} +} else { +} var = var_analysis; goto RET_LABEL; RET_LABEL:; @@ -32,8 +168,8 @@ val* var1 /* : ModelBuilder */; var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder].val; /* _modelbuilder on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 46); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 53); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -51,8 +187,8 @@ val* var1 /* : MModule */; var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -70,8 +206,8 @@ val* var1 /* : HashSet[MClassType] */; var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 53); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 60); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -84,8 +220,8 @@ val* var1 /* : HashSet[MClassType] */; var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_types].val; /* _live_open_types on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 58); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 65); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -98,8 +234,8 @@ val* var1 /* : HashSet[MClass] */; var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes].val; /* _live_classes on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 62); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 69); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -112,8 +248,8 @@ val* var1 /* : HashSet[MType] */; var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_cast_types].val; /* _live_cast_types on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 65); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 72); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -126,8 +262,8 @@ val* var1 /* : HashSet[MType] */; var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types].val; /* _live_open_cast_types on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 68); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 75); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -140,8 +276,8 @@ val* var1 /* : HashSet[MMethodDef] */; var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs].val; /* _live_methoddefs on */ if (unlikely(var1 == 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); } var = var1; RET_LABEL:; @@ -154,8 +290,8 @@ val* var1 /* : HashSet[MMethod] */; var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methods].val; /* _live_methods on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 75); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 82); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -168,8 +304,8 @@ val* var1 /* : HashSet[CallSite] */; var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_callsites].val; /* _live_callsites on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_callsites"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 78); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 85); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -182,8 +318,8 @@ val* var1 /* : HashMap2[MType, MProperty, Set[MMethodDef]] */; var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_targets_cache].val; /* _live_targets_cache on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 81); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 88); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -199,61 +335,58 @@ val* var_mtype /* var mtype: MType */; val* var4 /* : nullable MClassType */; val* var6 /* : nullable MClassType */; val* var_anchor /* var anchor: nullable MClassType */; -val* var7 /* : null */; +short int var7 /* : Bool */; short int var8 /* : Bool */; -short int var9 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var10 /* : Bool */; short int var11 /* : Bool */; -short int var12 /* : Bool */; -val* var13 /* : MModule */; -val* var15 /* : MModule */; +val* var12 /* : MModule */; +val* var14 /* : MModule */; +val* var15 /* : MType */; val* var16 /* : MType */; -val* var17 /* : MType */; -short int var18 /* : Bool */; +short int var17 /* : Bool */; int cltype; int idtype; -val* var19 /* : MClass */; -val* var21 /* : MClass */; -val* var22 /* : MClassDef */; -val* var24 /* : MClassDef */; -val* var25 /* : MClassType */; -val* var27 /* : MClassType */; -val* var28 /* : MMethod */; -val* var30 /* : MMethod */; +val* var18 /* : MClass */; +val* var20 /* : MClass */; +val* var21 /* : MClassDef */; +val* var23 /* : MClassDef */; +val* var24 /* : MClassType */; +val* var26 /* : MClassType */; +val* var27 /* : MMethod */; +val* var29 /* : MMethod */; val* var_mproperty /* var mproperty: MMethod */; -val* var31 /* : HashMap2[MType, MProperty, Set[MMethodDef]] */; -val* var33 /* : HashMap2[MType, MProperty, Set[MMethodDef]] */; -val* var34 /* : nullable Object */; +val* var30 /* : HashMap2[MType, MProperty, Set[MMethodDef]] */; +val* var32 /* : HashMap2[MType, MProperty, Set[MMethodDef]] */; +val* var33 /* : nullable Object */; val* var_res /* var res: nullable Set[MMethodDef] */; -val* var35 /* : null */; -short int var36 /* : Bool */; +short int var34 /* : Bool */; +short int var35 /* : Bool */; short int var37 /* : Bool */; -short int var39 /* : Bool */; -short int var40 /* : Bool */; -val* var41 /* : ArraySet[MMethodDef] */; +short int var38 /* : Bool */; +val* var39 /* : ArraySet[MMethodDef] */; +val* var40 /* : HashMap2[MType, MProperty, Set[MMethodDef]] */; val* var42 /* : HashMap2[MType, MProperty, Set[MMethodDef]] */; -val* var44 /* : HashMap2[MType, MProperty, Set[MMethodDef]] */; +val* var43 /* : HashSet[MClass] */; val* var45 /* : HashSet[MClass] */; -val* var47 /* : HashSet[MClass] */; val* var_ /* var : HashSet[MClass] */; -val* var48 /* : Iterator[nullable Object] */; -val* var_49 /* var : Iterator[MClass] */; -short int var50 /* : Bool */; -val* var51 /* : nullable Object */; +val* var46 /* : Iterator[nullable Object] */; +val* var_47 /* var : Iterator[MClass] */; +short int var48 /* : Bool */; +val* var49 /* : nullable Object */; val* var_c /* var c: MClass */; +val* var50 /* : MClassDef */; val* var52 /* : MClassDef */; -val* var54 /* : MClassDef */; +val* var53 /* : MClassType */; val* var55 /* : MClassType */; -val* var57 /* : MClassType */; val* var_tc /* var tc: MClassType */; +val* var56 /* : MModule */; val* var58 /* : MModule */; -val* var60 /* : MModule */; -val* var61 /* : null */; -short int var62 /* : Bool */; -short int var63 /* : Bool */; -val* var64 /* : MModule */; -val* var66 /* : MModule */; -val* var67 /* : MPropDef */; +short int var59 /* : Bool */; +short int var60 /* : Bool */; +val* var61 /* : MModule */; +val* var63 /* : MModule */; +val* var64 /* : MPropDef */; val* var_d /* var d: MMethodDef */; var_callsite = p0; { @@ -261,8 +394,8 @@ var_callsite = p0; var3 = var_callsite->attrs[COLOR_nit__typing__CallSite___recv].val; /* _recv on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 473); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 610); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -277,273 +410,268 @@ RET_LABEL5:(void)0; } } var_anchor = var4; -var7 = NULL; if (var_anchor == NULL) { -var8 = 0; /* is null */ +var7 = 0; /* is null */ } else { -var8 = 1; /* arg is null and recv is not */ +var7 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_anchor,var7) on */ -var_other = var7; +{ /* Inline kernel#Object#!= (var_anchor,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var11 = ((short int (*)(val* self, val* p0))(var_anchor->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_anchor, var_other) /* == on */; +var10 = ((short int(*)(val* self, val* p0))(var_anchor->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_anchor, var_other); /* == on */ } -var12 = !var11; -var9 = var12; -goto RET_LABEL10; -RET_LABEL10:(void)0; +var11 = !var10; +var8 = var11; +goto RET_LABEL9; +RET_LABEL9:(void)0; } -var8 = var9; +var7 = var8; } -if (var8){ +if (var7){ { { /* Inline typing#CallSite#mmodule (var_callsite) on */ -var15 = var_callsite->attrs[COLOR_nit__typing__CallSite___mmodule].val; /* _mmodule on */ -if (unlikely(var15 == NULL)) { +var14 = var_callsite->attrs[COLOR_nit__typing__CallSite___mmodule].val; /* _mmodule on */ +if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 476); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 613); +fatal_exit(1); } -var13 = var15; -RET_LABEL14:(void)0; +var12 = var14; +RET_LABEL13:(void)0; } } { -var16 = ((val* (*)(val* self, val* p0, val* p1))(var_mtype->class->vft[COLOR_nit__model__MType__anchor_to]))(var_mtype, var13, var_anchor) /* anchor_to on */; +var15 = ((val*(*)(val* self, val* p0, val* p1))(var_mtype->class->vft[COLOR_nit__model__MType__anchor_to]))(var_mtype, var12, var_anchor); /* anchor_to on */ } -var_mtype = var16; +var_mtype = var15; } else { } { -var17 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__as_notnullable]))(var_mtype) /* as_notnullable on */; +var16 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__undecorate]))(var_mtype); /* undecorate on */ } -var_mtype = var17; +var_mtype = var16; /* isa MClassType */ cltype = type_nit__MClassType.color; idtype = type_nit__MClassType.id; if(cltype >= var_mtype->type->table_size) { -var18 = 0; +var17 = 0; } else { -var18 = var_mtype->type->type_table[cltype] == idtype; +var17 = var_mtype->type->type_table[cltype] == idtype; } -if (var18){ +if (var17){ { { /* Inline model#MClassType#mclass (var_mtype) on */ -var21 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var21 == NULL)) { +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); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } -var19 = var21; -RET_LABEL20:(void)0; +var18 = var20; +RET_LABEL19:(void)0; } } { -{ /* Inline model#MClass#intro (var19) on */ -var24 = var19->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ -if (unlikely(var24 == NULL)) { +{ /* Inline model#MClass#intro (var18) on */ +var23 = var18->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ +if (unlikely(var23 == 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); } -var22 = var24; -RET_LABEL23:(void)0; +var21 = var23; +RET_LABEL22:(void)0; } } { -{ /* Inline model#MClassDef#bound_mtype (var22) on */ -var27 = var22->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ -if (unlikely(var27 == NULL)) { +{ /* Inline model#MClassDef#bound_mtype (var21) on */ +var26 = var21->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var26 == 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); } -var25 = var27; -RET_LABEL26:(void)0; +var24 = var26; +RET_LABEL25:(void)0; } } -var_mtype = var25; +var_mtype = var24; } else { } { { /* Inline typing#CallSite#mproperty (var_callsite) on */ -var30 = var_callsite->attrs[COLOR_nit__typing__CallSite___mproperty].val; /* _mproperty on */ -if (unlikely(var30 == NULL)) { +var29 = var_callsite->attrs[COLOR_nit__typing__CallSite___mproperty].val; /* _mproperty on */ +if (unlikely(var29 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 487); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 624); +fatal_exit(1); } -var28 = var30; -RET_LABEL29:(void)0; +var27 = var29; +RET_LABEL28:(void)0; } } -var_mproperty = var28; +var_mproperty = var27; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_targets_cache (self) on */ -var33 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_targets_cache].val; /* _live_targets_cache on */ -if (unlikely(var33 == NULL)) { +var32 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_targets_cache].val; /* _live_targets_cache on */ +if (unlikely(var32 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 81); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 88); +fatal_exit(1); } -var31 = var33; -RET_LABEL32:(void)0; +var30 = var32; +RET_LABEL31:(void)0; } } { -var34 = more_collections___more_collections__HashMap2____91d_93d(var31, var_mtype, var_mproperty); +var33 = more_collections___more_collections__HashMap2____91d_93d(var30, var_mtype, var_mproperty); } -var_res = var34; -var35 = NULL; +var_res = var33; if (var_res == NULL) { -var36 = 0; /* is null */ +var34 = 0; /* is null */ } else { -var36 = 1; /* arg is null and recv is not */ +var34 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_res,var35) on */ -var_other = var35; +{ /* Inline kernel#Object#!= (var_res,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var39 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other) /* == on */; +var37 = ((short int(*)(val* self, val* p0))((((long)var_res&3)?class_info[((long)var_res&3)]:var_res->class)->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other); /* == on */ } -var40 = !var39; -var37 = var40; -goto RET_LABEL38; -RET_LABEL38:(void)0; +var38 = !var37; +var35 = var38; +goto RET_LABEL36; +RET_LABEL36:(void)0; } -var36 = var37; +var34 = var35; } -if (var36){ +if (var34){ var = var_res; goto RET_LABEL; } else { } -var41 = NEW_standard__ArraySet(&type_standard__ArraySet__nit__MMethodDef); +var39 = NEW_standard__ArraySet(&type_standard__ArraySet__nit__MMethodDef); { -standard___standard__ArraySet___standard__kernel__Object__init(var41); /* Direct call array#ArraySet#init on */ +standard___standard__ArraySet___standard__kernel__Object__init(var39); /* Direct call array#ArraySet#init on */ } -var_res = var41; +var_res = var39; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_targets_cache (self) on */ -var44 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_targets_cache].val; /* _live_targets_cache on */ -if (unlikely(var44 == NULL)) { +var42 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_targets_cache].val; /* _live_targets_cache on */ +if (unlikely(var42 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_targets_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 81); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 88); +fatal_exit(1); } -var42 = var44; -RET_LABEL43:(void)0; +var40 = var42; +RET_LABEL41:(void)0; } } { -more_collections___more_collections__HashMap2____91d_93d_61d(var42, var_mtype, var_mproperty, var_res); /* Direct call more_collections#HashMap2#[]= on */ +more_collections___more_collections__HashMap2____91d_93d_61d(var40, var_mtype, var_mproperty, var_res); /* Direct call more_collections#HashMap2#[]= on */ } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on */ -var47 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes].val; /* _live_classes on */ -if (unlikely(var47 == NULL)) { +var45 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes].val; /* _live_classes on */ +if (unlikely(var45 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 62); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 69); +fatal_exit(1); } -var45 = var47; -RET_LABEL46:(void)0; +var43 = var45; +RET_LABEL44:(void)0; } } -var_ = var45; +var_ = var43; { -var48 = standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_); +var46 = standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_); } -var_49 = var48; +var_47 = var46; for(;;) { { -var50 = ((short int (*)(val* self))(var_49->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_49) /* is_ok on */; +var48 = ((short int(*)(val* self))((((long)var_47&3)?class_info[((long)var_47&3)]:var_47->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_47); /* is_ok on */ } -if (var50){ +if (var48){ { -var51 = ((val* (*)(val* self))(var_49->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_49) /* item on */; +var49 = ((val*(*)(val* self))((((long)var_47&3)?class_info[((long)var_47&3)]:var_47->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_47); /* item on */ } -var_c = var51; +var_c = var49; { { /* Inline model#MClass#intro (var_c) on */ -var54 = var_c->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ -if (unlikely(var54 == NULL)) { +var52 = var_c->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ +if (unlikely(var52 == 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); } -var52 = var54; -RET_LABEL53:(void)0; +var50 = var52; +RET_LABEL51:(void)0; } } { -{ /* Inline model#MClassDef#bound_mtype (var52) on */ -var57 = var52->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ -if (unlikely(var57 == NULL)) { +{ /* Inline model#MClassDef#bound_mtype (var50) on */ +var55 = var50->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var55 == 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); } -var55 = var57; -RET_LABEL56:(void)0; +var53 = var55; +RET_LABEL54:(void)0; } } -var_tc = var55; +var_tc = var53; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on */ -var60 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ -if (unlikely(var60 == NULL)) { +var58 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var58 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var58 = var60; -RET_LABEL59:(void)0; +var56 = var58; +RET_LABEL57:(void)0; } } -var61 = NULL; { -var62 = nit___nit__MType___is_subtype(var_tc, var58, var61, var_mtype); +var59 = nit___nit__MType___is_subtype(var_tc, var56, ((val*)NULL), var_mtype); } -var63 = !var62; -if (var63){ +var60 = !var59; +if (var60){ goto BREAK_label; } else { } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on */ -var66 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ -if (unlikely(var66 == NULL)) { +var63 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var63 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var64 = var66; -RET_LABEL65:(void)0; +var61 = var63; +RET_LABEL62:(void)0; } } { -var67 = nit___nit__MProperty___lookup_first_definition(var_mproperty, var64, var_tc); +var64 = nit___nit__MProperty___lookup_first_definition(var_mproperty, var61, var_tc); } -var_d = var67; +var_d = var64; { standard___standard__ArraySet___standard__abstract_collection__SimpleCollection__add(var_res, var_d); /* Direct call array#ArraySet#add on */ } BREAK_label: (void)0; { -((void (*)(val* self))(var_49->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_49) /* next on */; +((void(*)(val* self))((((long)var_47&3)?class_info[((long)var_47&3)]:var_47->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_47); /* next on */ } } else { -goto BREAK_label68; +goto BREAK_label65; } } -BREAK_label68: (void)0; +BREAK_label65: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_49) on */ -RET_LABEL69:(void)0; -} +((void(*)(val* self))((((long)var_47&3)?class_info[((long)var_47&3)]:var_47->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_47); /* finish on */ } var = var_res; goto RET_LABEL; @@ -557,102 +685,807 @@ val* var1 /* : HashSet[MMethodDef] */; var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends].val; /* _live_super_sends on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 107); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 114); +fatal_exit(1); } var = var1; RET_LABEL:; return var; } -/* method rapid_type_analysis#RapidTypeAnalysis#totry_methods for (self: RapidTypeAnalysis): HashSet[MMethod] */ -val* nit___nit__RapidTypeAnalysis___totry_methods(val* self) { -val* var /* : HashSet[MMethod] */; -val* var1 /* : HashSet[MMethod] */; -var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods].val; /* _totry_methods on */ -if (unlikely(var1 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 162); -show_backtrace(1); +/* method rapid_type_analysis#RapidTypeAnalysis#live_types_to_csv for (self: RapidTypeAnalysis): CsvDocument */ +val* nit___nit__RapidTypeAnalysis___live_types_to_csv(val* self) { +val* var /* : CsvDocument */; +val* var1 /* : HashSet[MType] */; +val* var_typeset /* var typeset: HashSet[MType] */; +val* var2 /* : HashSet[MClassType] */; +val* var4 /* : HashSet[MClassType] */; +val* var5 /* : HashSet[MClassType] */; +val* var7 /* : HashSet[MClassType] */; +val* var8 /* : HashSet[MType] */; +val* var10 /* : HashSet[MType] */; +val* var11 /* : HashSet[MType] */; +val* var13 /* : HashSet[MType] */; +val* var14 /* : Array[nullable Object] */; +val* var_types /* var types: Array[MType] */; +val* var15 /* : CachedAlphaComparator */; +val* var17 /* : CsvDocument */; +val* var_res /* var res: CsvDocument */; +val* var19 /* : CsvFormat */; +static val* varonce; +val* var20 /* : String */; +char* var21 /* : NativeString */; +val* var22 /* : FlatString */; +val* var24 /* : Array[String] */; +val* var_ /* var : Array[String] */; +static val* varonce25; +val* var26 /* : String */; +char* var27 /* : NativeString */; +val* var28 /* : FlatString */; +static val* varonce29; +val* var30 /* : String */; +char* var31 /* : NativeString */; +val* var32 /* : FlatString */; +static val* varonce33; +val* var34 /* : String */; +char* var35 /* : NativeString */; +val* var36 /* : FlatString */; +static val* varonce37; +val* var38 /* : String */; +char* var39 /* : NativeString */; +val* var40 /* : FlatString */; +val* var_42 /* var : Array[MType] */; +val* var43 /* : ArrayIterator[nullable Object] */; +val* var_44 /* var : ArrayIterator[MType] */; +short int var45 /* : Bool */; +val* var46 /* : nullable Object */; +val* var_t /* var t: MType */; +short int var47 /* : Bool */; +static val* varonce48; +val* var49 /* : String */; +char* var50 /* : NativeString */; +val* var51 /* : FlatString */; +val* var_reso /* var reso: nullable Object */; +static val* varonce52; +val* var53 /* : String */; +char* var54 /* : NativeString */; +val* var55 /* : FlatString */; +short int var56 /* : Bool */; +short int var57 /* : Bool */; +int cltype; +int idtype; +short int var_58 /* var : Bool */; +short int var59 /* : Bool */; +val* var60 /* : HashSet[MClassType] */; +val* var62 /* : HashSet[MClassType] */; +short int var63 /* : Bool */; +short int var_64 /* var : Bool */; +val* var65 /* : HashSet[MClassType] */; +val* var67 /* : HashSet[MClassType] */; +short int var68 /* : Bool */; +static val* varonce69; +val* var70 /* : String */; +char* var71 /* : NativeString */; +val* var72 /* : FlatString */; +val* var_live /* var live: nullable Object */; +static val* varonce73; +val* var74 /* : String */; +char* var75 /* : NativeString */; +val* var76 /* : FlatString */; +short int var77 /* : Bool */; +val* var78 /* : HashSet[MType] */; +val* var80 /* : HashSet[MType] */; +short int var81 /* : Bool */; +short int var_82 /* var : Bool */; +val* var83 /* : HashSet[MType] */; +val* var85 /* : HashSet[MType] */; +short int var86 /* : Bool */; +static val* varonce87; +val* var88 /* : String */; +char* var89 /* : NativeString */; +val* var90 /* : FlatString */; +val* var_cast /* var cast: nullable Object */; +static val* varonce91; +val* var92 /* : String */; +char* var93 /* : NativeString */; +val* var94 /* : FlatString */; +val* var95 /* : Array[Object] */; +val* var96 /* : NativeArray[Object] */; +var1 = NEW_standard__HashSet(&type_standard__HashSet__nit__MType); +{ +standard___standard__HashSet___standard__kernel__Object__init(var1); /* Direct call hash_collection#HashSet#init on */ +} +var_typeset = var1; +{ +{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on */ +var4 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on */ +if (unlikely(var4 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 60); +fatal_exit(1); } -var = var1; -RET_LABEL:; -return var; +var2 = var4; +RET_LABEL3:(void)0; } -/* method rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove for (self: RapidTypeAnalysis): Array[MMethod] */ -val* nit___nit__RapidTypeAnalysis___totry_methods_to_remove(val* self) { -val* var /* : Array[MMethod] */; -val* var1 /* : Array[MMethod] */; -var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove].val; /* _totry_methods_to_remove on */ -if (unlikely(var1 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 165); -show_backtrace(1); } -var = var1; -RET_LABEL:; -return var; +{ +standard___standard__SimpleCollection___add_all(var_typeset, var2); /* Direct call abstract_collection#SimpleCollection#add_all on */ } -/* method rapid_type_analysis#RapidTypeAnalysis#try_methods for (self: RapidTypeAnalysis): HashSet[MMethod] */ -val* nit___nit__RapidTypeAnalysis___try_methods(val* self) { -val* var /* : HashSet[MMethod] */; -val* var1 /* : HashSet[MMethod] */; -var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___try_methods].val; /* _try_methods on */ -if (unlikely(var1 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_methods"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 168); -show_backtrace(1); +{ +{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on */ +var7 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_types].val; /* _live_open_types on */ +if (unlikely(var7 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 65); +fatal_exit(1); } -var = var1; -RET_LABEL:; -return var; +var5 = var7; +RET_LABEL6:(void)0; } -/* method rapid_type_analysis#RapidTypeAnalysis#todo for (self: RapidTypeAnalysis): List[MMethodDef] */ -val* nit___nit__RapidTypeAnalysis___todo(val* self) { -val* var /* : List[MMethodDef] */; -val* var1 /* : List[MMethodDef] */; -var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___todo].val; /* _todo on */ -if (unlikely(var1 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 172); -show_backtrace(1); } -var = var1; -RET_LABEL:; -return var; +{ +standard___standard__SimpleCollection___add_all(var_typeset, var5); /* Direct call abstract_collection#SimpleCollection#add_all on */ } -/* method rapid_type_analysis#RapidTypeAnalysis#force_alive for (self: RapidTypeAnalysis, String) */ -void nit___nit__RapidTypeAnalysis___force_alive(val* self, val* p0) { -val* var_classname /* var classname: String */; -val* var /* : ModelBuilder */; -val* var2 /* : ModelBuilder */; -val* var3 /* : Model */; -val* var5 /* : Model */; -val* var6 /* : nullable Array[MClass] */; -val* var_classes /* var classes: nullable Array[MClass] */; -val* var7 /* : null */; -short int var8 /* : Bool */; -short int var9 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var11 /* : Bool */; -short int var12 /* : Bool */; -val* var_ /* var : Array[MClass] */; -val* var13 /* : ArrayIterator[nullable Object] */; -val* var_14 /* var : ArrayIterator[MClass] */; -short int var15 /* : Bool */; -val* var16 /* : nullable Object */; -val* var_c /* var c: MClass */; -val* var17 /* : MClassType */; +{ +{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (self) on */ +var10 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_cast_types].val; /* _live_cast_types on */ +if (unlikely(var10 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 72); +fatal_exit(1); +} +var8 = var10; +RET_LABEL9:(void)0; +} +} +{ +standard___standard__SimpleCollection___add_all(var_typeset, var8); /* Direct call abstract_collection#SimpleCollection#add_all on */ +} +{ +{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types (self) on */ +var13 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types].val; /* _live_open_cast_types on */ +if (unlikely(var13 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 75); +fatal_exit(1); +} +var11 = var13; +RET_LABEL12:(void)0; +} +} +{ +standard___standard__SimpleCollection___add_all(var_typeset, var11); /* Direct call abstract_collection#SimpleCollection#add_all on */ +} +{ +var14 = standard__array___Collection___to_a(var_typeset); +} +var_types = var14; +var15 = NEW_standard__CachedAlphaComparator(&type_standard__CachedAlphaComparator); +{ +{ /* Inline kernel#Object#init (var15) on */ +RET_LABEL16:(void)0; +} +} +{ +standard___standard__Comparator___sort(var15, var_types); /* Direct call sorter#Comparator#sort on */ +} +var17 = NEW_csv__CsvDocument(&type_csv__CsvDocument); +{ +{ /* Inline kernel#Object#init (var17) on */ +RET_LABEL18:(void)0; +} +} +var_res = var17; +var19 = NEW_csv__CsvFormat(&type_csv__CsvFormat); +if (likely(varonce!=NULL)) { +var20 = varonce; +} else { +var21 = "\n"; +var22 = standard___standard__NativeString___to_s_with_length(var21, 1l); +var20 = var22; +varonce = var20; +} +{ +((void(*)(val* self, uint32_t p0))(var19->class->vft[COLOR_csv__CsvFormat__delimiter_61d]))(var19, '\"'); /* delimiter= on */ +} +{ +((void(*)(val* self, uint32_t p0))(var19->class->vft[COLOR_csv__CsvFormat__separator_61d]))(var19, ';'); /* separator= on */ +} +{ +((void(*)(val* self, val* p0))(var19->class->vft[COLOR_csv__CsvFormat__eol_61d]))(var19, var20); /* eol= on */ +} +{ +((void(*)(val* self))(var19->class->vft[COLOR_standard__kernel__Object__init]))(var19); /* init on */ +} +{ +{ /* Inline csv#CsvDocument#format= (var_res,var19) on */ +var_res->attrs[COLOR_csv__CsvDocument___format].val = var19; /* _format on */ +RET_LABEL23:(void)0; +} +} +var24 = NEW_standard__Array(&type_standard__Array__standard__String); +{ +standard___standard__Array___with_capacity(var24, 4l); /* Direct call array#Array#with_capacity on */ +} +var_ = var24; +if (likely(varonce25!=NULL)) { +var26 = varonce25; +} else { +var27 = "Type"; +var28 = standard___standard__NativeString___to_s_with_length(var27, 4l); +var26 = var28; +varonce25 = var26; +} +{ +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var26); /* Direct call array#AbstractArray#push on */ +} +if (likely(varonce29!=NULL)) { +var30 = varonce29; +} else { +var31 = "Resolution"; +var32 = standard___standard__NativeString___to_s_with_length(var31, 10l); +var30 = var32; +varonce29 = var30; +} +{ +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var30); /* Direct call array#AbstractArray#push on */ +} +if (likely(varonce33!=NULL)) { +var34 = varonce33; +} else { +var35 = "Liveness"; +var36 = standard___standard__NativeString___to_s_with_length(var35, 8l); +var34 = var36; +varonce33 = var34; +} +{ +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var34); /* Direct call array#AbstractArray#push on */ +} +if (likely(varonce37!=NULL)) { +var38 = varonce37; +} else { +var39 = "Cast-liveness"; +var40 = standard___standard__NativeString___to_s_with_length(var39, 13l); +var38 = var40; +varonce37 = var38; +} +{ +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var38); /* Direct call array#AbstractArray#push on */ +} +{ +{ /* Inline csv#CsvDocument#header= (var_res,var_) on */ +var_res->attrs[COLOR_csv__CsvDocument___header].val = var_; /* _header on */ +RET_LABEL41:(void)0; +} +} +var_42 = var_types; +{ +var43 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_42); +} +var_44 = var43; +for(;;) { +{ +var45 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_44); +} +if (var45){ +{ +var46 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_44); +} +var_t = var46; +{ +var47 = ((short int(*)(val* self))(var_t->class->vft[COLOR_nit__model__MType__need_anchor]))(var_t); /* need_anchor on */ +} +if (var47){ +if (likely(varonce48!=NULL)) { +var49 = varonce48; +} else { +var50 = "OPEN "; +var51 = standard___standard__NativeString___to_s_with_length(var50, 5l); +var49 = var51; +varonce48 = var49; +} +var_reso = var49; +} else { +if (likely(varonce52!=NULL)) { +var53 = varonce52; +} else { +var54 = "CLOSED"; +var55 = standard___standard__NativeString___to_s_with_length(var54, 6l); +var53 = var55; +varonce52 = var53; +} +var_reso = var53; +} +/* isa MClassType */ +cltype = type_nit__MClassType.color; +idtype = type_nit__MClassType.id; +if(cltype >= var_t->type->table_size) { +var57 = 0; +} else { +var57 = var_t->type->type_table[cltype] == idtype; +} +var_58 = var57; +if (var57){ +{ +{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on */ +var62 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on */ +if (unlikely(var62 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 60); +fatal_exit(1); +} +var60 = var62; +RET_LABEL61:(void)0; +} +} +{ +var63 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var60, var_t); +} +var_64 = var63; +if (var63){ +var59 = var_64; +} else { +{ +{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on */ +var67 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_types].val; /* _live_open_types on */ +if (unlikely(var67 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 65); +fatal_exit(1); +} +var65 = var67; +RET_LABEL66:(void)0; +} +} +{ +var68 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var65, var_t); +} +var59 = var68; +} +var56 = var59; +} else { +var56 = var_58; +} +if (var56){ +if (likely(varonce69!=NULL)) { +var70 = varonce69; +} else { +var71 = "LIVE"; +var72 = standard___standard__NativeString___to_s_with_length(var71, 4l); +var70 = var72; +varonce69 = var70; +} +var_live = var70; +} else { +if (likely(varonce73!=NULL)) { +var74 = varonce73; +} else { +var75 = "DEAD"; +var76 = standard___standard__NativeString___to_s_with_length(var75, 4l); +var74 = var76; +varonce73 = var74; +} +var_live = var74; +} +{ +{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (self) on */ +var80 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_cast_types].val; /* _live_cast_types on */ +if (unlikely(var80 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 72); +fatal_exit(1); +} +var78 = var80; +RET_LABEL79:(void)0; +} +} +{ +var81 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var78, var_t); +} +var_82 = var81; +if (var81){ +var77 = var_82; +} else { +{ +{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types (self) on */ +var85 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types].val; /* _live_open_cast_types on */ +if (unlikely(var85 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 75); +fatal_exit(1); +} +var83 = var85; +RET_LABEL84:(void)0; +} +} +{ +var86 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var83, var_t); +} +var77 = var86; +} +if (var77){ +if (likely(varonce87!=NULL)) { +var88 = varonce87; +} else { +var89 = "CAST LIVE"; +var90 = standard___standard__NativeString___to_s_with_length(var89, 9l); +var88 = var90; +varonce87 = var88; +} +var_cast = var88; +} else { +if (likely(varonce91!=NULL)) { +var92 = varonce91; +} else { +var93 = "CAST DEAD"; +var94 = standard___standard__NativeString___to_s_with_length(var93, 9l); +var92 = var94; +varonce91 = var92; +} +var_cast = var92; +} +var95 = NEW_standard__Array(&type_standard__Array__standard__Object); +{ /* var95 = array_instance Array[Object] */ +var96 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__Object); +((struct instance_standard__NativeArray*)var96)->values[0] = (val*) var_t; +((struct instance_standard__NativeArray*)var96)->values[1] = (val*) var_reso; +((struct instance_standard__NativeArray*)var96)->values[2] = (val*) var_live; +((struct instance_standard__NativeArray*)var96)->values[3] = (val*) var_cast; +{ +((void(*)(val* self, val* p0, long p1))(var95->class->vft[COLOR_standard__array__Array__with_native]))(var95, var96, 4l); /* with_native on */ +} +} +{ +csv___csv__CsvDocument___add_record(var_res, var95); /* Direct call csv#CsvDocument#add_record on */ +} +{ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_44); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label; +} +} +BREAK_label: (void)0; +{ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_44); /* Direct call array#ArrayIterator#finish on */ +} +var = var_res; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method rapid_type_analysis#RapidTypeAnalysis#live_methods_to_tree for (self: RapidTypeAnalysis): OrderedTree[Object] */ +val* nit___nit__RapidTypeAnalysis___live_methods_to_tree(val* self) { +val* var /* : OrderedTree[Object] */; +val* var1 /* : OrderedTree[Object] */; +val* var_tree /* var tree: OrderedTree[Object] */; +val* var3 /* : HashSet[MMethod] */; +val* var5 /* : HashSet[MMethod] */; +val* var_ /* var : HashSet[MMethod] */; +val* var6 /* : Iterator[nullable Object] */; +val* var_7 /* var : Iterator[MMethod] */; +short int var8 /* : Bool */; +val* var9 /* : nullable Object */; +val* var_x /* var x: MMethod */; +val* var10 /* : String */; +val* var_xn /* var xn: String */; +val* var11 /* : Array[MPropDef] */; +val* var13 /* : Array[MPropDef] */; +val* var_14 /* var : Array[MMethodDef] */; +val* var15 /* : ArrayIterator[nullable Object] */; +val* var_16 /* var : ArrayIterator[MMethodDef] */; +short int var17 /* : Bool */; +val* var18 /* : nullable Object */; +val* var_z /* var z: MMethodDef */; +val* var19 /* : String */; +val* var21 /* : String */; +val* var_zn /* var zn: String */; +val* var22 /* : HashSet[MMethodDef] */; +val* var24 /* : HashSet[MMethodDef] */; +short int var25 /* : Bool */; +val* var26 /* : HashSet[MMethodDef] */; +val* var28 /* : HashSet[MMethodDef] */; +short int var29 /* : Bool */; +static val* varonce; +val* var30 /* : String */; +char* var31 /* : NativeString */; +val* var32 /* : FlatString */; +val* var33 /* : String */; +val* var34 /* : HashSet[MMethodDef] */; +val* var36 /* : HashSet[MMethodDef] */; +short int var37 /* : Bool */; +static val* varonce38; +val* var39 /* : String */; +char* var40 /* : NativeString */; +val* var41 /* : FlatString */; +val* var42 /* : String */; +val* var44 /* : Sys */; +val* var45 /* : Comparator */; +var1 = NEW_ordered_tree__OrderedTree(&type_ordered_tree__OrderedTree__standard__Object); +{ +{ /* Inline kernel#Object#init (var1) on */ +RET_LABEL2:(void)0; +} +} +var_tree = var1; +{ +{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methods (self) on */ +var5 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methods].val; /* _live_methods on */ +if (unlikely(var5 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 82); +fatal_exit(1); +} +var3 = var5; +RET_LABEL4:(void)0; +} +} +var_ = var3; +{ +var6 = standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_); +} +var_7 = var6; +for(;;) { +{ +var8 = ((short int(*)(val* self))((((long)var_7&3)?class_info[((long)var_7&3)]:var_7->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_7); /* is_ok on */ +} +if (var8){ +{ +var9 = ((val*(*)(val* self))((((long)var_7&3)?class_info[((long)var_7&3)]:var_7->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_7); /* item on */ +} +var_x = var9; +{ +var10 = nit___nit__MProperty___nit__model_base__MEntity__full_name(var_x); +} +var_xn = var10; +{ +ordered_tree___ordered_tree__OrderedTree___add(var_tree, ((val*)NULL), var_xn); /* Direct call ordered_tree#OrderedTree#add on */ +} +{ +{ /* Inline model#MProperty#mpropdefs (var_x) on */ +var13 = var_x->attrs[COLOR_nit__model__MProperty___mpropdefs].val; /* _mpropdefs on */ +if (unlikely(var13 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1963); +fatal_exit(1); +} +var11 = var13; +RET_LABEL12:(void)0; +} +} +var_14 = var11; +{ +var15 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_14); +} +var_16 = var15; +for(;;) { +{ +var17 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_16); +} +if (var17){ +{ +var18 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_16); +} +var_z = var18; +{ +{ /* Inline model#MPropDef#to_s (var_z) on */ +var21 = var_z->attrs[COLOR_nit__model__MPropDef___to_s].val; /* _to_s on */ +if (unlikely(var21 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2303); +fatal_exit(1); +} +var19 = var21; +RET_LABEL20:(void)0; +} +} +var_zn = var19; +{ +{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (self) on */ +var24 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs].val; /* _live_methoddefs on */ +if (unlikely(var24 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 79); +fatal_exit(1); +} +var22 = var24; +RET_LABEL23:(void)0; +} +} +{ +var25 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var22, var_z); +} +if (var25){ +{ +ordered_tree___ordered_tree__OrderedTree___add(var_tree, var_xn, var_zn); /* Direct call ordered_tree#OrderedTree#add on */ +} +{ +{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on */ +var28 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends].val; /* _live_super_sends on */ +if (unlikely(var28 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 114); +fatal_exit(1); +} +var26 = var28; +RET_LABEL27:(void)0; +} +} +{ +var29 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var26, var_z); +} +if (var29){ +if (likely(varonce!=NULL)) { +var30 = varonce; +} else { +var31 = "(super)"; +var32 = standard___standard__NativeString___to_s_with_length(var31, 7l); +var30 = var32; +varonce = var30; +} +{ +var33 = ((val*(*)(val* self, val* p0))(var_zn->class->vft[COLOR_standard__string__String___43d]))(var_zn, var30); /* + on */ +} +{ +ordered_tree___ordered_tree__OrderedTree___add(var_tree, var_zn, var33); /* Direct call ordered_tree#OrderedTree#add on */ +} +} else { +} +} else { +{ +{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on */ +var36 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends].val; /* _live_super_sends on */ +if (unlikely(var36 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 114); +fatal_exit(1); +} +var34 = var36; +RET_LABEL35:(void)0; +} +} +{ +var37 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var34, var_z); +} +if (var37){ +if (likely(varonce38!=NULL)) { +var39 = varonce38; +} else { +var40 = "(super)"; +var41 = standard___standard__NativeString___to_s_with_length(var40, 7l); +var39 = var41; +varonce38 = var39; +} +{ +var42 = ((val*(*)(val* self, val* p0))(var_zn->class->vft[COLOR_standard__string__String___43d]))(var_zn, var39); /* + on */ +} +{ +ordered_tree___ordered_tree__OrderedTree___add(var_tree, var_xn, var42); /* Direct call ordered_tree#OrderedTree#add on */ +} +} else { +} +} +{ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_16); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label; +} +} +BREAK_label: (void)0; +{ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_16); /* Direct call array#ArrayIterator#finish on */ +} +{ +((void(*)(val* self))((((long)var_7&3)?class_info[((long)var_7&3)]:var_7->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_7); /* next on */ +} +} else { +goto BREAK_label43; +} +} +BREAK_label43: (void)0; +{ +((void(*)(val* self))((((long)var_7&3)?class_info[((long)var_7&3)]:var_7->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_7); /* finish on */ +} +var44 = glob_sys; +{ +var45 = standard__string___Sys___alpha_comparator(var44); +} +{ +ordered_tree___ordered_tree__OrderedTree___sort_with(var_tree, var45); /* Direct call ordered_tree#OrderedTree#sort_with on */ +} +var = var_tree; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method rapid_type_analysis#RapidTypeAnalysis#totry_methods for (self: RapidTypeAnalysis): HashSet[MMethod] */ +val* nit___nit__RapidTypeAnalysis___totry_methods(val* self) { +val* var /* : HashSet[MMethod] */; +val* var1 /* : HashSet[MMethod] */; +var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods].val; /* _totry_methods on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 169); +fatal_exit(1); +} +var = var1; +RET_LABEL:; +return var; +} +/* method rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove for (self: RapidTypeAnalysis): Array[MMethod] */ +val* nit___nit__RapidTypeAnalysis___totry_methods_to_remove(val* self) { +val* var /* : Array[MMethod] */; +val* var1 /* : Array[MMethod] */; +var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove].val; /* _totry_methods_to_remove on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 172); +fatal_exit(1); +} +var = var1; +RET_LABEL:; +return var; +} +/* method rapid_type_analysis#RapidTypeAnalysis#try_methods for (self: RapidTypeAnalysis): HashSet[MMethod] */ +val* nit___nit__RapidTypeAnalysis___try_methods(val* self) { +val* var /* : HashSet[MMethod] */; +val* var1 /* : HashSet[MMethod] */; +var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___try_methods].val; /* _try_methods on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_methods"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 175); +fatal_exit(1); +} +var = var1; +RET_LABEL:; +return var; +} +/* method rapid_type_analysis#RapidTypeAnalysis#todo for (self: RapidTypeAnalysis): List[MMethodDef] */ +val* nit___nit__RapidTypeAnalysis___todo(val* self) { +val* var /* : List[MMethodDef] */; +val* var1 /* : List[MMethodDef] */; +var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___todo].val; /* _todo on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 179); +fatal_exit(1); +} +var = var1; +RET_LABEL:; +return var; +} +/* method rapid_type_analysis#RapidTypeAnalysis#force_alive for (self: RapidTypeAnalysis, String) */ +void nit___nit__RapidTypeAnalysis___force_alive(val* self, val* p0) { +val* var_classname /* var classname: String */; +val* var /* : ModelBuilder */; +val* var2 /* : ModelBuilder */; +val* var3 /* : Model */; +val* var5 /* : Model */; +val* var6 /* : nullable Array[MClass] */; +val* var_classes /* var classes: nullable Array[MClass] */; +short int var7 /* : Bool */; +short int var8 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var10 /* : Bool */; +short int var11 /* : Bool */; +val* var_ /* var : Array[MClass] */; +val* var12 /* : ArrayIterator[nullable Object] */; +val* var_13 /* var : ArrayIterator[MClass] */; +short int var14 /* : Bool */; +val* var15 /* : nullable Object */; +val* var_c /* var c: MClass */; +val* var16 /* : MClassType */; +val* var18 /* : MClassType */; val* var19 /* : MClassType */; -val* var20 /* : MClassType */; -val* var22 /* : MClassType */; +val* var21 /* : MClassType */; var_classname = p0; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on */ var2 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder].val; /* _modelbuilder on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 46); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 53); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; @@ -664,7 +1497,7 @@ var5 = var->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___model].val; /* _m if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 44); -show_backtrace(1); +fatal_exit(1); } var3 = var5; RET_LABEL4:(void)0; @@ -674,69 +1507,68 @@ RET_LABEL4:(void)0; var6 = nit__model___Model___get_mclasses_by_name(var3, var_classname); } var_classes = var6; -var7 = NULL; if (var_classes == NULL) { -var8 = 0; /* is null */ +var7 = 0; /* is null */ } else { -var8 = 1; /* arg is null and recv is not */ +var7 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_classes,var7) on */ -var_other = var7; +{ /* Inline kernel#Object#!= (var_classes,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var11 = ((short int (*)(val* self, val* p0))(var_classes->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_classes, var_other) /* == on */; +var10 = ((short int(*)(val* self, val* p0))(var_classes->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_classes, var_other); /* == on */ } -var12 = !var11; -var9 = var12; -goto RET_LABEL10; -RET_LABEL10:(void)0; +var11 = !var10; +var8 = var11; +goto RET_LABEL9; +RET_LABEL9:(void)0; } -var8 = var9; +var7 = var8; } -if (var8){ +if (var7){ var_ = var_classes; { -var13 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); +var12 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); } -var_14 = var13; +var_13 = var12; for(;;) { { -var15 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_14); +var14 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_13); } -if (var15){ +if (var14){ { -var16 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_14); +var15 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_13); } -var_c = var16; +var_c = var15; { { /* Inline model#MClass#mclass_type (var_c) on */ -var19 = var_c->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var19 == NULL)) { +var18 = var_c->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var18 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); } -var17 = var19; -RET_LABEL18:(void)0; +var16 = var18; +RET_LABEL17:(void)0; } } { { /* Inline model#MClass#mclass_type (var_c) on */ -var22 = var_c->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var22 == NULL)) { +var21 = var_c->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var21 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); } -var20 = var22; -RET_LABEL21:(void)0; +var19 = var21; +RET_LABEL20:(void)0; } } { -nit___nit__RapidTypeAnalysis___add_new(self, var17, var20); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_new on */ +nit___nit__RapidTypeAnalysis___add_new(self, var16, var19); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_new on */ } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_14); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_13); /* Direct call array#ArrayIterator#next on */ } } else { goto BREAK_label; @@ -744,9 +1576,7 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_14) on */ -RET_LABEL23:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_13); /* Direct call array#ArrayIterator#finish on */ } } else { } @@ -758,385 +1588,350 @@ val* var /* : MModule */; val* var2 /* : MModule */; val* var3 /* : nullable MClassType */; val* var_maintype /* var maintype: nullable MClassType */; -val* var4 /* : null */; +short int var4 /* : Bool */; short int var5 /* : Bool */; -short int var6 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var8 /* : Bool */; -short int var10 /* : Bool */; -val* var11 /* : MModule */; -val* var13 /* : MModule */; +short int var7 /* : Bool */; +short int var9 /* : Bool */; +val* var10 /* : MModule */; +val* var12 /* : MModule */; static val* varonce; -val* var14 /* : String */; -char* var15 /* : NativeString */; -long var16 /* : Int */; -val* var17 /* : FlatString */; +val* var13 /* : String */; +char* var14 /* : NativeString */; +val* var15 /* : FlatString */; +val* var16 /* : MClass */; val* var18 /* : MClass */; -val* var20 /* : MClass */; -val* var21 /* : nullable MMethod */; +val* var19 /* : nullable MMethod */; val* var_initprop /* var initprop: nullable MMethod */; -val* var22 /* : null */; -short int var23 /* : Bool */; +short int var20 /* : Bool */; +short int var21 /* : Bool */; +val* var_other23 /* var other: nullable Object */; short int var24 /* : Bool */; -val* var_other26 /* var other: nullable Object */; -short int var27 /* : Bool */; -short int var28 /* : Bool */; -val* var29 /* : nullable MMethod */; -val* var30 /* : MModule */; -val* var32 /* : MModule */; -static val* varonce33; -val* var34 /* : String */; -char* var35 /* : NativeString */; -long var36 /* : Int */; -val* var37 /* : FlatString */; -val* var38 /* : MClass */; -val* var40 /* : MClass */; -val* var41 /* : nullable MMethod */; -val* var42 /* : MModule */; -val* var44 /* : MModule */; -static val* varonce45; -val* var46 /* : String */; -char* var47 /* : NativeString */; -long var48 /* : Int */; -val* var49 /* : FlatString */; -val* var50 /* : MClass */; -val* var52 /* : MClass */; -val* var53 /* : nullable MMethod */; +short int var25 /* : Bool */; +val* var26 /* : nullable MMethod */; +val* var27 /* : MModule */; +val* var29 /* : MModule */; +static val* varonce30; +val* var31 /* : String */; +char* var32 /* : NativeString */; +val* var33 /* : FlatString */; +val* var34 /* : MClass */; +val* var36 /* : MClass */; +val* var37 /* : nullable MMethod */; +val* var38 /* : MModule */; +val* var40 /* : MModule */; +static val* varonce41; +val* var42 /* : String */; +char* var43 /* : NativeString */; +val* var44 /* : FlatString */; +val* var45 /* : MClass */; +val* var47 /* : MClass */; +val* var48 /* : nullable MMethod */; val* var_mainprop /* var mainprop: nullable MMethod */; -val* var54 /* : null */; -short int var55 /* : Bool */; -short int var56 /* : Bool */; +short int var49 /* : Bool */; +short int var50 /* : Bool */; +short int var52 /* : Bool */; +short int var53 /* : Bool */; +val* var54 /* : MModule */; +val* var56 /* : MModule */; +val* var57 /* : nullable MClassType */; +val* var_finalizable_type /* var finalizable_type: nullable MClassType */; short int var58 /* : Bool */; short int var59 /* : Bool */; -val* var60 /* : MModule */; -val* var62 /* : MModule */; -val* var63 /* : nullable MClassType */; -val* var_finalizable_type /* var finalizable_type: nullable MClassType */; -val* var64 /* : null */; -short int var65 /* : Bool */; -short int var66 /* : Bool */; -short int var68 /* : Bool */; -short int var69 /* : Bool */; -val* var70 /* : MModule */; -val* var72 /* : MModule */; -static val* varonce73; -val* var74 /* : String */; -char* var75 /* : NativeString */; -long var76 /* : Int */; -val* var77 /* : FlatString */; -val* var78 /* : MClass */; -val* var80 /* : MClass */; -val* var81 /* : nullable MMethod */; +short int var61 /* : Bool */; +short int var62 /* : Bool */; +val* var63 /* : MModule */; +val* var65 /* : MModule */; +static val* varonce66; +val* var67 /* : String */; +char* var68 /* : NativeString */; +val* var69 /* : FlatString */; +val* var70 /* : MClass */; +val* var72 /* : MClass */; +val* var73 /* : nullable MMethod */; val* var_finalize_meth /* var finalize_meth: nullable MMethod */; -val* var82 /* : null */; -short int var83 /* : Bool */; -short int var84 /* : Bool */; -short int var86 /* : Bool */; -short int var87 /* : Bool */; -static val* varonce88; -val* var89 /* : String */; -char* var90 /* : NativeString */; -long var91 /* : Int */; -val* var92 /* : FlatString */; -static val* varonce93; -val* var94 /* : String */; -char* var95 /* : NativeString */; -long var96 /* : Int */; -val* var97 /* : FlatString */; -static val* varonce98; -val* var99 /* : String */; -char* var100 /* : NativeString */; -long var101 /* : Int */; +short int var74 /* : Bool */; +short int var75 /* : Bool */; +short int var77 /* : Bool */; +short int var78 /* : Bool */; +static val* varonce79; +val* var80 /* : String */; +char* var81 /* : NativeString */; +val* var82 /* : FlatString */; +static val* varonce83; +val* var84 /* : String */; +char* var85 /* : NativeString */; +val* var86 /* : FlatString */; +static val* varonce87; +val* var88 /* : String */; +char* var89 /* : NativeString */; +val* var90 /* : FlatString */; +static val* varonce91; +val* var92 /* : String */; +char* var93 /* : NativeString */; +val* var94 /* : FlatString */; +static val* varonce95; +val* var96 /* : String */; +char* var97 /* : NativeString */; +val* var98 /* : FlatString */; +static val* varonce99; +val* var100 /* : String */; +char* var101 /* : NativeString */; val* var102 /* : FlatString */; -static val* varonce103; -val* var104 /* : String */; -char* var105 /* : NativeString */; -long var106 /* : Int */; -val* var107 /* : FlatString */; -static val* varonce108; -val* var109 /* : String */; -char* var110 /* : NativeString */; -long var111 /* : Int */; -val* var112 /* : FlatString */; -val* var113 /* : List[MMethodDef] */; -val* var115 /* : List[MMethodDef] */; -short int var116 /* : Bool */; -short int var117 /* : Bool */; -val* var118 /* : List[MMethodDef] */; -val* var120 /* : List[MMethodDef] */; -val* var121 /* : nullable Object */; +val* var103 /* : List[MMethodDef] */; +val* var105 /* : List[MMethodDef] */; +short int var106 /* : Bool */; +short int var107 /* : Bool */; +val* var108 /* : List[MMethodDef] */; +val* var110 /* : List[MMethodDef] */; +val* var111 /* : nullable Object */; val* var_mmethoddef /* var mmethoddef: MMethodDef */; -val* var122 /* : MProperty */; -val* var124 /* : MProperty */; +val* var112 /* : MProperty */; +val* var114 /* : MProperty */; val* var_mmeth /* var mmeth: MMethod */; -val* var125 /* : RapidTypeVisitor */; -val* var126 /* : MClassDef */; -val* var128 /* : MClassDef */; -val* var129 /* : MClassType */; -val* var131 /* : MClassType */; +val* var115 /* : nullable MSignature */; +val* var117 /* : nullable MSignature */; +val* var_msignature /* var msignature: nullable MSignature */; +short int var118 /* : Bool */; +short int var119 /* : Bool */; +short int var121 /* : Bool */; +short int var123 /* : Bool */; +val* var124 /* : RapidTypeVisitor */; +val* var125 /* : MClassDef */; +val* var127 /* : MClassDef */; +val* var128 /* : MClassType */; +val* var130 /* : MClassType */; val* var_v /* var v: RapidTypeVisitor */; -val* var132 /* : nullable MSignature */; -val* var134 /* : nullable MSignature */; -long var135 /* : Int */; -long var137 /* : Int */; +long var131 /* : Int */; +long var133 /* : Int */; long var_vararg_rank /* var vararg_rank: Int */; -long var138 /* : Int */; -long var139 /* : Int */; -long var141 /* : Int */; -short int var142 /* : Bool */; -short int var144 /* : Bool */; +long var134 /* : Int */; +long var136 /* : Int */; +short int var137 /* : Bool */; +short int var139 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var145 /* : Bool */; -val* var146 /* : ModelBuilder */; -val* var148 /* : ModelBuilder */; -val* var149 /* : nullable ANode */; +short int var140 /* : Bool */; +val* var141 /* : ModelBuilder */; +val* var143 /* : ModelBuilder */; +val* var144 /* : nullable ANode */; val* var_node /* var node: nullable ANode */; -val* var150 /* : nullable MSignature */; -val* var152 /* : nullable MSignature */; -val* var153 /* : Array[MParameter] */; -val* var155 /* : Array[MParameter] */; -val* var156 /* : nullable Object */; -val* var157 /* : MType */; -val* var159 /* : MType */; +val* var145 /* : Array[MParameter] */; +val* var147 /* : Array[MParameter] */; +val* var148 /* : nullable Object */; +val* var149 /* : MType */; +val* var151 /* : MType */; val* var_elttype /* var elttype: MType */; -val* var160 /* : MModule */; -val* var162 /* : MModule */; +val* var152 /* : MModule */; +val* var154 /* : MModule */; +val* var155 /* : MClassType */; +val* var_vararg /* var vararg: MClassType */; +val* var156 /* : MModule */; +val* var158 /* : MModule */; +val* var159 /* : MClassType */; +val* var_native /* var native: MClassType */; +val* var160 /* : ModelBuilder */; +val* var162 /* : ModelBuilder */; static val* varonce163; val* var164 /* : String */; char* var165 /* : NativeString */; -long var166 /* : Int */; -val* var167 /* : FlatString */; -val* var168 /* : MClass */; -val* var169 /* : Array[MType] */; -long var170 /* : Int */; -val* var_ /* var : Array[MType] */; -val* var171 /* : MClassType */; -val* var_vararg /* var vararg: MClassType */; +val* var166 /* : FlatString */; +val* var167 /* : MClass */; +val* var169 /* : MClass */; +val* var170 /* : MModule */; val* var172 /* : MModule */; -val* var174 /* : MModule */; -static val* varonce175; -val* var176 /* : String */; -char* var177 /* : NativeString */; -long var178 /* : Int */; -val* var179 /* : FlatString */; -val* var180 /* : MClass */; -val* var181 /* : Array[MType] */; -long var182 /* : Int */; -val* var_183 /* var : Array[MType] */; -val* var184 /* : MClassType */; -val* var_native /* var native: MClassType */; -val* var185 /* : ModelBuilder */; -val* var187 /* : ModelBuilder */; -static val* varonce188; -val* var189 /* : String */; -char* var190 /* : NativeString */; -long var191 /* : Int */; -val* var192 /* : FlatString */; -val* var193 /* : MClass */; -val* var195 /* : MClass */; -val* var196 /* : MModule */; -val* var198 /* : MModule */; -val* var199 /* : MMethod */; -val* var200 /* : nullable MSignature */; -val* var202 /* : nullable MSignature */; +val* var173 /* : MMethod */; val* var_sig /* var sig: MSignature */; -val* var203 /* : MPropDef */; -val* var205 /* : MPropDef */; -val* var206 /* : nullable MSignature */; -val* var208 /* : nullable MSignature */; +val* var174 /* : MPropDef */; +val* var176 /* : MPropDef */; +val* var177 /* : nullable MSignature */; +val* var179 /* : nullable MSignature */; val* var_osig /* var osig: MSignature */; -long var209 /* : Int */; long var_i /* var i: Int */; -long var210 /* : Int */; -long var_211 /* var : Int */; -short int var212 /* : Bool */; -short int var214 /* : Bool */; -int cltype215; -int idtype216; -const char* var_class_name217; -short int var218 /* : Bool */; -val* var219 /* : Array[MParameter] */; -val* var221 /* : Array[MParameter] */; -val* var222 /* : nullable Object */; -val* var223 /* : MType */; -val* var225 /* : MType */; +long var180 /* : Int */; +long var_ /* var : Int */; +short int var181 /* : Bool */; +short int var183 /* : Bool */; +int cltype184; +int idtype185; +const char* var_class_name186; +short int var187 /* : Bool */; +val* var188 /* : Array[MParameter] */; +val* var190 /* : Array[MParameter] */; +val* var191 /* : nullable Object */; +val* var192 /* : MType */; +val* var194 /* : MType */; val* var_origtype /* var origtype: MType */; -short int var226 /* : Bool */; -short int var227 /* : Bool */; -val* var228 /* : Array[MParameter] */; -val* var230 /* : Array[MParameter] */; -val* var231 /* : nullable Object */; -val* var232 /* : MType */; -val* var234 /* : MType */; +short int var195 /* : Bool */; +short int var196 /* : Bool */; +val* var198 /* : Array[MParameter] */; +val* var200 /* : Array[MParameter] */; +val* var201 /* : nullable Object */; +val* var202 /* : MType */; +val* var204 /* : MType */; val* var_paramtype /* var paramtype: MType */; -long var235 /* : Int */; -long var236 /* : Int */; -val* var238 /* : ModelBuilder */; -val* var240 /* : ModelBuilder */; -val* var241 /* : nullable ANode */; +long var205 /* : Int */; +val* var207 /* : ModelBuilder */; +val* var209 /* : ModelBuilder */; +val* var210 /* : nullable ANode */; val* var_npropdef /* var npropdef: nullable ANode */; -short int var242 /* : Bool */; -int cltype243; -int idtype244; -val* var245 /* : nullable MMethodDef */; -val* var247 /* : nullable MMethodDef */; +short int var211 /* : Bool */; +int cltype212; +int idtype213; +val* var214 /* : nullable MMethodDef */; +val* var216 /* : nullable MMethodDef */; +short int var217 /* : Bool */; +short int var219 /* : Bool */; +short int var221 /* : Bool */; +short int var222 /* : Bool */; +val* var223 /* : MProperty */; +val* var225 /* : MProperty */; +short int var226 /* : Bool */; +short int var228 /* : Bool */; +short int var_229 /* var : Bool */; +short int var230 /* : Bool */; +short int var231 /* : Bool */; +val* var232 /* : MClassType */; +val* var234 /* : MClassType */; +val* var235 /* : nullable Object */; +val* var237 /* : nullable Object */; +short int var238 /* : Bool */; +short int var239 /* : Bool */; +val* var240 /* : nullable MType */; +val* var242 /* : nullable MType */; +short int var243 /* : Bool */; +int cltype244; +int idtype245; +const char* var_class_name246; +short int var247 /* : Bool */; short int var248 /* : Bool */; short int var250 /* : Bool */; short int var252 /* : Bool */; short int var253 /* : Bool */; -val* var254 /* : MProperty */; -val* var256 /* : MProperty */; -short int var257 /* : Bool */; +int cltype254; +int idtype255; +val* var256 /* : nullable Array[CallSite] */; +val* var258 /* : nullable Array[CallSite] */; +val* var_auto_super_inits /* var auto_super_inits: nullable Array[CallSite] */; short int var259 /* : Bool */; -short int var_260 /* var : Bool */; -short int var261 /* : Bool */; +short int var260 /* : Bool */; short int var262 /* : Bool */; -val* var263 /* : MClassType */; -val* var265 /* : MClassType */; -val* var267 /* : nullable Object */; -val* var269 /* : nullable Object */; -val* var270 /* : null */; -short int var271 /* : Bool */; +short int var263 /* : Bool */; +val* var_264 /* var : Array[CallSite] */; +val* var265 /* : ArrayIterator[nullable Object] */; +val* var_266 /* var : ArrayIterator[CallSite] */; +short int var267 /* : Bool */; +val* var268 /* : nullable Object */; +val* var_auto_super_init /* var auto_super_init: CallSite */; +short int var270 /* : Bool */; short int var272 /* : Bool */; -val* var273 /* : nullable MSignature */; -val* var275 /* : nullable MSignature */; -val* var276 /* : nullable MType */; -val* var278 /* : nullable MType */; +val* var273 /* : MClassType */; +val* var275 /* : MClassType */; +short int var276 /* : Bool */; +short int var277 /* : Bool */; short int var279 /* : Bool */; -int cltype280; -int idtype281; -const char* var_class_name282; -val* var283 /* : null */; -short int var284 /* : Bool */; -short int var285 /* : Bool */; +short int var_280 /* var : Bool */; +short int var281 /* : Bool */; +short int var283 /* : Bool */; +val* var284 /* : nullable MType */; +val* var286 /* : nullable MType */; +val* var_ret /* var ret: nullable MType */; short int var287 /* : Bool */; +short int var288 /* : Bool */; short int var289 /* : Bool */; short int var290 /* : Bool */; -int cltype291; -int idtype292; -val* var293 /* : nullable Array[CallSite] */; -val* var295 /* : nullable Array[CallSite] */; -val* var_auto_super_inits /* var auto_super_inits: nullable Array[CallSite] */; -val* var296 /* : null */; -short int var297 /* : Bool */; -short int var298 /* : Bool */; -short int var300 /* : Bool */; -short int var301 /* : Bool */; -val* var_302 /* var : Array[CallSite] */; -val* var303 /* : ArrayIterator[nullable Object] */; -val* var_304 /* var : ArrayIterator[CallSite] */; -short int var305 /* : Bool */; -val* var306 /* : nullable Object */; -val* var_auto_super_init /* var auto_super_init: CallSite */; -short int var309 /* : Bool */; +short int var291 /* : Bool */; +short int var293 /* : Bool */; +short int var294 /* : Bool */; +short int var_295 /* var : Bool */; +short int var296 /* : Bool */; +int cltype297; +int idtype298; +short int var_299 /* var : Bool */; +val* var300 /* : MClass */; +val* var302 /* : MClass */; +val* var303 /* : MClassKind */; +val* var305 /* : MClassKind */; +val* var306 /* : Sys */; +val* var307 /* : MClassKind */; +short int var308 /* : Bool */; +short int var310 /* : Bool */; short int var311 /* : Bool */; -val* var312 /* : MClassType */; -val* var314 /* : MClassType */; -short int var315 /* : Bool */; -short int var316 /* : Bool */; -short int var318 /* : Bool */; -short int var_319 /* var : Bool */; -short int var320 /* : Bool */; -short int var322 /* : Bool */; -val* var323 /* : nullable MSignature */; -val* var325 /* : nullable MSignature */; -val* var326 /* : nullable MType */; -val* var328 /* : nullable MType */; -val* var_ret /* var ret: nullable MType */; -short int var329 /* : Bool */; -short int var330 /* : Bool */; -short int var331 /* : Bool */; -val* var332 /* : null */; -short int var333 /* : Bool */; -short int var334 /* : Bool */; -short int var336 /* : Bool */; -short int var337 /* : Bool */; -short int var_338 /* var : Bool */; -short int var339 /* : Bool */; -int cltype340; -int idtype341; -short int var_342 /* var : Bool */; -val* var343 /* : MClass */; -val* var345 /* : MClass */; -val* var346 /* : MClassKind */; -val* var348 /* : MClassKind */; -val* var349 /* : MClassKind */; -short int var350 /* : Bool */; -short int var352 /* : Bool */; -short int var353 /* : Bool */; -short int var_354 /* var : Bool */; -val* var355 /* : MClass */; -val* var357 /* : MClass */; -val* var358 /* : MClassKind */; -val* var360 /* : MClassKind */; -val* var361 /* : MClassKind */; -short int var362 /* : Bool */; -short int var364 /* : Bool */; -short int var365 /* : Bool */; -val* var367 /* : List[MClassType] */; +short int var_312 /* var : Bool */; +val* var313 /* : MClass */; +val* var315 /* : MClass */; +val* var316 /* : MClassKind */; +val* var318 /* : MClassKind */; +val* var319 /* : Sys */; +val* var320 /* : MClassKind */; +short int var321 /* : Bool */; +short int var323 /* : Bool */; +short int var324 /* : Bool */; +val* var326 /* : List[MClassType] */; val* var_todo_types /* var todo_types: List[MClassType] */; -val* var369 /* : HashSet[MClassType] */; -val* var371 /* : HashSet[MClassType] */; -short int var372 /* : Bool */; -short int var373 /* : Bool */; -val* var374 /* : nullable Object */; +val* var328 /* : HashSet[MClassType] */; +val* var330 /* : HashSet[MClassType] */; +short int var331 /* : Bool */; +short int var332 /* : Bool */; +val* var333 /* : nullable Object */; val* var_t /* var t: MClassType */; -val* var375 /* : HashSet[MClassType] */; -val* var377 /* : HashSet[MClassType] */; -val* var_378 /* var : HashSet[MClassType] */; -val* var379 /* : Iterator[nullable Object] */; -val* var_380 /* var : Iterator[MClassType] */; -short int var381 /* : Bool */; -val* var382 /* : nullable Object */; +val* var334 /* : HashSet[MClassType] */; +val* var336 /* : HashSet[MClassType] */; +val* var_337 /* var : HashSet[MClassType] */; +val* var338 /* : Iterator[nullable Object] */; +val* var_339 /* var : Iterator[MClassType] */; +short int var340 /* : Bool */; +val* var341 /* : nullable Object */; val* var_ot /* var ot: MClassType */; +val* var342 /* : MModule */; +val* var344 /* : MModule */; +short int var345 /* : Bool */; +short int var346 /* : Bool */; +val* var348 /* : MModule */; +val* var350 /* : MModule */; +val* var351 /* : MClassType */; +val* var_rt /* var rt: MClassType */; +val* var352 /* : HashSet[MClassType] */; +val* var354 /* : HashSet[MClassType] */; +short int var355 /* : Bool */; +short int var356 /* : Bool */; +short int var357 /* : Bool */; +val* var358 /* : HashSet[MClassType] */; +val* var360 /* : HashSet[MClassType] */; +val* var363 /* : HashSet[MType] */; +val* var365 /* : HashSet[MType] */; +val* var_366 /* var : HashSet[MType] */; +val* var367 /* : Iterator[nullable Object] */; +val* var_368 /* var : Iterator[MType] */; +short int var369 /* : Bool */; +val* var370 /* : nullable Object */; +val* var_ot371 /* var ot: MType */; +val* var372 /* : HashSet[MClassType] */; +val* var374 /* : HashSet[MClassType] */; +val* var_375 /* var : HashSet[MClassType] */; +val* var376 /* : Iterator[nullable Object] */; +val* var_377 /* var : Iterator[MClassType] */; +short int var378 /* : Bool */; +val* var379 /* : nullable Object */; +val* var_t380 /* var t: MClassType */; +val* var381 /* : MModule */; val* var383 /* : MModule */; -val* var385 /* : MModule */; -short int var386 /* : Bool */; -short int var387 /* : Bool */; +short int var384 /* : Bool */; +short int var385 /* : Bool */; +val* var387 /* : MModule */; val* var389 /* : MModule */; -val* var391 /* : MModule */; -val* var392 /* : MClassType */; -val* var_rt /* var rt: MClassType */; -val* var393 /* : HashSet[MClassType] */; -val* var395 /* : HashSet[MClassType] */; -short int var396 /* : Bool */; -val* var397 /* : HashSet[MClassType] */; -val* var399 /* : HashSet[MClassType] */; -val* var403 /* : HashSet[MType] */; -val* var405 /* : HashSet[MType] */; -val* var_406 /* var : HashSet[MType] */; -val* var407 /* : Iterator[nullable Object] */; -val* var_408 /* var : Iterator[MType] */; -short int var409 /* : Bool */; -val* var410 /* : nullable Object */; -val* var_ot411 /* var ot: MType */; -val* var412 /* : HashSet[MClassType] */; -val* var414 /* : HashSet[MClassType] */; -val* var_415 /* var : HashSet[MClassType] */; -val* var416 /* : Iterator[nullable Object] */; -val* var_417 /* var : Iterator[MClassType] */; -short int var418 /* : Bool */; -val* var419 /* : nullable Object */; -val* var_t420 /* var t: MClassType */; -val* var421 /* : MModule */; -val* var423 /* : MModule */; -short int var424 /* : Bool */; -short int var425 /* : Bool */; -val* var427 /* : MModule */; -val* var429 /* : MModule */; -val* var430 /* : MType */; -val* var_rt431 /* var rt: MType */; -val* var432 /* : HashSet[MType] */; -val* var434 /* : HashSet[MType] */; +val* var390 /* : MType */; +val* var_rt391 /* var rt: MType */; +val* var392 /* : HashSet[MType] */; +val* var394 /* : HashSet[MType] */; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on */ var2 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; @@ -1146,30 +1941,29 @@ RET_LABEL1:(void)0; var3 = nit__model___MModule___sys_type(var); } var_maintype = var3; -var4 = NULL; if (var_maintype == NULL) { -var5 = 1; /* is null */ +var4 = 1; /* is null */ } else { -var5 = 0; /* arg is null but recv is not */ +var4 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_maintype,var4) on */ -var_other = var4; +{ /* Inline kernel#Object#== (var_maintype,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var_maintype,var_other) on */ -var10 = var_maintype == var_other; -var8 = var10; -goto RET_LABEL9; -RET_LABEL9:(void)0; +var9 = var_maintype == var_other; +var7 = var9; +goto RET_LABEL8; +RET_LABEL8:(void)0; } } -var6 = var8; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var5 = var7; +goto RET_LABEL6; +RET_LABEL6:(void)0; } -var5 = var6; +var4 = var5; } -if (var5){ +if (var4){ goto RET_LABEL; } else { } @@ -1178,61 +1972,59 @@ nit___nit__RapidTypeAnalysis___add_new(self, var_maintype, var_maintype); /* Dir } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on */ -var13 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ -if (unlikely(var13 == NULL)) { +var12 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var12 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var11 = var13; -RET_LABEL12:(void)0; +var10 = var12; +RET_LABEL11:(void)0; } } -if (varonce) { -var14 = varonce; +if (likely(varonce!=NULL)) { +var13 = varonce; } else { -var15 = "init"; -var16 = 4; -var17 = standard___standard__NativeString___to_s_with_length(var15, var16); -var14 = var17; -varonce = var14; +var14 = "init"; +var15 = standard___standard__NativeString___to_s_with_length(var14, 4l); +var13 = var15; +varonce = var13; } { { /* Inline model#MClassType#mclass (var_maintype) on */ -var20 = var_maintype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var20 == NULL)) { +var18 = var_maintype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var18 == 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); } -var18 = var20; -RET_LABEL19:(void)0; +var16 = var18; +RET_LABEL17:(void)0; } } { -var21 = nit__model___MModule___try_get_primitive_method(var11, var14, var18); +var19 = nit__model___MModule___try_get_primitive_method(var10, var13, var16); } -var_initprop = var21; -var22 = NULL; +var_initprop = var19; if (var_initprop == NULL) { -var23 = 0; /* is null */ +var20 = 0; /* is null */ } else { -var23 = 1; /* arg is null and recv is not */ +var20 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_initprop,var22) on */ -var_other26 = var22; +{ /* Inline kernel#Object#!= (var_initprop,((val*)NULL)) on */ +var_other23 = ((val*)NULL); { -var27 = ((short int (*)(val* self, val* p0))(var_initprop->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_initprop, var_other26) /* == on */; +var24 = ((short int(*)(val* self, val* p0))(var_initprop->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_initprop, var_other23); /* == on */ } -var28 = !var27; -var24 = var28; -goto RET_LABEL25; -RET_LABEL25:(void)0; +var25 = !var24; +var21 = var25; +goto RET_LABEL22; +RET_LABEL22:(void)0; } -var23 = var24; +var20 = var21; } -if (var23){ +if (var20){ { nit___nit__RapidTypeAnalysis___add_send(self, var_maintype, var_initprop); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on */ } @@ -1240,102 +2032,99 @@ nit___nit__RapidTypeAnalysis___add_send(self, var_maintype, var_initprop); /* Di } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on */ -var32 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ -if (unlikely(var32 == NULL)) { +var29 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var29 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var30 = var32; -RET_LABEL31:(void)0; +var27 = var29; +RET_LABEL28:(void)0; } } -if (varonce33) { -var34 = varonce33; +if (likely(varonce30!=NULL)) { +var31 = varonce30; } else { -var35 = "run"; -var36 = 3; -var37 = standard___standard__NativeString___to_s_with_length(var35, var36); -var34 = var37; -varonce33 = var34; +var32 = "run"; +var33 = standard___standard__NativeString___to_s_with_length(var32, 3l); +var31 = var33; +varonce30 = var31; } { { /* Inline model#MClassType#mclass (var_maintype) on */ -var40 = var_maintype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var40 == NULL)) { +var36 = var_maintype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var36 == 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); } -var38 = var40; -RET_LABEL39:(void)0; +var34 = var36; +RET_LABEL35:(void)0; } } { -var41 = nit__model___MModule___try_get_primitive_method(var30, var34, var38); +var37 = nit__model___MModule___try_get_primitive_method(var27, var31, var34); } -if (var41!=NULL) { -var29 = var41; +if (var37!=NULL) { +var26 = var37; } else { { { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on */ -var44 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ -if (unlikely(var44 == NULL)) { +var40 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var40 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var42 = var44; -RET_LABEL43:(void)0; +var38 = var40; +RET_LABEL39:(void)0; } } -if (varonce45) { -var46 = varonce45; +if (likely(varonce41!=NULL)) { +var42 = varonce41; } else { -var47 = "main"; -var48 = 4; -var49 = standard___standard__NativeString___to_s_with_length(var47, var48); -var46 = var49; -varonce45 = var46; +var43 = "main"; +var44 = standard___standard__NativeString___to_s_with_length(var43, 4l); +var42 = var44; +varonce41 = var42; } { { /* Inline model#MClassType#mclass (var_maintype) on */ -var52 = var_maintype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var52 == NULL)) { +var47 = var_maintype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var47 == 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); } -var50 = var52; -RET_LABEL51:(void)0; +var45 = var47; +RET_LABEL46:(void)0; } } { -var53 = nit__model___MModule___try_get_primitive_method(var42, var46, var50); +var48 = nit__model___MModule___try_get_primitive_method(var38, var42, var45); } -var29 = var53; +var26 = var48; } -var_mainprop = var29; -var54 = NULL; +var_mainprop = var26; if (var_mainprop == NULL) { -var55 = 0; /* is null */ +var49 = 0; /* is null */ } else { -var55 = 1; /* arg is null and recv is not */ +var49 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_mainprop,var54) on */ -var_other26 = var54; +{ /* Inline kernel#Object#!= (var_mainprop,((val*)NULL)) on */ +var_other23 = ((val*)NULL); { -var58 = ((short int (*)(val* self, val* p0))(var_mainprop->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mainprop, var_other26) /* == on */; +var52 = ((short int(*)(val* self, val* p0))(var_mainprop->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mainprop, var_other23); /* == on */ } -var59 = !var58; -var56 = var59; -goto RET_LABEL57; -RET_LABEL57:(void)0; +var53 = !var52; +var50 = var53; +goto RET_LABEL51; +RET_LABEL51:(void)0; } -var55 = var56; +var49 = var50; } -if (var55){ +if (var49){ { nit___nit__RapidTypeAnalysis___add_send(self, var_maintype, var_mainprop); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on */ } @@ -1343,97 +2132,94 @@ nit___nit__RapidTypeAnalysis___add_send(self, var_maintype, var_mainprop); /* Di } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on */ -var62 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ -if (unlikely(var62 == NULL)) { +var56 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var56 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var60 = var62; -RET_LABEL61:(void)0; +var54 = var56; +RET_LABEL55:(void)0; } } { -var63 = nit__model___MModule___finalizable_type(var60); +var57 = nit__model___MModule___finalizable_type(var54); } -var_finalizable_type = var63; -var64 = NULL; +var_finalizable_type = var57; if (var_finalizable_type == NULL) { -var65 = 0; /* is null */ +var58 = 0; /* is null */ } else { -var65 = 1; /* arg is null and recv is not */ +var58 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_finalizable_type,var64) on */ -var_other26 = var64; +{ /* Inline kernel#Object#!= (var_finalizable_type,((val*)NULL)) on */ +var_other23 = ((val*)NULL); { -var68 = ((short int (*)(val* self, val* p0))(var_finalizable_type->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_finalizable_type, var_other26) /* == on */; +var61 = ((short int(*)(val* self, val* p0))(var_finalizable_type->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_finalizable_type, var_other23); /* == on */ } -var69 = !var68; -var66 = var69; -goto RET_LABEL67; -RET_LABEL67:(void)0; +var62 = !var61; +var59 = var62; +goto RET_LABEL60; +RET_LABEL60:(void)0; } -var65 = var66; +var58 = var59; } -if (var65){ +if (var58){ { { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on */ -var72 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ -if (unlikely(var72 == NULL)) { +var65 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var65 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var70 = var72; -RET_LABEL71:(void)0; +var63 = var65; +RET_LABEL64:(void)0; } } -if (varonce73) { -var74 = varonce73; +if (likely(varonce66!=NULL)) { +var67 = varonce66; } else { -var75 = "finalize"; -var76 = 8; -var77 = standard___standard__NativeString___to_s_with_length(var75, var76); -var74 = var77; -varonce73 = var74; +var68 = "finalize"; +var69 = standard___standard__NativeString___to_s_with_length(var68, 8l); +var67 = var69; +varonce66 = var67; } { { /* Inline model#MClassType#mclass (var_finalizable_type) on */ -var80 = var_finalizable_type->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var80 == NULL)) { +var72 = var_finalizable_type->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var72 == 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); } -var78 = var80; -RET_LABEL79:(void)0; +var70 = var72; +RET_LABEL71:(void)0; } } { -var81 = nit__model___MModule___try_get_primitive_method(var70, var74, var78); +var73 = nit__model___MModule___try_get_primitive_method(var63, var67, var70); } -var_finalize_meth = var81; -var82 = NULL; +var_finalize_meth = var73; if (var_finalize_meth == NULL) { -var83 = 0; /* is null */ +var74 = 0; /* is null */ } else { -var83 = 1; /* arg is null and recv is not */ +var74 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_finalize_meth,var82) on */ -var_other26 = var82; +{ /* Inline kernel#Object#!= (var_finalize_meth,((val*)NULL)) on */ +var_other23 = ((val*)NULL); { -var86 = ((short int (*)(val* self, val* p0))(var_finalize_meth->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_finalize_meth, var_other26) /* == on */; +var77 = ((short int(*)(val* self, val* p0))(var_finalize_meth->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_finalize_meth, var_other23); /* == on */ } -var87 = !var86; -var84 = var87; -goto RET_LABEL85; -RET_LABEL85:(void)0; +var78 = !var77; +var75 = var78; +goto RET_LABEL76; +RET_LABEL76:(void)0; } -var83 = var84; +var74 = var75; } -if (var83){ +if (var74){ { nit___nit__RapidTypeAnalysis___add_send(self, var_finalizable_type, var_finalize_meth); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on */ } @@ -1441,828 +2227,757 @@ nit___nit__RapidTypeAnalysis___add_send(self, var_finalizable_type, var_finalize } } else { } -if (varonce88) { -var89 = varonce88; +if (likely(varonce79!=NULL)) { +var80 = varonce79; +} else { +var81 = "Bool"; +var82 = standard___standard__NativeString___to_s_with_length(var81, 4l); +var80 = var82; +varonce79 = var80; +} +{ +nit___nit__RapidTypeAnalysis___force_alive(self, var80); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on */ +} +if (likely(varonce83!=NULL)) { +var84 = varonce83; } else { -var90 = "Bool"; -var91 = 4; -var92 = standard___standard__NativeString___to_s_with_length(var90, var91); -var89 = var92; -varonce88 = var89; +var85 = "Int"; +var86 = standard___standard__NativeString___to_s_with_length(var85, 3l); +var84 = var86; +varonce83 = var84; } { -nit___nit__RapidTypeAnalysis___force_alive(self, var89); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on */ +nit___nit__RapidTypeAnalysis___force_alive(self, var84); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on */ } -if (varonce93) { -var94 = varonce93; +if (likely(varonce87!=NULL)) { +var88 = varonce87; } else { -var95 = "Int"; -var96 = 3; -var97 = standard___standard__NativeString___to_s_with_length(var95, var96); -var94 = var97; -varonce93 = var94; +var89 = "Float"; +var90 = standard___standard__NativeString___to_s_with_length(var89, 5l); +var88 = var90; +varonce87 = var88; } { -nit___nit__RapidTypeAnalysis___force_alive(self, var94); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on */ +nit___nit__RapidTypeAnalysis___force_alive(self, var88); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on */ } -if (varonce98) { -var99 = varonce98; +if (likely(varonce91!=NULL)) { +var92 = varonce91; } else { -var100 = "Float"; -var101 = 5; -var102 = standard___standard__NativeString___to_s_with_length(var100, var101); -var99 = var102; -varonce98 = var99; +var93 = "Char"; +var94 = standard___standard__NativeString___to_s_with_length(var93, 4l); +var92 = var94; +varonce91 = var92; } { -nit___nit__RapidTypeAnalysis___force_alive(self, var99); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on */ +nit___nit__RapidTypeAnalysis___force_alive(self, var92); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on */ } -if (varonce103) { -var104 = varonce103; +if (likely(varonce95!=NULL)) { +var96 = varonce95; } else { -var105 = "Char"; -var106 = 4; -var107 = standard___standard__NativeString___to_s_with_length(var105, var106); -var104 = var107; -varonce103 = var104; +var97 = "Pointer"; +var98 = standard___standard__NativeString___to_s_with_length(var97, 7l); +var96 = var98; +varonce95 = var96; } { -nit___nit__RapidTypeAnalysis___force_alive(self, var104); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on */ +nit___nit__RapidTypeAnalysis___force_alive(self, var96); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on */ } -if (varonce108) { -var109 = varonce108; +if (likely(varonce99!=NULL)) { +var100 = varonce99; } else { -var110 = "Pointer"; -var111 = 7; -var112 = standard___standard__NativeString___to_s_with_length(var110, var111); -var109 = var112; -varonce108 = var109; +var101 = "Byte"; +var102 = standard___standard__NativeString___to_s_with_length(var101, 4l); +var100 = var102; +varonce99 = var100; } { -nit___nit__RapidTypeAnalysis___force_alive(self, var109); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on */ +nit___nit__RapidTypeAnalysis___force_alive(self, var100); /* Direct call rapid_type_analysis#RapidTypeAnalysis#force_alive on */ } for(;;) { { { /* Inline rapid_type_analysis#RapidTypeAnalysis#todo (self) on */ -var115 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___todo].val; /* _todo on */ -if (unlikely(var115 == NULL)) { +var105 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___todo].val; /* _todo on */ +if (unlikely(var105 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 172); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 179); +fatal_exit(1); } -var113 = var115; -RET_LABEL114:(void)0; +var103 = var105; +RET_LABEL104:(void)0; } } { -var116 = standard___standard__List___standard__abstract_collection__Collection__is_empty(var113); +var106 = standard___standard__List___standard__abstract_collection__Collection__is_empty(var103); } -var117 = !var116; -if (var117){ +var107 = !var106; +if (var107){ { { /* Inline rapid_type_analysis#RapidTypeAnalysis#todo (self) on */ -var120 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___todo].val; /* _todo on */ -if (unlikely(var120 == NULL)) { +var110 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___todo].val; /* _todo on */ +if (unlikely(var110 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 172); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 179); +fatal_exit(1); } -var118 = var120; -RET_LABEL119:(void)0; +var108 = var110; +RET_LABEL109:(void)0; } } { -var121 = standard___standard__List___standard__abstract_collection__Sequence__shift(var118); +var111 = standard___standard__List___standard__abstract_collection__Sequence__shift(var108); } -var_mmethoddef = var121; +var_mmethoddef = var111; { { /* Inline model#MPropDef#mproperty (var_mmethoddef) on */ -var124 = var_mmethoddef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on */ -if (unlikely(var124 == NULL)) { +var114 = var_mmethoddef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on */ +if (unlikely(var114 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212); +fatal_exit(1); +} +var112 = var114; +RET_LABEL113:(void)0; +} +} +var_mmeth = var112; +{ +{ /* Inline model#MMethodDef#msignature (var_mmethoddef) on */ +var117 = var_mmethoddef->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on */ +var115 = var117; +RET_LABEL116:(void)0; +} } -var122 = var124; -RET_LABEL123:(void)0; +var_msignature = var115; +if (var_msignature == NULL) { +var118 = 1; /* is null */ +} else { +var118 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel#Object#== (var_msignature,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +{ /* Inline kernel#Object#is_same_instance (var_msignature,var_other) on */ +var123 = var_msignature == var_other; +var121 = var123; +goto RET_LABEL122; +RET_LABEL122:(void)0; } } -var_mmeth = var122; -var125 = NEW_nit__RapidTypeVisitor(&type_nit__RapidTypeVisitor); +var119 = var121; +goto RET_LABEL120; +RET_LABEL120:(void)0; +} +var118 = var119; +} +if (var118){ +goto BREAK_label; +} else { +} +var124 = NEW_nit__RapidTypeVisitor(&type_nit__RapidTypeVisitor); { { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on */ -var128 = var_mmethoddef->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ -if (unlikely(var128 == NULL)) { +var127 = var_mmethoddef->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ +if (unlikely(var127 == 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); } -var126 = var128; -RET_LABEL127:(void)0; +var125 = var127; +RET_LABEL126:(void)0; } } { -{ /* Inline model#MClassDef#bound_mtype (var126) on */ -var131 = var126->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ -if (unlikely(var131 == NULL)) { +{ /* Inline model#MClassDef#bound_mtype (var125) on */ +var130 = var125->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var130 == 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); } -var129 = var131; -RET_LABEL130:(void)0; +var128 = var130; +RET_LABEL129:(void)0; } } { -((void (*)(val* self, val* p0))(var125->class->vft[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__analysis_61d]))(var125, self) /* analysis= on */; +((void(*)(val* self, val* p0))(var124->class->vft[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__analysis_61d]))(var124, self); /* analysis= on */ } { -((void (*)(val* self, val* p0))(var125->class->vft[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__receiver_61d]))(var125, var129) /* receiver= on */; +((void(*)(val* self, val* p0))(var124->class->vft[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__receiver_61d]))(var124, var128); /* receiver= on */ } { -((void (*)(val* self, val* p0))(var125->class->vft[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__mpropdef_61d]))(var125, var_mmethoddef) /* mpropdef= on */; +((void(*)(val* self, val* p0))(var124->class->vft[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__mpropdef_61d]))(var124, var_mmethoddef); /* mpropdef= on */ } { -((void (*)(val* self))(var125->class->vft[COLOR_standard__kernel__Object__init]))(var125) /* init on */; +((void(*)(val* self))(var124->class->vft[COLOR_standard__kernel__Object__init]))(var124); /* init on */ } -var_v = var125; +var_v = var124; { -{ /* Inline model#MMethodDef#msignature (var_mmethoddef) on */ -var134 = var_mmethoddef->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on */ -var132 = var134; -RET_LABEL133:(void)0; -} -} -if (var132 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 216); -show_backtrace(1); -} else { -{ /* Inline model#MSignature#vararg_rank (var132) on */ -if (unlikely(var132 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1635); -show_backtrace(1); -} -var137 = var132->attrs[COLOR_nit__model__MSignature___vararg_rank].l; /* _vararg_rank on */ -var135 = var137; -RET_LABEL136:(void)0; +{ /* Inline model#MSignature#vararg_rank (var_msignature) on */ +var133 = var_msignature->attrs[COLOR_nit__model__MSignature___vararg_rank].l; /* _vararg_rank on */ +var131 = var133; +RET_LABEL132:(void)0; } } -var_vararg_rank = var135; -var138 = 1; +var_vararg_rank = var131; { -{ /* Inline kernel#Int#unary - (var138) on */ -var141 = -var138; -var139 = var141; -goto RET_LABEL140; -RET_LABEL140:(void)0; +{ /* Inline kernel#Int#unary - (1l) on <1l:Int> */ +var136 = -1l; +var134 = var136; +goto RET_LABEL135; +RET_LABEL135:(void)0; } } { -{ /* Inline kernel#Int#> (var_vararg_rank,var139) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var144 = 1; /* easy isa OTHER*/ -if (unlikely(!var144)) { +{ /* Inline kernel#Int#> (var_vararg_rank,var134) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var139 = 1; /* easy isa OTHER*/ +if (unlikely(!var139)) { var_class_name = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536); +fatal_exit(1); } -var145 = var_vararg_rank > var139; -var142 = var145; -goto RET_LABEL143; -RET_LABEL143:(void)0; +var140 = var_vararg_rank > var134; +var137 = var140; +goto RET_LABEL138; +RET_LABEL138:(void)0; } } -if (var142){ +if (var137){ { { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on */ -var148 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder].val; /* _modelbuilder on */ -if (unlikely(var148 == NULL)) { +var143 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var143 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 46); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 53); +fatal_exit(1); } -var146 = var148; -RET_LABEL147:(void)0; +var141 = var143; +RET_LABEL142:(void)0; } } { -var149 = nit__modelize_property___ModelBuilder___mpropdef2node(var146, var_mmethoddef); +var144 = nit__modelize_property___ModelBuilder___mpropdef2node(var141, var_mmethoddef); } -var_node = var149; +var_node = var144; { -{ /* Inline model#MMethodDef#msignature (var_mmethoddef) on */ -var152 = var_mmethoddef->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on */ -var150 = var152; -RET_LABEL151:(void)0; -} -} -if (var150 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 219); -show_backtrace(1); -} else { -{ /* Inline model#MSignature#mparameters (var150) on */ -if (unlikely(var150 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592); -show_backtrace(1); -} -var155 = var150->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on */ -if (unlikely(var155 == NULL)) { +{ /* Inline model#MSignature#mparameters (var_msignature) on */ +var147 = var_msignature->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on */ +if (unlikely(var147 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1756); +fatal_exit(1); } -var153 = var155; -RET_LABEL154:(void)0; +var145 = var147; +RET_LABEL146:(void)0; } } { -var156 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var153, var_vararg_rank); +var148 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var145, var_vararg_rank); } { -{ /* Inline model#MParameter#mtype (var156) on */ -var159 = var156->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on */ -if (unlikely(var159 == NULL)) { +{ /* Inline model#MParameter#mtype (var148) on */ +var151 = var148->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on */ +if (unlikely(var151 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1690); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1879); +fatal_exit(1); } -var157 = var159; -RET_LABEL158:(void)0; +var149 = var151; +RET_LABEL150:(void)0; } } -var_elttype = var157; +var_elttype = var149; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on */ -var162 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ -if (unlikely(var162 == NULL)) { +var154 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var154 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); -} -var160 = var162; -RET_LABEL161:(void)0; -} -} -if (varonce163) { -var164 = varonce163; -} else { -var165 = "Array"; -var166 = 5; -var167 = standard___standard__NativeString___to_s_with_length(var165, var166); -var164 = var167; -varonce163 = var164; -} -{ -var168 = nit__model___MModule___get_primitive_class(var160, var164); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var169 = NEW_standard__Array(&type_standard__Array__nit__MType); -var170 = 1; -{ -standard___standard__Array___with_capacity(var169, var170); /* Direct call array#Array#with_capacity on */ +var152 = var154; +RET_LABEL153:(void)0; } -var_ = var169; -{ -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_elttype); /* Direct call array#AbstractArray#push on */ } { -var171 = nit___nit__MClass___get_mtype(var168, var_); +var155 = nit__model___MModule___array_type(var152, var_elttype); } -var_vararg = var171; +var_vararg = var155; { nit___nit__RapidTypeVisitor___add_type(var_v, var_vararg); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on */ } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on */ -var174 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ -if (unlikely(var174 == NULL)) { +var158 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var158 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); -} -var172 = var174; -RET_LABEL173:(void)0; -} -} -if (varonce175) { -var176 = varonce175; -} else { -var177 = "NativeArray"; -var178 = 11; -var179 = standard___standard__NativeString___to_s_with_length(var177, var178); -var176 = var179; -varonce175 = var176; -} -{ -var180 = nit__model___MModule___get_primitive_class(var172, var176); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var181 = NEW_standard__Array(&type_standard__Array__nit__MType); -var182 = 1; -{ -standard___standard__Array___with_capacity(var181, var182); /* Direct call array#Array#with_capacity on */ +var156 = var158; +RET_LABEL157:(void)0; } -var_183 = var181; -{ -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_183, var_elttype); /* Direct call array#AbstractArray#push on */ } { -var184 = nit___nit__MClass___get_mtype(var180, var_183); +var159 = nit__model___MModule___native_array_type(var156, var_elttype); } -var_native = var184; +var_native = var159; { nit___nit__RapidTypeVisitor___add_type(var_v, var_native); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on */ } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on */ -var187 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder].val; /* _modelbuilder on */ -if (unlikely(var187 == NULL)) { +var162 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var162 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 46); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 53); +fatal_exit(1); } -var185 = var187; -RET_LABEL186:(void)0; +var160 = var162; +RET_LABEL161:(void)0; } } -if (varonce188) { -var189 = varonce188; +if (likely(varonce163!=NULL)) { +var164 = varonce163; } else { -var190 = "with_native"; -var191 = 11; -var192 = standard___standard__NativeString___to_s_with_length(var190, var191); -var189 = var192; -varonce188 = var189; +var165 = "with_native"; +var166 = standard___standard__NativeString___to_s_with_length(var165, 11l); +var164 = var166; +varonce163 = var164; } { { /* Inline model#MClassType#mclass (var_vararg) on */ -var195 = var_vararg->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var195 == NULL)) { +var169 = var_vararg->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var169 == 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); } -var193 = var195; -RET_LABEL194:(void)0; +var167 = var169; +RET_LABEL168:(void)0; } } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on */ -var198 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ -if (unlikely(var198 == NULL)) { +var172 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var172 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var196 = var198; -RET_LABEL197:(void)0; +var170 = var172; +RET_LABEL171:(void)0; } } { -var199 = nit___nit__ModelBuilder___force_get_primitive_method(var185, var_node, var189, var193, var196); +var173 = nit___nit__ModelBuilder___force_get_primitive_method(var160, var_node, var164, var167, var170); } { -nit___nit__RapidTypeVisitor___add_monomorphic_send(var_v, var_vararg, var199); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on */ +nit___nit__RapidTypeVisitor___add_monomorphic_send(var_v, var_vararg, var173); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on */ } } else { } -{ -{ /* Inline model#MMethodDef#msignature (var_mmethoddef) on */ -var202 = var_mmethoddef->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on */ -var200 = var202; -RET_LABEL201:(void)0; -} -} -if (unlikely(var200 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 229); -show_backtrace(1); -} -var_sig = var200; +var_sig = var_msignature; { { /* Inline model#MProperty#intro (var_mmeth) on */ -var205 = var_mmeth->attrs[COLOR_nit__model__MProperty___intro].val; /* _intro on */ -if (unlikely(var205 == NULL)) { +var176 = var_mmeth->attrs[COLOR_nit__model__MProperty___intro].val; /* _intro on */ +if (unlikely(var176 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1773); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1968); +fatal_exit(1); } -var203 = var205; -RET_LABEL204:(void)0; +var174 = var176; +RET_LABEL175:(void)0; } } { -{ /* Inline model#MMethodDef#msignature (var203) on */ -var208 = var203->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on */ -var206 = var208; -RET_LABEL207:(void)0; +{ /* Inline model#MMethodDef#msignature (var174) on */ +var179 = var174->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on */ +var177 = var179; +RET_LABEL178:(void)0; } } -if (unlikely(var206 == NULL)) { +if (unlikely(var177 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 230); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 241); +fatal_exit(1); } -var_osig = var206; -var209 = 0; -var_i = var209; +var_osig = var177; +var_i = 0l; { -var210 = nit___nit__MSignature___arity(var_sig); +var180 = nit___nit__MSignature___arity(var_sig); } -var_211 = var210; +var_ = var180; for(;;) { { -{ /* Inline kernel#Int#< (var_i,var_211) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var214 = 1; /* easy isa OTHER*/ -if (unlikely(!var214)) { -var_class_name217 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name217); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); +{ /* Inline kernel#Int#< (var_i,var_) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var183 = 1; /* easy isa OTHER*/ +if (unlikely(!var183)) { +var_class_name186 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name186); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } -var218 = var_i < var_211; -var212 = var218; -goto RET_LABEL213; -RET_LABEL213:(void)0; +var187 = var_i < var_; +var181 = var187; +goto RET_LABEL182; +RET_LABEL182:(void)0; } } -if (var212){ +if (var181){ { { /* Inline model#MSignature#mparameters (var_osig) on */ -var221 = var_osig->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on */ -if (unlikely(var221 == NULL)) { +var190 = var_osig->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on */ +if (unlikely(var190 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1756); +fatal_exit(1); } -var219 = var221; -RET_LABEL220:(void)0; +var188 = var190; +RET_LABEL189:(void)0; } } { -var222 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var219, var_i); +var191 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var188, var_i); } { -{ /* Inline model#MParameter#mtype (var222) on */ -var225 = var222->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on */ -if (unlikely(var225 == NULL)) { +{ /* Inline model#MParameter#mtype (var191) on */ +var194 = var191->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on */ +if (unlikely(var194 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1690); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1879); +fatal_exit(1); } -var223 = var225; -RET_LABEL224:(void)0; +var192 = var194; +RET_LABEL193:(void)0; } } -var_origtype = var223; +var_origtype = var192; { -var226 = ((short int (*)(val* self))(var_origtype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_origtype) /* need_anchor on */; +var195 = ((short int(*)(val* self))(var_origtype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_origtype); /* need_anchor on */ } -var227 = !var226; -if (var227){ -goto BREAK_label; +var196 = !var195; +if (var196){ +goto BREAK_label197; } else { } { { /* Inline model#MSignature#mparameters (var_sig) on */ -var230 = var_sig->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on */ -if (unlikely(var230 == NULL)) { +var200 = var_sig->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on */ +if (unlikely(var200 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1756); +fatal_exit(1); } -var228 = var230; -RET_LABEL229:(void)0; +var198 = var200; +RET_LABEL199:(void)0; } } { -var231 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var228, var_i); +var201 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var198, var_i); } { -{ /* Inline model#MParameter#mtype (var231) on */ -var234 = var231->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on */ -if (unlikely(var234 == NULL)) { +{ /* Inline model#MParameter#mtype (var201) on */ +var204 = var201->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on */ +if (unlikely(var204 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1690); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1879); +fatal_exit(1); } -var232 = var234; -RET_LABEL233:(void)0; +var202 = var204; +RET_LABEL203:(void)0; } } -var_paramtype = var232; +var_paramtype = var202; { nit___nit__RapidTypeAnalysis___add_cast(self, var_paramtype); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_cast on */ } -BREAK_label: (void)0; -var235 = 1; +BREAK_label197: (void)0; { -var236 = standard___standard__Int___Discrete__successor(var_i, var235); +var205 = standard___standard__Int___Discrete__successor(var_i, 1l); } -var_i = var236; +var_i = var205; } else { -goto BREAK_label237; +goto BREAK_label206; } } -BREAK_label237: (void)0; +BREAK_label206: (void)0; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on */ -var240 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder].val; /* _modelbuilder on */ -if (unlikely(var240 == NULL)) { +var209 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var209 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 46); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 53); +fatal_exit(1); } -var238 = var240; -RET_LABEL239:(void)0; +var207 = var209; +RET_LABEL208:(void)0; } } { -var241 = nit__modelize_property___ModelBuilder___mpropdef2node(var238, var_mmethoddef); +var210 = nit__modelize_property___ModelBuilder___mpropdef2node(var207, var_mmethoddef); } -var_npropdef = var241; +var_npropdef = var210; /* isa AClassdef */ -cltype243 = type_nit__AClassdef.color; -idtype244 = type_nit__AClassdef.id; +cltype212 = type_nit__AClassdef.color; +idtype213 = type_nit__AClassdef.id; if(var_npropdef == NULL) { -var242 = 0; +var211 = 0; } else { -if(cltype243 >= var_npropdef->type->table_size) { -var242 = 0; +if(cltype212 >= var_npropdef->type->table_size) { +var211 = 0; } else { -var242 = var_npropdef->type->type_table[cltype243] == idtype244; +var211 = var_npropdef->type->type_table[cltype212] == idtype213; } } -if (var242){ +if (var211){ { { /* Inline modelize_property#AClassdef#mfree_init (var_npropdef) on */ -var247 = var_npropdef->attrs[COLOR_nit__modelize_property__AClassdef___mfree_init].val; /* _mfree_init on */ -var245 = var247; -RET_LABEL246:(void)0; +var216 = var_npropdef->attrs[COLOR_nit__modelize_property__AClassdef___mfree_init].val; /* _mfree_init on */ +var214 = var216; +RET_LABEL215:(void)0; } } { -{ /* Inline kernel#Object#== (var_mmethoddef,var245) on */ -var_other = var245; +{ /* Inline kernel#Object#== (var_mmethoddef,var214) on */ +var_other = var214; { { /* Inline kernel#Object#is_same_instance (var_mmethoddef,var_other) on */ -var252 = var_mmethoddef == var_other; -var250 = var252; -goto RET_LABEL251; -RET_LABEL251:(void)0; +var221 = var_mmethoddef == var_other; +var219 = var221; +goto RET_LABEL220; +RET_LABEL220:(void)0; } } -var248 = var250; -goto RET_LABEL249; -RET_LABEL249:(void)0; +var217 = var219; +goto RET_LABEL218; +RET_LABEL218:(void)0; } } -if (unlikely(!var248)) { +if (unlikely(!var217)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 242); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 253); +fatal_exit(1); } { { /* Inline model#MPropDef#mproperty (var_mmethoddef) on */ -var256 = var_mmethoddef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on */ -if (unlikely(var256 == NULL)) { +var225 = var_mmethoddef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on */ +if (unlikely(var225 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212); +fatal_exit(1); } -var254 = var256; -RET_LABEL255:(void)0; +var223 = var225; +RET_LABEL224:(void)0; } } { -{ /* Inline model#MMethod#is_root_init (var254) on */ -var259 = var254->attrs[COLOR_nit__model__MMethod___is_root_init].s; /* _is_root_init on */ -var257 = var259; -RET_LABEL258:(void)0; +{ /* Inline model#MMethod#is_root_init (var223) on */ +var228 = var223->attrs[COLOR_nit__model__MMethod___is_root_init].s; /* _is_root_init on */ +var226 = var228; +RET_LABEL227:(void)0; } } -var_260 = var257; -if (var257){ +var_229 = var226; +if (var226){ { -var261 = nit___nit__MPropDef___is_intro(var_mmethoddef); +var230 = nit___nit__MPropDef___is_intro(var_mmethoddef); } -var262 = !var261; -var253 = var262; +var231 = !var230; +var222 = var231; } else { -var253 = var_260; +var222 = var_229; } -if (var253){ +if (var222){ { { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (var_v) on */ -var265 = var_v->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver].val; /* _receiver on */ -if (unlikely(var265 == NULL)) { +var234 = var_v->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver].val; /* _receiver on */ +if (unlikely(var234 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 436); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 448); +fatal_exit(1); } -var263 = var265; -RET_LABEL264:(void)0; +var232 = var234; +RET_LABEL233:(void)0; } } { -nit___nit__RapidTypeAnalysis___add_super_send(self, var263, var_mmethoddef); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on */ +nit___nit__RapidTypeAnalysis___add_super_send(self, var232, var_mmethoddef); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on */ } } else { } -goto BREAK_label266; +goto BREAK_label; } else { { { /* Inline model#MMethodDef#constant_value (var_mmethoddef) on */ -var269 = var_mmethoddef->attrs[COLOR_nit__model__MMethodDef___constant_value].val; /* _constant_value on */ -var267 = var269; -RET_LABEL268:(void)0; +var237 = var_mmethoddef->attrs[COLOR_nit__model__MMethodDef___constant_value].val; /* _constant_value on */ +var235 = var237; +RET_LABEL236:(void)0; } } -var270 = NULL; -if (var267 == NULL) { -var271 = 0; /* is null */ +if (var235 == NULL) { +var238 = 0; /* is null */ } else { -var271 = 1; /* arg is null and recv is not */ +var238 = 1; /* arg is null and recv is not */ } if (0) { -var272 = ((short int (*)(val* self, val* p0))(var267->class->vft[COLOR_standard__kernel__Object___33d_61d]))(var267, var270) /* != on */; -var271 = var272; +var239 = ((short int(*)(val* self, val* p0))((((long)var235&3)?class_info[((long)var235&3)]:var235->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var235, ((val*)NULL)); /* != on */ +var238 = var239; } -if (var271){ +if (var238){ { -{ /* Inline model#MMethodDef#msignature (var_mmethoddef) on */ -var275 = var_mmethoddef->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on */ -var273 = var275; -RET_LABEL274:(void)0; -} -} -if (var273 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 250); -show_backtrace(1); -} else { -{ /* Inline model#MSignature#return_mtype (var273) on */ -if (unlikely(var273 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1595); -show_backtrace(1); -} -var278 = var273->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on */ -var276 = var278; -RET_LABEL277:(void)0; +{ /* Inline model#MSignature#return_mtype (var_msignature) on */ +var242 = var_msignature->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on */ +var240 = var242; +RET_LABEL241:(void)0; } } -/* isa MClassType */ -cltype280 = type_nit__MClassType.color; -idtype281 = type_nit__MClassType.id; -if(var276 == NULL) { -var279 = 0; +/* isa MClassType */ +cltype244 = type_nit__MClassType.color; +idtype245 = type_nit__MClassType.id; +if(var240 == NULL) { +var243 = 0; } else { -if(cltype280 >= var276->type->table_size) { -var279 = 0; +if(cltype244 >= var240->type->table_size) { +var243 = 0; } else { -var279 = var276->type->type_table[cltype280] == idtype281; +var243 = var240->type->type_table[cltype244] == idtype245; } } -if (unlikely(!var279)) { -var_class_name282 = var276 == NULL ? "null" : var276->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name282); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 250); -show_backtrace(1); +if (unlikely(!var243)) { +var_class_name246 = var240 == NULL ? "null" : var240->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name246); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 261); +fatal_exit(1); } { -nit___nit__RapidTypeVisitor___add_type(var_v, var276); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on */ +nit___nit__RapidTypeVisitor___add_type(var_v, var240); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on */ } -goto BREAK_label266; +goto BREAK_label; } else { -var283 = NULL; if (var_npropdef == NULL) { -var284 = 1; /* is null */ +var247 = 1; /* is null */ } else { -var284 = 0; /* arg is null but recv is not */ +var247 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_npropdef,var283) on */ -var_other = var283; +{ /* Inline kernel#Object#== (var_npropdef,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var_npropdef,var_other) on */ -var289 = var_npropdef == var_other; -var287 = var289; -goto RET_LABEL288; -RET_LABEL288:(void)0; +var252 = var_npropdef == var_other; +var250 = var252; +goto RET_LABEL251; +RET_LABEL251:(void)0; } } -var285 = var287; -goto RET_LABEL286; -RET_LABEL286:(void)0; +var248 = var250; +goto RET_LABEL249; +RET_LABEL249:(void)0; } -var284 = var285; +var247 = var248; } -if (var284){ +if (var247){ PRINT_ERROR("Runtime error: %s", "Aborted"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 253); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 264); +fatal_exit(1); } else { } } } /* isa AMethPropdef */ -cltype291 = type_nit__AMethPropdef.color; -idtype292 = type_nit__AMethPropdef.id; -if(cltype291 >= var_npropdef->type->table_size) { -var290 = 0; +cltype254 = type_nit__AMethPropdef.color; +idtype255 = type_nit__AMethPropdef.id; +if(cltype254 >= var_npropdef->type->table_size) { +var253 = 0; } else { -var290 = var_npropdef->type->type_table[cltype291] == idtype292; +var253 = var_npropdef->type->type_table[cltype254] == idtype255; } -if (var290){ +if (var253){ { { /* Inline auto_super_init#AMethPropdef#auto_super_inits (var_npropdef) on */ -var295 = var_npropdef->attrs[COLOR_nit__auto_super_init__AMethPropdef___auto_super_inits].val; /* _auto_super_inits on */ -var293 = var295; -RET_LABEL294:(void)0; +var258 = var_npropdef->attrs[COLOR_nit__auto_super_init__AMethPropdef___auto_super_inits].val; /* _auto_super_inits on */ +var256 = var258; +RET_LABEL257:(void)0; } } -var_auto_super_inits = var293; -var296 = NULL; +var_auto_super_inits = var256; if (var_auto_super_inits == NULL) { -var297 = 0; /* is null */ +var259 = 0; /* is null */ } else { -var297 = 1; /* arg is null and recv is not */ +var259 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_auto_super_inits,var296) on */ -var_other26 = var296; +{ /* Inline kernel#Object#!= (var_auto_super_inits,((val*)NULL)) on */ +var_other23 = ((val*)NULL); { -var300 = ((short int (*)(val* self, val* p0))(var_auto_super_inits->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_auto_super_inits, var_other26) /* == on */; +var262 = ((short int(*)(val* self, val* p0))(var_auto_super_inits->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_auto_super_inits, var_other23); /* == on */ } -var301 = !var300; -var298 = var301; -goto RET_LABEL299; -RET_LABEL299:(void)0; +var263 = !var262; +var260 = var263; +goto RET_LABEL261; +RET_LABEL261:(void)0; } -var297 = var298; +var259 = var260; } -if (var297){ -var_302 = var_auto_super_inits; +if (var259){ +var_264 = var_auto_super_inits; { -var303 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_302); +var265 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_264); } -var_304 = var303; +var_266 = var265; for(;;) { { -var305 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_304); +var267 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_266); } -if (var305){ +if (var267){ { -var306 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_304); +var268 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_266); } -var_auto_super_init = var306; +var_auto_super_init = var268; { nit___nit__RapidTypeVisitor___add_callsite(var_v, var_auto_super_init); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on */ } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_304); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_266); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label307; +goto BREAK_label269; } } -BREAK_label307: (void)0; +BREAK_label269: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_304) on */ -RET_LABEL308:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_266); /* Direct call array#ArrayIterator#finish on */ } } else { } { { /* Inline auto_super_init#AMethPropdef#auto_super_call (var_npropdef) on */ -var311 = var_npropdef->attrs[COLOR_nit__auto_super_init__AMethPropdef___auto_super_call].s; /* _auto_super_call on */ -var309 = var311; -RET_LABEL310:(void)0; +var272 = var_npropdef->attrs[COLOR_nit__auto_super_init__AMethPropdef___auto_super_call].s; /* _auto_super_call on */ +var270 = var272; +RET_LABEL271:(void)0; } } -if (var309){ +if (var270){ { { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (var_v) on */ -var314 = var_v->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver].val; /* _receiver on */ -if (unlikely(var314 == NULL)) { +var275 = var_v->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver].val; /* _receiver on */ +if (unlikely(var275 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 436); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 448); +fatal_exit(1); } -var312 = var314; -RET_LABEL313:(void)0; +var273 = var275; +RET_LABEL274:(void)0; } } { -nit___nit__RapidTypeAnalysis___add_super_send(self, var312, var_mmethoddef); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on */ +nit___nit__RapidTypeAnalysis___add_super_send(self, var273, var_mmethoddef); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on */ } } else { } @@ -2270,173 +2985,158 @@ nit___nit__RapidTypeAnalysis___add_super_send(self, var312, var_mmethoddef); /* } { { /* Inline model#MMethodDef#is_intern (var_mmethoddef) on */ -var318 = var_mmethoddef->attrs[COLOR_nit__model__MMethodDef___is_intern].s; /* _is_intern on */ -var316 = var318; -RET_LABEL317:(void)0; +var279 = var_mmethoddef->attrs[COLOR_nit__model__MMethodDef___is_intern].s; /* _is_intern on */ +var277 = var279; +RET_LABEL278:(void)0; } } -var_319 = var316; -if (var316){ -var315 = var_319; +var_280 = var277; +if (var277){ +var276 = var_280; } else { { { /* Inline model#MMethodDef#is_extern (var_mmethoddef) on */ -var322 = var_mmethoddef->attrs[COLOR_nit__model__MMethodDef___is_extern].s; /* _is_extern on */ -var320 = var322; -RET_LABEL321:(void)0; +var283 = var_mmethoddef->attrs[COLOR_nit__model__MMethodDef___is_extern].s; /* _is_extern on */ +var281 = var283; +RET_LABEL282:(void)0; } } -var315 = var320; +var276 = var281; } -if (var315){ +if (var276){ { -{ /* Inline model#MMethodDef#msignature (var_mmethoddef) on */ -var325 = var_mmethoddef->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on */ -var323 = var325; -RET_LABEL324:(void)0; +{ /* Inline model#MSignature#return_mtype (var_msignature) on */ +var286 = var_msignature->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on */ +var284 = var286; +RET_LABEL285:(void)0; } } -if (var323 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 270); -show_backtrace(1); -} else { -{ /* Inline model#MSignature#return_mtype (var323) on */ -if (unlikely(var323 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1595); -show_backtrace(1); -} -var328 = var323->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on */ -var326 = var328; -RET_LABEL327:(void)0; -} -} -var_ret = var326; -var332 = NULL; +var_ret = var284; if (var_ret == NULL) { -var333 = 0; /* is null */ +var290 = 0; /* is null */ } else { -var333 = 1; /* arg is null and recv is not */ +var290 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_ret,var332) on */ -var_other26 = var332; +{ /* Inline kernel#Object#!= (var_ret,((val*)NULL)) on */ +var_other23 = ((val*)NULL); { -var336 = ((short int (*)(val* self, val* p0))(var_ret->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ret, var_other26) /* == on */; +var293 = ((short int(*)(val* self, val* p0))(var_ret->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ret, var_other23); /* == on */ } -var337 = !var336; -var334 = var337; -goto RET_LABEL335; -RET_LABEL335:(void)0; +var294 = !var293; +var291 = var294; +goto RET_LABEL292; +RET_LABEL292:(void)0; } -var333 = var334; +var290 = var291; } -var_338 = var333; -if (var333){ +var_295 = var290; +if (var290){ /* isa MClassType */ -cltype340 = type_nit__MClassType.color; -idtype341 = type_nit__MClassType.id; -if(cltype340 >= var_ret->type->table_size) { -var339 = 0; +cltype297 = type_nit__MClassType.color; +idtype298 = type_nit__MClassType.id; +if(cltype297 >= var_ret->type->table_size) { +var296 = 0; } else { -var339 = var_ret->type->type_table[cltype340] == idtype341; +var296 = var_ret->type->type_table[cltype297] == idtype298; } -var331 = var339; +var289 = var296; } else { -var331 = var_338; +var289 = var_295; } -var_342 = var331; -if (var331){ +var_299 = var289; +if (var289){ { { /* Inline model#MClassType#mclass (var_ret) on */ -var345 = var_ret->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var345 == NULL)) { +var302 = var_ret->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var302 == 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); } -var343 = var345; -RET_LABEL344:(void)0; +var300 = var302; +RET_LABEL301:(void)0; } } { -{ /* Inline model#MClass#kind (var343) on */ -var348 = var343->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on */ -if (unlikely(var348 == NULL)) { +{ /* Inline model#MClass#kind (var300) on */ +var305 = var300->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on */ +if (unlikely(var305 == 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); } -var346 = var348; -RET_LABEL347:(void)0; +var303 = var305; +RET_LABEL304:(void)0; } } +var306 = glob_sys; { -var349 = nit__model___standard__Object___abstract_kind(self); +var307 = nit__model___standard__Sys___abstract_kind(var306); } { -{ /* Inline kernel#Object#!= (var346,var349) on */ -var_other26 = var349; +{ /* Inline kernel#Object#!= (var303,var307) on */ +var_other23 = var307; { -var352 = ((short int (*)(val* self, val* p0))(var346->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var346, var_other26) /* == on */; +var310 = ((short int(*)(val* self, val* p0))(var303->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var303, var_other23); /* == on */ } -var353 = !var352; -var350 = var353; -goto RET_LABEL351; -RET_LABEL351:(void)0; +var311 = !var310; +var308 = var311; +goto RET_LABEL309; +RET_LABEL309:(void)0; } } -var330 = var350; +var288 = var308; } else { -var330 = var_342; +var288 = var_299; } -var_354 = var330; -if (var330){ +var_312 = var288; +if (var288){ { { /* Inline model#MClassType#mclass (var_ret) on */ -var357 = var_ret->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var357 == NULL)) { +var315 = var_ret->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var315 == 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); } -var355 = var357; -RET_LABEL356:(void)0; +var313 = var315; +RET_LABEL314:(void)0; } } { -{ /* Inline model#MClass#kind (var355) on */ -var360 = var355->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on */ -if (unlikely(var360 == NULL)) { +{ /* Inline model#MClass#kind (var313) on */ +var318 = var313->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on */ +if (unlikely(var318 == 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); } -var358 = var360; -RET_LABEL359:(void)0; +var316 = var318; +RET_LABEL317:(void)0; } } +var319 = glob_sys; { -var361 = nit__model___standard__Object___interface_kind(self); +var320 = nit__model___standard__Sys___interface_kind(var319); } { -{ /* Inline kernel#Object#!= (var358,var361) on */ -var_other26 = var361; +{ /* Inline kernel#Object#!= (var316,var320) on */ +var_other23 = var320; { -var364 = ((short int (*)(val* self, val* p0))(var358->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var358, var_other26) /* == on */; +var323 = ((short int(*)(val* self, val* p0))(var316->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var316, var_other23); /* == on */ } -var365 = !var364; -var362 = var365; -goto RET_LABEL363; -RET_LABEL363:(void)0; +var324 = !var323; +var321 = var324; +goto RET_LABEL322; +RET_LABEL322:(void)0; } } -var329 = var362; +var287 = var321; } else { -var329 = var_354; +var287 = var_312; } -if (var329){ +if (var287){ { nit___nit__RapidTypeVisitor___add_type(var_v, var_ret); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on */ } @@ -2448,302 +3148,301 @@ nit___nit__RapidTypeVisitor___add_type(var_v, var_ret); /* Direct call rapid_typ nit___nit__Visitor___enter_visit(var_v, var_npropdef); /* Direct call parser_nodes#Visitor#enter_visit on */ } } else { -goto BREAK_label366; +goto BREAK_label325; } -BREAK_label266: (void)0; +BREAK_label: (void)0; } -BREAK_label366: (void)0; -var367 = NEW_standard__List(&type_standard__List__nit__MClassType); +BREAK_label325: (void)0; +var326 = NEW_standard__List(&type_standard__List__nit__MClassType); { -{ /* Inline list#List#init (var367) on */ -RET_LABEL368:(void)0; +{ /* Inline list#List#init (var326) on */ +RET_LABEL327:(void)0; } } -var_todo_types = var367; +var_todo_types = var326; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on */ -var371 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on */ -if (unlikely(var371 == NULL)) { +var330 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on */ +if (unlikely(var330 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 53); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 60); +fatal_exit(1); } -var369 = var371; -RET_LABEL370:(void)0; +var328 = var330; +RET_LABEL329:(void)0; } } { -standard___standard__SimpleCollection___add_all(var_todo_types, var369); /* Direct call abstract_collection#SimpleCollection#add_all on */ +standard___standard__SimpleCollection___add_all(var_todo_types, var328); /* Direct call abstract_collection#SimpleCollection#add_all on */ } for(;;) { { -var372 = standard___standard__List___standard__abstract_collection__Collection__is_empty(var_todo_types); +var331 = standard___standard__List___standard__abstract_collection__Collection__is_empty(var_todo_types); } -var373 = !var372; -if (var373){ +var332 = !var331; +if (var332){ { -var374 = standard___standard__List___standard__abstract_collection__Sequence__shift(var_todo_types); +var333 = standard___standard__List___standard__abstract_collection__Sequence__shift(var_todo_types); } -var_t = var374; +var_t = var333; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_types (self) on */ -var377 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_types].val; /* _live_open_types on */ -if (unlikely(var377 == NULL)) { +var336 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_types].val; /* _live_open_types on */ +if (unlikely(var336 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 58); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 65); +fatal_exit(1); } -var375 = var377; -RET_LABEL376:(void)0; +var334 = var336; +RET_LABEL335:(void)0; } } -var_378 = var375; +var_337 = var334; { -var379 = standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_378); +var338 = standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_337); } -var_380 = var379; +var_339 = var338; for(;;) { { -var381 = ((short int (*)(val* self))(var_380->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_380) /* is_ok on */; +var340 = ((short int(*)(val* self))((((long)var_339&3)?class_info[((long)var_339&3)]:var_339->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_339); /* is_ok on */ } -if (var381){ +if (var340){ { -var382 = ((val* (*)(val* self))(var_380->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_380) /* item on */; +var341 = ((val*(*)(val* self))((((long)var_339&3)?class_info[((long)var_339&3)]:var_339->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_339); /* item on */ } -var_ot = var382; +var_ot = var341; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on */ -var385 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ -if (unlikely(var385 == NULL)) { +var344 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var344 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var383 = var385; -RET_LABEL384:(void)0; +var342 = var344; +RET_LABEL343:(void)0; } } { -var386 = ((short int (*)(val* self, val* p0, val* p1, val* p2))(var_ot->class->vft[COLOR_nit__model__MType__can_resolve_for]))(var_ot, var_t, var_t, var383) /* can_resolve_for on */; +var345 = ((short int(*)(val* self, val* p0, val* p1, val* p2))(var_ot->class->vft[COLOR_nit__model__MType__can_resolve_for]))(var_ot, var_t, var_t, var342); /* can_resolve_for on */ } -var387 = !var386; -if (var387){ -goto BREAK_label388; +var346 = !var345; +if (var346){ +goto BREAK_label347; } else { } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on */ -var391 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ -if (unlikely(var391 == NULL)) { +var350 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var350 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var389 = var391; -RET_LABEL390:(void)0; +var348 = var350; +RET_LABEL349:(void)0; } } { -var392 = nit___nit__MClassType___MType__anchor_to(var_ot, var389, var_t); +var351 = nit___nit__MClassType___MType__anchor_to(var_ot, var348, var_t); } -var_rt = var392; +var_rt = var351; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on */ -var395 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on */ -if (unlikely(var395 == NULL)) { +var354 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on */ +if (unlikely(var354 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 53); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 60); +fatal_exit(1); } -var393 = var395; -RET_LABEL394:(void)0; +var352 = var354; +RET_LABEL353:(void)0; } } { -var396 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var393, var_rt); +var355 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var352, var_rt); +} +if (var355){ +goto BREAK_label347; +} else { +} +{ +var356 = nit___nit__RapidTypeAnalysis___check_depth(self, var_rt); } -if (var396){ -goto BREAK_label388; +var357 = !var356; +if (var357){ +goto BREAK_label347; } else { } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on */ -var399 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on */ -if (unlikely(var399 == NULL)) { +var360 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on */ +if (unlikely(var360 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 53); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 60); +fatal_exit(1); } -var397 = var399; -RET_LABEL398:(void)0; +var358 = var360; +RET_LABEL359:(void)0; } } { -standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var397, var_rt); /* Direct call hash_collection#HashSet#add on */ +standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var358, var_rt); /* Direct call hash_collection#HashSet#add on */ } { standard___standard__Sequence___SimpleCollection__add(var_todo_types, var_rt); /* Direct call abstract_collection#Sequence#add on */ } +BREAK_label347: (void)0; { -nit___nit__RapidTypeAnalysis___check_depth(self, var_rt); /* Direct call rapid_type_analysis#RapidTypeAnalysis#check_depth on */ -} -BREAK_label388: (void)0; -{ -((void (*)(val* self))(var_380->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_380) /* next on */; +((void(*)(val* self))((((long)var_339&3)?class_info[((long)var_339&3)]:var_339->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_339); /* next on */ } } else { -goto BREAK_label400; +goto BREAK_label361; } } -BREAK_label400: (void)0; +BREAK_label361: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_380) on */ -RET_LABEL401:(void)0; -} +((void(*)(val* self))((((long)var_339&3)?class_info[((long)var_339&3)]:var_339->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_339); /* finish on */ } } else { -goto BREAK_label402; +goto BREAK_label362; } } -BREAK_label402: (void)0; +BREAK_label362: (void)0; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_open_cast_types (self) on */ -var405 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types].val; /* _live_open_cast_types on */ -if (unlikely(var405 == NULL)) { +var365 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types].val; /* _live_open_cast_types on */ +if (unlikely(var365 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 68); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 75); +fatal_exit(1); } -var403 = var405; -RET_LABEL404:(void)0; +var363 = var365; +RET_LABEL364:(void)0; } } -var_406 = var403; +var_366 = var363; { -var407 = standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_406); +var367 = standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_366); } -var_408 = var407; +var_368 = var367; for(;;) { { -var409 = ((short int (*)(val* self))(var_408->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_408) /* is_ok on */; +var369 = ((short int(*)(val* self))((((long)var_368&3)?class_info[((long)var_368&3)]:var_368->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_368); /* is_ok on */ } -if (var409){ +if (var369){ { -var410 = ((val* (*)(val* self))(var_408->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_408) /* item on */; +var370 = ((val*(*)(val* self))((((long)var_368&3)?class_info[((long)var_368&3)]:var_368->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_368); /* item on */ } -var_ot411 = var410; +var_ot371 = var370; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_types (self) on */ -var414 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on */ -if (unlikely(var414 == NULL)) { +var374 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on */ +if (unlikely(var374 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 53); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 60); +fatal_exit(1); } -var412 = var414; -RET_LABEL413:(void)0; +var372 = var374; +RET_LABEL373:(void)0; } } -var_415 = var412; +var_375 = var372; { -var416 = standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_415); +var376 = standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_375); } -var_417 = var416; +var_377 = var376; for(;;) { { -var418 = ((short int (*)(val* self))(var_417->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_417) /* is_ok on */; +var378 = ((short int(*)(val* self))((((long)var_377&3)?class_info[((long)var_377&3)]:var_377->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_377); /* is_ok on */ } -if (var418){ +if (var378){ { -var419 = ((val* (*)(val* self))(var_417->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_417) /* item on */; +var379 = ((val*(*)(val* self))((((long)var_377&3)?class_info[((long)var_377&3)]:var_377->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_377); /* item on */ } -var_t420 = var419; +var_t380 = var379; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on */ -var423 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ -if (unlikely(var423 == NULL)) { +var383 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var383 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var421 = var423; -RET_LABEL422:(void)0; +var381 = var383; +RET_LABEL382:(void)0; } } { -var424 = ((short int (*)(val* self, val* p0, val* p1, val* p2))(var_ot411->class->vft[COLOR_nit__model__MType__can_resolve_for]))(var_ot411, var_t420, var_t420, var421) /* can_resolve_for on */; +var384 = ((short int(*)(val* self, val* p0, val* p1, val* p2))(var_ot371->class->vft[COLOR_nit__model__MType__can_resolve_for]))(var_ot371, var_t380, var_t380, var381); /* can_resolve_for on */ } -var425 = !var424; -if (var425){ -goto BREAK_label426; +var385 = !var384; +if (var385){ +goto BREAK_label386; } else { } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on */ -var429 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ -if (unlikely(var429 == NULL)) { +var389 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var389 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var427 = var429; -RET_LABEL428:(void)0; +var387 = var389; +RET_LABEL388:(void)0; } } { -var430 = ((val* (*)(val* self, val* p0, val* p1))(var_ot411->class->vft[COLOR_nit__model__MType__anchor_to]))(var_ot411, var427, var_t420) /* anchor_to on */; +var390 = ((val*(*)(val* self, val* p0, val* p1))(var_ot371->class->vft[COLOR_nit__model__MType__anchor_to]))(var_ot371, var387, var_t380); /* anchor_to on */ } -var_rt431 = var430; +var_rt391 = var390; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_cast_types (self) on */ -var434 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_cast_types].val; /* _live_cast_types on */ -if (unlikely(var434 == NULL)) { +var394 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_cast_types].val; /* _live_cast_types on */ +if (unlikely(var394 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 65); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 72); +fatal_exit(1); } -var432 = var434; -RET_LABEL433:(void)0; +var392 = var394; +RET_LABEL393:(void)0; } } { -standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var432, var_rt431); /* Direct call hash_collection#HashSet#add on */ +standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var392, var_rt391); /* Direct call hash_collection#HashSet#add on */ } -BREAK_label426: (void)0; +BREAK_label386: (void)0; { -((void (*)(val* self))(var_417->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_417) /* next on */; +((void(*)(val* self))((((long)var_377&3)?class_info[((long)var_377&3)]:var_377->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_377); /* next on */ } } else { -goto BREAK_label435; +goto BREAK_label395; } } -BREAK_label435: (void)0; +BREAK_label395: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_417) on */ -RET_LABEL436:(void)0; -} +((void(*)(val* self))((((long)var_377&3)?class_info[((long)var_377&3)]:var_377->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_377); /* finish on */ } { -((void (*)(val* self))(var_408->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_408) /* next on */; +((void(*)(val* self))((((long)var_368&3)?class_info[((long)var_368&3)]:var_368->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_368); /* next on */ } } else { -goto BREAK_label437; +goto BREAK_label396; } } -BREAK_label437: (void)0; +BREAK_label396: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_408) on */ -RET_LABEL438:(void)0; -} +((void(*)(val* self))((((long)var_368&3)?class_info[((long)var_368&3)]:var_368->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_368); /* finish on */ } RET_LABEL:; } -/* method rapid_type_analysis#RapidTypeAnalysis#check_depth for (self: RapidTypeAnalysis, MClassType) */ -void nit___nit__RapidTypeAnalysis___check_depth(val* self, val* p0) { +/* method rapid_type_analysis#RapidTypeAnalysis#check_depth for (self: RapidTypeAnalysis, MClassType): Bool */ +short int nit___nit__RapidTypeAnalysis___check_depth(val* self, val* p0) { +short int var /* : Bool */; val* var_mtype /* var mtype: MClassType */; -long var /* : Int */; -long var_d /* var d: Int */; long var1 /* : Int */; +long var_d /* var d: Int */; short int var2 /* : Bool */; short int var4 /* : Bool */; int cltype; @@ -2754,45 +3453,40 @@ val* var6 /* : ModelBuilder */; val* var8 /* : ModelBuilder */; val* var9 /* : ToolContext */; val* var11 /* : ToolContext */; -val* var12 /* : null */; +val* var12 /* : NativeArray[String] */; static val* varonce; -val* var13 /* : String */; -char* var14 /* : NativeString */; -long var15 /* : Int */; +static val* varonce13; +val* var14 /* : String */; +char* var15 /* : NativeString */; val* var16 /* : FlatString */; static val* varonce17; val* var18 /* : String */; char* var19 /* : NativeString */; -long var20 /* : Int */; -val* var21 /* : FlatString */; -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 /* : Object */; -val* var31 /* : String */; +val* var20 /* : FlatString */; +static val* varonce21; +val* var22 /* : String */; +char* var23 /* : NativeString */; +val* var24 /* : FlatString */; +val* var25 /* : String */; +val* var26 /* : String */; +val* var27 /* : String */; var_mtype = p0; { -var = ((long (*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__length]))(var_mtype) /* length on */; +var1 = ((long(*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__length]))(var_mtype); /* length on */ } -var_d = var; -var1 = 255; +var_d = var1; { -{ /* Inline kernel#Int#> (var_d,var1) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var4 = 1; /* easy isa OTHER*/ +{ /* Inline kernel#Int#> (var_d,255l) on */ +/* Covariant cast for argument 0 (i) <255l:Int> isa OTHER */ +/* <255l:Int> isa OTHER */ +var4 = 1; /* easy <255l:Int> isa OTHER*/ if (unlikely(!var4)) { var_class_name = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536); +fatal_exit(1); } -var5 = var_d > var1; +var5 = var_d > 255l; var2 = var5; goto RET_LABEL3; RET_LABEL3:(void)0; @@ -2804,8 +3498,8 @@ if (var2){ var8 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder].val; /* _modelbuilder on */ if (unlikely(var8 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 46); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 53); +fatal_exit(1); } var6 = var8; RET_LABEL7:(void)0; @@ -2817,63 +3511,66 @@ var11 = var6->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].va if (unlikely(var11 == 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); } var9 = var11; RET_LABEL10:(void)0; } } -var12 = NULL; -if (varonce) { -var13 = varonce; +if (unlikely(varonce==NULL)) { +var12 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce13!=NULL)) { +var14 = varonce13; } else { -var14 = "Fatal error: limitation in the rapidtype analysis engine: a type depth of "; -var15 = 74; -var16 = standard___standard__NativeString___to_s_with_length(var14, var15); -var13 = var16; -varonce = var13; +var15 = "Fatal Error: limitation in the rapidtype analysis engine: a type depth of "; +var16 = standard___standard__NativeString___to_s_with_length(var15, 74l); +var14 = var16; +varonce13 = var14; } -if (varonce17) { +((struct instance_standard__NativeArray*)var12)->values[0]=var14; +if (likely(varonce17!=NULL)) { var18 = varonce17; } else { -var19 = " is too important, the problematic type is "; -var20 = 43; -var21 = standard___standard__NativeString___to_s_with_length(var19, var20); -var18 = var21; +var19 = " is too important, the problematic type is `"; +var20 = standard___standard__NativeString___to_s_with_length(var19, 44l); +var18 = var20; varonce17 = var18; } -if (varonce22) { -var23 = varonce22; +((struct instance_standard__NativeArray*)var12)->values[2]=var18; +if (likely(varonce21!=NULL)) { +var22 = varonce21; +} else { +var23 = "`."; +var24 = standard___standard__NativeString___to_s_with_length(var23, 2l); +var22 = var24; +varonce21 = var22; +} +((struct instance_standard__NativeArray*)var12)->values[4]=var22; } else { -var24 = "."; -var25 = 1; -var26 = standard___standard__NativeString___to_s_with_length(var24, var25); -var23 = var26; -varonce22 = var23; +var12 = varonce; +varonce = NULL; } -var27 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var27 = array_instance Array[Object] */ -var28 = 5; -var29 = NEW_standard__NativeArray(var28, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var29)->values[0] = (val*) var13; -var30 = BOX_standard__Int(var_d); /* autobox from Int to Object */ -((struct instance_standard__NativeArray*)var29)->values[1] = (val*) var30; -((struct instance_standard__NativeArray*)var29)->values[2] = (val*) var18; -((struct instance_standard__NativeArray*)var29)->values[3] = (val*) var_mtype; -((struct instance_standard__NativeArray*)var29)->values[4] = (val*) var23; +var25 = standard__string___Int___Object__to_s(var_d); +((struct instance_standard__NativeArray*)var12)->values[1]=var25; { -((void (*)(val* self, val* p0, long p1))(var27->class->vft[COLOR_standard__array__Array__with_native]))(var27, var29, var28) /* with_native on */; -} +var26 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_standard__string__Object__to_s]))(var_mtype); /* to_s on */ } +((struct instance_standard__NativeArray*)var12)->values[3]=var26; { -var31 = ((val* (*)(val* self))(var27->class->vft[COLOR_standard__string__Object__to_s]))(var27) /* to_s on */; +var27 = ((val*(*)(val* self))(var12->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var12); /* native_to_s on */ } +varonce = var12; { -nit___nit__ToolContext___fatal_error(var9, var12, var31); /* Direct call toolcontext#ToolContext#fatal_error on */ +nit___nit__ToolContext___fatal_error(var9, ((val*)NULL), var27); /* Direct call toolcontext#ToolContext#fatal_error on */ } +var = 0; +goto RET_LABEL; } else { } +var = 1; +goto RET_LABEL; RET_LABEL:; +return var; } /* method rapid_type_analysis#RapidTypeAnalysis#add_new for (self: RapidTypeAnalysis, MClassType, MClassType) */ void nit___nit__RapidTypeAnalysis___add_new(val* self, val* p0, val* p1) { @@ -2908,73 +3605,73 @@ val* var_31 /* var : Iterator[MMethod] */; short int var32 /* : Bool */; val* var33 /* : nullable Object */; val* var_p /* var p: MMethod */; -val* var35 /* : HashSet[MMethodDef] */; -val* var37 /* : HashSet[MMethodDef] */; -val* var_38 /* var : HashSet[MMethodDef] */; -val* var39 /* : Iterator[nullable Object] */; -val* var_40 /* var : Iterator[MMethodDef] */; -short int var41 /* : Bool */; -val* var42 /* : nullable Object */; -val* var_p43 /* var p: MMethodDef */; +val* var34 /* : HashSet[MMethodDef] */; +val* var36 /* : HashSet[MMethodDef] */; +val* var_37 /* var : HashSet[MMethodDef] */; +val* var38 /* : Iterator[nullable Object] */; +val* var_39 /* var : Iterator[MMethodDef] */; +short int var40 /* : Bool */; +val* var41 /* : nullable Object */; +val* var_p42 /* var p: MMethodDef */; +val* var44 /* : Array[MMethod] */; val* var46 /* : Array[MMethod] */; -val* var48 /* : Array[MMethod] */; -val* var_49 /* var : Array[MMethod] */; -val* var50 /* : ArrayIterator[nullable Object] */; -val* var_51 /* var : ArrayIterator[MMethod] */; -short int var52 /* : Bool */; -val* var53 /* : nullable Object */; -val* var_p54 /* var p: MMethod */; +val* var_47 /* var : Array[MMethod] */; +val* var48 /* : ArrayIterator[nullable Object] */; +val* var_49 /* var : ArrayIterator[MMethod] */; +short int var50 /* : Bool */; +val* var51 /* : nullable Object */; +val* var_p52 /* var p: MMethod */; +val* var53 /* : HashSet[MMethod] */; val* var55 /* : HashSet[MMethod] */; -val* var57 /* : HashSet[MMethod] */; -val* var60 /* : Array[MMethod] */; -val* var62 /* : Array[MMethod] */; -val* var63 /* : MModule */; -val* var65 /* : MModule */; -val* var66 /* : MClassType */; +val* var57 /* : Array[MMethod] */; +val* var59 /* : Array[MMethod] */; +val* var60 /* : MModule */; +val* var62 /* : MModule */; +val* var63 /* : MClassType */; val* var_bound_mtype /* var bound_mtype: MClassType */; -val* var67 /* : MModule */; -val* var69 /* : MModule */; -val* var70 /* : Set[MClassDef] */; -val* var_71 /* var : Set[MClassDef] */; -val* var72 /* : Iterator[nullable Object] */; -val* var_73 /* var : Iterator[MClassDef] */; -short int var74 /* : Bool */; -val* var75 /* : nullable Object */; +val* var64 /* : MModule */; +val* var66 /* : MModule */; +val* var67 /* : Set[MClassDef] */; +val* var_68 /* var : Set[MClassDef] */; +val* var69 /* : Iterator[nullable Object] */; +val* var_70 /* var : Iterator[MClassDef] */; +short int var71 /* : Bool */; +val* var72 /* : nullable Object */; val* var_cd /* var cd: MClassDef */; -val* var76 /* : ModelBuilder */; -val* var78 /* : ModelBuilder */; -val* var79 /* : Array[AAttrPropdef] */; -val* var_80 /* var : Array[AAttrPropdef] */; -val* var81 /* : ArrayIterator[nullable Object] */; -val* var_82 /* var : ArrayIterator[AAttrPropdef] */; -short int var83 /* : Bool */; -val* var84 /* : nullable Object */; +val* var73 /* : ModelBuilder */; +val* var75 /* : ModelBuilder */; +val* var76 /* : Array[AAttrPropdef] */; +val* var_77 /* var : Array[AAttrPropdef] */; +val* var78 /* : ArrayIterator[nullable Object] */; +val* var_79 /* var : ArrayIterator[AAttrPropdef] */; +short int var80 /* : Bool */; +val* var81 /* : nullable Object */; val* var_npropdef /* var npropdef: AAttrPropdef */; +short int var82 /* : Bool */; +short int var84 /* : Bool */; short int var85 /* : Bool */; -short int var87 /* : Bool */; -short int var88 /* : Bool */; -val* var90 /* : nullable MPropDef */; -val* var92 /* : nullable MPropDef */; -val* var_mpropdef /* var mpropdef: MAttributeDef */; -val* var93 /* : RapidTypeVisitor */; +val* var87 /* : nullable MMethodDef */; +val* var89 /* : nullable MMethodDef */; +val* var_mpropdef /* var mpropdef: MMethodDef */; +val* var90 /* : RapidTypeVisitor */; val* var_v /* var v: RapidTypeVisitor */; +val* var91 /* : nullable AExpr */; +val* var93 /* : nullable AExpr */; val* var94 /* : nullable AExpr */; val* var96 /* : nullable AExpr */; -val* var97 /* : nullable AExpr */; -val* var99 /* : nullable AExpr */; var_recv = p0; var_mtype = p1; { -var = ((short int (*)(val* self))(var_recv->class->vft[COLOR_nit__model__MType__need_anchor]))(var_recv) /* need_anchor on */; +var = ((short int(*)(val* self))(var_recv->class->vft[COLOR_nit__model__MType__need_anchor]))(var_recv); /* need_anchor on */ } var1 = !var; if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 323); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 336); +fatal_exit(1); } { -var2 = ((short int (*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_mtype) /* need_anchor on */; +var2 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_mtype); /* need_anchor on */ } if (var2){ { @@ -2982,8 +3679,8 @@ if (var2){ var5 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_types].val; /* _live_open_types on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 58); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 65); +fatal_exit(1); } var3 = var5; RET_LABEL4:(void)0; @@ -3001,8 +3698,8 @@ goto RET_LABEL; var9 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_types].val; /* _live_open_types on */ if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 58); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 65); +fatal_exit(1); } var7 = var9; RET_LABEL8:(void)0; @@ -3017,8 +3714,8 @@ standard___standard__HashSet___standard__abstract_collection__SimpleCollection__ var12 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on */ if (unlikely(var12 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 53); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 60); +fatal_exit(1); } var10 = var12; RET_LABEL11:(void)0; @@ -3036,8 +3733,8 @@ goto RET_LABEL; var16 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on */ if (unlikely(var16 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 53); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 60); +fatal_exit(1); } var14 = var16; RET_LABEL15:(void)0; @@ -3052,8 +3749,8 @@ standard___standard__HashSet___standard__abstract_collection__SimpleCollection__ var19 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ if (unlikely(var19 == 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); } var17 = var19; RET_LABEL18:(void)0; @@ -3065,8 +3762,8 @@ var_mclass = var17; var22 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes].val; /* _live_classes on */ if (unlikely(var22 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 62); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 69); +fatal_exit(1); } var20 = var22; RET_LABEL21:(void)0; @@ -3084,8 +3781,8 @@ goto RET_LABEL; var26 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes].val; /* _live_classes on */ if (unlikely(var26 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 62); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 69); +fatal_exit(1); } var24 = var26; RET_LABEL25:(void)0; @@ -3099,8 +3796,8 @@ standard___standard__HashSet___standard__abstract_collection__SimpleCollection__ var29 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods].val; /* _totry_methods on */ if (unlikely(var29 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 162); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 169); +fatal_exit(1); } var27 = var29; RET_LABEL28:(void)0; @@ -3113,18 +3810,18 @@ var30 = standard___standard__HashSet___standard__abstract_collection__Collection var_31 = var30; for(;;) { { -var32 = ((short int (*)(val* self))(var_31->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_31) /* is_ok on */; +var32 = ((short int(*)(val* self))((((long)var_31&3)?class_info[((long)var_31&3)]:var_31->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_31); /* is_ok on */ } if (var32){ { -var33 = ((val* (*)(val* self))(var_31->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_31) /* item on */; +var33 = ((val*(*)(val* self))((((long)var_31&3)?class_info[((long)var_31&3)]:var_31->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_31); /* item on */ } var_p = var33; { nit___nit__RapidTypeAnalysis___try_send(self, var_mtype, var_p); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_send on */ } { -((void (*)(val* self))(var_31->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_31) /* next on */; +((void(*)(val* self))((((long)var_31&3)?class_info[((long)var_31&3)]:var_31->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_31); /* next on */ } } else { goto BREAK_label; @@ -3132,280 +3829,270 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_31) on */ -RET_LABEL34:(void)0; -} +((void(*)(val* self))((((long)var_31&3)?class_info[((long)var_31&3)]:var_31->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_31); /* finish on */ } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on */ -var37 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends].val; /* _live_super_sends on */ -if (unlikely(var37 == NULL)) { +var36 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends].val; /* _live_super_sends on */ +if (unlikely(var36 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 107); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 114); +fatal_exit(1); } -var35 = var37; -RET_LABEL36:(void)0; +var34 = var36; +RET_LABEL35:(void)0; } } -var_38 = var35; +var_37 = var34; { -var39 = standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_38); +var38 = standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_37); } -var_40 = var39; +var_39 = var38; for(;;) { { -var41 = ((short int (*)(val* self))(var_40->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_40) /* is_ok on */; +var40 = ((short int(*)(val* self))((((long)var_39&3)?class_info[((long)var_39&3)]:var_39->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_39); /* is_ok on */ } -if (var41){ +if (var40){ { -var42 = ((val* (*)(val* self))(var_40->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_40) /* item on */; +var41 = ((val*(*)(val* self))((((long)var_39&3)?class_info[((long)var_39&3)]:var_39->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_39); /* item on */ } -var_p43 = var42; +var_p42 = var41; { -nit___nit__RapidTypeAnalysis___try_super_send(self, var_mtype, var_p43); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_super_send on */ +nit___nit__RapidTypeAnalysis___try_super_send(self, var_mtype, var_p42); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_super_send on */ } { -((void (*)(val* self))(var_40->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_40) /* next on */; +((void(*)(val* self))((((long)var_39&3)?class_info[((long)var_39&3)]:var_39->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_39); /* next on */ } } else { -goto BREAK_label44; +goto BREAK_label43; } } -BREAK_label44: (void)0; +BREAK_label43: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_40) on */ -RET_LABEL45:(void)0; -} +((void(*)(val* self))((((long)var_39&3)?class_info[((long)var_39&3)]:var_39->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_39); /* finish on */ } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove (self) on */ -var48 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove].val; /* _totry_methods_to_remove on */ -if (unlikely(var48 == NULL)) { +var46 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove].val; /* _totry_methods_to_remove on */ +if (unlikely(var46 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 165); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 172); +fatal_exit(1); } -var46 = var48; -RET_LABEL47:(void)0; +var44 = var46; +RET_LABEL45:(void)0; } } -var_49 = var46; +var_47 = var44; { -var50 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_49); +var48 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_47); } -var_51 = var50; +var_49 = var48; for(;;) { { -var52 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_51); +var50 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_49); } -if (var52){ +if (var50){ { -var53 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_51); +var51 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_49); } -var_p54 = var53; +var_p52 = var51; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods (self) on */ -var57 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods].val; /* _totry_methods on */ -if (unlikely(var57 == NULL)) { +var55 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods].val; /* _totry_methods on */ +if (unlikely(var55 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 162); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 169); +fatal_exit(1); } -var55 = var57; -RET_LABEL56:(void)0; +var53 = var55; +RET_LABEL54:(void)0; } } { -standard___standard__HashSet___standard__abstract_collection__RemovableCollection__remove(var55, var_p54); /* Direct call hash_collection#HashSet#remove on */ +standard___standard__HashSet___standard__abstract_collection__RemovableCollection__remove(var53, var_p52); /* Direct call hash_collection#HashSet#remove on */ } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_51); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_49); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label58; +goto BREAK_label56; } } -BREAK_label58: (void)0; +BREAK_label56: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_51) on */ -RET_LABEL59:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_49); /* Direct call array#ArrayIterator#finish on */ } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove (self) on */ -var62 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove].val; /* _totry_methods_to_remove on */ -if (unlikely(var62 == NULL)) { +var59 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove].val; /* _totry_methods_to_remove on */ +if (unlikely(var59 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 165); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 172); +fatal_exit(1); } -var60 = var62; -RET_LABEL61:(void)0; +var57 = var59; +RET_LABEL58:(void)0; } } { -standard___standard__AbstractArray___standard__abstract_collection__RemovableCollection__clear(var60); /* Direct call array#AbstractArray#clear on */ +standard___standard__AbstractArray___standard__abstract_collection__RemovableCollection__clear(var57); /* Direct call array#AbstractArray#clear on */ } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on */ -var65 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ -if (unlikely(var65 == NULL)) { +var62 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var62 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var63 = var65; -RET_LABEL64:(void)0; +var60 = var62; +RET_LABEL61:(void)0; } } { -var66 = nit___nit__MClassType___MType__anchor_to(var_mtype, var63, var_recv); +var63 = nit___nit__MClassType___MType__anchor_to(var_mtype, var60, var_recv); } -var_bound_mtype = var66; +var_bound_mtype = var63; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (self) on */ -var69 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ -if (unlikely(var69 == NULL)) { +var66 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var66 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var67 = var69; -RET_LABEL68:(void)0; +var64 = var66; +RET_LABEL65:(void)0; } } { -var70 = nit___nit__MClassType___MType__collect_mclassdefs(var_bound_mtype, var67); +var67 = nit___nit__MClassType___MType__collect_mclassdefs(var_bound_mtype, var64); } -var_71 = var70; +var_68 = var67; { -var72 = ((val* (*)(val* self))(var_71->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_71) /* iterator on */; +var69 = ((val*(*)(val* self))((((long)var_68&3)?class_info[((long)var_68&3)]:var_68->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_68); /* iterator on */ } -var_73 = var72; +var_70 = var69; for(;;) { { -var74 = ((short int (*)(val* self))(var_73->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_73) /* is_ok on */; +var71 = ((short int(*)(val* self))((((long)var_70&3)?class_info[((long)var_70&3)]:var_70->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_70); /* is_ok on */ } -if (var74){ +if (var71){ { -var75 = ((val* (*)(val* self))(var_73->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_73) /* item on */; +var72 = ((val*(*)(val* self))((((long)var_70&3)?class_info[((long)var_70&3)]:var_70->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_70); /* item on */ } -var_cd = var75; +var_cd = var72; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (self) on */ -var78 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder].val; /* _modelbuilder on */ -if (unlikely(var78 == NULL)) { +var75 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var75 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 46); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 53); +fatal_exit(1); } -var76 = var78; -RET_LABEL77:(void)0; +var73 = var75; +RET_LABEL74:(void)0; } } { -var79 = nit__modelize_property___ModelBuilder___collect_attr_propdef(var76, var_cd); +var76 = nit__modelize_property___ModelBuilder___collect_attr_propdef(var73, var_cd); } -var_80 = var79; +var_77 = var76; { -var81 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_80); +var78 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_77); } -var_82 = var81; +var_79 = var78; for(;;) { { -var83 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_82); +var80 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_79); } -if (var83){ +if (var80){ { -var84 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_82); +var81 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_79); } -var_npropdef = var84; +var_npropdef = var81; { { /* Inline modelize_property#AAttrPropdef#has_value (var_npropdef) on */ -var87 = var_npropdef->attrs[COLOR_nit__modelize_property__AAttrPropdef___has_value].s; /* _has_value on */ -var85 = var87; -RET_LABEL86:(void)0; +var84 = var_npropdef->attrs[COLOR_nit__modelize_property__AAttrPropdef___has_value].s; /* _has_value on */ +var82 = var84; +RET_LABEL83:(void)0; } } -var88 = !var85; -if (var88){ -goto BREAK_label89; +var85 = !var82; +if (var85){ +goto BREAK_label86; } else { } { -{ /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on */ -var92 = var_npropdef->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on */ -var90 = var92; -RET_LABEL91:(void)0; +{ /* Inline modelize_property#AAttrPropdef#mreadpropdef (var_npropdef) on */ +var89 = var_npropdef->attrs[COLOR_nit__modelize_property__AAttrPropdef___mreadpropdef].val; /* _mreadpropdef on */ +var87 = var89; +RET_LABEL88:(void)0; } } -if (unlikely(var90 == NULL)) { +if (unlikely(var87 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 349); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 362); +fatal_exit(1); } -var_mpropdef = var90; -var93 = NEW_nit__RapidTypeVisitor(&type_nit__RapidTypeVisitor); +var_mpropdef = var87; +var90 = NEW_nit__RapidTypeVisitor(&type_nit__RapidTypeVisitor); { -((void (*)(val* self, val* p0))(var93->class->vft[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__analysis_61d]))(var93, self) /* analysis= on */; +((void(*)(val* self, val* p0))(var90->class->vft[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__analysis_61d]))(var90, self); /* analysis= on */ } { -((void (*)(val* self, val* p0))(var93->class->vft[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__receiver_61d]))(var93, var_bound_mtype) /* receiver= on */; +((void(*)(val* self, val* p0))(var90->class->vft[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__receiver_61d]))(var90, var_bound_mtype); /* receiver= on */ } { -((void (*)(val* self, val* p0))(var93->class->vft[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__mpropdef_61d]))(var93, var_mpropdef) /* mpropdef= on */; +((void(*)(val* self, val* p0))(var90->class->vft[COLOR_nit__rapid_type_analysis__RapidTypeVisitor__mpropdef_61d]))(var90, var_mpropdef); /* mpropdef= on */ } { -((void (*)(val* self))(var93->class->vft[COLOR_standard__kernel__Object__init]))(var93) /* init on */; +((void(*)(val* self))(var90->class->vft[COLOR_standard__kernel__Object__init]))(var90); /* init on */ } -var_v = var93; +var_v = var90; { { /* Inline parser_nodes#AAttrPropdef#n_expr (var_npropdef) on */ -var96 = var_npropdef->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_expr].val; /* _n_expr on */ -var94 = var96; -RET_LABEL95:(void)0; +var93 = var_npropdef->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_expr].val; /* _n_expr on */ +var91 = var93; +RET_LABEL92:(void)0; } } { -nit___nit__Visitor___enter_visit(var_v, var94); /* Direct call parser_nodes#Visitor#enter_visit on */ +nit___nit__Visitor___enter_visit(var_v, var91); /* Direct call parser_nodes#Visitor#enter_visit on */ } { { /* Inline parser_nodes#AAttrPropdef#n_block (var_npropdef) on */ -var99 = var_npropdef->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_block].val; /* _n_block on */ -var97 = var99; -RET_LABEL98:(void)0; +var96 = var_npropdef->attrs[COLOR_nit__parser_nodes__AAttrPropdef___n_block].val; /* _n_block on */ +var94 = var96; +RET_LABEL95:(void)0; } } { -nit___nit__Visitor___enter_visit(var_v, var97); /* Direct call parser_nodes#Visitor#enter_visit on */ +nit___nit__Visitor___enter_visit(var_v, var94); /* Direct call parser_nodes#Visitor#enter_visit on */ } -BREAK_label89: (void)0; +BREAK_label86: (void)0; { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_82); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_79); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label100; +goto BREAK_label97; } } -BREAK_label100: (void)0; +BREAK_label97: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_82) on */ -RET_LABEL101:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_79); /* Direct call array#ArrayIterator#finish on */ } { -((void (*)(val* self))(var_73->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_73) /* next on */; +((void(*)(val* self))((((long)var_70&3)?class_info[((long)var_70&3)]:var_70->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_70); /* next on */ } } else { -goto BREAK_label102; +goto BREAK_label98; } } -BREAK_label102: (void)0; +BREAK_label98: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_73) on */ -RET_LABEL103:(void)0; -} +((void(*)(val* self))((((long)var_70&3)?class_info[((long)var_70&3)]:var_70->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_70); /* finish on */ } RET_LABEL:; } @@ -3419,7 +4106,7 @@ val* var4 /* : HashSet[MType] */; val* var6 /* : HashSet[MType] */; var_mtype = p0; { -var = ((short int (*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_mtype) /* need_anchor on */; +var = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_mtype); /* need_anchor on */ } if (var){ { @@ -3427,8 +4114,8 @@ if (var){ var3 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_open_cast_types].val; /* _live_open_cast_types on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_open_cast_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 68); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 75); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -3443,8 +4130,8 @@ standard___standard__HashSet___standard__abstract_collection__SimpleCollection__ var6 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_cast_types].val; /* _live_cast_types on */ if (unlikely(var6 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 65); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 72); +fatal_exit(1); } var4 = var6; RET_LABEL5:(void)0; @@ -3481,8 +4168,8 @@ var_mproperty = p1; var2 = var_recv->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ if (unlikely(var2 == 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); } var = var2; RET_LABEL1:(void)0; @@ -3493,8 +4180,8 @@ RET_LABEL1:(void)0; var5 = var->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ if (unlikely(var5 == 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); } var3 = var5; RET_LABEL4:(void)0; @@ -3505,8 +4192,8 @@ RET_LABEL4:(void)0; var8 = var3->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ if (unlikely(var8 == 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); } var6 = var8; RET_LABEL7:(void)0; @@ -3518,8 +4205,8 @@ var_recv = var6; var11 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ if (unlikely(var11 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } var9 = var11; RET_LABEL10:(void)0; @@ -3538,8 +4225,8 @@ goto RET_LABEL; var16 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ if (unlikely(var16 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } var14 = var16; RET_LABEL15:(void)0; @@ -3571,39 +4258,36 @@ val* var13 /* : Array[MPropDef] */; val* var15 /* : Array[MPropDef] */; long var16 /* : Int */; long var18 /* : Int */; -long var19 /* : Int */; -short int var20 /* : Bool */; -short int var22 /* : Bool */; +short int var19 /* : Bool */; +short int var21 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var23 /* : Bool */; -val* var24 /* : Array[MPropDef] */; -val* var26 /* : Array[MPropDef] */; +short int var22 /* : Bool */; +val* var23 /* : Array[MPropDef] */; +val* var25 /* : Array[MPropDef] */; val* var_ /* var : Array[MMethodDef] */; -val* var27 /* : ArrayIterator[nullable Object] */; -val* var_28 /* var : ArrayIterator[MMethodDef] */; -short int var29 /* : Bool */; -val* var30 /* : nullable Object */; +val* var26 /* : ArrayIterator[nullable Object] */; +val* var_27 /* var : ArrayIterator[MMethodDef] */; +short int var28 /* : Bool */; +val* var29 /* : nullable Object */; val* var_d /* var d: MMethodDef */; -short int var31 /* : Bool */; +val* var30 /* : HashSet[MMethodDef] */; +val* var32 /* : HashSet[MMethodDef] */; short int var33 /* : Bool */; -val* var34 /* : HashSet[MMethodDef] */; -val* var36 /* : HashSet[MMethodDef] */; -short int var37 /* : Bool */; -short int var38 /* : Bool */; -val* var41 /* : Array[MMethod] */; -val* var43 /* : Array[MMethod] */; -val* var44 /* : MProperty */; -val* var46 /* : MProperty */; +short int var34 /* : Bool */; +val* var35 /* : Array[MMethod] */; +val* var37 /* : Array[MMethod] */; +val* var38 /* : MProperty */; +val* var40 /* : MProperty */; var_mpropdef = p0; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (self) on */ var2 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs].val; /* _live_methoddefs on */ if (unlikely(var2 == 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); } var = var2; RET_LABEL1:(void)0; @@ -3621,8 +4305,8 @@ goto RET_LABEL; var6 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs].val; /* _live_methoddefs on */ if (unlikely(var6 == 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); } var4 = var6; RET_LABEL5:(void)0; @@ -3636,8 +4320,8 @@ standard___standard__HashSet___standard__abstract_collection__SimpleCollection__ var9 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___todo].val; /* _todo on */ if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _todo"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 172); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 179); +fatal_exit(1); } var7 = var9; RET_LABEL8:(void)0; @@ -3651,8 +4335,8 @@ standard___standard__Sequence___SimpleCollection__add(var7, var_mpropdef); /* Di var12 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on */ if (unlikely(var12 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212); +fatal_exit(1); } var10 = var12; RET_LABEL11:(void)0; @@ -3664,8 +4348,8 @@ var_mproperty = var10; var15 = var_mproperty->attrs[COLOR_nit__model__MProperty___mpropdefs].val; /* _mpropdefs on */ if (unlikely(var15 == 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); } var13 = var15; RET_LABEL14:(void)0; @@ -3678,125 +4362,110 @@ var16 = var18; RET_LABEL17:(void)0; } } -var19 = 1; { -{ /* Inline kernel#Int#<= (var16,var19) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var22 = 1; /* easy isa OTHER*/ -if (unlikely(!var22)) { +{ /* Inline kernel#Int#<= (var16,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var21 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var21)) { var_class_name = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533); +fatal_exit(1); } -var23 = var16 <= var19; -var20 = var23; -goto RET_LABEL21; -RET_LABEL21:(void)0; +var22 = var16 <= 1l; +var19 = var22; +goto RET_LABEL20; +RET_LABEL20:(void)0; } } -if (var20){ +if (var19){ goto RET_LABEL; } else { } { { /* Inline model#MProperty#mpropdefs (var_mproperty) on */ -var26 = var_mproperty->attrs[COLOR_nit__model__MProperty___mpropdefs].val; /* _mpropdefs on */ -if (unlikely(var26 == NULL)) { +var25 = var_mproperty->attrs[COLOR_nit__model__MProperty___mpropdefs].val; /* _mpropdefs on */ +if (unlikely(var25 == 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); } -var24 = var26; -RET_LABEL25:(void)0; +var23 = var25; +RET_LABEL24:(void)0; } } -var_ = var24; +var_ = var23; { -var27 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); +var26 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); } -var_28 = var27; +var_27 = var26; for(;;) { { -var29 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_28); +var28 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_27); } -if (var29){ -{ -var30 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_28); -} -var_d = var30; +if (var28){ { -{ /* Inline model#MMethodDef#is_abstract (var_d) on */ -var33 = var_d->attrs[COLOR_nit__model__MMethodDef___is_abstract].s; /* _is_abstract on */ -var31 = var33; -RET_LABEL32:(void)0; -} -} -if (var31){ -goto BREAK_label; -} else { +var29 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_27); } +var_d = var29; { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_methoddefs (self) on */ -var36 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs].val; /* _live_methoddefs on */ -if (unlikely(var36 == NULL)) { +var32 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs].val; /* _live_methoddefs on */ +if (unlikely(var32 == 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); } -var34 = var36; -RET_LABEL35:(void)0; +var30 = var32; +RET_LABEL31:(void)0; } } { -var37 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var34, var_d); +var33 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var30, var_d); } -var38 = !var37; -if (var38){ +var34 = !var33; +if (var34){ goto RET_LABEL; } else { } -BREAK_label: (void)0; { -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_27); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label39; +goto BREAK_label; } } -BREAK_label39: (void)0; +BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_28) on */ -RET_LABEL40:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_27); /* Direct call array#ArrayIterator#finish on */ } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods_to_remove (self) on */ -var43 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove].val; /* _totry_methods_to_remove on */ -if (unlikely(var43 == NULL)) { +var37 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods_to_remove].val; /* _totry_methods_to_remove on */ +if (unlikely(var37 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods_to_remove"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 165); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 172); +fatal_exit(1); } -var41 = var43; -RET_LABEL42:(void)0; +var35 = var37; +RET_LABEL36:(void)0; } } { { /* Inline model#MPropDef#mproperty (var_mpropdef) on */ -var46 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on */ -if (unlikely(var46 == NULL)) { +var40 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on */ +if (unlikely(var40 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212); +fatal_exit(1); } -var44 = var46; -RET_LABEL45:(void)0; +var38 = var40; +RET_LABEL39:(void)0; } } { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var41, var44); /* Direct call array#Array#add on */ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var35, var38); /* Direct call array#Array#add on */ } RET_LABEL:; } @@ -3815,27 +4484,26 @@ val* var10 /* : Array[MPropDef] */; val* var12 /* : Array[MPropDef] */; long var13 /* : Int */; long var15 /* : Int */; -long var16 /* : Int */; -short int var17 /* : Bool */; -short int var19 /* : Bool */; -val* var20 /* : Array[MPropDef] */; -val* var22 /* : Array[MPropDef] */; -val* var23 /* : nullable Object */; +short int var16 /* : Bool */; +short int var18 /* : Bool */; +val* var19 /* : Array[MPropDef] */; +val* var21 /* : Array[MPropDef] */; +val* var22 /* : nullable Object */; val* var_d /* var d: MMethodDef */; -val* var24 /* : HashSet[MMethod] */; -val* var26 /* : HashSet[MMethod] */; -val* var27 /* : HashSet[MClass] */; -val* var29 /* : HashSet[MClass] */; +val* var23 /* : HashSet[MMethod] */; +val* var25 /* : HashSet[MMethod] */; +val* var26 /* : HashSet[MClass] */; +val* var28 /* : HashSet[MClass] */; val* var_ /* var : HashSet[MClass] */; -val* var30 /* : Iterator[nullable Object] */; -val* var_31 /* var : Iterator[MClass] */; -short int var32 /* : Bool */; -val* var33 /* : nullable Object */; +val* var29 /* : Iterator[nullable Object] */; +val* var_30 /* var : Iterator[MClass] */; +short int var31 /* : Bool */; +val* var32 /* : nullable Object */; val* var_c /* var c: MClass */; -val* var34 /* : MClassDef */; -val* var36 /* : MClassDef */; -val* var37 /* : MClassType */; -val* var39 /* : MClassType */; +val* var33 /* : MClassDef */; +val* var35 /* : MClassDef */; +val* var36 /* : MClassType */; +val* var38 /* : MClassType */; var_recv = p0; var_mproperty = p1; { @@ -3843,8 +4511,8 @@ var_mproperty = p1; var2 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___try_methods].val; /* _try_methods on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_methods"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 168); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 175); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; @@ -3862,8 +4530,8 @@ goto RET_LABEL; var6 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methods].val; /* _live_methods on */ if (unlikely(var6 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 75); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 82); +fatal_exit(1); } var4 = var6; RET_LABEL5:(void)0; @@ -3877,8 +4545,8 @@ standard___standard__HashSet___standard__abstract_collection__SimpleCollection__ var9 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___try_methods].val; /* _try_methods on */ if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_methods"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 168); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 175); +fatal_exit(1); } var7 = var9; RET_LABEL8:(void)0; @@ -3892,8 +4560,8 @@ standard___standard__HashSet___standard__abstract_collection__SimpleCollection__ var12 = var_mproperty->attrs[COLOR_nit__model__MProperty___mpropdefs].val; /* _mpropdefs on */ if (unlikely(var12 == 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); } var10 = var12; RET_LABEL11:(void)0; @@ -3906,32 +4574,31 @@ var13 = var15; RET_LABEL14:(void)0; } } -var16 = 1; { -{ /* Inline kernel#Int#== (var13,var16) on */ -var19 = var13 == var16; -var17 = var19; -goto RET_LABEL18; -RET_LABEL18:(void)0; +{ /* Inline kernel#Int#== (var13,1l) on */ +var18 = var13 == 1l; +var16 = var18; +goto RET_LABEL17; +RET_LABEL17:(void)0; } } -if (var17){ +if (var16){ { { /* Inline model#MProperty#mpropdefs (var_mproperty) on */ -var22 = var_mproperty->attrs[COLOR_nit__model__MProperty___mpropdefs].val; /* _mpropdefs on */ -if (unlikely(var22 == NULL)) { +var21 = var_mproperty->attrs[COLOR_nit__model__MProperty___mpropdefs].val; /* _mpropdefs on */ +if (unlikely(var21 == 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); } -var20 = var22; -RET_LABEL21:(void)0; +var19 = var21; +RET_LABEL20:(void)0; } } { -var23 = standard___standard__SequenceRead___Collection__first(var20); +var22 = standard___standard__SequenceRead___Collection__first(var19); } -var_d = var23; +var_d = var22; { nit___nit__RapidTypeAnalysis___add_call(self, var_d); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_call on */ } @@ -3940,74 +4607,74 @@ goto RET_LABEL; } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#totry_methods (self) on */ -var26 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods].val; /* _totry_methods on */ -if (unlikely(var26 == NULL)) { +var25 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___totry_methods].val; /* _totry_methods on */ +if (unlikely(var25 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _totry_methods"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 162); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 169); +fatal_exit(1); } -var24 = var26; -RET_LABEL25:(void)0; +var23 = var25; +RET_LABEL24:(void)0; } } { -standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var24, var_mproperty); /* Direct call hash_collection#HashSet#add on */ +standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var23, var_mproperty); /* Direct call hash_collection#HashSet#add on */ } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_classes (self) on */ -var29 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes].val; /* _live_classes on */ -if (unlikely(var29 == NULL)) { +var28 = self->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); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 69); +fatal_exit(1); } -var27 = var29; -RET_LABEL28:(void)0; +var26 = var28; +RET_LABEL27:(void)0; } } -var_ = var27; +var_ = var26; { -var30 = standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_); +var29 = standard___standard__HashSet___standard__abstract_collection__Collection__iterator(var_); } -var_31 = var30; +var_30 = var29; for(;;) { { -var32 = ((short int (*)(val* self))(var_31->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_31) /* is_ok on */; +var31 = ((short int(*)(val* self))((((long)var_30&3)?class_info[((long)var_30&3)]:var_30->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_30); /* is_ok on */ } -if (var32){ +if (var31){ { -var33 = ((val* (*)(val* self))(var_31->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_31) /* item on */; +var32 = ((val*(*)(val* self))((((long)var_30&3)?class_info[((long)var_30&3)]:var_30->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_30); /* item on */ } -var_c = var33; +var_c = var32; { { /* Inline model#MClass#intro (var_c) on */ -var36 = var_c->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ -if (unlikely(var36 == NULL)) { +var35 = var_c->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ +if (unlikely(var35 == 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); } -var34 = var36; -RET_LABEL35:(void)0; +var33 = var35; +RET_LABEL34:(void)0; } } { -{ /* Inline model#MClassDef#bound_mtype (var34) on */ -var39 = var34->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ -if (unlikely(var39 == NULL)) { +{ /* Inline model#MClassDef#bound_mtype (var33) on */ +var38 = var33->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var38 == 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); } -var37 = var39; -RET_LABEL38:(void)0; +var36 = var38; +RET_LABEL37:(void)0; } } { -nit___nit__RapidTypeAnalysis___try_send(self, var37, var_mproperty); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_send on */ +nit___nit__RapidTypeAnalysis___try_send(self, var36, var_mproperty); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_send on */ } { -((void (*)(val* self))(var_31->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_31) /* next on */; +((void(*)(val* self))((((long)var_30&3)?class_info[((long)var_30&3)]:var_30->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_30); /* next on */ } } else { goto BREAK_label; @@ -4015,9 +4682,7 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_31) on */ -RET_LABEL40:(void)0; -} +((void(*)(val* self))((((long)var_30&3)?class_info[((long)var_30&3)]:var_30->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_30); /* finish on */ } RET_LABEL:; } @@ -4049,8 +4714,8 @@ var_mpropdef = p1; var2 = var_recv->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ if (unlikely(var2 == 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); } var = var2; RET_LABEL1:(void)0; @@ -4061,8 +4726,8 @@ RET_LABEL1:(void)0; var5 = var->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ if (unlikely(var5 == 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); } var3 = var5; RET_LABEL4:(void)0; @@ -4073,8 +4738,8 @@ RET_LABEL4:(void)0; var8 = var3->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ if (unlikely(var8 == 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); } var6 = var8; RET_LABEL7:(void)0; @@ -4086,8 +4751,8 @@ var_recv = var6; var11 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ if (unlikely(var11 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } var9 = var11; RET_LABEL10:(void)0; @@ -4101,15 +4766,15 @@ var12 = nit___nit__MClassType___MType__collect_mclassdefs(var_recv, var9); var15 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ if (unlikely(var15 == 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); } var13 = var15; RET_LABEL14:(void)0; } } { -var16 = ((short int (*)(val* self, val* p0))(var12->class->vft[COLOR_standard__abstract_collection__Collection__has]))(var12, var13) /* has on */; +var16 = ((short int(*)(val* self, val* p0))((((long)var12&3)?class_info[((long)var12&3)]:var12->class)->vft[COLOR_standard__abstract_collection__Collection__has]))(var12, var13); /* has on */ } var17 = !var16; if (var17){ @@ -4121,8 +4786,8 @@ goto RET_LABEL; var20 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ if (unlikely(var20 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } var18 = var20; RET_LABEL19:(void)0; @@ -4171,16 +4836,16 @@ RET_LABEL1:(void)0; } if (unlikely(!var)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 422); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 434); +fatal_exit(1); } { { /* Inline rapid_type_analysis#RapidTypeAnalysis#live_super_sends (self) on */ var5 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends].val; /* _live_super_sends on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 107); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 114); +fatal_exit(1); } var3 = var5; RET_LABEL4:(void)0; @@ -4198,8 +4863,8 @@ goto RET_LABEL; var9 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_super_sends].val; /* _live_super_sends on */ if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_super_sends"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 107); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 114); +fatal_exit(1); } var7 = var9; RET_LABEL8:(void)0; @@ -4213,8 +4878,8 @@ standard___standard__HashSet___standard__abstract_collection__SimpleCollection__ var12 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_classes].val; /* _live_classes on */ if (unlikely(var12 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 62); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 69); +fatal_exit(1); } var10 = var12; RET_LABEL11:(void)0; @@ -4227,11 +4892,11 @@ var13 = standard___standard__HashSet___standard__abstract_collection__Collection var_14 = var13; for(;;) { { -var15 = ((short int (*)(val* self))(var_14->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_14) /* is_ok on */; +var15 = ((short int(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_14); /* is_ok on */ } if (var15){ { -var16 = ((val* (*)(val* self))(var_14->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_14) /* item on */; +var16 = ((val*(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_14); /* item on */ } var_c = var16; { @@ -4239,8 +4904,8 @@ var_c = var16; var19 = var_c->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ if (unlikely(var19 == 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); } var17 = var19; RET_LABEL18:(void)0; @@ -4251,8 +4916,8 @@ RET_LABEL18:(void)0; var22 = var17->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ if (unlikely(var22 == 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); } var20 = var22; RET_LABEL21:(void)0; @@ -4262,7 +4927,7 @@ RET_LABEL21:(void)0; nit___nit__RapidTypeAnalysis___try_super_send(self, var20, var_mpropdef); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_super_send on */ } { -((void (*)(val* self))(var_14->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_14) /* next on */; +((void(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_14); /* next on */ } } else { goto BREAK_label; @@ -4270,16 +4935,14 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_14) on */ -RET_LABEL23:(void)0; -} +((void(*)(val* self))((((long)var_14&3)?class_info[((long)var_14&3)]:var_14->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_14); /* finish on */ } RET_LABEL:; } /* method rapid_type_analysis#RapidTypeAnalysis#init for (self: RapidTypeAnalysis) */ void nit___nit__RapidTypeAnalysis___standard__kernel__Object__init(val* self) { { -((void (*)(val* self))(self->class->vft[COLOR_nit___nit__RapidTypeAnalysis___standard__kernel__Object__init]))(self) /* init on */; +((void(*)(val* self))(self->class->vft[COLOR_nit___nit__RapidTypeAnalysis___standard__kernel__Object__init]))(self); /* init on */ } RET_LABEL:; } @@ -4290,8 +4953,8 @@ val* var1 /* : RapidTypeAnalysis */; var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 435); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 447); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -4309,8 +4972,8 @@ val* var1 /* : MClassType */; var1 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver].val; /* _receiver on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 436); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 448); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -4333,28 +4996,28 @@ val* var2 /* : MClassType */; short int var3 /* : Bool */; short int var4 /* : Bool */; { -((void (*)(val* self))(self->class->vft[COLOR_nit___nit__RapidTypeVisitor___standard__kernel__Object__init]))(self) /* init on */; +((void(*)(val* self))(self->class->vft[COLOR_nit___nit__RapidTypeVisitor___standard__kernel__Object__init]))(self); /* init on */ } { { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (self) on */ var2 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver].val; /* _receiver on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 436); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 448); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; } } { -var3 = ((short int (*)(val* self))(var->class->vft[COLOR_nit__model__MType__need_anchor]))(var) /* need_anchor on */; +var3 = ((short int(*)(val* self))(var->class->vft[COLOR_nit__model__MType__need_anchor]))(var); /* need_anchor on */ } var4 = !var3; if (unlikely(!var4)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 441); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 453); +fatal_exit(1); } RET_LABEL:; } @@ -4364,23 +5027,28 @@ val* var_n /* var n: ANode */; short int var /* : Bool */; int cltype; int idtype; -val* var1 /* : nullable MType */; -val* var3 /* : nullable MType */; -val* var_implicit_cast_to /* var implicit_cast_to: nullable MType */; -val* var4 /* : null */; -short int var5 /* : Bool */; -short int var6 /* : Bool */; +short int var1 /* : Bool */; +val* var2 /* : nullable MType */; +short int var3 /* : Bool */; +short int var4 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var6 /* : Bool */; +short int var7 /* : Bool */; +short int var_ /* var : Bool */; short int var8 /* : Bool */; -short int var9 /* : Bool */; short int var10 /* : Bool */; -int cltype11; -int idtype12; -short int var13 /* : Bool */; +val* var11 /* : nullable MType */; +val* var13 /* : nullable MType */; +val* var_implicit_cast_to /* var implicit_cast_to: nullable MType */; +short int var14 /* : Bool */; +short int var15 /* : Bool */; +short int var17 /* : Bool */; +short int var18 /* : Bool */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +short int var22 /* : Bool */; var_n = p0; -{ -((void (*)(val* self, val* p0))(var_n->class->vft[COLOR_nit__rapid_type_analysis__ANode__accept_rapid_type_visitor]))(var_n, self) /* accept_rapid_type_visitor on */; -} /* isa AExpr */ cltype = type_nit__AExpr.color; idtype = type_nit__AExpr.id; @@ -4391,33 +5059,70 @@ var = var_n->type->type_table[cltype] == idtype; } if (var){ { +var2 = ((val*(*)(val* self))(var_n->class->vft[COLOR_nit__typing__AExpr__mtype]))(var_n); /* mtype on */ +} +if (var2 == NULL) { +var3 = 0; /* is null */ +} else { +var3 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var2,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var6 = ((short int(*)(val* self, val* p0))(var2->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var2, var_other); /* == on */ +} +var7 = !var6; +var4 = var7; +goto RET_LABEL5; +RET_LABEL5:(void)0; +} +var3 = var4; +} +var_ = var3; +if (var3){ +var1 = var_; +} else { +{ +{ /* Inline typing#AExpr#is_typed (var_n) on */ +var10 = var_n->attrs[COLOR_nit__typing__AExpr___is_typed].s; /* _is_typed on */ +var8 = var10; +RET_LABEL9:(void)0; +} +} +var1 = var8; +} +if (var1){ +{ +((void(*)(val* self, val* p0))(var_n->class->vft[COLOR_nit__rapid_type_analysis__ANode__accept_rapid_type_visitor]))(var_n, self); /* accept_rapid_type_visitor on */ +} +{ { /* Inline typing#AExpr#implicit_cast_to (var_n) on */ -var3 = var_n->attrs[COLOR_nit__typing__AExpr___implicit_cast_to].val; /* _implicit_cast_to on */ -var1 = var3; -RET_LABEL2:(void)0; +var13 = var_n->attrs[COLOR_nit__typing__AExpr___implicit_cast_to].val; /* _implicit_cast_to on */ +var11 = var13; +RET_LABEL12:(void)0; } } -var_implicit_cast_to = var1; -var4 = NULL; +var_implicit_cast_to = var11; if (var_implicit_cast_to == NULL) { -var5 = 0; /* is null */ +var14 = 0; /* is null */ } else { -var5 = 1; /* arg is null and recv is not */ +var14 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_implicit_cast_to,var4) on */ -var_other = var4; +{ /* Inline kernel#Object#!= (var_implicit_cast_to,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var8 = ((short int (*)(val* self, val* p0))(var_implicit_cast_to->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_implicit_cast_to, var_other) /* == on */; +var17 = ((short int(*)(val* self, val* p0))(var_implicit_cast_to->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_implicit_cast_to, var_other); /* == on */ } -var9 = !var8; -var6 = var9; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var18 = !var17; +var15 = var18; +goto RET_LABEL16; +RET_LABEL16:(void)0; } -var5 = var6; +var14 = var15; } -if (var5){ +if (var14){ { nit___nit__RapidTypeVisitor___add_cast_type(self, var_implicit_cast_to); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_cast_type on */ } @@ -4425,18 +5130,23 @@ nit___nit__RapidTypeVisitor___add_cast_type(self, var_implicit_cast_to); /* Dire } } else { } +} else { +{ +((void(*)(val* self, val* p0))(var_n->class->vft[COLOR_nit__rapid_type_analysis__ANode__accept_rapid_type_visitor]))(var_n, self); /* accept_rapid_type_visitor on */ +} +} /* isa AAnnotations */ -cltype11 = type_nit__AAnnotations.color; -idtype12 = type_nit__AAnnotations.id; -if(cltype11 >= var_n->type->table_size) { -var10 = 0; +cltype20 = type_nit__AAnnotations.color; +idtype21 = type_nit__AAnnotations.id; +if(cltype20 >= var_n->type->table_size) { +var19 = 0; } else { -var10 = var_n->type->type_table[cltype11] == idtype12; +var19 = var_n->type->type_table[cltype20] == idtype21; } -var13 = !var10; -if (var13){ +var22 = !var19; +if (var22){ { -((void (*)(val* self, val* p0))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__visit_all]))(var_n, self) /* visit_all on */; +((void(*)(val* self, val* p0))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__visit_all]))(var_n, self); /* visit_all on */ } } else { } @@ -4456,21 +5166,20 @@ val* var10 /* : MType */; short int var11 /* : Bool */; int cltype; int idtype; -val* var12 /* : null */; -val* var13 /* : MType */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; +val* var12 /* : MType */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +short int var16 /* : Bool */; short int var17 /* : Bool */; -short int var18 /* : Bool */; var_mtype = p0; { { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on */ var3 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 435); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 447); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -4481,8 +5190,8 @@ RET_LABEL2:(void)0; var6 = var1->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ if (unlikely(var6 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } var4 = var6; RET_LABEL5:(void)0; @@ -4493,15 +5202,15 @@ RET_LABEL5:(void)0; var9 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver].val; /* _receiver on */ if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 436); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 448); +fatal_exit(1); } var7 = var9; RET_LABEL8:(void)0; } } { -var10 = ((val* (*)(val* self, val* p0, val* p1))(var_mtype->class->vft[COLOR_nit__model__MType__anchor_to]))(var_mtype, var4, var7) /* anchor_to on */; +var10 = ((val*(*)(val* self, val* p0, val* p1))(var_mtype->class->vft[COLOR_nit__model__MType__anchor_to]))(var_mtype, var4, var7); /* anchor_to on */ } var_mtype = var10; /* isa MNullType */ @@ -4513,84 +5222,41 @@ var11 = 0; var11 = var_mtype->type->type_table[cltype] == idtype; } if (var11){ -var12 = NULL; -var = var12; +var = ((val*)NULL); goto RET_LABEL; } else { } { -var13 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__as_notnullable]))(var_mtype) /* as_notnullable on */; +var12 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__undecorate]))(var_mtype); /* undecorate on */ } -var_mtype = var13; +var_mtype = var12; /* isa MClassType */ -cltype15 = type_nit__MClassType.color; -idtype16 = type_nit__MClassType.id; -if(cltype15 >= var_mtype->type->table_size) { -var14 = 0; +cltype14 = type_nit__MClassType.color; +idtype15 = type_nit__MClassType.id; +if(cltype14 >= var_mtype->type->table_size) { +var13 = 0; } else { -var14 = var_mtype->type->type_table[cltype15] == idtype16; +var13 = var_mtype->type->type_table[cltype14] == idtype15; } -if (unlikely(!var14)) { +if (unlikely(!var13)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 463); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 479); +fatal_exit(1); } { -var17 = ((short int (*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_mtype) /* need_anchor on */; +var16 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_mtype); /* need_anchor on */ } -var18 = !var17; -if (unlikely(!var18)) { +var17 = !var16; +if (unlikely(!var17)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 464); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 480); +fatal_exit(1); } var = var_mtype; goto RET_LABEL; RET_LABEL:; return var; } -/* method rapid_type_analysis#RapidTypeVisitor#get_class for (self: RapidTypeVisitor, String): MClass */ -val* nit___nit__RapidTypeVisitor___get_class(val* self, val* p0) { -val* var /* : MClass */; -val* var_name /* var name: String */; -val* var1 /* : RapidTypeAnalysis */; -val* var3 /* : RapidTypeAnalysis */; -val* var4 /* : MModule */; -val* var6 /* : MModule */; -val* var7 /* : MClass */; -var_name = p0; -{ -{ /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on */ -var3 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 435); -show_backtrace(1); -} -var1 = var3; -RET_LABEL2:(void)0; -} -} -{ -{ /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var1) on */ -var6 = var1->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ -if (unlikely(var6 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); -} -var4 = var6; -RET_LABEL5:(void)0; -} -} -{ -var7 = nit__model___MModule___get_primitive_class(var4, var_name); -} -var = var7; -goto RET_LABEL; -RET_LABEL:; -return var; -} /* method rapid_type_analysis#RapidTypeVisitor#get_method for (self: RapidTypeVisitor, MType, String): MMethod */ val* nit___nit__RapidTypeVisitor___get_method(val* self, val* p0, val* p1) { val* var /* : MMethod */; @@ -4598,131 +5264,129 @@ val* var_recv /* var recv: MType */; val* var_name /* var name: String */; val* var1 /* : nullable MClassType */; val* var_mtype /* var mtype: nullable MClassType */; -val* var2 /* : null */; +short int var2 /* : Bool */; short int var3 /* : Bool */; -short int var4 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var5 /* : Bool */; short int var6 /* : Bool */; -short int var7 /* : Bool */; -val* var8 /* : RapidTypeAnalysis */; -val* var10 /* : RapidTypeAnalysis */; -val* var11 /* : ModelBuilder */; -val* var13 /* : ModelBuilder */; -val* var14 /* : nullable ANode */; -val* var16 /* : nullable ANode */; -val* var17 /* : MClass */; -val* var19 /* : MClass */; -val* var20 /* : RapidTypeAnalysis */; -val* var22 /* : RapidTypeAnalysis */; -val* var23 /* : MModule */; -val* var25 /* : MModule */; -val* var26 /* : MMethod */; +val* var7 /* : RapidTypeAnalysis */; +val* var9 /* : RapidTypeAnalysis */; +val* var10 /* : ModelBuilder */; +val* var12 /* : ModelBuilder */; +val* var13 /* : nullable ANode */; +val* var15 /* : nullable ANode */; +val* var16 /* : MClass */; +val* var18 /* : MClass */; +val* var19 /* : RapidTypeAnalysis */; +val* var21 /* : RapidTypeAnalysis */; +val* var22 /* : MModule */; +val* var24 /* : MModule */; +val* var25 /* : MMethod */; var_recv = p0; var_name = p1; { var1 = nit___nit__RapidTypeVisitor___cleanup_type(self, var_recv); } var_mtype = var1; -var2 = NULL; if (var_mtype == NULL) { -var3 = 0; /* is null */ +var2 = 0; /* is null */ } else { -var3 = 1; /* arg is null and recv is not */ +var2 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_mtype,var2) on */ -var_other = var2; +{ /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var6 = ((short int (*)(val* self, val* p0))(var_mtype->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mtype, var_other) /* == on */; +var5 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mtype, var_other); /* == on */ } -var7 = !var6; -var4 = var7; -goto RET_LABEL5; -RET_LABEL5:(void)0; +var6 = !var5; +var3 = var6; +goto RET_LABEL4; +RET_LABEL4:(void)0; } -var3 = var4; +var2 = var3; } -if (unlikely(!var3)) { +if (unlikely(!var2)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 476); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 487); +fatal_exit(1); } { { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on */ -var10 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ -if (unlikely(var10 == NULL)) { +var9 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ +if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 435); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 447); +fatal_exit(1); } -var8 = var10; -RET_LABEL9:(void)0; +var7 = var9; +RET_LABEL8:(void)0; } } { -{ /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (var8) on */ -var13 = var8->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder].val; /* _modelbuilder on */ -if (unlikely(var13 == NULL)) { +{ /* Inline rapid_type_analysis#RapidTypeAnalysis#modelbuilder (var7) on */ +var12 = var7->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var12 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 46); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 53); +fatal_exit(1); } -var11 = var13; -RET_LABEL12:(void)0; +var10 = var12; +RET_LABEL11:(void)0; } } { { /* Inline parser_nodes#Visitor#current_node (self) on */ -var16 = self->attrs[COLOR_nit__parser_nodes__Visitor___current_node].val; /* _current_node on */ -var14 = var16; -RET_LABEL15:(void)0; +var15 = self->attrs[COLOR_nit__parser_nodes__Visitor___current_node].val; /* _current_node on */ +var13 = var15; +RET_LABEL14:(void)0; } } -if (unlikely(var14 == NULL)) { +if (unlikely(var13 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 477); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 488); +fatal_exit(1); } { { /* Inline model#MClassType#mclass (var_mtype) on */ -var19 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var19 == NULL)) { +var18 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var18 == 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); } -var17 = var19; -RET_LABEL18:(void)0; +var16 = var18; +RET_LABEL17:(void)0; } } { { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on */ -var22 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ -if (unlikely(var22 == NULL)) { +var21 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ +if (unlikely(var21 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 435); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 447); +fatal_exit(1); } -var20 = var22; -RET_LABEL21:(void)0; +var19 = var21; +RET_LABEL20:(void)0; } } { -{ /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var20) on */ -var25 = var20->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ -if (unlikely(var25 == NULL)) { +{ /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var19) on */ +var24 = var19->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var24 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var23 = var25; -RET_LABEL24:(void)0; +var22 = var24; +RET_LABEL23:(void)0; } } { -var26 = nit___nit__ModelBuilder___force_get_primitive_method(var11, var14, var_name, var17, var23); +var25 = nit___nit__ModelBuilder___force_get_primitive_method(var10, var13, var_name, var16, var22); } -var = var26; +var = var25; goto RET_LABEL; RET_LABEL:; return var; @@ -4740,8 +5404,8 @@ var_mtype = p0; var2 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 435); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 447); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; @@ -4752,8 +5416,8 @@ RET_LABEL1:(void)0; var5 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver].val; /* _receiver on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 436); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 448); +fatal_exit(1); } var3 = var5; RET_LABEL4:(void)0; @@ -4785,8 +5449,8 @@ var_mproperty = p1; var2 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 435); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 447); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; @@ -4797,8 +5461,8 @@ RET_LABEL1:(void)0; var5 = var->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_methods].val; /* _live_methods on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methods"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 75); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 82); +fatal_exit(1); } var3 = var5; RET_LABEL4:(void)0; @@ -4812,8 +5476,8 @@ standard___standard__HashSet___standard__abstract_collection__SimpleCollection__ var8 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ if (unlikely(var8 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 435); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 447); +fatal_exit(1); } var6 = var8; RET_LABEL7:(void)0; @@ -4830,8 +5494,8 @@ var9 = var_mtype->type->type_table[cltype] == idtype; if (unlikely(!var9)) { var_class_name = var_mtype == NULL ? "null" : var_mtype->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 485); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 496); +fatal_exit(1); } { nit___nit__RapidTypeAnalysis___try_send(var6, var_mtype, var_mproperty); /* Direct call rapid_type_analysis#RapidTypeAnalysis#try_send on */ @@ -4849,8 +5513,8 @@ var_mtype = p0; var2 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 435); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 447); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; @@ -4864,138 +5528,136 @@ RET_LABEL:; /* method rapid_type_analysis#RapidTypeVisitor#add_callsite for (self: RapidTypeVisitor, nullable CallSite) */ void nit___nit__RapidTypeVisitor___add_callsite(val* self, val* p0) { val* var_callsite /* var callsite: nullable CallSite */; -val* var /* : null */; +short int var /* : Bool */; short int var1 /* : Bool */; -short int var2 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var3 /* : Bool */; short int var4 /* : Bool */; -short int var5 /* : Bool */; -val* var6 /* : MMethodDef */; -val* var8 /* : MMethodDef */; -val* var9 /* : Array[MProperty] */; -val* var11 /* : Array[MProperty] */; +val* var5 /* : MMethodDef */; +val* var7 /* : MMethodDef */; +val* var8 /* : Array[MProperty] */; +val* var10 /* : Array[MProperty] */; val* var_ /* var : Array[MProperty] */; -val* var12 /* : ArrayIterator[nullable Object] */; -val* var_13 /* var : ArrayIterator[MProperty] */; -short int var14 /* : Bool */; -val* var15 /* : nullable Object */; +val* var11 /* : ArrayIterator[nullable Object] */; +val* var_12 /* var : ArrayIterator[MProperty] */; +short int var13 /* : Bool */; +val* var14 /* : nullable Object */; val* var_m /* var m: MProperty */; -short int var16 /* : Bool */; +short int var15 /* : Bool */; int cltype; int idtype; -val* var17 /* : RapidTypeAnalysis */; -val* var19 /* : RapidTypeAnalysis */; -val* var20 /* : MType */; -val* var22 /* : MType */; +val* var16 /* : RapidTypeAnalysis */; +val* var18 /* : RapidTypeAnalysis */; +val* var19 /* : MType */; +val* var21 /* : MType */; +val* var22 /* : RapidTypeAnalysis */; val* var24 /* : RapidTypeAnalysis */; -val* var26 /* : RapidTypeAnalysis */; +val* var25 /* : MType */; val* var27 /* : MType */; -val* var29 /* : MType */; +val* var28 /* : MMethod */; val* var30 /* : MMethod */; -val* var32 /* : MMethod */; +val* var31 /* : RapidTypeAnalysis */; val* var33 /* : RapidTypeAnalysis */; -val* var35 /* : RapidTypeAnalysis */; +val* var34 /* : HashSet[CallSite] */; val* var36 /* : HashSet[CallSite] */; -val* var38 /* : HashSet[CallSite] */; var_callsite = p0; -var = NULL; if (var_callsite == NULL) { -var1 = 0; /* is null */ +var = 0; /* is null */ } else { -var1 = 1; /* arg is null and recv is not */ +var = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_callsite,var) on */ -var_other = var; +{ /* Inline kernel#Object#!= (var_callsite,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var4 = ((short int (*)(val* self, val* p0))(var_callsite->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_callsite, var_other) /* == on */; +var3 = ((short int(*)(val* self, val* p0))(var_callsite->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_callsite, var_other); /* == on */ } -var5 = !var4; -var2 = var5; -goto RET_LABEL3; -RET_LABEL3:(void)0; +var4 = !var3; +var1 = var4; +goto RET_LABEL2; +RET_LABEL2:(void)0; } -var1 = var2; +var = var1; } -if (var1){ +if (var){ { { /* Inline typing#CallSite#mpropdef (var_callsite) on */ -var8 = var_callsite->attrs[COLOR_nit__typing__CallSite___mpropdef].val; /* _mpropdef on */ -if (unlikely(var8 == NULL)) { +var7 = var_callsite->attrs[COLOR_nit__typing__CallSite___mpropdef].val; /* _mpropdef on */ +if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 490); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 627); +fatal_exit(1); } -var6 = var8; -RET_LABEL7:(void)0; +var5 = var7; +RET_LABEL6:(void)0; } } { -{ /* Inline model#MMethodDef#initializers (var6) on */ -var11 = var6->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on */ -if (unlikely(var11 == NULL)) { +{ /* Inline model#MMethodDef#initializers (var5) on */ +var10 = var5->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on */ +if (unlikely(var10 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2146); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2345); +fatal_exit(1); } -var9 = var11; -RET_LABEL10:(void)0; +var8 = var10; +RET_LABEL9:(void)0; } } -var_ = var9; +var_ = var8; { -var12 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); +var11 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); } -var_13 = var12; +var_12 = var11; for(;;) { { -var14 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_13); +var13 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_12); } -if (var14){ +if (var13){ { -var15 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_13); +var14 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_12); } -var_m = var15; +var_m = var14; /* isa MMethod */ cltype = type_nit__MMethod.color; idtype = type_nit__MMethod.id; if(cltype >= var_m->type->table_size) { -var16 = 0; +var15 = 0; } else { -var16 = var_m->type->type_table[cltype] == idtype; +var15 = var_m->type->type_table[cltype] == idtype; } -if (var16){ +if (var15){ { { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on */ -var19 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ -if (unlikely(var19 == NULL)) { +var18 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ +if (unlikely(var18 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 435); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 447); +fatal_exit(1); } -var17 = var19; -RET_LABEL18:(void)0; +var16 = var18; +RET_LABEL17:(void)0; } } { { /* Inline typing#CallSite#recv (var_callsite) on */ -var22 = var_callsite->attrs[COLOR_nit__typing__CallSite___recv].val; /* _recv on */ -if (unlikely(var22 == NULL)) { +var21 = var_callsite->attrs[COLOR_nit__typing__CallSite___recv].val; /* _recv on */ +if (unlikely(var21 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 473); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 610); +fatal_exit(1); } -var20 = var22; -RET_LABEL21:(void)0; +var19 = var21; +RET_LABEL20:(void)0; } } { -nit___nit__RapidTypeAnalysis___add_send(var17, var20, var_m); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on */ +nit___nit__RapidTypeAnalysis___add_send(var16, var19, var_m); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on */ } } else { } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_13); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_12); /* Direct call array#ArrayIterator#next on */ } } else { goto BREAK_label; @@ -5003,75 +5665,73 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_13) on */ -RET_LABEL23:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_12); /* Direct call array#ArrayIterator#finish on */ } { { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on */ -var26 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ -if (unlikely(var26 == NULL)) { +var24 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ +if (unlikely(var24 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 435); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 447); +fatal_exit(1); } -var24 = var26; -RET_LABEL25:(void)0; +var22 = var24; +RET_LABEL23:(void)0; } } { { /* Inline typing#CallSite#recv (var_callsite) on */ -var29 = var_callsite->attrs[COLOR_nit__typing__CallSite___recv].val; /* _recv on */ -if (unlikely(var29 == NULL)) { +var27 = var_callsite->attrs[COLOR_nit__typing__CallSite___recv].val; /* _recv on */ +if (unlikely(var27 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 473); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 610); +fatal_exit(1); } -var27 = var29; -RET_LABEL28:(void)0; +var25 = var27; +RET_LABEL26:(void)0; } } { { /* Inline typing#CallSite#mproperty (var_callsite) on */ -var32 = var_callsite->attrs[COLOR_nit__typing__CallSite___mproperty].val; /* _mproperty on */ -if (unlikely(var32 == NULL)) { +var30 = var_callsite->attrs[COLOR_nit__typing__CallSite___mproperty].val; /* _mproperty on */ +if (unlikely(var30 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 487); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 624); +fatal_exit(1); } -var30 = var32; -RET_LABEL31:(void)0; +var28 = var30; +RET_LABEL29:(void)0; } } { -nit___nit__RapidTypeAnalysis___add_send(var24, var27, var30); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on */ +nit___nit__RapidTypeAnalysis___add_send(var22, var25, var28); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_send on */ } { { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (self) on */ -var35 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ -if (unlikely(var35 == NULL)) { +var33 = self->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ +if (unlikely(var33 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 435); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 447); +fatal_exit(1); } -var33 = var35; -RET_LABEL34:(void)0; +var31 = var33; +RET_LABEL32:(void)0; } } { -{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_callsites (var33) on */ -var38 = var33->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_callsites].val; /* _live_callsites on */ -if (unlikely(var38 == NULL)) { +{ /* Inline rapid_type_analysis#RapidTypeAnalysis#live_callsites (var31) on */ +var36 = var31->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___live_callsites].val; /* _live_callsites on */ +if (unlikely(var36 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_callsites"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 78); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 85); +fatal_exit(1); } -var36 = var38; -RET_LABEL37:(void)0; +var34 = var36; +RET_LABEL35:(void)0; } } { -standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var36, var_callsite); /* Direct call hash_collection#HashSet#add on */ +standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var34, var_callsite); /* Direct call hash_collection#HashSet#add on */ } } else { } @@ -5115,8 +5775,48 @@ var3 = var->type->type_table[cltype] == idtype; if (unlikely(!var3)) { var_class_name = var == NULL ? "null" : var->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 514); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 525); +fatal_exit(1); +} +{ +nit___nit__RapidTypeVisitor___add_type(var_v, var); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on */ +} +RET_LABEL:; +} +/* method rapid_type_analysis#AByteExpr#accept_rapid_type_visitor for (self: AByteExpr, RapidTypeVisitor) */ +void nit__rapid_type_analysis___AByteExpr___ANode__accept_rapid_type_visitor(val* self, val* p0) { +val* var_v /* var v: RapidTypeVisitor */; +val* var /* : nullable MType */; +val* var2 /* : nullable MType */; +short int var3 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +var_v = p0; +{ +{ /* Inline typing#AExpr#mtype (self) on */ +var2 = self->attrs[COLOR_nit__typing__AExpr___mtype].val; /* _mtype on */ +var = var2; +RET_LABEL1:(void)0; +} +} +/* isa MClassType */ +cltype = type_nit__MClassType.color; +idtype = type_nit__MClassType.id; +if(var == NULL) { +var3 = 0; +} else { +if(cltype >= var->type->table_size) { +var3 = 0; +} else { +var3 = var->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var3)) { +var_class_name = var == NULL ? "null" : var->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 532); +fatal_exit(1); } { nit___nit__RapidTypeVisitor___add_type(var_v, var); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on */ @@ -5155,8 +5855,8 @@ var3 = var->type->type_table[cltype] == idtype; if (unlikely(!var3)) { var_class_name = var == NULL ? "null" : var->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 521); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 539); +fatal_exit(1); } { nit___nit__RapidTypeVisitor___add_type(var_v, var); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on */ @@ -5195,8 +5895,8 @@ var3 = var->type->type_table[cltype] == idtype; if (unlikely(!var3)) { var_class_name = var == NULL ? "null" : var->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 528); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 546); +fatal_exit(1); } { nit___nit__RapidTypeVisitor___add_type(var_v, var); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on */ @@ -5217,27 +5917,21 @@ val* var4 /* : RapidTypeAnalysis */; val* var6 /* : RapidTypeAnalysis */; val* var7 /* : MModule */; val* var9 /* : MModule */; -static val* varonce; -val* var10 /* : String */; -char* var11 /* : NativeString */; -long var12 /* : Int */; -val* var13 /* : FlatString */; -val* var14 /* : MClass */; -val* var15 /* : Array[MType] */; -long var16 /* : Int */; -val* var_ /* var : Array[MType] */; -val* var17 /* : Array[MType] */; -val* var18 /* : nullable Object */; -val* var19 /* : MClassType */; +val* var10 /* : Array[MType] */; +val* var11 /* : nullable Object */; +val* var12 /* : MClassType */; val* var_native /* var native: MClassType */; -val* var20 /* : nullable MClassType */; -static val* varonce21; -val* var22 /* : String */; -char* var23 /* : NativeString */; -long var24 /* : Int */; -val* var25 /* : FlatString */; -val* var26 /* : MMethod */; +val* var13 /* : nullable MClassType */; +static val* varonce; +val* var14 /* : String */; +char* var15 /* : NativeString */; +val* var16 /* : FlatString */; +val* var17 /* : MMethod */; val* var_prop /* var prop: MMethod */; +val* var18 /* : nullable CallSite */; +val* var20 /* : nullable CallSite */; +val* var21 /* : nullable CallSite */; +val* var23 /* : nullable CallSite */; var_v = p0; { { /* Inline typing#AExpr#mtype (self) on */ @@ -5261,8 +5955,8 @@ var3 = var->type->type_table[cltype] == idtype; if (unlikely(!var3)) { var_class_name = var == NULL ? "null" : var->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 535); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 553); +fatal_exit(1); } var_mtype = var; { @@ -5273,8 +5967,8 @@ nit___nit__RapidTypeVisitor___add_type(var_v, var_mtype); /* Direct call rapid_t var6 = var_v->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ if (unlikely(var6 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 435); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 447); +fatal_exit(1); } var4 = var6; RET_LABEL5:(void)0; @@ -5285,135 +5979,131 @@ RET_LABEL5:(void)0; var9 = var4->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 49); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } var7 = var9; RET_LABEL8:(void)0; } } -if (varonce) { -var10 = varonce; -} else { -var11 = "NativeArray"; -var12 = 11; -var13 = standard___standard__NativeString___to_s_with_length(var11, var12); -var10 = var13; -varonce = var10; -} { -var14 = nit__model___MModule___get_primitive_class(var7, var10); +var10 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MClassType__arguments]))(var_mtype); /* arguments on */ } -var15 = NEW_standard__Array(&type_standard__Array__nit__MType); -var16 = 1; { -standard___standard__Array___with_capacity(var15, var16); /* Direct call array#Array#with_capacity on */ +var11 = standard___standard__SequenceRead___Collection__first(var10); } -var_ = var15; { -var17 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MClassType__arguments]))(var_mtype) /* arguments on */; +var12 = nit__model___MModule___native_array_type(var7, var11); } +var_native = var12; { -var18 = standard___standard__SequenceRead___Collection__first(var17); +nit___nit__RapidTypeVisitor___add_type(var_v, var_native); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on */ } { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var18); /* Direct call array#AbstractArray#push on */ +var13 = nit___nit__RapidTypeVisitor___cleanup_type(var_v, var_mtype); +} +if (unlikely(var13 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 557); +fatal_exit(1); +} +var_mtype = var13; +if (likely(varonce!=NULL)) { +var14 = varonce; +} else { +var15 = "with_native"; +var16 = standard___standard__NativeString___to_s_with_length(var15, 11l); +var14 = var16; +varonce = var14; } { -var19 = nit___nit__MClass___get_mtype(var14, var_); +var17 = nit___nit__RapidTypeVisitor___get_method(var_v, var_mtype, var14); } -var_native = var19; +var_prop = var17; { -nit___nit__RapidTypeVisitor___add_type(var_v, var_native); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on */ +nit___nit__RapidTypeVisitor___add_monomorphic_send(var_v, var_mtype, var_prop); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on */ } { -var20 = nit___nit__RapidTypeVisitor___cleanup_type(var_v, var_mtype); +{ /* Inline typing#AArrayExpr#with_capacity_callsite (self) on */ +var20 = self->attrs[COLOR_nit__typing__AArrayExpr___with_capacity_callsite].val; /* _with_capacity_callsite on */ +var18 = var20; +RET_LABEL19:(void)0; } -if (unlikely(var20 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 539); -show_backtrace(1); } -var_mtype = var20; -if (varonce21) { -var22 = varonce21; -} else { -var23 = "with_native"; -var24 = 11; -var25 = standard___standard__NativeString___to_s_with_length(var23, var24); -var22 = var25; -varonce21 = var22; +{ +nit___nit__RapidTypeVisitor___add_callsite(var_v, var18); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on */ } { -var26 = nit___nit__RapidTypeVisitor___get_method(var_v, var_mtype, var22); +{ /* Inline typing#AArrayExpr#push_callsite (self) on */ +var23 = self->attrs[COLOR_nit__typing__AArrayExpr___push_callsite].val; /* _push_callsite on */ +var21 = var23; +RET_LABEL22:(void)0; +} } -var_prop = var26; { -nit___nit__RapidTypeVisitor___add_monomorphic_send(var_v, var_mtype, var_prop); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on */ +nit___nit__RapidTypeVisitor___add_callsite(var_v, var21); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on */ } RET_LABEL:; } /* method rapid_type_analysis#AStringFormExpr#accept_rapid_type_visitor for (self: AStringFormExpr, RapidTypeVisitor) */ void nit__rapid_type_analysis___AStringFormExpr___ANode__accept_rapid_type_visitor(val* self, val* p0) { val* var_v /* var v: RapidTypeVisitor */; -static val* varonce; -val* var /* : String */; -char* var1 /* : NativeString */; -long var2 /* : Int */; -val* var3 /* : FlatString */; -val* var4 /* : MClass */; -val* var5 /* : MClassType */; -val* var7 /* : MClassType */; +val* var /* : RapidTypeAnalysis */; +val* var2 /* : RapidTypeAnalysis */; +val* var3 /* : MModule */; +val* var5 /* : MModule */; +val* var6 /* : MClassType */; val* var_native /* var native: MClassType */; -static val* varonce8; -val* var9 /* : String */; -char* var10 /* : NativeString */; -long var11 /* : Int */; -val* var12 /* : FlatString */; -val* var13 /* : MMethod */; +static val* varonce; +val* var7 /* : String */; +char* var8 /* : NativeString */; +val* var9 /* : FlatString */; +val* var10 /* : MMethod */; val* var_prop /* var prop: MMethod */; var_v = p0; -if (varonce) { -var = varonce; -} else { -var1 = "NativeString"; -var2 = 12; -var3 = standard___standard__NativeString___to_s_with_length(var1, var2); -var = var3; -varonce = var; -} { -var4 = nit___nit__RapidTypeVisitor___get_class(var_v, var); +{ /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (var_v) on */ +var2 = var_v->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 447); +fatal_exit(1); +} +var = var2; +RET_LABEL1:(void)0; +} } { -{ /* Inline model#MClass#mclass_type (var4) on */ -var7 = var4->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var7 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438); -show_backtrace(1); +{ /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var) on */ +var5 = var->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var5 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var5 = var7; -RET_LABEL6:(void)0; +var3 = var5; +RET_LABEL4:(void)0; } } -var_native = var5; +{ +var6 = nit__model___MModule___native_string_type(var3); +} +var_native = var6; { nit___nit__RapidTypeVisitor___add_type(var_v, var_native); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on */ } -if (varonce8) { -var9 = varonce8; +if (likely(varonce!=NULL)) { +var7 = varonce; } else { -var10 = "to_s_with_length"; -var11 = 16; -var12 = standard___standard__NativeString___to_s_with_length(var10, var11); -var9 = var12; -varonce8 = var9; +var8 = "to_s_with_length"; +var9 = standard___standard__NativeString___to_s_with_length(var8, 16l); +var7 = var9; +varonce = var7; } { -var13 = nit___nit__RapidTypeVisitor___get_method(var_v, var_native, var9); +var10 = nit___nit__RapidTypeVisitor___get_method(var_v, var_native, var7); } -var_prop = var13; +var_prop = var10; { nit___nit__RapidTypeVisitor___add_monomorphic_send(var_v, var_native, var_prop); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on */ } @@ -5422,192 +6112,121 @@ RET_LABEL:; /* method rapid_type_analysis#ASuperstringExpr#accept_rapid_type_visitor for (self: ASuperstringExpr, RapidTypeVisitor) */ void nit__rapid_type_analysis___ASuperstringExpr___ANode__accept_rapid_type_visitor(val* self, val* p0) { val* var_v /* var v: RapidTypeVisitor */; +val* var /* : RapidTypeAnalysis */; +val* var2 /* : RapidTypeAnalysis */; +val* var3 /* : MModule */; +val* var5 /* : MModule */; +val* var_mmodule /* var mmodule: MModule */; +val* var6 /* : MClassType */; +val* var_object_type /* var object_type: MClassType */; +val* var7 /* : MClassType */; +val* var_arraytype /* var arraytype: MClassType */; +val* var8 /* : MClassType */; +val* var_nattype /* var nattype: MClassType */; static val* varonce; -val* var /* : String */; -char* var1 /* : NativeString */; -long var2 /* : Int */; -val* var3 /* : FlatString */; -val* var4 /* : MClass */; -val* var5 /* : Array[MClassType] */; -long var6 /* : Int */; -val* var_ /* var : Array[MClassType] */; -static val* varonce7; -val* var8 /* : String */; -char* var9 /* : NativeString */; -long var10 /* : Int */; +val* var9 /* : String */; +char* var10 /* : NativeString */; val* var11 /* : FlatString */; -val* var12 /* : MClass */; -val* var13 /* : MClassType */; -val* var15 /* : MClassType */; -val* var16 /* : MClassType */; -val* var_arraytype /* var arraytype: MClassType */; -static val* varonce17; -val* var18 /* : String */; -char* var19 /* : NativeString */; -long var20 /* : Int */; -val* var21 /* : FlatString */; -val* var22 /* : MClass */; -val* var23 /* : Array[MClassType] */; -long var24 /* : Int */; -val* var_25 /* var : Array[MClassType] */; -static val* varonce26; -val* var27 /* : String */; -char* var28 /* : NativeString */; -long var29 /* : Int */; -val* var30 /* : FlatString */; -val* var31 /* : MClass */; -val* var32 /* : MClassType */; -val* var34 /* : MClassType */; -val* var35 /* : MClassType */; -static val* varonce36; -val* var37 /* : String */; -char* var38 /* : NativeString */; -long var39 /* : Int */; -val* var40 /* : FlatString */; -val* var41 /* : MMethod */; +val* var12 /* : MMethod */; val* var_prop /* var prop: MMethod */; -static val* varonce42; -val* var43 /* : String */; -char* var44 /* : NativeString */; -long var45 /* : Int */; -val* var46 /* : FlatString */; -val* var47 /* : MMethod */; +static val* varonce13; +val* var14 /* : String */; +char* var15 /* : NativeString */; +val* var16 /* : FlatString */; +val* var17 /* : MMethod */; val* var_prop2 /* var prop2: MMethod */; +static val* varonce18; +val* var19 /* : String */; +char* var20 /* : NativeString */; +val* var21 /* : FlatString */; +val* var22 /* : MMethod */; var_v = p0; -if (varonce) { -var = varonce; -} else { -var1 = "Array"; -var2 = 5; -var3 = standard___standard__NativeString___to_s_with_length(var1, var2); -var = var3; -varonce = var; -} { -var4 = nit___nit__RapidTypeVisitor___get_class(var_v, var); -} -var5 = NEW_standard__Array(&type_standard__Array__nit__MClassType); -var6 = 1; -{ -standard___standard__Array___with_capacity(var5, var6); /* Direct call array#Array#with_capacity on */ +{ /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (var_v) on */ +var2 = var_v->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 447); +fatal_exit(1); } -var_ = var5; -if (varonce7) { -var8 = varonce7; -} else { -var9 = "Object"; -var10 = 6; -var11 = standard___standard__NativeString___to_s_with_length(var9, var10); -var8 = var11; -varonce7 = var8; +var = var2; +RET_LABEL1:(void)0; } -{ -var12 = nit___nit__RapidTypeVisitor___get_class(var_v, var8); } { -{ /* Inline model#MClass#mclass_type (var12) on */ -var15 = var12->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var15 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438); -show_backtrace(1); +{ /* Inline rapid_type_analysis#RapidTypeAnalysis#mainmodule (var) on */ +var5 = var->attrs[COLOR_nit__rapid_type_analysis__RapidTypeAnalysis___mainmodule].val; /* _mainmodule on */ +if (unlikely(var5 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 56); +fatal_exit(1); } -var13 = var15; -RET_LABEL14:(void)0; +var3 = var5; +RET_LABEL4:(void)0; } } +var_mmodule = var3; { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var13); /* Direct call array#AbstractArray#push on */ +var6 = nit__model___MModule___string_type(var_mmodule); } +var_object_type = var6; { -var16 = nit___nit__MClass___get_mtype(var4, var_); +var7 = nit__model___MModule___array_type(var_mmodule, var_object_type); } -var_arraytype = var16; +var_arraytype = var7; { nit___nit__RapidTypeVisitor___add_type(var_v, var_arraytype); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on */ } -if (varonce17) { -var18 = varonce17; -} else { -var19 = "NativeArray"; -var20 = 11; -var21 = standard___standard__NativeString___to_s_with_length(var19, var20); -var18 = var21; -varonce17 = var18; -} { -var22 = nit___nit__RapidTypeVisitor___get_class(var_v, var18); +var8 = nit__model___MModule___native_array_type(var_mmodule, var_object_type); } -var23 = NEW_standard__Array(&type_standard__Array__nit__MClassType); -var24 = 1; +var_nattype = var8; { -standard___standard__Array___with_capacity(var23, var24); /* Direct call array#Array#with_capacity on */ +nit___nit__RapidTypeVisitor___add_type(var_v, var_nattype); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on */ } -var_25 = var23; -if (varonce26) { -var27 = varonce26; +if (likely(varonce!=NULL)) { +var9 = varonce; } else { -var28 = "Object"; -var29 = 6; -var30 = standard___standard__NativeString___to_s_with_length(var28, var29); -var27 = var30; -varonce26 = var27; -} -{ -var31 = nit___nit__RapidTypeVisitor___get_class(var_v, var27); -} -{ -{ /* Inline model#MClass#mclass_type (var31) on */ -var34 = var31->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var34 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438); -show_backtrace(1); -} -var32 = var34; -RET_LABEL33:(void)0; -} -} -{ -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_25, var32); /* Direct call array#AbstractArray#push on */ +var10 = "join"; +var11 = standard___standard__NativeString___to_s_with_length(var10, 4l); +var9 = var11; +varonce = var9; } { -var35 = nit___nit__MClass___get_mtype(var22, var_25); +var12 = nit___nit__RapidTypeVisitor___get_method(var_v, var_arraytype, var9); } +var_prop = var12; { -nit___nit__RapidTypeVisitor___add_type(var_v, var35); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on */ +nit___nit__RapidTypeVisitor___add_monomorphic_send(var_v, var_arraytype, var_prop); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on */ } -if (varonce36) { -var37 = varonce36; +if (likely(varonce13!=NULL)) { +var14 = varonce13; } else { -var38 = "join"; -var39 = 4; -var40 = standard___standard__NativeString___to_s_with_length(var38, var39); -var37 = var40; -varonce36 = var37; +var15 = "with_native"; +var16 = standard___standard__NativeString___to_s_with_length(var15, 11l); +var14 = var16; +varonce13 = var14; } { -var41 = nit___nit__RapidTypeVisitor___get_method(var_v, var_arraytype, var37); +var17 = nit___nit__RapidTypeVisitor___get_method(var_v, var_arraytype, var14); } -var_prop = var41; +var_prop2 = var17; { -nit___nit__RapidTypeVisitor___add_monomorphic_send(var_v, var_arraytype, var_prop); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on */ +nit___nit__RapidTypeVisitor___add_monomorphic_send(var_v, var_arraytype, var_prop2); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on */ } -if (varonce42) { -var43 = varonce42; +if (likely(varonce18!=NULL)) { +var19 = varonce18; } else { -var44 = "with_native"; -var45 = 11; -var46 = standard___standard__NativeString___to_s_with_length(var44, var45); -var43 = var46; -varonce42 = var43; +var20 = "native_to_s"; +var21 = standard___standard__NativeString___to_s_with_length(var20, 11l); +var19 = var21; +varonce18 = var19; } { -var47 = nit___nit__RapidTypeVisitor___get_method(var_v, var_arraytype, var43); +var22 = nit___nit__RapidTypeVisitor___get_method(var_v, var_nattype, var19); } -var_prop2 = var47; { -nit___nit__RapidTypeVisitor___add_monomorphic_send(var_v, var_arraytype, var_prop2); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on */ +nit___nit__RapidTypeVisitor___add_monomorphic_send(var_v, var_nattype, var22); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send on */ } RET_LABEL:; } @@ -5646,8 +6265,8 @@ var3 = var->type->type_table[cltype] == idtype; if (unlikely(!var3)) { var_class_name = var == NULL ? "null" : var->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 571); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 595); +fatal_exit(1); } var_mtype = var; { @@ -5700,8 +6319,8 @@ var3 = var->type->type_table[cltype] == idtype; if (unlikely(!var3)) { var_class_name = var == NULL ? "null" : var->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 580); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 604); +fatal_exit(1); } var_mtype = var; { @@ -5751,8 +6370,8 @@ var3 = var->type->type_table[cltype] == idtype; if (unlikely(!var3)) { var_class_name = var == NULL ? "null" : var->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 589); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 613); +fatal_exit(1); } { nit___nit__RapidTypeVisitor___add_type(var_v, var); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on */ @@ -5791,8 +6410,8 @@ var3 = var->type->type_table[cltype] == idtype; if (unlikely(!var3)) { var_class_name = var == NULL ? "null" : var->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 596); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 620); +fatal_exit(1); } { nit___nit__RapidTypeVisitor___add_type(var_v, var); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_type on */ @@ -5814,8 +6433,8 @@ RET_LABEL1:(void)0; } if (unlikely(var == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 603); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 627); +fatal_exit(1); } { nit___nit__RapidTypeVisitor___add_cast_type(var_v, var); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_cast_type on */ @@ -5837,8 +6456,8 @@ RET_LABEL1:(void)0; } if (unlikely(var == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 610); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 634); +fatal_exit(1); } { nit___nit__RapidTypeVisitor___add_cast_type(var_v, var); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_cast_type on */ @@ -5947,18 +6566,17 @@ val* var_v /* var v: RapidTypeVisitor */; val* var /* : nullable CallSite */; val* var2 /* : nullable CallSite */; val* var_callsite /* var callsite: nullable CallSite */; -val* var3 /* : null */; +short int var3 /* : Bool */; short int var4 /* : Bool */; -short int var5 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var6 /* : Bool */; short int var7 /* : Bool */; -short int var8 /* : Bool */; -val* var9 /* : RapidTypeAnalysis */; -val* var11 /* : RapidTypeAnalysis */; -val* var12 /* : MClassType */; -val* var14 /* : MClassType */; -val* var15 /* : nullable MMethodDef */; -val* var17 /* : nullable MMethodDef */; +val* var8 /* : RapidTypeAnalysis */; +val* var10 /* : RapidTypeAnalysis */; +val* var11 /* : MClassType */; +val* var13 /* : MClassType */; +val* var14 /* : nullable MMethodDef */; +val* var16 /* : nullable MMethodDef */; var_v = p0; { { /* Inline typing#ASuperExpr#callsite (self) on */ @@ -5968,26 +6586,25 @@ RET_LABEL1:(void)0; } } var_callsite = var; -var3 = NULL; if (var_callsite == NULL) { -var4 = 0; /* is null */ +var3 = 0; /* is null */ } else { -var4 = 1; /* arg is null and recv is not */ +var3 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_callsite,var3) on */ -var_other = var3; +{ /* Inline kernel#Object#!= (var_callsite,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var7 = ((short int (*)(val* self, val* p0))(var_callsite->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_callsite, var_other) /* == on */; +var6 = ((short int(*)(val* self, val* p0))(var_callsite->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_callsite, var_other); /* == on */ } -var8 = !var7; -var5 = var8; -goto RET_LABEL6; -RET_LABEL6:(void)0; +var7 = !var6; +var4 = var7; +goto RET_LABEL5; +RET_LABEL5:(void)0; } -var4 = var5; +var3 = var4; } -if (var4){ +if (var3){ { nit___nit__RapidTypeVisitor___add_callsite(var_v, var_callsite); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on */ } @@ -5996,42 +6613,42 @@ goto RET_LABEL; } { { /* Inline rapid_type_analysis#RapidTypeVisitor#analysis (var_v) on */ -var11 = var_v->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ -if (unlikely(var11 == NULL)) { +var10 = var_v->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___analysis].val; /* _analysis on */ +if (unlikely(var10 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _analysis"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 435); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 447); +fatal_exit(1); } -var9 = var11; -RET_LABEL10:(void)0; +var8 = var10; +RET_LABEL9:(void)0; } } { { /* Inline rapid_type_analysis#RapidTypeVisitor#receiver (var_v) on */ -var14 = var_v->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver].val; /* _receiver on */ -if (unlikely(var14 == NULL)) { +var13 = var_v->attrs[COLOR_nit__rapid_type_analysis__RapidTypeVisitor___receiver].val; /* _receiver on */ +if (unlikely(var13 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 436); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 448); +fatal_exit(1); } -var12 = var14; -RET_LABEL13:(void)0; +var11 = var13; +RET_LABEL12:(void)0; } } { { /* Inline typing#ASuperExpr#mpropdef (self) on */ -var17 = self->attrs[COLOR_nit__typing__ASuperExpr___mpropdef].val; /* _mpropdef on */ -var15 = var17; -RET_LABEL16:(void)0; +var16 = self->attrs[COLOR_nit__typing__ASuperExpr___mpropdef].val; /* _mpropdef on */ +var14 = var16; +RET_LABEL15:(void)0; } } -if (unlikely(var15 == NULL)) { +if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 654); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 678); +fatal_exit(1); } { -nit___nit__RapidTypeAnalysis___add_super_send(var9, var12, var15); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on */ +nit___nit__RapidTypeAnalysis___add_super_send(var8, var11, var14); /* Direct call rapid_type_analysis#RapidTypeAnalysis#add_super_send on */ } RET_LABEL:; } @@ -6046,33 +6663,30 @@ val* var6 /* : nullable Array[Variable] */; val* var8 /* : nullable Array[Variable] */; long var9 /* : Int */; long var11 /* : Int */; -long var12 /* : Int */; -short int var13 /* : Bool */; -short int var15 /* : Bool */; -val* var16 /* : nullable CallSite */; -val* var18 /* : nullable CallSite */; -val* var19 /* : nullable Array[Variable] */; -val* var21 /* : nullable Array[Variable] */; -long var22 /* : Int */; -long var24 /* : Int */; -long var25 /* : Int */; +short int var12 /* : Bool */; +short int var14 /* : Bool */; +val* var15 /* : nullable CallSite */; +val* var17 /* : nullable CallSite */; +val* var18 /* : nullable Array[Variable] */; +val* var20 /* : nullable Array[Variable] */; +long var21 /* : Int */; +long var23 /* : Int */; +short int var24 /* : Bool */; short int var26 /* : Bool */; -short int var28 /* : Bool */; +val* var27 /* : nullable CallSite */; val* var29 /* : nullable CallSite */; -val* var31 /* : nullable CallSite */; +val* var30 /* : nullable CallSite */; val* var32 /* : nullable CallSite */; -val* var34 /* : nullable CallSite */; +val* var33 /* : nullable CallSite */; val* var35 /* : nullable CallSite */; -val* var37 /* : nullable CallSite */; +val* var36 /* : nullable CallSite */; val* var38 /* : nullable CallSite */; -val* var40 /* : nullable CallSite */; val* var_mf /* var mf: nullable CallSite */; -val* var41 /* : null */; +short int var39 /* : Bool */; +short int var40 /* : Bool */; +val* var_other /* var other: nullable Object */; short int var42 /* : Bool */; short int var43 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var45 /* : Bool */; -short int var46 /* : Bool */; var_v = p0; { { /* Inline typing#AForExpr#method_iterator (self) on */ @@ -6103,138 +6717,135 @@ RET_LABEL7:(void)0; } if (var6 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 663); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 687); +fatal_exit(1); } else { { /* Inline array#AbstractArrayRead#length (var6) on */ if (unlikely(var6 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 24); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 26); +fatal_exit(1); } var11 = var6->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ var9 = var11; RET_LABEL10:(void)0; } } -var12 = 1; { -{ /* Inline kernel#Int#== (var9,var12) on */ -var15 = var9 == var12; -var13 = var15; -goto RET_LABEL14; -RET_LABEL14:(void)0; +{ /* Inline kernel#Int#== (var9,1l) on */ +var14 = var9 == 1l; +var12 = var14; +goto RET_LABEL13; +RET_LABEL13:(void)0; } } -if (var13){ +if (var12){ { { /* Inline typing#AForExpr#method_item (self) on */ -var18 = self->attrs[COLOR_nit__typing__AForExpr___method_item].val; /* _method_item on */ -var16 = var18; -RET_LABEL17:(void)0; +var17 = self->attrs[COLOR_nit__typing__AForExpr___method_item].val; /* _method_item on */ +var15 = var17; +RET_LABEL16:(void)0; } } { -nit___nit__RapidTypeVisitor___add_callsite(var_v, var16); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on */ +nit___nit__RapidTypeVisitor___add_callsite(var_v, var15); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on */ } } else { { { /* Inline scope#AForExpr#variables (self) on */ -var21 = self->attrs[COLOR_nit__scope__AForExpr___variables].val; /* _variables on */ -var19 = var21; -RET_LABEL20:(void)0; +var20 = self->attrs[COLOR_nit__scope__AForExpr___variables].val; /* _variables on */ +var18 = var20; +RET_LABEL19:(void)0; } } -if (var19 == NULL) { +if (var18 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 665); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 689); +fatal_exit(1); } else { -{ /* Inline array#AbstractArrayRead#length (var19) on */ -if (unlikely(var19 == NULL)) { +{ /* Inline array#AbstractArrayRead#length (var18) on */ +if (unlikely(var18 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 24); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 26); +fatal_exit(1); } -var24 = var19->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var22 = var24; -RET_LABEL23:(void)0; +var23 = var18->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var21 = var23; +RET_LABEL22:(void)0; } } -var25 = 2; { -{ /* Inline kernel#Int#== (var22,var25) on */ -var28 = var22 == var25; -var26 = var28; -goto RET_LABEL27; -RET_LABEL27:(void)0; +{ /* Inline kernel#Int#== (var21,2l) on */ +var26 = var21 == 2l; +var24 = var26; +goto RET_LABEL25; +RET_LABEL25:(void)0; } } -if (var26){ +if (var24){ { { /* Inline typing#AForExpr#method_key (self) on */ -var31 = self->attrs[COLOR_nit__typing__AForExpr___method_key].val; /* _method_key on */ -var29 = var31; -RET_LABEL30:(void)0; +var29 = self->attrs[COLOR_nit__typing__AForExpr___method_key].val; /* _method_key on */ +var27 = var29; +RET_LABEL28:(void)0; } } { -nit___nit__RapidTypeVisitor___add_callsite(var_v, var29); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on */ +nit___nit__RapidTypeVisitor___add_callsite(var_v, var27); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on */ } { { /* Inline typing#AForExpr#method_item (self) on */ -var34 = self->attrs[COLOR_nit__typing__AForExpr___method_item].val; /* _method_item on */ -var32 = var34; -RET_LABEL33:(void)0; +var32 = self->attrs[COLOR_nit__typing__AForExpr___method_item].val; /* _method_item on */ +var30 = var32; +RET_LABEL31:(void)0; } } { -nit___nit__RapidTypeVisitor___add_callsite(var_v, var32); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on */ +nit___nit__RapidTypeVisitor___add_callsite(var_v, var30); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on */ } } else { PRINT_ERROR("Runtime error: %s", "Aborted"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 669); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 693); +fatal_exit(1); } } { { /* Inline typing#AForExpr#method_next (self) on */ -var37 = self->attrs[COLOR_nit__typing__AForExpr___method_next].val; /* _method_next on */ -var35 = var37; -RET_LABEL36:(void)0; +var35 = self->attrs[COLOR_nit__typing__AForExpr___method_next].val; /* _method_next on */ +var33 = var35; +RET_LABEL34:(void)0; } } { -nit___nit__RapidTypeVisitor___add_callsite(var_v, var35); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on */ +nit___nit__RapidTypeVisitor___add_callsite(var_v, var33); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on */ } { { /* Inline typing#AForExpr#method_finish (self) on */ -var40 = self->attrs[COLOR_nit__typing__AForExpr___method_finish].val; /* _method_finish on */ -var38 = var40; -RET_LABEL39:(void)0; +var38 = self->attrs[COLOR_nit__typing__AForExpr___method_finish].val; /* _method_finish on */ +var36 = var38; +RET_LABEL37:(void)0; } } -var_mf = var38; -var41 = NULL; +var_mf = var36; if (var_mf == NULL) { -var42 = 0; /* is null */ +var39 = 0; /* is null */ } else { -var42 = 1; /* arg is null and recv is not */ +var39 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_mf,var41) on */ -var_other = var41; +{ /* Inline kernel#Object#!= (var_mf,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var45 = ((short int (*)(val* self, val* p0))(var_mf->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mf, var_other) /* == on */; +var42 = ((short int(*)(val* self, val* p0))(var_mf->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mf, var_other); /* == on */ } -var46 = !var45; -var43 = var46; -goto RET_LABEL44; -RET_LABEL44:(void)0; +var43 = !var42; +var40 = var43; +goto RET_LABEL41; +RET_LABEL41:(void)0; } -var42 = var43; +var39 = var40; } -if (var42){ +if (var39){ { nit___nit__RapidTypeVisitor___add_callsite(var_v, var_mf); /* Direct call rapid_type_analysis#RapidTypeVisitor#add_callsite on */ } @@ -6260,8 +6871,8 @@ RET_LABEL1:(void)0; } if (unlikely(var == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 680); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__rapid_type_analysis, 704); +fatal_exit(1); } var_mtype = var; {