X-Git-Url: http://nitlanguage.org diff --git a/c_src/auto_super_init.sep.1.c b/c_src/auto_super_init.sep.1.c index 83717ee..539615d 100644 --- a/c_src/auto_super_init.sep.1.c +++ b/c_src/auto_super_init.sep.1.c @@ -3,10 +3,10 @@ val* auto_super_init__ToolContext__auto_super_init_phase(val* self) { val* var /* : Phase */; val* var1 /* : Phase */; -var1 = self->attrs[COLOR_auto_super_init__ToolContext___64dauto_super_init_phase].val; /* @auto_super_init_phase on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @auto_super_init_phase"); -fprintf(stderr, " (%s:%d)\n", "src/auto_super_init.nit", 26); +var1 = self->attrs[COLOR_auto_super_init__ToolContext___auto_super_init_phase].val; /* _auto_super_init_phase on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _auto_super_init_phase"); +PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 25); show_backtrace(1); } var = var1; @@ -17,20 +17,20 @@ return var; val* VIRTUAL_auto_super_init__ToolContext__auto_super_init_phase(val* self) { val* var /* : Phase */; val* var1 /* : Phase */; -var1 = auto_super_init__ToolContext__auto_super_init_phase(self); -var = var1; -RET_LABEL:; -return var; +val* var3 /* : Phase */; +{ /* Inline auto_super_init#ToolContext#auto_super_init_phase (self) on */ +var3 = self->attrs[COLOR_auto_super_init__ToolContext___auto_super_init_phase].val; /* _auto_super_init_phase on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _auto_super_init_phase"); +PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 25); +show_backtrace(1); } -/* method auto_super_init#ToolContext#auto_super_init_phase= for (self: ToolContext, Phase) */ -void auto_super_init__ToolContext__auto_super_init_phase_61d(val* self, val* p0) { -self->attrs[COLOR_auto_super_init__ToolContext___64dauto_super_init_phase].val = p0; /* @auto_super_init_phase on */ -RET_LABEL:; +var1 = var3; +RET_LABEL2:(void)0; } -/* method auto_super_init#ToolContext#auto_super_init_phase= for (self: Object, Phase) */ -void VIRTUAL_auto_super_init__ToolContext__auto_super_init_phase_61d(val* self, val* p0) { -auto_super_init__ToolContext__auto_super_init_phase_61d(self, p0); +var = var1; RET_LABEL:; +return var; } /* method auto_super_init#AutoSuperInitPhase#process_npropdef for (self: AutoSuperInitPhase, APropdef) */ void auto_super_init__AutoSuperInitPhase__process_npropdef(val* self, val* p0) { @@ -39,906 +39,2537 @@ short int var /* : Bool */; int cltype; int idtype; val* var1 /* : ToolContext */; -val* var2 /* : ModelBuilder */; +val* var3 /* : ToolContext */; +val* var4 /* : ModelBuilder */; var_npropdef = p0; -/* isa AConcreteMethPropdef */ -cltype = type_parser_nodes__AConcreteMethPropdef.color; -idtype = type_parser_nodes__AConcreteMethPropdef.id; +/* isa AMethPropdef */ +cltype = type_parser_nodes__AMethPropdef.color; +idtype = type_parser_nodes__AMethPropdef.id; if(cltype >= var_npropdef->type->table_size) { var = 0; } else { var = var_npropdef->type->type_table[cltype] == idtype; } if (var){ -var1 = ((val* (*)(val*))(self->class->vft[COLOR_phase__Phase__toolcontext]))(self) /* toolcontext on */; -var2 = ((val* (*)(val*))(var1->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder]))(var1) /* modelbuilder on */; -((void (*)(val*, val*))(var_npropdef->class->vft[COLOR_auto_super_init__AConcreteMethPropdef__do_auto_super_init]))(var_npropdef, var2) /* do_auto_super_init on */; +{ +{ /* Inline phase#Phase#toolcontext (self) on */ +var3 = self->attrs[COLOR_phase__Phase___toolcontext].val; /* _toolcontext on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", "phase.nit", 162); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} +} +{ +var4 = modelbuilder__ToolContext__modelbuilder(var1); +} +{ +auto_super_init__AMethPropdef__do_auto_super_init(var_npropdef, var4); /* Direct call auto_super_init#AMethPropdef#do_auto_super_init on */ +} } else { } RET_LABEL:; } /* method auto_super_init#AutoSuperInitPhase#process_npropdef for (self: Object, APropdef) */ void VIRTUAL_auto_super_init__AutoSuperInitPhase__process_npropdef(val* self, val* p0) { -auto_super_init__AutoSuperInitPhase__process_npropdef(self, p0); -RET_LABEL:; -} -/* method auto_super_init#AutoSuperInitVisitor#init for (self: AutoSuperInitVisitor) */ -void auto_super_init__AutoSuperInitVisitor__init(val* self) { -((void (*)(val*))(self->class->vft[COLOR_parser_nodes__Visitor__init]))(self) /* init on */; -RET_LABEL:; -} -/* method auto_super_init#AutoSuperInitVisitor#init for (self: Object) */ -void VIRTUAL_auto_super_init__AutoSuperInitVisitor__init(val* self) { -auto_super_init__AutoSuperInitVisitor__init(self); +auto_super_init__AutoSuperInitPhase__process_npropdef(self, p0); /* Direct call auto_super_init#AutoSuperInitPhase#process_npropdef on */ RET_LABEL:; } /* method auto_super_init#AutoSuperInitVisitor#visit for (self: AutoSuperInitVisitor, ANode) */ void auto_super_init__AutoSuperInitVisitor__visit(val* self, val* p0) { val* var_n /* var n: ANode */; var_n = p0; +{ ((void (*)(val*, val*))(var_n->class->vft[COLOR_auto_super_init__ANode__accept_auto_super_init]))(var_n, self) /* accept_auto_super_init on */; +} +{ ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__visit_all]))(var_n, self) /* visit_all on */; +} RET_LABEL:; } /* method auto_super_init#AutoSuperInitVisitor#visit for (self: Object, ANode) */ void VIRTUAL_auto_super_init__AutoSuperInitVisitor__visit(val* self, val* p0) { -auto_super_init__AutoSuperInitVisitor__visit(self, p0); +auto_super_init__AutoSuperInitVisitor__visit(self, p0); /* Direct call auto_super_init#AutoSuperInitVisitor#visit on */ +RET_LABEL:; +} +/* method auto_super_init#AutoSuperInitVisitor#has_explicit_super_init for (self: AutoSuperInitVisitor): nullable ANode */ +val* auto_super_init__AutoSuperInitVisitor__has_explicit_super_init(val* self) { +val* var /* : nullable ANode */; +val* var1 /* : nullable ANode */; +var1 = self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val; /* _has_explicit_super_init on */ +var = var1; +RET_LABEL:; +return var; +} +/* method auto_super_init#AutoSuperInitVisitor#has_explicit_super_init for (self: Object): nullable ANode */ +val* VIRTUAL_auto_super_init__AutoSuperInitVisitor__has_explicit_super_init(val* self) { +val* var /* : nullable ANode */; +val* var1 /* : nullable ANode */; +val* var3 /* : nullable ANode */; +{ /* Inline auto_super_init#AutoSuperInitVisitor#has_explicit_super_init (self) on */ +var3 = self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val; /* _has_explicit_super_init on */ +var1 = var3; +RET_LABEL2:(void)0; +} +var = var1; +RET_LABEL:; +return var; +} +/* method auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= for (self: AutoSuperInitVisitor, nullable ANode) */ +void auto_super_init__AutoSuperInitVisitor__has_explicit_super_init_61d(val* self, val* p0) { +self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val = p0; /* _has_explicit_super_init on */ RET_LABEL:; } -/* method auto_super_init#AutoSuperInitVisitor#has_explicit_super_init for (self: AutoSuperInitVisitor): Bool */ -short int auto_super_init__AutoSuperInitVisitor__has_explicit_super_init(val* self) { +/* method auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= for (self: Object, nullable ANode) */ +void VIRTUAL_auto_super_init__AutoSuperInitVisitor__has_explicit_super_init_61d(val* self, val* p0) { +{ /* Inline auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= (self,p0) on */ +self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val = p0; /* _has_explicit_super_init on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method auto_super_init#AutoSuperInitVisitor#is_broken for (self: AutoSuperInitVisitor): Bool */ +short int auto_super_init__AutoSuperInitVisitor__is_broken(val* self) { short int var /* : Bool */; short int var1 /* : Bool */; -var1 = self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___64dhas_explicit_super_init].s; /* @has_explicit_super_init on */ +var1 = self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___is_broken].s; /* _is_broken on */ var = var1; RET_LABEL:; return var; } -/* method auto_super_init#AutoSuperInitVisitor#has_explicit_super_init for (self: Object): Bool */ -short int VIRTUAL_auto_super_init__AutoSuperInitVisitor__has_explicit_super_init(val* self) { +/* method auto_super_init#AutoSuperInitVisitor#is_broken for (self: Object): Bool */ +short int VIRTUAL_auto_super_init__AutoSuperInitVisitor__is_broken(val* self) { short int var /* : Bool */; short int var1 /* : Bool */; -var1 = auto_super_init__AutoSuperInitVisitor__has_explicit_super_init(self); +short int var3 /* : Bool */; +{ /* Inline auto_super_init#AutoSuperInitVisitor#is_broken (self) on */ +var3 = self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___is_broken].s; /* _is_broken on */ +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } -/* method auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= for (self: AutoSuperInitVisitor, Bool) */ -void auto_super_init__AutoSuperInitVisitor__has_explicit_super_init_61d(val* self, short int p0) { -self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___64dhas_explicit_super_init].s = p0; /* @has_explicit_super_init on */ +/* method auto_super_init#AutoSuperInitVisitor#is_broken= for (self: AutoSuperInitVisitor, Bool) */ +void auto_super_init__AutoSuperInitVisitor__is_broken_61d(val* self, short int p0) { +self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___is_broken].s = p0; /* _is_broken on */ RET_LABEL:; } -/* method auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= for (self: Object, Bool) */ -void VIRTUAL_auto_super_init__AutoSuperInitVisitor__has_explicit_super_init_61d(val* self, short int p0) { -auto_super_init__AutoSuperInitVisitor__has_explicit_super_init_61d(self, p0); +/* method auto_super_init#AutoSuperInitVisitor#is_broken= for (self: Object, Bool) */ +void VIRTUAL_auto_super_init__AutoSuperInitVisitor__is_broken_61d(val* self, short int p0) { +{ /* Inline auto_super_init#AutoSuperInitVisitor#is_broken= (self,p0) on */ +self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___is_broken].s = p0; /* _is_broken on */ +RET_LABEL1:(void)0; +} RET_LABEL:; } -/* method auto_super_init#AConcreteMethPropdef#auto_super_inits for (self: AConcreteMethPropdef): nullable Array[CallSite] */ -val* auto_super_init__AConcreteMethPropdef__auto_super_inits(val* self) { +/* method auto_super_init#AMethPropdef#auto_super_inits for (self: AMethPropdef): nullable Array[CallSite] */ +val* auto_super_init__AMethPropdef__auto_super_inits(val* self) { val* var /* : nullable Array[CallSite] */; val* var1 /* : nullable Array[CallSite] */; -var1 = self->attrs[COLOR_auto_super_init__AConcreteMethPropdef___64dauto_super_inits].val; /* @auto_super_inits on */ +var1 = self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_inits].val; /* _auto_super_inits on */ var = var1; RET_LABEL:; return var; } -/* method auto_super_init#AConcreteMethPropdef#auto_super_inits for (self: Object): nullable Array[CallSite] */ -val* VIRTUAL_auto_super_init__AConcreteMethPropdef__auto_super_inits(val* self) { +/* method auto_super_init#AMethPropdef#auto_super_inits for (self: Object): nullable Array[CallSite] */ +val* VIRTUAL_auto_super_init__AMethPropdef__auto_super_inits(val* self) { val* var /* : nullable Array[CallSite] */; val* var1 /* : nullable Array[CallSite] */; -var1 = auto_super_init__AConcreteMethPropdef__auto_super_inits(self); +val* var3 /* : nullable Array[CallSite] */; +{ /* Inline auto_super_init#AMethPropdef#auto_super_inits (self) on */ +var3 = self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_inits].val; /* _auto_super_inits on */ +var1 = var3; +RET_LABEL2:(void)0; +} +var = var1; +RET_LABEL:; +return var; +} +/* method auto_super_init#AMethPropdef#auto_super_inits= for (self: AMethPropdef, nullable Array[CallSite]) */ +void auto_super_init__AMethPropdef__auto_super_inits_61d(val* self, val* p0) { +self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_inits].val = p0; /* _auto_super_inits on */ +RET_LABEL:; +} +/* method auto_super_init#AMethPropdef#auto_super_inits= for (self: Object, nullable Array[CallSite]) */ +void VIRTUAL_auto_super_init__AMethPropdef__auto_super_inits_61d(val* self, val* p0) { +{ /* Inline auto_super_init#AMethPropdef#auto_super_inits= (self,p0) on */ +self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_inits].val = p0; /* _auto_super_inits on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method auto_super_init#AMethPropdef#auto_super_call for (self: AMethPropdef): Bool */ +short int auto_super_init__AMethPropdef__auto_super_call(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_call].s; /* _auto_super_call on */ +var = var1; +RET_LABEL:; +return var; +} +/* method auto_super_init#AMethPropdef#auto_super_call for (self: Object): Bool */ +short int VIRTUAL_auto_super_init__AMethPropdef__auto_super_call(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +short int var3 /* : Bool */; +{ /* Inline auto_super_init#AMethPropdef#auto_super_call (self) on */ +var3 = self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_call].s; /* _auto_super_call on */ +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } -/* method auto_super_init#AConcreteMethPropdef#auto_super_inits= for (self: AConcreteMethPropdef, nullable Array[CallSite]) */ -void auto_super_init__AConcreteMethPropdef__auto_super_inits_61d(val* self, val* p0) { -self->attrs[COLOR_auto_super_init__AConcreteMethPropdef___64dauto_super_inits].val = p0; /* @auto_super_inits on */ +/* method auto_super_init#AMethPropdef#auto_super_call= for (self: AMethPropdef, Bool) */ +void auto_super_init__AMethPropdef__auto_super_call_61d(val* self, short int p0) { +self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_call].s = p0; /* _auto_super_call on */ RET_LABEL:; } -/* method auto_super_init#AConcreteMethPropdef#auto_super_inits= for (self: Object, nullable Array[CallSite]) */ -void VIRTUAL_auto_super_init__AConcreteMethPropdef__auto_super_inits_61d(val* self, val* p0) { -auto_super_init__AConcreteMethPropdef__auto_super_inits_61d(self, p0); +/* method auto_super_init#AMethPropdef#auto_super_call= for (self: Object, Bool) */ +void VIRTUAL_auto_super_init__AMethPropdef__auto_super_call_61d(val* self, short int p0) { +{ /* Inline auto_super_init#AMethPropdef#auto_super_call= (self,p0) on */ +self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_call].s = p0; /* _auto_super_call on */ +RET_LABEL1:(void)0; +} RET_LABEL:; } -/* method auto_super_init#AConcreteMethPropdef#do_auto_super_init for (self: AConcreteMethPropdef, ModelBuilder) */ -void auto_super_init__AConcreteMethPropdef__do_auto_super_init(val* self, val* p0) { +/* method auto_super_init#AMethPropdef#do_auto_super_init for (self: AMethPropdef, ModelBuilder) */ +void auto_super_init__AMethPropdef__do_auto_super_init(val* self, val* p0) { val* var_modelbuilder /* var modelbuilder: ModelBuilder */; val* var /* : nullable ANode */; -short int var1 /* : Bool */; +val* var2 /* : nullable ANode */; +short int var3 /* : Bool */; int cltype; int idtype; const char* var_class_name; -val* var2 /* : nullable MClassDef */; +val* var4 /* : nullable MClassDef */; +val* var6 /* : nullable MClassDef */; val* var_mclassdef /* var mclassdef: MClassDef */; -val* var3 /* : nullable MPropDef */; +val* var7 /* : nullable MPropDef */; +val* var9 /* : nullable MPropDef */; val* var_mpropdef /* var mpropdef: MMethodDef */; -val* var4 /* : MClassDef */; -val* var5 /* : MModule */; +val* var10 /* : MClassDef */; +val* var12 /* : MClassDef */; +val* var13 /* : MModule */; +val* var15 /* : MModule */; val* var_mmodule /* var mmodule: MModule */; -val* var6 /* : MClassType */; +val* var16 /* : MClassType */; +val* var18 /* : MClassType */; val* var_anchor /* var anchor: MClassType */; -val* var7 /* : MClass */; -val* var8 /* : MClassType */; +val* var19 /* : MClass */; +val* var21 /* : MClass */; +val* var22 /* : MClassType */; +val* var24 /* : MClassType */; val* var_recvtype /* var recvtype: MClassType */; -val* var9 /* : MProperty */; -short int var10 /* : Bool */; -short int var11 /* : Bool */; -val* var12 /* : MClassDef */; -short int var13 /* : Bool */; -short int var14 /* : Bool */; -short int var15 /* : Bool */; +static val* varonce; +val* var25 /* : String */; +char* var26 /* : NativeString */; +long var27 /* : Int */; +val* var28 /* : FlatString */; +val* var29 /* : nullable AAnnotation */; +val* var_nosuper /* var nosuper: nullable AAnnotation */; +val* var30 /* : MProperty */; +val* var32 /* : MProperty */; +short int var33 /* : Bool */; +short int var35 /* : Bool */; +short int var36 /* : Bool */; +val* var37 /* : null */; +short int var38 /* : Bool */; +short int var39 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var41 /* : Bool */; +short int var42 /* : Bool */; +short int var43 /* : Bool */; +static val* varonce44; +val* var45 /* : String */; +char* var46 /* : NativeString */; +long var47 /* : Int */; +val* var48 /* : FlatString */; +val* var49 /* : MClassDef */; +val* var51 /* : MClassDef */; +short int var52 /* : Bool */; +short int var53 /* : Bool */; +short int var54 /* : Bool */; short int var_skip /* var skip: Bool */; -val* var16 /* : nullable POSetElement[MClassDef] */; -val* var17 /* : Collection[Object] */; -val* var18 /* : Iterator[nullable Object] */; -short int var19 /* : Bool */; -val* var20 /* : nullable Object */; +val* var55 /* : nullable POSetElement[MClassDef] */; +val* var57 /* : nullable POSetElement[MClassDef] */; +val* var58 /* : Collection[Object] */; +val* var_ /* var : Collection[MClassDef] */; +val* var59 /* : Iterator[nullable Object] */; +val* var_60 /* var : Iterator[MClassDef] */; +short int var61 /* : Bool */; +val* var62 /* : nullable Object */; val* var_cd /* var cd: MClassDef */; -val* var21 /* : MClass */; -val* var22 /* : MClassKind */; -short int var23 /* : Bool */; -short int var24 /* : Bool */; -val* var25 /* : nullable AExpr */; +val* var63 /* : MClass */; +val* var65 /* : MClass */; +val* var66 /* : MClassKind */; +val* var68 /* : MClassKind */; +short int var69 /* : Bool */; +short int var71 /* : Bool */; +short int var72 /* : Bool */; +val* var74 /* : nullable AExpr */; +val* var76 /* : nullable AExpr */; val* var_nblock /* var nblock: nullable AExpr */; -val* var26 /* : null */; -short int var27 /* : Bool */; -val* var28 /* : AutoSuperInitVisitor */; +val* var77 /* : null */; +short int var78 /* : Bool */; +short int var79 /* : Bool */; +short int var81 /* : Bool */; +short int var82 /* : Bool */; +short int var83 /* : Bool */; +val* var84 /* : AutoSuperInitVisitor */; val* var_v /* var v: AutoSuperInitVisitor */; -short int var29 /* : Bool */; -val* var30 /* : Array[CallSite] */; +val* var85 /* : nullable ANode */; +val* var87 /* : nullable ANode */; +val* var_anode /* var anode: nullable ANode */; +val* var88 /* : null */; +short int var89 /* : Bool */; +short int var90 /* : Bool */; +short int var92 /* : Bool */; +short int var93 /* : Bool */; +short int var94 /* : Bool */; +val* var95 /* : null */; +short int var96 /* : Bool */; +short int var97 /* : Bool */; +short int var99 /* : Bool */; +short int var100 /* : Bool */; +short int var101 /* : Bool */; +static val* varonce102; +val* var103 /* : String */; +char* var104 /* : NativeString */; +long var105 /* : Int */; +val* var106 /* : FlatString */; +short int var107 /* : Bool */; +short int var109 /* : Bool */; +val* var110 /* : null */; +short int var111 /* : Bool */; +short int var112 /* : Bool */; +short int var114 /* : Bool */; +short int var115 /* : Bool */; +short int var116 /* : Bool */; +short int var117 /* : Bool */; +short int var118 /* : Bool */; +short int var119 /* : Bool */; +short int var121 /* : Bool */; +val* var123 /* : Array[CallSite] */; val* var_auto_super_inits /* var auto_super_inits: Array[CallSite] */; -val* var31 /* : Array[MClassType] */; -val* var32 /* : Iterator[nullable Object] */; -short int var33 /* : Bool */; -val* var34 /* : nullable Object */; +val* var124 /* : Array[MClassType] */; +val* var126 /* : Array[MClassType] */; +val* var_127 /* var : Array[MClassType] */; +val* var128 /* : ArrayIterator[nullable Object] */; +val* var_129 /* var : ArrayIterator[MClassType] */; +short int var130 /* : Bool */; +val* var131 /* : nullable Object */; val* var_msupertype /* var msupertype: MClassType */; -val* var35 /* : MClass */; -val* var36 /* : MClassKind */; -short int var37 /* : Bool */; -short int var38 /* : Bool */; -val* var40 /* : MClassType */; -val* var41 /* : MType */; -val* var42 /* : MProperty */; -val* var43 /* : String */; -val* var44 /* : nullable MProperty */; +val* var132 /* : MClass */; +val* var134 /* : MClass */; +val* var135 /* : MClassKind */; +val* var137 /* : MClassKind */; +short int var138 /* : Bool */; +short int var140 /* : Bool */; +short int var141 /* : Bool */; +val* var143 /* : MClassType */; +val* var145 /* : MClassType */; +val* var146 /* : MClassType */; +val* var147 /* : MProperty */; +val* var149 /* : MProperty */; +val* var150 /* : String */; +val* var152 /* : String */; +val* var153 /* : nullable MProperty */; val* var_candidate /* var candidate: nullable MProperty */; -val* var45 /* : null */; -short int var46 /* : Bool */; -static val* varonce; -val* var47 /* : String */; -char* var48 /* : NativeString */; -long var49 /* : Int */; -val* var50 /* : String */; -val* var51 /* : nullable MProperty */; -val* var52 /* : null */; -short int var53 /* : Bool */; -static val* varonce54; -val* var55 /* : String */; -char* var56 /* : NativeString */; -long var57 /* : Int */; -val* var58 /* : String */; -static val* varonce59; -val* var60 /* : String */; -char* var61 /* : NativeString */; -long var62 /* : Int */; -val* var63 /* : String */; -val* var64 /* : MProperty */; -val* var65 /* : String */; -static val* varonce66; -val* var67 /* : String */; -char* var68 /* : NativeString */; -long var69 /* : Int */; -val* var70 /* : String */; -static val* varonce71; -val* var72 /* : String */; -char* var73 /* : NativeString */; -long var74 /* : Int */; -val* var75 /* : String */; -val* var76 /* : Array[Object] */; -long var77 /* : Int */; -val* var78 /* : NativeArray[Object] */; -val* var79 /* : String */; -short int var80 /* : Bool */; -int cltype81; -int idtype82; -val* var83 /* : Array[MPropDef] */; +val* var154 /* : null */; +short int var155 /* : Bool */; +short int var156 /* : Bool */; +val* var_other158 /* var other: nullable Object */; +short int var159 /* : Bool */; +short int var161 /* : Bool */; +static val* varonce162; +val* var163 /* : String */; +char* var164 /* : NativeString */; +long var165 /* : Int */; +val* var166 /* : FlatString */; +val* var167 /* : nullable MProperty */; +val* var168 /* : null */; +short int var169 /* : Bool */; +short int var170 /* : Bool */; +short int var172 /* : Bool */; +short int var174 /* : Bool */; +static val* varonce175; +val* var176 /* : String */; +char* var177 /* : NativeString */; +long var178 /* : Int */; +val* var179 /* : FlatString */; +static val* varonce180; +val* var181 /* : String */; +char* var182 /* : NativeString */; +long var183 /* : Int */; +val* var184 /* : FlatString */; +val* var185 /* : MProperty */; +val* var187 /* : MProperty */; +val* var188 /* : String */; +val* var190 /* : String */; +static val* varonce191; +val* var192 /* : String */; +char* var193 /* : NativeString */; +long var194 /* : Int */; +val* var195 /* : FlatString */; +static val* varonce196; +val* var197 /* : String */; +char* var198 /* : NativeString */; +long var199 /* : Int */; +val* var200 /* : FlatString */; +val* var201 /* : Array[Object] */; +long var202 /* : Int */; +val* var203 /* : NativeArray[Object] */; +val* var204 /* : String */; +short int var205 /* : Bool */; +int cltype206; +int idtype207; +short int var208 /* : Bool */; +short int var210 /* : Bool */; +val* var211 /* : Array[MPropDef] */; val* var_candidatedefs /* var candidatedefs: Array[MMethodDef] */; -val* var84 /* : nullable Object */; +val* var212 /* : nullable Object */; val* var_candidatedef /* var candidatedef: MMethodDef */; -val* var85 /* : nullable MSignature */; +val* var213 /* : nullable MSignature */; +val* var214 /* : nullable MSignature */; +val* var216 /* : nullable MSignature */; +val* var217 /* : nullable MSignature */; +val* var219 /* : nullable MSignature */; val* var_msignature /* var msignature: nullable MSignature */; -short int var86 /* : Bool */; -val* var87 /* : MType */; -val* var88 /* : CallSite */; -short int var89 /* : Bool */; -short int var90 /* : Bool */; +short int var220 /* : Bool */; +val* var221 /* : MSignature */; +val* var222 /* : CallSite */; +short int var223 /* : Bool */; +short int var224 /* : Bool */; val* var_callsite /* var callsite: CallSite */; -short int var91 /* : Bool */; -static val* varonce92; -val* var93 /* : String */; -char* var94 /* : NativeString */; -long var95 /* : Int */; -val* var96 /* : String */; -static val* varonce97; -val* var98 /* : String */; -char* var99 /* : NativeString */; -long var100 /* : Int */; -val* var101 /* : String */; -val* var102 /* : Array[Object] */; -long var103 /* : Int */; -val* var104 /* : NativeArray[Object] */; -val* var105 /* : String */; -val* var106 /* : Iterator[nullable Object] */; -short int var107 /* : Bool */; -val* var108 /* : nullable Object */; +val* var227 /* : nullable MMethod */; +val* var229 /* : nullable MMethod */; +val* var_the_root_init_mmethod /* var the_root_init_mmethod: nullable MMethod */; +short int var230 /* : Bool */; +val* var231 /* : null */; +short int var232 /* : Bool */; +short int var233 /* : Bool */; +short int var235 /* : Bool */; +short int var236 /* : Bool */; +short int var237 /* : Bool */; +short int var_238 /* var : Bool */; +short int var239 /* : Bool */; +val* var240 /* : Array[MPropDef] */; +val* var_candidatedefs241 /* var candidatedefs: Array[MMethodDef] */; +val* var242 /* : nullable Object */; +val* var_candidatedef243 /* var candidatedef: MMethodDef */; +long var244 /* : Int */; +long var246 /* : Int */; +long var247 /* : Int */; +short int var248 /* : Bool */; +short int var250 /* : Bool */; +int cltype251; +int idtype252; +const char* var_class_name253; +short int var254 /* : Bool */; +val* var_255 /* var : Array[MMethodDef] */; +val* var256 /* : ArrayIterator[nullable Object] */; +val* var_257 /* var : ArrayIterator[MMethodDef] */; +short int var258 /* : Bool */; +val* var259 /* : nullable Object */; +val* var_spd /* var spd: MMethodDef */; +val* var260 /* : Array[MProperty] */; +val* var262 /* : Array[MProperty] */; +long var263 /* : Int */; +long var265 /* : Int */; +val* var266 /* : Array[MProperty] */; +val* var268 /* : Array[MProperty] */; +long var269 /* : Int */; +long var271 /* : Int */; +short int var272 /* : Bool */; +short int var274 /* : Bool */; +int cltype275; +int idtype276; +const char* var_class_name277; +short int var278 /* : Bool */; +val* var_281 /* var : Array[MMethodDef] */; +val* var282 /* : ArrayIterator[nullable Object] */; +val* var_283 /* var : ArrayIterator[MMethodDef] */; +short int var284 /* : Bool */; +val* var285 /* : nullable Object */; +val* var_spd286 /* var spd: MMethodDef */; +long var287 /* : Int */; +long var_i /* var i: Int */; +val* var288 /* : Array[MProperty] */; +val* var290 /* : Array[MProperty] */; +val* var_291 /* var : Array[MProperty] */; +val* var292 /* : ArrayIterator[nullable Object] */; +val* var_293 /* var : ArrayIterator[MProperty] */; +short int var294 /* : Bool */; +val* var295 /* : nullable Object */; +val* var_p /* var p: MProperty */; +val* var296 /* : Array[MProperty] */; +val* var298 /* : Array[MProperty] */; +val* var299 /* : nullable Object */; +short int var300 /* : Bool */; +short int var301 /* : Bool */; +short int var303 /* : Bool */; +short int var304 /* : Bool */; +short int var305 /* : Bool */; +static val* varonce306; +val* var307 /* : String */; +char* var308 /* : NativeString */; +long var309 /* : Int */; +val* var310 /* : FlatString */; +static val* varonce311; +val* var312 /* : String */; +char* var313 /* : NativeString */; +long var314 /* : Int */; +val* var315 /* : FlatString */; +val* var316 /* : Array[MProperty] */; +val* var318 /* : Array[MProperty] */; +static val* varonce319; +val* var320 /* : String */; +char* var321 /* : NativeString */; +long var322 /* : Int */; +val* var323 /* : FlatString */; +val* var324 /* : String */; +static val* varonce325; +val* var326 /* : String */; +char* var327 /* : NativeString */; +long var328 /* : Int */; +val* var329 /* : FlatString */; +static val* varonce330; +val* var331 /* : String */; +char* var332 /* : NativeString */; +long var333 /* : Int */; +val* var334 /* : FlatString */; +val* var335 /* : Array[MProperty] */; +val* var337 /* : Array[MProperty] */; +static val* varonce338; +val* var339 /* : String */; +char* var340 /* : NativeString */; +long var341 /* : Int */; +val* var342 /* : FlatString */; +val* var343 /* : String */; +static val* varonce344; +val* var345 /* : String */; +char* var346 /* : NativeString */; +long var347 /* : Int */; +val* var348 /* : FlatString */; +val* var349 /* : Array[Object] */; +long var350 /* : Int */; +val* var351 /* : NativeArray[Object] */; +val* var352 /* : String */; +long var353 /* : Int */; +long var354 /* : Int */; +short int var356 /* : Bool */; +int cltype357; +int idtype358; +const char* var_class_name359; +long var360 /* : Int */; +val* var365 /* : nullable MSignature */; +val* var366 /* : nullable MSignature */; +val* var368 /* : nullable MSignature */; +val* var369 /* : nullable MSignature */; +val* var371 /* : nullable MSignature */; +val* var_msignature372 /* var msignature: nullable MSignature */; +short int var373 /* : Bool */; +val* var374 /* : MSignature */; +val* var375 /* : CallSite */; +short int var376 /* : Bool */; +short int var377 /* : Bool */; +val* var_callsite378 /* var callsite: CallSite */; +short int var379 /* : Bool */; +static val* varonce380; +val* var381 /* : String */; +char* var382 /* : NativeString */; +long var383 /* : Int */; +val* var384 /* : FlatString */; +static val* varonce385; +val* var386 /* : String */; +char* var387 /* : NativeString */; +long var388 /* : Int */; +val* var389 /* : FlatString */; +val* var390 /* : Array[Object] */; +long var391 /* : Int */; +val* var392 /* : NativeArray[Object] */; +val* var393 /* : String */; +val* var_394 /* var : Array[CallSite] */; +val* var395 /* : ArrayIterator[nullable Object] */; +val* var_396 /* var : ArrayIterator[CallSite] */; +short int var397 /* : Bool */; +val* var398 /* : nullable Object */; val* var_auto_super_init /* var auto_super_init: CallSite */; -val* var109 /* : MMethodDef */; +val* var399 /* : MMethodDef */; +val* var401 /* : MMethodDef */; val* var_auto_super_init_def /* var auto_super_init_def: MMethodDef */; -val* var110 /* : nullable MSignature */; +val* var402 /* : nullable MSignature */; +val* var404 /* : nullable MSignature */; val* var_msig /* var msig: MSignature */; -val* var111 /* : MSignature */; +val* var405 /* : MSignature */; +val* var407 /* : MSignature */; val* var_supermsig /* var supermsig: MSignature */; -long var112 /* : Int */; -long var113 /* : Int */; -short int var114 /* : Bool */; -short int var116 /* : Bool */; -int cltype117; -int idtype118; -const char* var_class_name119; -short int var120 /* : Bool */; -static val* varonce121; -val* var122 /* : String */; -char* var123 /* : NativeString */; -long var124 /* : Int */; -val* var125 /* : String */; -static val* varonce126; -val* var127 /* : String */; -char* var128 /* : NativeString */; -long var129 /* : Int */; -val* var130 /* : String */; -long var131 /* : Int */; -static val* varonce132; -val* var133 /* : String */; -char* var134 /* : NativeString */; -long var135 /* : Int */; -val* var136 /* : String */; -long var137 /* : Int */; -static val* varonce138; -val* var139 /* : String */; -char* var140 /* : NativeString */; -long var141 /* : Int */; -val* var142 /* : String */; -val* var143 /* : Array[Object] */; -long var144 /* : Int */; -val* var145 /* : NativeArray[Object] */; -val* var146 /* : Object */; -val* var147 /* : Object */; -val* var148 /* : String */; -long var150 /* : Int */; -long var_i /* var i: Int */; -val* var151 /* : Array[MParameter] */; -val* var152 /* : Iterator[nullable Object] */; -short int var153 /* : Bool */; -val* var154 /* : nullable Object */; +long var408 /* : Int */; +long var409 /* : Int */; +short int var410 /* : Bool */; +short int var412 /* : Bool */; +int cltype413; +int idtype414; +const char* var_class_name415; +short int var416 /* : Bool */; +static val* varonce417; +val* var418 /* : String */; +char* var419 /* : NativeString */; +long var420 /* : Int */; +val* var421 /* : FlatString */; +static val* varonce422; +val* var423 /* : String */; +char* var424 /* : NativeString */; +long var425 /* : Int */; +val* var426 /* : FlatString */; +long var427 /* : Int */; +static val* varonce428; +val* var429 /* : String */; +char* var430 /* : NativeString */; +long var431 /* : Int */; +val* var432 /* : FlatString */; +long var433 /* : Int */; +static val* varonce434; +val* var435 /* : String */; +char* var436 /* : NativeString */; +long var437 /* : Int */; +val* var438 /* : FlatString */; +val* var439 /* : Array[Object] */; +long var440 /* : Int */; +val* var441 /* : NativeArray[Object] */; +val* var442 /* : Object */; +val* var443 /* : Object */; +val* var444 /* : String */; +long var446 /* : Int */; +long var_i447 /* var i: Int */; +val* var448 /* : Array[MParameter] */; +val* var450 /* : Array[MParameter] */; +val* var_451 /* var : Array[MParameter] */; +val* var452 /* : ArrayIterator[nullable Object] */; +val* var_453 /* var : ArrayIterator[MParameter] */; +short int var454 /* : Bool */; +val* var455 /* : nullable Object */; val* var_sp /* var sp: MParameter */; -val* var155 /* : Array[MParameter] */; -val* var156 /* : nullable Object */; -val* var_p /* var p: MParameter */; -val* var157 /* : MType */; +val* var456 /* : Array[MParameter] */; +val* var458 /* : Array[MParameter] */; +val* var459 /* : nullable Object */; +val* var_p460 /* var p: MParameter */; +val* var461 /* : MType */; +val* var463 /* : MType */; val* var_sub /* var sub: MType */; -val* var158 /* : MType */; +val* var464 /* : MType */; +val* var466 /* : MType */; val* var_sup /* var sup: MType */; -short int var159 /* : Bool */; -short int var160 /* : Bool */; -static val* varonce161; -val* var162 /* : String */; -char* var163 /* : NativeString */; -long var164 /* : Int */; -val* var165 /* : String */; -static val* varonce166; -val* var167 /* : String */; -char* var168 /* : NativeString */; -long var169 /* : Int */; -val* var170 /* : String */; -static val* varonce171; -val* var172 /* : String */; -char* var173 /* : NativeString */; -long var174 /* : Int */; -val* var175 /* : String */; -val* var176 /* : MType */; -static val* varonce177; -val* var178 /* : String */; -char* var179 /* : NativeString */; -long var180 /* : Int */; -val* var181 /* : String */; -val* var182 /* : String */; -static val* varonce183; -val* var184 /* : String */; -char* var185 /* : NativeString */; -long var186 /* : Int */; -val* var187 /* : String */; -val* var188 /* : MType */; -static val* varonce189; -val* var190 /* : String */; -char* var191 /* : NativeString */; -long var192 /* : Int */; -val* var193 /* : String */; -val* var194 /* : Array[Object] */; -long var195 /* : Int */; -val* var196 /* : NativeArray[Object] */; -val* var197 /* : Object */; -val* var198 /* : String */; -long var200 /* : Int */; -long var201 /* : Int */; -long var203 /* : Int */; +short int var467 /* : Bool */; +short int var468 /* : Bool */; +static val* varonce469; +val* var470 /* : String */; +char* var471 /* : NativeString */; +long var472 /* : Int */; +val* var473 /* : FlatString */; +static val* varonce474; +val* var475 /* : String */; +char* var476 /* : NativeString */; +long var477 /* : Int */; +val* var478 /* : FlatString */; +static val* varonce479; +val* var480 /* : String */; +char* var481 /* : NativeString */; +long var482 /* : Int */; +val* var483 /* : FlatString */; +val* var484 /* : MType */; +val* var486 /* : MType */; +static val* varonce487; +val* var488 /* : String */; +char* var489 /* : NativeString */; +long var490 /* : Int */; +val* var491 /* : FlatString */; +val* var492 /* : String */; +val* var494 /* : String */; +static val* varonce495; +val* var496 /* : String */; +char* var497 /* : NativeString */; +long var498 /* : Int */; +val* var499 /* : FlatString */; +val* var500 /* : MType */; +val* var502 /* : MType */; +static val* varonce503; +val* var504 /* : String */; +char* var505 /* : NativeString */; +long var506 /* : Int */; +val* var507 /* : FlatString */; +val* var508 /* : Array[Object] */; +long var509 /* : Int */; +val* var510 /* : NativeArray[Object] */; +val* var511 /* : Object */; +val* var512 /* : String */; +long var514 /* : Int */; +long var515 /* : Int */; +short int var517 /* : Bool */; +int cltype518; +int idtype519; +const char* var_class_name520; +long var521 /* : Int */; var_modelbuilder = p0; -var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__parent]))(self) /* parent on */; +{ +{ /* Inline parser_nodes#ANode#parent (self) on */ +var2 = self->attrs[COLOR_parser_nodes__ANode___parent].val; /* _parent on */ +var = var2; +RET_LABEL1:(void)0; +} +} /* isa AClassdef */ cltype = type_parser_nodes__AClassdef.color; idtype = type_parser_nodes__AClassdef.id; if(var == NULL) { -var1 = 0; +var3 = 0; } else { if(cltype >= var->type->table_size) { -var1 = 0; +var3 = 0; } else { -var1 = var->type->type_table[cltype] == idtype; +var3 = var->type->type_table[cltype] == idtype; } } -if (!var1) { +if (unlikely(!var3)) { var_class_name = var == NULL ? "null" : var->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AClassdef", var_class_name); -fprintf(stderr, " (%s:%d)\n", "src/auto_super_init.nit", 56); -show_backtrace(1); -} -var2 = ((val* (*)(val*))(var->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var) /* mclassdef on */; -if (var2 == NULL) { -fprintf(stderr, "Runtime error: %s", "Cast failed"); -fprintf(stderr, " (%s:%d)\n", "src/auto_super_init.nit", 56); -show_backtrace(1); -} -var_mclassdef = var2; -var3 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on */; -if (var3 == NULL) { -fprintf(stderr, "Runtime error: %s", "Cast failed"); -fprintf(stderr, " (%s:%d)\n", "src/auto_super_init.nit", 57); -show_backtrace(1); -} -var_mpropdef = var3; -var4 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mpropdef) /* mclassdef on */; -var5 = ((val* (*)(val*))(var4->class->vft[COLOR_model__MClassDef__mmodule]))(var4) /* mmodule on */; -var_mmodule = var5; -var6 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__bound_mtype]))(var_mclassdef) /* bound_mtype on */; -var_anchor = var6; -var7 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__mclass]))(var_mclassdef) /* mclass on */; -var8 = ((val* (*)(val*))(var7->class->vft[COLOR_model__MClass__mclass_type]))(var7) /* mclass_type on */; -var_recvtype = var8; -var9 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on */; -var10 = ((short int (*)(val*))(var9->class->vft[COLOR_model__MMethod__is_init]))(var9) /* is_init on */; -var11 = !var10; -if (var11){ +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AClassdef", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 58); +show_backtrace(1); +} +{ +{ /* Inline modelize_class#AClassdef#mclassdef (var) on */ +var6 = var->attrs[COLOR_modelize_class__AClassdef___mclassdef].val; /* _mclassdef on */ +var4 = var6; +RET_LABEL5:(void)0; +} +} +if (unlikely(var4 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 58); +show_backtrace(1); +} +var_mclassdef = var4; +{ +{ /* Inline modelize_property#APropdef#mpropdef (self) on */ +var9 = self->attrs[COLOR_modelize_property__APropdef___mpropdef].val; /* _mpropdef on */ +var7 = var9; +RET_LABEL8:(void)0; +} +} +if (unlikely(var7 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 59); +show_backtrace(1); +} +var_mpropdef = var7; +{ +{ /* Inline model#MPropDef#mclassdef (var_mpropdef) on */ +var12 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on */ +if (unlikely(var12 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895); +show_backtrace(1); +} +var10 = var12; +RET_LABEL11:(void)0; +} +} +{ +{ /* Inline model#MClassDef#mmodule (var10) on */ +var15 = var10->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var15 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489); +show_backtrace(1); +} +var13 = var15; +RET_LABEL14:(void)0; +} +} +var_mmodule = var13; +{ +{ /* Inline model#MClassDef#bound_mtype (var_mclassdef) on */ +var18 = var_mclassdef->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var18 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495); +show_backtrace(1); +} +var16 = var18; +RET_LABEL17:(void)0; +} +} +var_anchor = var16; +{ +{ /* Inline model#MClassDef#mclass (var_mclassdef) on */ +var21 = var_mclassdef->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var21 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492); +show_backtrace(1); +} +var19 = var21; +RET_LABEL20:(void)0; +} +} +{ +{ /* Inline model#MClass#mclass_type (var19) on */ +var24 = var19->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var24 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435); +show_backtrace(1); +} +var22 = var24; +RET_LABEL23:(void)0; +} +} +var_recvtype = var22; +if (varonce) { +var25 = varonce; +} else { +var26 = "nosuper"; +var27 = 7; +var28 = string__NativeString__to_s_with_length(var26, var27); +var25 = var28; +varonce = var25; +} +{ +var29 = annotation__Prod__get_single_annotation(self, var25, var_modelbuilder); +} +var_nosuper = var29; +{ +{ /* Inline model#MPropDef#mproperty (var_mpropdef) on */ +var32 = var_mpropdef->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on */ +if (unlikely(var32 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898); +show_backtrace(1); +} +var30 = var32; +RET_LABEL31:(void)0; +} +} +{ +{ /* Inline model#MMethod#is_init (var30) on */ +var35 = var30->attrs[COLOR_model__MMethod___is_init].s; /* _is_init on */ +var33 = var35; +RET_LABEL34:(void)0; +} +} +var36 = !var33; +if (var36){ +var37 = NULL; +if (var_nosuper == NULL) { +var38 = 0; /* is null */ +} else { +var38 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_nosuper,var37) on */ +var_other = var37; +{ +var42 = ((short int (*)(val*, val*))(var_nosuper->class->vft[COLOR_kernel__Object___61d_61d]))(var_nosuper, var_other) /* == on */; +var41 = var42; +} +var43 = !var41; +var39 = var43; +goto RET_LABEL40; +RET_LABEL40:(void)0; +} +var38 = var39; +} +if (var38){ +if (varonce44) { +var45 = varonce44; +} else { +var46 = "Error: nosuper only in `init`"; +var47 = 29; +var48 = string__NativeString__to_s_with_length(var46, var47); +var45 = var48; +varonce44 = var45; +} +{ +modelbuilder__ModelBuilder__error(var_modelbuilder, var_nosuper, var45); /* Direct call modelbuilder#ModelBuilder#error on */ +} +} else { +} goto RET_LABEL; } else { } -var12 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mpropdef) /* mclassdef on */; -var13 = ((short int (*)(val*))(var12->class->vft[COLOR_model__MClassDef__is_intro]))(var12) /* is_intro on */; -var14 = !var13; -if (var14){ +{ +{ /* Inline model#MPropDef#mclassdef (var_mpropdef) on */ +var51 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on */ +if (unlikely(var51 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895); +show_backtrace(1); +} +var49 = var51; +RET_LABEL50:(void)0; +} +} +{ +var52 = model__MClassDef__is_intro(var49); +} +var53 = !var52; +if (var53){ goto RET_LABEL; } else { } -var15 = 1; -var_skip = var15; -var16 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__in_hierarchy]))(var_mclassdef) /* in_hierarchy on */; -if (var16 == NULL) { -fprintf(stderr, "Runtime error: %s", "Receiver is null"); -fprintf(stderr, " (%s:%d)\n", "src/auto_super_init.nit", 70); +var54 = 1; +var_skip = var54; +{ +{ /* Inline model#MClassDef#in_hierarchy (var_mclassdef) on */ +var57 = var_mclassdef->attrs[COLOR_model__MClassDef___in_hierarchy].val; /* _in_hierarchy on */ +var55 = var57; +RET_LABEL56:(void)0; +} +} +if (var55 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 78); show_backtrace(1); } else { -var17 = ((val* (*)(val*))(var16->class->vft[COLOR_poset__POSetElement__direct_greaters]))(var16) /* direct_greaters on */; +var58 = poset__POSetElement__direct_greaters(var55); } -var18 = ((val* (*)(val*))(var17->class->vft[COLOR_abstract_collection__Collection__iterator]))(var17) /* iterator on */; +var_ = var58; +{ +var59 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; +} +var_60 = var59; for(;;) { -var19 = ((short int (*)(val*))(var18->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var18) /* is_ok on */; -if(!var19) break; -var20 = ((val* (*)(val*))(var18->class->vft[COLOR_abstract_collection__Iterator__item]))(var18) /* item on */; -var_cd = var20; -var21 = ((val* (*)(val*))(var_cd->class->vft[COLOR_model__MClassDef__mclass]))(var_cd) /* mclass on */; -var22 = ((val* (*)(val*))(var21->class->vft[COLOR_model__MClass__kind]))(var21) /* kind on */; -var23 = ((short int (*)(val*))(var22->class->vft[COLOR_model__MClassKind__need_init]))(var22) /* need_init on */; -if (var23){ -var24 = 0; -var_skip = var24; +{ +var61 = ((short int (*)(val*))(var_60->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_60) /* is_ok on */; +} +if (var61){ +{ +var62 = ((val* (*)(val*))(var_60->class->vft[COLOR_abstract_collection__Iterator__item]))(var_60) /* item on */; +} +var_cd = var62; +{ +{ /* Inline model#MClassDef#mclass (var_cd) on */ +var65 = var_cd->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var65 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492); +show_backtrace(1); +} +var63 = var65; +RET_LABEL64:(void)0; +} +} +{ +{ /* Inline model#MClass#kind (var63) on */ +var68 = var63->attrs[COLOR_model__MClass___kind].val; /* _kind on */ +if (unlikely(var68 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371); +show_backtrace(1); +} +var66 = var68; +RET_LABEL67:(void)0; +} +} +{ +{ /* Inline model#MClassKind#need_init (var66) on */ +var71 = var66->attrs[COLOR_model__MClassKind___need_init].s; /* _need_init on */ +var69 = var71; +RET_LABEL70:(void)0; +} +} +if (var69){ +var72 = 0; +var_skip = var72; +} else { +} +{ +((void (*)(val*))(var_60->class->vft[COLOR_abstract_collection__Iterator__next]))(var_60) /* next on */; +} } else { +goto BREAK_label; } -CONTINUE_label: (void)0; -((void (*)(val*))(var18->class->vft[COLOR_abstract_collection__Iterator__next]))(var18) /* next on */; } BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_60) on */ +RET_LABEL73:(void)0; +} +} if (var_skip){ goto RET_LABEL; } else { } -var25 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AConcreteMethPropdef__n_block]))(self) /* n_block on */; -var_nblock = var25; -var26 = NULL; +{ +{ /* Inline parser_nodes#AMethPropdef#n_block (self) on */ +var76 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_block].val; /* _n_block on */ +var74 = var76; +RET_LABEL75:(void)0; +} +} +var_nblock = var74; +var77 = NULL; if (var_nblock == NULL) { -var27 = 0; /* is null */ +var78 = 0; /* is null */ } else { -var27 = 1; /* arg is null and recv is not */ -} -if (var27){ -var28 = NEW_auto_super_init__AutoSuperInitVisitor(&type_auto_super_init__AutoSuperInitVisitor); -((void (*)(val*))(var28->class->vft[COLOR_auto_super_init__AutoSuperInitVisitor__init]))(var28) /* init on */; -var_v = var28; -((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var_nblock) /* enter_visit on */; -var29 = ((short int (*)(val*))(var_v->class->vft[COLOR_auto_super_init__AutoSuperInitVisitor__has_explicit_super_init]))(var_v) /* has_explicit_super_init on */; -if (var29){ -goto RET_LABEL; +var78 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_nblock,var77) on */ +var_other = var77; +{ +var82 = ((short int (*)(val*, val*))(var_nblock->class->vft[COLOR_kernel__Object___61d_61d]))(var_nblock, var_other) /* == on */; +var81 = var82; +} +var83 = !var81; +var79 = var83; +goto RET_LABEL80; +RET_LABEL80:(void)0; +} +var78 = var79; +} +if (var78){ +var84 = NEW_auto_super_init__AutoSuperInitVisitor(&type_auto_super_init__AutoSuperInitVisitor); +{ +((void (*)(val*))(var84->class->vft[COLOR_kernel__Object__init]))(var84) /* init on */; +} +var_v = var84; +{ +parser_nodes__Visitor__enter_visit(var_v, var_nblock); /* Direct call parser_nodes#Visitor#enter_visit on */ +} +{ +{ /* Inline auto_super_init#AutoSuperInitVisitor#has_explicit_super_init (var_v) on */ +var87 = var_v->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val; /* _has_explicit_super_init on */ +var85 = var87; +RET_LABEL86:(void)0; +} +} +var_anode = var85; +var88 = NULL; +if (var_anode == NULL) { +var89 = 0; /* is null */ } else { +var89 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_anode,var88) on */ +var_other = var88; +{ +var93 = ((short int (*)(val*, val*))(var_anode->class->vft[COLOR_kernel__Object___61d_61d]))(var_anode, var_other) /* == on */; +var92 = var93; +} +var94 = !var92; +var90 = var94; +goto RET_LABEL91; +RET_LABEL91:(void)0; +} +var89 = var90; +} +if (var89){ +var95 = NULL; +if (var_nosuper == NULL) { +var96 = 0; /* is null */ +} else { +var96 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_nosuper,var95) on */ +var_other = var95; +{ +var100 = ((short int (*)(val*, val*))(var_nosuper->class->vft[COLOR_kernel__Object___61d_61d]))(var_nosuper, var_other) /* == on */; +var99 = var100; +} +var101 = !var99; +var97 = var101; +goto RET_LABEL98; +RET_LABEL98:(void)0; +} +var96 = var97; } +if (var96){ +if (varonce102) { +var103 = varonce102; } else { +var104 = "Error: method is annotated nosuper but a constructor call is present"; +var105 = 68; +var106 = string__NativeString__to_s_with_length(var104, var105); +var103 = var106; +varonce102 = var103; +} +{ +modelbuilder__ModelBuilder__error(var_modelbuilder, var_anode, var103); /* Direct call modelbuilder#ModelBuilder#error on */ } -var30 = NEW_array__Array(&type_array__Arraytyping__CallSite); -((void (*)(val*))(var30->class->vft[COLOR_array__Array__init]))(var30) /* init on */; -var_auto_super_inits = var30; -var31 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__supertypes]))(var_mclassdef) /* supertypes on */; -var32 = ((val* (*)(val*))(var31->class->vft[COLOR_abstract_collection__Collection__iterator]))(var31) /* iterator on */; -for(;;) { -var33 = ((short int (*)(val*))(var32->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var32) /* is_ok on */; -if(!var33) break; -var34 = ((val* (*)(val*))(var32->class->vft[COLOR_abstract_collection__Iterator__item]))(var32) /* item on */; -var_msupertype = var34; -var35 = ((val* (*)(val*))(var_msupertype->class->vft[COLOR_model__MClassType__mclass]))(var_msupertype) /* mclass on */; -var36 = ((val* (*)(val*))(var35->class->vft[COLOR_model__MClass__kind]))(var35) /* kind on */; -var37 = ((short int (*)(val*))(var36->class->vft[COLOR_model__MClassKind__need_init]))(var36) /* need_init on */; -var38 = !var37; -if (var38){ -goto CONTINUE_label39; } else { } -var40 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__bound_mtype]))(var_mclassdef) /* bound_mtype on */; -var41 = ((val* (*)(val*, val*, val*))(var_msupertype->class->vft[COLOR_model__MType__anchor_to]))(var_msupertype, var_mmodule, var40) /* anchor_to on */; -var_msupertype = var41; -var42 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on */; -var43 = ((val* (*)(val*))(var42->class->vft[COLOR_model__MProperty__name]))(var42) /* name on */; -var44 = ((val* (*)(val*, val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name2]))(var_modelbuilder, self, var_mmodule, var_msupertype, var43) /* try_get_mproperty_by_name2 on */; -var_candidate = var44; -var45 = NULL; -if (var_candidate == NULL) { -var46 = 1; /* is null */ +goto RET_LABEL; } else { -var46 = 0; /* arg is null but recv is not */ } -if (var46){ -if (varonce) { -var47 = varonce; +{ +{ /* Inline auto_super_init#AutoSuperInitVisitor#is_broken (var_v) on */ +var109 = var_v->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___is_broken].s; /* _is_broken on */ +var107 = var109; +RET_LABEL108:(void)0; +} +} +if (var107){ +goto RET_LABEL; } else { -var48 = "init"; -var49 = 4; -var50 = string__NativeString__to_s_with_length(var48, var49); -var47 = var50; -varonce = var47; } -var51 = ((val* (*)(val*, val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name2]))(var_modelbuilder, self, var_mmodule, var_msupertype, var47) /* try_get_mproperty_by_name2 on */; -var_candidate = var51; } else { } -var52 = NULL; -if (var_candidate == NULL) { -var53 = 1; /* is null */ +var110 = NULL; +if (var_nosuper == NULL) { +var111 = 0; /* is null */ } else { -var53 = 0; /* arg is null but recv is not */ +var111 = 1; /* arg is null and recv is not */ } -if (var53){ -if (varonce54) { -var55 = varonce54; -} else { -var56 = "Error: Cannot do an implicit constructor call in "; -var57 = 49; -var58 = string__NativeString__to_s_with_length(var56, var57); -var55 = var58; -varonce54 = var55; -} -if (varonce59) { -var60 = varonce59; -} else { -var61 = "; there is no constructor named "; -var62 = 32; -var63 = string__NativeString__to_s_with_length(var61, var62); -var60 = var63; -varonce59 = var60; -} -var64 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on */; -var65 = ((val* (*)(val*))(var64->class->vft[COLOR_model__MProperty__name]))(var64) /* name on */; -if (varonce66) { -var67 = varonce66; -} else { -var68 = " in "; -var69 = 4; -var70 = string__NativeString__to_s_with_length(var68, var69); -var67 = var70; -varonce66 = var67; -} -if (varonce71) { -var72 = varonce71; -} else { -var73 = "."; -var74 = 1; -var75 = string__NativeString__to_s_with_length(var73, var74); -var72 = var75; -varonce71 = var72; -} -var76 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var76 = array_instance Array[Object] */ -var77 = 7; -var78 = NEW_array__NativeArray(var77, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var78)->values[0] = (val*) var55; -((struct instance_array__NativeArray*)var78)->values[1] = (val*) var_mpropdef; -((struct instance_array__NativeArray*)var78)->values[2] = (val*) var60; -((struct instance_array__NativeArray*)var78)->values[3] = (val*) var65; -((struct instance_array__NativeArray*)var78)->values[4] = (val*) var67; -((struct instance_array__NativeArray*)var78)->values[5] = (val*) var_msupertype; -((struct instance_array__NativeArray*)var78)->values[6] = (val*) var72; -((void (*)(val*, val*, long))(var76->class->vft[COLOR_array__Array__with_native]))(var76, var78, var77) /* with_native on */; -} -var79 = ((val* (*)(val*))(var76->class->vft[COLOR_string__Object__to_s]))(var76) /* to_s on */; -((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var79) /* error on */; +if (0) { +{ /* Inline kernel#Object#!= (var_nosuper,var110) on */ +var_other = var110; +{ +var115 = ((short int (*)(val*, val*))(var_nosuper->class->vft[COLOR_kernel__Object___61d_61d]))(var_nosuper, var_other) /* == on */; +var114 = var115; +} +var116 = !var114; +var112 = var116; +goto RET_LABEL113; +RET_LABEL113:(void)0; +} +var111 = var112; +} +if (var111){ goto RET_LABEL; } else { } -/* isa MMethod */ -cltype81 = type_model__MMethod.color; -idtype82 = type_model__MMethod.id; -if(cltype81 >= var_candidate->type->table_size) { -var80 = 0; -} else { -var80 = var_candidate->type->type_table[cltype81] == idtype82; +{ +var117 = model__MPropDef__is_intro(var_mpropdef); +} +var118 = !var117; +if (var118){ +var119 = 1; +{ +{ /* Inline auto_super_init#AMethPropdef#auto_super_call= (self,var119) on */ +self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_call].s = var119; /* _auto_super_call on */ +RET_LABEL120:(void)0; +} +} +var121 = 1; +{ +{ /* Inline modelize_property#MPropDef#has_supercall= (var_mpropdef,var121) on */ +var_mpropdef->attrs[COLOR_modelize_property__MPropDef___has_supercall].s = var121; /* _has_supercall on */ +RET_LABEL122:(void)0; } -if (!var80) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "src/auto_super_init.nit", 100); -show_backtrace(1); } -var83 = ((val* (*)(val*, val*, val*))(var_candidate->class->vft[COLOR_model__MProperty__lookup_definitions]))(var_candidate, var_mmodule, var_anchor) /* lookup_definitions on */; -var_candidatedefs = var83; -var84 = ((val* (*)(val*))(var_candidatedefs->class->vft[COLOR_abstract_collection__Collection__first]))(var_candidatedefs) /* first on */; -var_candidatedef = var84; -var85 = ((val* (*)(val*))(var_candidatedef->class->vft[COLOR_model__MMethodDef__msignature]))(var_candidatedef) /* msignature on */; -var_msignature = var85; -var86 = 1; -if (var_msignature == NULL) { -fprintf(stderr, "Runtime error: %s", "Receiver is null"); -fprintf(stderr, " (%s:%d)\n", "src/auto_super_init.nit", 107); -show_backtrace(1); -} else { -var87 = ((val* (*)(val*, val*, val*, val*, short int))(var_msignature->class->vft[COLOR_model__MType__resolve_for]))(var_msignature, var_recvtype, var_anchor, var_mmodule, var86) /* resolve_for on */; -} -var_msignature = var87; -var88 = NEW_typing__CallSite(&type_typing__CallSite); -var89 = 1; -var90 = 0; -((void (*)(val*, val*, val*, short int, val*, val*, val*, short int))(var88->class->vft[COLOR_typing__CallSite__init]))(var88, self, var_recvtype, var89, var_candidate, var_candidatedef, var_msignature, var90) /* init on */; -var_callsite = var88; -((void (*)(val*, val*))(var_auto_super_inits->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_auto_super_inits, var_callsite) /* add on */; -CONTINUE_label39: (void)0; -((void (*)(val*))(var32->class->vft[COLOR_abstract_collection__Iterator__next]))(var32) /* next on */; -} -BREAK_label39: (void)0; -var91 = ((short int (*)(val*))(var_auto_super_inits->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_auto_super_inits) /* is_empty on */; -if (var91){ -if (varonce92) { -var93 = varonce92; -} else { -var94 = "Error: No constructors to call implicitely in "; -var95 = 46; -var96 = string__NativeString__to_s_with_length(var94, var95); -var93 = var96; -varonce92 = var93; -} -if (varonce97) { -var98 = varonce97; -} else { -var99 = ". Call one explicitely."; -var100 = 23; -var101 = string__NativeString__to_s_with_length(var99, var100); -var98 = var101; -varonce97 = var98; -} -var102 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var102 = array_instance Array[Object] */ -var103 = 3; -var104 = NEW_array__NativeArray(var103, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var104)->values[0] = (val*) var93; -((struct instance_array__NativeArray*)var104)->values[1] = (val*) var_mpropdef; -((struct instance_array__NativeArray*)var104)->values[2] = (val*) var98; -((void (*)(val*, val*, long))(var102->class->vft[COLOR_array__Array__with_native]))(var102, var104, var103) /* with_native on */; -} -var105 = ((val* (*)(val*))(var102->class->vft[COLOR_string__Object__to_s]))(var102) /* to_s on */; -((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var105) /* error on */; goto RET_LABEL; } else { } -var106 = ((val* (*)(val*))(var_auto_super_inits->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_auto_super_inits) /* iterator on */; -for(;;) { -var107 = ((short int (*)(val*))(var106->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var106) /* is_ok on */; -if(!var107) break; -var108 = ((val* (*)(val*))(var106->class->vft[COLOR_abstract_collection__Iterator__item]))(var106) /* item on */; -var_auto_super_init = var108; -var109 = ((val* (*)(val*))(var_auto_super_init->class->vft[COLOR_typing__CallSite__mpropdef]))(var_auto_super_init) /* mpropdef on */; -var_auto_super_init_def = var109; -var110 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MMethodDef__msignature]))(var_mpropdef) /* msignature on */; -if (var110 == NULL) { -fprintf(stderr, "Runtime error: %s", "Cast failed"); -fprintf(stderr, " (%s:%d)\n", "src/auto_super_init.nit", 118); -show_backtrace(1); -} -var_msig = var110; -var111 = ((val* (*)(val*))(var_auto_super_init->class->vft[COLOR_typing__CallSite__msignature]))(var_auto_super_init) /* msignature on */; -var_supermsig = var111; -var112 = ((long (*)(val*))(var_supermsig->class->vft[COLOR_model__MSignature__arity]))(var_supermsig) /* arity on */; -var113 = ((long (*)(val*))(var_msig->class->vft[COLOR_model__MSignature__arity]))(var_msig) /* arity on */; -{ /* Inline kernel#Int#> (var112,var113) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var116 = 1; /* easy isa OTHER*/ -if (!var116) { -var_class_name119 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name119); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267); -show_backtrace(1); -} -var120 = var112 > var113; -var114 = var120; -goto RET_LABEL115; -RET_LABEL115:(void)0; -} -if (var114){ -if (varonce121) { -var122 = varonce121; -} else { -var123 = "Error: Cannot do an implicit constructor call to "; -var124 = 49; -var125 = string__NativeString__to_s_with_length(var123, var124); -var122 = var125; -varonce121 = var122; -} -if (varonce126) { -var127 = varonce126; -} else { -var128 = ". Expected at least "; -var129 = 20; -var130 = string__NativeString__to_s_with_length(var128, var129); -var127 = var130; -varonce126 = var127; -} -var131 = ((long (*)(val*))(var_supermsig->class->vft[COLOR_model__MSignature__arity]))(var_supermsig) /* arity on */; -if (varonce132) { -var133 = varonce132; -} else { -var134 = " arguments, got "; -var135 = 16; -var136 = string__NativeString__to_s_with_length(var134, var135); -var133 = var136; -varonce132 = var133; -} -var137 = ((long (*)(val*))(var_msig->class->vft[COLOR_model__MSignature__arity]))(var_msig) /* arity on */; -if (varonce138) { -var139 = varonce138; -} else { -var140 = "."; -var141 = 1; -var142 = string__NativeString__to_s_with_length(var140, var141); -var139 = var142; -varonce138 = var139; -} -var143 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var143 = array_instance Array[Object] */ -var144 = 8; -var145 = NEW_array__NativeArray(var144, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var145)->values[0] = (val*) var122; -((struct instance_array__NativeArray*)var145)->values[1] = (val*) var_auto_super_init_def; -((struct instance_array__NativeArray*)var145)->values[2] = (val*) var_supermsig; -((struct instance_array__NativeArray*)var145)->values[3] = (val*) var127; -var146 = BOX_kernel__Int(var131); /* autobox from Int to Object */ -((struct instance_array__NativeArray*)var145)->values[4] = (val*) var146; -((struct instance_array__NativeArray*)var145)->values[5] = (val*) var133; -var147 = BOX_kernel__Int(var137); /* autobox from Int to Object */ -((struct instance_array__NativeArray*)var145)->values[6] = (val*) var147; -((struct instance_array__NativeArray*)var145)->values[7] = (val*) var139; -((void (*)(val*, val*, long))(var143->class->vft[COLOR_array__Array__with_native]))(var143, var145, var144) /* with_native on */; -} -var148 = ((val* (*)(val*))(var143->class->vft[COLOR_string__Object__to_s]))(var143) /* to_s on */; -((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var148) /* error on */; -goto CONTINUE_label149; -} else { -} -var150 = 0; -var_i = var150; -var151 = ((val* (*)(val*))(var_supermsig->class->vft[COLOR_model__MSignature__mparameters]))(var_supermsig) /* mparameters on */; -var152 = ((val* (*)(val*))(var151->class->vft[COLOR_abstract_collection__Collection__iterator]))(var151) /* iterator on */; +var123 = NEW_array__Array(&type_array__Arraytyping__CallSite); +{ +((void (*)(val*))(var123->class->vft[COLOR_kernel__Object__init]))(var123) /* init on */; +} +var_auto_super_inits = var123; +{ +{ /* Inline model#MClassDef#supertypes (var_mclassdef) on */ +var126 = var_mclassdef->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on */ +if (unlikely(var126 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 534); +show_backtrace(1); +} +var124 = var126; +RET_LABEL125:(void)0; +} +} +var_127 = var124; +{ +var128 = array__AbstractArrayRead__iterator(var_127); +} +var_129 = var128; for(;;) { -var153 = ((short int (*)(val*))(var152->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var152) /* is_ok on */; -if(!var153) break; -var154 = ((val* (*)(val*))(var152->class->vft[COLOR_abstract_collection__Iterator__item]))(var152) /* item on */; -var_sp = var154; -var155 = ((val* (*)(val*))(var_msig->class->vft[COLOR_model__MSignature__mparameters]))(var_msig) /* mparameters on */; -var156 = ((val* (*)(val*, long))(var155->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var155, var_i) /* [] on */; -var_p = var156; -var157 = ((val* (*)(val*))(var_p->class->vft[COLOR_model__MParameter__mtype]))(var_p) /* mtype on */; -var_sub = var157; -var158 = ((val* (*)(val*))(var_sp->class->vft[COLOR_model__MParameter__mtype]))(var_sp) /* mtype on */; -var_sup = var158; -var159 = ((short int (*)(val*, val*, val*, val*))(var_sub->class->vft[COLOR_model__MType__is_subtype]))(var_sub, var_mmodule, var_anchor, var_sup) /* is_subtype on */; -var160 = !var159; -if (var160){ -if (varonce161) { -var162 = varonce161; -} else { -var163 = "Error: Cannot do an implicit constructor call to "; -var164 = 49; -var165 = string__NativeString__to_s_with_length(var163, var164); -var162 = var165; -varonce161 = var162; -} -if (varonce166) { -var167 = varonce166; -} else { -var168 = ". Expected argument #"; -var169 = 21; -var170 = string__NativeString__to_s_with_length(var168, var169); -var167 = var170; -varonce166 = var167; -} -if (varonce171) { -var172 = varonce171; -} else { -var173 = " of type "; -var174 = 9; -var175 = string__NativeString__to_s_with_length(var173, var174); -var172 = var175; -varonce171 = var172; -} -var176 = ((val* (*)(val*))(var_sp->class->vft[COLOR_model__MParameter__mtype]))(var_sp) /* mtype on */; -if (varonce177) { -var178 = varonce177; -} else { -var179 = ", got implicit argument "; -var180 = 24; -var181 = string__NativeString__to_s_with_length(var179, var180); -var178 = var181; -varonce177 = var178; -} -var182 = ((val* (*)(val*))(var_p->class->vft[COLOR_model__MParameter__name]))(var_p) /* name on */; -if (varonce183) { -var184 = varonce183; -} else { -var185 = " of type "; -var186 = 9; -var187 = string__NativeString__to_s_with_length(var185, var186); -var184 = var187; -varonce183 = var184; -} -var188 = ((val* (*)(val*))(var_p->class->vft[COLOR_model__MParameter__mtype]))(var_p) /* mtype on */; -if (varonce189) { -var190 = varonce189; -} else { -var191 = "."; -var192 = 1; -var193 = string__NativeString__to_s_with_length(var191, var192); -var190 = var193; -varonce189 = var190; -} -var194 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var194 = array_instance Array[Object] */ -var195 = 12; -var196 = NEW_array__NativeArray(var195, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var196)->values[0] = (val*) var162; -((struct instance_array__NativeArray*)var196)->values[1] = (val*) var_auto_super_init_def; -((struct instance_array__NativeArray*)var196)->values[2] = (val*) var_supermsig; -((struct instance_array__NativeArray*)var196)->values[3] = (val*) var167; -var197 = BOX_kernel__Int(var_i); /* autobox from Int to Object */ -((struct instance_array__NativeArray*)var196)->values[4] = (val*) var197; -((struct instance_array__NativeArray*)var196)->values[5] = (val*) var172; -((struct instance_array__NativeArray*)var196)->values[6] = (val*) var176; -((struct instance_array__NativeArray*)var196)->values[7] = (val*) var178; -((struct instance_array__NativeArray*)var196)->values[8] = (val*) var182; -((struct instance_array__NativeArray*)var196)->values[9] = (val*) var184; -((struct instance_array__NativeArray*)var196)->values[10] = (val*) var188; -((struct instance_array__NativeArray*)var196)->values[11] = (val*) var190; -((void (*)(val*, val*, long))(var194->class->vft[COLOR_array__Array__with_native]))(var194, var196, var195) /* with_native on */; -} -var198 = ((val* (*)(val*))(var194->class->vft[COLOR_string__Object__to_s]))(var194) /* to_s on */; -((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var198) /* error on */; -goto BREAK_label199; -} else { -} -var200 = 1; -{ /* Inline kernel#Int#+ (var_i,var200) */ -var203 = var_i + var200; -var201 = var203; -goto RET_LABEL202; -RET_LABEL202:(void)0; -} -var_i = var201; -CONTINUE_label199: (void)0; -((void (*)(val*))(var152->class->vft[COLOR_abstract_collection__Iterator__next]))(var152) /* next on */; -} -BREAK_label199: (void)0; -CONTINUE_label149: (void)0; -((void (*)(val*))(var106->class->vft[COLOR_abstract_collection__Iterator__next]))(var106) /* next on */; -} -BREAK_label149: (void)0; -((void (*)(val*, val*))(self->class->vft[COLOR_auto_super_init__AConcreteMethPropdef__auto_super_inits_61d]))(self, var_auto_super_inits) /* auto_super_inits= on */; -RET_LABEL:; +{ +var130 = array__ArrayIterator__is_ok(var_129); +} +if (var130){ +{ +var131 = array__ArrayIterator__item(var_129); +} +var_msupertype = var131; +{ +{ /* Inline model#MClassType#mclass (var_msupertype) on */ +var134 = var_msupertype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var134 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986); +show_backtrace(1); } -/* method auto_super_init#AConcreteMethPropdef#do_auto_super_init for (self: Object, ModelBuilder) */ -void VIRTUAL_auto_super_init__AConcreteMethPropdef__do_auto_super_init(val* self, val* p0) { -auto_super_init__AConcreteMethPropdef__do_auto_super_init(self, p0); -RET_LABEL:; +var132 = var134; +RET_LABEL133:(void)0; } -/* method auto_super_init#ANode#accept_auto_super_init for (self: ANode, AutoSuperInitVisitor) */ -void auto_super_init__ANode__accept_auto_super_init(val* self, val* p0) { -val* var_v /* var v: AutoSuperInitVisitor */; -var_v = p0; -RET_LABEL:; } -/* method auto_super_init#ANode#accept_auto_super_init for (self: Object, AutoSuperInitVisitor) */ -void VIRTUAL_auto_super_init__ANode__accept_auto_super_init(val* self, val* p0) { -auto_super_init__ANode__accept_auto_super_init(self, p0); -RET_LABEL:; +{ +{ /* Inline model#MClass#kind (var132) on */ +var137 = var132->attrs[COLOR_model__MClass___kind].val; /* _kind on */ +if (unlikely(var137 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371); +show_backtrace(1); } -/* method auto_super_init#ASendExpr#accept_auto_super_init for (self: ASendExpr, AutoSuperInitVisitor) */ -void auto_super_init__ASendExpr__accept_auto_super_init(val* self, val* p0) { -val* var_v /* var v: AutoSuperInitVisitor */; -val* var /* : nullable CallSite */; -val* var1 /* : MMethod */; -val* var_mproperty /* var mproperty: MMethod */; -val* var2 /* : null */; -short int var3 /* : Bool */; -short int var4 /* : Bool */; -short int var5 /* : Bool */; -var_v = p0; -var = ((val* (*)(val*))(self->class->vft[COLOR_typing__ASendExpr__callsite]))(self) /* callsite on */; -if (var == NULL) { -fprintf(stderr, "Runtime error: %s", "Receiver is null"); -fprintf(stderr, " (%s:%d)\n", "src/auto_super_init.nit", 149); +var135 = var137; +RET_LABEL136:(void)0; +} +} +{ +{ /* Inline model#MClassKind#need_init (var135) on */ +var140 = var135->attrs[COLOR_model__MClassKind___need_init].s; /* _need_init on */ +var138 = var140; +RET_LABEL139:(void)0; +} +} +var141 = !var138; +if (var141){ +goto BREAK_label142; +} else { +} +{ +{ /* Inline model#MClassDef#bound_mtype (var_mclassdef) on */ +var145 = var_mclassdef->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var145 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495); +show_backtrace(1); +} +var143 = var145; +RET_LABEL144:(void)0; +} +} +{ +var146 = model__MClassType__anchor_to(var_msupertype, var_mmodule, var143); +} +var_msupertype = var146; +{ +{ /* Inline model#MPropDef#mproperty (var_mpropdef) on */ +var149 = var_mpropdef->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on */ +if (unlikely(var149 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898); +show_backtrace(1); +} +var147 = var149; +RET_LABEL148:(void)0; +} +} +{ +{ /* Inline model#MProperty#name (var147) on */ +var152 = var147->attrs[COLOR_model__MProperty___name].val; /* _name on */ +if (unlikely(var152 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1620); show_backtrace(1); +} +var150 = var152; +RET_LABEL151:(void)0; +} +} +{ +var153 = modelbuilder__ModelBuilder__try_get_mproperty_by_name2(var_modelbuilder, self, var_mmodule, var_msupertype, var150); +} +var_candidate = var153; +var154 = NULL; +if (var_candidate == NULL) { +var155 = 1; /* is null */ } else { -var1 = ((val* (*)(val*))(var->class->vft[COLOR_typing__CallSite__mproperty]))(var) /* mproperty on */; +var155 = 0; /* arg is null but recv is not */ } -var_mproperty = var1; -var2 = NULL; -var3 = 0; /* arg is null but recv is not */ -if (var3){ -goto RET_LABEL; +if (0) { +{ /* Inline kernel#Object#== (var_candidate,var154) on */ +var_other158 = var154; +{ +{ /* Inline kernel#Object#is_same_instance (var_candidate,var_other158) on */ +var161 = var_candidate == var_other158; +var159 = var161; +goto RET_LABEL160; +RET_LABEL160:(void)0; +} +} +var156 = var159; +goto RET_LABEL157; +RET_LABEL157:(void)0; +} +var155 = var156; +} +if (var155){ +if (varonce162) { +var163 = varonce162; } else { +var164 = "init"; +var165 = 4; +var166 = string__NativeString__to_s_with_length(var164, var165); +var163 = var166; +varonce162 = var163; } -var4 = ((short int (*)(val*))(var_mproperty->class->vft[COLOR_model__MMethod__is_init]))(var_mproperty) /* is_init on */; -if (var4){ -var5 = 1; -((void (*)(val*, short int))(var_v->class->vft[COLOR_auto_super_init__AutoSuperInitVisitor__has_explicit_super_init_61d]))(var_v, var5) /* has_explicit_super_init= on */; +{ +var167 = modelbuilder__ModelBuilder__try_get_mproperty_by_name2(var_modelbuilder, self, var_mmodule, var_msupertype, var163); +} +var_candidate = var167; } else { } -RET_LABEL:; +var168 = NULL; +if (var_candidate == NULL) { +var169 = 1; /* is null */ +} else { +var169 = 0; /* arg is null but recv is not */ } -/* method auto_super_init#ASendExpr#accept_auto_super_init for (self: Object, AutoSuperInitVisitor) */ -void VIRTUAL_auto_super_init__ASendExpr__accept_auto_super_init(val* self, val* p0) { -auto_super_init__ASendExpr__accept_auto_super_init(self, p0); -RET_LABEL:; +if (0) { +{ /* Inline kernel#Object#== (var_candidate,var168) on */ +var_other158 = var168; +{ +{ /* Inline kernel#Object#is_same_instance (var_candidate,var_other158) on */ +var174 = var_candidate == var_other158; +var172 = var174; +goto RET_LABEL173; +RET_LABEL173:(void)0; +} +} +var170 = var172; +goto RET_LABEL171; +RET_LABEL171:(void)0; +} +var169 = var170; +} +if (var169){ +if (varonce175) { +var176 = varonce175; +} else { +var177 = "Error: Cannot do an implicit constructor call in "; +var178 = 49; +var179 = string__NativeString__to_s_with_length(var177, var178); +var176 = var179; +varonce175 = var176; +} +if (varonce180) { +var181 = varonce180; +} else { +var182 = "; there is no constructor named "; +var183 = 32; +var184 = string__NativeString__to_s_with_length(var182, var183); +var181 = var184; +varonce180 = var181; +} +{ +{ /* Inline model#MPropDef#mproperty (var_mpropdef) on */ +var187 = var_mpropdef->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on */ +if (unlikely(var187 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898); +show_backtrace(1); +} +var185 = var187; +RET_LABEL186:(void)0; +} +} +{ +{ /* Inline model#MProperty#name (var185) on */ +var190 = var185->attrs[COLOR_model__MProperty___name].val; /* _name on */ +if (unlikely(var190 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1620); +show_backtrace(1); +} +var188 = var190; +RET_LABEL189:(void)0; +} +} +if (varonce191) { +var192 = varonce191; +} else { +var193 = " in "; +var194 = 4; +var195 = string__NativeString__to_s_with_length(var193, var194); +var192 = var195; +varonce191 = var192; +} +if (varonce196) { +var197 = varonce196; +} else { +var198 = "."; +var199 = 1; +var200 = string__NativeString__to_s_with_length(var198, var199); +var197 = var200; +varonce196 = var197; +} +var201 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var201 = array_instance Array[Object] */ +var202 = 7; +var203 = NEW_array__NativeArray(var202, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var203)->values[0] = (val*) var176; +((struct instance_array__NativeArray*)var203)->values[1] = (val*) var_mpropdef; +((struct instance_array__NativeArray*)var203)->values[2] = (val*) var181; +((struct instance_array__NativeArray*)var203)->values[3] = (val*) var188; +((struct instance_array__NativeArray*)var203)->values[4] = (val*) var192; +((struct instance_array__NativeArray*)var203)->values[5] = (val*) var_msupertype; +((struct instance_array__NativeArray*)var203)->values[6] = (val*) var197; +{ +((void (*)(val*, val*, long))(var201->class->vft[COLOR_array__Array__with_native]))(var201, var203, var202) /* with_native on */; +} +} +{ +var204 = ((val* (*)(val*))(var201->class->vft[COLOR_string__Object__to_s]))(var201) /* to_s on */; +} +{ +modelbuilder__ModelBuilder__error(var_modelbuilder, self, var204); /* Direct call modelbuilder#ModelBuilder#error on */ +} +goto RET_LABEL; +} else { +} +/* isa MMethod */ +cltype206 = type_model__MMethod.color; +idtype207 = type_model__MMethod.id; +if(cltype206 >= var_candidate->type->table_size) { +var205 = 0; +} else { +var205 = var_candidate->type->type_table[cltype206] == idtype207; +} +if (unlikely(!var205)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 124); +show_backtrace(1); +} +{ +{ /* Inline model#MMethod#is_root_init (var_candidate) on */ +var210 = var_candidate->attrs[COLOR_model__MMethod___is_root_init].s; /* _is_root_init on */ +var208 = var210; +RET_LABEL209:(void)0; +} +} +if (var208){ +goto BREAK_label142; +} else { +} +{ +var211 = model__MProperty__lookup_definitions(var_candidate, var_mmodule, var_anchor); +} +var_candidatedefs = var211; +{ +var212 = abstract_collection__SequenceRead__first(var_candidatedefs); +} +var_candidatedef = var212; +{ +{ /* Inline model#MMethodDef#new_msignature (var_candidatedef) on */ +var216 = var_candidatedef->attrs[COLOR_model__MMethodDef___new_msignature].val; /* _new_msignature on */ +var214 = var216; +RET_LABEL215:(void)0; +} +} +if (var214!=NULL) { +var213 = var214; +} else { +{ +{ /* Inline model#MMethodDef#msignature (var_candidatedef) on */ +var219 = var_candidatedef->attrs[COLOR_model__MMethodDef___msignature].val; /* _msignature on */ +var217 = var219; +RET_LABEL218:(void)0; +} +} +var213 = var217; +} +var_msignature = var213; +var220 = 1; +if (var_msignature == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 134); +show_backtrace(1); +} else { +var221 = model__MSignature__resolve_for(var_msignature, var_recvtype, var_anchor, var_mmodule, var220); +} +var_msignature = var221; +var222 = NEW_typing__CallSite(&type_typing__CallSite); +var223 = 1; +var224 = 0; +{ +((void (*)(val*, val*))(var222->class->vft[COLOR_typing__CallSite__node_61d]))(var222, self) /* node= on */; +} +{ +((void (*)(val*, val*))(var222->class->vft[COLOR_typing__CallSite__recv_61d]))(var222, var_recvtype) /* recv= on */; +} +{ +((void (*)(val*, val*))(var222->class->vft[COLOR_typing__CallSite__mmodule_61d]))(var222, var_mmodule) /* mmodule= on */; +} +{ +((void (*)(val*, val*))(var222->class->vft[COLOR_typing__CallSite__anchor_61d]))(var222, var_anchor) /* anchor= on */; +} +{ +((void (*)(val*, short int))(var222->class->vft[COLOR_typing__CallSite__recv_is_self_61d]))(var222, var223) /* recv_is_self= on */; +} +{ +((void (*)(val*, val*))(var222->class->vft[COLOR_typing__CallSite__mproperty_61d]))(var222, var_candidate) /* mproperty= on */; +} +{ +((void (*)(val*, val*))(var222->class->vft[COLOR_typing__CallSite__mpropdef_61d]))(var222, var_candidatedef) /* mpropdef= on */; +} +{ +((void (*)(val*, val*))(var222->class->vft[COLOR_typing__CallSite__msignature_61d]))(var222, var_msignature) /* msignature= on */; +} +{ +((void (*)(val*, short int))(var222->class->vft[COLOR_typing__CallSite__erasure_cast_61d]))(var222, var224) /* erasure_cast= on */; +} +{ +((void (*)(val*))(var222->class->vft[COLOR_kernel__Object__init]))(var222) /* init on */; +} +var_callsite = var222; +{ +array__Array__add(var_auto_super_inits, var_callsite); /* Direct call array#Array#add on */ +} +BREAK_label142: (void)0; +{ +array__ArrayIterator__next(var_129); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label225; +} +} +BREAK_label225: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_129) on */ +RET_LABEL226:(void)0; +} +} +{ +{ /* Inline modelize_property#ModelBuilder#the_root_init_mmethod (var_modelbuilder) on */ +var229 = var_modelbuilder->attrs[COLOR_modelize_property__ModelBuilder___the_root_init_mmethod].val; /* _the_root_init_mmethod on */ +var227 = var229; +RET_LABEL228:(void)0; +} +} +var_the_root_init_mmethod = var227; +var231 = NULL; +if (var_the_root_init_mmethod == NULL) { +var232 = 0; /* is null */ +} else { +var232 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_the_root_init_mmethod,var231) on */ +var_other = var231; +{ +var236 = ((short int (*)(val*, val*))(var_the_root_init_mmethod->class->vft[COLOR_kernel__Object___61d_61d]))(var_the_root_init_mmethod, var_other) /* == on */; +var235 = var236; +} +var237 = !var235; +var233 = var237; +goto RET_LABEL234; +RET_LABEL234:(void)0; +} +var232 = var233; +} +var_238 = var232; +if (var232){ +{ +var239 = array__AbstractArrayRead__is_empty(var_auto_super_inits); +} +var230 = var239; +} else { +var230 = var_238; +} +if (var230){ +{ +var240 = model__MProperty__lookup_definitions(var_the_root_init_mmethod, var_mmodule, var_anchor); +} +var_candidatedefs241 = var240; +{ +var242 = abstract_collection__SequenceRead__first(var_candidatedefs241); +} +var_candidatedef243 = var242; +{ +{ /* Inline array#AbstractArrayRead#length (var_candidatedefs241) on */ +var246 = var_candidatedefs241->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var244 = var246; +RET_LABEL245:(void)0; +} +} +var247 = 1; +{ +{ /* Inline kernel#Int#> (var244,var247) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var250 = 1; /* easy isa OTHER*/ +if (unlikely(!var250)) { +var_class_name253 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name253); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); +show_backtrace(1); +} +var254 = var244 > var247; +var248 = var254; +goto RET_LABEL249; +RET_LABEL249:(void)0; +} +} +if (var248){ +var_255 = var_candidatedefs241; +{ +var256 = array__AbstractArrayRead__iterator(var_255); +} +var_257 = var256; +for(;;) { +{ +var258 = array__ArrayIterator__is_ok(var_257); +} +if (var258){ +{ +var259 = array__ArrayIterator__item(var_257); +} +var_spd = var259; +{ +{ /* Inline model#MMethodDef#initializers (var_spd) on */ +var262 = var_spd->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on */ +if (unlikely(var262 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967); +show_backtrace(1); +} +var260 = var262; +RET_LABEL261:(void)0; +} +} +{ +{ /* Inline array#AbstractArrayRead#length (var260) on */ +var265 = var260->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var263 = var265; +RET_LABEL264:(void)0; +} +} +{ +{ /* Inline model#MMethodDef#initializers (var_candidatedef243) on */ +var268 = var_candidatedef243->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on */ +if (unlikely(var268 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967); +show_backtrace(1); +} +var266 = var268; +RET_LABEL267:(void)0; +} +} +{ +{ /* Inline array#AbstractArrayRead#length (var266) on */ +var271 = var266->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var269 = var271; +RET_LABEL270:(void)0; +} +} +{ +{ /* Inline kernel#Int#> (var263,var269) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var274 = 1; /* easy isa OTHER*/ +if (unlikely(!var274)) { +var_class_name277 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name277); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); +show_backtrace(1); +} +var278 = var263 > var269; +var272 = var278; +goto RET_LABEL273; +RET_LABEL273:(void)0; +} +} +if (var272){ +var_candidatedef243 = var_spd; +} else { +} +{ +array__ArrayIterator__next(var_257); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label279; +} +} +BREAK_label279: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_257) on */ +RET_LABEL280:(void)0; +} +} +var_281 = var_candidatedefs241; +{ +var282 = array__AbstractArrayRead__iterator(var_281); +} +var_283 = var282; +for(;;) { +{ +var284 = array__ArrayIterator__is_ok(var_283); +} +if (var284){ +{ +var285 = array__ArrayIterator__item(var_283); +} +var_spd286 = var285; +var287 = 0; +var_i = var287; +{ +{ /* Inline model#MMethodDef#initializers (var_spd286) on */ +var290 = var_spd286->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on */ +if (unlikely(var290 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967); +show_backtrace(1); +} +var288 = var290; +RET_LABEL289:(void)0; +} +} +var_291 = var288; +{ +var292 = array__AbstractArrayRead__iterator(var_291); +} +var_293 = var292; +for(;;) { +{ +var294 = array__ArrayIterator__is_ok(var_293); +} +if (var294){ +{ +var295 = array__ArrayIterator__item(var_293); +} +var_p = var295; +{ +{ /* Inline model#MMethodDef#initializers (var_candidatedef243) on */ +var298 = var_candidatedef243->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on */ +if (unlikely(var298 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967); +show_backtrace(1); +} +var296 = var298; +RET_LABEL297:(void)0; +} +} +{ +var299 = array__Array___91d_93d(var296, var_i); +} +{ +{ /* Inline kernel#Object#!= (var_p,var299) on */ +var_other = var299; +{ +var304 = ((short int (*)(val*, val*))(var_p->class->vft[COLOR_kernel__Object___61d_61d]))(var_p, var_other) /* == on */; +var303 = var304; +} +var305 = !var303; +var301 = var305; +goto RET_LABEL302; +RET_LABEL302:(void)0; +} +var300 = var301; +} +if (var300){ +if (varonce306) { +var307 = varonce306; +} else { +var308 = "Error: Cannot do an implicit constructor call to comflicting for inherited inits "; +var309 = 81; +var310 = string__NativeString__to_s_with_length(var308, var309); +var307 = var310; +varonce306 = var307; +} +if (varonce311) { +var312 = varonce311; +} else { +var313 = "("; +var314 = 1; +var315 = string__NativeString__to_s_with_length(var313, var314); +var312 = var315; +varonce311 = var312; +} +{ +{ /* Inline model#MMethodDef#initializers (var_spd286) on */ +var318 = var_spd286->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on */ +if (unlikely(var318 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967); +show_backtrace(1); +} +var316 = var318; +RET_LABEL317:(void)0; +} +} +if (varonce319) { +var320 = varonce319; +} else { +var321 = ", "; +var322 = 2; +var323 = string__NativeString__to_s_with_length(var321, var322); +var320 = var323; +varonce319 = var320; +} +{ +var324 = string__Collection__join(var316, var320); +} +if (varonce325) { +var326 = varonce325; +} else { +var327 = ") and "; +var328 = 6; +var329 = string__NativeString__to_s_with_length(var327, var328); +var326 = var329; +varonce325 = var326; +} +if (varonce330) { +var331 = varonce330; +} else { +var332 = "("; +var333 = 1; +var334 = string__NativeString__to_s_with_length(var332, var333); +var331 = var334; +varonce330 = var331; +} +{ +{ /* Inline model#MMethodDef#initializers (var_candidatedef243) on */ +var337 = var_candidatedef243->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on */ +if (unlikely(var337 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967); +show_backtrace(1); +} +var335 = var337; +RET_LABEL336:(void)0; +} +} +if (varonce338) { +var339 = varonce338; +} else { +var340 = ", "; +var341 = 2; +var342 = string__NativeString__to_s_with_length(var340, var341); +var339 = var342; +varonce338 = var339; +} +{ +var343 = string__Collection__join(var335, var339); +} +if (varonce344) { +var345 = varonce344; +} else { +var346 = "). NOTE: Do not mix old-style and new-style init!"; +var347 = 49; +var348 = string__NativeString__to_s_with_length(var346, var347); +var345 = var348; +varonce344 = var345; +} +var349 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var349 = array_instance Array[Object] */ +var350 = 9; +var351 = NEW_array__NativeArray(var350, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var351)->values[0] = (val*) var307; +((struct instance_array__NativeArray*)var351)->values[1] = (val*) var_spd286; +((struct instance_array__NativeArray*)var351)->values[2] = (val*) var312; +((struct instance_array__NativeArray*)var351)->values[3] = (val*) var324; +((struct instance_array__NativeArray*)var351)->values[4] = (val*) var326; +((struct instance_array__NativeArray*)var351)->values[5] = (val*) var_candidatedef243; +((struct instance_array__NativeArray*)var351)->values[6] = (val*) var331; +((struct instance_array__NativeArray*)var351)->values[7] = (val*) var343; +((struct instance_array__NativeArray*)var351)->values[8] = (val*) var345; +{ +((void (*)(val*, val*, long))(var349->class->vft[COLOR_array__Array__with_native]))(var349, var351, var350) /* with_native on */; +} +} +{ +var352 = ((val* (*)(val*))(var349->class->vft[COLOR_string__Object__to_s]))(var349) /* to_s on */; +} +{ +modelbuilder__ModelBuilder__error(var_modelbuilder, self, var352); /* Direct call modelbuilder#ModelBuilder#error on */ +} +goto RET_LABEL; +} else { +} +var353 = 1; +{ +{ /* Inline kernel#Int#+ (var_i,var353) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var356 = 1; /* easy isa OTHER*/ +if (unlikely(!var356)) { +var_class_name359 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name359); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var360 = var_i + var353; +var354 = var360; +goto RET_LABEL355; +RET_LABEL355:(void)0; +} +} +var_i = var354; +{ +array__ArrayIterator__next(var_293); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label361; +} +} +BREAK_label361: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_293) on */ +RET_LABEL362:(void)0; +} +} +{ +array__ArrayIterator__next(var_283); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label363; +} +} +BREAK_label363: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_283) on */ +RET_LABEL364:(void)0; +} +} +} else { +} +{ +{ /* Inline model#MMethodDef#new_msignature (var_candidatedef243) on */ +var368 = var_candidatedef243->attrs[COLOR_model__MMethodDef___new_msignature].val; /* _new_msignature on */ +var366 = var368; +RET_LABEL367:(void)0; +} +} +if (var366!=NULL) { +var365 = var366; +} else { +{ +{ /* Inline model#MMethodDef#msignature (var_candidatedef243) on */ +var371 = var_candidatedef243->attrs[COLOR_model__MMethodDef___msignature].val; /* _msignature on */ +var369 = var371; +RET_LABEL370:(void)0; +} +} +var365 = var369; +} +var_msignature372 = var365; +var373 = 1; +if (var_msignature372 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 168); +show_backtrace(1); +} else { +var374 = model__MSignature__resolve_for(var_msignature372, var_recvtype, var_anchor, var_mmodule, var373); +} +var_msignature372 = var374; +var375 = NEW_typing__CallSite(&type_typing__CallSite); +var376 = 1; +var377 = 0; +{ +((void (*)(val*, val*))(var375->class->vft[COLOR_typing__CallSite__node_61d]))(var375, self) /* node= on */; +} +{ +((void (*)(val*, val*))(var375->class->vft[COLOR_typing__CallSite__recv_61d]))(var375, var_recvtype) /* recv= on */; +} +{ +((void (*)(val*, val*))(var375->class->vft[COLOR_typing__CallSite__mmodule_61d]))(var375, var_mmodule) /* mmodule= on */; +} +{ +((void (*)(val*, val*))(var375->class->vft[COLOR_typing__CallSite__anchor_61d]))(var375, var_anchor) /* anchor= on */; +} +{ +((void (*)(val*, short int))(var375->class->vft[COLOR_typing__CallSite__recv_is_self_61d]))(var375, var376) /* recv_is_self= on */; +} +{ +((void (*)(val*, val*))(var375->class->vft[COLOR_typing__CallSite__mproperty_61d]))(var375, var_the_root_init_mmethod) /* mproperty= on */; +} +{ +((void (*)(val*, val*))(var375->class->vft[COLOR_typing__CallSite__mpropdef_61d]))(var375, var_candidatedef243) /* mpropdef= on */; +} +{ +((void (*)(val*, val*))(var375->class->vft[COLOR_typing__CallSite__msignature_61d]))(var375, var_msignature372) /* msignature= on */; +} +{ +((void (*)(val*, short int))(var375->class->vft[COLOR_typing__CallSite__erasure_cast_61d]))(var375, var377) /* erasure_cast= on */; +} +{ +((void (*)(val*))(var375->class->vft[COLOR_kernel__Object__init]))(var375) /* init on */; +} +var_callsite378 = var375; +{ +array__Array__add(var_auto_super_inits, var_callsite378); /* Direct call array#Array#add on */ +} +} else { +} +{ +var379 = array__AbstractArrayRead__is_empty(var_auto_super_inits); +} +if (var379){ +if (varonce380) { +var381 = varonce380; +} else { +var382 = "Error: No constructors to call implicitely in "; +var383 = 46; +var384 = string__NativeString__to_s_with_length(var382, var383); +var381 = var384; +varonce380 = var381; +} +if (varonce385) { +var386 = varonce385; +} else { +var387 = ". Call one explicitely."; +var388 = 23; +var389 = string__NativeString__to_s_with_length(var387, var388); +var386 = var389; +varonce385 = var386; +} +var390 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var390 = array_instance Array[Object] */ +var391 = 3; +var392 = NEW_array__NativeArray(var391, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var392)->values[0] = (val*) var381; +((struct instance_array__NativeArray*)var392)->values[1] = (val*) var_mpropdef; +((struct instance_array__NativeArray*)var392)->values[2] = (val*) var386; +{ +((void (*)(val*, val*, long))(var390->class->vft[COLOR_array__Array__with_native]))(var390, var392, var391) /* with_native on */; +} +} +{ +var393 = ((val* (*)(val*))(var390->class->vft[COLOR_string__Object__to_s]))(var390) /* to_s on */; +} +{ +modelbuilder__ModelBuilder__error(var_modelbuilder, self, var393); /* Direct call modelbuilder#ModelBuilder#error on */ +} +goto RET_LABEL; +} else { +} +var_394 = var_auto_super_inits; +{ +var395 = array__AbstractArrayRead__iterator(var_394); +} +var_396 = var395; +for(;;) { +{ +var397 = array__ArrayIterator__is_ok(var_396); +} +if (var397){ +{ +var398 = array__ArrayIterator__item(var_396); +} +var_auto_super_init = var398; +{ +{ /* Inline typing#CallSite#mpropdef (var_auto_super_init) on */ +var401 = var_auto_super_init->attrs[COLOR_typing__CallSite___mpropdef].val; /* _mpropdef on */ +if (unlikely(var401 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef"); +PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 486); +show_backtrace(1); +} +var399 = var401; +RET_LABEL400:(void)0; +} +} +var_auto_super_init_def = var399; +{ +{ /* Inline model#MMethodDef#msignature (var_mpropdef) on */ +var404 = var_mpropdef->attrs[COLOR_model__MMethodDef___msignature].val; /* _msignature on */ +var402 = var404; +RET_LABEL403:(void)0; +} +} +if (unlikely(var402 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", "semantize/auto_super_init.nit", 181); +show_backtrace(1); +} +var_msig = var402; +{ +{ /* Inline typing#CallSite#msignature (var_auto_super_init) on */ +var407 = var_auto_super_init->attrs[COLOR_typing__CallSite___msignature].val; /* _msignature on */ +if (unlikely(var407 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature"); +PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 490); +show_backtrace(1); +} +var405 = var407; +RET_LABEL406:(void)0; +} +} +var_supermsig = var405; +{ +var408 = model__MSignature__arity(var_supermsig); +} +{ +var409 = model__MSignature__arity(var_msig); +} +{ +{ /* Inline kernel#Int#> (var408,var409) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var412 = 1; /* easy isa OTHER*/ +if (unlikely(!var412)) { +var_class_name415 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name415); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); +show_backtrace(1); +} +var416 = var408 > var409; +var410 = var416; +goto RET_LABEL411; +RET_LABEL411:(void)0; +} +} +if (var410){ +if (varonce417) { +var418 = varonce417; +} else { +var419 = "Error: Cannot do an implicit constructor call to "; +var420 = 49; +var421 = string__NativeString__to_s_with_length(var419, var420); +var418 = var421; +varonce417 = var418; +} +if (varonce422) { +var423 = varonce422; +} else { +var424 = ". Expected at least "; +var425 = 20; +var426 = string__NativeString__to_s_with_length(var424, var425); +var423 = var426; +varonce422 = var423; +} +{ +var427 = model__MSignature__arity(var_supermsig); +} +if (varonce428) { +var429 = varonce428; +} else { +var430 = " arguments, got "; +var431 = 16; +var432 = string__NativeString__to_s_with_length(var430, var431); +var429 = var432; +varonce428 = var429; +} +{ +var433 = model__MSignature__arity(var_msig); +} +if (varonce434) { +var435 = varonce434; +} else { +var436 = "."; +var437 = 1; +var438 = string__NativeString__to_s_with_length(var436, var437); +var435 = var438; +varonce434 = var435; +} +var439 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var439 = array_instance Array[Object] */ +var440 = 8; +var441 = NEW_array__NativeArray(var440, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var441)->values[0] = (val*) var418; +((struct instance_array__NativeArray*)var441)->values[1] = (val*) var_auto_super_init_def; +((struct instance_array__NativeArray*)var441)->values[2] = (val*) var_supermsig; +((struct instance_array__NativeArray*)var441)->values[3] = (val*) var423; +var442 = BOX_kernel__Int(var427); /* autobox from Int to Object */ +((struct instance_array__NativeArray*)var441)->values[4] = (val*) var442; +((struct instance_array__NativeArray*)var441)->values[5] = (val*) var429; +var443 = BOX_kernel__Int(var433); /* autobox from Int to Object */ +((struct instance_array__NativeArray*)var441)->values[6] = (val*) var443; +((struct instance_array__NativeArray*)var441)->values[7] = (val*) var435; +{ +((void (*)(val*, val*, long))(var439->class->vft[COLOR_array__Array__with_native]))(var439, var441, var440) /* with_native on */; +} +} +{ +var444 = ((val* (*)(val*))(var439->class->vft[COLOR_string__Object__to_s]))(var439) /* to_s on */; +} +{ +modelbuilder__ModelBuilder__error(var_modelbuilder, self, var444); /* Direct call modelbuilder#ModelBuilder#error on */ +} +goto BREAK_label445; +} else { +} +var446 = 0; +var_i447 = var446; +{ +{ /* Inline model#MSignature#mparameters (var_supermsig) on */ +var450 = var_supermsig->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on */ +if (unlikely(var450 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465); +show_backtrace(1); +} +var448 = var450; +RET_LABEL449:(void)0; +} +} +var_451 = var448; +{ +var452 = array__AbstractArrayRead__iterator(var_451); +} +var_453 = var452; +for(;;) { +{ +var454 = array__ArrayIterator__is_ok(var_453); +} +if (var454){ +{ +var455 = array__ArrayIterator__item(var_453); +} +var_sp = var455; +{ +{ /* Inline model#MSignature#mparameters (var_msig) on */ +var458 = var_msig->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on */ +if (unlikely(var458 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465); +show_backtrace(1); +} +var456 = var458; +RET_LABEL457:(void)0; +} +} +{ +var459 = array__Array___91d_93d(var456, var_i447); +} +var_p460 = var459; +{ +{ /* Inline model#MParameter#mtype (var_p460) on */ +var463 = var_p460->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on */ +if (unlikely(var463 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565); +show_backtrace(1); +} +var461 = var463; +RET_LABEL462:(void)0; +} +} +var_sub = var461; +{ +{ /* Inline model#MParameter#mtype (var_sp) on */ +var466 = var_sp->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on */ +if (unlikely(var466 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565); +show_backtrace(1); +} +var464 = var466; +RET_LABEL465:(void)0; +} +} +var_sup = var464; +{ +var467 = model__MType__is_subtype(var_sub, var_mmodule, var_anchor, var_sup); +} +var468 = !var467; +if (var468){ +if (varonce469) { +var470 = varonce469; +} else { +var471 = "Error: Cannot do an implicit constructor call to "; +var472 = 49; +var473 = string__NativeString__to_s_with_length(var471, var472); +var470 = var473; +varonce469 = var470; +} +if (varonce474) { +var475 = varonce474; +} else { +var476 = ". Expected argument #"; +var477 = 21; +var478 = string__NativeString__to_s_with_length(var476, var477); +var475 = var478; +varonce474 = var475; +} +if (varonce479) { +var480 = varonce479; +} else { +var481 = " of type "; +var482 = 9; +var483 = string__NativeString__to_s_with_length(var481, var482); +var480 = var483; +varonce479 = var480; +} +{ +{ /* Inline model#MParameter#mtype (var_sp) on */ +var486 = var_sp->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on */ +if (unlikely(var486 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565); +show_backtrace(1); +} +var484 = var486; +RET_LABEL485:(void)0; +} +} +if (varonce487) { +var488 = varonce487; +} else { +var489 = ", got implicit argument "; +var490 = 24; +var491 = string__NativeString__to_s_with_length(var489, var490); +var488 = var491; +varonce487 = var488; +} +{ +{ /* Inline model#MParameter#name (var_p460) on */ +var494 = var_p460->attrs[COLOR_model__MParameter___name].val; /* _name on */ +if (unlikely(var494 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1562); +show_backtrace(1); +} +var492 = var494; +RET_LABEL493:(void)0; +} +} +if (varonce495) { +var496 = varonce495; +} else { +var497 = " of type "; +var498 = 9; +var499 = string__NativeString__to_s_with_length(var497, var498); +var496 = var499; +varonce495 = var496; +} +{ +{ /* Inline model#MParameter#mtype (var_p460) on */ +var502 = var_p460->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on */ +if (unlikely(var502 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565); +show_backtrace(1); +} +var500 = var502; +RET_LABEL501:(void)0; +} +} +if (varonce503) { +var504 = varonce503; +} else { +var505 = "."; +var506 = 1; +var507 = string__NativeString__to_s_with_length(var505, var506); +var504 = var507; +varonce503 = var504; +} +var508 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var508 = array_instance Array[Object] */ +var509 = 12; +var510 = NEW_array__NativeArray(var509, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var510)->values[0] = (val*) var470; +((struct instance_array__NativeArray*)var510)->values[1] = (val*) var_auto_super_init_def; +((struct instance_array__NativeArray*)var510)->values[2] = (val*) var_supermsig; +((struct instance_array__NativeArray*)var510)->values[3] = (val*) var475; +var511 = BOX_kernel__Int(var_i447); /* autobox from Int to Object */ +((struct instance_array__NativeArray*)var510)->values[4] = (val*) var511; +((struct instance_array__NativeArray*)var510)->values[5] = (val*) var480; +((struct instance_array__NativeArray*)var510)->values[6] = (val*) var484; +((struct instance_array__NativeArray*)var510)->values[7] = (val*) var488; +((struct instance_array__NativeArray*)var510)->values[8] = (val*) var492; +((struct instance_array__NativeArray*)var510)->values[9] = (val*) var496; +((struct instance_array__NativeArray*)var510)->values[10] = (val*) var500; +((struct instance_array__NativeArray*)var510)->values[11] = (val*) var504; +{ +((void (*)(val*, val*, long))(var508->class->vft[COLOR_array__Array__with_native]))(var508, var510, var509) /* with_native on */; +} +} +{ +var512 = ((val* (*)(val*))(var508->class->vft[COLOR_string__Object__to_s]))(var508) /* to_s on */; +} +{ +modelbuilder__ModelBuilder__error(var_modelbuilder, self, var512); /* Direct call modelbuilder#ModelBuilder#error on */ +} +goto BREAK_label513; +} else { +} +var514 = 1; +{ +{ /* Inline kernel#Int#+ (var_i447,var514) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var517 = 1; /* easy isa OTHER*/ +if (unlikely(!var517)) { +var_class_name520 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name520); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var521 = var_i447 + var514; +var515 = var521; +goto RET_LABEL516; +RET_LABEL516:(void)0; +} +} +var_i447 = var515; +{ +array__ArrayIterator__next(var_453); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label513; +} +} +BREAK_label513: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_453) on */ +RET_LABEL522:(void)0; +} +} +BREAK_label445: (void)0; +{ +array__ArrayIterator__next(var_396); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label523; +} +} +BREAK_label523: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_396) on */ +RET_LABEL524:(void)0; +} +} +{ +{ /* Inline auto_super_init#AMethPropdef#auto_super_inits= (self,var_auto_super_inits) on */ +self->attrs[COLOR_auto_super_init__AMethPropdef___auto_super_inits].val = var_auto_super_inits; /* _auto_super_inits on */ +RET_LABEL525:(void)0; +} +} +RET_LABEL:; +} +/* method auto_super_init#AMethPropdef#do_auto_super_init for (self: Object, ModelBuilder) */ +void VIRTUAL_auto_super_init__AMethPropdef__do_auto_super_init(val* self, val* p0) { +auto_super_init__AMethPropdef__do_auto_super_init(self, p0); /* Direct call auto_super_init#AMethPropdef#do_auto_super_init on */ +RET_LABEL:; +} +/* method auto_super_init#ANode#accept_auto_super_init for (self: ANode, AutoSuperInitVisitor) */ +void auto_super_init__ANode__accept_auto_super_init(val* self, val* p0) { +val* var_v /* var v: AutoSuperInitVisitor */; +var_v = p0; +RET_LABEL:; +} +/* method auto_super_init#ANode#accept_auto_super_init for (self: Object, AutoSuperInitVisitor) */ +void VIRTUAL_auto_super_init__ANode__accept_auto_super_init(val* self, val* p0) { +val* var_v /* var v: AutoSuperInitVisitor */; +{ /* Inline auto_super_init#ANode#accept_auto_super_init (self,p0) on */ +var_v = p0; +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method auto_super_init#ASendExpr#accept_auto_super_init for (self: ASendExpr, AutoSuperInitVisitor) */ +void auto_super_init__ASendExpr__accept_auto_super_init(val* self, val* p0) { +val* var_v /* var v: AutoSuperInitVisitor */; +val* var /* : nullable CallSite */; +val* var2 /* : nullable CallSite */; +val* var_callsite /* var callsite: nullable CallSite */; +val* var3 /* : null */; +short int var4 /* : Bool */; +short int var5 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var7 /* : Bool */; +short int var9 /* : Bool */; +short int var10 /* : Bool */; +val* var12 /* : MMethod */; +val* var14 /* : MMethod */; +short int var15 /* : Bool */; +short int var17 /* : Bool */; +var_v = p0; +{ +{ /* Inline typing#ASendExpr#callsite (self) on */ +var2 = self->attrs[COLOR_typing__ASendExpr___callsite].val; /* _callsite on */ +var = var2; +RET_LABEL1:(void)0; +} +} +var_callsite = var; +var3 = NULL; +if (var_callsite == NULL) { +var4 = 1; /* is null */ +} else { +var4 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel#Object#== (var_callsite,var3) on */ +var_other = var3; +{ +{ /* Inline kernel#Object#is_same_instance (var_callsite,var_other) on */ +var9 = var_callsite == var_other; +var7 = var9; +goto RET_LABEL8; +RET_LABEL8:(void)0; +} +} +var5 = var7; +goto RET_LABEL6; +RET_LABEL6:(void)0; +} +var4 = var5; +} +if (var4){ +var10 = 1; +{ +{ /* Inline auto_super_init#AutoSuperInitVisitor#is_broken= (var_v,var10) on */ +var_v->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___is_broken].s = var10; /* _is_broken on */ +RET_LABEL11:(void)0; +} +} +goto RET_LABEL; +} else { +} +{ +{ /* Inline typing#CallSite#mproperty (var_callsite) on */ +var14 = var_callsite->attrs[COLOR_typing__CallSite___mproperty].val; /* _mproperty on */ +if (unlikely(var14 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); +PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 483); +show_backtrace(1); +} +var12 = var14; +RET_LABEL13:(void)0; +} +} +{ +{ /* Inline model#MMethod#is_init (var12) on */ +var17 = var12->attrs[COLOR_model__MMethod___is_init].s; /* _is_init on */ +var15 = var17; +RET_LABEL16:(void)0; +} +} +if (var15){ +{ +{ /* Inline auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= (var_v,self) on */ +var_v->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val = self; /* _has_explicit_super_init on */ +RET_LABEL18:(void)0; +} +} +} else { +} +RET_LABEL:; +} +/* method auto_super_init#ASendExpr#accept_auto_super_init for (self: Object, AutoSuperInitVisitor) */ +void VIRTUAL_auto_super_init__ASendExpr__accept_auto_super_init(val* self, val* p0) { +auto_super_init__ASendExpr__accept_auto_super_init(self, p0); /* Direct call auto_super_init#ASendExpr#accept_auto_super_init on */ +RET_LABEL:; } /* method auto_super_init#ASuperExpr#accept_auto_super_init for (self: ASuperExpr, AutoSuperInitVisitor) */ void auto_super_init__ASuperExpr__accept_auto_super_init(val* self, val* p0) { val* var_v /* var v: AutoSuperInitVisitor */; -short int var /* : Bool */; var_v = p0; -var = 1; -((void (*)(val*, short int))(var_v->class->vft[COLOR_auto_super_init__AutoSuperInitVisitor__has_explicit_super_init_61d]))(var_v, var) /* has_explicit_super_init= on */; +{ +{ /* Inline auto_super_init#AutoSuperInitVisitor#has_explicit_super_init= (var_v,self) on */ +var_v->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___has_explicit_super_init].val = self; /* _has_explicit_super_init on */ +RET_LABEL1:(void)0; +} +} RET_LABEL:; } /* method auto_super_init#ASuperExpr#accept_auto_super_init for (self: Object, AutoSuperInitVisitor) */ void VIRTUAL_auto_super_init__ASuperExpr__accept_auto_super_init(val* self, val* p0) { -auto_super_init__ASuperExpr__accept_auto_super_init(self, p0); +auto_super_init__ASuperExpr__accept_auto_super_init(self, p0); /* Direct call auto_super_init#ASuperExpr#accept_auto_super_init on */ RET_LABEL:; }