X-Git-Url: http://nitlanguage.org diff --git a/c_src/nitc__typing.sep.2.c b/c_src/nitc__typing.sep.2.c index dffc8b8..b22c4b7 100644 --- a/c_src/nitc__typing.sep.2.c +++ b/c_src/nitc__typing.sep.2.c @@ -1,845 +1,971 @@ #include "nitc__typing.sep.0.h" -/* method typing#AVarAssignExpr#accept_typing for (self: AVarAssignExpr, TypeVisitor) */ -void nitc__typing___AVarAssignExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : nullable Variable */; -val* var2 /* : nullable Variable */; -val* var_variable /* var variable: nullable Variable */; +/* method typing$PostTypingVisitor$type_visitor for (self: PostTypingVisitor): TypeVisitor */ +val* nitc__typing___nitc__typing__PostTypingVisitor___type_visitor(val* self) { +val* var /* : TypeVisitor */; +val* var1 /* : TypeVisitor */; +var1 = self->attrs[COLOR_nitc__typing__PostTypingVisitor___type_visitor].val; /* _type_visitor on */ +if (unlikely(var1 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_visitor"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 801); +fatal_exit(1); +} +var = var1; +RET_LABEL:; +return var; +} +/* method typing$PostTypingVisitor$type_visitor= for (self: PostTypingVisitor, TypeVisitor) */ +void nitc__typing___nitc__typing__PostTypingVisitor___type_visitor_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__PostTypingVisitor___type_visitor].val = p0; /* _type_visitor on */ +RET_LABEL:; +} +/* method typing$PostTypingVisitor$visit for (self: PostTypingVisitor, ANode) */ +void nitc__typing___nitc__typing__PostTypingVisitor___nitc__parser_nodes__Visitor__visit(val* self, val* p0) { +val* var_n /* var n: ANode */; +val* var /* : TypeVisitor */; +val* var2 /* : TypeVisitor */; short int var3 /* : Bool */; short int var4 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var6 /* : Bool */; +short int var5 /* : Bool */; +int cltype; +int idtype; +short int var_ /* var : Bool */; +val* var6 /* : nullable MType */; short int var7 /* : Bool */; -val* var8 /* : AExpr */; -val* var10 /* : AExpr */; -val* var11 /* : nullable MType */; -val* var13 /* : nullable MType */; -val* var14 /* : nullable MType */; -val* var_mtype /* var mtype: nullable MType */; -var_v = p0; +short int var8 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var10 /* : Bool */; +short int var12 /* : Bool */; +short int var_13 /* var : Bool */; +short int var14 /* : Bool */; +short int var16 /* : Bool */; +short int var17 /* : Bool */; +var_n = p0; { -{ /* Inline scope#AVarFormExpr#variable (self) on */ -var2 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on */ +((void(*)(val* self, val* p0))(var_n->class->vft[COLOR_nitc__parser_nodes__ANode__visit_all]))(var_n, self); /* visit_all on */ +} +{ +{ /* Inline typing$PostTypingVisitor$type_visitor (self) on */ +var2 = self->attrs[COLOR_nitc__typing__PostTypingVisitor___type_visitor].val; /* _type_visitor on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_visitor"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 801); +fatal_exit(1); +} var = var2; RET_LABEL1:(void)0; } } -var_variable = var; -if (var_variable == NULL) { -var3 = 0; /* is null */ -} else { -var3 = 1; /* arg is null and recv is not */ -} -if (0) { -{ /* Inline kernel#Object#!= (var_variable,((val*)NULL)) on */ -var_other = ((val*)NULL); { -var6 = ((short int(*)(val* self, val* p0))(var_variable->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_variable, var_other); /* == on */ +((void(*)(val* self, val* p0))(var_n->class->vft[COLOR_nitc__typing__ANode__accept_post_typing]))(var_n, var); /* accept_post_typing on */ } -var7 = !var6; -var4 = var7; -goto RET_LABEL5; -RET_LABEL5:(void)0; +/* isa AExpr */ +cltype = type_nitc__AExpr.color; +idtype = type_nitc__AExpr.id; +if(cltype >= var_n->type->table_size) { +var5 = 0; +} else { +var5 = var_n->type->type_table[cltype] == idtype; } -var3 = var4; +var_ = var5; +if (var5){ +{ +var6 = ((val*(*)(val* self))(var_n->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var_n); /* mtype on */ } -if (unlikely(!var3)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 960); -fatal_exit(1); +if (var6 == NULL) { +var7 = 1; /* is null */ +} else { +var7 = 0; /* arg is null but recv is not */ } +if (0) { +{ /* Inline kernel$Object$== (var6,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline parser_nodes#AAssignFormExpr#n_value (self) on */ -var10 = self->attrs[COLOR_nitc__parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on */ -if (unlikely(var10 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1992); -fatal_exit(1); +{ /* Inline kernel$Object$is_same_instance (var6,var_other) on */ +var12 = var6 == var_other; +var10 = var12; +goto RET_LABEL11; +RET_LABEL11:(void)0; +} } var8 = var10; +goto RET_LABEL9; RET_LABEL9:(void)0; } +var7 = var8; +} +var4 = var7; +} else { +var4 = var_; } +var_13 = var4; +if (var4){ { -{ /* Inline typing#Variable#declared_type (var_variable) on */ -var13 = var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val; /* _declared_type on */ -var11 = var13; -RET_LABEL12:(void)0; +{ /* Inline typing$AExpr$is_typed (var_n) on */ +var16 = var_n->attrs[COLOR_nitc__typing__AExpr___is_typed].s; /* _is_typed on */ +var14 = var16; +RET_LABEL15:(void)0; } } -{ -var14 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var8, var11); +var17 = !var14; +var3 = var17; +} else { +var3 = var_13; } -var_mtype = var14; +if (var3){ { -nitc__typing___nitc__typing__TypeVisitor___set_variable(var_v, self, var_variable, var_mtype); /* Direct call typing#TypeVisitor#set_variable on */ +{ /* Inline modelbuilder_base$ANode$is_broken= (var_n,1) on */ +var_n->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s = 1; /* _is_broken on */ +RET_LABEL18:(void)0; } -{ -{ /* Inline typing#AExpr#is_typed= (self,1) on */ -self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ -RET_LABEL15:(void)0; } +} else { } RET_LABEL:; } -/* method typing#AReassignFormExpr#reassign_callsite for (self: AReassignFormExpr): nullable CallSite */ -val* nitc__typing___AReassignFormExpr___reassign_callsite(val* self) { -val* var /* : nullable CallSite */; -val* var1 /* : nullable CallSite */; -var1 = self->attrs[COLOR_nitc__typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on */ -var = var1; -RET_LABEL:; -return var; +/* method typing$PostTypingVisitor$init for (self: PostTypingVisitor) */ +void nitc__typing___nitc__typing__PostTypingVisitor___core__kernel__Object__init(val* self) { +{ +((void(*)(val* self))(self->class->vft[COLOR_nitc__typing___nitc__typing__PostTypingVisitor___core__kernel__Object__init]))(self); /* init on */ } -/* method typing#AReassignFormExpr#reassign_callsite= for (self: AReassignFormExpr, nullable CallSite) */ -void nitc__typing___AReassignFormExpr___reassign_callsite_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__AReassignFormExpr___reassign_callsite].val = p0; /* _reassign_callsite on */ RET_LABEL:; } -/* method typing#AReassignFormExpr#read_type for (self: AReassignFormExpr): nullable MType */ -val* nitc__typing___AReassignFormExpr___read_type(val* self) { -val* var /* : nullable MType */; -val* var1 /* : nullable MType */; -var1 = self->attrs[COLOR_nitc__typing__AReassignFormExpr___read_type].val; /* _read_type on */ -var = var1; +/* method typing$ANode$accept_post_typing for (self: ANode, TypeVisitor) */ +void nitc__typing___ANode___accept_post_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +var_v = p0; RET_LABEL:; -return var; } -/* method typing#AReassignFormExpr#read_type= for (self: AReassignFormExpr, nullable MType) */ -void nitc__typing___AReassignFormExpr___read_type_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__AReassignFormExpr___read_type].val = p0; /* _read_type on */ +/* method typing$ANode$bad_expr_message for (self: ANode, AExpr): nullable String */ +val* nitc__typing___ANode___bad_expr_message(val* self, val* p0) { +val* var /* : nullable String */; +val* var_child /* var child: AExpr */; +var_child = p0; +var = ((val*)NULL); +goto RET_LABEL; RET_LABEL:; +return var; } -/* method typing#AReassignFormExpr#resolve_reassignment for (self: AReassignFormExpr, TypeVisitor, MType, MType): nullable MType */ -val* nitc__typing___AReassignFormExpr___resolve_reassignment(val* self, val* p0, val* p1, val* p2) { -val* var /* : nullable MType */; -val* var_v /* var v: TypeVisitor */; -val* var_readtype /* var readtype: MType */; -val* var_writetype /* var writetype: MType */; -val* var1 /* : AAssignOp */; -val* var3 /* : AAssignOp */; -val* var4 /* : String */; -val* var_reassign_name /* var reassign_name: String */; -val* var6 /* : AAssignOp */; -val* var8 /* : AAssignOp */; -val* var9 /* : nullable CallSite */; -val* var_callsite /* var callsite: nullable CallSite */; -short int var10 /* : Bool */; -short int var11 /* : Bool */; +/* method typing$AAttrPropdef$do_typing for (self: AAttrPropdef, ModelBuilder) */ +void nitc__typing___AAttrPropdef___APropdef__do_typing(val* self, val* p0) { +val* var_modelbuilder /* var modelbuilder: ModelBuilder */; +short int var /* : Bool */; +short int var2 /* : Bool */; +short int var3 /* : Bool */; +val* var4 /* : nullable MMethodDef */; +val* var6 /* : nullable MMethodDef */; +val* var_mpropdef /* var mpropdef: nullable MMethodDef */; +short int var7 /* : Bool */; +short int var8 /* : Bool */; +short int var9 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var11 /* : Bool */; short int var13 /* : Bool */; -short int var15 /* : Bool */; -val* var17 /* : MSignature */; -val* var19 /* : MSignature */; -val* var_msignature /* var msignature: MSignature */; -val* var20 /* : nullable MType */; -val* var22 /* : nullable MType */; -val* var_rettype /* var rettype: nullable MType */; -short int var23 /* : Bool */; -long var24 /* : Int */; -short int var25 /* : Bool */; -short int var27 /* : Bool */; short int var_ /* var : Bool */; -short int var28 /* : Bool */; -short int var29 /* : Bool */; -val* var_other31 /* var other: nullable Object */; -short int var32 /* : Bool */; -short int var33 /* : Bool */; -val* var34 /* : AExpr */; -val* var36 /* : AExpr */; -val* var37 /* : Array[MParameter] */; -val* var39 /* : Array[MParameter] */; -val* var40 /* : nullable Object */; -val* var41 /* : MType */; -val* var43 /* : MType */; -val* var44 /* : nullable MType */; -val* var_value_type /* var value_type: nullable MType */; -short int var45 /* : Bool */; -short int var46 /* : Bool */; -short int var48 /* : Bool */; +val* var14 /* : nullable MSignature */; +val* var16 /* : nullable MSignature */; +short int var17 /* : Bool */; +short int var18 /* : Bool */; +short int var20 /* : Bool */; +short int var22 /* : Bool */; +val* var23 /* : TypeVisitor */; +val* var24 /* : MClassDef */; +val* var26 /* : MClassDef */; +val* var27 /* : MModule */; +val* var29 /* : MModule */; +val* var_v /* var v: TypeVisitor */; +val* var30 /* : Variable */; +val* var32 /* : Variable */; +val* var34 /* : nullable AExpr */; +val* var36 /* : nullable AExpr */; +val* var_nexpr /* var nexpr: nullable AExpr */; +short int var37 /* : Bool */; +short int var38 /* : Bool */; +val* var_other40 /* var other: nullable Object */; +short int var41 /* : Bool */; +short int var42 /* : Bool */; +val* var43 /* : nullable MType */; +val* var45 /* : nullable MType */; +val* var_mtype /* var mtype: nullable MType */; +val* var46 /* : nullable MType */; +val* var47 /* : nullable AExpr */; +val* var49 /* : nullable AExpr */; +val* var_nblock /* var nblock: nullable AExpr */; short int var50 /* : Bool */; -val* var51 /* : nullable MType */; -var_v = p0; -var_readtype = p1; -var_writetype = p2; -{ -{ /* Inline parser_nodes#AReassignFormExpr#n_assign_op (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2000); -fatal_exit(1); -} -var1 = var3; -RET_LABEL2:(void)0; +short int var51 /* : Bool */; +short int var53 /* : Bool */; +short int var54 /* : Bool */; +val* var55 /* : nullable FlowContext */; +val* var57 /* : nullable FlowContext */; +short int var58 /* : Bool */; +short int var59 /* : Bool */; +static val* varonce; +val* var60 /* : String */; +char* var61 /* : CString */; +val* var62 /* : String */; +val* var63 /* : nullable Int */; +val* var64 /* : nullable Int */; +val* var65 /* : nullable Bool */; +val* var66 /* : nullable Bool */; +var_modelbuilder = p0; +{ +{ /* Inline modelize_property$AAttrPropdef$has_value (self) on */ +var2 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___has_value].s; /* _has_value on */ +var = var2; +RET_LABEL1:(void)0; } } -{ -var4 = ((val*(*)(val* self))(var1->class->vft[COLOR_nitc__parser_nodes__AAssignOp__operator]))(var1); /* operator on */ +var3 = !var; +if (var3){ +goto RET_LABEL; +} else { } -var_reassign_name = var4; { -{ /* Inline typing#AReassignFormExpr#read_type= (self,var_readtype) on */ -self->attrs[COLOR_nitc__typing__AReassignFormExpr___read_type].val = var_readtype; /* _read_type on */ +{ /* Inline modelize_property$AAttrPropdef$mreadpropdef (self) on */ +var6 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mreadpropdef].val; /* _mreadpropdef on */ +var4 = var6; RET_LABEL5:(void)0; } } +var_mpropdef = var4; +if (var_mpropdef == NULL) { +var8 = 1; /* is null */ +} else { +var8 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel$Object$== (var_mpropdef,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline parser_nodes#AReassignFormExpr#n_assign_op (self) on */ -var8 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on */ -if (unlikely(var8 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2000); -fatal_exit(1); +{ /* Inline kernel$Object$is_same_instance (var_mpropdef,var_other) on */ +var13 = var_mpropdef == var_other; +var11 = var13; +goto RET_LABEL12; +RET_LABEL12:(void)0; } -var6 = var8; -RET_LABEL7:(void)0; } +var9 = var11; +goto RET_LABEL10; +RET_LABEL10:(void)0; +} +var8 = var9; } +var_ = var8; +if (var8){ +var7 = var_; +} else { { -var9 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, var6, var_readtype, var_reassign_name, 0); +{ /* Inline model$MMethodDef$msignature (var_mpropdef) on */ +var16 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on */ +var14 = var16; +RET_LABEL15:(void)0; } -var_callsite = var9; -if (var_callsite == NULL) { -var10 = 1; /* is null */ +} +if (var14 == NULL) { +var17 = 1; /* is null */ } else { -var10 = 0; /* arg is null but recv is not */ +var17 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_callsite,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var14,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_callsite,var_other) on */ -var15 = var_callsite == var_other; -var13 = var15; -goto RET_LABEL14; -RET_LABEL14:(void)0; +{ /* Inline kernel$Object$is_same_instance (var14,var_other) on */ +var22 = var14 == var_other; +var20 = var22; +goto RET_LABEL21; +RET_LABEL21:(void)0; } } -var11 = var13; -goto RET_LABEL12; -RET_LABEL12:(void)0; +var18 = var20; +goto RET_LABEL19; +RET_LABEL19:(void)0; } -var10 = var11; +var17 = var18; } -if (var10){ -var = ((val*)NULL); +var7 = var17; +} +if (var7){ goto RET_LABEL; } else { } +var23 = NEW_nitc__typing__TypeVisitor(&type_nitc__typing__TypeVisitor); { -{ /* Inline typing#AReassignFormExpr#reassign_callsite= (self,var_callsite) on */ -self->attrs[COLOR_nitc__typing__AReassignFormExpr___reassign_callsite].val = var_callsite; /* _reassign_callsite on */ -RET_LABEL16:(void)0; +{ /* Inline model$MPropDef$mclassdef (var_mpropdef) on */ +var26 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on */ +if (unlikely(var26 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -} -{ -{ /* Inline typing#CallSite#msignature (var_callsite) on */ -var19 = var_callsite->attrs[COLOR_nitc__typing__CallSite___msignature].val; /* _msignature on */ -if (unlikely(var19 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 660); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354); fatal_exit(1); } -var17 = var19; -RET_LABEL18:(void)0; +var24 = var26; +RET_LABEL25:(void)0; } } -var_msignature = var17; { -{ /* Inline model#MSignature#return_mtype (var_msignature) on */ -var22 = var_msignature->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on */ -var20 = var22; -RET_LABEL21:(void)0; +{ /* Inline model$MClassDef$mmodule (var24) on */ +var29 = var24->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var29 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588); +fatal_exit(1); +} +var27 = var29; +RET_LABEL28:(void)0; } -var_rettype = var20; -{ -var24 = nitc___nitc__MSignature___arity(var_msignature); } { -{ /* Inline kernel#Int#== (var24,1l) on */ -var27 = var24 == 1l; -var25 = var27; -goto RET_LABEL26; -RET_LABEL26:(void)0; +((void(*)(val* self, val* p0))(var23->class->vft[COLOR_nitc__typing__TypeVisitor__modelbuilder_61d]))(var23, var_modelbuilder); /* modelbuilder= on */ } +{ +((void(*)(val* self, val* p0))(var23->class->vft[COLOR_nitc__typing__TypeVisitor__mmodule_61d]))(var23, var27); /* mmodule= on */ } -var_ = var25; -if (var25){ -if (var_rettype == NULL) { -var28 = 0; /* is null */ -} else { -var28 = 1; /* arg is null and recv is not */ +{ +((void(*)(val* self, val* p0))(var23->class->vft[COLOR_nitc__typing__TypeVisitor__mpropdef_61d]))(var23, var_mpropdef); /* mpropdef= on */ } -if (0) { -{ /* Inline kernel#Object#!= (var_rettype,((val*)NULL)) on */ -var_other31 = ((val*)NULL); { -var32 = ((short int(*)(val* self, val* p0))(var_rettype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_rettype, var_other31); /* == on */ +((void(*)(val* self))(var23->class->vft[COLOR_core__kernel__Object__init]))(var23); /* init on */ } -var33 = !var32; -var29 = var33; -goto RET_LABEL30; -RET_LABEL30:(void)0; +var_v = var23; +{ +{ /* Inline typing$TypeVisitor$selfvariable (var_v) on */ +var32 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___selfvariable].val; /* _selfvariable on */ +if (unlikely(var32 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var28 = var29; +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 51); +fatal_exit(1); } -var23 = var28; -} else { -var23 = var_; +var30 = var32; +RET_LABEL31:(void)0; } -if (unlikely(!var23)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 993); -fatal_exit(1); } { -{ /* Inline parser_nodes#AReassignFormExpr#n_value (self) on */ -var36 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on */ -if (unlikely(var36 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2003); -fatal_exit(1); +{ /* Inline typing$APropdef$selfvariable= (self,var30) on */ +self->attrs[COLOR_nitc__typing__APropdef___selfvariable].val = var30; /* _selfvariable on */ +RET_LABEL33:(void)0; +} } +{ +{ /* Inline parser_nodes$AAttrPropdef$n_expr (self) on */ +var36 = self->attrs[COLOR_nitc__parser_nodes__AAttrPropdef___n_expr].val; /* _n_expr on */ var34 = var36; RET_LABEL35:(void)0; } } +var_nexpr = var34; +if (var_nexpr == NULL) { +var37 = 0; /* is null */ +} else { +var37 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel$Object$!= (var_nexpr,((val*)NULL)) on */ +var_other40 = ((val*)NULL); { -{ /* Inline model#MSignature#mparameters (var_msignature) on */ -var39 = var_msignature->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on */ -if (unlikely(var39 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1783); -fatal_exit(1); +var41 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other40); /* == on */ } -var37 = var39; -RET_LABEL38:(void)0; +var42 = !var41; +var38 = var42; +goto RET_LABEL39; +RET_LABEL39:(void)0; } +var37 = var38; } +if (var37){ { -var40 = core___core__SequenceRead___Collection__first(var37); +{ /* Inline modelize_property$AAttrPropdef$mtype (self) on */ +var45 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mtype].val; /* _mtype on */ +var43 = var45; +RET_LABEL44:(void)0; } -{ -{ /* Inline model#MParameter#mtype (var40) on */ -var43 = var40->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on */ -if (unlikely(var43 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1900); -fatal_exit(1); } -var41 = var43; -RET_LABEL42:(void)0; +var_mtype = var43; +{ +var46 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var_nexpr, var_mtype); } +} else { } { -var44 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var34, var41); +{ /* Inline parser_nodes$AAttrPropdef$n_block (self) on */ +var49 = self->attrs[COLOR_nitc__parser_nodes__AAttrPropdef___n_block].val; /* _n_block on */ +var47 = var49; +RET_LABEL48:(void)0; } -var_value_type = var44; -if (var_value_type == NULL) { -var45 = 1; /* is null */ +} +var_nblock = var47; +if (var_nblock == NULL) { +var50 = 0; /* is null */ } else { -var45 = 0; /* arg is null but recv is not */ +var50 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_value_type,((val*)NULL)) on */ -var_other = ((val*)NULL); +{ /* Inline kernel$Object$!= (var_nblock,((val*)NULL)) on */ +var_other40 = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_value_type,var_other) on */ -var50 = var_value_type == var_other; -var48 = var50; -goto RET_LABEL49; -RET_LABEL49:(void)0; +var53 = ((short int(*)(val* self, val* p0))(var_nblock->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nblock, var_other40); /* == on */ } +var54 = !var53; +var51 = var54; +goto RET_LABEL52; +RET_LABEL52:(void)0; } -var46 = var48; -goto RET_LABEL47; -RET_LABEL47:(void)0; -} -var45 = var46; +var50 = var51; } -if (var45){ -var = ((val*)NULL); -goto RET_LABEL; -} else { +if (var50){ +{ +nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var_nblock); /* Direct call typing$TypeVisitor$visit_stmt on */ } { -var51 = nitc__typing___nitc__typing__TypeVisitor___check_subtype(var_v, self, var_rettype, var_writetype, 0); +{ /* Inline flow$AExpr$after_flow_context (var_nblock) on */ +var57 = var_nblock->attrs[COLOR_nitc__flow__AExpr___after_flow_context].val; /* _after_flow_context on */ +var55 = var57; +RET_LABEL56:(void)0; } -var = var_rettype; -goto RET_LABEL; -RET_LABEL:; -return var; } -/* method typing#AVarReassignExpr#accept_typing for (self: AVarReassignExpr, TypeVisitor) */ -void nitc__typing___AVarReassignExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : nullable Variable */; -val* var2 /* : nullable Variable */; -val* var_variable /* var variable: nullable Variable */; -short int var3 /* : Bool */; -short int var4 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var6 /* : Bool */; -short int var7 /* : Bool */; -val* var8 /* : nullable MType */; -val* var_readtype /* var readtype: nullable MType */; -short int var9 /* : Bool */; -short int var10 /* : Bool */; -val* var_other12 /* var other: nullable Object */; -short int var13 /* : Bool */; -short int var15 /* : Bool */; -val* var17 /* : nullable MType */; -val* var19 /* : nullable MType */; -val* var_writetype /* var writetype: nullable MType */; -short int var20 /* : Bool */; -short int var21 /* : Bool */; -short int var23 /* : Bool */; -short int var25 /* : Bool */; -val* var26 /* : nullable MType */; -val* var_rettype /* var rettype: nullable MType */; -short int var27 /* : Bool */; -short int var28 /* : Bool */; -short int var30 /* : Bool */; -short int var31 /* : Bool */; -var_v = p0; -{ -{ /* Inline scope#AVarFormExpr#variable (self) on */ -var2 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on */ -var = var2; -RET_LABEL1:(void)0; +if (var55 == NULL) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 840); +fatal_exit(1); +} else { +var58 = nitc___nitc__FlowContext___is_unreachable(var55); } -var_variable = var; -if (var_variable == NULL) { -var3 = 0; /* is null */ +var59 = !var58; +if (var59){ +if (likely(varonce!=NULL)) { +var60 = varonce; } else { -var3 = 1; /* arg is null and recv is not */ +var61 = "Error: reached end of block; expected `return`."; +var63 = (val*)(47l<<2|1); +var64 = (val*)(47l<<2|1); +var65 = (val*)((long)(0)<<2|3); +var66 = (val*)((long)(0)<<2|3); +var62 = core__flat___CString___to_s_unsafe(var61, var63, var64, var65, var66); +var60 = var62; +varonce = var60; } -if (0) { -{ /* Inline kernel#Object#!= (var_variable,((val*)NULL)) on */ -var_other = ((val*)NULL); { -var6 = ((short int(*)(val* self, val* p0))(var_variable->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_variable, var_other); /* == on */ +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var60); /* Direct call typing$TypeVisitor$error on */ } -var7 = !var6; -var4 = var7; -goto RET_LABEL5; -RET_LABEL5:(void)0; +} else { } -var3 = var4; +} else { } -if (unlikely(!var3)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1007); -fatal_exit(1); +RET_LABEL:; } -{ -var8 = nitc__typing___nitc__typing__TypeVisitor___get_variable(var_v, self, var_variable); +/* method typing$AExpr$mtype for (self: AExpr): nullable MType */ +val* nitc__typing___AExpr___mtype(val* self) { +val* var /* : nullable MType */; +val* var1 /* : nullable MType */; +var1 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on */ +var = var1; +RET_LABEL:; +return var; } -var_readtype = var8; -if (var_readtype == NULL) { -var9 = 1; /* is null */ -} else { -var9 = 0; /* arg is null but recv is not */ +/* method typing$AExpr$mtype= for (self: AExpr, nullable MType) */ +void nitc__typing___AExpr___mtype_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = p0; /* _mtype on */ +RET_LABEL:; } -if (0) { -{ /* Inline kernel#Object#== (var_readtype,((val*)NULL)) on */ -var_other12 = ((val*)NULL); -{ -{ /* Inline kernel#Object#is_same_instance (var_readtype,var_other12) on */ -var15 = var_readtype == var_other12; -var13 = var15; -goto RET_LABEL14; -RET_LABEL14:(void)0; +/* method typing$AExpr$is_typed for (self: AExpr): Bool */ +short int nitc__typing___AExpr___is_typed(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = self->attrs[COLOR_nitc__typing__AExpr___is_typed].s; /* _is_typed on */ +var = var1; +RET_LABEL:; +return var; } +/* method typing$AExpr$is_typed= for (self: AExpr, Bool) */ +void nitc__typing___AExpr___is_typed_61d(val* self, short int p0) { +self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = p0; /* _is_typed on */ +RET_LABEL:; } -var10 = var13; -goto RET_LABEL11; -RET_LABEL11:(void)0; +/* method typing$AExpr$implicit_cast_to for (self: AExpr): nullable MType */ +val* nitc__typing___AExpr___implicit_cast_to(val* self) { +val* var /* : nullable MType */; +val* var1 /* : nullable MType */; +var1 = self->attrs[COLOR_nitc__typing__AExpr___implicit_cast_to].val; /* _implicit_cast_to on */ +var = var1; +RET_LABEL:; +return var; } -var9 = var10; +/* method typing$AExpr$implicit_cast_to= for (self: AExpr, nullable MType) */ +void nitc__typing___AExpr___implicit_cast_to_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AExpr___implicit_cast_to].val = p0; /* _implicit_cast_to on */ +RET_LABEL:; } -if (var9){ +/* method typing$AExpr$its_variable for (self: AExpr): nullable Variable */ +val* nitc__typing___AExpr___its_variable(val* self) { +val* var /* : nullable Variable */; +var = ((val*)NULL); goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method typing$AExpr$accept_typing for (self: AExpr, TypeVisitor) */ +void nitc__typing___AExpr___accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : NativeArray[String] */; +static val* varonce; +static val* varonce1; +val* var2 /* : String */; +char* var3 /* : CString */; +val* var4 /* : String */; +val* var5 /* : nullable Int */; +val* var6 /* : nullable Int */; +val* var7 /* : nullable Bool */; +val* var8 /* : nullable Bool */; +val* var9 /* : String */; +val* var10 /* : String */; +var_v = p0; +if (unlikely(varonce==NULL)) { +var = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String); +if (likely(varonce1!=NULL)) { +var2 = varonce1; +} else { +var3 = "no implemented accept_typing for "; +var5 = (val*)(33l<<2|1); +var6 = (val*)(33l<<2|1); +var7 = (val*)((long)(0)<<2|3); +var8 = (val*)((long)(0)<<2|3); +var4 = core__flat___CString___to_s_unsafe(var3, var5, var6, var7, var8); +var2 = var4; +varonce1 = var2; +} +((struct instance_core__NativeArray*)var)->values[0]=var2; } else { +var = varonce; +varonce = NULL; } { -{ /* Inline typing#AReassignFormExpr#read_type= (self,var_readtype) on */ -self->attrs[COLOR_nitc__typing__AReassignFormExpr___read_type].val = var_readtype; /* _read_type on */ -RET_LABEL16:(void)0; +var9 = core__abstract_text___Object___class_name(self); } +((struct instance_core__NativeArray*)var)->values[1]=var9; +{ +var10 = ((val*(*)(val* self))(var->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var); /* native_to_s on */ } +varonce = var; { -{ /* Inline typing#Variable#declared_type (var_variable) on */ -var19 = var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val; /* _declared_type on */ -var17 = var19; -RET_LABEL18:(void)0; +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var10); /* Direct call typing$TypeVisitor$error on */ } +RET_LABEL:; } -var_writetype = var17; -if (var_writetype == NULL) { -var20 = 1; /* is null */ -} else { -var20 = 0; /* arg is null but recv is not */ +/* method typing$AExpr$comprehension for (self: AExpr): nullable AArrayExpr */ +val* nitc__typing___AExpr___comprehension(val* self) { +val* var /* : nullable AArrayExpr */; +val* var1 /* : nullable AArrayExpr */; +var1 = self->attrs[COLOR_nitc__typing__AExpr___comprehension].val; /* _comprehension on */ +var = var1; +RET_LABEL:; +return var; } -if (0) { -{ /* Inline kernel#Object#== (var_writetype,((val*)NULL)) on */ -var_other12 = ((val*)NULL); -{ -{ /* Inline kernel#Object#is_same_instance (var_writetype,var_other12) on */ -var25 = var_writetype == var_other12; -var23 = var25; -goto RET_LABEL24; -RET_LABEL24:(void)0; +/* method typing$AExpr$comprehension= for (self: AExpr, nullable AArrayExpr) */ +void nitc__typing___AExpr___comprehension_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AExpr___comprehension].val = p0; /* _comprehension on */ +RET_LABEL:; } +/* method typing$AExpr$vararg_decl for (self: AExpr): Int */ +long nitc__typing___AExpr___vararg_decl(val* self) { +long var /* : Int */; +long var1 /* : Int */; +var1 = self->attrs[COLOR_nitc__typing__AExpr___vararg_decl].l; /* _vararg_decl on */ +var = var1; +RET_LABEL:; +return var; } -var21 = var23; -goto RET_LABEL22; -RET_LABEL22:(void)0; +/* method typing$AExpr$vararg_decl= for (self: AExpr, Int) */ +void nitc__typing___AExpr___vararg_decl_61d(val* self, long p0) { +self->attrs[COLOR_nitc__typing__AExpr___vararg_decl].l = p0; /* _vararg_decl on */ +RET_LABEL:; } -var20 = var21; +/* method typing$ABlockExpr$accept_typing for (self: ABlockExpr, TypeVisitor) */ +void nitc__typing___ABlockExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : ANodes[AExpr] */; +val* var2 /* : ANodes[AExpr] */; +val* var_ /* var : ANodes[AExpr] */; +val* var3 /* : Iterator[ANode] */; +val* var_4 /* var : Iterator[AExpr] */; +short int var5 /* : Bool */; +val* var6 /* : nullable Object */; +val* var_e /* var e: AExpr */; +var_v = p0; +{ +{ /* Inline parser_nodes$ABlockExpr$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -if (var20){ -goto RET_LABEL; -} else { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1811); +fatal_exit(1); +} +var = var2; +RET_LABEL1:(void)0; } +} +var_ = var; { -var26 = nitc__typing___AReassignFormExpr___resolve_reassignment(self, var_v, var_readtype, var_writetype); +var3 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_); } -var_rettype = var26; +var_4 = var3; +for(;;) { { -nitc__typing___nitc__typing__TypeVisitor___set_variable(var_v, self, var_variable, var_rettype); /* Direct call typing#TypeVisitor#set_variable on */ +var5 = ((short int(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_4); /* is_ok on */ } -if (var_rettype == NULL) { -var27 = 0; /* is null */ +if (var5){ } else { -var27 = 1; /* arg is null and recv is not */ +goto BREAK_label; } -if (0) { -{ /* Inline kernel#Object#!= (var_rettype,((val*)NULL)) on */ -var_other = ((val*)NULL); { -var30 = ((short int(*)(val* self, val* p0))(var_rettype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_rettype, var_other); /* == on */ +var6 = ((val*(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_4); /* item on */ } -var31 = !var30; -var28 = var31; -goto RET_LABEL29; -RET_LABEL29:(void)0; +var_e = var6; +{ +nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var_e); /* Direct call typing$TypeVisitor$visit_stmt on */ +} +{ +((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_4); /* next on */ } -var27 = var28; } +BREAK_label: (void)0; { -{ /* Inline typing#AExpr#is_typed= (self,var27) on */ -self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = var27; /* _is_typed on */ -RET_LABEL32:(void)0; +((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_4); /* finish on */ +} +{ +{ /* Inline typing$AExpr$is_typed= (self,1) on */ +self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ +RET_LABEL7:(void)0; } } RET_LABEL:; } -/* method typing#AContinueExpr#accept_typing for (self: AContinueExpr, TypeVisitor) */ -void nitc__typing___AContinueExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : nullable AExpr */; -val* var2 /* : nullable AExpr */; -val* var_nexpr /* var nexpr: nullable AExpr */; -short int var3 /* : Bool */; +/* method typing$ABlockExpr$mtype for (self: ABlockExpr): nullable MType */ +val* nitc__typing___ABlockExpr___AExpr__mtype(val* self) { +val* var /* : nullable MType */; +val* var1 /* : ANodes[AExpr] */; +val* var3 /* : ANodes[AExpr] */; short int var4 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var6 /* : Bool */; -short int var7 /* : Bool */; -val* var8 /* : nullable MType */; -var_v = p0; +val* var5 /* : ANodes[AExpr] */; +val* var7 /* : ANodes[AExpr] */; +val* var8 /* : nullable Object */; +val* var9 /* : nullable MType */; { -{ /* Inline parser_nodes#AEscapeExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__AEscapeExpr___n_expr].val; /* _n_expr on */ -var = var2; -RET_LABEL1:(void)0; +{ /* Inline parser_nodes$ABlockExpr$n_expr (self) on */ +var3 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var3 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1811); +fatal_exit(1); } -var_nexpr = var; -if (var_nexpr == NULL) { -var3 = 0; /* is null */ -} else { -var3 = 1; /* arg is null and recv is not */ +var1 = var3; +RET_LABEL2:(void)0; } -if (0) { -{ /* Inline kernel#Object#!= (var_nexpr,((val*)NULL)) on */ -var_other = ((val*)NULL); -{ -var6 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other); /* == on */ } -var7 = !var6; -var4 = var7; -goto RET_LABEL5; -RET_LABEL5:(void)0; +{ +var4 = nitc___nitc__ANodes___core__abstract_collection__Collection__is_empty(var1); } -var3 = var4; +if (var4){ +var = ((val*)NULL); +goto RET_LABEL; +} else { } -if (var3){ { -var8 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var_nexpr); +{ /* Inline parser_nodes$ABlockExpr$n_expr (self) on */ +var7 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var7 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1811); +fatal_exit(1); +} +var5 = var7; +RET_LABEL6:(void)0; } -} else { } { -{ /* Inline typing#AExpr#is_typed= (self,1) on */ -self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ -RET_LABEL9:(void)0; +var8 = core___core__SequenceRead___last(var5); } +{ +var9 = ((val*(*)(val* self))(var8->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var8); /* mtype on */ } +var = var9; +goto RET_LABEL; RET_LABEL:; +return var; } -/* method typing#ABreakExpr#accept_typing for (self: ABreakExpr, TypeVisitor) */ -void nitc__typing___ABreakExpr___AExpr__accept_typing(val* self, val* p0) { +/* method typing$AVardeclExpr$accept_typing for (self: AVardeclExpr, TypeVisitor) */ +void nitc__typing___AVardeclExpr___AExpr__accept_typing(val* self, val* p0) { val* var_v /* var v: TypeVisitor */; -val* var /* : nullable AExpr */; -val* var2 /* : nullable AExpr */; -val* var_nexpr /* var nexpr: nullable AExpr */; +val* var /* : nullable Variable */; +val* var2 /* : nullable Variable */; +val* var_variable /* var variable: nullable Variable */; short int var3 /* : Bool */; short int var4 /* : Bool */; val* var_other /* var other: nullable Object */; short int var6 /* : Bool */; -short int var7 /* : Bool */; -val* var8 /* : nullable MType */; +short int var8 /* : Bool */; +val* var9 /* : nullable AType */; +val* var11 /* : nullable AType */; +val* var_ntype /* var ntype: nullable AType */; +short int var12 /* : Bool */; +short int var13 /* : Bool */; +short int var15 /* : Bool */; +short int var17 /* : Bool */; +val* var_mtype /* var mtype: nullable MType */; +val* var18 /* : nullable MType */; +short int var19 /* : Bool */; +short int var20 /* : Bool */; +short int var22 /* : Bool */; +short int var24 /* : Bool */; +val* var25 /* : nullable AExpr */; +val* var27 /* : nullable AExpr */; +val* var_nexpr /* var nexpr: nullable AExpr */; +short int var28 /* : Bool */; +short int var29 /* : Bool */; +val* var_other31 /* var other: nullable Object */; +short int var32 /* : Bool */; +short int var33 /* : Bool */; +short int var34 /* : Bool */; +short int var35 /* : Bool */; +short int var37 /* : Bool */; +short int var38 /* : Bool */; +val* var39 /* : nullable MType */; +val* var_etype /* var etype: nullable MType */; +short int var40 /* : Bool */; +short int var41 /* : Bool */; +short int var43 /* : Bool */; +short int var45 /* : Bool */; +short int var46 /* : Bool */; +short int var47 /* : Bool */; +short int var49 /* : Bool */; +short int var50 /* : Bool */; +val* var51 /* : ModelBuilder */; +val* var53 /* : ModelBuilder */; +static val* varonce; +val* var54 /* : String */; +char* var55 /* : CString */; +val* var56 /* : String */; +val* var57 /* : nullable Int */; +val* var58 /* : nullable Int */; +val* var59 /* : nullable Bool */; +val* var60 /* : nullable Bool */; +val* var62 /* : NativeArray[String] */; +static val* varonce61; +static val* varonce63; +val* var64 /* : String */; +char* var65 /* : CString */; +val* var66 /* : String */; +val* var67 /* : nullable Int */; +val* var68 /* : nullable Int */; +val* var69 /* : nullable Bool */; +val* var70 /* : nullable Bool */; +static val* varonce71; +val* var72 /* : String */; +char* var73 /* : CString */; +val* var74 /* : String */; +val* var75 /* : nullable Int */; +val* var76 /* : nullable Int */; +val* var77 /* : nullable Bool */; +val* var78 /* : nullable Bool */; +val* var79 /* : String */; +val* var81 /* : String */; +val* var82 /* : String */; +val* var83 /* : nullable MType */; +short int var84 /* : Bool */; +short int var85 /* : Bool */; +short int var87 /* : Bool */; +short int var89 /* : Bool */; +val* var_decltype /* var decltype: nullable MType */; +short int var90 /* : Bool */; +short int var91 /* : Bool */; +short int var92 /* : Bool */; +short int var94 /* : Bool */; +short int var96 /* : Bool */; +short int var_ /* var : Bool */; +short int var97 /* : Bool */; +int cltype; +int idtype; +static val* varonce98; +val* var99 /* : String */; +char* var100 /* : CString */; +val* var101 /* : String */; +val* var102 /* : nullable Int */; +val* var103 /* : nullable Int */; +val* var104 /* : nullable Bool */; +val* var105 /* : nullable Bool */; +val* var106 /* : nullable MClass */; +val* var_objclass /* var objclass: nullable MClass */; +short int var107 /* : Bool */; +short int var108 /* : Bool */; +short int var110 /* : Bool */; +short int var112 /* : Bool */; +val* var113 /* : MClassType */; +val* var115 /* : MClassType */; +val* var116 /* : MType */; +short int var117 /* : Bool */; +short int var118 /* : Bool */; +short int var120 /* : Bool */; +short int var122 /* : Bool */; var_v = p0; { -{ /* Inline parser_nodes#AEscapeExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__AEscapeExpr___n_expr].val; /* _n_expr on */ +{ /* Inline scope$AVardeclExpr$variable (self) on */ +var2 = self->attrs[COLOR_nitc__scope__AVardeclExpr___variable].val; /* _variable on */ var = var2; RET_LABEL1:(void)0; } } -var_nexpr = var; -if (var_nexpr == NULL) { -var3 = 0; /* is null */ +var_variable = var; +if (var_variable == NULL) { +var3 = 1; /* is null */ } else { -var3 = 1; /* arg is null and recv is not */ +var3 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_nexpr,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_variable,((val*)NULL)) on */ var_other = ((val*)NULL); { -var6 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other); /* == on */ +{ /* Inline kernel$Object$is_same_instance (var_variable,var_other) on */ +var8 = var_variable == var_other; +var6 = var8; +goto RET_LABEL7; +RET_LABEL7:(void)0; } -var7 = !var6; -var4 = var7; +} +var4 = var6; goto RET_LABEL5; RET_LABEL5:(void)0; } var3 = var4; } if (var3){ -{ -var8 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var_nexpr); -} +goto RET_LABEL; } else { } { -{ /* Inline typing#AExpr#is_typed= (self,1) on */ -self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ -RET_LABEL9:(void)0; +{ /* Inline parser_nodes$AVardeclExpr$n_type (self) on */ +var11 = self->attrs[COLOR_nitc__parser_nodes__AVardeclExpr___n_type].val; /* _n_type on */ +var9 = var11; +RET_LABEL10:(void)0; } } -RET_LABEL:; +var_ntype = var9; +if (var_ntype == NULL) { +var12 = 1; /* is null */ +} else { +var12 = 0; /* arg is null but recv is not */ } -/* method typing#AReturnExpr#accept_typing for (self: AReturnExpr, TypeVisitor) */ -void nitc__typing___AReturnExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : nullable AExpr */; -val* var2 /* : nullable AExpr */; -val* var_nexpr /* var nexpr: nullable AExpr */; -val* var3 /* : nullable MPropDef */; -val* var5 /* : nullable MPropDef */; -val* var_mpropdef /* var mpropdef: nullable MPropDef */; -short int var6 /* : Bool */; -int cltype; -int idtype; -val* var7 /* : nullable MSignature */; -val* var9 /* : nullable MSignature */; -val* var10 /* : nullable MType */; -val* var12 /* : nullable MType */; -val* var_ret_type /* var ret_type: nullable Object */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -val* var16 /* : nullable MType */; -val* var18 /* : nullable MType */; -short int var19 /* : Bool */; -short int var20 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var22 /* : Bool */; -short int var23 /* : Bool */; -short int var24 /* : Bool */; -short int var25 /* : Bool */; -short int var27 /* : Bool */; -short int var28 /* : Bool */; -val* var29 /* : nullable MType */; -val* var30 /* : nullable MType */; -static val* varonce; -val* var31 /* : String */; -char* var32 /* : NativeString */; -val* var33 /* : String */; -short int var34 /* : Bool */; -short int var35 /* : Bool */; -short int var37 /* : Bool */; -short int var38 /* : Bool */; -static val* varonce39; -val* var40 /* : String */; -char* var41 /* : NativeString */; -val* var42 /* : String */; -var_v = p0; +if (0) { +{ /* Inline kernel$Object$== (var_ntype,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline parser_nodes#AReturnExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__AReturnExpr___n_expr].val; /* _n_expr on */ -var = var2; -RET_LABEL1:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_ntype,var_other) on */ +var17 = var_ntype == var_other; +var15 = var17; +goto RET_LABEL16; +RET_LABEL16:(void)0; } } -var_nexpr = var; -{ -{ /* Inline typing#TypeVisitor#mpropdef (var_v) on */ -var5 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mpropdef].val; /* _mpropdef on */ -var3 = var5; -RET_LABEL4:(void)0; +var13 = var15; +goto RET_LABEL14; +RET_LABEL14:(void)0; } +var12 = var13; } -var_mpropdef = var3; -/* isa MMethodDef */ -cltype = type_nitc__MMethodDef.color; -idtype = type_nitc__MMethodDef.id; -if(var_mpropdef == NULL) { -var6 = 0; -} else { -if(cltype >= var_mpropdef->type->table_size) { -var6 = 0; +if (var12){ +var_mtype = ((val*)NULL); } else { -var6 = var_mpropdef->type->type_table[cltype] == idtype; -} -} -if (var6){ -{ -{ /* Inline model#MMethodDef#msignature (var_mpropdef) on */ -var9 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on */ -var7 = var9; -RET_LABEL8:(void)0; -} -} -if (var7 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1055); -fatal_exit(1); -} else { -{ /* Inline model#MSignature#return_mtype (var7) on */ -if (unlikely(var7 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1795); -fatal_exit(1); -} -var12 = var7->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on */ -var10 = var12; -RET_LABEL11:(void)0; -} -} -var_ret_type = var10; -} else { -/* isa MAttributeDef */ -cltype14 = type_nitc__MAttributeDef.color; -idtype15 = type_nitc__MAttributeDef.id; -if(var_mpropdef == NULL) { -var13 = 0; -} else { -if(cltype14 >= var_mpropdef->type->table_size) { -var13 = 0; -} else { -var13 = var_mpropdef->type->type_table[cltype14] == idtype15; -} -} -if (var13){ { -{ /* Inline model#MAttributeDef#static_mtype (var_mpropdef) on */ -var18 = var_mpropdef->attrs[COLOR_nitc__model__MAttributeDef___static_mtype].val; /* _static_mtype on */ -var16 = var18; -RET_LABEL17:(void)0; -} -} -var_ret_type = var16; -} else { -PRINT_ERROR("Runtime error: %s", "Aborted"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1059); -fatal_exit(1); -} +var18 = nitc__typing___nitc__typing__TypeVisitor___resolve_mtype(var_v, var_ntype); } -if (var_nexpr == NULL) { -var19 = 0; /* is null */ +var_mtype = var18; +if (var_mtype == NULL) { +var19 = 1; /* is null */ } else { -var19 = 1; /* arg is null and recv is not */ +var19 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_nexpr,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on */ var_other = ((val*)NULL); { -var22 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other); /* == on */ +{ /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on */ +var24 = var_mtype == var_other; +var22 = var24; +goto RET_LABEL23; +RET_LABEL23:(void)0; } -var23 = !var22; -var20 = var23; +} +var20 = var22; goto RET_LABEL21; RET_LABEL21:(void)0; } var19 = var20; } if (var19){ -if (var_ret_type == NULL) { -var24 = 0; /* is null */ +goto RET_LABEL; } else { -var24 = 1; /* arg is null and recv is not */ -} -if (0) { -{ /* Inline kernel#Object#!= (var_ret_type,((val*)NULL)) on */ -var_other = ((val*)NULL); -{ -var27 = ((short int(*)(val* self, val* p0))(var_ret_type->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret_type, var_other); /* == on */ -} -var28 = !var27; -var25 = var28; -goto RET_LABEL26; -RET_LABEL26:(void)0; } -var24 = var25; } -if (var24){ { -var29 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var_nexpr, var_ret_type); +{ /* Inline parser_nodes$AVardeclExpr$n_expr (self) on */ +var27 = self->attrs[COLOR_nitc__parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on */ +var25 = var27; +RET_LABEL26:(void)0; } -} else { -{ -var30 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var_nexpr); } -if (likely(varonce!=NULL)) { -var31 = varonce; +var_nexpr = var25; +if (var_nexpr == NULL) { +var28 = 0; /* is null */ } else { -var32 = "Error: `return` with value in a procedure."; -var33 = core__flat___NativeString___to_s_full(var32, 42l, 42l); -var31 = var33; -varonce = var31; +var28 = 1; /* arg is null and recv is not */ } +if (0) { +{ /* Inline kernel$Object$!= (var_nexpr,((val*)NULL)) on */ +var_other31 = ((val*)NULL); { -nitc__typing___nitc__typing__TypeVisitor___error(var_v, var_nexpr, var31); /* Direct call typing#TypeVisitor#error on */ +var32 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other31); /* == on */ } -goto RET_LABEL; +var33 = !var32; +var29 = var33; +goto RET_LABEL30; +RET_LABEL30:(void)0; } -} else { -if (var_ret_type == NULL) { +var28 = var29; +} +if (var28){ +if (var_mtype == NULL) { var34 = 0; /* is null */ } else { var34 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_ret_type,((val*)NULL)) on */ -var_other = ((val*)NULL); +{ /* Inline kernel$Object$!= (var_mtype,((val*)NULL)) on */ +var_other31 = ((val*)NULL); { -var37 = ((short int(*)(val* self, val* p0))(var_ret_type->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret_type, var_other); /* == on */ +var37 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mtype, var_other31); /* == on */ } var38 = !var37; var35 = var38; @@ -849,2941 +975,2751 @@ RET_LABEL36:(void)0; var34 = var35; } if (var34){ -if (likely(varonce39!=NULL)) { -var40 = varonce39; -} else { -var41 = "Error: `return` without value in a function."; -var42 = core__flat___NativeString___to_s_full(var41, 44l, 44l); -var40 = var42; -varonce39 = var40; -} { -nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var40); /* Direct call typing#TypeVisitor#error on */ +var39 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var_nexpr, var_mtype); } -goto RET_LABEL; +var_etype = var39; +if (var_etype == NULL) { +var40 = 0; /* cannot be null */ } else { +{ /* Inline kernel$Object$== (var_etype,var_mtype) on */ +var_other = var_mtype; +{ +{ /* Inline kernel$Object$is_same_instance (var_etype,var_other) on */ +var45 = var_etype == var_other; +var43 = var45; +goto RET_LABEL44; +RET_LABEL44:(void)0; } } -{ -{ /* Inline typing#AExpr#is_typed= (self,1) on */ -self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ -RET_LABEL43:(void)0; +var41 = var43; +goto RET_LABEL42; +RET_LABEL42:(void)0; } +var40 = var41; } -RET_LABEL:; +if (var40){ +if (var_ntype == NULL) { +var46 = 0; /* is null */ +} else { +var46 = 1; /* arg is null and recv is not */ } -/* method typing#AAbortExpr#accept_typing for (self: AAbortExpr, TypeVisitor) */ -void nitc__typing___AAbortExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -var_v = p0; +if (0) { +{ /* Inline kernel$Object$!= (var_ntype,((val*)NULL)) on */ +var_other31 = ((val*)NULL); { -{ /* Inline typing#AExpr#is_typed= (self,1) on */ -self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ -RET_LABEL1:(void)0; +var49 = ((short int(*)(val* self, val* p0))(var_ntype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ntype, var_other31); /* == on */ } +var50 = !var49; +var47 = var50; +goto RET_LABEL48; +RET_LABEL48:(void)0; } -RET_LABEL:; +var46 = var47; +} +if (unlikely(!var46)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 938); +fatal_exit(1); } -/* method typing#AIfExpr#accept_typing for (self: AIfExpr, TypeVisitor) */ -void nitc__typing___AIfExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MType */; -val* var4 /* : nullable AExpr */; -val* var6 /* : nullable AExpr */; -val* var7 /* : nullable AExpr */; -val* var9 /* : nullable AExpr */; -short int var11 /* : Bool */; -val* var12 /* : nullable AExpr */; -val* var14 /* : nullable AExpr */; -short int var15 /* : Bool */; -short int var16 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var18 /* : Bool */; -short int var19 /* : Bool */; -short int var_ /* var : Bool */; -val* var20 /* : nullable AExpr */; -val* var22 /* : nullable AExpr */; -short int var23 /* : Bool */; -short int var24 /* : Bool */; -val* var_other26 /* var other: nullable Object */; -short int var27 /* : Bool */; -short int var29 /* : Bool */; -val* var30 /* : nullable AExpr */; -val* var32 /* : nullable AExpr */; -val* var33 /* : nullable MType */; -var_v = p0; { -{ /* Inline parser_nodes#AIfExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1843); +{ /* Inline typing$TypeVisitor$modelbuilder (var_v) on */ +var53 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var53 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 35); fatal_exit(1); } -var = var2; -RET_LABEL1:(void)0; +var51 = var53; +RET_LABEL52:(void)0; } } -{ -var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var); +if (likely(varonce!=NULL)) { +var54 = varonce; +} else { +var55 = "useless-type"; +var57 = (val*)(12l<<2|1); +var58 = (val*)(12l<<2|1); +var59 = (val*)((long)(0)<<2|3); +var60 = (val*)((long)(0)<<2|3); +var56 = core__flat___CString___to_s_unsafe(var55, var57, var58, var59, var60); +var54 = var56; +varonce = var54; +} +if (unlikely(varonce61==NULL)) { +var62 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String); +if (likely(varonce63!=NULL)) { +var64 = varonce63; +} else { +var65 = "Warning: useless type definition for variable `"; +var67 = (val*)(47l<<2|1); +var68 = (val*)(47l<<2|1); +var69 = (val*)((long)(0)<<2|3); +var70 = (val*)((long)(0)<<2|3); +var66 = core__flat___CString___to_s_unsafe(var65, var67, var68, var69, var70); +var64 = var66; +varonce63 = var64; } -{ -{ /* Inline parser_nodes#AIfExpr#n_then (self) on */ -var6 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on */ -var4 = var6; -RET_LABEL5:(void)0; +((struct instance_core__NativeArray*)var62)->values[0]=var64; +if (likely(varonce71!=NULL)) { +var72 = varonce71; +} else { +var73 = "`"; +var75 = (val*)(1l<<2|1); +var76 = (val*)(1l<<2|1); +var77 = (val*)((long)(0)<<2|3); +var78 = (val*)((long)(0)<<2|3); +var74 = core__flat___CString___to_s_unsafe(var73, var75, var76, var77, var78); +var72 = var74; +varonce71 = var72; } +((struct instance_core__NativeArray*)var62)->values[2]=var72; +} else { +var62 = varonce61; +varonce61 = NULL; } { -nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var4); /* Direct call typing#TypeVisitor#visit_stmt on */ +{ /* Inline scope$Variable$name (var_variable) on */ +var81 = var_variable->attrs[COLOR_nitc__scope__Variable___name].val; /* _name on */ +if (unlikely(var81 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -{ -{ /* Inline parser_nodes#AIfExpr#n_else (self) on */ -var9 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on */ -var7 = var9; -RET_LABEL8:(void)0; +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope, 36); +fatal_exit(1); } +var79 = var81; +RET_LABEL80:(void)0; } +} +((struct instance_core__NativeArray*)var62)->values[1]=var79; { -nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var7); /* Direct call typing#TypeVisitor#visit_stmt on */ +var82 = ((val*(*)(val* self))(var62->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var62); /* native_to_s on */ } +varonce61 = var62; { -{ /* Inline typing#AExpr#is_typed= (self,1) on */ -self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ -RET_LABEL10:(void)0; +nitc___nitc__ModelBuilder___advice(var51, var_ntype, var54, var82); /* Direct call modelbuilder_base$ModelBuilder$advice on */ } +} else { } +} else { { -{ /* Inline parser_nodes#AIfExpr#n_then (self) on */ -var14 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on */ -var12 = var14; -RET_LABEL13:(void)0; -} +var83 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var_nexpr); } -if (var12 == NULL) { -var15 = 0; /* is null */ +var_mtype = var83; +if (var_mtype == NULL) { +var84 = 1; /* is null */ } else { -var15 = 1; /* arg is null and recv is not */ +var84 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var12,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on */ var_other = ((val*)NULL); { -var18 = ((short int(*)(val* self, val* p0))(var12->class->vft[COLOR_core__kernel__Object___61d_61d]))(var12, var_other); /* == on */ +{ /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on */ +var89 = var_mtype == var_other; +var87 = var89; +goto RET_LABEL88; +RET_LABEL88:(void)0; } -var19 = !var18; -var16 = var19; -goto RET_LABEL17; -RET_LABEL17:(void)0; } -var15 = var16; +var85 = var87; +goto RET_LABEL86; +RET_LABEL86:(void)0; } -var_ = var15; -if (var15){ -{ -{ /* Inline parser_nodes#AIfExpr#n_else (self) on */ -var22 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on */ -var20 = var22; -RET_LABEL21:(void)0; +var84 = var85; +} +if (var84){ +goto RET_LABEL; +} else { } } -if (var20 == NULL) { -var23 = 1; /* is null */ } else { -var23 = 0; /* arg is null but recv is not */ +} +var_decltype = var_mtype; +if (var_mtype == NULL) { +var91 = 1; /* is null */ +} else { +var91 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var20,((val*)NULL)) on */ -var_other26 = ((val*)NULL); +{ /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var20,var_other26) on */ -var29 = var20 == var_other26; -var27 = var29; -goto RET_LABEL28; -RET_LABEL28:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on */ +var96 = var_mtype == var_other; +var94 = var96; +goto RET_LABEL95; +RET_LABEL95:(void)0; } } -var24 = var27; -goto RET_LABEL25; -RET_LABEL25:(void)0; +var92 = var94; +goto RET_LABEL93; +RET_LABEL93:(void)0; } -var23 = var24; +var91 = var92; } -var11 = var23; +var_ = var91; +if (var91){ +var90 = var_; } else { -var11 = var_; +/* isa MNullType */ +cltype = type_nitc__MNullType.color; +idtype = type_nitc__MNullType.id; +if(cltype >= var_mtype->type->table_size) { +var97 = 0; +} else { +var97 = var_mtype->type->type_table[cltype] == idtype; } -if (var11){ -{ -{ /* Inline parser_nodes#AIfExpr#n_then (self) on */ -var32 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on */ -var30 = var32; -RET_LABEL31:(void)0; +var90 = var97; } -} -if (var30 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1095); -fatal_exit(1); +if (var90){ +if (likely(varonce98!=NULL)) { +var99 = varonce98; } else { -var33 = ((val*(*)(val* self))(var30->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var30); /* mtype on */ +var100 = "Object"; +var102 = (val*)(6l<<2|1); +var103 = (val*)(6l<<2|1); +var104 = (val*)((long)(0)<<2|3); +var105 = (val*)((long)(0)<<2|3); +var101 = core__flat___CString___to_s_unsafe(var100, var102, var103, var104, var105); +var99 = var101; +varonce98 = var99; } { -{ /* Inline typing#AExpr#mtype= (self,var33) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var33; /* _mtype on */ -RET_LABEL34:(void)0; -} +var106 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var99); } +var_objclass = var106; +if (var_objclass == NULL) { +var107 = 1; /* is null */ } else { +var107 = 0; /* arg is null but recv is not */ } -RET_LABEL:; -} -/* method typing#AIfexprExpr#accept_typing for (self: AIfexprExpr, TypeVisitor) */ -void nitc__typing___AIfexprExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MType */; -val* var4 /* : AExpr */; -val* var6 /* : AExpr */; -val* var7 /* : nullable MType */; -val* var_t1 /* var t1: nullable MType */; -val* var8 /* : AExpr */; -val* var10 /* : AExpr */; -val* var11 /* : nullable MType */; -val* var_t2 /* var t2: nullable MType */; -short int var12 /* : Bool */; -short int var13 /* : Bool */; -short int var14 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var16 /* : Bool */; -short int var18 /* : Bool */; -short int var_ /* var : Bool */; -short int var19 /* : Bool */; -short int var20 /* : Bool */; -short int var22 /* : Bool */; -short int var24 /* : Bool */; -val* var25 /* : Array[MType] */; -val* var_26 /* var : Array[MType] */; -val* var27 /* : nullable MType */; -val* var_t /* var t: nullable MType */; -short int var28 /* : Bool */; -short int var29 /* : Bool */; -short int var31 /* : Bool */; -short int var33 /* : Bool */; -val* var34 /* : NativeArray[String] */; -static val* varonce; -static val* varonce35; -val* var36 /* : String */; -char* var37 /* : NativeString */; -val* var38 /* : String */; -static val* varonce39; -val* var40 /* : String */; -char* var41 /* : NativeString */; -val* var42 /* : String */; -static val* varonce43; -val* var44 /* : String */; -char* var45 /* : NativeString */; -val* var46 /* : String */; -val* var47 /* : String */; -val* var48 /* : String */; -val* var49 /* : String */; -var_v = p0; +if (0) { +{ /* Inline kernel$Object$== (var_objclass,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline parser_nodes#AIfexprExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1866); -fatal_exit(1); -} -var = var2; -RET_LABEL1:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_objclass,var_other) on */ +var112 = var_objclass == var_other; +var110 = var112; +goto RET_LABEL111; +RET_LABEL111:(void)0; } } -{ -var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var); -} -{ -{ /* Inline parser_nodes#AIfexprExpr#n_then (self) on */ -var6 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_then].val; /* _n_then on */ -if (unlikely(var6 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1872); -fatal_exit(1); +var108 = var110; +goto RET_LABEL109; +RET_LABEL109:(void)0; } -var4 = var6; -RET_LABEL5:(void)0; +var107 = var108; } +if (var107){ +goto RET_LABEL; +} else { } { -var7 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var4); +{ /* Inline model$MClass$mclass_type (var_objclass) on */ +var115 = var_objclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var115 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var_t1 = var7; -{ -{ /* Inline parser_nodes#AIfexprExpr#n_else (self) on */ -var10 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_else].val; /* _n_else on */ -if (unlikely(var10 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1878); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520); fatal_exit(1); } -var8 = var10; -RET_LABEL9:(void)0; +var113 = var115; +RET_LABEL114:(void)0; } } { -var11 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var8); +var116 = nitc___nitc__MType___as_nullable(var113); } -var_t2 = var11; -if (var_t1 == NULL) { -var13 = 1; /* is null */ +var_decltype = var116; +if (var_mtype == NULL) { +var117 = 1; /* is null */ } else { -var13 = 0; /* arg is null but recv is not */ +var117 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_t1,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_t1,var_other) on */ -var18 = var_t1 == var_other; -var16 = var18; -goto RET_LABEL17; -RET_LABEL17:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on */ +var122 = var_mtype == var_other; +var120 = var122; +goto RET_LABEL121; +RET_LABEL121:(void)0; } } -var14 = var16; -goto RET_LABEL15; -RET_LABEL15:(void)0; +var118 = var120; +goto RET_LABEL119; +RET_LABEL119:(void)0; } -var13 = var14; +var117 = var118; } -var_ = var13; -if (var13){ -var12 = var_; +if (var117){ +var_mtype = var_decltype; } else { -if (var_t2 == NULL) { -var19 = 1; /* is null */ +} } else { -var19 = 0; /* arg is null but recv is not */ } -if (0) { -{ /* Inline kernel#Object#== (var_t2,((val*)NULL)) on */ -var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_t2,var_other) on */ -var24 = var_t2 == var_other; -var22 = var24; -goto RET_LABEL23; -RET_LABEL23:(void)0; -} +{ /* Inline typing$Variable$declared_type= (var_variable,var_decltype) on */ +var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val = var_decltype; /* _declared_type on */ +RET_LABEL123:(void)0; } -var20 = var22; -goto RET_LABEL21; -RET_LABEL21:(void)0; } -var19 = var20; +{ +nitc__typing___nitc__typing__TypeVisitor___set_variable(var_v, self, var_variable, var_mtype); /* Direct call typing$TypeVisitor$set_variable on */ } -var12 = var19; +{ +{ /* Inline typing$AExpr$mtype= (self,var_mtype) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_mtype; /* _mtype on */ +RET_LABEL124:(void)0; } -if (var12){ -goto RET_LABEL; -} else { } -var25 = NEW_core__Array(&type_core__Array__nitc__MType); { -core___core__Array___with_capacity(var25, 2l); /* Direct call array#Array#with_capacity on */ +{ /* Inline typing$AExpr$is_typed= (self,1) on */ +self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ +RET_LABEL125:(void)0; } -var_26 = var25; -{ -core___core__AbstractArray___core__abstract_collection__Sequence__push(var_26, var_t1); /* Direct call array#AbstractArray#push on */ } +RET_LABEL:; +} +/* method typing$AVarExpr$its_variable for (self: AVarExpr): nullable Variable */ +val* nitc__typing___AVarExpr___AExpr__its_variable(val* self) { +val* var /* : nullable Variable */; +val* var1 /* : nullable Variable */; +val* var3 /* : nullable Variable */; { -core___core__AbstractArray___core__abstract_collection__Sequence__push(var_26, var_t2); /* Direct call array#AbstractArray#push on */ +{ /* Inline scope$AVarFormExpr$variable (self) on */ +var3 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on */ +var1 = var3; +RET_LABEL2:(void)0; +} +} +var = var1; +goto RET_LABEL; +RET_LABEL:; +return var; } +/* method typing$AVarExpr$accept_typing for (self: AVarExpr, TypeVisitor) */ +void nitc__typing___AVarExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : nullable Variable */; +val* var2 /* : nullable Variable */; +val* var_variable /* var variable: nullable Variable */; +short int var3 /* : Bool */; +short int var4 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var6 /* : Bool */; +short int var8 /* : Bool */; +val* var9 /* : nullable MType */; +val* var_mtype /* var mtype: nullable MType */; +short int var10 /* : Bool */; +short int var11 /* : Bool */; +val* var_other13 /* var other: nullable Object */; +short int var14 /* : Bool */; +short int var15 /* : Bool */; +var_v = p0; { -var27 = nitc__typing___nitc__typing__TypeVisitor___merge_types(var_v, self, var_26); +{ /* Inline scope$AVarFormExpr$variable (self) on */ +var2 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on */ +var = var2; +RET_LABEL1:(void)0; } -var_t = var27; -if (var_t == NULL) { -var28 = 1; /* is null */ +} +var_variable = var; +if (var_variable == NULL) { +var3 = 1; /* is null */ } else { -var28 = 0; /* arg is null but recv is not */ +var3 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_t,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_variable,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_t,var_other) on */ -var33 = var_t == var_other; -var31 = var33; -goto RET_LABEL32; -RET_LABEL32:(void)0; -} +{ /* Inline kernel$Object$is_same_instance (var_variable,var_other) on */ +var8 = var_variable == var_other; +var6 = var8; +goto RET_LABEL7; +RET_LABEL7:(void)0; } -var29 = var31; -goto RET_LABEL30; -RET_LABEL30:(void)0; } -var28 = var29; +var4 = var6; +goto RET_LABEL5; +RET_LABEL5:(void)0; } -if (var28){ -if (unlikely(varonce==NULL)) { -var34 = NEW_core__NativeArray(5l, &type_core__NativeArray__core__String); -if (likely(varonce35!=NULL)) { -var36 = varonce35; -} else { -var37 = "Type Error: ambiguous type `"; -var38 = core__flat___NativeString___to_s_full(var37, 28l, 28l); -var36 = var38; -varonce35 = var36; +var3 = var4; } -((struct instance_core__NativeArray*)var34)->values[0]=var36; -if (likely(varonce39!=NULL)) { -var40 = varonce39; +if (var3){ +goto RET_LABEL; } else { -var41 = "` vs `"; -var42 = core__flat___NativeString___to_s_full(var41, 6l, 6l); -var40 = var42; -varonce39 = var40; } -((struct instance_core__NativeArray*)var34)->values[2]=var40; -if (likely(varonce43!=NULL)) { -var44 = varonce43; -} else { -var45 = "`."; -var46 = core__flat___NativeString___to_s_full(var45, 2l, 2l); -var44 = var46; -varonce43 = var44; +{ +var9 = nitc__typing___nitc__typing__TypeVisitor___get_variable(var_v, self, var_variable); } -((struct instance_core__NativeArray*)var34)->values[4]=var44; +var_mtype = var9; +if (var_mtype == NULL) { +var10 = 0; /* is null */ } else { -var34 = varonce; -varonce = NULL; -} -{ -var47 = ((val*(*)(val* self))(var_t1->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_t1); /* to_s on */ +var10 = 1; /* arg is null and recv is not */ } -((struct instance_core__NativeArray*)var34)->values[1]=var47; +if (0) { +{ /* Inline kernel$Object$!= (var_mtype,((val*)NULL)) on */ +var_other13 = ((val*)NULL); { -var48 = ((val*(*)(val* self))(var_t2->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_t2); /* to_s on */ +var14 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mtype, var_other13); /* == on */ } -((struct instance_core__NativeArray*)var34)->values[3]=var48; -{ -var49 = ((val*(*)(val* self))(var34->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var34); /* native_to_s on */ +var15 = !var14; +var11 = var15; +goto RET_LABEL12; +RET_LABEL12:(void)0; } -varonce = var34; -{ -nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var49); /* Direct call typing#TypeVisitor#error on */ +var10 = var11; } +if (var10){ } else { } { -{ /* Inline typing#AExpr#mtype= (self,var_t) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_t; /* _mtype on */ -RET_LABEL50:(void)0; +{ /* Inline typing$AExpr$mtype= (self,var_mtype) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_mtype; /* _mtype on */ +RET_LABEL16:(void)0; } } RET_LABEL:; } -/* method typing#ADoExpr#accept_typing for (self: ADoExpr, TypeVisitor) */ -void nitc__typing___ADoExpr___AExpr__accept_typing(val* self, val* p0) { +/* method typing$AVarAssignExpr$accept_typing for (self: AVarAssignExpr, TypeVisitor) */ +void nitc__typing___AVarAssignExpr___AExpr__accept_typing(val* self, val* p0) { val* var_v /* var v: TypeVisitor */; -val* var /* : nullable AExpr */; -val* var2 /* : nullable AExpr */; +val* var /* : nullable Variable */; +val* var2 /* : nullable Variable */; +val* var_variable /* var variable: nullable Variable */; +short int var3 /* : Bool */; +short int var4 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var6 /* : Bool */; +short int var7 /* : Bool */; +val* var8 /* : AExpr */; +val* var10 /* : AExpr */; +val* var11 /* : nullable MType */; +val* var13 /* : nullable MType */; +val* var14 /* : nullable MType */; +val* var_mtype /* var mtype: nullable MType */; var_v = p0; { -{ /* Inline parser_nodes#ADoExpr#n_block (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__ADoExpr___n_block].val; /* _n_block on */ +{ /* Inline scope$AVarFormExpr$variable (self) on */ +var2 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on */ var = var2; RET_LABEL1:(void)0; } } -{ -nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var); /* Direct call typing#TypeVisitor#visit_stmt on */ +var_variable = var; +if (var_variable == NULL) { +var3 = 0; /* is null */ +} else { +var3 = 1; /* arg is null and recv is not */ } +if (0) { +{ /* Inline kernel$Object$!= (var_variable,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline typing#AExpr#is_typed= (self,1) on */ -self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ -RET_LABEL3:(void)0; +var6 = ((short int(*)(val* self, val* p0))(var_variable->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_variable, var_other); /* == on */ } +var7 = !var6; +var4 = var7; +goto RET_LABEL5; +RET_LABEL5:(void)0; } -RET_LABEL:; +var3 = var4; } -/* method typing#AWhileExpr#accept_typing for (self: AWhileExpr, TypeVisitor) */ -void nitc__typing___AWhileExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var3 /* : AExpr */; -val* var4 /* : nullable MType */; -val* var5 /* : nullable AExpr */; -val* var7 /* : nullable AExpr */; -var_v = p0; -{ -{ /* Inline typing#TypeVisitor#has_loop= (var_v,1) on */ -var_v->attrs[COLOR_nitc__typing__TypeVisitor___has_loop].s = 1; /* _has_loop on */ -RET_LABEL1:(void)0; +if (unlikely(!var3)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 987); +fatal_exit(1); } { -{ /* Inline parser_nodes#AWhileExpr#n_expr (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1890); -fatal_exit(1); +{ /* Inline parser_nodes$AAssignFormExpr$n_value (self) on */ +var10 = self->attrs[COLOR_nitc__parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on */ +if (unlikely(var10 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var = var3; -RET_LABEL2:(void)0; +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2073); +fatal_exit(1); } +var8 = var10; +RET_LABEL9:(void)0; } -{ -var4 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var); } { -{ /* Inline parser_nodes#AWhileExpr#n_block (self) on */ -var7 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_block].val; /* _n_block on */ -var5 = var7; -RET_LABEL6:(void)0; +{ /* Inline typing$Variable$declared_type (var_variable) on */ +var13 = var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val; /* _declared_type on */ +var11 = var13; +RET_LABEL12:(void)0; } } { -nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var5); /* Direct call typing#TypeVisitor#visit_stmt on */ +var14 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var8, var11); } +var_mtype = var14; { -{ /* Inline typing#AExpr#is_typed= (self,1) on */ -self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ -RET_LABEL8:(void)0; +nitc__typing___nitc__typing__TypeVisitor___set_variable(var_v, self, var_variable, var_mtype); /* Direct call typing$TypeVisitor$set_variable on */ } -} -RET_LABEL:; -} -/* method typing#ALoopExpr#accept_typing for (self: ALoopExpr, TypeVisitor) */ -void nitc__typing___ALoopExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : nullable AExpr */; -val* var3 /* : nullable AExpr */; -var_v = p0; { -{ /* Inline typing#TypeVisitor#has_loop= (var_v,1) on */ -var_v->attrs[COLOR_nitc__typing__TypeVisitor___has_loop].s = 1; /* _has_loop on */ -RET_LABEL1:(void)0; -} +{ /* Inline typing$AExpr$is_typed= (self,1) on */ +self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ +RET_LABEL15:(void)0; } -{ -{ /* Inline parser_nodes#ALoopExpr#n_block (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__ALoopExpr___n_block].val; /* _n_block on */ -var = var3; -RET_LABEL2:(void)0; } +RET_LABEL:; } -{ -nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var); /* Direct call typing#TypeVisitor#visit_stmt on */ +/* method typing$AReassignFormExpr$reassign_callsite for (self: AReassignFormExpr): nullable CallSite */ +val* nitc__typing___AReassignFormExpr___reassign_callsite(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on */ +var = var1; +RET_LABEL:; +return var; } -{ -{ /* Inline typing#AExpr#is_typed= (self,1) on */ -self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ -RET_LABEL4:(void)0; +/* method typing$AReassignFormExpr$reassign_callsite= for (self: AReassignFormExpr, nullable CallSite) */ +void nitc__typing___AReassignFormExpr___reassign_callsite_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AReassignFormExpr___reassign_callsite].val = p0; /* _reassign_callsite on */ +RET_LABEL:; } +/* method typing$AReassignFormExpr$read_type for (self: AReassignFormExpr): nullable MType */ +val* nitc__typing___AReassignFormExpr___read_type(val* self) { +val* var /* : nullable MType */; +val* var1 /* : nullable MType */; +var1 = self->attrs[COLOR_nitc__typing__AReassignFormExpr___read_type].val; /* _read_type on */ +var = var1; +RET_LABEL:; +return var; } +/* method typing$AReassignFormExpr$read_type= for (self: AReassignFormExpr, nullable MType) */ +void nitc__typing___AReassignFormExpr___read_type_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AReassignFormExpr___read_type].val = p0; /* _read_type on */ RET_LABEL:; } -/* method typing#AForExpr#accept_typing for (self: AForExpr, TypeVisitor) */ -void nitc__typing___AForExpr___AExpr__accept_typing(val* self, val* p0) { +/* method typing$AReassignFormExpr$resolve_reassignment for (self: AReassignFormExpr, TypeVisitor, MType, MType): nullable MType */ +val* nitc__typing___AReassignFormExpr___resolve_reassignment(val* self, val* p0, val* p1, val* p2) { +val* var /* : nullable MType */; val* var_v /* var v: TypeVisitor */; -val* var /* : ANodes[AForGroup] */; -val* var3 /* : ANodes[AForGroup] */; -val* var_ /* var : ANodes[AForGroup] */; -val* var4 /* : Iterator[ANode] */; -val* var_5 /* var : Iterator[AForGroup] */; -short int var6 /* : Bool */; -val* var7 /* : nullable Object */; -val* var_g /* var g: AForGroup */; -val* var8 /* : AExpr */; -val* var10 /* : AExpr */; -val* var11 /* : nullable MType */; -val* var_mtype /* var mtype: nullable MType */; -short int var12 /* : Bool */; -short int var13 /* : Bool */; +val* var_readtype /* var readtype: MType */; +val* var_writetype /* var writetype: MType */; +val* var1 /* : AAssignOp */; +val* var3 /* : AAssignOp */; +val* var4 /* : String */; +val* var_reassign_name /* var reassign_name: String */; +val* var6 /* : AAssignOp */; +val* var8 /* : AAssignOp */; +val* var9 /* : nullable CallSite */; +val* var_callsite /* var callsite: nullable CallSite */; +short int var10 /* : Bool */; +short int var11 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var13 /* : Bool */; short int var15 /* : Bool */; -short int var17 /* : Bool */; -short int var18 /* : Bool */; -short int var20 /* : Bool */; -val* var22 /* : nullable AExpr */; -val* var24 /* : nullable AExpr */; -val* var25 /* : nullable AExpr */; -val* var27 /* : nullable AExpr */; -val* var28 /* : nullable MType */; +val* var17 /* : MSignature */; +val* var19 /* : MSignature */; +val* var_msignature /* var msignature: MSignature */; +val* var20 /* : nullable MType */; +val* var22 /* : nullable MType */; +val* var_rettype /* var rettype: nullable MType */; +short int var23 /* : Bool */; +long var24 /* : Int */; +short int var25 /* : Bool */; +short int var27 /* : Bool */; +short int var_ /* var : Bool */; +short int var28 /* : Bool */; +short int var29 /* : Bool */; +val* var_other31 /* var other: nullable Object */; +short int var32 /* : Bool */; +short int var33 /* : Bool */; +val* var34 /* : AExpr */; +val* var36 /* : AExpr */; +val* var37 /* : Array[MParameter] */; +val* var39 /* : Array[MParameter] */; +val* var40 /* : nullable Object */; +val* var41 /* : MType */; +val* var43 /* : MType */; +val* var44 /* : nullable MType */; +val* var_value_type /* var value_type: nullable MType */; +short int var45 /* : Bool */; +short int var46 /* : Bool */; +short int var48 /* : Bool */; +short int var50 /* : Bool */; +val* var51 /* : nullable MType */; var_v = p0; +var_readtype = p1; +var_writetype = p2; { -{ /* Inline typing#TypeVisitor#has_loop= (var_v,1) on */ -var_v->attrs[COLOR_nitc__typing__TypeVisitor___has_loop].s = 1; /* _has_loop on */ -RET_LABEL1:(void)0; -} -} -{ -{ /* Inline parser_nodes#AForExpr#n_groups (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_groups].val; /* _n_groups on */ +{ /* Inline parser_nodes$AReassignFormExpr$n_assign_op (self) on */ +var3 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on */ if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1920); +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2081); fatal_exit(1); } -var = var3; +var1 = var3; RET_LABEL2:(void)0; } } -var_ = var; { -var4 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_); +var4 = ((val*(*)(val* self))(var1->class->vft[COLOR_nitc__parser_nodes__AAssignOp__operator]))(var1); /* operator on */ } -var_5 = var4; -for(;;) { +var_reassign_name = var4; { -var6 = ((short int(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_5); /* is_ok on */ +{ /* Inline typing$AReassignFormExpr$read_type= (self,var_readtype) on */ +self->attrs[COLOR_nitc__typing__AReassignFormExpr___read_type].val = var_readtype; /* _read_type on */ +RET_LABEL5:(void)0; } -if (var6){ -} else { -goto BREAK_label; } { -var7 = ((val*(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_5); /* item on */ +{ /* Inline parser_nodes$AReassignFormExpr$n_assign_op (self) on */ +var8 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on */ +if (unlikely(var8 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var_g = var7; -{ -{ /* Inline parser_nodes#AForGroup#n_expr (var_g) on */ -var10 = var_g->attrs[COLOR_nitc__parser_nodes__AForGroup___n_expr].val; /* _n_expr on */ -if (unlikely(var10 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1943); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2081); fatal_exit(1); } -var8 = var10; -RET_LABEL9:(void)0; +var6 = var8; +RET_LABEL7:(void)0; } } { -var11 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var8); +var9 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, var6, var_readtype, var_reassign_name, 0); } -var_mtype = var11; -if (var_mtype == NULL) { -var12 = 1; /* is null */ +var_callsite = var9; +if (var_callsite == NULL) { +var10 = 1; /* is null */ } else { -var12 = 0; /* arg is null but recv is not */ +var10 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_callsite,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on */ -var17 = var_mtype == var_other; -var15 = var17; -goto RET_LABEL16; -RET_LABEL16:(void)0; -} -} +{ /* Inline kernel$Object$is_same_instance (var_callsite,var_other) on */ +var15 = var_callsite == var_other; var13 = var15; goto RET_LABEL14; RET_LABEL14:(void)0; } -var12 = var13; } -if (var12){ +var11 = var13; +goto RET_LABEL12; +RET_LABEL12:(void)0; +} +var10 = var11; +} +if (var10){ +var = ((val*)NULL); goto RET_LABEL; } else { } { -nitc__typing___AForGroup___do_type_iterator(var_g, var_v, var_mtype); /* Direct call typing#AForGroup#do_type_iterator on */ -} -{ -{ /* Inline modelbuilder_base#ANode#is_broken (var_g) on */ -var20 = var_g->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s; /* _is_broken on */ -var18 = var20; -RET_LABEL19:(void)0; +{ /* Inline typing$AReassignFormExpr$reassign_callsite= (self,var_callsite) on */ +self->attrs[COLOR_nitc__typing__AReassignFormExpr___reassign_callsite].val = var_callsite; /* _reassign_callsite on */ +RET_LABEL16:(void)0; } } -if (var18){ { -{ /* Inline modelbuilder_base#ANode#is_broken= (self,1) on */ -self->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s = 1; /* _is_broken on */ -RET_LABEL21:(void)0; -} -} -} else { +{ /* Inline typing$CallSite$msignature (var_callsite) on */ +var19 = var_callsite->attrs[COLOR_nitc__typing__CallSite___msignature].val; /* _msignature on */ +if (unlikely(var19 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -{ -((void(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_5); /* next on */ +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 663); +fatal_exit(1); } +var17 = var19; +RET_LABEL18:(void)0; } -BREAK_label: (void)0; -{ -((void(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_5); /* finish on */ } +var_msignature = var17; { -{ /* Inline parser_nodes#AForExpr#n_block (self) on */ -var24 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_block].val; /* _n_block on */ -var22 = var24; -RET_LABEL23:(void)0; +{ /* Inline model$MSignature$return_mtype (var_msignature) on */ +var22 = var_msignature->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on */ +var20 = var22; +RET_LABEL21:(void)0; } } +var_rettype = var20; { -nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var22); /* Direct call typing#TypeVisitor#visit_stmt on */ +var24 = nitc___nitc__MSignature___arity(var_msignature); } { -{ /* Inline parser_nodes#AForExpr#n_block (self) on */ -var27 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_block].val; /* _n_block on */ +{ /* Inline kernel$Int$== (var24,1l) on */ +var27 = var24 == 1l; var25 = var27; +goto RET_LABEL26; RET_LABEL26:(void)0; } } -if (var25 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1161); -fatal_exit(1); +var_ = var25; +if (var25){ +if (var_rettype == NULL) { +var28 = 0; /* is null */ } else { -var28 = ((val*(*)(val* self))(var25->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var25); /* mtype on */ +var28 = 1; /* arg is null and recv is not */ } +if (0) { +{ /* Inline kernel$Object$!= (var_rettype,((val*)NULL)) on */ +var_other31 = ((val*)NULL); { -{ /* Inline typing#AExpr#mtype= (self,var28) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var28; /* _mtype on */ -RET_LABEL29:(void)0; -} +var32 = ((short int(*)(val* self, val* p0))(var_rettype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_rettype, var_other31); /* == on */ } -{ -{ /* Inline typing#AExpr#is_typed= (self,1) on */ -self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ +var33 = !var32; +var29 = var33; +goto RET_LABEL30; RET_LABEL30:(void)0; } +var28 = var29; } -RET_LABEL:; -} -/* method typing#AForGroup#coltype= for (self: AForGroup, nullable MClassType) */ -void nitc__typing___AForGroup___coltype_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__AForGroup___coltype].val = p0; /* _coltype on */ -RET_LABEL:; -} -/* method typing#AForGroup#method_iterator for (self: AForGroup): nullable CallSite */ -val* nitc__typing___AForGroup___method_iterator(val* self) { -val* var /* : nullable CallSite */; -val* var1 /* : nullable CallSite */; -var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_iterator].val; /* _method_iterator on */ -var = var1; -RET_LABEL:; -return var; -} -/* method typing#AForGroup#method_iterator= for (self: AForGroup, nullable CallSite) */ -void nitc__typing___AForGroup___method_iterator_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__AForGroup___method_iterator].val = p0; /* _method_iterator on */ -RET_LABEL:; -} -/* method typing#AForGroup#method_is_ok for (self: AForGroup): nullable CallSite */ -val* nitc__typing___AForGroup___method_is_ok(val* self) { -val* var /* : nullable CallSite */; -val* var1 /* : nullable CallSite */; -var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_is_ok].val; /* _method_is_ok on */ -var = var1; -RET_LABEL:; -return var; -} -/* method typing#AForGroup#method_is_ok= for (self: AForGroup, nullable CallSite) */ -void nitc__typing___AForGroup___method_is_ok_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__AForGroup___method_is_ok].val = p0; /* _method_is_ok on */ -RET_LABEL:; -} -/* method typing#AForGroup#method_item for (self: AForGroup): nullable CallSite */ -val* nitc__typing___AForGroup___method_item(val* self) { -val* var /* : nullable CallSite */; -val* var1 /* : nullable CallSite */; -var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_item].val; /* _method_item on */ -var = var1; -RET_LABEL:; -return var; -} -/* method typing#AForGroup#method_item= for (self: AForGroup, nullable CallSite) */ -void nitc__typing___AForGroup___method_item_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__AForGroup___method_item].val = p0; /* _method_item on */ -RET_LABEL:; -} -/* method typing#AForGroup#method_next for (self: AForGroup): nullable CallSite */ -val* nitc__typing___AForGroup___method_next(val* self) { -val* var /* : nullable CallSite */; -val* var1 /* : nullable CallSite */; -var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_next].val; /* _method_next on */ -var = var1; -RET_LABEL:; -return var; -} -/* method typing#AForGroup#method_next= for (self: AForGroup, nullable CallSite) */ -void nitc__typing___AForGroup___method_next_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__AForGroup___method_next].val = p0; /* _method_next on */ -RET_LABEL:; -} -/* method typing#AForGroup#method_key for (self: AForGroup): nullable CallSite */ -val* nitc__typing___AForGroup___method_key(val* self) { -val* var /* : nullable CallSite */; -val* var1 /* : nullable CallSite */; -var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_key].val; /* _method_key on */ -var = var1; -RET_LABEL:; -return var; -} -/* method typing#AForGroup#method_key= for (self: AForGroup, nullable CallSite) */ -void nitc__typing___AForGroup___method_key_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__AForGroup___method_key].val = p0; /* _method_key on */ -RET_LABEL:; -} -/* method typing#AForGroup#method_finish for (self: AForGroup): nullable CallSite */ -val* nitc__typing___AForGroup___method_finish(val* self) { -val* var /* : nullable CallSite */; -val* var1 /* : nullable CallSite */; -var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_finish].val; /* _method_finish on */ -var = var1; -RET_LABEL:; -return var; -} -/* method typing#AForGroup#method_finish= for (self: AForGroup, nullable CallSite) */ -void nitc__typing___AForGroup___method_finish_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__AForGroup___method_finish].val = p0; /* _method_finish on */ -RET_LABEL:; -} -/* method typing#AForGroup#method_lt for (self: AForGroup): nullable CallSite */ -val* nitc__typing___AForGroup___method_lt(val* self) { -val* var /* : nullable CallSite */; -val* var1 /* : nullable CallSite */; -var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_lt].val; /* _method_lt on */ -var = var1; -RET_LABEL:; -return var; -} -/* method typing#AForGroup#method_lt= for (self: AForGroup, nullable CallSite) */ -void nitc__typing___AForGroup___method_lt_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__AForGroup___method_lt].val = p0; /* _method_lt on */ -RET_LABEL:; -} -/* method typing#AForGroup#method_successor for (self: AForGroup): nullable CallSite */ -val* nitc__typing___AForGroup___method_successor(val* self) { -val* var /* : nullable CallSite */; -val* var1 /* : nullable CallSite */; -var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_successor].val; /* _method_successor on */ -var = var1; -RET_LABEL:; -return var; -} -/* method typing#AForGroup#method_successor= for (self: AForGroup, nullable CallSite) */ -void nitc__typing___AForGroup___method_successor_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__AForGroup___method_successor].val = p0; /* _method_successor on */ -RET_LABEL:; -} -/* method typing#AForGroup#do_type_iterator for (self: AForGroup, TypeVisitor, MType) */ -void nitc__typing___AForGroup___do_type_iterator(val* self, val* p0, val* p1) { -val* var_v /* var v: TypeVisitor */; -val* var_mtype /* var mtype: MType */; -short int var /* : Bool */; -int cltype; -int idtype; -static val* varonce; -val* var1 /* : String */; -char* var2 /* : NativeString */; -val* var3 /* : String */; -static val* varonce4; -val* var5 /* : String */; -char* var6 /* : NativeString */; -val* var7 /* : String */; -val* var8 /* : nullable MClass */; -val* var_objcla /* var objcla: nullable MClass */; -short int var9 /* : Bool */; -short int var10 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var12 /* : Bool */; -short int var14 /* : Bool */; -static val* varonce15; -val* var16 /* : String */; -char* var17 /* : NativeString */; -val* var18 /* : String */; -val* var19 /* : AExpr */; -val* var21 /* : AExpr */; -short int var22 /* : Bool */; -int cltype23; -int idtype24; -val* var25 /* : nullable CallSite */; -val* var_itdef /* var itdef: nullable CallSite */; -short int var26 /* : Bool */; -short int var27 /* : Bool */; -short int var29 /* : Bool */; -short int var31 /* : Bool */; -val* var33 /* : NativeArray[String] */; -static val* varonce32; -static val* varonce34; -val* var35 /* : String */; -char* var36 /* : NativeString */; -val* var37 /* : String */; -static val* varonce38; -val* var39 /* : String */; -char* var40 /* : NativeString */; -val* var41 /* : String */; -val* var42 /* : String */; -val* var43 /* : String */; -val* var45 /* : MSignature */; -val* var47 /* : MSignature */; -val* var48 /* : nullable MType */; -val* var50 /* : nullable MType */; -val* var_ittype /* var ittype: nullable MType */; -short int var51 /* : Bool */; -short int var52 /* : Bool */; -short int var54 /* : Bool */; -short int var56 /* : Bool */; -static val* varonce57; -val* var58 /* : String */; -char* var59 /* : NativeString */; -val* var60 /* : String */; -static val* varonce61; -val* var62 /* : String */; -char* var63 /* : NativeString */; -val* var64 /* : String */; -val* var65 /* : nullable MClass */; -val* var_colit_cla /* var colit_cla: nullable MClass */; -static val* varonce66; -val* var67 /* : String */; -char* var68 /* : NativeString */; -val* var69 /* : String */; -val* var70 /* : nullable MClass */; -val* var_mapit_cla /* var mapit_cla: nullable MClass */; -short int var_is_col /* var is_col: Bool */; -short int var_is_map /* var is_map: Bool */; -short int var71 /* : Bool */; -short int var72 /* : Bool */; -short int var73 /* : Bool */; -val* var_other75 /* var other: nullable Object */; -short int var76 /* : Bool */; -short int var77 /* : Bool */; -short int var_ /* var : Bool */; -val* var78 /* : Array[MType] */; -val* var_79 /* var : Array[MType] */; -val* var80 /* : MClassType */; -val* var82 /* : MClassType */; -val* var83 /* : MType */; -val* var84 /* : MClassType */; -short int var85 /* : Bool */; -val* var86 /* : MModule */; -val* var88 /* : MModule */; -val* var89 /* : nullable MClassType */; -val* var91 /* : nullable MClassType */; -val* var92 /* : MClassType */; -val* var_coltype /* var coltype: MClassType */; -val* var93 /* : nullable Array[Variable] */; -val* var95 /* : nullable Array[Variable] */; -val* var_variables /* var variables: nullable Array[Variable] */; -long var96 /* : Int */; -long var98 /* : Int */; -short int var99 /* : Bool */; -short int var101 /* : Bool */; -short int var102 /* : Bool */; -static val* varonce103; -val* var104 /* : String */; -char* var105 /* : NativeString */; -val* var106 /* : String */; -val* var107 /* : nullable Object */; -val* var108 /* : Array[MType] */; -val* var109 /* : nullable Object */; -short int var111 /* : Bool */; -short int var112 /* : Bool */; -short int var113 /* : Bool */; -short int var115 /* : Bool */; -short int var116 /* : Bool */; -short int var_117 /* var : Bool */; -val* var118 /* : Array[MType] */; -val* var_119 /* var : Array[MType] */; -val* var120 /* : MClassType */; -val* var122 /* : MClassType */; -val* var123 /* : MType */; -val* var124 /* : MClassType */; -val* var126 /* : MClassType */; -val* var127 /* : MType */; -val* var128 /* : MClassType */; -short int var129 /* : Bool */; -val* var130 /* : MModule */; -val* var132 /* : MModule */; -val* var133 /* : nullable MClassType */; -val* var135 /* : nullable MClassType */; -val* var136 /* : MClassType */; -val* var_coltype137 /* var coltype: MClassType */; -val* var138 /* : nullable Array[Variable] */; -val* var140 /* : nullable Array[Variable] */; -val* var_variables141 /* var variables: nullable Array[Variable] */; -long var142 /* : Int */; -long var144 /* : Int */; -short int var145 /* : Bool */; -short int var147 /* : Bool */; -short int var148 /* : Bool */; -static val* varonce149; -val* var150 /* : String */; -char* var151 /* : NativeString */; -val* var152 /* : String */; -val* var153 /* : nullable Object */; -val* var154 /* : Array[MType] */; -val* var155 /* : nullable Object */; -val* var157 /* : nullable Object */; -val* var158 /* : Array[MType] */; -val* var159 /* : nullable Object */; -short int var161 /* : Bool */; -short int var162 /* : Bool */; -short int var_163 /* var : Bool */; -short int var164 /* : Bool */; -static val* varonce165; -val* var166 /* : String */; -char* var167 /* : NativeString */; -val* var168 /* : String */; -short int var169 /* : Bool */; -val* var170 /* : MType */; -val* var171 /* : MType */; -short int var172 /* : Bool */; -int cltype173; -int idtype174; -const char* var_class_name; -static val* varonce176; -val* var177 /* : String */; -char* var178 /* : NativeString */; -val* var179 /* : String */; -val* var180 /* : nullable CallSite */; -val* var_ikdef /* var ikdef: nullable CallSite */; -short int var181 /* : Bool */; -short int var182 /* : Bool */; -short int var184 /* : Bool */; -short int var186 /* : Bool */; -val* var188 /* : NativeArray[String] */; -static val* varonce187; -static val* varonce189; -val* var190 /* : String */; -char* var191 /* : NativeString */; -val* var192 /* : String */; -static val* varonce193; -val* var194 /* : String */; -char* var195 /* : NativeString */; -val* var196 /* : String */; -val* var197 /* : String */; -val* var198 /* : String */; -static val* varonce200; -val* var201 /* : String */; -char* var202 /* : NativeString */; -val* var203 /* : String */; -val* var204 /* : nullable CallSite */; -val* var_itemdef /* var itemdef: nullable CallSite */; -short int var205 /* : Bool */; -short int var206 /* : Bool */; -short int var208 /* : Bool */; -short int var210 /* : Bool */; -val* var212 /* : NativeArray[String] */; -static val* varonce211; -static val* varonce213; -val* var214 /* : String */; -char* var215 /* : NativeString */; -val* var216 /* : String */; -static val* varonce217; -val* var218 /* : String */; -char* var219 /* : NativeString */; -val* var220 /* : String */; -val* var221 /* : String */; -val* var222 /* : String */; -static val* varonce224; -val* var225 /* : String */; -char* var226 /* : NativeString */; -val* var227 /* : String */; -val* var228 /* : nullable CallSite */; -val* var_nextdef /* var nextdef: nullable CallSite */; -short int var229 /* : Bool */; -short int var230 /* : Bool */; -short int var232 /* : Bool */; -short int var234 /* : Bool */; -val* var236 /* : NativeArray[String] */; -static val* varonce235; -static val* varonce237; -val* var238 /* : String */; -char* var239 /* : NativeString */; -val* var240 /* : String */; -static val* varonce241; -val* var242 /* : String */; -char* var243 /* : NativeString */; -val* var244 /* : String */; -val* var245 /* : String */; -val* var246 /* : String */; -static val* varonce248; -val* var249 /* : String */; -char* var250 /* : NativeString */; -val* var251 /* : String */; -val* var252 /* : nullable CallSite */; -static val* varonce254; -val* var255 /* : String */; -char* var256 /* : NativeString */; -val* var257 /* : String */; -val* var258 /* : nullable CallSite */; -val* var_keydef /* var keydef: nullable CallSite */; -short int var259 /* : Bool */; -short int var260 /* : Bool */; -short int var262 /* : Bool */; -short int var264 /* : Bool */; -val* var266 /* : NativeArray[String] */; -static val* varonce265; -static val* varonce267; -val* var268 /* : String */; -char* var269 /* : NativeString */; -val* var270 /* : String */; -static val* varonce271; -val* var272 /* : String */; -char* var273 /* : NativeString */; -val* var274 /* : String */; -val* var275 /* : String */; -val* var276 /* : String */; -short int var278 /* : Bool */; -val* var279 /* : nullable Array[Variable] */; -val* var281 /* : nullable Array[Variable] */; -long var282 /* : Int */; -long var284 /* : Int */; -short int var285 /* : Bool */; -short int var287 /* : Bool */; -short int var_288 /* var : Bool */; -val* var289 /* : AExpr */; -val* var291 /* : AExpr */; -short int var292 /* : Bool */; -int cltype293; -int idtype294; -val* var295 /* : nullable Array[Variable] */; -val* var297 /* : nullable Array[Variable] */; -val* var298 /* : nullable Object */; -val* var_variable /* var variable: Variable */; -val* var299 /* : nullable MType */; -val* var301 /* : nullable MType */; -val* var_vtype /* var vtype: MType */; -val* var302 /* : AExpr */; -val* var304 /* : AExpr */; -short int var305 /* : Bool */; -int cltype306; -int idtype307; -static val* varonce308; -val* var309 /* : String */; -char* var310 /* : NativeString */; -val* var311 /* : String */; -val* var312 /* : nullable CallSite */; -static val* varonce314; -val* var315 /* : String */; -char* var316 /* : NativeString */; -val* var317 /* : String */; -val* var318 /* : nullable CallSite */; -static val* varonce320; -val* var321 /* : String */; -char* var322 /* : NativeString */; -val* var323 /* : String */; -val* var324 /* : nullable CallSite */; -var_v = p0; -var_mtype = p1; -/* isa MNullType */ -cltype = type_nitc__MNullType.color; -idtype = type_nitc__MNullType.id; -if(cltype >= var_mtype->type->table_size) { -var = 0; -} else { -var = var_mtype->type->type_table[cltype] == idtype; -} -if (var){ -if (likely(varonce!=NULL)) { -var1 = varonce; -} else { -var2 = "Type Error: `for` cannot iterate over `null`."; -var3 = core__flat___NativeString___to_s_full(var2, 45l, 45l); -var1 = var3; -varonce = var1; -} -{ -nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var1); /* Direct call typing#TypeVisitor#error on */ -} -goto RET_LABEL; -} else { -} -if (likely(varonce4!=NULL)) { -var5 = varonce4; +var23 = var28; } else { -var6 = "Object"; -var7 = core__flat___NativeString___to_s_full(var6, 6l, 6l); -var5 = var7; -varonce4 = var5; +var23 = var_; } -{ -var8 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var5); +if (unlikely(!var23)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var_objcla = var8; -if (var_objcla == NULL) { -var9 = 1; /* is null */ -} else { -var9 = 0; /* arg is null but recv is not */ +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1020); +fatal_exit(1); } -if (0) { -{ /* Inline kernel#Object#== (var_objcla,((val*)NULL)) on */ -var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_objcla,var_other) on */ -var14 = var_objcla == var_other; -var12 = var14; -goto RET_LABEL13; -RET_LABEL13:(void)0; -} -} -var10 = var12; -goto RET_LABEL11; -RET_LABEL11:(void)0; -} -var9 = var10; -} -if (var9){ -goto RET_LABEL; -} else { -} -if (likely(varonce15!=NULL)) { -var16 = varonce15; -} else { -var17 = "iterator"; -var18 = core__flat___NativeString___to_s_full(var17, 8l, 8l); -var16 = var18; -varonce15 = var16; +{ /* Inline parser_nodes$AReassignFormExpr$n_value (self) on */ +var36 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on */ +if (unlikely(var36 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -{ -{ /* Inline parser_nodes#AForGroup#n_expr (self) on */ -var21 = self->attrs[COLOR_nitc__parser_nodes__AForGroup___n_expr].val; /* _n_expr on */ -if (unlikely(var21 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1943); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2084); fatal_exit(1); } -var19 = var21; -RET_LABEL20:(void)0; -} -} -/* isa ASelfExpr */ -cltype23 = type_nitc__ASelfExpr.color; -idtype24 = type_nitc__ASelfExpr.id; -if(cltype23 >= var19->type->table_size) { -var22 = 0; -} else { -var22 = var19->type->type_table[cltype23] == idtype24; -} -{ -var25 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_mtype, var16, var22); +var34 = var36; +RET_LABEL35:(void)0; } -var_itdef = var25; -if (var_itdef == NULL) { -var26 = 1; /* is null */ -} else { -var26 = 0; /* arg is null but recv is not */ } -if (0) { -{ /* Inline kernel#Object#== (var_itdef,((val*)NULL)) on */ -var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_itdef,var_other) on */ -var31 = var_itdef == var_other; -var29 = var31; -goto RET_LABEL30; -RET_LABEL30:(void)0; -} -} -var27 = var29; -goto RET_LABEL28; -RET_LABEL28:(void)0; -} -var26 = var27; -} -if (var26){ -if (unlikely(varonce32==NULL)) { -var33 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String); -if (likely(varonce34!=NULL)) { -var35 = varonce34; -} else { -var36 = "Type Error: `for` expects a type providing an `iterator` method, got `"; -var37 = core__flat___NativeString___to_s_full(var36, 70l, 70l); -var35 = var37; -varonce34 = var35; -} -((struct instance_core__NativeArray*)var33)->values[0]=var35; -if (likely(varonce38!=NULL)) { -var39 = varonce38; -} else { -var40 = "`."; -var41 = core__flat___NativeString___to_s_full(var40, 2l, 2l); -var39 = var41; -varonce38 = var39; +{ /* Inline model$MSignature$mparameters (var_msignature) on */ +var39 = var_msignature->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on */ +if (unlikely(var39 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -((struct instance_core__NativeArray*)var33)->values[2]=var39; -} else { -var33 = varonce32; -varonce32 = NULL; +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879); +fatal_exit(1); } -{ -var42 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on */ +var37 = var39; +RET_LABEL38:(void)0; } -((struct instance_core__NativeArray*)var33)->values[1]=var42; -{ -var43 = ((val*(*)(val* self))(var33->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var33); /* native_to_s on */ } -varonce32 = var33; { -nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var43); /* Direct call typing#TypeVisitor#error on */ -} -goto RET_LABEL; -} else { +var40 = core___core__SequenceRead___Collection__first(var37); } { -{ /* Inline typing#AForGroup#method_iterator= (self,var_itdef) on */ -self->attrs[COLOR_nitc__typing__AForGroup___method_iterator].val = var_itdef; /* _method_iterator on */ -RET_LABEL44:(void)0; -} +{ /* Inline model$MParameter$mtype (var40) on */ +var43 = var40->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on */ +if (unlikely(var43 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -{ -{ /* Inline typing#CallSite#msignature (var_itdef) on */ -var47 = var_itdef->attrs[COLOR_nitc__typing__CallSite___msignature].val; /* _msignature on */ -if (unlikely(var47 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 660); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996); fatal_exit(1); } -var45 = var47; -RET_LABEL46:(void)0; +var41 = var43; +RET_LABEL42:(void)0; } } { -{ /* Inline model#MSignature#return_mtype (var45) on */ -var50 = var45->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on */ -var48 = var50; -RET_LABEL49:(void)0; -} +var44 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var34, var41); } -var_ittype = var48; -if (var_ittype == NULL) { -var51 = 1; /* is null */ +var_value_type = var44; +if (var_value_type == NULL) { +var45 = 1; /* is null */ } else { -var51 = 0; /* arg is null but recv is not */ +var45 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_ittype,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_value_type,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_ittype,var_other) on */ -var56 = var_ittype == var_other; -var54 = var56; -goto RET_LABEL55; -RET_LABEL55:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_value_type,var_other) on */ +var50 = var_value_type == var_other; +var48 = var50; +goto RET_LABEL49; +RET_LABEL49:(void)0; } } -var52 = var54; -goto RET_LABEL53; -RET_LABEL53:(void)0; +var46 = var48; +goto RET_LABEL47; +RET_LABEL47:(void)0; } -var51 = var52; +var45 = var46; } -if (var51){ -if (likely(varonce57!=NULL)) { -var58 = varonce57; +if (var45){ +var = ((val*)NULL); +goto RET_LABEL; } else { -var59 = "Type Error: `for` expects the method `iterator` to return an `Iterator` or `MapIterator` type."; -var60 = core__flat___NativeString___to_s_full(var59, 94l, 94l); -var58 = var60; -varonce57 = var58; } { -nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var58); /* Direct call typing#TypeVisitor#error on */ +var51 = nitc__typing___nitc__typing__TypeVisitor___check_subtype(var_v, self, var_rettype, var_writetype, 0); } +var = var_rettype; goto RET_LABEL; -} else { -} -if (likely(varonce61!=NULL)) { -var62 = varonce61; -} else { -var63 = "Iterator"; -var64 = core__flat___NativeString___to_s_full(var63, 8l, 8l); -var62 = var64; -varonce61 = var62; +RET_LABEL:; +return var; } +/* method typing$AVarReassignExpr$accept_typing for (self: AVarReassignExpr, TypeVisitor) */ +void nitc__typing___AVarReassignExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : nullable Variable */; +val* var2 /* : nullable Variable */; +val* var_variable /* var variable: nullable Variable */; +short int var3 /* : Bool */; +short int var4 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var6 /* : Bool */; +short int var7 /* : Bool */; +val* var8 /* : nullable MType */; +val* var_readtype /* var readtype: nullable MType */; +short int var9 /* : Bool */; +short int var10 /* : Bool */; +val* var_other12 /* var other: nullable Object */; +short int var13 /* : Bool */; +short int var15 /* : Bool */; +val* var17 /* : nullable MType */; +val* var19 /* : nullable MType */; +val* var_writetype /* var writetype: nullable MType */; +short int var20 /* : Bool */; +short int var21 /* : Bool */; +short int var23 /* : Bool */; +short int var25 /* : Bool */; +val* var26 /* : nullable MType */; +val* var_rettype /* var rettype: nullable MType */; +short int var27 /* : Bool */; +short int var28 /* : Bool */; +short int var30 /* : Bool */; +short int var31 /* : Bool */; +var_v = p0; { -var65 = nitc__typing___nitc__typing__TypeVisitor___try_get_mclass(var_v, self, var62); -} -var_colit_cla = var65; -if (likely(varonce66!=NULL)) { -var67 = varonce66; -} else { -var68 = "MapIterator"; -var69 = core__flat___NativeString___to_s_full(var68, 11l, 11l); -var67 = var69; -varonce66 = var67; +{ /* Inline scope$AVarFormExpr$variable (self) on */ +var2 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on */ +var = var2; +RET_LABEL1:(void)0; } -{ -var70 = nitc__typing___nitc__typing__TypeVisitor___try_get_mclass(var_v, self, var67); } -var_mapit_cla = var70; -var_is_col = 0; -var_is_map = 0; -if (var_colit_cla == NULL) { -var72 = 0; /* is null */ +var_variable = var; +if (var_variable == NULL) { +var3 = 0; /* is null */ } else { -var72 = 1; /* arg is null and recv is not */ +var3 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_colit_cla,((val*)NULL)) on */ -var_other75 = ((val*)NULL); -{ -var76 = ((short int(*)(val* self, val* p0))(var_colit_cla->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_colit_cla, var_other75); /* == on */ -} -var77 = !var76; -var73 = var77; -goto RET_LABEL74; -RET_LABEL74:(void)0; -} -var72 = var73; -} -var_ = var72; -if (var72){ -var78 = NEW_core__Array(&type_core__Array__nitc__MType); -{ -core___core__Array___with_capacity(var78, 1l); /* Direct call array#Array#with_capacity on */ -} -var_79 = var78; +{ /* Inline kernel$Object$!= (var_variable,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline model#MClass#mclass_type (var_objcla) on */ -var82 = var_objcla->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var82 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 507); -fatal_exit(1); -} -var80 = var82; -RET_LABEL81:(void)0; +var6 = ((short int(*)(val* self, val* p0))(var_variable->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_variable, var_other); /* == on */ } +var7 = !var6; +var4 = var7; +goto RET_LABEL5; +RET_LABEL5:(void)0; } -{ -var83 = nitc___nitc__MType___as_nullable(var80); +var3 = var4; } -{ -core___core__AbstractArray___core__abstract_collection__Sequence__push(var_79, var83); /* Direct call array#AbstractArray#push on */ +if (unlikely(!var3)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -{ -var84 = nitc___nitc__MClass___get_mtype(var_colit_cla, var_79); +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1034); +fatal_exit(1); } { -var85 = nitc__typing___nitc__typing__TypeVisitor___is_subtype(var_v, var_ittype, var84); +var8 = nitc__typing___nitc__typing__TypeVisitor___get_variable(var_v, self, var_variable); } -var71 = var85; +var_readtype = var8; +if (var_readtype == NULL) { +var9 = 1; /* is null */ } else { -var71 = var_; +var9 = 0; /* arg is null but recv is not */ } -if (var71){ +if (0) { +{ /* Inline kernel$Object$== (var_readtype,((val*)NULL)) on */ +var_other12 = ((val*)NULL); { -{ /* Inline typing#TypeVisitor#mmodule (var_v) on */ -var88 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mmodule].val; /* _mmodule on */ -if (unlikely(var88 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 37); -fatal_exit(1); +{ /* Inline kernel$Object$is_same_instance (var_readtype,var_other12) on */ +var15 = var_readtype == var_other12; +var13 = var15; +goto RET_LABEL14; +RET_LABEL14:(void)0; } -var86 = var88; -RET_LABEL87:(void)0; } +var10 = var13; +goto RET_LABEL11; +RET_LABEL11:(void)0; } -{ -{ /* Inline typing#TypeVisitor#anchor (var_v) on */ -var91 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___anchor].val; /* _anchor on */ -var89 = var91; -RET_LABEL90:(void)0; +var9 = var10; } +if (var9){ +goto RET_LABEL; +} else { } { -var92 = nitc___nitc__MType___supertype_to(var_ittype, var86, var89, var_colit_cla); +{ /* Inline typing$AReassignFormExpr$read_type= (self,var_readtype) on */ +self->attrs[COLOR_nitc__typing__AReassignFormExpr___read_type].val = var_readtype; /* _read_type on */ +RET_LABEL16:(void)0; +} } -var_coltype = var92; { -{ /* Inline scope#AForGroup#variables (self) on */ -var95 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on */ -var93 = var95; -RET_LABEL94:(void)0; +{ /* Inline typing$Variable$declared_type (var_variable) on */ +var19 = var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val; /* _declared_type on */ +var17 = var19; +RET_LABEL18:(void)0; } } -var_variables = var93; -if (var_variables == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1215); -fatal_exit(1); +var_writetype = var17; +if (var_writetype == NULL) { +var20 = 1; /* is null */ } else { -{ /* Inline array#AbstractArrayRead#length (var_variables) on */ -if (unlikely(var_variables == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 26); -fatal_exit(1); -} -var98 = var_variables->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on */ -var96 = var98; -RET_LABEL97:(void)0; -} +var20 = 0; /* arg is null but recv is not */ } +if (0) { +{ /* Inline kernel$Object$== (var_writetype,((val*)NULL)) on */ +var_other12 = ((val*)NULL); { -{ /* Inline kernel#Int#!= (var96,1l) on */ -var101 = var96 == 1l; -var102 = !var101; -var99 = var102; -goto RET_LABEL100; -RET_LABEL100:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_writetype,var_other12) on */ +var25 = var_writetype == var_other12; +var23 = var25; +goto RET_LABEL24; +RET_LABEL24:(void)0; } } -if (var99){ -if (likely(varonce103!=NULL)) { -var104 = varonce103; -} else { -var105 = "Type Error: `for` expects only one variable when using `Iterator`."; -var106 = core__flat___NativeString___to_s_full(var105, 66l, 66l); -var104 = var106; -varonce103 = var104; +var21 = var23; +goto RET_LABEL22; +RET_LABEL22:(void)0; } -{ -nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var104); /* Direct call typing#TypeVisitor#error on */ +var20 = var21; } +if (var20){ +goto RET_LABEL; } else { -if (var_variables == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1218); -fatal_exit(1); -} else { -var107 = core___core__SequenceRead___Collection__first(var_variables); -} -{ -var108 = ((val*(*)(val* self))(var_coltype->class->vft[COLOR_nitc__model__MClassType__arguments]))(var_coltype); /* arguments on */ } { -var109 = core___core__SequenceRead___Collection__first(var108); +var26 = nitc__typing___AReassignFormExpr___resolve_reassignment(self, var_v, var_readtype, var_writetype); } +var_rettype = var26; { -{ /* Inline typing#Variable#declared_type= (var107,var109) on */ -var107->attrs[COLOR_nitc__typing__Variable___declared_type].val = var109; /* _declared_type on */ -RET_LABEL110:(void)0; -} -} -} -var_is_col = 1; -} else { +nitc__typing___nitc__typing__TypeVisitor___set_variable(var_v, self, var_variable, var_rettype); /* Direct call typing$TypeVisitor$set_variable on */ } -if (var_mapit_cla == NULL) { -var112 = 0; /* is null */ +if (var_rettype == NULL) { +var27 = 0; /* is null */ } else { -var112 = 1; /* arg is null and recv is not */ +var27 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_mapit_cla,((val*)NULL)) on */ -var_other75 = ((val*)NULL); +{ /* Inline kernel$Object$!= (var_rettype,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var115 = ((short int(*)(val* self, val* p0))(var_mapit_cla->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mapit_cla, var_other75); /* == on */ -} -var116 = !var115; -var113 = var116; -goto RET_LABEL114; -RET_LABEL114:(void)0; +var30 = ((short int(*)(val* self, val* p0))(var_rettype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_rettype, var_other); /* == on */ } -var112 = var113; +var31 = !var30; +var28 = var31; +goto RET_LABEL29; +RET_LABEL29:(void)0; } -var_117 = var112; -if (var112){ -var118 = NEW_core__Array(&type_core__Array__nitc__MType); -{ -core___core__Array___with_capacity(var118, 2l); /* Direct call array#Array#with_capacity on */ +var27 = var28; } -var_119 = var118; { -{ /* Inline model#MClass#mclass_type (var_objcla) on */ -var122 = var_objcla->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var122 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 507); -fatal_exit(1); +{ /* Inline typing$AExpr$is_typed= (self,var27) on */ +self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = var27; /* _is_typed on */ +RET_LABEL32:(void)0; } -var120 = var122; -RET_LABEL121:(void)0; } +RET_LABEL:; } +/* method typing$AContinueExpr$accept_typing for (self: AContinueExpr, TypeVisitor) */ +void nitc__typing___AContinueExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : nullable AExpr */; +val* var2 /* : nullable AExpr */; +val* var_nexpr /* var nexpr: nullable AExpr */; +short int var3 /* : Bool */; +short int var4 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var6 /* : Bool */; +short int var7 /* : Bool */; +val* var8 /* : nullable MType */; +var_v = p0; { -var123 = nitc___nitc__MType___as_nullable(var120); +{ /* Inline parser_nodes$AEscapeExpr$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__AEscapeExpr___n_expr].val; /* _n_expr on */ +var = var2; +RET_LABEL1:(void)0; } -{ -core___core__AbstractArray___core__abstract_collection__Sequence__push(var_119, var123); /* Direct call array#AbstractArray#push on */ } +var_nexpr = var; +if (var_nexpr == NULL) { +var3 = 0; /* is null */ +} else { +var3 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel$Object$!= (var_nexpr,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline model#MClass#mclass_type (var_objcla) on */ -var126 = var_objcla->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var126 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 507); -fatal_exit(1); +var6 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other); /* == on */ } -var124 = var126; -RET_LABEL125:(void)0; +var7 = !var6; +var4 = var7; +goto RET_LABEL5; +RET_LABEL5:(void)0; } +var3 = var4; } +if (var3){ { -var127 = nitc___nitc__MType___as_nullable(var124); +var8 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var_nexpr); } -{ -core___core__AbstractArray___core__abstract_collection__Sequence__push(var_119, var127); /* Direct call array#AbstractArray#push on */ +} else { } { -var128 = nitc___nitc__MClass___get_mtype(var_mapit_cla, var_119); +{ /* Inline typing$AExpr$is_typed= (self,1) on */ +self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ +RET_LABEL9:(void)0; } -{ -var129 = nitc__typing___nitc__typing__TypeVisitor___is_subtype(var_v, var_ittype, var128); } -var111 = var129; -} else { -var111 = var_117; +RET_LABEL:; } -if (var111){ +/* method typing$ABreakExpr$accept_typing for (self: ABreakExpr, TypeVisitor) */ +void nitc__typing___ABreakExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : nullable AExpr */; +val* var2 /* : nullable AExpr */; +val* var_nexpr /* var nexpr: nullable AExpr */; +short int var3 /* : Bool */; +short int var4 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var6 /* : Bool */; +short int var7 /* : Bool */; +val* var8 /* : nullable MType */; +var_v = p0; { -{ /* Inline typing#TypeVisitor#mmodule (var_v) on */ -var132 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mmodule].val; /* _mmodule on */ -if (unlikely(var132 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 37); -fatal_exit(1); +{ /* Inline parser_nodes$AEscapeExpr$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__AEscapeExpr___n_expr].val; /* _n_expr on */ +var = var2; +RET_LABEL1:(void)0; } -var130 = var132; -RET_LABEL131:(void)0; } +var_nexpr = var; +if (var_nexpr == NULL) { +var3 = 0; /* is null */ +} else { +var3 = 1; /* arg is null and recv is not */ } +if (0) { +{ /* Inline kernel$Object$!= (var_nexpr,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline typing#TypeVisitor#anchor (var_v) on */ -var135 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___anchor].val; /* _anchor on */ -var133 = var135; -RET_LABEL134:(void)0; +var6 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other); /* == on */ } +var7 = !var6; +var4 = var7; +goto RET_LABEL5; +RET_LABEL5:(void)0; } -{ -var136 = nitc___nitc__MType___supertype_to(var_ittype, var130, var133, var_mapit_cla); +var3 = var4; } -var_coltype137 = var136; +if (var3){ { -{ /* Inline scope#AForGroup#variables (self) on */ -var140 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on */ -var138 = var140; -RET_LABEL139:(void)0; -} +var8 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var_nexpr); } -var_variables141 = var138; -if (var_variables141 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1227); -fatal_exit(1); } else { -{ /* Inline array#AbstractArrayRead#length (var_variables141) on */ -if (unlikely(var_variables141 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 26); -fatal_exit(1); } -var144 = var_variables141->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on */ -var142 = var144; -RET_LABEL143:(void)0; +{ +{ /* Inline typing$AExpr$is_typed= (self,1) on */ +self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ +RET_LABEL9:(void)0; } } -{ -{ /* Inline kernel#Int#!= (var142,2l) on */ -var147 = var142 == 2l; -var148 = !var147; -var145 = var148; -goto RET_LABEL146; -RET_LABEL146:(void)0; +RET_LABEL:; } +/* method typing$AReturnExpr$accept_typing for (self: AReturnExpr, TypeVisitor) */ +void nitc__typing___AReturnExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : nullable AExpr */; +val* var2 /* : nullable AExpr */; +val* var_nexpr /* var nexpr: nullable AExpr */; +val* var3 /* : nullable MPropDef */; +val* var5 /* : nullable MPropDef */; +val* var_mpropdef /* var mpropdef: nullable MPropDef */; +short int var6 /* : Bool */; +int cltype; +int idtype; +val* var7 /* : nullable MSignature */; +val* var9 /* : nullable MSignature */; +val* var10 /* : nullable MType */; +val* var12 /* : nullable MType */; +val* var_ret_type /* var ret_type: nullable Object */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +val* var16 /* : nullable MType */; +val* var18 /* : nullable MType */; +short int var19 /* : Bool */; +short int var20 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var22 /* : Bool */; +short int var23 /* : Bool */; +short int var24 /* : Bool */; +short int var25 /* : Bool */; +short int var27 /* : Bool */; +short int var28 /* : Bool */; +val* var29 /* : nullable MType */; +val* var30 /* : nullable MType */; +static val* varonce; +val* var31 /* : String */; +char* var32 /* : CString */; +val* var33 /* : String */; +val* var34 /* : nullable Int */; +val* var35 /* : nullable Int */; +val* var36 /* : nullable Bool */; +val* var37 /* : nullable Bool */; +short int var38 /* : Bool */; +short int var39 /* : Bool */; +short int var41 /* : Bool */; +short int var42 /* : Bool */; +static val* varonce43; +val* var44 /* : String */; +char* var45 /* : CString */; +val* var46 /* : String */; +val* var47 /* : nullable Int */; +val* var48 /* : nullable Int */; +val* var49 /* : nullable Bool */; +val* var50 /* : nullable Bool */; +var_v = p0; +{ +{ /* Inline parser_nodes$AEscapeExpr$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__AEscapeExpr___n_expr].val; /* _n_expr on */ +var = var2; +RET_LABEL1:(void)0; } -if (var145){ -if (likely(varonce149!=NULL)) { -var150 = varonce149; -} else { -var151 = "Type Error: `for` expects two variables when using `MapIterator`."; -var152 = core__flat___NativeString___to_s_full(var151, 65l, 65l); -var150 = var152; -varonce149 = var150; } +var_nexpr = var; { -nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var150); /* Direct call typing#TypeVisitor#error on */ +{ /* Inline typing$TypeVisitor$mpropdef (var_v) on */ +var5 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mpropdef].val; /* _mpropdef on */ +var3 = var5; +RET_LABEL4:(void)0; } +} +var_mpropdef = var3; +/* isa MMethodDef */ +cltype = type_nitc__MMethodDef.color; +idtype = type_nitc__MMethodDef.id; +if(var_mpropdef == NULL) { +var6 = 0; } else { -if (var_variables141 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1230); -fatal_exit(1); +if(cltype >= var_mpropdef->type->table_size) { +var6 = 0; } else { -var153 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_variables141, 0l); +var6 = var_mpropdef->type->type_table[cltype] == idtype; } -{ -var154 = ((val*(*)(val* self))(var_coltype137->class->vft[COLOR_nitc__model__MClassType__arguments]))(var_coltype137); /* arguments on */ } +if (var6){ { -var155 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var154, 0l); +{ /* Inline model$MMethodDef$msignature (var_mpropdef) on */ +var9 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on */ +var7 = var9; +RET_LABEL8:(void)0; } -{ -{ /* Inline typing#Variable#declared_type= (var153,var155) on */ -var153->attrs[COLOR_nitc__typing__Variable___declared_type].val = var155; /* _declared_type on */ -RET_LABEL156:(void)0; } +if (var7 == NULL) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -if (var_variables141 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1231); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1082); fatal_exit(1); } else { -var157 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_variables141, 1l); -} -{ -var158 = ((val*(*)(val* self))(var_coltype137->class->vft[COLOR_nitc__model__MClassType__arguments]))(var_coltype137); /* arguments on */ -} -{ -var159 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var158, 1l); -} -{ -{ /* Inline typing#Variable#declared_type= (var157,var159) on */ -var157->attrs[COLOR_nitc__typing__Variable___declared_type].val = var159; /* _declared_type on */ -RET_LABEL160:(void)0; +{ /* Inline model$MSignature$return_mtype (var7) on */ +if (unlikely(var7 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1891); +fatal_exit(1); } +var12 = var7->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on */ +var10 = var12; +RET_LABEL11:(void)0; } -var_is_map = 1; -} else { } -var162 = !var_is_col; -var_163 = var162; -if (var162){ -var164 = !var_is_map; -var161 = var164; +var_ret_type = var10; } else { -var161 = var_163; -} -if (var161){ -if (likely(varonce165!=NULL)) { -var166 = varonce165; +/* isa MAttributeDef */ +cltype14 = type_nitc__MAttributeDef.color; +idtype15 = type_nitc__MAttributeDef.id; +if(var_mpropdef == NULL) { +var13 = 0; } else { -var167 = "Type Error: `for` expects the method `iterator` to return an `Iterator` or `MapIterator` type."; -var168 = core__flat___NativeString___to_s_full(var167, 94l, 94l); -var166 = var168; -varonce165 = var166; -} -{ -nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var166); /* Direct call typing#TypeVisitor#error on */ -} -goto RET_LABEL; +if(cltype14 >= var_mpropdef->type->table_size) { +var13 = 0; } else { +var13 = var_mpropdef->type->type_table[cltype14] == idtype15; } -{ -var169 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on */ } -if (var169){ +if (var13){ { -var170 = nitc__typing___nitc__typing__TypeVisitor___anchor_to(var_v, var_mtype); -} -var_mtype = var170; -} else { +{ /* Inline model$MAttributeDef$static_mtype (var_mpropdef) on */ +var18 = var_mpropdef->attrs[COLOR_nitc__model__MAttributeDef___static_mtype].val; /* _static_mtype on */ +var16 = var18; +RET_LABEL17:(void)0; } -{ -var171 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__undecorate]))(var_mtype); /* undecorate on */ } -var_mtype = var171; -/* isa MClassType */ -cltype173 = type_nitc__MClassType.color; -idtype174 = type_nitc__MClassType.id; -if(cltype173 >= var_mtype->type->table_size) { -var172 = 0; +var_ret_type = var16; } else { -var172 = var_mtype->type->type_table[cltype173] == idtype174; +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -if (unlikely(!var172)) { -var_class_name = var_mtype == NULL ? "null" : var_mtype->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1245); +PRINT_ERROR("Runtime error: %s", "Aborted"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1086); fatal_exit(1); } -{ -{ /* Inline typing#AForGroup#coltype= (self,var_mtype) on */ -self->attrs[COLOR_nitc__typing__AForGroup___coltype].val = var_mtype; /* _coltype on */ -RET_LABEL175:(void)0; -} -} -if (likely(varonce176!=NULL)) { -var177 = varonce176; -} else { -var178 = "is_ok"; -var179 = core__flat___NativeString___to_s_full(var178, 5l, 5l); -var177 = var179; -varonce176 = var177; -} -{ -var180 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_ittype, var177, 0); } -var_ikdef = var180; -if (var_ikdef == NULL) { -var181 = 1; /* is null */ +if (var_nexpr == NULL) { +var19 = 0; /* is null */ } else { -var181 = 0; /* arg is null but recv is not */ +var19 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_ikdef,((val*)NULL)) on */ +{ /* Inline kernel$Object$!= (var_nexpr,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_ikdef,var_other) on */ -var186 = var_ikdef == var_other; -var184 = var186; -goto RET_LABEL185; -RET_LABEL185:(void)0; -} +var22 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other); /* == on */ } -var182 = var184; -goto RET_LABEL183; -RET_LABEL183:(void)0; +var23 = !var22; +var20 = var23; +goto RET_LABEL21; +RET_LABEL21:(void)0; } -var181 = var182; +var19 = var20; } -if (var181){ -if (unlikely(varonce187==NULL)) { -var188 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String); -if (likely(varonce189!=NULL)) { -var190 = varonce189; +if (var19){ +if (var_ret_type == NULL) { +var24 = 0; /* is null */ } else { -var191 = "Type Error: `for` expects a method `is_ok` in type `"; -var192 = core__flat___NativeString___to_s_full(var191, 52l, 52l); -var190 = var192; -varonce189 = var190; +var24 = 1; /* arg is null and recv is not */ } -((struct instance_core__NativeArray*)var188)->values[0]=var190; -if (likely(varonce193!=NULL)) { -var194 = varonce193; -} else { -var195 = "`."; -var196 = core__flat___NativeString___to_s_full(var195, 2l, 2l); -var194 = var196; -varonce193 = var194; +if (0) { +{ /* Inline kernel$Object$!= (var_ret_type,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var27 = ((short int(*)(val* self, val* p0))(var_ret_type->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret_type, var_other); /* == on */ } -((struct instance_core__NativeArray*)var188)->values[2]=var194; -} else { -var188 = varonce187; -varonce187 = NULL; +var28 = !var27; +var25 = var28; +goto RET_LABEL26; +RET_LABEL26:(void)0; } -{ -var197 = ((val*(*)(val* self))(var_ittype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ittype); /* to_s on */ +var24 = var25; } -((struct instance_core__NativeArray*)var188)->values[1]=var197; +if (var24){ { -var198 = ((val*(*)(val* self))(var188->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var188); /* native_to_s on */ +var29 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var_nexpr, var_ret_type); } -varonce187 = var188; +} else { { -nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var198); /* Direct call typing#TypeVisitor#error on */ +var30 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var_nexpr); } -goto RET_LABEL; +if (likely(varonce!=NULL)) { +var31 = varonce; } else { +var32 = "Error: `return` with value in a procedure."; +var34 = (val*)(42l<<2|1); +var35 = (val*)(42l<<2|1); +var36 = (val*)((long)(0)<<2|3); +var37 = (val*)((long)(0)<<2|3); +var33 = core__flat___CString___to_s_unsafe(var32, var34, var35, var36, var37); +var31 = var33; +varonce = var31; } { -{ /* Inline typing#AForGroup#method_is_ok= (self,var_ikdef) on */ -self->attrs[COLOR_nitc__typing__AForGroup___method_is_ok].val = var_ikdef; /* _method_is_ok on */ -RET_LABEL199:(void)0; +nitc__typing___nitc__typing__TypeVisitor___error(var_v, var_nexpr, var31); /* Direct call typing$TypeVisitor$error on */ } +goto RET_LABEL; } -if (likely(varonce200!=NULL)) { -var201 = varonce200; } else { -var202 = "item"; -var203 = core__flat___NativeString___to_s_full(var202, 4l, 4l); -var201 = var203; -varonce200 = var201; -} -{ -var204 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_ittype, var201, 0); -} -var_itemdef = var204; -if (var_itemdef == NULL) { -var205 = 1; /* is null */ +if (var_ret_type == NULL) { +var38 = 0; /* is null */ } else { -var205 = 0; /* arg is null but recv is not */ +var38 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_itemdef,((val*)NULL)) on */ +{ /* Inline kernel$Object$!= (var_ret_type,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_itemdef,var_other) on */ -var210 = var_itemdef == var_other; -var208 = var210; -goto RET_LABEL209; -RET_LABEL209:(void)0; -} -} -var206 = var208; -goto RET_LABEL207; -RET_LABEL207:(void)0; -} -var205 = var206; +var41 = ((short int(*)(val* self, val* p0))(var_ret_type->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret_type, var_other); /* == on */ } -if (var205){ -if (unlikely(varonce211==NULL)) { -var212 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String); -if (likely(varonce213!=NULL)) { -var214 = varonce213; -} else { -var215 = "Type Error: `for` expects a method `item` in type `"; -var216 = core__flat___NativeString___to_s_full(var215, 51l, 51l); -var214 = var216; -varonce213 = var214; +var42 = !var41; +var39 = var42; +goto RET_LABEL40; +RET_LABEL40:(void)0; } -((struct instance_core__NativeArray*)var212)->values[0]=var214; -if (likely(varonce217!=NULL)) { -var218 = varonce217; -} else { -var219 = "`."; -var220 = core__flat___NativeString___to_s_full(var219, 2l, 2l); -var218 = var220; -varonce217 = var218; +var38 = var39; } -((struct instance_core__NativeArray*)var212)->values[2]=var218; +if (var38){ +if (likely(varonce43!=NULL)) { +var44 = varonce43; } else { -var212 = varonce211; -varonce211 = NULL; -} -{ -var221 = ((val*(*)(val* self))(var_ittype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ittype); /* to_s on */ -} -((struct instance_core__NativeArray*)var212)->values[1]=var221; -{ -var222 = ((val*(*)(val* self))(var212->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var212); /* native_to_s on */ +var45 = "Error: `return` without value in a function."; +var47 = (val*)(44l<<2|1); +var48 = (val*)(44l<<2|1); +var49 = (val*)((long)(0)<<2|3); +var50 = (val*)((long)(0)<<2|3); +var46 = core__flat___CString___to_s_unsafe(var45, var47, var48, var49, var50); +var44 = var46; +varonce43 = var44; } -varonce211 = var212; { -nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var222); /* Direct call typing#TypeVisitor#error on */ +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var44); /* Direct call typing$TypeVisitor$error on */ } goto RET_LABEL; } else { } -{ -{ /* Inline typing#AForGroup#method_item= (self,var_itemdef) on */ -self->attrs[COLOR_nitc__typing__AForGroup___method_item].val = var_itemdef; /* _method_item on */ -RET_LABEL223:(void)0; -} -} -if (likely(varonce224!=NULL)) { -var225 = varonce224; -} else { -var226 = "next"; -var227 = core__flat___NativeString___to_s_full(var226, 4l, 4l); -var225 = var227; -varonce224 = var225; } { -var228 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_ittype, var225, 0); +{ /* Inline typing$AExpr$is_typed= (self,1) on */ +self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ +RET_LABEL51:(void)0; } -var_nextdef = var228; -if (var_nextdef == NULL) { -var229 = 1; /* is null */ -} else { -var229 = 0; /* arg is null but recv is not */ } -if (0) { -{ /* Inline kernel#Object#== (var_nextdef,((val*)NULL)) on */ -var_other = ((val*)NULL); -{ -{ /* Inline kernel#Object#is_same_instance (var_nextdef,var_other) on */ -var234 = var_nextdef == var_other; -var232 = var234; -goto RET_LABEL233; -RET_LABEL233:(void)0; +RET_LABEL:; } +/* method typing$AAbortExpr$accept_typing for (self: AAbortExpr, TypeVisitor) */ +void nitc__typing___AAbortExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +var_v = p0; +{ +{ /* Inline typing$AExpr$is_typed= (self,1) on */ +self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ +RET_LABEL1:(void)0; } -var230 = var232; -goto RET_LABEL231; -RET_LABEL231:(void)0; } -var229 = var230; +RET_LABEL:; } -if (var229){ -if (unlikely(varonce235==NULL)) { -var236 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String); -if (likely(varonce237!=NULL)) { -var238 = varonce237; -} else { -var239 = "Type Error: `for` expects a method `next` in type "; -var240 = core__flat___NativeString___to_s_full(var239, 50l, 50l); -var238 = var240; -varonce237 = var238; +/* method typing$AIfExpr$accept_typing for (self: AIfExpr, TypeVisitor) */ +void nitc__typing___AIfExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : nullable MType */; +val* var4 /* : nullable AExpr */; +val* var6 /* : nullable AExpr */; +val* var7 /* : nullable AExpr */; +val* var9 /* : nullable AExpr */; +short int var11 /* : Bool */; +val* var12 /* : nullable AExpr */; +val* var14 /* : nullable AExpr */; +short int var15 /* : Bool */; +short int var16 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var18 /* : Bool */; +short int var19 /* : Bool */; +short int var_ /* var : Bool */; +val* var20 /* : nullable AExpr */; +val* var22 /* : nullable AExpr */; +short int var23 /* : Bool */; +short int var24 /* : Bool */; +val* var_other26 /* var other: nullable Object */; +short int var27 /* : Bool */; +short int var29 /* : Bool */; +val* var30 /* : nullable AExpr */; +val* var32 /* : nullable AExpr */; +val* var33 /* : nullable MType */; +var_v = p0; +{ +{ /* Inline parser_nodes$AIfExpr$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -((struct instance_core__NativeArray*)var236)->values[0]=var238; -if (likely(varonce241!=NULL)) { -var242 = varonce241; -} else { -var243 = "."; -var244 = core__flat___NativeString___to_s_full(var243, 1l, 1l); -var242 = var244; -varonce241 = var242; +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1924); +fatal_exit(1); } -((struct instance_core__NativeArray*)var236)->values[2]=var242; -} else { -var236 = varonce235; -varonce235 = NULL; +var = var2; +RET_LABEL1:(void)0; } -{ -var245 = ((val*(*)(val* self))(var_ittype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ittype); /* to_s on */ } -((struct instance_core__NativeArray*)var236)->values[1]=var245; { -var246 = ((val*(*)(val* self))(var236->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var236); /* native_to_s on */ +var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var); } -varonce235 = var236; { -nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var246); /* Direct call typing#TypeVisitor#error on */ +{ /* Inline parser_nodes$AIfExpr$n_then (self) on */ +var6 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on */ +var4 = var6; +RET_LABEL5:(void)0; } -goto RET_LABEL; -} else { } { -{ /* Inline typing#AForGroup#method_next= (self,var_nextdef) on */ -self->attrs[COLOR_nitc__typing__AForGroup___method_next].val = var_nextdef; /* _method_next on */ -RET_LABEL247:(void)0; +nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var4); /* Direct call typing$TypeVisitor$visit_stmt on */ } +{ +{ /* Inline parser_nodes$AIfExpr$n_else (self) on */ +var9 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on */ +var7 = var9; +RET_LABEL8:(void)0; } -if (likely(varonce248!=NULL)) { -var249 = varonce248; -} else { -var250 = "finish"; -var251 = core__flat___NativeString___to_s_full(var250, 6l, 6l); -var249 = var251; -varonce248 = var249; } { -var252 = nitc__typing___nitc__typing__TypeVisitor___try_get_method(var_v, self, var_ittype, var249, 0); +nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var7); /* Direct call typing$TypeVisitor$visit_stmt on */ } { -{ /* Inline typing#AForGroup#method_finish= (self,var252) on */ -self->attrs[COLOR_nitc__typing__AForGroup___method_finish].val = var252; /* _method_finish on */ -RET_LABEL253:(void)0; -} +{ /* Inline typing$AExpr$is_typed= (self,1) on */ +self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ +RET_LABEL10:(void)0; } -if (var_is_map){ -if (likely(varonce254!=NULL)) { -var255 = varonce254; -} else { -var256 = "key"; -var257 = core__flat___NativeString___to_s_full(var256, 3l, 3l); -var255 = var257; -varonce254 = var255; } { -var258 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_ittype, var255, 0); +{ /* Inline parser_nodes$AIfExpr$n_then (self) on */ +var14 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on */ +var12 = var14; +RET_LABEL13:(void)0; } -var_keydef = var258; -if (var_keydef == NULL) { -var259 = 1; /* is null */ +} +if (var12 == NULL) { +var15 = 0; /* is null */ } else { -var259 = 0; /* arg is null but recv is not */ +var15 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_keydef,((val*)NULL)) on */ +{ /* Inline kernel$Object$!= (var12,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_keydef,var_other) on */ -var264 = var_keydef == var_other; -var262 = var264; -goto RET_LABEL263; -RET_LABEL263:(void)0; -} +var18 = ((short int(*)(val* self, val* p0))(var12->class->vft[COLOR_core__kernel__Object___61d_61d]))(var12, var_other); /* == on */ } -var260 = var262; -goto RET_LABEL261; -RET_LABEL261:(void)0; +var19 = !var18; +var16 = var19; +goto RET_LABEL17; +RET_LABEL17:(void)0; } -var259 = var260; +var15 = var16; } -if (var259){ -if (unlikely(varonce265==NULL)) { -var266 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String); -if (likely(varonce267!=NULL)) { -var268 = varonce267; -} else { -var269 = "Type Error: `for` expects a method `key` in type `"; -var270 = core__flat___NativeString___to_s_full(var269, 50l, 50l); -var268 = var270; -varonce267 = var268; +var_ = var15; +if (var15){ +{ +{ /* Inline parser_nodes$AIfExpr$n_else (self) on */ +var22 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on */ +var20 = var22; +RET_LABEL21:(void)0; } -((struct instance_core__NativeArray*)var266)->values[0]=var268; -if (likely(varonce271!=NULL)) { -var272 = varonce271; -} else { -var273 = "`."; -var274 = core__flat___NativeString___to_s_full(var273, 2l, 2l); -var272 = var274; -varonce271 = var272; } -((struct instance_core__NativeArray*)var266)->values[2]=var272; +if (var20 == NULL) { +var23 = 1; /* is null */ } else { -var266 = varonce265; -varonce265 = NULL; -} -{ -var275 = ((val*(*)(val* self))(var_ittype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ittype); /* to_s on */ -} -((struct instance_core__NativeArray*)var266)->values[1]=var275; -{ -var276 = ((val*(*)(val* self))(var266->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var266); /* native_to_s on */ +var23 = 0; /* arg is null but recv is not */ } -varonce265 = var266; +if (0) { +{ /* Inline kernel$Object$== (var20,((val*)NULL)) on */ +var_other26 = ((val*)NULL); { -nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var276); /* Direct call typing#TypeVisitor#error on */ +{ /* Inline kernel$Object$is_same_instance (var20,var_other26) on */ +var29 = var20 == var_other26; +var27 = var29; +goto RET_LABEL28; +RET_LABEL28:(void)0; } -goto RET_LABEL; -} else { } -{ -{ /* Inline typing#AForGroup#method_key= (self,var_keydef) on */ -self->attrs[COLOR_nitc__typing__AForGroup___method_key].val = var_keydef; /* _method_key on */ -RET_LABEL277:(void)0; +var24 = var27; +goto RET_LABEL25; +RET_LABEL25:(void)0; } +var23 = var24; } +var11 = var23; } else { +var11 = var_; } +if (var11){ { -{ /* Inline scope#AForGroup#variables (self) on */ -var281 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on */ -var279 = var281; -RET_LABEL280:(void)0; +{ /* Inline parser_nodes$AIfExpr$n_then (self) on */ +var32 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on */ +var30 = var32; +RET_LABEL31:(void)0; } } -if (var279 == NULL) { +if (var30 == NULL) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1280); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1122); fatal_exit(1); } else { -{ /* Inline array#AbstractArrayRead#length (var279) on */ -if (unlikely(var279 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 26); -fatal_exit(1); +var33 = ((val*(*)(val* self))(var30->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var30); /* mtype on */ } -var284 = var279->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on */ -var282 = var284; -RET_LABEL283:(void)0; +{ +{ /* Inline typing$AExpr$mtype= (self,var33) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var33; /* _mtype on */ +RET_LABEL34:(void)0; } } -{ -{ /* Inline kernel#Int#== (var282,1l) on */ -var287 = var282 == 1l; -var285 = var287; -goto RET_LABEL286; -RET_LABEL286:(void)0; +} else { } +RET_LABEL:; } -var_288 = var285; -if (var285){ +/* method typing$AIfexprExpr$accept_typing for (self: AIfexprExpr, TypeVisitor) */ +void nitc__typing___AIfexprExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : nullable MType */; +val* var4 /* : AExpr */; +val* var6 /* : AExpr */; +val* var7 /* : nullable MType */; +val* var_t1 /* var t1: nullable MType */; +val* var8 /* : AExpr */; +val* var10 /* : AExpr */; +val* var11 /* : nullable MType */; +val* var_t2 /* var t2: nullable MType */; +short int var12 /* : Bool */; +short int var13 /* : Bool */; +short int var14 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var16 /* : Bool */; +short int var18 /* : Bool */; +short int var_ /* var : Bool */; +short int var19 /* : Bool */; +short int var20 /* : Bool */; +short int var22 /* : Bool */; +short int var24 /* : Bool */; +val* var25 /* : Array[MType] */; +val* var_26 /* var : Array[MType] */; +val* var27 /* : nullable MType */; +val* var_t /* var t: nullable MType */; +short int var28 /* : Bool */; +short int var29 /* : Bool */; +short int var31 /* : Bool */; +short int var33 /* : Bool */; +val* var34 /* : NativeArray[String] */; +static val* varonce; +static val* varonce35; +val* var36 /* : String */; +char* var37 /* : CString */; +val* var38 /* : String */; +val* var39 /* : nullable Int */; +val* var40 /* : nullable Int */; +val* var41 /* : nullable Bool */; +val* var42 /* : nullable Bool */; +static val* varonce43; +val* var44 /* : String */; +char* var45 /* : CString */; +val* var46 /* : String */; +val* var47 /* : nullable Int */; +val* var48 /* : nullable Int */; +val* var49 /* : nullable Bool */; +val* var50 /* : nullable Bool */; +static val* varonce51; +val* var52 /* : String */; +char* var53 /* : CString */; +val* var54 /* : String */; +val* var55 /* : nullable Int */; +val* var56 /* : nullable Int */; +val* var57 /* : nullable Bool */; +val* var58 /* : nullable Bool */; +val* var59 /* : String */; +val* var60 /* : String */; +val* var61 /* : String */; +var_v = p0; { -{ /* Inline parser_nodes#AForGroup#n_expr (self) on */ -var291 = self->attrs[COLOR_nitc__parser_nodes__AForGroup___n_expr].val; /* _n_expr on */ -if (unlikely(var291 == NULL)) { +{ /* Inline parser_nodes$AIfexprExpr$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1943); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1947); fatal_exit(1); } -var289 = var291; -RET_LABEL290:(void)0; -} -} -/* isa ARangeExpr */ -cltype293 = type_nitc__ARangeExpr.color; -idtype294 = type_nitc__ARangeExpr.id; -if(cltype293 >= var289->type->table_size) { -var292 = 0; -} else { -var292 = var289->type->type_table[cltype293] == idtype294; +var = var2; +RET_LABEL1:(void)0; } -var278 = var292; -} else { -var278 = var_288; } -if (var278){ { -{ /* Inline scope#AForGroup#variables (self) on */ -var297 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on */ -var295 = var297; -RET_LABEL296:(void)0; +var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var); } +{ +{ /* Inline parser_nodes$AIfexprExpr$n_then (self) on */ +var6 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_then].val; /* _n_then on */ +if (unlikely(var6 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -if (var295 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1281); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1953); fatal_exit(1); -} else { -var298 = core___core__SequenceRead___Collection__first(var295); } -var_variable = var298; -{ -{ /* Inline typing#Variable#declared_type (var_variable) on */ -var301 = var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val; /* _declared_type on */ -var299 = var301; -RET_LABEL300:(void)0; +var4 = var6; +RET_LABEL5:(void)0; } } -if (unlikely(var299 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1282); -fatal_exit(1); +{ +var7 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var4); } -var_vtype = var299; +var_t1 = var7; { -{ /* Inline parser_nodes#AForGroup#n_expr (self) on */ -var304 = self->attrs[COLOR_nitc__parser_nodes__AForGroup___n_expr].val; /* _n_expr on */ -if (unlikely(var304 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1943); +{ /* Inline parser_nodes$AIfexprExpr$n_else (self) on */ +var10 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_else].val; /* _n_else on */ +if (unlikely(var10 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1959); fatal_exit(1); } -var302 = var304; -RET_LABEL303:(void)0; +var8 = var10; +RET_LABEL9:(void)0; } } -/* isa AOrangeExpr */ -cltype306 = type_nitc__AOrangeExpr.color; -idtype307 = type_nitc__AOrangeExpr.id; -if(cltype306 >= var302->type->table_size) { -var305 = 0; -} else { -var305 = var302->type->type_table[cltype306] == idtype307; +{ +var11 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var8); } -if (var305){ -if (likely(varonce308!=NULL)) { -var309 = varonce308; +var_t2 = var11; +if (var_t1 == NULL) { +var13 = 1; /* is null */ } else { -var310 = "<"; -var311 = core__flat___NativeString___to_s_full(var310, 1l, 1l); -var309 = var311; -varonce308 = var309; +var13 = 0; /* arg is null but recv is not */ } +if (0) { +{ /* Inline kernel$Object$== (var_t1,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var312 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_vtype, var309, 0); +{ /* Inline kernel$Object$is_same_instance (var_t1,var_other) on */ +var18 = var_t1 == var_other; +var16 = var18; +goto RET_LABEL17; +RET_LABEL17:(void)0; } -{ -{ /* Inline typing#AForGroup#method_lt= (self,var312) on */ -self->attrs[COLOR_nitc__typing__AForGroup___method_lt].val = var312; /* _method_lt on */ -RET_LABEL313:(void)0; } +var14 = var16; +goto RET_LABEL15; +RET_LABEL15:(void)0; +} +var13 = var14; } +var_ = var13; +if (var13){ +var12 = var_; } else { -if (likely(varonce314!=NULL)) { -var315 = varonce314; +if (var_t2 == NULL) { +var19 = 1; /* is null */ } else { -var316 = "<="; -var317 = core__flat___NativeString___to_s_full(var316, 2l, 2l); -var315 = var317; -varonce314 = var315; +var19 = 0; /* arg is null but recv is not */ } +if (0) { +{ /* Inline kernel$Object$== (var_t2,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var318 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_vtype, var315, 0); +{ /* Inline kernel$Object$is_same_instance (var_t2,var_other) on */ +var24 = var_t2 == var_other; +var22 = var24; +goto RET_LABEL23; +RET_LABEL23:(void)0; } -{ -{ /* Inline typing#AForGroup#method_lt= (self,var318) on */ -self->attrs[COLOR_nitc__typing__AForGroup___method_lt].val = var318; /* _method_lt on */ -RET_LABEL319:(void)0; } +var20 = var22; +goto RET_LABEL21; +RET_LABEL21:(void)0; +} +var19 = var20; } +var12 = var19; } -if (likely(varonce320!=NULL)) { -var321 = varonce320; +if (var12){ +goto RET_LABEL; } else { -var322 = "successor"; -var323 = core__flat___NativeString___to_s_full(var322, 9l, 9l); -var321 = var323; -varonce320 = var321; } +var25 = NEW_core__Array(&type_core__Array__nitc__MType); { -var324 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_vtype, var321, 0); +core___core__Array___with_capacity(var25, 2l); /* Direct call array$Array$with_capacity on */ } +var_26 = var25; { -{ /* Inline typing#AForGroup#method_successor= (self,var324) on */ -self->attrs[COLOR_nitc__typing__AForGroup___method_successor].val = var324; /* _method_successor on */ -RET_LABEL325:(void)0; -} -} -} else { -} -RET_LABEL:; -} -/* method typing#AWithExpr#method_start for (self: AWithExpr): nullable CallSite */ -val* nitc__typing___AWithExpr___method_start(val* self) { -val* var /* : nullable CallSite */; -val* var1 /* : nullable CallSite */; -var1 = self->attrs[COLOR_nitc__typing__AWithExpr___method_start].val; /* _method_start on */ -var = var1; -RET_LABEL:; -return var; -} -/* method typing#AWithExpr#method_start= for (self: AWithExpr, nullable CallSite) */ -void nitc__typing___AWithExpr___method_start_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__AWithExpr___method_start].val = p0; /* _method_start on */ -RET_LABEL:; -} -/* method typing#AWithExpr#method_finish for (self: AWithExpr): nullable CallSite */ -val* nitc__typing___AWithExpr___method_finish(val* self) { -val* var /* : nullable CallSite */; -val* var1 /* : nullable CallSite */; -var1 = self->attrs[COLOR_nitc__typing__AWithExpr___method_finish].val; /* _method_finish on */ -var = var1; -RET_LABEL:; -return var; -} -/* method typing#AWithExpr#method_finish= for (self: AWithExpr, nullable CallSite) */ -void nitc__typing___AWithExpr___method_finish_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__AWithExpr___method_finish].val = p0; /* _method_finish on */ -RET_LABEL:; +core___core__AbstractArray___core__abstract_collection__Sequence__push(var_26, var_t1); /* Direct call array$AbstractArray$push on */ } -/* method typing#AWithExpr#accept_typing for (self: AWithExpr, TypeVisitor) */ -void nitc__typing___AWithExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MType */; -val* var_mtype /* var mtype: nullable MType */; -short int var4 /* : Bool */; -short int var5 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var7 /* : Bool */; -short int var9 /* : Bool */; -static val* varonce; -val* var10 /* : String */; -char* var11 /* : NativeString */; -val* var12 /* : String */; -val* var13 /* : AExpr */; -val* var15 /* : AExpr */; -short int var16 /* : Bool */; -int cltype; -int idtype; -val* var17 /* : nullable CallSite */; -static val* varonce19; -val* var20 /* : String */; -char* var21 /* : NativeString */; -val* var22 /* : String */; -val* var23 /* : AExpr */; -val* var25 /* : AExpr */; -short int var26 /* : Bool */; -int cltype27; -int idtype28; -val* var29 /* : nullable CallSite */; -val* var31 /* : nullable AExpr */; -val* var33 /* : nullable AExpr */; -val* var34 /* : nullable AExpr */; -val* var36 /* : nullable AExpr */; -val* var37 /* : nullable MType */; -var_v = p0; { -{ /* Inline parser_nodes#AWithExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1955); -fatal_exit(1); -} -var = var2; -RET_LABEL1:(void)0; -} +core___core__AbstractArray___core__abstract_collection__Sequence__push(var_26, var_t2); /* Direct call array$AbstractArray$push on */ } { -var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var); +var27 = nitc__typing___nitc__typing__TypeVisitor___merge_types(var_v, self, var_26); } -var_mtype = var3; -if (var_mtype == NULL) { -var4 = 1; /* is null */ +var_t = var27; +if (var_t == NULL) { +var28 = 1; /* is null */ } else { -var4 = 0; /* arg is null but recv is not */ +var28 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_t,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on */ -var9 = var_mtype == var_other; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; -} +{ /* Inline kernel$Object$is_same_instance (var_t,var_other) on */ +var33 = var_t == var_other; +var31 = var33; +goto RET_LABEL32; +RET_LABEL32:(void)0; } -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; } -var4 = var5; +var29 = var31; +goto RET_LABEL30; +RET_LABEL30:(void)0; } -if (var4){ -goto RET_LABEL; -} else { +var28 = var29; } -if (likely(varonce!=NULL)) { -var10 = varonce; +if (var28){ +if (unlikely(varonce==NULL)) { +var34 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String); +if (likely(varonce35!=NULL)) { +var36 = varonce35; } else { -var11 = "start"; -var12 = core__flat___NativeString___to_s_full(var11, 5l, 5l); -var10 = var12; -varonce = var10; -} -{ -{ /* Inline parser_nodes#AWithExpr#n_expr (self) on */ -var15 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var15 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1955); -fatal_exit(1); -} -var13 = var15; -RET_LABEL14:(void)0; +var37 = "Type Error: ambiguous type `"; +var39 = (val*)(28l<<2|1); +var40 = (val*)(28l<<2|1); +var41 = (val*)((long)(0)<<2|3); +var42 = (val*)((long)(0)<<2|3); +var38 = core__flat___CString___to_s_unsafe(var37, var39, var40, var41, var42); +var36 = var38; +varonce35 = var36; } +((struct instance_core__NativeArray*)var34)->values[0]=var36; +if (likely(varonce43!=NULL)) { +var44 = varonce43; +} else { +var45 = "` vs `"; +var47 = (val*)(6l<<2|1); +var48 = (val*)(6l<<2|1); +var49 = (val*)((long)(0)<<2|3); +var50 = (val*)((long)(0)<<2|3); +var46 = core__flat___CString___to_s_unsafe(var45, var47, var48, var49, var50); +var44 = var46; +varonce43 = var44; } -/* isa ASelfExpr */ -cltype = type_nitc__ASelfExpr.color; -idtype = type_nitc__ASelfExpr.id; -if(cltype >= var13->type->table_size) { -var16 = 0; +((struct instance_core__NativeArray*)var34)->values[2]=var44; +if (likely(varonce51!=NULL)) { +var52 = varonce51; } else { -var16 = var13->type->type_table[cltype] == idtype; +var53 = "`."; +var55 = (val*)(2l<<2|1); +var56 = (val*)(2l<<2|1); +var57 = (val*)((long)(0)<<2|3); +var58 = (val*)((long)(0)<<2|3); +var54 = core__flat___CString___to_s_unsafe(var53, var55, var56, var57, var58); +var52 = var54; +varonce51 = var52; } -{ -var17 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_mtype, var10, var16); +((struct instance_core__NativeArray*)var34)->values[4]=var52; +} else { +var34 = varonce; +varonce = NULL; } { -{ /* Inline typing#AWithExpr#method_start= (self,var17) on */ -self->attrs[COLOR_nitc__typing__AWithExpr___method_start].val = var17; /* _method_start on */ -RET_LABEL18:(void)0; -} -} -if (likely(varonce19!=NULL)) { -var20 = varonce19; -} else { -var21 = "finish"; -var22 = core__flat___NativeString___to_s_full(var21, 6l, 6l); -var20 = var22; -varonce19 = var20; +var59 = ((val*(*)(val* self))(var_t1->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_t1); /* to_s on */ } +((struct instance_core__NativeArray*)var34)->values[1]=var59; { -{ /* Inline parser_nodes#AWithExpr#n_expr (self) on */ -var25 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var25 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1955); -fatal_exit(1); +var60 = ((val*(*)(val* self))(var_t2->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_t2); /* to_s on */ } -var23 = var25; -RET_LABEL24:(void)0; +((struct instance_core__NativeArray*)var34)->values[3]=var60; +{ +var61 = ((val*(*)(val* self))(var34->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var34); /* native_to_s on */ } +varonce = var34; +{ +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var61); /* Direct call typing$TypeVisitor$error on */ } -/* isa ASelfExpr */ -cltype27 = type_nitc__ASelfExpr.color; -idtype28 = type_nitc__ASelfExpr.id; -if(cltype27 >= var23->type->table_size) { -var26 = 0; } else { -var26 = var23->type->type_table[cltype27] == idtype28; } { -var29 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_mtype, var20, var26); +{ /* Inline typing$AExpr$mtype= (self,var_t) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_t; /* _mtype on */ +RET_LABEL62:(void)0; } -{ -{ /* Inline typing#AWithExpr#method_finish= (self,var29) on */ -self->attrs[COLOR_nitc__typing__AWithExpr___method_finish].val = var29; /* _method_finish on */ -RET_LABEL30:(void)0; } +RET_LABEL:; } +/* method typing$ADoExpr$accept_typing for (self: ADoExpr, TypeVisitor) */ +void nitc__typing___ADoExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : nullable AExpr */; +val* var2 /* : nullable AExpr */; +val* var3 /* : nullable AExpr */; +val* var5 /* : nullable AExpr */; +var_v = p0; { -{ /* Inline parser_nodes#AWithExpr#n_block (self) on */ -var33 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_block].val; /* _n_block on */ -var31 = var33; -RET_LABEL32:(void)0; +{ /* Inline parser_nodes$ADoExpr$n_block (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__ADoExpr___n_block].val; /* _n_block on */ +var = var2; +RET_LABEL1:(void)0; } } { -nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var31); /* Direct call typing#TypeVisitor#visit_stmt on */ +nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var); /* Direct call typing$TypeVisitor$visit_stmt on */ } { -{ /* Inline parser_nodes#AWithExpr#n_block (self) on */ -var36 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_block].val; /* _n_block on */ -var34 = var36; -RET_LABEL35:(void)0; -} +{ /* Inline parser_nodes$ADoExpr$n_catch (self) on */ +var5 = self->attrs[COLOR_nitc__parser_nodes__ADoExpr___n_catch].val; /* _n_catch on */ +var3 = var5; +RET_LABEL4:(void)0; } -if (var34 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1308); -fatal_exit(1); -} else { -var37 = ((val*(*)(val* self))(var34->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var34); /* mtype on */ } { -{ /* Inline typing#AExpr#mtype= (self,var37) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var37; /* _mtype on */ -RET_LABEL38:(void)0; -} +nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var3); /* Direct call typing$TypeVisitor$visit_stmt on */ } { -{ /* Inline typing#AExpr#is_typed= (self,1) on */ -self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ -RET_LABEL39:(void)0; +{ /* Inline typing$AExpr$is_typed= (self,1) on */ +self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ +RET_LABEL6:(void)0; } } RET_LABEL:; } -/* method typing#AAssertExpr#accept_typing for (self: AAssertExpr, TypeVisitor) */ -void nitc__typing___AAssertExpr___AExpr__accept_typing(val* self, val* p0) { +/* method typing$AWhileExpr$accept_typing for (self: AWhileExpr, TypeVisitor) */ +void nitc__typing___AWhileExpr___AExpr__accept_typing(val* self, val* p0) { val* var_v /* var v: TypeVisitor */; val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MType */; -val* var4 /* : nullable AExpr */; -val* var6 /* : nullable AExpr */; +val* var3 /* : AExpr */; +val* var4 /* : nullable MType */; +val* var5 /* : nullable AExpr */; +val* var7 /* : nullable AExpr */; var_v = p0; { -{ /* Inline parser_nodes#AAssertExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { +{ /* Inline typing$TypeVisitor$has_loop= (var_v,1) on */ +var_v->attrs[COLOR_nitc__typing__TypeVisitor___has_loop].s = 1; /* _has_loop on */ +RET_LABEL1:(void)0; +} +} +{ +{ /* Inline parser_nodes$AWhileExpr$n_expr (self) on */ +var3 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var3 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1975); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1971); fatal_exit(1); } -var = var2; -RET_LABEL1:(void)0; +var = var3; +RET_LABEL2:(void)0; } } { -var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var); +var4 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var); } { -{ /* Inline parser_nodes#AAssertExpr#n_else (self) on */ -var6 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_else].val; /* _n_else on */ -var4 = var6; -RET_LABEL5:(void)0; +{ /* Inline parser_nodes$AWhileExpr$n_block (self) on */ +var7 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_block].val; /* _n_block on */ +var5 = var7; +RET_LABEL6:(void)0; } } { -nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var4); /* Direct call typing#TypeVisitor#visit_stmt on */ +nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var5); /* Direct call typing$TypeVisitor$visit_stmt on */ } { -{ /* Inline typing#AExpr#is_typed= (self,1) on */ -self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ -RET_LABEL7:(void)0; +{ /* Inline typing$AExpr$is_typed= (self,1) on */ +self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ +RET_LABEL8:(void)0; } } RET_LABEL:; } -/* method typing#AOrExpr#accept_typing for (self: AOrExpr, TypeVisitor) */ -void nitc__typing___AOrExpr___AExpr__accept_typing(val* self, val* p0) { +/* method typing$ALoopExpr$accept_typing for (self: ALoopExpr, TypeVisitor) */ +void nitc__typing___ALoopExpr___AExpr__accept_typing(val* self, val* p0) { val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MType */; -val* var4 /* : AExpr */; -val* var6 /* : AExpr */; -val* var7 /* : nullable MType */; -val* var8 /* : nullable MType */; +val* var /* : nullable AExpr */; +val* var3 /* : nullable AExpr */; var_v = p0; { -{ /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2050); -fatal_exit(1); -} -var = var2; +{ /* Inline typing$TypeVisitor$has_loop= (var_v,1) on */ +var_v->attrs[COLOR_nitc__typing__TypeVisitor___has_loop].s = 1; /* _has_loop on */ RET_LABEL1:(void)0; } } { -var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var); +{ /* Inline parser_nodes$ALoopExpr$n_block (self) on */ +var3 = self->attrs[COLOR_nitc__parser_nodes__ALoopExpr___n_block].val; /* _n_block on */ +var = var3; +RET_LABEL2:(void)0; +} } { -{ /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on */ -var6 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on */ -if (unlikely(var6 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2056); -fatal_exit(1); +nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var); /* Direct call typing$TypeVisitor$visit_stmt on */ +} +{ +{ /* Inline typing$AExpr$is_typed= (self,1) on */ +self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ +RET_LABEL4:(void)0; } -var4 = var6; -RET_LABEL5:(void)0; } +RET_LABEL:; } +/* method typing$AForExpr$accept_typing for (self: AForExpr, TypeVisitor) */ +void nitc__typing___AForExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : ANodes[AForGroup] */; +val* var3 /* : ANodes[AForGroup] */; +val* var_ /* var : ANodes[AForGroup] */; +val* var4 /* : Iterator[ANode] */; +val* var_5 /* var : Iterator[AForGroup] */; +short int var6 /* : Bool */; +val* var7 /* : nullable Object */; +val* var_g /* var g: AForGroup */; +val* var8 /* : AExpr */; +val* var10 /* : AExpr */; +val* var11 /* : nullable MType */; +val* var_mtype /* var mtype: nullable MType */; +short int var12 /* : Bool */; +short int var13 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var15 /* : Bool */; +short int var17 /* : Bool */; +short int var18 /* : Bool */; +short int var20 /* : Bool */; +val* var22 /* : nullable AExpr */; +val* var24 /* : nullable AExpr */; +val* var25 /* : nullable AExpr */; +val* var27 /* : nullable AExpr */; +val* var28 /* : nullable MType */; +var_v = p0; { -var7 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var4); +{ /* Inline typing$TypeVisitor$has_loop= (var_v,1) on */ +var_v->attrs[COLOR_nitc__typing__TypeVisitor___has_loop].s = 1; /* _has_loop on */ +RET_LABEL1:(void)0; +} } { -var8 = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self); +{ /* Inline parser_nodes$AForExpr$n_groups (self) on */ +var3 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_groups].val; /* _n_groups on */ +if (unlikely(var3 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2001); +fatal_exit(1); } +var = var3; +RET_LABEL2:(void)0; +} +} +var_ = var; { -{ /* Inline typing#AExpr#mtype= (self,var8) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var8; /* _mtype on */ -RET_LABEL9:(void)0; +var4 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_); } +var_5 = var4; +for(;;) { +{ +var6 = ((short int(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_5); /* is_ok on */ } -RET_LABEL:; +if (var6){ +} else { +goto BREAK_label; } -/* method typing#AImpliesExpr#accept_typing for (self: AImpliesExpr, TypeVisitor) */ -void nitc__typing___AImpliesExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MType */; -val* var4 /* : AExpr */; -val* var6 /* : AExpr */; -val* var7 /* : nullable MType */; -val* var8 /* : nullable MType */; -var_v = p0; { -{ /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { +var7 = ((val*(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_5); /* item on */ +} +var_g = var7; +{ +{ /* Inline parser_nodes$AForGroup$n_expr (var_g) on */ +var10 = var_g->attrs[COLOR_nitc__parser_nodes__AForGroup___n_expr].val; /* _n_expr on */ +if (unlikely(var10 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2050); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2024); fatal_exit(1); } -var = var2; -RET_LABEL1:(void)0; +var8 = var10; +RET_LABEL9:(void)0; } } { -var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var); +var11 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var8); +} +var_mtype = var11; +if (var_mtype == NULL) { +var12 = 1; /* is null */ +} else { +var12 = 0; /* arg is null but recv is not */ } +if (0) { +{ /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on */ -var6 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on */ -if (unlikely(var6 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2056); -fatal_exit(1); +{ /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on */ +var17 = var_mtype == var_other; +var15 = var17; +goto RET_LABEL16; +RET_LABEL16:(void)0; +} +} +var13 = var15; +goto RET_LABEL14; +RET_LABEL14:(void)0; +} +var12 = var13; +} +if (var12){ +goto RET_LABEL; +} else { +} +{ +nitc__typing___AForGroup___do_type_iterator(var_g, var_v, var_mtype); /* Direct call typing$AForGroup$do_type_iterator on */ +} +{ +{ /* Inline modelbuilder_base$ANode$is_broken (var_g) on */ +var20 = var_g->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s; /* _is_broken on */ +var18 = var20; +RET_LABEL19:(void)0; +} +} +if (var18){ +{ +{ /* Inline modelbuilder_base$ANode$is_broken= (self,1) on */ +self->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s = 1; /* _is_broken on */ +RET_LABEL21:(void)0; +} +} +} else { +} +{ +((void(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_5); /* next on */ } -var4 = var6; -RET_LABEL5:(void)0; } +BREAK_label: (void)0; +{ +((void(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_5); /* finish on */ } { -var7 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var4); +{ /* Inline parser_nodes$AForExpr$n_block (self) on */ +var24 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_block].val; /* _n_block on */ +var22 = var24; +RET_LABEL23:(void)0; +} } { -var8 = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self); +nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var22); /* Direct call typing$TypeVisitor$visit_stmt on */ } { -{ /* Inline typing#AExpr#mtype= (self,var8) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var8; /* _mtype on */ -RET_LABEL9:(void)0; +{ /* Inline parser_nodes$AForExpr$n_block (self) on */ +var27 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_block].val; /* _n_block on */ +var25 = var27; +RET_LABEL26:(void)0; } } -RET_LABEL:; +if (var25 == NULL) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -/* method typing#AAndExpr#accept_typing for (self: AAndExpr, TypeVisitor) */ -void nitc__typing___AAndExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MType */; -val* var4 /* : AExpr */; -val* var6 /* : AExpr */; -val* var7 /* : nullable MType */; -val* var8 /* : nullable MType */; -var_v = p0; -{ -{ /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2050); +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1189); fatal_exit(1); +} else { +var28 = ((val*(*)(val* self))(var25->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var25); /* mtype on */ } -var = var2; -RET_LABEL1:(void)0; +{ +{ /* Inline typing$AExpr$mtype= (self,var28) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var28; /* _mtype on */ +RET_LABEL29:(void)0; } } { -var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var); +{ /* Inline typing$AExpr$is_typed= (self,1) on */ +self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ +RET_LABEL30:(void)0; } -{ -{ /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on */ -var6 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on */ -if (unlikely(var6 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2056); -fatal_exit(1); } -var4 = var6; -RET_LABEL5:(void)0; +RET_LABEL:; } +/* method typing$AForGroup$coltype= for (self: AForGroup, nullable MClassType) */ +void nitc__typing___AForGroup___coltype_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AForGroup___coltype].val = p0; /* _coltype on */ +RET_LABEL:; } -{ -var7 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var4); +/* method typing$AForGroup$method_iterator for (self: AForGroup): nullable CallSite */ +val* nitc__typing___AForGroup___method_iterator(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_iterator].val; /* _method_iterator on */ +var = var1; +RET_LABEL:; +return var; } -{ -var8 = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self); +/* method typing$AForGroup$method_iterator= for (self: AForGroup, nullable CallSite) */ +void nitc__typing___AForGroup___method_iterator_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AForGroup___method_iterator].val = p0; /* _method_iterator on */ +RET_LABEL:; } -{ -{ /* Inline typing#AExpr#mtype= (self,var8) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var8; /* _mtype on */ -RET_LABEL9:(void)0; +/* method typing$AForGroup$method_is_ok for (self: AForGroup): nullable CallSite */ +val* nitc__typing___AForGroup___method_is_ok(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_is_ok].val; /* _method_is_ok on */ +var = var1; +RET_LABEL:; +return var; } +/* method typing$AForGroup$method_is_ok= for (self: AForGroup, nullable CallSite) */ +void nitc__typing___AForGroup___method_is_ok_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AForGroup___method_is_ok].val = p0; /* _method_is_ok on */ +RET_LABEL:; } +/* method typing$AForGroup$method_item for (self: AForGroup): nullable CallSite */ +val* nitc__typing___AForGroup___method_item(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_item].val; /* _method_item on */ +var = var1; RET_LABEL:; +return var; } -/* method typing#ANotExpr#accept_typing for (self: ANotExpr, TypeVisitor) */ -void nitc__typing___ANotExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MType */; -val* var4 /* : nullable MType */; -var_v = p0; -{ -{ /* Inline parser_nodes#ANotExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__ANotExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2090); -fatal_exit(1); +/* method typing$AForGroup$method_item= for (self: AForGroup, nullable CallSite) */ +void nitc__typing___AForGroup___method_item_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AForGroup___method_item].val = p0; /* _method_item on */ +RET_LABEL:; } -var = var2; -RET_LABEL1:(void)0; +/* method typing$AForGroup$method_next for (self: AForGroup): nullable CallSite */ +val* nitc__typing___AForGroup___method_next(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_next].val; /* _method_next on */ +var = var1; +RET_LABEL:; +return var; } +/* method typing$AForGroup$method_next= for (self: AForGroup, nullable CallSite) */ +void nitc__typing___AForGroup___method_next_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AForGroup___method_next].val = p0; /* _method_next on */ +RET_LABEL:; } -{ -var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var); +/* method typing$AForGroup$method_key for (self: AForGroup): nullable CallSite */ +val* nitc__typing___AForGroup___method_key(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_key].val; /* _method_key on */ +var = var1; +RET_LABEL:; +return var; } -{ -var4 = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self); +/* method typing$AForGroup$method_key= for (self: AForGroup, nullable CallSite) */ +void nitc__typing___AForGroup___method_key_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AForGroup___method_key].val = p0; /* _method_key on */ +RET_LABEL:; } -{ -{ /* Inline typing#AExpr#mtype= (self,var4) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var4; /* _mtype on */ -RET_LABEL5:(void)0; +/* method typing$AForGroup$method_finish for (self: AForGroup): nullable CallSite */ +val* nitc__typing___AForGroup___method_finish(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_finish].val; /* _method_finish on */ +var = var1; +RET_LABEL:; +return var; +} +/* method typing$AForGroup$method_finish= for (self: AForGroup, nullable CallSite) */ +void nitc__typing___AForGroup___method_finish_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AForGroup___method_finish].val = p0; /* _method_finish on */ +RET_LABEL:; } +/* method typing$AForGroup$method_lt for (self: AForGroup): nullable CallSite */ +val* nitc__typing___AForGroup___method_lt(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_lt].val; /* _method_lt on */ +var = var1; +RET_LABEL:; +return var; } +/* method typing$AForGroup$method_lt= for (self: AForGroup, nullable CallSite) */ +void nitc__typing___AForGroup___method_lt_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AForGroup___method_lt].val = p0; /* _method_lt on */ RET_LABEL:; } -/* method typing#AOrElseExpr#accept_typing for (self: AOrElseExpr, TypeVisitor) */ -void nitc__typing___AOrElseExpr___AExpr__accept_typing(val* self, val* p0) { +/* method typing$AForGroup$method_successor for (self: AForGroup): nullable CallSite */ +val* nitc__typing___AForGroup___method_successor(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_successor].val; /* _method_successor on */ +var = var1; +RET_LABEL:; +return var; +} +/* method typing$AForGroup$method_successor= for (self: AForGroup, nullable CallSite) */ +void nitc__typing___AForGroup___method_successor_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AForGroup___method_successor].val = p0; /* _method_successor on */ +RET_LABEL:; +} +/* method typing$AForGroup$do_type_iterator for (self: AForGroup, TypeVisitor, MType) */ +void nitc__typing___AForGroup___do_type_iterator(val* self, val* p0, val* p1) { val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MType */; -val* var_t1 /* var t1: nullable MType */; -val* var4 /* : AExpr */; -val* var6 /* : AExpr */; -val* var7 /* : nullable MType */; -val* var_t2 /* var t2: nullable MType */; -short int var8 /* : Bool */; -short int var9 /* : Bool */; -short int var10 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var12 /* : Bool */; -short int var14 /* : Bool */; -short int var_ /* var : Bool */; -short int var15 /* : Bool */; -short int var16 /* : Bool */; -short int var18 /* : Bool */; -short int var20 /* : Bool */; -short int var21 /* : Bool */; +val* var_mtype /* var mtype: MType */; +short int var /* : Bool */; int cltype; int idtype; -short int var23 /* : Bool */; -val* var24 /* : MType */; -val* var25 /* : Array[MType] */; -val* var_26 /* var : Array[MType] */; -val* var27 /* : nullable MType */; -val* var_t /* var t: nullable MType */; -short int var28 /* : Bool */; -short int var29 /* : Bool */; -short int var31 /* : Bool */; -short int var33 /* : Bool */; static val* varonce; -val* var34 /* : String */; -char* var35 /* : NativeString */; -val* var36 /* : String */; -val* var37 /* : nullable MClass */; -val* var_c /* var c: nullable MClass */; +val* var1 /* : String */; +char* var2 /* : CString */; +val* var3 /* : String */; +val* var4 /* : nullable Int */; +val* var5 /* : nullable Int */; +val* var6 /* : nullable Bool */; +val* var7 /* : nullable Bool */; +static val* varonce8; +val* var9 /* : String */; +char* var10 /* : CString */; +val* var11 /* : String */; +val* var12 /* : nullable Int */; +val* var13 /* : nullable Int */; +val* var14 /* : nullable Bool */; +val* var15 /* : nullable Bool */; +val* var16 /* : nullable MClass */; +val* var_objcla /* var objcla: nullable MClass */; +short int var17 /* : Bool */; +short int var18 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var20 /* : Bool */; +short int var22 /* : Bool */; +static val* varonce23; +val* var24 /* : String */; +char* var25 /* : CString */; +val* var26 /* : String */; +val* var27 /* : nullable Int */; +val* var28 /* : nullable Int */; +val* var29 /* : nullable Bool */; +val* var30 /* : nullable Bool */; +val* var31 /* : AExpr */; +val* var33 /* : AExpr */; +short int var34 /* : Bool */; +int cltype35; +int idtype36; +val* var37 /* : nullable CallSite */; +val* var_itdef /* var itdef: nullable CallSite */; short int var38 /* : Bool */; short int var39 /* : Bool */; short int var41 /* : Bool */; short int var43 /* : Bool */; -val* var44 /* : MClassType */; -val* var46 /* : MClassType */; -short int var47 /* : Bool */; -val* var48 /* : MType */; +val* var45 /* : NativeArray[String] */; +static val* varonce44; +static val* varonce46; +val* var47 /* : String */; +char* var48 /* : CString */; +val* var49 /* : String */; +val* var50 /* : nullable Int */; +val* var51 /* : nullable Int */; +val* var52 /* : nullable Bool */; +val* var53 /* : nullable Bool */; +static val* varonce54; +val* var55 /* : String */; +char* var56 /* : CString */; +val* var57 /* : String */; +val* var58 /* : nullable Int */; +val* var59 /* : nullable Int */; +val* var60 /* : nullable Bool */; +val* var61 /* : nullable Bool */; +val* var62 /* : String */; +val* var63 /* : String */; +val* var65 /* : MSignature */; +val* var67 /* : MSignature */; +val* var68 /* : nullable MType */; +val* var70 /* : nullable MType */; +val* var_ittype /* var ittype: nullable MType */; +short int var71 /* : Bool */; +short int var72 /* : Bool */; +short int var74 /* : Bool */; +short int var76 /* : Bool */; +static val* varonce77; +val* var78 /* : String */; +char* var79 /* : CString */; +val* var80 /* : String */; +val* var81 /* : nullable Int */; +val* var82 /* : nullable Int */; +val* var83 /* : nullable Bool */; +val* var84 /* : nullable Bool */; +static val* varonce85; +val* var86 /* : String */; +char* var87 /* : CString */; +val* var88 /* : String */; +val* var89 /* : nullable Int */; +val* var90 /* : nullable Int */; +val* var91 /* : nullable Bool */; +val* var92 /* : nullable Bool */; +val* var93 /* : nullable MClass */; +val* var_colit_cla /* var colit_cla: nullable MClass */; +static val* varonce94; +val* var95 /* : String */; +char* var96 /* : CString */; +val* var97 /* : String */; +val* var98 /* : nullable Int */; +val* var99 /* : nullable Int */; +val* var100 /* : nullable Bool */; +val* var101 /* : nullable Bool */; +val* var102 /* : nullable MClass */; +val* var_mapit_cla /* var mapit_cla: nullable MClass */; +short int var_is_col /* var is_col: Bool */; +short int var_is_map /* var is_map: Bool */; +short int var103 /* : Bool */; +short int var104 /* : Bool */; +short int var105 /* : Bool */; +val* var_other107 /* var other: nullable Object */; +short int var108 /* : Bool */; +short int var109 /* : Bool */; +short int var_ /* var : Bool */; +val* var110 /* : Array[MType] */; +val* var_111 /* var : Array[MType] */; +val* var112 /* : MClassType */; +val* var114 /* : MClassType */; +val* var115 /* : MType */; +val* var116 /* : MClassType */; +short int var117 /* : Bool */; +val* var118 /* : MModule */; +val* var120 /* : MModule */; +val* var121 /* : nullable MClassType */; +val* var123 /* : nullable MClassType */; +val* var124 /* : MClassType */; +val* var_coltype /* var coltype: MClassType */; +val* var125 /* : nullable Array[Variable] */; +val* var127 /* : nullable Array[Variable] */; +val* var_variables /* var variables: nullable Array[Variable] */; +long var128 /* : Int */; +long var130 /* : Int */; +short int var131 /* : Bool */; +short int var133 /* : Bool */; +short int var134 /* : Bool */; +static val* varonce135; +val* var136 /* : String */; +char* var137 /* : CString */; +val* var138 /* : String */; +val* var139 /* : nullable Int */; +val* var140 /* : nullable Int */; +val* var141 /* : nullable Bool */; +val* var142 /* : nullable Bool */; +val* var143 /* : nullable Object */; +val* var144 /* : Array[MType] */; +val* var145 /* : nullable Object */; +short int var147 /* : Bool */; +short int var148 /* : Bool */; +short int var149 /* : Bool */; +short int var151 /* : Bool */; +short int var152 /* : Bool */; +short int var_153 /* var : Bool */; +val* var154 /* : Array[MType] */; +val* var_155 /* var : Array[MType] */; +val* var156 /* : MClassType */; +val* var158 /* : MClassType */; +val* var159 /* : MType */; +val* var160 /* : MClassType */; +val* var162 /* : MClassType */; +val* var163 /* : MType */; +val* var164 /* : MClassType */; +short int var165 /* : Bool */; +val* var166 /* : MModule */; +val* var168 /* : MModule */; +val* var169 /* : nullable MClassType */; +val* var171 /* : nullable MClassType */; +val* var172 /* : MClassType */; +val* var_coltype173 /* var coltype: MClassType */; +val* var174 /* : nullable Array[Variable] */; +val* var176 /* : nullable Array[Variable] */; +val* var_variables177 /* var variables: nullable Array[Variable] */; +long var178 /* : Int */; +long var180 /* : Int */; +short int var181 /* : Bool */; +short int var183 /* : Bool */; +short int var184 /* : Bool */; +static val* varonce185; +val* var186 /* : String */; +char* var187 /* : CString */; +val* var188 /* : String */; +val* var189 /* : nullable Int */; +val* var190 /* : nullable Int */; +val* var191 /* : nullable Bool */; +val* var192 /* : nullable Bool */; +val* var193 /* : nullable Object */; +val* var194 /* : Array[MType] */; +val* var195 /* : nullable Object */; +val* var197 /* : nullable Object */; +val* var198 /* : Array[MType] */; +val* var199 /* : nullable Object */; +short int var201 /* : Bool */; +short int var202 /* : Bool */; +short int var_203 /* var : Bool */; +short int var204 /* : Bool */; +static val* varonce205; +val* var206 /* : String */; +char* var207 /* : CString */; +val* var208 /* : String */; +val* var209 /* : nullable Int */; +val* var210 /* : nullable Int */; +val* var211 /* : nullable Bool */; +val* var212 /* : nullable Bool */; +short int var213 /* : Bool */; +val* var214 /* : MType */; +val* var215 /* : MType */; +short int var216 /* : Bool */; +int cltype217; +int idtype218; +const char* var_class_name; +static val* varonce220; +val* var221 /* : String */; +char* var222 /* : CString */; +val* var223 /* : String */; +val* var224 /* : nullable Int */; +val* var225 /* : nullable Int */; +val* var226 /* : nullable Bool */; +val* var227 /* : nullable Bool */; +val* var228 /* : nullable CallSite */; +val* var_ikdef /* var ikdef: nullable CallSite */; +short int var229 /* : Bool */; +short int var230 /* : Bool */; +short int var232 /* : Bool */; +short int var234 /* : Bool */; +val* var236 /* : NativeArray[String] */; +static val* varonce235; +static val* varonce237; +val* var238 /* : String */; +char* var239 /* : CString */; +val* var240 /* : String */; +val* var241 /* : nullable Int */; +val* var242 /* : nullable Int */; +val* var243 /* : nullable Bool */; +val* var244 /* : nullable Bool */; +static val* varonce245; +val* var246 /* : String */; +char* var247 /* : CString */; +val* var248 /* : String */; +val* var249 /* : nullable Int */; +val* var250 /* : nullable Int */; +val* var251 /* : nullable Bool */; +val* var252 /* : nullable Bool */; +val* var253 /* : String */; +val* var254 /* : String */; +static val* varonce256; +val* var257 /* : String */; +char* var258 /* : CString */; +val* var259 /* : String */; +val* var260 /* : nullable Int */; +val* var261 /* : nullable Int */; +val* var262 /* : nullable Bool */; +val* var263 /* : nullable Bool */; +val* var264 /* : nullable CallSite */; +val* var_itemdef /* var itemdef: nullable CallSite */; +short int var265 /* : Bool */; +short int var266 /* : Bool */; +short int var268 /* : Bool */; +short int var270 /* : Bool */; +val* var272 /* : NativeArray[String] */; +static val* varonce271; +static val* varonce273; +val* var274 /* : String */; +char* var275 /* : CString */; +val* var276 /* : String */; +val* var277 /* : nullable Int */; +val* var278 /* : nullable Int */; +val* var279 /* : nullable Bool */; +val* var280 /* : nullable Bool */; +static val* varonce281; +val* var282 /* : String */; +char* var283 /* : CString */; +val* var284 /* : String */; +val* var285 /* : nullable Int */; +val* var286 /* : nullable Int */; +val* var287 /* : nullable Bool */; +val* var288 /* : nullable Bool */; +val* var289 /* : String */; +val* var290 /* : String */; +static val* varonce292; +val* var293 /* : String */; +char* var294 /* : CString */; +val* var295 /* : String */; +val* var296 /* : nullable Int */; +val* var297 /* : nullable Int */; +val* var298 /* : nullable Bool */; +val* var299 /* : nullable Bool */; +val* var300 /* : nullable CallSite */; +val* var_nextdef /* var nextdef: nullable CallSite */; +short int var301 /* : Bool */; +short int var302 /* : Bool */; +short int var304 /* : Bool */; +short int var306 /* : Bool */; +val* var308 /* : NativeArray[String] */; +static val* varonce307; +static val* varonce309; +val* var310 /* : String */; +char* var311 /* : CString */; +val* var312 /* : String */; +val* var313 /* : nullable Int */; +val* var314 /* : nullable Int */; +val* var315 /* : nullable Bool */; +val* var316 /* : nullable Bool */; +static val* varonce317; +val* var318 /* : String */; +char* var319 /* : CString */; +val* var320 /* : String */; +val* var321 /* : nullable Int */; +val* var322 /* : nullable Int */; +val* var323 /* : nullable Bool */; +val* var324 /* : nullable Bool */; +val* var325 /* : String */; +val* var326 /* : String */; +static val* varonce328; +val* var329 /* : String */; +char* var330 /* : CString */; +val* var331 /* : String */; +val* var332 /* : nullable Int */; +val* var333 /* : nullable Int */; +val* var334 /* : nullable Bool */; +val* var335 /* : nullable Bool */; +val* var336 /* : nullable CallSite */; +static val* varonce338; +val* var339 /* : String */; +char* var340 /* : CString */; +val* var341 /* : String */; +val* var342 /* : nullable Int */; +val* var343 /* : nullable Int */; +val* var344 /* : nullable Bool */; +val* var345 /* : nullable Bool */; +val* var346 /* : nullable CallSite */; +val* var_keydef /* var keydef: nullable CallSite */; +short int var347 /* : Bool */; +short int var348 /* : Bool */; +short int var350 /* : Bool */; +short int var352 /* : Bool */; +val* var354 /* : NativeArray[String] */; +static val* varonce353; +static val* varonce355; +val* var356 /* : String */; +char* var357 /* : CString */; +val* var358 /* : String */; +val* var359 /* : nullable Int */; +val* var360 /* : nullable Int */; +val* var361 /* : nullable Bool */; +val* var362 /* : nullable Bool */; +static val* varonce363; +val* var364 /* : String */; +char* var365 /* : CString */; +val* var366 /* : String */; +val* var367 /* : nullable Int */; +val* var368 /* : nullable Int */; +val* var369 /* : nullable Bool */; +val* var370 /* : nullable Bool */; +val* var371 /* : String */; +val* var372 /* : String */; +short int var374 /* : Bool */; +val* var375 /* : nullable Array[Variable] */; +val* var377 /* : nullable Array[Variable] */; +long var378 /* : Int */; +long var380 /* : Int */; +short int var381 /* : Bool */; +short int var383 /* : Bool */; +short int var_384 /* var : Bool */; +val* var385 /* : AExpr */; +val* var387 /* : AExpr */; +short int var388 /* : Bool */; +int cltype389; +int idtype390; +val* var391 /* : nullable Array[Variable] */; +val* var393 /* : nullable Array[Variable] */; +val* var394 /* : nullable Object */; +val* var_variable /* var variable: Variable */; +val* var395 /* : nullable MType */; +val* var397 /* : nullable MType */; +val* var_vtype /* var vtype: MType */; +val* var398 /* : AExpr */; +val* var400 /* : AExpr */; +short int var401 /* : Bool */; +int cltype402; +int idtype403; +static val* varonce404; +val* var405 /* : String */; +char* var406 /* : CString */; +val* var407 /* : String */; +val* var408 /* : nullable Int */; +val* var409 /* : nullable Int */; +val* var410 /* : nullable Bool */; +val* var411 /* : nullable Bool */; +val* var412 /* : nullable CallSite */; +static val* varonce414; +val* var415 /* : String */; +char* var416 /* : CString */; +val* var417 /* : String */; +val* var418 /* : nullable Int */; +val* var419 /* : nullable Int */; +val* var420 /* : nullable Bool */; +val* var421 /* : nullable Bool */; +val* var422 /* : nullable CallSite */; +static val* varonce424; +val* var425 /* : String */; +char* var426 /* : CString */; +val* var427 /* : String */; +val* var428 /* : nullable Int */; +val* var429 /* : nullable Int */; +val* var430 /* : nullable Bool */; +val* var431 /* : nullable Bool */; +val* var432 /* : nullable CallSite */; var_v = p0; -{ -{ /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2050); -fatal_exit(1); -} -var = var2; -RET_LABEL1:(void)0; -} +var_mtype = p1; +/* isa MNullType */ +cltype = type_nitc__MNullType.color; +idtype = type_nitc__MNullType.id; +if(cltype >= var_mtype->type->table_size) { +var = 0; +} else { +var = var_mtype->type->type_table[cltype] == idtype; } -{ -var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var); +if (var){ +if (likely(varonce!=NULL)) { +var1 = varonce; +} else { +var2 = "Type Error: `for` cannot iterate over `null`."; +var4 = (val*)(45l<<2|1); +var5 = (val*)(45l<<2|1); +var6 = (val*)((long)(0)<<2|3); +var7 = (val*)((long)(0)<<2|3); +var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7); +var1 = var3; +varonce = var1; } -var_t1 = var3; { -{ /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on */ -var6 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on */ -if (unlikely(var6 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2056); -fatal_exit(1); +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var1); /* Direct call typing$TypeVisitor$error on */ } -var4 = var6; -RET_LABEL5:(void)0; +goto RET_LABEL; +} else { } +if (likely(varonce8!=NULL)) { +var9 = varonce8; +} else { +var10 = "Object"; +var12 = (val*)(6l<<2|1); +var13 = (val*)(6l<<2|1); +var14 = (val*)((long)(0)<<2|3); +var15 = (val*)((long)(0)<<2|3); +var11 = core__flat___CString___to_s_unsafe(var10, var12, var13, var14, var15); +var9 = var11; +varonce8 = var9; } { -var7 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var4); +var16 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var9); } -var_t2 = var7; -if (var_t1 == NULL) { -var9 = 1; /* is null */ +var_objcla = var16; +if (var_objcla == NULL) { +var17 = 1; /* is null */ } else { -var9 = 0; /* arg is null but recv is not */ +var17 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_t1,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_objcla,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_t1,var_other) on */ -var14 = var_t1 == var_other; -var12 = var14; -goto RET_LABEL13; -RET_LABEL13:(void)0; -} -} -var10 = var12; -goto RET_LABEL11; -RET_LABEL11:(void)0; -} -var9 = var10; +{ /* Inline kernel$Object$is_same_instance (var_objcla,var_other) on */ +var22 = var_objcla == var_other; +var20 = var22; +goto RET_LABEL21; +RET_LABEL21:(void)0; } -var_ = var9; -if (var9){ -var8 = var_; -} else { -if (var_t2 == NULL) { -var15 = 1; /* is null */ -} else { -var15 = 0; /* arg is null but recv is not */ } -if (0) { -{ /* Inline kernel#Object#== (var_t2,((val*)NULL)) on */ -var_other = ((val*)NULL); -{ -{ /* Inline kernel#Object#is_same_instance (var_t2,var_other) on */ -var20 = var_t2 == var_other; var18 = var20; goto RET_LABEL19; RET_LABEL19:(void)0; } +var17 = var18; } -var16 = var18; -goto RET_LABEL17; -RET_LABEL17:(void)0; -} -var15 = var16; -} -var8 = var15; -} -if (var8){ -goto RET_LABEL; -} else { -} -/* isa MNullType */ -cltype = type_nitc__MNullType.color; -idtype = type_nitc__MNullType.id; -if(cltype >= var_t1->type->table_size) { -var21 = 0; -} else { -var21 = var_t1->type->type_table[cltype] == idtype; -} -if (var21){ -{ -{ /* Inline typing#AExpr#mtype= (self,var_t2) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_t2; /* _mtype on */ -RET_LABEL22:(void)0; -} -} +if (var17){ goto RET_LABEL; } else { -{ -var23 = nitc__typing___nitc__typing__TypeVisitor___can_be_null(var_v, var_t1); -} -if (var23){ -{ -var24 = ((val*(*)(val* self))(var_t1->class->vft[COLOR_nitc__model__MType__as_notnull]))(var_t1); /* as_notnull on */ } -var_t1 = var24; +if (likely(varonce23!=NULL)) { +var24 = varonce23; } else { -} -} -var25 = NEW_core__Array(&type_core__Array__nitc__MType); -{ -core___core__Array___with_capacity(var25, 2l); /* Direct call array#Array#with_capacity on */ -} -var_26 = var25; -{ -core___core__AbstractArray___core__abstract_collection__Sequence__push(var_26, var_t1); /* Direct call array#AbstractArray#push on */ -} -{ -core___core__AbstractArray___core__abstract_collection__Sequence__push(var_26, var_t2); /* Direct call array#AbstractArray#push on */ +var25 = "iterator"; +var27 = (val*)(8l<<2|1); +var28 = (val*)(8l<<2|1); +var29 = (val*)((long)(0)<<2|3); +var30 = (val*)((long)(0)<<2|3); +var26 = core__flat___CString___to_s_unsafe(var25, var27, var28, var29, var30); +var24 = var26; +varonce23 = var24; } { -var27 = nitc__typing___nitc__typing__TypeVisitor___merge_types(var_v, self, var_26); +{ /* Inline parser_nodes$AForGroup$n_expr (self) on */ +var33 = self->attrs[COLOR_nitc__parser_nodes__AForGroup___n_expr].val; /* _n_expr on */ +if (unlikely(var33 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var_t = var27; -if (var_t == NULL) { -var28 = 1; /* is null */ -} else { -var28 = 0; /* arg is null but recv is not */ +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2024); +fatal_exit(1); } -if (0) { -{ /* Inline kernel#Object#== (var_t,((val*)NULL)) on */ -var_other = ((val*)NULL); -{ -{ /* Inline kernel#Object#is_same_instance (var_t,var_other) on */ -var33 = var_t == var_other; var31 = var33; -goto RET_LABEL32; RET_LABEL32:(void)0; } } -var29 = var31; -goto RET_LABEL30; -RET_LABEL30:(void)0; -} -var28 = var29; -} -if (var28){ -if (likely(varonce!=NULL)) { -var34 = varonce; +/* isa ASelfExpr */ +cltype35 = type_nitc__ASelfExpr.color; +idtype36 = type_nitc__ASelfExpr.id; +if(cltype35 >= var31->type->table_size) { +var34 = 0; } else { -var35 = "Object"; -var36 = core__flat___NativeString___to_s_full(var35, 6l, 6l); -var34 = var36; -varonce = var34; +var34 = var31->type->type_table[cltype35] == idtype36; } { -var37 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var34); +var37 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_mtype, var24, var34); } -var_c = var37; -if (var_c == NULL) { +var_itdef = var37; +if (var_itdef == NULL) { var38 = 1; /* is null */ } else { var38 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_c,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_itdef,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_c,var_other) on */ -var43 = var_c == var_other; +{ /* Inline kernel$Object$is_same_instance (var_itdef,var_other) on */ +var43 = var_itdef == var_other; var41 = var43; goto RET_LABEL42; RET_LABEL42:(void)0; @@ -3796,1863 +3732,2012 @@ RET_LABEL40:(void)0; var38 = var39; } if (var38){ -goto RET_LABEL; +if (unlikely(varonce44==NULL)) { +var45 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String); +if (likely(varonce46!=NULL)) { +var47 = varonce46; } else { +var48 = "Type Error: `for` expects a type providing an `iterator` method, got `"; +var50 = (val*)(70l<<2|1); +var51 = (val*)(70l<<2|1); +var52 = (val*)((long)(0)<<2|3); +var53 = (val*)((long)(0)<<2|3); +var49 = core__flat___CString___to_s_unsafe(var48, var50, var51, var52, var53); +var47 = var49; +varonce46 = var47; } -{ -{ /* Inline model#MClass#mclass_type (var_c) on */ -var46 = var_c->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var46 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 507); -fatal_exit(1); -} -var44 = var46; -RET_LABEL45:(void)0; +((struct instance_core__NativeArray*)var45)->values[0]=var47; +if (likely(varonce54!=NULL)) { +var55 = varonce54; +} else { +var56 = "`."; +var58 = (val*)(2l<<2|1); +var59 = (val*)(2l<<2|1); +var60 = (val*)((long)(0)<<2|3); +var61 = (val*)((long)(0)<<2|3); +var57 = core__flat___CString___to_s_unsafe(var56, var58, var59, var60, var61); +var55 = var57; +varonce54 = var55; } +((struct instance_core__NativeArray*)var45)->values[2]=var55; +} else { +var45 = varonce44; +varonce44 = NULL; } -var_t = var44; { -var47 = nitc__typing___nitc__typing__TypeVisitor___can_be_null(var_v, var_t2); +var62 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on */ } -if (var47){ +((struct instance_core__NativeArray*)var45)->values[1]=var62; { -var48 = nitc___nitc__MType___as_nullable(var_t); +var63 = ((val*(*)(val* self))(var45->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var45); /* native_to_s on */ } -var_t = var48; -} else { +varonce44 = var45; +{ +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var63); /* Direct call typing$TypeVisitor$error on */ } +goto RET_LABEL; } else { } { -{ /* Inline typing#AExpr#mtype= (self,var_t) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_t; /* _mtype on */ -RET_LABEL49:(void)0; -} +{ /* Inline typing$AForGroup$method_iterator= (self,var_itdef) on */ +self->attrs[COLOR_nitc__typing__AForGroup___method_iterator].val = var_itdef; /* _method_iterator on */ +RET_LABEL64:(void)0; } -RET_LABEL:; } -/* method typing#AOrElseExpr#accept_post_typing for (self: AOrElseExpr, TypeVisitor) */ -void nitc__typing___AOrElseExpr___ANode__accept_post_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MType */; -val* var_t1 /* var t1: nullable MType */; -short int var4 /* : Bool */; -short int var5 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var7 /* : Bool */; -short int var9 /* : Bool */; -val* var10 /* : AExpr */; -val* var12 /* : AExpr */; -short int var13 /* : Bool */; -var_v = p0; { -{ /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2050); +{ /* Inline typing$CallSite$msignature (var_itdef) on */ +var67 = var_itdef->attrs[COLOR_nitc__typing__CallSite___msignature].val; /* _msignature on */ +if (unlikely(var67 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 663); fatal_exit(1); } -var = var2; -RET_LABEL1:(void)0; +var65 = var67; +RET_LABEL66:(void)0; } } { -var3 = ((val*(*)(val* self))(var->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var); /* mtype on */ +{ /* Inline model$MSignature$return_mtype (var65) on */ +var70 = var65->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on */ +var68 = var70; +RET_LABEL69:(void)0; } -var_t1 = var3; -if (var_t1 == NULL) { -var4 = 1; /* is null */ +} +var_ittype = var68; +if (var_ittype == NULL) { +var71 = 1; /* is null */ } else { -var4 = 0; /* arg is null but recv is not */ +var71 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_t1,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_ittype,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_t1,var_other) on */ -var9 = var_t1 == var_other; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_ittype,var_other) on */ +var76 = var_ittype == var_other; +var74 = var76; +goto RET_LABEL75; +RET_LABEL75:(void)0; } } -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; +var72 = var74; +goto RET_LABEL73; +RET_LABEL73:(void)0; } -var4 = var5; +var71 = var72; } -if (var4){ -goto RET_LABEL; +if (var71){ +if (likely(varonce77!=NULL)) { +var78 = varonce77; } else { +var79 = "Type Error: `for` expects the method `iterator` to return an `Iterator` or `MapIterator` type."; +var81 = (val*)(94l<<2|1); +var82 = (val*)(94l<<2|1); +var83 = (val*)((long)(0)<<2|3); +var84 = (val*)((long)(0)<<2|3); +var80 = core__flat___CString___to_s_unsafe(var79, var81, var82, var83, var84); +var78 = var80; +varonce77 = var78; +} { -{ /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on */ -var12 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var12 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2050); -fatal_exit(1); +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var78); /* Direct call typing$TypeVisitor$error on */ } -var10 = var12; -RET_LABEL11:(void)0; +goto RET_LABEL; +} else { } +if (likely(varonce85!=NULL)) { +var86 = varonce85; +} else { +var87 = "Iterator"; +var89 = (val*)(8l<<2|1); +var90 = (val*)(8l<<2|1); +var91 = (val*)((long)(0)<<2|3); +var92 = (val*)((long)(0)<<2|3); +var88 = core__flat___CString___to_s_unsafe(var87, var89, var90, var91, var92); +var86 = var88; +varonce85 = var86; } { -var13 = nitc__typing___nitc__typing__TypeVisitor___check_can_be_null(var_v, var10, var_t1); +var93 = nitc__typing___nitc__typing__TypeVisitor___try_get_mclass(var_v, self, var86); } +var_colit_cla = var93; +if (likely(varonce94!=NULL)) { +var95 = varonce94; +} else { +var96 = "MapIterator"; +var98 = (val*)(11l<<2|1); +var99 = (val*)(11l<<2|1); +var100 = (val*)((long)(0)<<2|3); +var101 = (val*)((long)(0)<<2|3); +var97 = core__flat___CString___to_s_unsafe(var96, var98, var99, var100, var101); +var95 = var97; +varonce94 = var95; } -RET_LABEL:; -} -/* method typing#ATrueExpr#accept_typing for (self: ATrueExpr, TypeVisitor) */ -void nitc__typing___ATrueExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : nullable MType */; -var_v = p0; { -var = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self); +var102 = nitc__typing___nitc__typing__TypeVisitor___try_get_mclass(var_v, self, var95); +} +var_mapit_cla = var102; +var_is_col = 0; +var_is_map = 0; +if (var_colit_cla == NULL) { +var104 = 0; /* is null */ +} else { +var104 = 1; /* arg is null and recv is not */ } +if (0) { +{ /* Inline kernel$Object$!= (var_colit_cla,((val*)NULL)) on */ +var_other107 = ((val*)NULL); { -{ /* Inline typing#AExpr#mtype= (self,var) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var; /* _mtype on */ -RET_LABEL1:(void)0; +var108 = ((short int(*)(val* self, val* p0))(var_colit_cla->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_colit_cla, var_other107); /* == on */ } +var109 = !var108; +var105 = var109; +goto RET_LABEL106; +RET_LABEL106:(void)0; } -RET_LABEL:; +var104 = var105; } -/* method typing#AFalseExpr#accept_typing for (self: AFalseExpr, TypeVisitor) */ -void nitc__typing___AFalseExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : nullable MType */; -var_v = p0; +var_ = var104; +if (var104){ +var110 = NEW_core__Array(&type_core__Array__nitc__MType); { -var = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self); +core___core__Array___with_capacity(var110, 1l); /* Direct call array$Array$with_capacity on */ } +var_111 = var110; { -{ /* Inline typing#AExpr#mtype= (self,var) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var; /* _mtype on */ -RET_LABEL1:(void)0; +{ /* Inline model$MClass$mclass_type (var_objcla) on */ +var114 = var_objcla->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var114 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520); +fatal_exit(1); +} +var112 = var114; +RET_LABEL113:(void)0; } -RET_LABEL:; } -/* method typing#AIntegerExpr#accept_typing for (self: AIntegerExpr, TypeVisitor) */ -void nitc__typing___AIntegerExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var_mclass /* var mclass: nullable MClass */; -val* var /* : nullable Numeric */; -val* var2 /* : nullable Numeric */; -short int var3 /* : Bool */; -int cltype; -int idtype; -static val* varonce; -val* var4 /* : String */; -char* var5 /* : NativeString */; -val* var6 /* : String */; -val* var7 /* : nullable MClass */; -val* var8 /* : nullable Numeric */; -val* var10 /* : nullable Numeric */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; -static val* varonce14; -val* var15 /* : String */; -char* var16 /* : NativeString */; -val* var17 /* : String */; -val* var18 /* : nullable MClass */; -val* var19 /* : nullable Numeric */; -val* var21 /* : nullable Numeric */; -short int var22 /* : Bool */; -int cltype23; -int idtype24; -static val* varonce25; -val* var26 /* : String */; -char* var27 /* : NativeString */; -val* var28 /* : String */; -val* var29 /* : nullable MClass */; -val* var30 /* : nullable Numeric */; -val* var32 /* : nullable Numeric */; -short int var33 /* : Bool */; -int cltype34; -int idtype35; -static val* varonce36; -val* var37 /* : String */; -char* var38 /* : NativeString */; -val* var39 /* : String */; -val* var40 /* : nullable MClass */; -val* var41 /* : nullable Numeric */; -val* var43 /* : nullable Numeric */; -short int var44 /* : Bool */; -int cltype45; -int idtype46; -static val* varonce47; -val* var48 /* : String */; -char* var49 /* : NativeString */; -val* var50 /* : String */; -val* var51 /* : nullable MClass */; -val* var52 /* : nullable Numeric */; -val* var54 /* : nullable Numeric */; -short int var55 /* : Bool */; -int cltype56; -int idtype57; -static val* varonce58; -val* var59 /* : String */; -char* var60 /* : NativeString */; -val* var61 /* : String */; -val* var62 /* : nullable MClass */; -val* var63 /* : nullable Numeric */; -val* var65 /* : nullable Numeric */; -short int var66 /* : Bool */; -int cltype67; -int idtype68; -static val* varonce69; -val* var70 /* : String */; -char* var71 /* : NativeString */; -val* var72 /* : String */; -val* var73 /* : nullable MClass */; -short int var74 /* : Bool */; -short int var75 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var77 /* : Bool */; -short int var79 /* : Bool */; -val* var80 /* : MClassType */; -val* var82 /* : MClassType */; -var_v = p0; -var_mclass = ((val*)NULL); { -{ /* Inline literal#AIntegerExpr#value (self) on */ -var2 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on */ -var = var2; -RET_LABEL1:(void)0; +var115 = nitc___nitc__MType___as_nullable(var112); } +{ +core___core__AbstractArray___core__abstract_collection__Sequence__push(var_111, var115); /* Direct call array$AbstractArray$push on */ } -/* isa Byte */ -cltype = type_core__Byte.color; -idtype = type_core__Byte.id; -if(var == NULL) { -var3 = 0; -} else { -if(cltype >= (((long)var&3)?type_info[((long)var&3)]:var->type)->table_size) { -var3 = 0; -} else { -var3 = (((long)var&3)?type_info[((long)var&3)]:var->type)->type_table[cltype] == idtype; +{ +var116 = nitc___nitc__MClass___get_mtype(var_colit_cla, var_111); } +{ +var117 = nitc__typing___nitc__typing__TypeVisitor___is_subtype(var_v, var_ittype, var116); } -if (var3){ -if (likely(varonce!=NULL)) { -var4 = varonce; +var103 = var117; } else { -var5 = "Byte"; -var6 = core__flat___NativeString___to_s_full(var5, 4l, 4l); -var4 = var6; -varonce = var4; +var103 = var_; } +if (var103){ { -var7 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var4); +{ /* Inline typing$TypeVisitor$mmodule (var_v) on */ +var120 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mmodule].val; /* _mmodule on */ +if (unlikely(var120 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var_mclass = var7; -} else { -{ -{ /* Inline literal#AIntegerExpr#value (self) on */ -var10 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on */ -var8 = var10; -RET_LABEL9:(void)0; +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 37); +fatal_exit(1); } +var118 = var120; +RET_LABEL119:(void)0; } -/* isa Int */ -cltype12 = type_core__Int.color; -idtype13 = type_core__Int.id; -if(var8 == NULL) { -var11 = 0; -} else { -if(cltype12 >= (((long)var8&3)?type_info[((long)var8&3)]:var8->type)->table_size) { -var11 = 0; -} else { -var11 = (((long)var8&3)?type_info[((long)var8&3)]:var8->type)->type_table[cltype12] == idtype13; } +{ +{ /* Inline typing$TypeVisitor$anchor (var_v) on */ +var123 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___anchor].val; /* _anchor on */ +var121 = var123; +RET_LABEL122:(void)0; } -if (var11){ -if (likely(varonce14!=NULL)) { -var15 = varonce14; -} else { -var16 = "Int"; -var17 = core__flat___NativeString___to_s_full(var16, 3l, 3l); -var15 = var17; -varonce14 = var15; } { -var18 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var15); +var124 = nitc___nitc__MType___supertype_to(var_ittype, var118, var121, var_colit_cla); } -var_mclass = var18; -} else { +var_coltype = var124; { -{ /* Inline literal#AIntegerExpr#value (self) on */ -var21 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on */ -var19 = var21; -RET_LABEL20:(void)0; +{ /* Inline scope$AForGroup$variables (self) on */ +var127 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on */ +var125 = var127; +RET_LABEL126:(void)0; } } -/* isa Int8 */ -cltype23 = type_core__Int8.color; -idtype24 = type_core__Int8.id; -if(var19 == NULL) { -var22 = 0; -} else { -if(cltype23 >= (((long)var19&3)?type_info[((long)var19&3)]:var19->type)->table_size) { -var22 = 0; +var_variables = var125; +if (var_variables == NULL) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1243); +fatal_exit(1); } else { -var22 = (((long)var19&3)?type_info[((long)var19&3)]:var19->type)->type_table[cltype23] == idtype24; +{ /* Inline array$AbstractArrayRead$length (var_variables) on */ +if (unlikely(var_variables == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 26); +fatal_exit(1); } -if (var22){ -if (likely(varonce25!=NULL)) { -var26 = varonce25; -} else { -var27 = "Int8"; -var28 = core__flat___NativeString___to_s_full(var27, 4l, 4l); -var26 = var28; -varonce25 = var26; +var130 = var_variables->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on */ +var128 = var130; +RET_LABEL129:(void)0; } -{ -var29 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var26); } -var_mclass = var29; -} else { { -{ /* Inline literal#AIntegerExpr#value (self) on */ -var32 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on */ -var30 = var32; -RET_LABEL31:(void)0; +{ /* Inline kernel$Int$!= (var128,1l) on */ +var133 = var128 == 1l; +var134 = !var133; +var131 = var134; +goto RET_LABEL132; +RET_LABEL132:(void)0; } } -/* isa Int16 */ -cltype34 = type_core__Int16.color; -idtype35 = type_core__Int16.id; -if(var30 == NULL) { -var33 = 0; +if (var131){ +if (likely(varonce135!=NULL)) { +var136 = varonce135; } else { -if(cltype34 >= (((long)var30&3)?type_info[((long)var30&3)]:var30->type)->table_size) { -var33 = 0; -} else { -var33 = (((long)var30&3)?type_info[((long)var30&3)]:var30->type)->type_table[cltype34] == idtype35; +var137 = "Type Error: `for` expects only one variable when using `Iterator`."; +var139 = (val*)(66l<<2|1); +var140 = (val*)(66l<<2|1); +var141 = (val*)((long)(0)<<2|3); +var142 = (val*)((long)(0)<<2|3); +var138 = core__flat___CString___to_s_unsafe(var137, var139, var140, var141, var142); +var136 = var138; +varonce135 = var136; } +{ +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var136); /* Direct call typing$TypeVisitor$error on */ } -if (var33){ -if (likely(varonce36!=NULL)) { -var37 = varonce36; } else { -var38 = "Int16"; -var39 = core__flat___NativeString___to_s_full(var38, 5l, 5l); -var37 = var39; -varonce36 = var37; +if (var_variables == NULL) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1246); +fatal_exit(1); +} else { +var143 = core___core__SequenceRead___Collection__first(var_variables); } { -var40 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var37); +var144 = ((val*(*)(val* self))(var_coltype->class->vft[COLOR_nitc__model__MClassType__arguments]))(var_coltype); /* arguments on */ } -var_mclass = var40; -} else { { -{ /* Inline literal#AIntegerExpr#value (self) on */ -var43 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on */ -var41 = var43; -RET_LABEL42:(void)0; +var145 = core___core__SequenceRead___Collection__first(var144); +} +{ +{ /* Inline typing$Variable$declared_type= (var143,var145) on */ +var143->attrs[COLOR_nitc__typing__Variable___declared_type].val = var145; /* _declared_type on */ +RET_LABEL146:(void)0; } } -/* isa UInt16 */ -cltype45 = type_core__UInt16.color; -idtype46 = type_core__UInt16.id; -if(var41 == NULL) { -var44 = 0; +} +var_is_col = 1; } else { -if(cltype45 >= (((long)var41&3)?type_info[((long)var41&3)]:var41->type)->table_size) { -var44 = 0; +} +if (var_mapit_cla == NULL) { +var148 = 0; /* is null */ } else { -var44 = (((long)var41&3)?type_info[((long)var41&3)]:var41->type)->type_table[cltype45] == idtype46; +var148 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel$Object$!= (var_mapit_cla,((val*)NULL)) on */ +var_other107 = ((val*)NULL); +{ +var151 = ((short int(*)(val* self, val* p0))(var_mapit_cla->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mapit_cla, var_other107); /* == on */ } +var152 = !var151; +var149 = var152; +goto RET_LABEL150; +RET_LABEL150:(void)0; } -if (var44){ -if (likely(varonce47!=NULL)) { -var48 = varonce47; -} else { -var49 = "UInt16"; -var50 = core__flat___NativeString___to_s_full(var49, 6l, 6l); -var48 = var50; -varonce47 = var48; +var148 = var149; } +var_153 = var148; +if (var148){ +var154 = NEW_core__Array(&type_core__Array__nitc__MType); { -var51 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var48); +core___core__Array___with_capacity(var154, 2l); /* Direct call array$Array$with_capacity on */ } -var_mclass = var51; -} else { +var_155 = var154; { -{ /* Inline literal#AIntegerExpr#value (self) on */ -var54 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on */ -var52 = var54; -RET_LABEL53:(void)0; +{ /* Inline model$MClass$mclass_type (var_objcla) on */ +var158 = var_objcla->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var158 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520); +fatal_exit(1); } -/* isa Int32 */ -cltype56 = type_core__Int32.color; -idtype57 = type_core__Int32.id; -if(var52 == NULL) { -var55 = 0; -} else { -if(cltype56 >= (((long)var52&3)?type_info[((long)var52&3)]:var52->type)->table_size) { -var55 = 0; -} else { -var55 = (((long)var52&3)?type_info[((long)var52&3)]:var52->type)->type_table[cltype56] == idtype57; +var156 = var158; +RET_LABEL157:(void)0; } } -if (var55){ -if (likely(varonce58!=NULL)) { -var59 = varonce58; -} else { -var60 = "Int32"; -var61 = core__flat___NativeString___to_s_full(var60, 5l, 5l); -var59 = var61; -varonce58 = var59; +{ +var159 = nitc___nitc__MType___as_nullable(var156); } { -var62 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var59); +core___core__AbstractArray___core__abstract_collection__Sequence__push(var_155, var159); /* Direct call array$AbstractArray$push on */ } -var_mclass = var62; -} else { { -{ /* Inline literal#AIntegerExpr#value (self) on */ -var65 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on */ -var63 = var65; -RET_LABEL64:(void)0; +{ /* Inline model$MClass$mclass_type (var_objcla) on */ +var162 = var_objcla->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var162 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520); +fatal_exit(1); } -/* isa UInt32 */ -cltype67 = type_core__UInt32.color; -idtype68 = type_core__UInt32.id; -if(var63 == NULL) { -var66 = 0; -} else { -if(cltype67 >= (((long)var63&3)?type_info[((long)var63&3)]:var63->type)->table_size) { -var66 = 0; -} else { -var66 = (((long)var63&3)?type_info[((long)var63&3)]:var63->type)->type_table[cltype67] == idtype68; +var160 = var162; +RET_LABEL161:(void)0; } } -if (var66){ -if (likely(varonce69!=NULL)) { -var70 = varonce69; -} else { -var71 = "UInt32"; -var72 = core__flat___NativeString___to_s_full(var71, 6l, 6l); -var70 = var72; -varonce69 = var70; +{ +var163 = nitc___nitc__MType___as_nullable(var160); } { -var73 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var70); +core___core__AbstractArray___core__abstract_collection__Sequence__push(var_155, var163); /* Direct call array$AbstractArray$push on */ } -var_mclass = var73; -} else { +{ +var164 = nitc___nitc__MClass___get_mtype(var_mapit_cla, var_155); } +{ +var165 = nitc__typing___nitc__typing__TypeVisitor___is_subtype(var_v, var_ittype, var164); } +var147 = var165; +} else { +var147 = var_153; } +if (var147){ +{ +{ /* Inline typing$TypeVisitor$mmodule (var_v) on */ +var168 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mmodule].val; /* _mmodule on */ +if (unlikely(var168 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 37); +fatal_exit(1); } +var166 = var168; +RET_LABEL167:(void)0; } } -if (var_mclass == NULL) { -var74 = 1; /* is null */ -} else { -var74 = 0; /* arg is null but recv is not */ +{ +{ /* Inline typing$TypeVisitor$anchor (var_v) on */ +var171 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___anchor].val; /* _anchor on */ +var169 = var171; +RET_LABEL170:(void)0; +} } -if (0) { -{ /* Inline kernel#Object#== (var_mclass,((val*)NULL)) on */ -var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on */ -var79 = var_mclass == var_other; -var77 = var79; -goto RET_LABEL78; -RET_LABEL78:(void)0; +var172 = nitc___nitc__MType___supertype_to(var_ittype, var166, var169, var_mapit_cla); } +var_coltype173 = var172; +{ +{ /* Inline scope$AForGroup$variables (self) on */ +var176 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on */ +var174 = var176; +RET_LABEL175:(void)0; } -var75 = var77; -goto RET_LABEL76; -RET_LABEL76:(void)0; } -var74 = var75; +var_variables177 = var174; +if (var_variables177 == NULL) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -if (var74){ -goto RET_LABEL; +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1255); +fatal_exit(1); } else { +{ /* Inline array$AbstractArrayRead$length (var_variables177) on */ +if (unlikely(var_variables177 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -{ -{ /* Inline model#MClass#mclass_type (var_mclass) on */ -var82 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var82 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 507); +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 26); fatal_exit(1); } -var80 = var82; -RET_LABEL81:(void)0; +var180 = var_variables177->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on */ +var178 = var180; +RET_LABEL179:(void)0; } } { -{ /* Inline typing#AExpr#mtype= (self,var80) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var80; /* _mtype on */ -RET_LABEL83:(void)0; +{ /* Inline kernel$Int$!= (var178,2l) on */ +var183 = var178 == 2l; +var184 = !var183; +var181 = var184; +goto RET_LABEL182; +RET_LABEL182:(void)0; } } -RET_LABEL:; -} -/* method typing#AFloatExpr#accept_typing for (self: AFloatExpr, TypeVisitor) */ -void nitc__typing___AFloatExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -static val* varonce; -val* var /* : String */; -char* var1 /* : NativeString */; -val* var2 /* : String */; -val* var3 /* : nullable MClass */; -val* var_mclass /* var mclass: nullable MClass */; -short int var4 /* : Bool */; -short int var5 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var7 /* : Bool */; -short int var9 /* : Bool */; -val* var10 /* : MClassType */; -val* var12 /* : MClassType */; -var_v = p0; -if (likely(varonce!=NULL)) { -var = varonce; +if (var181){ +if (likely(varonce185!=NULL)) { +var186 = varonce185; } else { -var1 = "Float"; -var2 = core__flat___NativeString___to_s_full(var1, 5l, 5l); -var = var2; -varonce = var; +var187 = "Type Error: `for` expects two variables when using `MapIterator`."; +var189 = (val*)(65l<<2|1); +var190 = (val*)(65l<<2|1); +var191 = (val*)((long)(0)<<2|3); +var192 = (val*)((long)(0)<<2|3); +var188 = core__flat___CString___to_s_unsafe(var187, var189, var190, var191, var192); +var186 = var188; +varonce185 = var186; } { -var3 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var); +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var186); /* Direct call typing$TypeVisitor$error on */ } -var_mclass = var3; -if (var_mclass == NULL) { -var4 = 1; /* is null */ } else { -var4 = 0; /* arg is null but recv is not */ +if (var_variables177 == NULL) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1258); +fatal_exit(1); +} else { +var193 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_variables177, 0l); } -if (0) { -{ /* Inline kernel#Object#== (var_mclass,((val*)NULL)) on */ -var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on */ -var9 = var_mclass == var_other; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +var194 = ((val*(*)(val* self))(var_coltype173->class->vft[COLOR_nitc__model__MClassType__arguments]))(var_coltype173); /* arguments on */ } +{ +var195 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var194, 0l); } -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; +{ +{ /* Inline typing$Variable$declared_type= (var193,var195) on */ +var193->attrs[COLOR_nitc__typing__Variable___declared_type].val = var195; /* _declared_type on */ +RET_LABEL196:(void)0; } -var4 = var5; } -if (var4){ -goto RET_LABEL; -} else { +if (var_variables177 == NULL) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -{ -{ /* Inline model#MClass#mclass_type (var_mclass) on */ -var12 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var12 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 507); +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1259); fatal_exit(1); +} else { +var197 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_variables177, 1l); } -var10 = var12; -RET_LABEL11:(void)0; +{ +var198 = ((val*(*)(val* self))(var_coltype173->class->vft[COLOR_nitc__model__MClassType__arguments]))(var_coltype173); /* arguments on */ } +{ +var199 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var198, 1l); } { -{ /* Inline typing#AExpr#mtype= (self,var10) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var10; /* _mtype on */ -RET_LABEL13:(void)0; +{ /* Inline typing$Variable$declared_type= (var197,var199) on */ +var197->attrs[COLOR_nitc__typing__Variable___declared_type].val = var199; /* _declared_type on */ +RET_LABEL200:(void)0; } } -RET_LABEL:; } -/* method typing#ACharExpr#accept_typing for (self: ACharExpr, TypeVisitor) */ -void nitc__typing___ACharExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -static val* varonce; -val* var /* : String */; -char* var1 /* : NativeString */; -val* var2 /* : String */; -val* var3 /* : nullable MClass */; -val* var_mclass /* var mclass: nullable MClass */; -short int var4 /* : Bool */; -short int var5 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var7 /* : Bool */; -short int var9 /* : Bool */; -val* var10 /* : MClassType */; -val* var12 /* : MClassType */; -var_v = p0; -if (likely(varonce!=NULL)) { -var = varonce; +var_is_map = 1; } else { -var1 = "Char"; -var2 = core__flat___NativeString___to_s_full(var1, 4l, 4l); -var = var2; -varonce = var; } -{ -var3 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var); +var202 = !var_is_col; +var_203 = var202; +if (var202){ +var204 = !var_is_map; +var201 = var204; +} else { +var201 = var_203; } -var_mclass = var3; -if (var_mclass == NULL) { -var4 = 1; /* is null */ +if (var201){ +if (likely(varonce205!=NULL)) { +var206 = varonce205; } else { -var4 = 0; /* arg is null but recv is not */ +var207 = "Type Error: `for` expects the method `iterator` to return an `Iterator` or `MapIterator` type."; +var209 = (val*)(94l<<2|1); +var210 = (val*)(94l<<2|1); +var211 = (val*)((long)(0)<<2|3); +var212 = (val*)((long)(0)<<2|3); +var208 = core__flat___CString___to_s_unsafe(var207, var209, var210, var211, var212); +var206 = var208; +varonce205 = var206; } -if (0) { -{ /* Inline kernel#Object#== (var_mclass,((val*)NULL)) on */ -var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on */ -var9 = var_mclass == var_other; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var206); /* Direct call typing$TypeVisitor$error on */ } +goto RET_LABEL; +} else { } -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; +{ +var213 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on */ } -var4 = var5; +if (var213){ +{ +var214 = nitc__typing___nitc__typing__TypeVisitor___anchor_to(var_v, var_mtype); } -if (var4){ -goto RET_LABEL; +var_mtype = var214; } else { } { -{ /* Inline model#MClass#mclass_type (var_mclass) on */ -var12 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var12 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 507); -fatal_exit(1); +var215 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__undecorate]))(var_mtype); /* undecorate on */ } -var10 = var12; -RET_LABEL11:(void)0; +var_mtype = var215; +/* isa MClassType */ +cltype217 = type_nitc__MClassType.color; +idtype218 = type_nitc__MClassType.id; +if(cltype217 >= var_mtype->type->table_size) { +var216 = 0; +} else { +var216 = var_mtype->type->type_table[cltype217] == idtype218; } +if (unlikely(!var216)) { +var_class_name = var_mtype == NULL ? "null" : var_mtype->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1273); +fatal_exit(1); } { -{ /* Inline typing#AExpr#mtype= (self,var10) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var10; /* _mtype on */ -RET_LABEL13:(void)0; -} +{ /* Inline typing$AForGroup$coltype= (self,var_mtype) on */ +self->attrs[COLOR_nitc__typing__AForGroup___coltype].val = var_mtype; /* _coltype on */ +RET_LABEL219:(void)0; } -RET_LABEL:; } -/* method typing#AStringFormExpr#accept_typing for (self: AStringFormExpr, TypeVisitor) */ -void nitc__typing___AStringFormExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -static val* varonce; -val* var /* : String */; -char* var1 /* : NativeString */; -val* var2 /* : String */; -val* var3 /* : nullable MClass */; -val* var_mclass /* var mclass: nullable MClass */; -short int var4 /* : Bool */; -short int var5 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var7 /* : Bool */; -short int var9 /* : Bool */; -val* var10 /* : MClassType */; -val* var12 /* : MClassType */; -var_v = p0; -if (likely(varonce!=NULL)) { -var = varonce; +if (likely(varonce220!=NULL)) { +var221 = varonce220; } else { -var1 = "String"; -var2 = core__flat___NativeString___to_s_full(var1, 6l, 6l); -var = var2; -varonce = var; +var222 = "is_ok"; +var224 = (val*)(5l<<2|1); +var225 = (val*)(5l<<2|1); +var226 = (val*)((long)(0)<<2|3); +var227 = (val*)((long)(0)<<2|3); +var223 = core__flat___CString___to_s_unsafe(var222, var224, var225, var226, var227); +var221 = var223; +varonce220 = var221; } { -var3 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var); +var228 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_ittype, var221, 0); } -var_mclass = var3; -if (var_mclass == NULL) { -var4 = 1; /* is null */ +var_ikdef = var228; +if (var_ikdef == NULL) { +var229 = 1; /* is null */ } else { -var4 = 0; /* arg is null but recv is not */ +var229 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_mclass,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_ikdef,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on */ -var9 = var_mclass == var_other; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_ikdef,var_other) on */ +var234 = var_ikdef == var_other; +var232 = var234; +goto RET_LABEL233; +RET_LABEL233:(void)0; } } -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; +var230 = var232; +goto RET_LABEL231; +RET_LABEL231:(void)0; } -var4 = var5; +var229 = var230; } -if (var4){ -goto RET_LABEL; +if (var229){ +if (unlikely(varonce235==NULL)) { +var236 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String); +if (likely(varonce237!=NULL)) { +var238 = varonce237; } else { +var239 = "Type Error: `for` expects a method `is_ok` in type `"; +var241 = (val*)(52l<<2|1); +var242 = (val*)(52l<<2|1); +var243 = (val*)((long)(0)<<2|3); +var244 = (val*)((long)(0)<<2|3); +var240 = core__flat___CString___to_s_unsafe(var239, var241, var242, var243, var244); +var238 = var240; +varonce237 = var238; } -{ -{ /* Inline model#MClass#mclass_type (var_mclass) on */ -var12 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var12 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 507); -fatal_exit(1); +((struct instance_core__NativeArray*)var236)->values[0]=var238; +if (likely(varonce245!=NULL)) { +var246 = varonce245; +} else { +var247 = "`."; +var249 = (val*)(2l<<2|1); +var250 = (val*)(2l<<2|1); +var251 = (val*)((long)(0)<<2|3); +var252 = (val*)((long)(0)<<2|3); +var248 = core__flat___CString___to_s_unsafe(var247, var249, var250, var251, var252); +var246 = var248; +varonce245 = var246; } -var10 = var12; -RET_LABEL11:(void)0; +((struct instance_core__NativeArray*)var236)->values[2]=var246; +} else { +var236 = varonce235; +varonce235 = NULL; } +{ +var253 = ((val*(*)(val* self))(var_ittype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ittype); /* to_s on */ } +((struct instance_core__NativeArray*)var236)->values[1]=var253; { -{ /* Inline typing#AExpr#mtype= (self,var10) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var10; /* _mtype on */ -RET_LABEL13:(void)0; +var254 = ((val*(*)(val* self))(var236->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var236); /* native_to_s on */ } +varonce235 = var236; +{ +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var254); /* Direct call typing$TypeVisitor$error on */ } -RET_LABEL:; +goto RET_LABEL; +} else { } -/* method typing#ASuperstringExpr#accept_typing for (self: ASuperstringExpr, TypeVisitor) */ -void nitc__typing___ASuperstringExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -static val* varonce; -val* var /* : String */; -char* var1 /* : NativeString */; -val* var2 /* : String */; -val* var3 /* : nullable MClass */; -val* var_mclass /* var mclass: nullable MClass */; -short int var4 /* : Bool */; -short int var5 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var7 /* : Bool */; -short int var9 /* : Bool */; -val* var10 /* : MClassType */; -val* var12 /* : MClassType */; -static val* varonce14; -val* var15 /* : String */; -char* var16 /* : NativeString */; -val* var17 /* : String */; -val* var18 /* : nullable MClass */; -val* var_objclass /* var objclass: nullable MClass */; -short int var19 /* : Bool */; -short int var20 /* : Bool */; -short int var22 /* : Bool */; -short int var24 /* : Bool */; -val* var25 /* : MClassType */; -val* var27 /* : MClassType */; -val* var_objtype /* var objtype: MClassType */; -val* var28 /* : ANodes[AExpr] */; -val* var30 /* : ANodes[AExpr] */; -val* var_ /* var : ANodes[AExpr] */; -val* var31 /* : Iterator[ANode] */; -val* var_32 /* var : Iterator[AExpr] */; -short int var33 /* : Bool */; -val* var34 /* : nullable Object */; -val* var_nexpr /* var nexpr: AExpr */; -val* var35 /* : nullable MType */; -var_v = p0; -if (likely(varonce!=NULL)) { -var = varonce; +{ +{ /* Inline typing$AForGroup$method_is_ok= (self,var_ikdef) on */ +self->attrs[COLOR_nitc__typing__AForGroup___method_is_ok].val = var_ikdef; /* _method_is_ok on */ +RET_LABEL255:(void)0; +} +} +if (likely(varonce256!=NULL)) { +var257 = varonce256; } else { -var1 = "String"; -var2 = core__flat___NativeString___to_s_full(var1, 6l, 6l); -var = var2; -varonce = var; +var258 = "item"; +var260 = (val*)(4l<<2|1); +var261 = (val*)(4l<<2|1); +var262 = (val*)((long)(0)<<2|3); +var263 = (val*)((long)(0)<<2|3); +var259 = core__flat___CString___to_s_unsafe(var258, var260, var261, var262, var263); +var257 = var259; +varonce256 = var257; } { -var3 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var); +var264 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_ittype, var257, 0); } -var_mclass = var3; -if (var_mclass == NULL) { -var4 = 1; /* is null */ +var_itemdef = var264; +if (var_itemdef == NULL) { +var265 = 1; /* is null */ } else { -var4 = 0; /* arg is null but recv is not */ +var265 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_mclass,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_itemdef,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on */ -var9 = var_mclass == var_other; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; -} -} -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; -} -var4 = var5; +{ /* Inline kernel$Object$is_same_instance (var_itemdef,var_other) on */ +var270 = var_itemdef == var_other; +var268 = var270; +goto RET_LABEL269; +RET_LABEL269:(void)0; +} +} +var266 = var268; +goto RET_LABEL267; +RET_LABEL267:(void)0; +} +var265 = var266; +} +if (var265){ +if (unlikely(varonce271==NULL)) { +var272 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String); +if (likely(varonce273!=NULL)) { +var274 = varonce273; +} else { +var275 = "Type Error: `for` expects a method `item` in type `"; +var277 = (val*)(51l<<2|1); +var278 = (val*)(51l<<2|1); +var279 = (val*)((long)(0)<<2|3); +var280 = (val*)((long)(0)<<2|3); +var276 = core__flat___CString___to_s_unsafe(var275, var277, var278, var279, var280); +var274 = var276; +varonce273 = var274; +} +((struct instance_core__NativeArray*)var272)->values[0]=var274; +if (likely(varonce281!=NULL)) { +var282 = varonce281; +} else { +var283 = "`."; +var285 = (val*)(2l<<2|1); +var286 = (val*)(2l<<2|1); +var287 = (val*)((long)(0)<<2|3); +var288 = (val*)((long)(0)<<2|3); +var284 = core__flat___CString___to_s_unsafe(var283, var285, var286, var287, var288); +var282 = var284; +varonce281 = var282; } -if (var4){ -goto RET_LABEL; +((struct instance_core__NativeArray*)var272)->values[2]=var282; } else { +var272 = varonce271; +varonce271 = NULL; } { -{ /* Inline model#MClass#mclass_type (var_mclass) on */ -var12 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var12 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 507); -fatal_exit(1); +var289 = ((val*(*)(val* self))(var_ittype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ittype); /* to_s on */ } -var10 = var12; -RET_LABEL11:(void)0; +((struct instance_core__NativeArray*)var272)->values[1]=var289; +{ +var290 = ((val*(*)(val* self))(var272->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var272); /* native_to_s on */ +} +varonce271 = var272; +{ +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var290); /* Direct call typing$TypeVisitor$error on */ } +goto RET_LABEL; +} else { } { -{ /* Inline typing#AExpr#mtype= (self,var10) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var10; /* _mtype on */ -RET_LABEL13:(void)0; +{ /* Inline typing$AForGroup$method_item= (self,var_itemdef) on */ +self->attrs[COLOR_nitc__typing__AForGroup___method_item].val = var_itemdef; /* _method_item on */ +RET_LABEL291:(void)0; } } -if (likely(varonce14!=NULL)) { -var15 = varonce14; +if (likely(varonce292!=NULL)) { +var293 = varonce292; } else { -var16 = "Object"; -var17 = core__flat___NativeString___to_s_full(var16, 6l, 6l); -var15 = var17; -varonce14 = var15; +var294 = "next"; +var296 = (val*)(4l<<2|1); +var297 = (val*)(4l<<2|1); +var298 = (val*)((long)(0)<<2|3); +var299 = (val*)((long)(0)<<2|3); +var295 = core__flat___CString___to_s_unsafe(var294, var296, var297, var298, var299); +var293 = var295; +varonce292 = var293; } { -var18 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var15); +var300 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_ittype, var293, 0); } -var_objclass = var18; -if (var_objclass == NULL) { -var19 = 1; /* is null */ +var_nextdef = var300; +if (var_nextdef == NULL) { +var301 = 1; /* is null */ } else { -var19 = 0; /* arg is null but recv is not */ +var301 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_objclass,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_nextdef,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_objclass,var_other) on */ -var24 = var_objclass == var_other; -var22 = var24; -goto RET_LABEL23; -RET_LABEL23:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_nextdef,var_other) on */ +var306 = var_nextdef == var_other; +var304 = var306; +goto RET_LABEL305; +RET_LABEL305:(void)0; } } -var20 = var22; -goto RET_LABEL21; -RET_LABEL21:(void)0; +var302 = var304; +goto RET_LABEL303; +RET_LABEL303:(void)0; } -var19 = var20; +var301 = var302; } -if (var19){ -goto RET_LABEL; +if (var301){ +if (unlikely(varonce307==NULL)) { +var308 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String); +if (likely(varonce309!=NULL)) { +var310 = varonce309; } else { +var311 = "Type Error: `for` expects a method `next` in type "; +var313 = (val*)(50l<<2|1); +var314 = (val*)(50l<<2|1); +var315 = (val*)((long)(0)<<2|3); +var316 = (val*)((long)(0)<<2|3); +var312 = core__flat___CString___to_s_unsafe(var311, var313, var314, var315, var316); +var310 = var312; +varonce309 = var310; } -{ -{ /* Inline model#MClass#mclass_type (var_objclass) on */ -var27 = var_objclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var27 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 507); -fatal_exit(1); +((struct instance_core__NativeArray*)var308)->values[0]=var310; +if (likely(varonce317!=NULL)) { +var318 = varonce317; +} else { +var319 = "."; +var321 = (val*)(1l<<2|1); +var322 = (val*)(1l<<2|1); +var323 = (val*)((long)(0)<<2|3); +var324 = (val*)((long)(0)<<2|3); +var320 = core__flat___CString___to_s_unsafe(var319, var321, var322, var323, var324); +var318 = var320; +varonce317 = var318; } -var25 = var27; -RET_LABEL26:(void)0; +((struct instance_core__NativeArray*)var308)->values[2]=var318; +} else { +var308 = varonce307; +varonce307 = NULL; } +{ +var325 = ((val*(*)(val* self))(var_ittype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ittype); /* to_s on */ } -var_objtype = var25; +((struct instance_core__NativeArray*)var308)->values[1]=var325; { -{ /* Inline parser_nodes#ASuperstringExpr#n_exprs (self) on */ -var30 = self->attrs[COLOR_nitc__parser_nodes__ASuperstringExpr___n_exprs].val; /* _n_exprs on */ -if (unlikely(var30 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2564); -fatal_exit(1); +var326 = ((val*(*)(val* self))(var308->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var308); /* native_to_s on */ } -var28 = var30; -RET_LABEL29:(void)0; +varonce307 = var308; +{ +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var326); /* Direct call typing$TypeVisitor$error on */ } +goto RET_LABEL; +} else { } -var_ = var28; { -var31 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_); +{ /* Inline typing$AForGroup$method_next= (self,var_nextdef) on */ +self->attrs[COLOR_nitc__typing__AForGroup___method_next].val = var_nextdef; /* _method_next on */ +RET_LABEL327:(void)0; } -var_32 = var31; -for(;;) { -{ -var33 = ((short int(*)(val* self))((((long)var_32&3)?class_info[((long)var_32&3)]:var_32->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_32); /* is_ok on */ } -if (var33){ +if (likely(varonce328!=NULL)) { +var329 = varonce328; } else { -goto BREAK_label; +var330 = "finish"; +var332 = (val*)(6l<<2|1); +var333 = (val*)(6l<<2|1); +var334 = (val*)((long)(0)<<2|3); +var335 = (val*)((long)(0)<<2|3); +var331 = core__flat___CString___to_s_unsafe(var330, var332, var333, var334, var335); +var329 = var331; +varonce328 = var329; } { -var34 = ((val*(*)(val* self))((((long)var_32&3)?class_info[((long)var_32&3)]:var_32->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_32); /* item on */ +var336 = nitc__typing___nitc__typing__TypeVisitor___try_get_method(var_v, self, var_ittype, var329, 0); } -var_nexpr = var34; { -var35 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var_nexpr, var_objtype); +{ /* Inline typing$AForGroup$method_finish= (self,var336) on */ +self->attrs[COLOR_nitc__typing__AForGroup___method_finish].val = var336; /* _method_finish on */ +RET_LABEL337:(void)0; +} +} +if (var_is_map){ +if (likely(varonce338!=NULL)) { +var339 = varonce338; +} else { +var340 = "key"; +var342 = (val*)(3l<<2|1); +var343 = (val*)(3l<<2|1); +var344 = (val*)((long)(0)<<2|3); +var345 = (val*)((long)(0)<<2|3); +var341 = core__flat___CString___to_s_unsafe(var340, var342, var343, var344, var345); +var339 = var341; +varonce338 = var339; } { -((void(*)(val* self))((((long)var_32&3)?class_info[((long)var_32&3)]:var_32->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_32); /* next on */ +var346 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_ittype, var339, 0); } +var_keydef = var346; +if (var_keydef == NULL) { +var347 = 1; /* is null */ +} else { +var347 = 0; /* arg is null but recv is not */ } -BREAK_label: (void)0; +if (0) { +{ /* Inline kernel$Object$== (var_keydef,((val*)NULL)) on */ +var_other = ((val*)NULL); { -((void(*)(val* self))((((long)var_32&3)?class_info[((long)var_32&3)]:var_32->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_32); /* finish on */ +{ /* Inline kernel$Object$is_same_instance (var_keydef,var_other) on */ +var352 = var_keydef == var_other; +var350 = var352; +goto RET_LABEL351; +RET_LABEL351:(void)0; } -RET_LABEL:; } -/* method typing#AArrayExpr#with_capacity_callsite for (self: AArrayExpr): nullable CallSite */ -val* nitc__typing___AArrayExpr___with_capacity_callsite(val* self) { -val* var /* : nullable CallSite */; -val* var1 /* : nullable CallSite */; -var1 = self->attrs[COLOR_nitc__typing__AArrayExpr___with_capacity_callsite].val; /* _with_capacity_callsite on */ -var = var1; -RET_LABEL:; -return var; +var348 = var350; +goto RET_LABEL349; +RET_LABEL349:(void)0; } -/* method typing#AArrayExpr#with_capacity_callsite= for (self: AArrayExpr, nullable CallSite) */ -void nitc__typing___AArrayExpr___with_capacity_callsite_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__AArrayExpr___with_capacity_callsite].val = p0; /* _with_capacity_callsite on */ -RET_LABEL:; +var347 = var348; } -/* method typing#AArrayExpr#push_callsite for (self: AArrayExpr): nullable CallSite */ -val* nitc__typing___AArrayExpr___push_callsite(val* self) { -val* var /* : nullable CallSite */; -val* var1 /* : nullable CallSite */; -var1 = self->attrs[COLOR_nitc__typing__AArrayExpr___push_callsite].val; /* _push_callsite on */ -var = var1; -RET_LABEL:; -return var; +if (var347){ +if (unlikely(varonce353==NULL)) { +var354 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String); +if (likely(varonce355!=NULL)) { +var356 = varonce355; +} else { +var357 = "Type Error: `for` expects a method `key` in type `"; +var359 = (val*)(50l<<2|1); +var360 = (val*)(50l<<2|1); +var361 = (val*)((long)(0)<<2|3); +var362 = (val*)((long)(0)<<2|3); +var358 = core__flat___CString___to_s_unsafe(var357, var359, var360, var361, var362); +var356 = var358; +varonce355 = var356; } -/* method typing#AArrayExpr#push_callsite= for (self: AArrayExpr, nullable CallSite) */ -void nitc__typing___AArrayExpr___push_callsite_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__AArrayExpr___push_callsite].val = p0; /* _push_callsite on */ -RET_LABEL:; +((struct instance_core__NativeArray*)var354)->values[0]=var356; +if (likely(varonce363!=NULL)) { +var364 = varonce363; +} else { +var365 = "`."; +var367 = (val*)(2l<<2|1); +var368 = (val*)(2l<<2|1); +var369 = (val*)((long)(0)<<2|3); +var370 = (val*)((long)(0)<<2|3); +var366 = core__flat___CString___to_s_unsafe(var365, var367, var368, var369, var370); +var364 = var366; +varonce363 = var364; } -/* method typing#AArrayExpr#element_mtype for (self: AArrayExpr): nullable MType */ -val* nitc__typing___AArrayExpr___element_mtype(val* self) { -val* var /* : nullable MType */; -val* var1 /* : nullable MType */; -var1 = self->attrs[COLOR_nitc__typing__AArrayExpr___element_mtype].val; /* _element_mtype on */ -var = var1; -RET_LABEL:; -return var; +((struct instance_core__NativeArray*)var354)->values[2]=var364; +} else { +var354 = varonce353; +varonce353 = NULL; } -/* method typing#AArrayExpr#element_mtype= for (self: AArrayExpr, nullable MType) */ -void nitc__typing___AArrayExpr___element_mtype_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__AArrayExpr___element_mtype].val = p0; /* _element_mtype on */ -RET_LABEL:; +{ +var371 = ((val*(*)(val* self))(var_ittype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ittype); /* to_s on */ } -/* method typing#AArrayExpr#set_comprehension for (self: AArrayExpr, nullable AExpr) */ -void nitc__typing___AArrayExpr___set_comprehension(val* self, val* p0) { -val* var_n /* var n: nullable AExpr */; -short int var /* : Bool */; -short int var1 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var3 /* : Bool */; -short int var5 /* : Bool */; -short int var6 /* : Bool */; -int cltype; -int idtype; -val* var7 /* : nullable AExpr */; -val* var9 /* : nullable AExpr */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -val* var13 /* : nullable AExpr */; -val* var15 /* : nullable AExpr */; -val* var16 /* : nullable AExpr */; -val* var18 /* : nullable AExpr */; -var_n = p0; -if (var_n == NULL) { -var = 1; /* is null */ +((struct instance_core__NativeArray*)var354)->values[1]=var371; +{ +var372 = ((val*(*)(val* self))(var354->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var354); /* native_to_s on */ +} +varonce353 = var354; +{ +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var372); /* Direct call typing$TypeVisitor$error on */ +} +goto RET_LABEL; +} else { +} +{ +{ /* Inline typing$AForGroup$method_key= (self,var_keydef) on */ +self->attrs[COLOR_nitc__typing__AForGroup___method_key].val = var_keydef; /* _method_key on */ +RET_LABEL373:(void)0; +} +} +} else { +} +{ +{ /* Inline scope$AForGroup$variables (self) on */ +var377 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on */ +var375 = var377; +RET_LABEL376:(void)0; +} +} +if (var375 == NULL) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1308); +fatal_exit(1); } else { -var = 0; /* arg is null but recv is not */ +{ /* Inline array$AbstractArrayRead$length (var375) on */ +if (unlikely(var375 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 26); +fatal_exit(1); +} +var380 = var375->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on */ +var378 = var380; +RET_LABEL379:(void)0; +} } -if (0) { -{ /* Inline kernel#Object#== (var_n,((val*)NULL)) on */ -var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_n,var_other) on */ -var5 = var_n == var_other; -var3 = var5; -goto RET_LABEL4; -RET_LABEL4:(void)0; +{ /* Inline kernel$Int$== (var378,1l) on */ +var383 = var378 == 1l; +var381 = var383; +goto RET_LABEL382; +RET_LABEL382:(void)0; } } -var1 = var3; -goto RET_LABEL2; -RET_LABEL2:(void)0; +var_384 = var381; +if (var381){ +{ +{ /* Inline parser_nodes$AForGroup$n_expr (self) on */ +var387 = self->attrs[COLOR_nitc__parser_nodes__AForGroup___n_expr].val; /* _n_expr on */ +if (unlikely(var387 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var = var1; +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2024); +fatal_exit(1); } -if (var){ -goto RET_LABEL; +var385 = var387; +RET_LABEL386:(void)0; +} +} +/* isa ARangeExpr */ +cltype389 = type_nitc__ARangeExpr.color; +idtype390 = type_nitc__ARangeExpr.id; +if(cltype389 >= var385->type->table_size) { +var388 = 0; } else { -/* isa AForExpr */ -cltype = type_nitc__AForExpr.color; -idtype = type_nitc__AForExpr.id; -if(cltype >= var_n->type->table_size) { -var6 = 0; +var388 = var385->type->type_table[cltype389] == idtype390; +} +var374 = var388; } else { -var6 = var_n->type->type_table[cltype] == idtype; +var374 = var_384; } -if (var6){ +if (var374){ { -{ /* Inline parser_nodes#AForExpr#n_block (var_n) on */ -var9 = var_n->attrs[COLOR_nitc__parser_nodes__AForExpr___n_block].val; /* _n_block on */ -var7 = var9; -RET_LABEL8:(void)0; +{ /* Inline scope$AForGroup$variables (self) on */ +var393 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on */ +var391 = var393; +RET_LABEL392:(void)0; +} +} +if (var391 == NULL) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1309); +fatal_exit(1); +} else { +var394 = core___core__SequenceRead___Collection__first(var391); } +var_variable = var394; +{ +{ /* Inline typing$Variable$declared_type (var_variable) on */ +var397 = var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val; /* _declared_type on */ +var395 = var397; +RET_LABEL396:(void)0; +} +} +if (unlikely(var395 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1310); +fatal_exit(1); } +var_vtype = var395; { -nitc__typing___AArrayExpr___set_comprehension(self, var7); /* Direct call typing#AArrayExpr#set_comprehension on */ +{ /* Inline parser_nodes$AForGroup$n_expr (self) on */ +var400 = self->attrs[COLOR_nitc__parser_nodes__AForGroup___n_expr].val; /* _n_expr on */ +if (unlikely(var400 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2024); +fatal_exit(1); +} +var398 = var400; +RET_LABEL399:(void)0; } +} +/* isa AOrangeExpr */ +cltype402 = type_nitc__AOrangeExpr.color; +idtype403 = type_nitc__AOrangeExpr.id; +if(cltype402 >= var398->type->table_size) { +var401 = 0; } else { -/* isa AIfExpr */ -cltype11 = type_nitc__AIfExpr.color; -idtype12 = type_nitc__AIfExpr.id; -if(cltype11 >= var_n->type->table_size) { -var10 = 0; +var401 = var398->type->type_table[cltype402] == idtype403; +} +if (var401){ +if (likely(varonce404!=NULL)) { +var405 = varonce404; } else { -var10 = var_n->type->type_table[cltype11] == idtype12; +var406 = "<"; +var408 = (val*)(1l<<2|1); +var409 = (val*)(1l<<2|1); +var410 = (val*)((long)(0)<<2|3); +var411 = (val*)((long)(0)<<2|3); +var407 = core__flat___CString___to_s_unsafe(var406, var408, var409, var410, var411); +var405 = var407; +varonce404 = var405; } -if (var10){ { -{ /* Inline parser_nodes#AIfExpr#n_then (var_n) on */ -var15 = var_n->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on */ -var13 = var15; -RET_LABEL14:(void)0; +var412 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_vtype, var405, 0); +} +{ +{ /* Inline typing$AForGroup$method_lt= (self,var412) on */ +self->attrs[COLOR_nitc__typing__AForGroup___method_lt].val = var412; /* _method_lt on */ +RET_LABEL413:(void)0; } } +} else { +if (likely(varonce414!=NULL)) { +var415 = varonce414; +} else { +var416 = "<="; +var418 = (val*)(2l<<2|1); +var419 = (val*)(2l<<2|1); +var420 = (val*)((long)(0)<<2|3); +var421 = (val*)((long)(0)<<2|3); +var417 = core__flat___CString___to_s_unsafe(var416, var418, var419, var420, var421); +var415 = var417; +varonce414 = var415; +} { -nitc__typing___AArrayExpr___set_comprehension(self, var13); /* Direct call typing#AArrayExpr#set_comprehension on */ +var422 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_vtype, var415, 0); } { -{ /* Inline parser_nodes#AIfExpr#n_else (var_n) on */ -var18 = var_n->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on */ -var16 = var18; -RET_LABEL17:(void)0; +{ /* Inline typing$AForGroup$method_lt= (self,var422) on */ +self->attrs[COLOR_nitc__typing__AForGroup___method_lt].val = var422; /* _method_lt on */ +RET_LABEL423:(void)0; } } -{ -nitc__typing___AArrayExpr___set_comprehension(self, var16); /* Direct call typing#AArrayExpr#set_comprehension on */ } +if (likely(varonce424!=NULL)) { +var425 = varonce424; } else { +var426 = "successor"; +var428 = (val*)(9l<<2|1); +var429 = (val*)(9l<<2|1); +var430 = (val*)((long)(0)<<2|3); +var431 = (val*)((long)(0)<<2|3); +var427 = core__flat___CString___to_s_unsafe(var426, var428, var429, var430, var431); +var425 = var427; +varonce424 = var425; +} { -{ /* Inline typing#AExpr#comprehension= (var_n,self) on */ -var_n->attrs[COLOR_nitc__typing__AExpr___comprehension].val = self; /* _comprehension on */ -RET_LABEL19:(void)0; +var432 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_vtype, var425, 0); +} +{ +{ /* Inline typing$AForGroup$method_successor= (self,var432) on */ +self->attrs[COLOR_nitc__typing__AForGroup___method_successor].val = var432; /* _method_successor on */ +RET_LABEL433:(void)0; } } +} else { } +RET_LABEL:; } +/* method typing$AWithExpr$method_start for (self: AWithExpr): nullable CallSite */ +val* nitc__typing___AWithExpr___method_start(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__AWithExpr___method_start].val; /* _method_start on */ +var = var1; +RET_LABEL:; +return var; } +/* method typing$AWithExpr$method_start= for (self: AWithExpr, nullable CallSite) */ +void nitc__typing___AWithExpr___method_start_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AWithExpr___method_start].val = p0; /* _method_start on */ RET_LABEL:; } -/* method typing#AArrayExpr#accept_typing for (self: AArrayExpr, TypeVisitor) */ -void nitc__typing___AArrayExpr___AExpr__accept_typing(val* self, val* p0) { +/* method typing$AWithExpr$method_finish for (self: AWithExpr): nullable CallSite */ +val* nitc__typing___AWithExpr___method_finish(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__AWithExpr___method_finish].val; /* _method_finish on */ +var = var1; +RET_LABEL:; +return var; +} +/* method typing$AWithExpr$method_finish= for (self: AWithExpr, nullable CallSite) */ +void nitc__typing___AWithExpr___method_finish_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AWithExpr___method_finish].val = p0; /* _method_finish on */ +RET_LABEL:; +} +/* method typing$AWithExpr$accept_typing for (self: AWithExpr, TypeVisitor) */ +void nitc__typing___AWithExpr___AExpr__accept_typing(val* self, val* p0) { val* var_v /* var v: TypeVisitor */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : nullable MType */; val* var_mtype /* var mtype: nullable MType */; -val* var /* : nullable AType */; -val* var2 /* : nullable AType */; -val* var_ntype /* var ntype: nullable AType */; -short int var3 /* : Bool */; short int var4 /* : Bool */; +short int var5 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var6 /* : Bool */; short int var7 /* : Bool */; -val* var8 /* : nullable MType */; short int var9 /* : Bool */; -short int var10 /* : Bool */; -val* var_other12 /* var other: nullable Object */; -short int var13 /* : Bool */; -short int var15 /* : Bool */; -val* var16 /* : Array[nullable MType] */; -val* var_mtypes /* var mtypes: Array[nullable MType] */; -short int var_useless /* var useless: Bool */; -val* var17 /* : ANodes[AExpr] */; -val* var19 /* : ANodes[AExpr] */; -val* var_ /* var : ANodes[AExpr] */; -val* var20 /* : Iterator[ANode] */; -val* var_21 /* var : Iterator[AExpr] */; -short int var22 /* : Bool */; -val* var23 /* : nullable Object */; -val* var_e /* var e: AExpr */; -val* var24 /* : nullable MType */; -val* var_t /* var t: nullable MType */; -short int var25 /* : Bool */; -short int var26 /* : Bool */; -short int var28 /* : Bool */; -short int var30 /* : Bool */; -short int var31 /* : Bool */; -short int var32 /* : Bool */; -short int var34 /* : Bool */; -short int var35 /* : Bool */; -val* var36 /* : nullable MType */; -short int var37 /* : Bool */; -short int var38 /* : Bool */; -short int var40 /* : Bool */; -short int var42 /* : Bool */; -short int var43 /* : Bool */; -short int var45 /* : Bool */; -short int var47 /* : Bool */; -short int var48 /* : Bool */; -short int var49 /* : Bool */; -short int var51 /* : Bool */; -short int var53 /* : Bool */; -val* var54 /* : nullable MType */; -val* var56 /* : nullable MType */; -short int var57 /* : Bool */; -short int var58 /* : Bool */; -short int var60 /* : Bool */; -short int var61 /* : Bool */; -val* var62 /* : nullable MType */; -val* var64 /* : nullable MType */; -val* var65 /* : nullable MType */; -short int var66 /* : Bool */; -short int var67 /* : Bool */; -short int var68 /* : Bool */; -short int var70 /* : Bool */; -short int var72 /* : Bool */; -short int var_73 /* var : Bool */; -short int var74 /* : Bool */; +static val* varonce; +val* var10 /* : String */; +char* var11 /* : CString */; +val* var12 /* : String */; +val* var13 /* : nullable Int */; +val* var14 /* : nullable Int */; +val* var15 /* : nullable Bool */; +val* var16 /* : nullable Bool */; +val* var17 /* : AExpr */; +val* var19 /* : AExpr */; +short int var20 /* : Bool */; int cltype; int idtype; -val* var75 /* : NativeArray[String] */; -static val* varonce; -static val* varonce76; -val* var77 /* : String */; -char* var78 /* : NativeString */; -val* var79 /* : String */; -static val* varonce80; -val* var81 /* : String */; -char* var82 /* : NativeString */; -val* var83 /* : String */; -val* var84 /* : String */; -val* var85 /* : String */; -short int var86 /* : Bool */; -short int var87 /* : Bool */; -short int var89 /* : Bool */; -short int var90 /* : Bool */; -val* var91 /* : ModelBuilder */; -val* var93 /* : ModelBuilder */; -static val* varonce94; -val* var95 /* : String */; -char* var96 /* : NativeString */; -val* var97 /* : String */; -val* var99 /* : NativeArray[String] */; -static val* varonce98; -static val* varonce100; -val* var101 /* : String */; -char* var102 /* : NativeString */; -val* var103 /* : String */; -static val* varonce104; -val* var105 /* : String */; -char* var106 /* : NativeString */; -val* var107 /* : String */; -val* var108 /* : String */; -val* var109 /* : String */; -static val* varonce111; -val* var112 /* : String */; -char* var113 /* : NativeString */; -val* var114 /* : String */; -val* var115 /* : nullable MClass */; -val* var_mclass /* var mclass: nullable MClass */; -short int var116 /* : Bool */; -short int var117 /* : Bool */; -short int var119 /* : Bool */; -short int var121 /* : Bool */; -val* var122 /* : Array[MType] */; -val* var_123 /* var : Array[MType] */; -val* var124 /* : MClassType */; -val* var_array_mtype /* var array_mtype: MClassType */; -static val* varonce125; -val* var126 /* : String */; -char* var127 /* : NativeString */; -val* var128 /* : String */; -val* var129 /* : nullable CallSite */; -static val* varonce131; -val* var132 /* : String */; -char* var133 /* : NativeString */; -val* var134 /* : String */; -val* var135 /* : nullable CallSite */; +val* var21 /* : nullable CallSite */; +static val* varonce23; +val* var24 /* : String */; +char* var25 /* : CString */; +val* var26 /* : String */; +val* var27 /* : nullable Int */; +val* var28 /* : nullable Int */; +val* var29 /* : nullable Bool */; +val* var30 /* : nullable Bool */; +val* var31 /* : AExpr */; +val* var33 /* : AExpr */; +short int var34 /* : Bool */; +int cltype35; +int idtype36; +val* var37 /* : nullable CallSite */; +val* var39 /* : nullable AExpr */; +val* var41 /* : nullable AExpr */; +val* var42 /* : nullable AExpr */; +val* var44 /* : nullable AExpr */; +val* var45 /* : nullable MType */; var_v = p0; -var_mtype = ((val*)NULL); { -{ /* Inline parser_nodes#AArrayExpr#n_type (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__AArrayExpr___n_type].val; /* _n_type on */ +{ /* Inline parser_nodes$AWithExpr$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2036); +fatal_exit(1); +} var = var2; RET_LABEL1:(void)0; } } -var_ntype = var; -if (var_ntype == NULL) { -var3 = 0; /* is null */ +{ +var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var); +} +var_mtype = var3; +if (var_mtype == NULL) { +var4 = 1; /* is null */ +} else { +var4 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +{ /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on */ +var9 = var_mtype == var_other; +var7 = var9; +goto RET_LABEL8; +RET_LABEL8:(void)0; +} +} +var5 = var7; +goto RET_LABEL6; +RET_LABEL6:(void)0; +} +var4 = var5; +} +if (var4){ +goto RET_LABEL; +} else { +} +if (likely(varonce!=NULL)) { +var10 = varonce; +} else { +var11 = "start"; +var13 = (val*)(5l<<2|1); +var14 = (val*)(5l<<2|1); +var15 = (val*)((long)(0)<<2|3); +var16 = (val*)((long)(0)<<2|3); +var12 = core__flat___CString___to_s_unsafe(var11, var13, var14, var15, var16); +var10 = var12; +varonce = var10; +} +{ +{ /* Inline parser_nodes$AWithExpr$n_expr (self) on */ +var19 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var19 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2036); +fatal_exit(1); +} +var17 = var19; +RET_LABEL18:(void)0; +} +} +/* isa ASelfExpr */ +cltype = type_nitc__ASelfExpr.color; +idtype = type_nitc__ASelfExpr.id; +if(cltype >= var17->type->table_size) { +var20 = 0; } else { -var3 = 1; /* arg is null and recv is not */ +var20 = var17->type->type_table[cltype] == idtype; } -if (0) { -{ /* Inline kernel#Object#!= (var_ntype,((val*)NULL)) on */ -var_other = ((val*)NULL); { -var6 = ((short int(*)(val* self, val* p0))(var_ntype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ntype, var_other); /* == on */ +var21 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_mtype, var10, var20); } -var7 = !var6; -var4 = var7; -goto RET_LABEL5; -RET_LABEL5:(void)0; +{ +{ /* Inline typing$AWithExpr$method_start= (self,var21) on */ +self->attrs[COLOR_nitc__typing__AWithExpr___method_start].val = var21; /* _method_start on */ +RET_LABEL22:(void)0; } -var3 = var4; } -if (var3){ +if (likely(varonce23!=NULL)) { +var24 = varonce23; +} else { +var25 = "finish"; +var27 = (val*)(6l<<2|1); +var28 = (val*)(6l<<2|1); +var29 = (val*)((long)(0)<<2|3); +var30 = (val*)((long)(0)<<2|3); +var26 = core__flat___CString___to_s_unsafe(var25, var27, var28, var29, var30); +var24 = var26; +varonce23 = var24; +} { -var8 = nitc__typing___nitc__typing__TypeVisitor___resolve_mtype(var_v, var_ntype); +{ /* Inline parser_nodes$AWithExpr$n_expr (self) on */ +var33 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var33 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var_mtype = var8; -if (var_mtype == NULL) { -var9 = 1; /* is null */ +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2036); +fatal_exit(1); +} +var31 = var33; +RET_LABEL32:(void)0; +} +} +/* isa ASelfExpr */ +cltype35 = type_nitc__ASelfExpr.color; +idtype36 = type_nitc__ASelfExpr.id; +if(cltype35 >= var31->type->table_size) { +var34 = 0; } else { -var9 = 0; /* arg is null but recv is not */ +var34 = var31->type->type_table[cltype35] == idtype36; } -if (0) { -{ /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on */ -var_other12 = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_mtype,var_other12) on */ -var15 = var_mtype == var_other12; -var13 = var15; -goto RET_LABEL14; -RET_LABEL14:(void)0; +var37 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_mtype, var24, var34); } +{ +{ /* Inline typing$AWithExpr$method_finish= (self,var37) on */ +self->attrs[COLOR_nitc__typing__AWithExpr___method_finish].val = var37; /* _method_finish on */ +RET_LABEL38:(void)0; } -var10 = var13; -goto RET_LABEL11; -RET_LABEL11:(void)0; } -var9 = var10; +{ +{ /* Inline parser_nodes$AWithExpr$n_block (self) on */ +var41 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_block].val; /* _n_block on */ +var39 = var41; +RET_LABEL40:(void)0; } -if (var9){ -goto RET_LABEL; -} else { } +{ +nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var39); /* Direct call typing$TypeVisitor$visit_stmt on */ +} +{ +{ /* Inline parser_nodes$AWithExpr$n_block (self) on */ +var44 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_block].val; /* _n_block on */ +var42 = var44; +RET_LABEL43:(void)0; +} +} +if (var42 == NULL) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1336); +fatal_exit(1); } else { +var45 = ((val*(*)(val* self))(var42->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var42); /* mtype on */ } -var16 = NEW_core__Array(&type_core__Array__nullable__nitc__MType); { -core___core__Array___core__kernel__Object__init(var16); /* Direct call array#Array#init on */ +{ /* Inline typing$AExpr$mtype= (self,var45) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var45; /* _mtype on */ +RET_LABEL46:(void)0; +} } -var_mtypes = var16; -var_useless = 0; { -{ /* Inline parser_nodes#AArrayExpr#n_exprs (self) on */ -var19 = self->attrs[COLOR_nitc__parser_nodes__AArrayExpr___n_exprs].val; /* _n_exprs on */ -if (unlikely(var19 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2460); +{ /* Inline typing$AExpr$is_typed= (self,1) on */ +self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ +RET_LABEL47:(void)0; +} +} +RET_LABEL:; +} +/* method typing$AAssertExpr$accept_typing for (self: AAssertExpr, TypeVisitor) */ +void nitc__typing___AAssertExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : nullable MType */; +val* var4 /* : nullable AExpr */; +val* var6 /* : nullable AExpr */; +var_v = p0; +{ +{ /* Inline parser_nodes$AAssertExpr$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2056); fatal_exit(1); } -var17 = var19; -RET_LABEL18:(void)0; +var = var2; +RET_LABEL1:(void)0; } } -var_ = var17; { -var20 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_); +var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var); } -var_21 = var20; -for(;;) { { -var22 = ((short int(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_21); /* is_ok on */ +{ /* Inline parser_nodes$AAssertExpr$n_else (self) on */ +var6 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_else].val; /* _n_else on */ +var4 = var6; +RET_LABEL5:(void)0; } -if (var22){ -} else { -goto BREAK_label; } { -var23 = ((val*(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_21); /* item on */ +nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var4); /* Direct call typing$TypeVisitor$visit_stmt on */ } -var_e = var23; { -var24 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var_e); +{ /* Inline typing$AExpr$is_typed= (self,1) on */ +self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ +RET_LABEL7:(void)0; } -var_t = var24; -if (var_t == NULL) { -var25 = 1; /* is null */ -} else { -var25 = 0; /* arg is null but recv is not */ } -if (0) { -{ /* Inline kernel#Object#== (var_t,((val*)NULL)) on */ -var_other12 = ((val*)NULL); +RET_LABEL:; +} +/* method typing$AOrExpr$accept_typing for (self: AOrExpr, TypeVisitor) */ +void nitc__typing___AOrExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : nullable MType */; +val* var4 /* : AExpr */; +val* var6 /* : AExpr */; +val* var7 /* : nullable MType */; +val* var8 /* : nullable MType */; +var_v = p0; { -{ /* Inline kernel#Object#is_same_instance (var_t,var_other12) on */ -var30 = var_t == var_other12; -var28 = var30; -goto RET_LABEL29; -RET_LABEL29:(void)0; +{ /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2131); +fatal_exit(1); } -var26 = var28; -goto RET_LABEL27; -RET_LABEL27:(void)0; +var = var2; +RET_LABEL1:(void)0; } -var25 = var26; } -if (var25){ -goto RET_LABEL; -} else { +{ +var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var); } { -nitc__typing___AArrayExpr___set_comprehension(self, var_e); /* Direct call typing#AArrayExpr#set_comprehension on */ +{ /* Inline parser_nodes$ABinBoolExpr$n_expr2 (self) on */ +var6 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on */ +if (unlikely(var6 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -if (var_mtype == NULL) { -var31 = 0; /* is null */ -} else { -var31 = 1; /* arg is null and recv is not */ +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2137); +fatal_exit(1); } -if (0) { -{ /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on */ -var_other = ((val*)NULL); -{ -var34 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mtype, var_other); /* == on */ +var4 = var6; +RET_LABEL5:(void)0; } -var35 = !var34; -var32 = var35; -goto RET_LABEL33; -RET_LABEL33:(void)0; } -var31 = var32; +{ +var7 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var4); } -if (var31){ { -var36 = nitc__typing___nitc__typing__TypeVisitor___check_subtype(var_v, var_e, var_t, var_mtype, 0); +var8 = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self); } -if (var36 == NULL) { -var37 = 1; /* is null */ -} else { -var37 = 0; /* arg is null but recv is not */ +{ +{ /* Inline typing$AExpr$mtype= (self,var8) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var8; /* _mtype on */ +RET_LABEL9:(void)0; } -if (0) { -{ /* Inline kernel#Object#== (var36,((val*)NULL)) on */ -var_other12 = ((val*)NULL); +} +RET_LABEL:; +} +/* method typing$AImpliesExpr$accept_typing for (self: AImpliesExpr, TypeVisitor) */ +void nitc__typing___AImpliesExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : nullable MType */; +val* var4 /* : AExpr */; +val* var6 /* : AExpr */; +val* var7 /* : nullable MType */; +val* var8 /* : nullable MType */; +var_v = p0; { -{ /* Inline kernel#Object#is_same_instance (var36,var_other12) on */ -var42 = var36 == var_other12; -var40 = var42; -goto RET_LABEL41; -RET_LABEL41:(void)0; +{ /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2131); +fatal_exit(1); } -var38 = var40; -goto RET_LABEL39; -RET_LABEL39:(void)0; +var = var2; +RET_LABEL1:(void)0; } -var37 = var38; } -if (var37){ -goto RET_LABEL; -} else { +{ +var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var); } { -{ /* Inline kernel#Object#== (var_t,var_mtype) on */ -var_other12 = var_mtype; +{ /* Inline parser_nodes$ABinBoolExpr$n_expr2 (self) on */ +var6 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on */ +if (unlikely(var6 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2137); +fatal_exit(1); +} +var4 = var6; +RET_LABEL5:(void)0; +} +} { -{ /* Inline kernel#Object#is_same_instance (var_t,var_other12) on */ -var47 = var_t == var_other12; -var45 = var47; -goto RET_LABEL46; -RET_LABEL46:(void)0; +var7 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var4); } +{ +var8 = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self); } -var43 = var45; -goto RET_LABEL44; -RET_LABEL44:(void)0; +{ +{ /* Inline typing$AExpr$mtype= (self,var8) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var8; /* _mtype on */ +RET_LABEL9:(void)0; } } -if (var43){ -var_useless = 1; -} else { +RET_LABEL:; } -} else { +/* method typing$AAndExpr$accept_typing for (self: AAndExpr, TypeVisitor) */ +void nitc__typing___AAndExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : nullable MType */; +val* var4 /* : AExpr */; +val* var6 /* : AExpr */; +val* var7 /* : nullable MType */; +val* var8 /* : nullable MType */; +var_v = p0; { -core___core__Array___core__abstract_collection__SimpleCollection__add(var_mtypes, var_t); /* Direct call array#Array#add on */ +{ /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2131); +fatal_exit(1); } -{ -((void(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_21); /* next on */ +var = var2; +RET_LABEL1:(void)0; } } -BREAK_label: (void)0; { -((void(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_21); /* finish on */ -} -if (var_mtype == NULL) { -var48 = 1; /* is null */ -} else { -var48 = 0; /* arg is null but recv is not */ +var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var); } -if (0) { -{ /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on */ -var_other12 = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_mtype,var_other12) on */ -var53 = var_mtype == var_other12; -var51 = var53; -goto RET_LABEL52; -RET_LABEL52:(void)0; +{ /* Inline parser_nodes$ABinBoolExpr$n_expr2 (self) on */ +var6 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on */ +if (unlikely(var6 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2137); +fatal_exit(1); } -var49 = var51; -goto RET_LABEL50; -RET_LABEL50:(void)0; +var4 = var6; +RET_LABEL5:(void)0; } -var48 = var49; } -if (var48){ { -{ /* Inline typing#AArrayExpr#element_mtype (self) on */ -var56 = self->attrs[COLOR_nitc__typing__AArrayExpr___element_mtype].val; /* _element_mtype on */ -var54 = var56; -RET_LABEL55:(void)0; -} +var7 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var4); } -if (var54 == NULL) { -var57 = 0; /* is null */ -} else { -var57 = 1; /* arg is null and recv is not */ +{ +var8 = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self); } -if (0) { -{ /* Inline kernel#Object#!= (var54,((val*)NULL)) on */ -var_other = ((val*)NULL); { -var60 = ((short int(*)(val* self, val* p0))(var54->class->vft[COLOR_core__kernel__Object___61d_61d]))(var54, var_other); /* == on */ +{ /* Inline typing$AExpr$mtype= (self,var8) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var8; /* _mtype on */ +RET_LABEL9:(void)0; } -var61 = !var60; -var58 = var61; -goto RET_LABEL59; -RET_LABEL59:(void)0; } -var57 = var58; +RET_LABEL:; } -if (var57){ +/* method typing$ANotExpr$accept_typing for (self: ANotExpr, TypeVisitor) */ +void nitc__typing___ANotExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : nullable MType */; +val* var4 /* : nullable MType */; +var_v = p0; { -{ /* Inline typing#AArrayExpr#element_mtype (self) on */ -var64 = self->attrs[COLOR_nitc__typing__AArrayExpr___element_mtype].val; /* _element_mtype on */ -var62 = var64; -RET_LABEL63:(void)0; +{ /* Inline parser_nodes$ANotExpr$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__ANotExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2171); +fatal_exit(1); +} +var = var2; +RET_LABEL1:(void)0; } } { -core___core__Array___core__abstract_collection__SimpleCollection__add(var_mtypes, var62); /* Direct call array#Array#add on */ +var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var); } -} else { +{ +var4 = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self); } { -var65 = nitc__typing___nitc__typing__TypeVisitor___merge_types(var_v, self, var_mtypes); +{ /* Inline typing$AExpr$mtype= (self,var4) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var4; /* _mtype on */ +RET_LABEL5:(void)0; } -var_mtype = var65; -} else { } -if (var_mtype == NULL) { -var67 = 1; /* is null */ -} else { -var67 = 0; /* arg is null but recv is not */ +RET_LABEL:; } -if (0) { -{ /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on */ -var_other12 = ((val*)NULL); +/* method typing$AOrElseExpr$accept_typing for (self: AOrElseExpr, TypeVisitor) */ +void nitc__typing___AOrElseExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : nullable MType */; +val* var_t1 /* var t1: nullable MType */; +val* var4 /* : AExpr */; +val* var6 /* : AExpr */; +val* var7 /* : nullable MType */; +val* var_t2 /* var t2: nullable MType */; +short int var8 /* : Bool */; +short int var9 /* : Bool */; +short int var10 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var12 /* : Bool */; +short int var14 /* : Bool */; +short int var_ /* var : Bool */; +short int var15 /* : Bool */; +short int var16 /* : Bool */; +short int var18 /* : Bool */; +short int var20 /* : Bool */; +short int var21 /* : Bool */; +int cltype; +int idtype; +short int var23 /* : Bool */; +val* var24 /* : MType */; +val* var25 /* : Array[MType] */; +val* var_26 /* var : Array[MType] */; +val* var27 /* : nullable MType */; +val* var_t /* var t: nullable MType */; +short int var28 /* : Bool */; +short int var29 /* : Bool */; +short int var31 /* : Bool */; +short int var33 /* : Bool */; +static val* varonce; +val* var34 /* : String */; +char* var35 /* : CString */; +val* var36 /* : String */; +val* var37 /* : nullable Int */; +val* var38 /* : nullable Int */; +val* var39 /* : nullable Bool */; +val* var40 /* : nullable Bool */; +val* var41 /* : nullable MClass */; +val* var_c /* var c: nullable MClass */; +short int var42 /* : Bool */; +short int var43 /* : Bool */; +short int var45 /* : Bool */; +short int var47 /* : Bool */; +val* var48 /* : MClassType */; +val* var50 /* : MClassType */; +short int var51 /* : Bool */; +val* var52 /* : MType */; +var_v = p0; { -{ /* Inline kernel#Object#is_same_instance (var_mtype,var_other12) on */ -var72 = var_mtype == var_other12; -var70 = var72; -goto RET_LABEL71; -RET_LABEL71:(void)0; +{ /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2131); +fatal_exit(1); } -var68 = var70; -goto RET_LABEL69; -RET_LABEL69:(void)0; +var = var2; +RET_LABEL1:(void)0; } -var67 = var68; } -var_73 = var67; -if (var67){ -var66 = var_73; -} else { -/* isa MNullType */ -cltype = type_nitc__MNullType.color; -idtype = type_nitc__MNullType.id; -if(cltype >= var_mtype->type->table_size) { -var74 = 0; -} else { -var74 = var_mtype->type->type_table[cltype] == idtype; +{ +var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var); } -var66 = var74; +var_t1 = var3; +{ +{ /* Inline parser_nodes$ABinBoolExpr$n_expr2 (self) on */ +var6 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on */ +if (unlikely(var6 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -if (var66){ -if (unlikely(varonce==NULL)) { -var75 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String); -if (likely(varonce76!=NULL)) { -var77 = varonce76; -} else { -var78 = "Type Error: ambiguous array type "; -var79 = core__flat___NativeString___to_s_full(var78, 33l, 33l); -var77 = var79; -varonce76 = var77; +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2137); +fatal_exit(1); } -((struct instance_core__NativeArray*)var75)->values[0]=var77; -} else { -var75 = varonce; -varonce = NULL; +var4 = var6; +RET_LABEL5:(void)0; } -if (likely(varonce80!=NULL)) { -var81 = varonce80; -} else { -var82 = " "; -var83 = core__flat___NativeString___to_s_full(var82, 1l, 1l); -var81 = var83; -varonce80 = var81; } { -var84 = core__abstract_text___Collection___join(var_mtypes, var81); +var7 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var4); } -((struct instance_core__NativeArray*)var75)->values[1]=var84; -{ -var85 = ((val*(*)(val* self))(var75->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var75); /* native_to_s on */ +var_t2 = var7; +if (var_t1 == NULL) { +var9 = 1; /* is null */ +} else { +var9 = 0; /* arg is null but recv is not */ } -varonce = var75; +if (0) { +{ /* Inline kernel$Object$== (var_t1,((val*)NULL)) on */ +var_other = ((val*)NULL); { -nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var85); /* Direct call typing#TypeVisitor#error on */ +{ /* Inline kernel$Object$is_same_instance (var_t1,var_other) on */ +var14 = var_t1 == var_other; +var12 = var14; +goto RET_LABEL13; +RET_LABEL13:(void)0; } -goto RET_LABEL; -} else { } -if (var_useless){ -if (var_ntype == NULL) { -var86 = 0; /* is null */ +var10 = var12; +goto RET_LABEL11; +RET_LABEL11:(void)0; +} +var9 = var10; +} +var_ = var9; +if (var9){ +var8 = var_; +} else { +if (var_t2 == NULL) { +var15 = 1; /* is null */ } else { -var86 = 1; /* arg is null and recv is not */ +var15 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_ntype,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_t2,((val*)NULL)) on */ var_other = ((val*)NULL); { -var89 = ((short int(*)(val* self, val* p0))(var_ntype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ntype, var_other); /* == on */ +{ /* Inline kernel$Object$is_same_instance (var_t2,var_other) on */ +var20 = var_t2 == var_other; +var18 = var20; +goto RET_LABEL19; +RET_LABEL19:(void)0; } -var90 = !var89; -var87 = var90; -goto RET_LABEL88; -RET_LABEL88:(void)0; } -var86 = var87; +var16 = var18; +goto RET_LABEL17; +RET_LABEL17:(void)0; +} +var15 = var16; } -if (unlikely(!var86)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1539); -fatal_exit(1); +var8 = var15; } -{ -{ /* Inline typing#TypeVisitor#modelbuilder (var_v) on */ -var93 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___modelbuilder].val; /* _modelbuilder on */ -if (unlikely(var93 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 35); -fatal_exit(1); +if (var8){ +goto RET_LABEL; +} else { +} +/* isa MNullType */ +cltype = type_nitc__MNullType.color; +idtype = type_nitc__MNullType.id; +if(cltype >= var_t1->type->table_size) { +var21 = 0; +} else { +var21 = var_t1->type->type_table[cltype] == idtype; } -var91 = var93; -RET_LABEL92:(void)0; +if (var21){ +{ +{ /* Inline typing$AExpr$mtype= (self,var_t2) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_t2; /* _mtype on */ +RET_LABEL22:(void)0; } } -if (likely(varonce94!=NULL)) { -var95 = varonce94; +goto RET_LABEL; } else { -var96 = "useless-type"; -var97 = core__flat___NativeString___to_s_full(var96, 12l, 12l); -var95 = var97; -varonce94 = var95; +{ +var23 = nitc__typing___nitc__typing__TypeVisitor___can_be_null(var_v, var_t1); } -if (unlikely(varonce98==NULL)) { -var99 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String); -if (likely(varonce100!=NULL)) { -var101 = varonce100; -} else { -var102 = "Warning: useless type declaration `"; -var103 = core__flat___NativeString___to_s_full(var102, 35l, 35l); -var101 = var103; -varonce100 = var101; +if (var23){ +{ +var24 = ((val*(*)(val* self))(var_t1->class->vft[COLOR_nitc__model__MType__as_notnull]))(var_t1); /* as_notnull on */ } -((struct instance_core__NativeArray*)var99)->values[0]=var101; -if (likely(varonce104!=NULL)) { -var105 = varonce104; +var_t1 = var24; } else { -var106 = "` in literal Array since it can be inferred from the elements type."; -var107 = core__flat___NativeString___to_s_full(var106, 67l, 67l); -var105 = var107; -varonce104 = var105; } -((struct instance_core__NativeArray*)var99)->values[2]=var105; -} else { -var99 = varonce98; -varonce98 = NULL; } +var25 = NEW_core__Array(&type_core__Array__nitc__MType); +{ +core___core__Array___with_capacity(var25, 2l); /* Direct call array$Array$with_capacity on */ +} +var_26 = var25; { -var108 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on */ +core___core__AbstractArray___core__abstract_collection__Sequence__push(var_26, var_t1); /* Direct call array$AbstractArray$push on */ } -((struct instance_core__NativeArray*)var99)->values[1]=var108; { -var109 = ((val*(*)(val* self))(var99->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var99); /* native_to_s on */ +core___core__AbstractArray___core__abstract_collection__Sequence__push(var_26, var_t2); /* Direct call array$AbstractArray$push on */ } -varonce98 = var99; { -nitc___nitc__ModelBuilder___warning(var91, var_ntype, var95, var109); /* Direct call modelbuilder_base#ModelBuilder#warning on */ +var27 = nitc__typing___nitc__typing__TypeVisitor___merge_types(var_v, self, var_26); } +var_t = var27; +if (var_t == NULL) { +var28 = 1; /* is null */ } else { +var28 = 0; /* arg is null but recv is not */ } +if (0) { +{ /* Inline kernel$Object$== (var_t,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline typing#AArrayExpr#element_mtype= (self,var_mtype) on */ -self->attrs[COLOR_nitc__typing__AArrayExpr___element_mtype].val = var_mtype; /* _element_mtype on */ -RET_LABEL110:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_t,var_other) on */ +var33 = var_t == var_other; +var31 = var33; +goto RET_LABEL32; +RET_LABEL32:(void)0; +} +} +var29 = var31; +goto RET_LABEL30; +RET_LABEL30:(void)0; } +var28 = var29; } -if (likely(varonce111!=NULL)) { -var112 = varonce111; +if (var28){ +if (likely(varonce!=NULL)) { +var34 = varonce; } else { -var113 = "Array"; -var114 = core__flat___NativeString___to_s_full(var113, 5l, 5l); -var112 = var114; -varonce111 = var112; +var35 = "Object"; +var37 = (val*)(6l<<2|1); +var38 = (val*)(6l<<2|1); +var39 = (val*)((long)(0)<<2|3); +var40 = (val*)((long)(0)<<2|3); +var36 = core__flat___CString___to_s_unsafe(var35, var37, var38, var39, var40); +var34 = var36; +varonce = var34; } { -var115 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var112); +var41 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var34); } -var_mclass = var115; -if (var_mclass == NULL) { -var116 = 1; /* is null */ +var_c = var41; +if (var_c == NULL) { +var42 = 1; /* is null */ } else { -var116 = 0; /* arg is null but recv is not */ +var42 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_mclass,((val*)NULL)) on */ -var_other12 = ((val*)NULL); +{ /* Inline kernel$Object$== (var_c,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_mclass,var_other12) on */ -var121 = var_mclass == var_other12; -var119 = var121; -goto RET_LABEL120; -RET_LABEL120:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_c,var_other) on */ +var47 = var_c == var_other; +var45 = var47; +goto RET_LABEL46; +RET_LABEL46:(void)0; } } -var117 = var119; -goto RET_LABEL118; -RET_LABEL118:(void)0; +var43 = var45; +goto RET_LABEL44; +RET_LABEL44:(void)0; } -var116 = var117; +var42 = var43; } -if (var116){ +if (var42){ goto RET_LABEL; } else { } -var122 = NEW_core__Array(&type_core__Array__nitc__MType); { -core___core__Array___with_capacity(var122, 1l); /* Direct call array#Array#with_capacity on */ +{ /* Inline model$MClass$mclass_type (var_c) on */ +var50 = var_c->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var50 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var_123 = var122; -{ -core___core__AbstractArray___core__abstract_collection__Sequence__push(var_123, var_mtype); /* Direct call array#AbstractArray#push on */ +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520); +fatal_exit(1); } -{ -var124 = nitc___nitc__MClass___get_mtype(var_mclass, var_123); +var48 = var50; +RET_LABEL49:(void)0; } -var_array_mtype = var124; -if (likely(varonce125!=NULL)) { -var126 = varonce125; -} else { -var127 = "with_capacity"; -var128 = core__flat___NativeString___to_s_full(var127, 13l, 13l); -var126 = var128; -varonce125 = var126; } +var_t = var48; { -var129 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_array_mtype, var126, 0); +var51 = nitc__typing___nitc__typing__TypeVisitor___can_be_null(var_v, var_t2); } +if (var51){ { -{ /* Inline typing#AArrayExpr#with_capacity_callsite= (self,var129) on */ -self->attrs[COLOR_nitc__typing__AArrayExpr___with_capacity_callsite].val = var129; /* _with_capacity_callsite on */ -RET_LABEL130:(void)0; +var52 = nitc___nitc__MType___as_nullable(var_t); } -} -if (likely(varonce131!=NULL)) { -var132 = varonce131; +var_t = var52; } else { -var133 = "push"; -var134 = core__flat___NativeString___to_s_full(var133, 4l, 4l); -var132 = var134; -varonce131 = var132; -} -{ -var135 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_array_mtype, var132, 0); -} -{ -{ /* Inline typing#AArrayExpr#push_callsite= (self,var135) on */ -self->attrs[COLOR_nitc__typing__AArrayExpr___push_callsite].val = var135; /* _push_callsite on */ -RET_LABEL136:(void)0; } +} else { } { -{ /* Inline typing#AExpr#mtype= (self,var_array_mtype) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_array_mtype; /* _mtype on */ -RET_LABEL137:(void)0; -} -} -RET_LABEL:; +{ /* Inline typing$AExpr$mtype= (self,var_t) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_t; /* _mtype on */ +RET_LABEL53:(void)0; } -/* method typing#ARangeExpr#init_callsite for (self: ARangeExpr): nullable CallSite */ -val* nitc__typing___ARangeExpr___init_callsite(val* self) { -val* var /* : nullable CallSite */; -val* var1 /* : nullable CallSite */; -var1 = self->attrs[COLOR_nitc__typing__ARangeExpr___init_callsite].val; /* _init_callsite on */ -var = var1; -RET_LABEL:; -return var; } -/* method typing#ARangeExpr#init_callsite= for (self: ARangeExpr, nullable CallSite) */ -void nitc__typing___ARangeExpr___init_callsite_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__ARangeExpr___init_callsite].val = p0; /* _init_callsite on */ RET_LABEL:; } -/* method typing#ARangeExpr#accept_typing for (self: ARangeExpr, TypeVisitor) */ -void nitc__typing___ARangeExpr___AExpr__accept_typing(val* self, val* p0) { +/* method typing$AOrElseExpr$accept_post_typing for (self: AOrElseExpr, TypeVisitor) */ +void nitc__typing___AOrElseExpr___ANode__accept_post_typing(val* self, val* p0) { val* var_v /* var v: TypeVisitor */; -static val* varonce; -val* var /* : String */; -char* var1 /* : NativeString */; -val* var2 /* : String */; -val* var3 /* : nullable MClass */; -val* var_discrete_class /* var discrete_class: nullable MClass */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : nullable MType */; +val* var_t1 /* var t1: nullable MType */; short int var4 /* : Bool */; short int var5 /* : Bool */; val* var_other /* var other: nullable Object */; short int var7 /* : Bool */; short int var9 /* : Bool */; -val* var10 /* : MClassDef */; -val* var12 /* : MClassDef */; -val* var13 /* : MClassType */; -val* var15 /* : MClassType */; -val* var_discrete_type /* var discrete_type: MClassType */; -val* var16 /* : AExpr */; -val* var18 /* : AExpr */; -val* var19 /* : nullable MType */; -val* var_t1 /* var t1: nullable MType */; -val* var20 /* : AExpr */; -val* var22 /* : AExpr */; -val* var23 /* : nullable MType */; -val* var_t2 /* var t2: nullable MType */; -short int var24 /* : Bool */; -short int var25 /* : Bool */; -short int var26 /* : Bool */; -short int var28 /* : Bool */; -short int var30 /* : Bool */; -short int var_ /* var : Bool */; -short int var31 /* : Bool */; -short int var32 /* : Bool */; -short int var34 /* : Bool */; -short int var36 /* : Bool */; -static val* varonce37; -val* var38 /* : String */; -char* var39 /* : NativeString */; -val* var40 /* : String */; -val* var41 /* : nullable MClass */; -val* var_mclass /* var mclass: nullable MClass */; -short int var42 /* : Bool */; -short int var43 /* : Bool */; -short int var45 /* : Bool */; -short int var47 /* : Bool */; -short int var48 /* : Bool */; -val* var49 /* : Array[MType] */; -val* var_50 /* var : Array[MType] */; -val* var51 /* : MClassType */; -val* var_mtype /* var mtype: nullable Object */; -short int var52 /* : Bool */; -val* var53 /* : Array[MType] */; -val* var_54 /* var : Array[MType] */; -val* var55 /* : MClassType */; -val* var57 /* : NativeArray[String] */; -static val* varonce56; -static val* varonce58; -val* var59 /* : String */; -char* var60 /* : NativeString */; -val* var61 /* : String */; -static val* varonce62; -val* var63 /* : String */; -char* var64 /* : NativeString */; -val* var65 /* : String */; -static val* varonce66; -val* var67 /* : String */; -char* var68 /* : NativeString */; -val* var69 /* : String */; -val* var70 /* : String */; -val* var71 /* : String */; -val* var72 /* : String */; -short int var74 /* : Bool */; -int cltype; -int idtype; -static val* varonce75; -val* var76 /* : String */; -char* var77 /* : NativeString */; -val* var78 /* : String */; -val* var79 /* : nullable CallSite */; -val* var_callsite /* var callsite: nullable Object */; -short int var80 /* : Bool */; -int cltype81; -int idtype82; -static val* varonce83; -val* var84 /* : String */; -char* var85 /* : NativeString */; -val* var86 /* : String */; -val* var87 /* : nullable CallSite */; +val* var10 /* : AExpr */; +val* var12 /* : AExpr */; +short int var13 /* : Bool */; var_v = p0; -if (likely(varonce!=NULL)) { -var = varonce; -} else { -var1 = "Discrete"; -var2 = core__flat___NativeString___to_s_full(var1, 8l, 8l); +{ +{ /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2131); +fatal_exit(1); +} var = var2; -varonce = var; +RET_LABEL1:(void)0; +} } { -var3 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var); +var3 = ((val*(*)(val* self))(var->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var); /* mtype on */ } -var_discrete_class = var3; -if (var_discrete_class == NULL) { +var_t1 = var3; +if (var_t1 == NULL) { var4 = 1; /* is null */ } else { var4 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_discrete_class,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_t1,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_discrete_class,var_other) on */ -var9 = var_discrete_class == var_other; +{ /* Inline kernel$Object$is_same_instance (var_t1,var_other) on */ +var9 = var_t1 == var_other; var7 = var9; goto RET_LABEL8; RET_LABEL8:(void)0; @@ -5667,13 +5752,15 @@ var4 = var5; if (var4){ goto RET_LABEL; } else { -} { -{ /* Inline model#MClass#intro (var_discrete_class) on */ -var12 = var_discrete_class->attrs[COLOR_nitc__model__MClass___intro].val; /* _intro on */ +{ /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on */ +var12 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on */ if (unlikely(var12 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 483); +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2131); fatal_exit(1); } var10 = var12; @@ -5681,3524 +5768,3937 @@ RET_LABEL11:(void)0; } } { -{ /* Inline model#MClassDef#bound_mtype (var10) on */ -var15 = var10->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ -if (unlikely(var15 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 579); -fatal_exit(1); +var13 = nitc__typing___nitc__typing__TypeVisitor___check_can_be_null(var_v, var10, var_t1); } -var13 = var15; -RET_LABEL14:(void)0; } +RET_LABEL:; } -var_discrete_type = var13; +/* method typing$ATrueExpr$accept_typing for (self: ATrueExpr, TypeVisitor) */ +void nitc__typing___ATrueExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : nullable MType */; +var_v = p0; { -{ /* Inline parser_nodes#ARangeExpr#n_expr (self) on */ -var18 = self->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var18 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2421); -fatal_exit(1); +var = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self); } -var16 = var18; -RET_LABEL17:(void)0; +{ +{ /* Inline typing$AExpr$mtype= (self,var) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var; /* _mtype on */ +RET_LABEL1:(void)0; } } +RET_LABEL:; +} +/* method typing$AFalseExpr$accept_typing for (self: AFalseExpr, TypeVisitor) */ +void nitc__typing___AFalseExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : nullable MType */; +var_v = p0; { -var19 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var16, var_discrete_type); +var = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self); } -var_t1 = var19; { -{ /* Inline parser_nodes#ARangeExpr#n_expr2 (self) on */ -var22 = self->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on */ -if (unlikely(var22 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2427); -fatal_exit(1); +{ /* Inline typing$AExpr$mtype= (self,var) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var; /* _mtype on */ +RET_LABEL1:(void)0; +} +} +RET_LABEL:; +} +/* method typing$AIntegerExpr$accept_typing for (self: AIntegerExpr, TypeVisitor) */ +void nitc__typing___AIntegerExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var_mclass /* var mclass: nullable MClass */; +val* var /* : nullable Numeric */; +val* var2 /* : nullable Numeric */; +short int var3 /* : Bool */; +int cltype; +int idtype; +static val* varonce; +val* var4 /* : String */; +char* var5 /* : CString */; +val* var6 /* : String */; +val* var7 /* : nullable Int */; +val* var8 /* : nullable Int */; +val* var9 /* : nullable Bool */; +val* var10 /* : nullable Bool */; +val* var11 /* : nullable MClass */; +val* var12 /* : nullable Numeric */; +val* var14 /* : nullable Numeric */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +static val* varonce18; +val* var19 /* : String */; +char* var20 /* : CString */; +val* var21 /* : String */; +val* var22 /* : nullable Int */; +val* var23 /* : nullable Int */; +val* var24 /* : nullable Bool */; +val* var25 /* : nullable Bool */; +val* var26 /* : nullable MClass */; +val* var27 /* : nullable Numeric */; +val* var29 /* : nullable Numeric */; +short int var30 /* : Bool */; +int cltype31; +int idtype32; +static val* varonce33; +val* var34 /* : String */; +char* var35 /* : CString */; +val* var36 /* : String */; +val* var37 /* : nullable Int */; +val* var38 /* : nullable Int */; +val* var39 /* : nullable Bool */; +val* var40 /* : nullable Bool */; +val* var41 /* : nullable MClass */; +val* var42 /* : nullable Numeric */; +val* var44 /* : nullable Numeric */; +short int var45 /* : Bool */; +int cltype46; +int idtype47; +static val* varonce48; +val* var49 /* : String */; +char* var50 /* : CString */; +val* var51 /* : String */; +val* var52 /* : nullable Int */; +val* var53 /* : nullable Int */; +val* var54 /* : nullable Bool */; +val* var55 /* : nullable Bool */; +val* var56 /* : nullable MClass */; +val* var57 /* : nullable Numeric */; +val* var59 /* : nullable Numeric */; +short int var60 /* : Bool */; +int cltype61; +int idtype62; +static val* varonce63; +val* var64 /* : String */; +char* var65 /* : CString */; +val* var66 /* : String */; +val* var67 /* : nullable Int */; +val* var68 /* : nullable Int */; +val* var69 /* : nullable Bool */; +val* var70 /* : nullable Bool */; +val* var71 /* : nullable MClass */; +val* var72 /* : nullable Numeric */; +val* var74 /* : nullable Numeric */; +short int var75 /* : Bool */; +int cltype76; +int idtype77; +static val* varonce78; +val* var79 /* : String */; +char* var80 /* : CString */; +val* var81 /* : String */; +val* var82 /* : nullable Int */; +val* var83 /* : nullable Int */; +val* var84 /* : nullable Bool */; +val* var85 /* : nullable Bool */; +val* var86 /* : nullable MClass */; +val* var87 /* : nullable Numeric */; +val* var89 /* : nullable Numeric */; +short int var90 /* : Bool */; +int cltype91; +int idtype92; +static val* varonce93; +val* var94 /* : String */; +char* var95 /* : CString */; +val* var96 /* : String */; +val* var97 /* : nullable Int */; +val* var98 /* : nullable Int */; +val* var99 /* : nullable Bool */; +val* var100 /* : nullable Bool */; +val* var101 /* : nullable MClass */; +short int var102 /* : Bool */; +short int var103 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var105 /* : Bool */; +short int var107 /* : Bool */; +val* var108 /* : MClassType */; +val* var110 /* : MClassType */; +var_v = p0; +var_mclass = ((val*)NULL); +{ +{ /* Inline literal$AIntegerExpr$value (self) on */ +var2 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on */ +var = var2; +RET_LABEL1:(void)0; +} +} +/* isa Byte */ +cltype = type_core__Byte.color; +idtype = type_core__Byte.id; +if(var == NULL) { +var3 = 0; +} else { +if(cltype >= (((long)var&3)?type_info[((long)var&3)]:var->type)->table_size) { +var3 = 0; +} else { +var3 = (((long)var&3)?type_info[((long)var&3)]:var->type)->type_table[cltype] == idtype; } -var20 = var22; -RET_LABEL21:(void)0; } +if (var3){ +if (likely(varonce!=NULL)) { +var4 = varonce; +} else { +var5 = "Byte"; +var7 = (val*)(4l<<2|1); +var8 = (val*)(4l<<2|1); +var9 = (val*)((long)(0)<<2|3); +var10 = (val*)((long)(0)<<2|3); +var6 = core__flat___CString___to_s_unsafe(var5, var7, var8, var9, var10); +var4 = var6; +varonce = var4; } { -var23 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var20, var_discrete_type); +var11 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var4); } -var_t2 = var23; -if (var_t1 == NULL) { -var25 = 1; /* is null */ +var_mclass = var11; } else { -var25 = 0; /* arg is null but recv is not */ -} -if (0) { -{ /* Inline kernel#Object#== (var_t1,((val*)NULL)) on */ -var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_t1,var_other) on */ -var30 = var_t1 == var_other; -var28 = var30; -goto RET_LABEL29; -RET_LABEL29:(void)0; -} -} -var26 = var28; -goto RET_LABEL27; -RET_LABEL27:(void)0; +{ /* Inline literal$AIntegerExpr$value (self) on */ +var14 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on */ +var12 = var14; +RET_LABEL13:(void)0; } -var25 = var26; } -var_ = var25; -if (var25){ -var24 = var_; +/* isa Int */ +cltype16 = type_core__Int.color; +idtype17 = type_core__Int.id; +if(var12 == NULL) { +var15 = 0; } else { -if (var_t2 == NULL) { -var31 = 1; /* is null */ +if(cltype16 >= (((long)var12&3)?type_info[((long)var12&3)]:var12->type)->table_size) { +var15 = 0; } else { -var31 = 0; /* arg is null but recv is not */ +var15 = (((long)var12&3)?type_info[((long)var12&3)]:var12->type)->type_table[cltype16] == idtype17; } -if (0) { -{ /* Inline kernel#Object#== (var_t2,((val*)NULL)) on */ -var_other = ((val*)NULL); -{ -{ /* Inline kernel#Object#is_same_instance (var_t2,var_other) on */ -var36 = var_t2 == var_other; -var34 = var36; -goto RET_LABEL35; -RET_LABEL35:(void)0; } +if (var15){ +if (likely(varonce18!=NULL)) { +var19 = varonce18; +} else { +var20 = "Int"; +var22 = (val*)(3l<<2|1); +var23 = (val*)(3l<<2|1); +var24 = (val*)((long)(0)<<2|3); +var25 = (val*)((long)(0)<<2|3); +var21 = core__flat___CString___to_s_unsafe(var20, var22, var23, var24, var25); +var19 = var21; +varonce18 = var19; } -var32 = var34; -goto RET_LABEL33; -RET_LABEL33:(void)0; +{ +var26 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var19); } -var31 = var32; +var_mclass = var26; +} else { +{ +{ /* Inline literal$AIntegerExpr$value (self) on */ +var29 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on */ +var27 = var29; +RET_LABEL28:(void)0; } -var24 = var31; } -if (var24){ -goto RET_LABEL; +/* isa Int8 */ +cltype31 = type_core__Int8.color; +idtype32 = type_core__Int8.id; +if(var27 == NULL) { +var30 = 0; } else { +if(cltype31 >= (((long)var27&3)?type_info[((long)var27&3)]:var27->type)->table_size) { +var30 = 0; +} else { +var30 = (((long)var27&3)?type_info[((long)var27&3)]:var27->type)->type_table[cltype31] == idtype32; +} } -if (likely(varonce37!=NULL)) { -var38 = varonce37; +if (var30){ +if (likely(varonce33!=NULL)) { +var34 = varonce33; } else { -var39 = "Range"; -var40 = core__flat___NativeString___to_s_full(var39, 5l, 5l); -var38 = var40; -varonce37 = var38; +var35 = "Int8"; +var37 = (val*)(4l<<2|1); +var38 = (val*)(4l<<2|1); +var39 = (val*)((long)(0)<<2|3); +var40 = (val*)((long)(0)<<2|3); +var36 = core__flat___CString___to_s_unsafe(var35, var37, var38, var39, var40); +var34 = var36; +varonce33 = var34; } { -var41 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var38); +var41 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var34); } var_mclass = var41; -if (var_mclass == NULL) { -var42 = 1; /* is null */ } else { -var42 = 0; /* arg is null but recv is not */ -} -if (0) { -{ /* Inline kernel#Object#== (var_mclass,((val*)NULL)) on */ -var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on */ -var47 = var_mclass == var_other; -var45 = var47; -goto RET_LABEL46; -RET_LABEL46:(void)0; +{ /* Inline literal$AIntegerExpr$value (self) on */ +var44 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on */ +var42 = var44; +RET_LABEL43:(void)0; } } -var43 = var45; -goto RET_LABEL44; -RET_LABEL44:(void)0; +/* isa Int16 */ +cltype46 = type_core__Int16.color; +idtype47 = type_core__Int16.id; +if(var42 == NULL) { +var45 = 0; +} else { +if(cltype46 >= (((long)var42&3)?type_info[((long)var42&3)]:var42->type)->table_size) { +var45 = 0; +} else { +var45 = (((long)var42&3)?type_info[((long)var42&3)]:var42->type)->type_table[cltype46] == idtype47; } -var42 = var43; } -if (var42){ -goto RET_LABEL; +if (var45){ +if (likely(varonce48!=NULL)) { +var49 = varonce48; } else { +var50 = "Int16"; +var52 = (val*)(5l<<2|1); +var53 = (val*)(5l<<2|1); +var54 = (val*)((long)(0)<<2|3); +var55 = (val*)((long)(0)<<2|3); +var51 = core__flat___CString___to_s_unsafe(var50, var52, var53, var54, var55); +var49 = var51; +varonce48 = var49; } { -var48 = nitc__typing___nitc__typing__TypeVisitor___is_subtype(var_v, var_t1, var_t2); -} -if (var48){ -var49 = NEW_core__Array(&type_core__Array__nitc__MType); -{ -core___core__Array___with_capacity(var49, 1l); /* Direct call array#Array#with_capacity on */ +var56 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var49); } -var_50 = var49; +var_mclass = var56; +} else { { -core___core__AbstractArray___core__abstract_collection__Sequence__push(var_50, var_t2); /* Direct call array#AbstractArray#push on */ +{ /* Inline literal$AIntegerExpr$value (self) on */ +var59 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on */ +var57 = var59; +RET_LABEL58:(void)0; } -{ -var51 = nitc___nitc__MClass___get_mtype(var_mclass, var_50); } -var_mtype = var51; +/* isa UInt16 */ +cltype61 = type_core__UInt16.color; +idtype62 = type_core__UInt16.id; +if(var57 == NULL) { +var60 = 0; } else { -{ -var52 = nitc__typing___nitc__typing__TypeVisitor___is_subtype(var_v, var_t2, var_t1); +if(cltype61 >= (((long)var57&3)?type_info[((long)var57&3)]:var57->type)->table_size) { +var60 = 0; +} else { +var60 = (((long)var57&3)?type_info[((long)var57&3)]:var57->type)->type_table[cltype61] == idtype62; } -if (var52){ -var53 = NEW_core__Array(&type_core__Array__nitc__MType); -{ -core___core__Array___with_capacity(var53, 1l); /* Direct call array#Array#with_capacity on */ } -var_54 = var53; +if (var60){ +if (likely(varonce63!=NULL)) { +var64 = varonce63; +} else { +var65 = "UInt16"; +var67 = (val*)(6l<<2|1); +var68 = (val*)(6l<<2|1); +var69 = (val*)((long)(0)<<2|3); +var70 = (val*)((long)(0)<<2|3); +var66 = core__flat___CString___to_s_unsafe(var65, var67, var68, var69, var70); +var64 = var66; +varonce63 = var64; +} { -core___core__AbstractArray___core__abstract_collection__Sequence__push(var_54, var_t1); /* Direct call array#AbstractArray#push on */ +var71 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var64); } +var_mclass = var71; +} else { { -var55 = nitc___nitc__MClass___get_mtype(var_mclass, var_54); +{ /* Inline literal$AIntegerExpr$value (self) on */ +var74 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on */ +var72 = var74; +RET_LABEL73:(void)0; +} } -var_mtype = var55; +/* isa Int32 */ +cltype76 = type_core__Int32.color; +idtype77 = type_core__Int32.id; +if(var72 == NULL) { +var75 = 0; } else { -if (unlikely(varonce56==NULL)) { -var57 = NEW_core__NativeArray(5l, &type_core__NativeArray__core__String); -if (likely(varonce58!=NULL)) { -var59 = varonce58; +if(cltype76 >= (((long)var72&3)?type_info[((long)var72&3)]:var72->type)->table_size) { +var75 = 0; } else { -var60 = "Type Error: cannot create range: `"; -var61 = core__flat___NativeString___to_s_full(var60, 34l, 34l); -var59 = var61; -varonce58 = var59; +var75 = (((long)var72&3)?type_info[((long)var72&3)]:var72->type)->type_table[cltype76] == idtype77; } -((struct instance_core__NativeArray*)var57)->values[0]=var59; -if (likely(varonce62!=NULL)) { -var63 = varonce62; +} +if (var75){ +if (likely(varonce78!=NULL)) { +var79 = varonce78; } else { -var64 = "` vs `"; -var65 = core__flat___NativeString___to_s_full(var64, 6l, 6l); -var63 = var65; -varonce62 = var63; +var80 = "Int32"; +var82 = (val*)(5l<<2|1); +var83 = (val*)(5l<<2|1); +var84 = (val*)((long)(0)<<2|3); +var85 = (val*)((long)(0)<<2|3); +var81 = core__flat___CString___to_s_unsafe(var80, var82, var83, var84, var85); +var79 = var81; +varonce78 = var79; } -((struct instance_core__NativeArray*)var57)->values[2]=var63; -if (likely(varonce66!=NULL)) { -var67 = varonce66; +{ +var86 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var79); +} +var_mclass = var86; } else { -var68 = "`."; -var69 = core__flat___NativeString___to_s_full(var68, 2l, 2l); -var67 = var69; -varonce66 = var67; +{ +{ /* Inline literal$AIntegerExpr$value (self) on */ +var89 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on */ +var87 = var89; +RET_LABEL88:(void)0; +} } -((struct instance_core__NativeArray*)var57)->values[4]=var67; +/* isa UInt32 */ +cltype91 = type_core__UInt32.color; +idtype92 = type_core__UInt32.id; +if(var87 == NULL) { +var90 = 0; } else { -var57 = varonce56; -varonce56 = NULL; +if(cltype91 >= (((long)var87&3)?type_info[((long)var87&3)]:var87->type)->table_size) { +var90 = 0; +} else { +var90 = (((long)var87&3)?type_info[((long)var87&3)]:var87->type)->type_table[cltype91] == idtype92; } -{ -var70 = ((val*(*)(val* self))(var_t1->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_t1); /* to_s on */ } -((struct instance_core__NativeArray*)var57)->values[1]=var70; -{ -var71 = ((val*(*)(val* self))(var_t2->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_t2); /* to_s on */ +if (var90){ +if (likely(varonce93!=NULL)) { +var94 = varonce93; +} else { +var95 = "UInt32"; +var97 = (val*)(6l<<2|1); +var98 = (val*)(6l<<2|1); +var99 = (val*)((long)(0)<<2|3); +var100 = (val*)((long)(0)<<2|3); +var96 = core__flat___CString___to_s_unsafe(var95, var97, var98, var99, var100); +var94 = var96; +varonce93 = var94; } -((struct instance_core__NativeArray*)var57)->values[3]=var71; { -var72 = ((val*(*)(val* self))(var57->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var57); /* native_to_s on */ +var101 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var94); } -varonce56 = var57; -{ -nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var72); /* Direct call typing#TypeVisitor#error on */ +var_mclass = var101; +} else { } -goto RET_LABEL; } } -{ -{ /* Inline typing#AExpr#mtype= (self,var_mtype) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_mtype; /* _mtype on */ -RET_LABEL73:(void)0; } } -/* isa ACrangeExpr */ -cltype = type_nitc__ACrangeExpr.color; -idtype = type_nitc__ACrangeExpr.id; -if(cltype >= self->type->table_size) { -var74 = 0; -} else { -var74 = self->type->type_table[cltype] == idtype; } -if (var74){ -if (likely(varonce75!=NULL)) { -var76 = varonce75; +} +if (var_mclass == NULL) { +var102 = 1; /* is null */ } else { -var77 = "init"; -var78 = core__flat___NativeString___to_s_full(var77, 4l, 4l); -var76 = var78; -varonce75 = var76; +var102 = 0; /* arg is null but recv is not */ } +if (0) { +{ /* Inline kernel$Object$== (var_mclass,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var79 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_mtype, var76, 0); +{ /* Inline kernel$Object$is_same_instance (var_mclass,var_other) on */ +var107 = var_mclass == var_other; +var105 = var107; +goto RET_LABEL106; +RET_LABEL106:(void)0; } -var_callsite = var79; -} else { -/* isa AOrangeExpr */ -cltype81 = type_nitc__AOrangeExpr.color; -idtype82 = type_nitc__AOrangeExpr.id; -if(cltype81 >= self->type->table_size) { -var80 = 0; -} else { -var80 = self->type->type_table[cltype81] == idtype82; } -if (var80){ -if (likely(varonce83!=NULL)) { -var84 = varonce83; +var103 = var105; +goto RET_LABEL104; +RET_LABEL104:(void)0; +} +var102 = var103; +} +if (var102){ +goto RET_LABEL; } else { -var85 = "without_last"; -var86 = core__flat___NativeString___to_s_full(var85, 12l, 12l); -var84 = var86; -varonce83 = var84; } { -var87 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_mtype, var84, 0); +{ /* Inline model$MClass$mclass_type (var_mclass) on */ +var110 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var110 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var_callsite = var87; -} else { -PRINT_ERROR("Runtime error: %s", "Aborted"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1588); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520); fatal_exit(1); } +var108 = var110; +RET_LABEL109:(void)0; +} } { -{ /* Inline typing#ARangeExpr#init_callsite= (self,var_callsite) on */ -self->attrs[COLOR_nitc__typing__ARangeExpr___init_callsite].val = var_callsite; /* _init_callsite on */ -RET_LABEL88:(void)0; +{ /* Inline typing$AExpr$mtype= (self,var108) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var108; /* _mtype on */ +RET_LABEL111:(void)0; } } RET_LABEL:; } -/* method typing#ANullExpr#accept_typing for (self: ANullExpr, TypeVisitor) */ -void nitc__typing___ANullExpr___AExpr__accept_typing(val* self, val* p0) { +/* method typing$AFloatExpr$accept_typing for (self: AFloatExpr, TypeVisitor) */ +void nitc__typing___AFloatExpr___AExpr__accept_typing(val* self, val* p0) { val* var_v /* var v: TypeVisitor */; -val* var /* : MModule */; -val* var2 /* : MModule */; -val* var3 /* : Model */; -val* var5 /* : Model */; -val* var6 /* : MNullType */; -val* var8 /* : MNullType */; +static val* varonce; +val* var /* : String */; +char* var1 /* : CString */; +val* var2 /* : String */; +val* var3 /* : nullable Int */; +val* var4 /* : nullable Int */; +val* var5 /* : nullable Bool */; +val* var6 /* : nullable Bool */; +val* var7 /* : nullable MClass */; +val* var_mclass /* var mclass: nullable MClass */; +short int var8 /* : Bool */; +short int var9 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var11 /* : Bool */; +short int var13 /* : Bool */; +val* var14 /* : MClassType */; +val* var16 /* : MClassType */; var_v = p0; -{ -{ /* Inline typing#TypeVisitor#mmodule (var_v) on */ -var2 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mmodule].val; /* _mmodule on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 37); -fatal_exit(1); -} +if (likely(varonce!=NULL)) { +var = varonce; +} else { +var1 = "Float"; +var3 = (val*)(5l<<2|1); +var4 = (val*)(5l<<2|1); +var5 = (val*)((long)(0)<<2|3); +var6 = (val*)((long)(0)<<2|3); +var2 = core__flat___CString___to_s_unsafe(var1, var3, var4, var5, var6); var = var2; -RET_LABEL1:(void)0; +varonce = var; } +{ +var7 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var); +} +var_mclass = var7; +if (var_mclass == NULL) { +var8 = 1; /* is null */ +} else { +var8 = 0; /* arg is null but recv is not */ } +if (0) { +{ /* Inline kernel$Object$== (var_mclass,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline mmodule#MModule#model (var) on */ -var5 = var->attrs[COLOR_nitc__mmodule__MModule___model].val; /* _model on */ -if (unlikely(var5 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 78); -fatal_exit(1); +{ /* Inline kernel$Object$is_same_instance (var_mclass,var_other) on */ +var13 = var_mclass == var_other; +var11 = var13; +goto RET_LABEL12; +RET_LABEL12:(void)0; } -var3 = var5; -RET_LABEL4:(void)0; } +var9 = var11; +goto RET_LABEL10; +RET_LABEL10:(void)0; +} +var8 = var9; +} +if (var8){ +goto RET_LABEL; +} else { } { -{ /* Inline model#Model#null_type (var3) on */ -var8 = var3->attrs[COLOR_nitc__model__Model___null_type].val; /* _null_type on */ -if (unlikely(var8 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _null_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 94); +{ /* Inline model$MClass$mclass_type (var_mclass) on */ +var16 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var16 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520); fatal_exit(1); } -var6 = var8; -RET_LABEL7:(void)0; +var14 = var16; +RET_LABEL15:(void)0; } } { -{ /* Inline typing#AExpr#mtype= (self,var6) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var6; /* _mtype on */ -RET_LABEL9:(void)0; -} -} -RET_LABEL:; +{ /* Inline typing$AExpr$mtype= (self,var14) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var14; /* _mtype on */ +RET_LABEL17:(void)0; } -/* method typing#AIsaExpr#cast_type for (self: AIsaExpr): nullable MType */ -val* nitc__typing___AIsaExpr___cast_type(val* self) { -val* var /* : nullable MType */; -val* var1 /* : nullable MType */; -var1 = self->attrs[COLOR_nitc__typing__AIsaExpr___cast_type].val; /* _cast_type on */ -var = var1; -RET_LABEL:; -return var; } -/* method typing#AIsaExpr#cast_type= for (self: AIsaExpr, nullable MType) */ -void nitc__typing___AIsaExpr___cast_type_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__AIsaExpr___cast_type].val = p0; /* _cast_type on */ RET_LABEL:; } -/* method typing#AIsaExpr#accept_typing for (self: AIsaExpr, TypeVisitor) */ -void nitc__typing___AIsaExpr___AExpr__accept_typing(val* self, val* p0) { +/* method typing$ACharExpr$accept_typing for (self: ACharExpr, TypeVisitor) */ +void nitc__typing___ACharExpr___AExpr__accept_typing(val* self, val* p0) { val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MType */; -val* var4 /* : AType */; -val* var6 /* : AType */; -val* var7 /* : nullable MType */; -val* var_mtype /* var mtype: nullable MType */; -val* var9 /* : AExpr */; -val* var11 /* : AExpr */; -val* var12 /* : nullable Variable */; -val* var_variable /* var variable: nullable Variable */; -short int var13 /* : Bool */; -short int var14 /* : Bool */; +val* var_mclass /* var mclass: nullable MClass */; +short int var /* : Bool */; +static val* varonce; +val* var1 /* : String */; +char* var2 /* : CString */; +val* var3 /* : String */; +val* var4 /* : nullable Int */; +val* var5 /* : nullable Int */; +val* var6 /* : nullable Bool */; +val* var7 /* : nullable Bool */; +val* var8 /* : nullable MClass */; +short int var9 /* : Bool */; +static val* varonce10; +val* var11 /* : String */; +char* var12 /* : CString */; +val* var13 /* : String */; +val* var14 /* : nullable Int */; +val* var15 /* : nullable Int */; +val* var16 /* : nullable Bool */; +val* var17 /* : nullable Bool */; +val* var18 /* : nullable MClass */; +static val* varonce19; +val* var20 /* : String */; +char* var21 /* : CString */; +val* var22 /* : String */; +val* var23 /* : nullable Int */; +val* var24 /* : nullable Int */; +val* var25 /* : nullable Bool */; +val* var26 /* : nullable Bool */; +val* var27 /* : nullable MClass */; +short int var28 /* : Bool */; +short int var29 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var16 /* : Bool */; -short int var17 /* : Bool */; -val* var18 /* : nullable FlowContext */; -val* var20 /* : nullable FlowContext */; -val* var21 /* : FlowContext */; -val* var23 /* : FlowContext */; -val* var24 /* : nullable MType */; +short int var31 /* : Bool */; +short int var33 /* : Bool */; +val* var34 /* : MClassType */; +val* var36 /* : MClassType */; var_v = p0; +var_mclass = ((val*)NULL); { -{ /* Inline parser_nodes#AIsaExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2153); -fatal_exit(1); -} -var = var2; -RET_LABEL1:(void)0; +var = nitc__literal___ACharExpr___is_ascii(self); } +if (var){ +if (likely(varonce!=NULL)) { +var1 = varonce; +} else { +var2 = "Byte"; +var4 = (val*)(4l<<2|1); +var5 = (val*)(4l<<2|1); +var6 = (val*)((long)(0)<<2|3); +var7 = (val*)((long)(0)<<2|3); +var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7); +var1 = var3; +varonce = var1; } { -var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var); +var8 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var1); } +var_mclass = var8; +} else { { -{ /* Inline parser_nodes#AIsaExpr#n_type (self) on */ -var6 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_type].val; /* _n_type on */ -if (unlikely(var6 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2159); -fatal_exit(1); -} -var4 = var6; -RET_LABEL5:(void)0; -} +var9 = nitc__literal___ACharExpr___is_code_point(self); } -{ -var7 = nitc__typing___nitc__typing__TypeVisitor___resolve_mtype(var_v, var4); +if (var9){ +if (likely(varonce10!=NULL)) { +var11 = varonce10; +} else { +var12 = "Int"; +var14 = (val*)(3l<<2|1); +var15 = (val*)(3l<<2|1); +var16 = (val*)((long)(0)<<2|3); +var17 = (val*)((long)(0)<<2|3); +var13 = core__flat___CString___to_s_unsafe(var12, var14, var15, var16, var17); +var11 = var13; +varonce10 = var11; } -var_mtype = var7; { -{ /* Inline typing#AIsaExpr#cast_type= (self,var_mtype) on */ -self->attrs[COLOR_nitc__typing__AIsaExpr___cast_type].val = var_mtype; /* _cast_type on */ -RET_LABEL8:(void)0; +var18 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var11); } +var_mclass = var18; +} else { +if (likely(varonce19!=NULL)) { +var20 = varonce19; +} else { +var21 = "Char"; +var23 = (val*)(4l<<2|1); +var24 = (val*)(4l<<2|1); +var25 = (val*)((long)(0)<<2|3); +var26 = (val*)((long)(0)<<2|3); +var22 = core__flat___CString___to_s_unsafe(var21, var23, var24, var25, var26); +var20 = var22; +varonce19 = var20; } { -{ /* Inline parser_nodes#AIsaExpr#n_expr (self) on */ -var11 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var11 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2153); -fatal_exit(1); -} -var9 = var11; -RET_LABEL10:(void)0; +var27 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var20); } +var_mclass = var27; } -{ -var12 = ((val*(*)(val* self))(var9->class->vft[COLOR_nitc__typing__AExpr__its_variable]))(var9); /* its_variable on */ } -var_variable = var12; -if (var_variable == NULL) { -var13 = 0; /* is null */ +if (var_mclass == NULL) { +var28 = 1; /* is null */ } else { -var13 = 1; /* arg is null and recv is not */ +var28 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_variable,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_mclass,((val*)NULL)) on */ var_other = ((val*)NULL); { -var16 = ((short int(*)(val* self, val* p0))(var_variable->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_variable, var_other); /* == on */ -} -var17 = !var16; -var14 = var17; -goto RET_LABEL15; -RET_LABEL15:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_mclass,var_other) on */ +var33 = var_mclass == var_other; +var31 = var33; +goto RET_LABEL32; +RET_LABEL32:(void)0; } -var13 = var14; } -if (var13){ -{ -{ /* Inline flow#AExpr#after_flow_context (self) on */ -var20 = self->attrs[COLOR_nitc__flow__AExpr___after_flow_context].val; /* _after_flow_context on */ -var18 = var20; -RET_LABEL19:(void)0; +var29 = var31; +goto RET_LABEL30; +RET_LABEL30:(void)0; } +var28 = var29; } -if (var18 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1619); -fatal_exit(1); +if (var28){ +goto RET_LABEL; } else { -{ /* Inline flow#FlowContext#when_true (var18) on */ -if (unlikely(var18 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow, 225); -fatal_exit(1); } -var23 = var18->attrs[COLOR_nitc__flow__FlowContext___when_true].val; /* _when_true on */ -if (unlikely(var23 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow, 225); +{ +{ /* Inline model$MClass$mclass_type (var_mclass) on */ +var36 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var36 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520); fatal_exit(1); } -var21 = var23; -RET_LABEL22:(void)0; +var34 = var36; +RET_LABEL35:(void)0; } } { -nitc__typing___FlowContext___set_var(var21, var_v, var_variable, var_mtype); /* Direct call typing#FlowContext#set_var on */ -} -} else { +{ /* Inline typing$AExpr$mtype= (self,var34) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var34; /* _mtype on */ +RET_LABEL37:(void)0; } -{ -var24 = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self); } -{ -{ /* Inline typing#AExpr#mtype= (self,var24) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var24; /* _mtype on */ -RET_LABEL25:(void)0; +RET_LABEL:; } +/* method typing$AugmentedStringFormExpr$to_re for (self: AugmentedStringFormExpr): nullable CallSite */ +val* nitc__typing___AugmentedStringFormExpr___to_re(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___to_re].val; /* _to_re on */ +var = var1; +RET_LABEL:; +return var; } +/* method typing$AugmentedStringFormExpr$to_re= for (self: AugmentedStringFormExpr, nullable CallSite) */ +void nitc__typing___AugmentedStringFormExpr___to_re_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___to_re].val = p0; /* _to_re on */ RET_LABEL:; } -/* method typing#AIsaExpr#accept_post_typing for (self: AIsaExpr, TypeVisitor) */ -void nitc__typing___AIsaExpr___ANode__accept_post_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : AType */; -val* var5 /* : AType */; -val* var6 /* : nullable MType */; -var_v = p0; -{ -{ /* Inline parser_nodes#AIsaExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2153); -fatal_exit(1); +/* method typing$AugmentedStringFormExpr$ignore_case for (self: AugmentedStringFormExpr): nullable CallSite */ +val* nitc__typing___AugmentedStringFormExpr___ignore_case(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___ignore_case].val; /* _ignore_case on */ +var = var1; +RET_LABEL:; +return var; } -var = var2; -RET_LABEL1:(void)0; +/* method typing$AugmentedStringFormExpr$ignore_case= for (self: AugmentedStringFormExpr, nullable CallSite) */ +void nitc__typing___AugmentedStringFormExpr___ignore_case_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___ignore_case].val = p0; /* _ignore_case on */ +RET_LABEL:; } +/* method typing$AugmentedStringFormExpr$newline for (self: AugmentedStringFormExpr): nullable CallSite */ +val* nitc__typing___AugmentedStringFormExpr___newline(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___newline].val; /* _newline on */ +var = var1; +RET_LABEL:; +return var; } -{ -{ /* Inline parser_nodes#AIsaExpr#n_type (self) on */ -var5 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_type].val; /* _n_type on */ -if (unlikely(var5 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2159); -fatal_exit(1); +/* method typing$AugmentedStringFormExpr$newline= for (self: AugmentedStringFormExpr, nullable CallSite) */ +void nitc__typing___AugmentedStringFormExpr___newline_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___newline].val = p0; /* _newline on */ +RET_LABEL:; } -var3 = var5; -RET_LABEL4:(void)0; +/* method typing$AugmentedStringFormExpr$extended for (self: AugmentedStringFormExpr): nullable CallSite */ +val* nitc__typing___AugmentedStringFormExpr___extended(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___extended].val; /* _extended on */ +var = var1; +RET_LABEL:; +return var; } +/* method typing$AugmentedStringFormExpr$extended= for (self: AugmentedStringFormExpr, nullable CallSite) */ +void nitc__typing___AugmentedStringFormExpr___extended_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___extended].val = p0; /* _extended on */ +RET_LABEL:; } -{ -var6 = nitc__typing___nitc__typing__TypeVisitor___check_expr_cast(var_v, self, var, var3); +/* method typing$AugmentedStringFormExpr$to_bytes_with_copy for (self: AugmentedStringFormExpr): nullable CallSite */ +val* nitc__typing___AugmentedStringFormExpr___to_bytes_with_copy(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___to_bytes_with_copy].val; /* _to_bytes_with_copy on */ +var = var1; +RET_LABEL:; +return var; } +/* method typing$AugmentedStringFormExpr$to_bytes_with_copy= for (self: AugmentedStringFormExpr, nullable CallSite) */ +void nitc__typing___AugmentedStringFormExpr___to_bytes_with_copy_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___to_bytes_with_copy].val = p0; /* _to_bytes_with_copy on */ RET_LABEL:; } -/* method typing#AAsCastExpr#accept_typing for (self: AAsCastExpr, TypeVisitor) */ -void nitc__typing___AAsCastExpr___AExpr__accept_typing(val* self, val* p0) { +/* method typing$AugmentedStringFormExpr$accept_typing for (self: AugmentedStringFormExpr, TypeVisitor) */ +void nitc__typing___AugmentedStringFormExpr___AExpr__accept_typing(val* self, val* p0) { val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MType */; -val* var4 /* : AType */; -val* var6 /* : AType */; -val* var7 /* : nullable MType */; +static val* varonce; +val* var /* : String */; +char* var1 /* : CString */; +val* var2 /* : String */; +val* var3 /* : nullable Int */; +val* var4 /* : nullable Int */; +val* var5 /* : nullable Bool */; +val* var6 /* : nullable Bool */; +val* var7 /* : nullable MClass */; +val* var_mclass /* var mclass: nullable MClass */; +short int var8 /* : Bool */; +short int var9 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var11 /* : Bool */; +short int var13 /* : Bool */; +short int var14 /* : Bool */; +val* var15 /* : MModule */; +val* var17 /* : MModule */; +val* var18 /* : MClassType */; +static val* varonce19; +val* var20 /* : String */; +char* var21 /* : CString */; +val* var22 /* : String */; +val* var23 /* : nullable Int */; +val* var24 /* : nullable Int */; +val* var25 /* : nullable Bool */; +val* var26 /* : nullable Bool */; +val* var27 /* : nullable CallSite */; +static val* varonce29; +val* var30 /* : String */; +char* var31 /* : CString */; +val* var32 /* : String */; +val* var33 /* : nullable Int */; +val* var34 /* : nullable Int */; +val* var35 /* : nullable Bool */; +val* var36 /* : nullable Bool */; +val* var37 /* : nullable MClass */; +short int var38 /* : Bool */; +val* var39 /* : MClassType */; +val* var41 /* : MClassType */; +static val* varonce42; +val* var43 /* : String */; +char* var44 /* : CString */; +val* var45 /* : String */; +val* var46 /* : nullable Int */; +val* var47 /* : nullable Int */; +val* var48 /* : nullable Bool */; +val* var49 /* : nullable Bool */; +val* var50 /* : nullable CallSite */; +val* var52 /* : String */; +val* var53 /* : SequenceRead[Char] */; +val* var_ /* var : SequenceRead[Char] */; +val* var54 /* : Iterator[nullable Object] */; +val* var_55 /* var : IndexedIterator[Char] */; +short int var56 /* : Bool */; +val* var57 /* : nullable Object */; +uint32_t var58 /* : Char */; +uint32_t var_i /* var i: Char */; +static val* varonce59; +val* var60 /* : String */; +char* var61 /* : CString */; +val* var62 /* : String */; +val* var63 /* : nullable Int */; +val* var64 /* : nullable Int */; +val* var65 /* : nullable Bool */; +val* var66 /* : nullable Bool */; +val* var67 /* : nullable MClass */; +short int var68 /* : Bool */; +short int var69 /* : Bool */; +short int var71 /* : Bool */; +short int var73 /* : Bool */; +static val* varonce74; +val* var75 /* : String */; +char* var76 /* : CString */; +val* var77 /* : String */; +val* var78 /* : nullable Int */; +val* var79 /* : nullable Int */; +val* var80 /* : nullable Bool */; +val* var81 /* : nullable Bool */; +static val* varonce82; +val* var83 /* : String */; +char* var84 /* : CString */; +val* var85 /* : String */; +val* var86 /* : nullable Int */; +val* var87 /* : nullable Int */; +val* var88 /* : nullable Bool */; +val* var89 /* : nullable Bool */; +val* var_service /* var service: String */; +short int var90 /* : Bool */; +short int var92 /* : Bool */; +static val* varonce93; +val* var94 /* : String */; +char* var95 /* : CString */; +val* var96 /* : String */; +val* var97 /* : nullable Int */; +val* var98 /* : nullable Int */; +val* var99 /* : nullable Bool */; +val* var100 /* : nullable Bool */; +val* var101 /* : MClassType */; +val* var103 /* : MClassType */; +val* var104 /* : nullable CallSite */; +short int var106 /* : Bool */; +short int var108 /* : Bool */; +static val* varonce109; +val* var110 /* : String */; +char* var111 /* : CString */; +val* var112 /* : String */; +val* var113 /* : nullable Int */; +val* var114 /* : nullable Int */; +val* var115 /* : nullable Bool */; +val* var116 /* : nullable Bool */; +val* var117 /* : MClassType */; +val* var119 /* : MClassType */; +val* var120 /* : nullable CallSite */; +short int var122 /* : Bool */; +short int var124 /* : Bool */; +static val* varonce125; +val* var126 /* : String */; +char* var127 /* : CString */; +val* var128 /* : String */; +val* var129 /* : nullable Int */; +val* var130 /* : nullable Int */; +val* var131 /* : nullable Bool */; +val* var132 /* : nullable Bool */; +val* var133 /* : MClassType */; +val* var135 /* : MClassType */; +val* var136 /* : nullable CallSite */; +val* var139 /* : NativeArray[String] */; +static val* varonce138; +static val* varonce140; +val* var141 /* : String */; +char* var142 /* : CString */; +val* var143 /* : String */; +val* var144 /* : nullable Int */; +val* var145 /* : nullable Int */; +val* var146 /* : nullable Bool */; +val* var147 /* : nullable Bool */; +static val* varonce148; +val* var149 /* : String */; +char* var150 /* : CString */; +val* var151 /* : String */; +val* var152 /* : nullable Int */; +val* var153 /* : nullable Int */; +val* var154 /* : nullable Bool */; +val* var155 /* : nullable Bool */; +val* var156 /* : String */; +val* var157 /* : String */; +short int var158 /* : Bool */; +short int var159 /* : Bool */; +short int var161 /* : Bool */; +short int var163 /* : Bool */; +val* var164 /* : MClassType */; +val* var166 /* : MClassType */; var_v = p0; -{ -{ /* Inline parser_nodes#AAsCastForm#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2586); -fatal_exit(1); -} +if (likely(varonce!=NULL)) { +var = varonce; +} else { +var1 = "String"; +var3 = (val*)(6l<<2|1); +var4 = (val*)(6l<<2|1); +var5 = (val*)((long)(0)<<2|3); +var6 = (val*)((long)(0)<<2|3); +var2 = core__flat___CString___to_s_unsafe(var1, var3, var4, var5, var6); var = var2; -RET_LABEL1:(void)0; -} -} -{ -var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var); -} -{ -{ /* Inline parser_nodes#AAsCastExpr#n_type (self) on */ -var6 = self->attrs[COLOR_nitc__parser_nodes__AAsCastExpr___n_type].val; /* _n_type on */ -if (unlikely(var6 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2603); -fatal_exit(1); -} -var4 = var6; -RET_LABEL5:(void)0; -} -} -{ -var7 = nitc__typing___nitc__typing__TypeVisitor___resolve_mtype(var_v, var4); +varonce = var; } { -{ /* Inline typing#AExpr#mtype= (self,var7) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var7; /* _mtype on */ -RET_LABEL8:(void)0; -} +var7 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var); } -RET_LABEL:; +var_mclass = var7; +if (var_mclass == NULL) { +var8 = 1; /* is null */ +} else { +var8 = 0; /* arg is null but recv is not */ } -/* method typing#AAsCastExpr#accept_post_typing for (self: AAsCastExpr, TypeVisitor) */ -void nitc__typing___AAsCastExpr___ANode__accept_post_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : AType */; -val* var5 /* : AType */; -val* var6 /* : nullable MType */; -var_v = p0; +if (0) { +{ /* Inline kernel$Object$== (var_mclass,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline parser_nodes#AAsCastForm#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2586); -fatal_exit(1); -} -var = var2; -RET_LABEL1:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_mclass,var_other) on */ +var13 = var_mclass == var_other; +var11 = var13; +goto RET_LABEL12; +RET_LABEL12:(void)0; } } -{ -{ /* Inline parser_nodes#AAsCastExpr#n_type (self) on */ -var5 = self->attrs[COLOR_nitc__parser_nodes__AAsCastExpr___n_type].val; /* _n_type on */ -if (unlikely(var5 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2603); -fatal_exit(1); +var9 = var11; +goto RET_LABEL10; +RET_LABEL10:(void)0; } -var3 = var5; -RET_LABEL4:(void)0; +var8 = var9; } +if (var8){ +goto RET_LABEL; +} else { } { -var6 = nitc__typing___nitc__typing__TypeVisitor___check_expr_cast(var_v, self, var, var3); -} -RET_LABEL:; +var14 = nitc___nitc__AugmentedStringFormExpr___is_bytestring(self); } -/* method typing#AAsNotnullExpr#accept_typing for (self: AAsNotnullExpr, TypeVisitor) */ -void nitc__typing___AAsNotnullExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MType */; -val* var_mtype /* var mtype: nullable MType */; -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 */; -int cltype; -int idtype; -static val* varonce; -val* var11 /* : String */; -char* var12 /* : NativeString */; -val* var13 /* : String */; -short int var14 /* : Bool */; -val* var15 /* : MType */; -var_v = p0; +if (var14){ { -{ /* Inline parser_nodes#AAsCastForm#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2586); +{ /* Inline typing$TypeVisitor$mmodule (var_v) on */ +var17 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mmodule].val; /* _mmodule on */ +if (unlikely(var17 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 37); fatal_exit(1); } -var = var2; -RET_LABEL1:(void)0; +var15 = var17; +RET_LABEL16:(void)0; } } { -var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var); +var18 = nitc__model___MModule___c_string_type(var15); } -var_mtype = var3; -if (var_mtype == NULL) { -var4 = 1; /* is null */ +if (likely(varonce19!=NULL)) { +var20 = varonce19; } else { -var4 = 0; /* arg is null but recv is not */ +var21 = "to_bytes_with_copy"; +var23 = (val*)(18l<<2|1); +var24 = (val*)(18l<<2|1); +var25 = (val*)((long)(0)<<2|3); +var26 = (val*)((long)(0)<<2|3); +var22 = core__flat___CString___to_s_unsafe(var21, var23, var24, var25, var26); +var20 = var22; +varonce19 = var20; } -if (0) { -{ /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on */ -var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on */ -var9 = var_mtype == var_other; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +var27 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var18, var20, 0); } +{ +{ /* Inline typing$AugmentedStringFormExpr$to_bytes_with_copy= (self,var27) on */ +self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___to_bytes_with_copy].val = var27; /* _to_bytes_with_copy on */ +RET_LABEL28:(void)0; } -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; -} -var4 = var5; } -if (var4){ -goto RET_LABEL; +if (likely(varonce29!=NULL)) { +var30 = varonce29; } else { +var31 = "Bytes"; +var33 = (val*)(5l<<2|1); +var34 = (val*)(5l<<2|1); +var35 = (val*)((long)(0)<<2|3); +var36 = (val*)((long)(0)<<2|3); +var32 = core__flat___CString___to_s_unsafe(var31, var33, var34, var35, var36); +var30 = var32; +varonce29 = var30; } -/* isa MNullType */ -cltype = type_nitc__MNullType.color; -idtype = type_nitc__MNullType.id; -if(cltype >= var_mtype->type->table_size) { -var10 = 0; -} else { -var10 = var_mtype->type->type_table[cltype] == idtype; +{ +var37 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var30); } -if (var10){ -if (likely(varonce!=NULL)) { -var11 = varonce; +var_mclass = var37; } else { -var12 = "Type Error: `as(not null)` on `null`."; -var13 = core__flat___NativeString___to_s_full(var12, 37l, 37l); -var11 = var13; -varonce = var11; +{ +var38 = nitc___nitc__AugmentedStringFormExpr___is_re(self); } +if (var38){ { -nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var11); /* Direct call typing#TypeVisitor#error on */ +{ /* Inline model$MClass$mclass_type (var_mclass) on */ +var41 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var41 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -goto RET_LABEL; +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520); +fatal_exit(1); +} +var39 = var41; +RET_LABEL40:(void)0; +} +} +if (likely(varonce42!=NULL)) { +var43 = varonce42; } else { +var44 = "to_re"; +var46 = (val*)(5l<<2|1); +var47 = (val*)(5l<<2|1); +var48 = (val*)((long)(0)<<2|3); +var49 = (val*)((long)(0)<<2|3); +var45 = core__flat___CString___to_s_unsafe(var44, var46, var47, var48, var49); +var43 = var45; +varonce42 = var43; } { -var14 = nitc__typing___nitc__typing__TypeVisitor___can_be_null(var_v, var_mtype); +var50 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var39, var43, 0); } -if (var14){ { -var15 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__as_notnull]))(var_mtype); /* as_notnull on */ +{ /* Inline typing$AugmentedStringFormExpr$to_re= (self,var50) on */ +self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___to_re].val = var50; /* _to_re on */ +RET_LABEL51:(void)0; } -var_mtype = var15; -} else { } { -{ /* Inline typing#AExpr#mtype= (self,var_mtype) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_mtype; /* _mtype on */ -RET_LABEL16:(void)0; +var52 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__suffix]))(self); /* suffix on */ } +{ +var53 = ((val*(*)(val* self))(var52->class->vft[COLOR_core__abstract_text__Text__chars]))(var52); /* chars on */ } -RET_LABEL:; +var_ = var53; +{ +var54 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_); /* iterator on */ } -/* method typing#AAsNotnullExpr#accept_post_typing for (self: AAsNotnullExpr, TypeVisitor) */ -void nitc__typing___AAsNotnullExpr___ANode__accept_post_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MType */; -val* var_mtype /* var mtype: nullable MType */; -short int var4 /* : Bool */; -short int var5 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var7 /* : Bool */; -short int var9 /* : Bool */; -val* var10 /* : AExpr */; -val* var12 /* : AExpr */; -short int var13 /* : Bool */; -var_v = p0; +var_55 = var54; +for(;;) { { -{ /* Inline parser_nodes#AAsCastForm#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2586); -fatal_exit(1); +var56 = ((short int(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_55); /* is_ok on */ } -var = var2; -RET_LABEL1:(void)0; +if (var56){ +} else { +goto BREAK_label; } +{ +var57 = ((val*(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_55); /* item on */ +} +var58 = (uint32_t)((long)(var57)>>2); +var_i = var58; +if (likely(varonce59!=NULL)) { +var60 = varonce59; +} else { +var61 = "Regex"; +var63 = (val*)(5l<<2|1); +var64 = (val*)(5l<<2|1); +var65 = (val*)((long)(0)<<2|3); +var66 = (val*)((long)(0)<<2|3); +var62 = core__flat___CString___to_s_unsafe(var61, var63, var64, var65, var66); +var60 = var62; +varonce59 = var60; } { -var3 = ((val*(*)(val* self))(var->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var); /* mtype on */ +var67 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var60); } -var_mtype = var3; -if (var_mtype == NULL) { -var4 = 1; /* is null */ +var_mclass = var67; +if (var_mclass == NULL) { +var68 = 1; /* is null */ } else { -var4 = 0; /* arg is null but recv is not */ +var68 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_mclass,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on */ -var9 = var_mtype == var_other; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_mclass,var_other) on */ +var73 = var_mclass == var_other; +var71 = var73; +goto RET_LABEL72; +RET_LABEL72:(void)0; } } -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; +var69 = var71; +goto RET_LABEL70; +RET_LABEL70:(void)0; } -var4 = var5; +var68 = var69; } -if (var4){ -goto RET_LABEL; +if (var68){ +if (likely(varonce74!=NULL)) { +var75 = varonce74; } else { +var76 = "Error: `Regex` class unknown"; +var78 = (val*)(28l<<2|1); +var79 = (val*)(28l<<2|1); +var80 = (val*)((long)(0)<<2|3); +var81 = (val*)((long)(0)<<2|3); +var77 = core__flat___CString___to_s_unsafe(var76, var78, var79, var80, var81); +var75 = var77; +varonce74 = var75; } { -{ /* Inline parser_nodes#AAsCastForm#n_expr (self) on */ -var12 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on */ -if (unlikely(var12 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2586); -fatal_exit(1); +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var75); /* Direct call typing$TypeVisitor$error on */ } -var10 = var12; -RET_LABEL11:(void)0; +goto RET_LABEL; +} else { } +if (likely(varonce82!=NULL)) { +var83 = varonce82; +} else { +var84 = ""; +var86 = (val*)(0l<<2|1); +var87 = (val*)(0l<<2|1); +var88 = (val*)((long)(0)<<2|3); +var89 = (val*)((long)(0)<<2|3); +var85 = core__flat___CString___to_s_unsafe(var84, var86, var87, var88, var89); +var83 = var85; +varonce82 = var83; } +var_service = var83; { -var13 = nitc__typing___nitc__typing__TypeVisitor___check_can_be_null(var_v, var10, var_mtype); +{ /* Inline kernel$Char$== (var_i,'i') on */ +var92 = var_i == 'i'; +var90 = var92; +goto RET_LABEL91; +RET_LABEL91:(void)0; } -RET_LABEL:; } -/* method typing#AParExpr#accept_typing for (self: AParExpr, TypeVisitor) */ -void nitc__typing___AParExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MType */; -var_v = p0; +if (var90){ +if (likely(varonce93!=NULL)) { +var94 = varonce93; +} else { +var95 = "ignore_case="; +var97 = (val*)(12l<<2|1); +var98 = (val*)(12l<<2|1); +var99 = (val*)((long)(0)<<2|3); +var100 = (val*)((long)(0)<<2|3); +var96 = core__flat___CString___to_s_unsafe(var95, var97, var98, var99, var100); +var94 = var96; +varonce93 = var94; +} +var_service = var94; { -{ /* Inline parser_nodes#AParExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__AParExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2575); +{ /* Inline model$MClass$mclass_type (var_mclass) on */ +var103 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var103 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520); fatal_exit(1); } -var = var2; -RET_LABEL1:(void)0; +var101 = var103; +RET_LABEL102:(void)0; } } { -var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var); +var104 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var101, var_service, 0); } { -{ /* Inline typing#AExpr#mtype= (self,var3) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var3; /* _mtype on */ -RET_LABEL4:(void)0; -} +{ /* Inline typing$AugmentedStringFormExpr$ignore_case= (self,var104) on */ +self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___ignore_case].val = var104; /* _ignore_case on */ +RET_LABEL105:(void)0; } -RET_LABEL:; } -/* method typing#AOnceExpr#accept_typing for (self: AOnceExpr, TypeVisitor) */ -void nitc__typing___AOnceExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MType */; -var_v = p0; +} else { { -{ /* Inline parser_nodes#AOnceExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__AOnceExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2014); -fatal_exit(1); -} -var = var2; -RET_LABEL1:(void)0; +{ /* Inline kernel$Char$== (var_i,'m') on */ +var108 = var_i == 'm'; +var106 = var108; +goto RET_LABEL107; +RET_LABEL107:(void)0; } } -{ -var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var); +if (var106){ +if (likely(varonce109!=NULL)) { +var110 = varonce109; +} else { +var111 = "newline="; +var113 = (val*)(8l<<2|1); +var114 = (val*)(8l<<2|1); +var115 = (val*)((long)(0)<<2|3); +var116 = (val*)((long)(0)<<2|3); +var112 = core__flat___CString___to_s_unsafe(var111, var113, var114, var115, var116); +var110 = var112; +varonce109 = var110; } +var_service = var110; { -{ /* Inline typing#AExpr#mtype= (self,var3) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var3; /* _mtype on */ -RET_LABEL4:(void)0; +{ /* Inline model$MClass$mclass_type (var_mclass) on */ +var119 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var119 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520); +fatal_exit(1); } -RET_LABEL:; +var117 = var119; +RET_LABEL118:(void)0; } -/* method typing#ASelfExpr#its_variable for (self: ASelfExpr): nullable Variable */ -val* nitc__typing___ASelfExpr___AExpr__its_variable(val* self) { -val* var /* : nullable Variable */; -val* var1 /* : nullable Variable */; -var1 = self->attrs[COLOR_nitc__typing__ASelfExpr___its_variable].val; /* _its_variable on */ -var = var1; -RET_LABEL:; -return var; } -/* method typing#ASelfExpr#its_variable= for (self: ASelfExpr, nullable Variable) */ -void nitc__typing___ASelfExpr___its_variable_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__ASelfExpr___its_variable].val = p0; /* _its_variable on */ -RET_LABEL:; +{ +var120 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var117, var_service, 0); } -/* method typing#ASelfExpr#accept_typing for (self: ASelfExpr, TypeVisitor) */ -void nitc__typing___ASelfExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -short int var /* : Bool */; -short int var1 /* : Bool */; -short int var3 /* : Bool */; -short int var_ /* var : Bool */; -short int var4 /* : Bool */; -int cltype; -int idtype; -short int var5 /* : Bool */; -static val* varonce; -val* var6 /* : String */; -char* var7 /* : NativeString */; -val* var8 /* : String */; -val* var9 /* : Variable */; -val* var11 /* : Variable */; -val* var_variable /* var variable: Variable */; -val* var13 /* : nullable MType */; -var_v = p0; { -{ /* Inline typing#TypeVisitor#is_toplevel_context (var_v) on */ -var3 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___is_toplevel_context].s; /* _is_toplevel_context on */ -var1 = var3; -RET_LABEL2:(void)0; +{ /* Inline typing$AugmentedStringFormExpr$newline= (self,var120) on */ +self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___newline].val = var120; /* _newline on */ +RET_LABEL121:(void)0; } } -var_ = var1; -if (var1){ -/* isa AImplicitSelfExpr */ -cltype = type_nitc__AImplicitSelfExpr.color; -idtype = type_nitc__AImplicitSelfExpr.id; -if(cltype >= self->type->table_size) { -var4 = 0; } else { -var4 = self->type->type_table[cltype] == idtype; +{ +{ /* Inline kernel$Char$== (var_i,'b') on */ +var124 = var_i == 'b'; +var122 = var124; +goto RET_LABEL123; +RET_LABEL123:(void)0; } -var5 = !var4; -var = var5; -} else { -var = var_; } -if (var){ -if (likely(varonce!=NULL)) { -var6 = varonce; +if (var122){ +if (likely(varonce125!=NULL)) { +var126 = varonce125; } else { -var7 = "Error: `self` cannot be used in top-level method."; -var8 = core__flat___NativeString___to_s_full(var7, 49l, 49l); -var6 = var8; -varonce = var6; +var127 = "extended="; +var129 = (val*)(9l<<2|1); +var130 = (val*)(9l<<2|1); +var131 = (val*)((long)(0)<<2|3); +var132 = (val*)((long)(0)<<2|3); +var128 = core__flat___CString___to_s_unsafe(var127, var129, var130, var131, var132); +var126 = var128; +varonce125 = var126; } +var_service = var126; { -nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var6); /* Direct call typing#TypeVisitor#error on */ -} -} else { +{ /* Inline model$MClass$mclass_type (var_mclass) on */ +var135 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var135 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -{ -{ /* Inline typing#TypeVisitor#selfvariable (var_v) on */ -var11 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___selfvariable].val; /* _selfvariable on */ -if (unlikely(var11 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 51); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520); fatal_exit(1); } -var9 = var11; -RET_LABEL10:(void)0; +var133 = var135; +RET_LABEL134:(void)0; } } -var_variable = var9; { -{ /* Inline typing#ASelfExpr#its_variable= (self,var_variable) on */ -self->attrs[COLOR_nitc__typing__ASelfExpr___its_variable].val = var_variable; /* _its_variable on */ -RET_LABEL12:(void)0; -} +var136 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var133, var_service, 0); } { -var13 = nitc__typing___nitc__typing__TypeVisitor___get_variable(var_v, self, var_variable); +{ /* Inline typing$AugmentedStringFormExpr$extended= (self,var136) on */ +self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___extended].val = var136; /* _extended on */ +RET_LABEL137:(void)0; } -{ -{ /* Inline typing#AExpr#mtype= (self,var13) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var13; /* _mtype on */ -RET_LABEL14:(void)0; } +} else { +if (unlikely(varonce138==NULL)) { +var139 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String); +if (likely(varonce140!=NULL)) { +var141 = varonce140; +} else { +var142 = "Type Error: Unrecognized suffix "; +var144 = (val*)(32l<<2|1); +var145 = (val*)(32l<<2|1); +var146 = (val*)((long)(0)<<2|3); +var147 = (val*)((long)(0)<<2|3); +var143 = core__flat___CString___to_s_unsafe(var142, var144, var145, var146, var147); +var141 = var143; +varonce140 = var141; } -RET_LABEL:; +((struct instance_core__NativeArray*)var139)->values[0]=var141; +if (likely(varonce148!=NULL)) { +var149 = varonce148; +} else { +var150 = " in prefixed Regex"; +var152 = (val*)(18l<<2|1); +var153 = (val*)(18l<<2|1); +var154 = (val*)((long)(0)<<2|3); +var155 = (val*)((long)(0)<<2|3); +var151 = core__flat___CString___to_s_unsafe(var150, var152, var153, var154, var155); +var149 = var151; +varonce148 = var149; } -/* method typing#AImplicitSelfExpr#is_sys for (self: AImplicitSelfExpr): Bool */ -short int nitc__typing___AImplicitSelfExpr___is_sys(val* self) { -short int var /* : Bool */; -short int var1 /* : Bool */; -var1 = self->attrs[COLOR_nitc__typing__AImplicitSelfExpr___is_sys].s; /* _is_sys on */ -var = var1; -RET_LABEL:; -return var; +((struct instance_core__NativeArray*)var139)->values[2]=var149; +} else { +var139 = varonce138; +varonce138 = NULL; } -/* method typing#AImplicitSelfExpr#is_sys= for (self: AImplicitSelfExpr, Bool) */ -void nitc__typing___AImplicitSelfExpr___is_sys_61d(val* self, short int p0) { -self->attrs[COLOR_nitc__typing__AImplicitSelfExpr___is_sys].s = p0; /* _is_sys on */ -RET_LABEL:; +var156 = core__abstract_text___Char___Object__to_s(var_i); +((struct instance_core__NativeArray*)var139)->values[1]=var156; +{ +var157 = ((val*(*)(val* self))(var139->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var139); /* native_to_s on */ } -/* method typing#ASendExpr#callsite for (self: ASendExpr): nullable CallSite */ -val* nitc__typing___ASendExpr___callsite(val* self) { -val* var /* : nullable CallSite */; -val* var1 /* : nullable CallSite */; -var1 = self->attrs[COLOR_nitc__typing__ASendExpr___callsite].val; /* _callsite on */ -var = var1; -RET_LABEL:; -return var; +varonce138 = var139; +{ +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var157); /* Direct call typing$TypeVisitor$error on */ } -/* method typing#ASendExpr#callsite= for (self: ASendExpr, nullable CallSite) */ -void nitc__typing___ASendExpr___callsite_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__ASendExpr___callsite].val = p0; /* _callsite on */ -RET_LABEL:; +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -/* method typing#ASendExpr#accept_typing for (self: ASendExpr, TypeVisitor) */ -void nitc__typing___ASendExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var_nrecv /* var nrecv: AExpr */; -val* var3 /* : nullable MType */; -val* var_recvtype /* var recvtype: nullable MType */; -val* var4 /* : String */; -val* var_name /* var name: String */; -val* var5 /* : ANode */; -val* var_node /* var node: ANode */; -short int var6 /* : Bool */; -short int var7 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var9 /* : Bool */; -short int var11 /* : Bool */; -val* var_callsite /* var callsite: nullable Object */; -val* var12 /* : MType */; -val* var_unsafe_type /* var unsafe_type: MType */; -val* var13 /* : nullable MProperty */; -val* var_mproperty /* var mproperty: nullable MProperty */; -short int var14 /* : Bool */; -short int var15 /* : Bool */; -short int var16 /* : Bool */; -short int var18 /* : Bool */; -short int var20 /* : Bool */; -short int var_ /* var : Bool */; -short int var21 /* : Bool */; -int cltype; -int idtype; -static val* varonce; -val* var22 /* : String */; -char* var23 /* : NativeString */; -val* var24 /* : String */; -val* var25 /* : nullable MClass */; -val* var_sysclass /* var sysclass: nullable MClass */; -short int var26 /* : Bool */; -short int var27 /* : Bool */; -val* var_other29 /* var other: nullable Object */; -short int var30 /* : Bool */; -short int var31 /* : Bool */; -val* var32 /* : MClassType */; -val* var34 /* : MClassType */; -val* var_systype /* var systype: MClassType */; -val* var35 /* : nullable MProperty */; -short int var36 /* : Bool */; -short int var37 /* : Bool */; -short int var39 /* : Bool */; -short int var40 /* : Bool */; -val* var41 /* : nullable CallSite */; -short int var42 /* : Bool */; -short int var43 /* : Bool */; -short int var45 /* : Bool */; -short int var47 /* : Bool */; -short int var51 /* : Bool */; -short int var52 /* : Bool */; -short int var54 /* : Bool */; -short int var56 /* : Bool */; -short int var57 /* : Bool */; -int cltype58; -int idtype59; -val* var60 /* : nullable CallSite */; -short int var61 /* : Bool */; -short int var62 /* : Bool */; -short int var64 /* : Bool */; -short int var66 /* : Bool */; -val* var68 /* : MSignature */; -val* var70 /* : MSignature */; -val* var_msignature /* var msignature: MSignature */; -val* var71 /* : Array[AExpr] */; -val* var_args /* var args: Array[AExpr] */; -short int var72 /* : Bool */; -val* var73 /* : MMethod */; -val* var75 /* : MMethod */; -short int var76 /* : Bool */; -short int var78 /* : Bool */; -val* var79 /* : nullable MPropDef */; -val* var81 /* : nullable MPropDef */; -val* var_vmpropdef /* var vmpropdef: nullable MPropDef */; -short int var82 /* : Bool */; -short int var83 /* : Bool */; -int cltype84; -int idtype85; -short int var_86 /* var : Bool */; -val* var87 /* : MProperty */; -val* var89 /* : MProperty */; -short int var90 /* : Bool */; -short int var92 /* : Bool */; -short int var93 /* : Bool */; -static val* varonce94; -val* var95 /* : String */; -char* var96 /* : NativeString */; -val* var97 /* : String */; -short int var98 /* : Bool */; -short int var99 /* : Bool */; -short int var100 /* : Bool */; -int cltype101; -int idtype102; -short int var_103 /* var : Bool */; -val* var104 /* : MProperty */; -val* var106 /* : MProperty */; -short int var107 /* : Bool */; -short int var109 /* : Bool */; -short int var_110 /* var : Bool */; -val* var111 /* : MMethod */; -val* var113 /* : MMethod */; -short int var114 /* : Bool */; -short int var116 /* : Bool */; -short int var117 /* : Bool */; -val* var119 /* : NativeArray[String] */; -static val* varonce118; -static val* varonce120; -val* var121 /* : String */; -char* var122 /* : NativeString */; -val* var123 /* : String */; -static val* varonce124; -val* var125 /* : String */; -char* var126 /* : NativeString */; -val* var127 /* : String */; -static val* varonce128; -val* var129 /* : String */; -char* var130 /* : NativeString */; -val* var131 /* : String */; -val* var132 /* : String */; -val* var133 /* : MMethod */; -val* var135 /* : MMethod */; -val* var136 /* : String */; -val* var137 /* : String */; -val* var138 /* : nullable MType */; -val* var140 /* : nullable MType */; -val* var_ret /* var ret: nullable MType */; -short int var141 /* : Bool */; -short int var142 /* : Bool */; -short int var144 /* : Bool */; -short int var145 /* : Bool */; -var_v = p0; -{ -{ /* Inline parser_nodes#ASendExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2022); +PRINT_ERROR("Runtime error: %s", "Aborted"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1530); fatal_exit(1); } -var = var2; -RET_LABEL1:(void)0; } } -var_nrecv = var; { -var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var_nrecv); +((void(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_55); /* next on */ } -var_recvtype = var3; -{ -var4 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__typing__ASendExpr__property_name]))(self); /* property_name on */ } -var_name = var4; +BREAK_label: (void)0; { -var5 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__typing__ASendExpr__property_node]))(self); /* property_node on */ +((void(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_55); /* finish on */ +} +} else { +} } -var_node = var5; -if (var_recvtype == NULL) { -var6 = 1; /* is null */ +if (var_mclass == NULL) { +var158 = 1; /* is null */ } else { -var6 = 0; /* arg is null but recv is not */ +var158 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_recvtype,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_mclass,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_recvtype,var_other) on */ -var11 = var_recvtype == var_other; -var9 = var11; -goto RET_LABEL10; -RET_LABEL10:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_mclass,var_other) on */ +var163 = var_mclass == var_other; +var161 = var163; +goto RET_LABEL162; +RET_LABEL162:(void)0; } } -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +var159 = var161; +goto RET_LABEL160; +RET_LABEL160:(void)0; } -var6 = var7; +var158 = var159; } -if (var6){ +if (var158){ goto RET_LABEL; } else { } -var_callsite = ((val*)NULL); -{ -var12 = nitc__typing___nitc__typing__TypeVisitor___anchor_to(var_v, var_recvtype); -} -var_unsafe_type = var12; { -var13 = nitc__typing___nitc__typing__TypeVisitor___try_get_mproperty_by_name2(var_v, var_node, var_unsafe_type, var_name); +{ /* Inline model$MClass$mclass_type (var_mclass) on */ +var166 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var166 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var_mproperty = var13; -if (var_mproperty == NULL) { -var15 = 1; /* is null */ -} else { -var15 = 0; /* arg is null but recv is not */ +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520); +fatal_exit(1); } -if (0) { -{ /* Inline kernel#Object#== (var_mproperty,((val*)NULL)) on */ -var_other = ((val*)NULL); -{ -{ /* Inline kernel#Object#is_same_instance (var_mproperty,var_other) on */ -var20 = var_mproperty == var_other; -var18 = var20; -goto RET_LABEL19; -RET_LABEL19:(void)0; +var164 = var166; +RET_LABEL165:(void)0; } } -var16 = var18; -goto RET_LABEL17; -RET_LABEL17:(void)0; +{ +{ /* Inline typing$AExpr$mtype= (self,var164) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var164; /* _mtype on */ +RET_LABEL167:(void)0; } -var15 = var16; } -var_ = var15; -if (var15){ -/* isa AImplicitSelfExpr */ -cltype = type_nitc__AImplicitSelfExpr.color; -idtype = type_nitc__AImplicitSelfExpr.id; -if(cltype >= var_nrecv->type->table_size) { -var21 = 0; -} else { -var21 = var_nrecv->type->type_table[cltype] == idtype; +RET_LABEL:; } -var14 = var21; -} else { -var14 = var_; +/* method typing$ASuperstringExpr$accept_typing for (self: ASuperstringExpr, TypeVisitor) */ +void nitc__typing___ASuperstringExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +static val* varonce; +val* var /* : String */; +char* var1 /* : CString */; +val* var2 /* : String */; +val* var3 /* : nullable Int */; +val* var4 /* : nullable Int */; +val* var5 /* : nullable Bool */; +val* var6 /* : nullable Bool */; +val* var7 /* : nullable MClass */; +val* var_objclass /* var objclass: nullable MClass */; +short int var8 /* : Bool */; +short int var9 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var11 /* : Bool */; +short int var13 /* : Bool */; +val* var14 /* : MClassType */; +val* var16 /* : MClassType */; +val* var_objtype /* var objtype: MClassType */; +val* var17 /* : ANodes[AExpr] */; +val* var19 /* : ANodes[AExpr] */; +val* var_ /* var : ANodes[AExpr] */; +val* var20 /* : Iterator[ANode] */; +val* var_21 /* var : Iterator[AExpr] */; +short int var22 /* : Bool */; +val* var23 /* : nullable Object */; +val* var_nexpr /* var nexpr: AExpr */; +val* var24 /* : nullable MType */; +var_v = p0; +{ +((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__typing___ASuperstringExpr___AExpr__accept_typing]))(self, p0); /* accept_typing on */ } -if (var14){ if (likely(varonce!=NULL)) { -var22 = varonce; +var = varonce; } else { -var23 = "Sys"; -var24 = core__flat___NativeString___to_s_full(var23, 3l, 3l); -var22 = var24; -varonce = var22; +var1 = "Object"; +var3 = (val*)(6l<<2|1); +var4 = (val*)(6l<<2|1); +var5 = (val*)((long)(0)<<2|3); +var6 = (val*)((long)(0)<<2|3); +var2 = core__flat___CString___to_s_unsafe(var1, var3, var4, var5, var6); +var = var2; +varonce = var; } { -var25 = nitc__typing___nitc__typing__TypeVisitor___try_get_mclass(var_v, var_node, var22); +var7 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var); } -var_sysclass = var25; -if (var_sysclass == NULL) { -var26 = 0; /* is null */ +var_objclass = var7; +if (var_objclass == NULL) { +var8 = 1; /* is null */ } else { -var26 = 1; /* arg is null and recv is not */ +var8 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_sysclass,((val*)NULL)) on */ -var_other29 = ((val*)NULL); +{ /* Inline kernel$Object$== (var_objclass,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var30 = ((short int(*)(val* self, val* p0))(var_sysclass->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_sysclass, var_other29); /* == on */ +{ /* Inline kernel$Object$is_same_instance (var_objclass,var_other) on */ +var13 = var_objclass == var_other; +var11 = var13; +goto RET_LABEL12; +RET_LABEL12:(void)0; } -var31 = !var30; -var27 = var31; -goto RET_LABEL28; -RET_LABEL28:(void)0; } -var26 = var27; +var9 = var11; +goto RET_LABEL10; +RET_LABEL10:(void)0; +} +var8 = var9; +} +if (var8){ +goto RET_LABEL; +} else { } -if (var26){ { -{ /* Inline model#MClass#mclass_type (var_sysclass) on */ -var34 = var_sysclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var34 == NULL)) { +{ /* Inline model$MClass$mclass_type (var_objclass) on */ +var16 = var_objclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var16 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 507); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520); fatal_exit(1); } -var32 = var34; -RET_LABEL33:(void)0; +var14 = var16; +RET_LABEL15:(void)0; } } -var_systype = var32; +var_objtype = var14; { -var35 = nitc__typing___nitc__typing__TypeVisitor___try_get_mproperty_by_name2(var_v, var_node, var_systype, var_name); +{ /* Inline parser_nodes$ASuperstringExpr$n_exprs (self) on */ +var19 = self->attrs[COLOR_nitc__parser_nodes__ASuperstringExpr___n_exprs].val; /* _n_exprs on */ +if (unlikely(var19 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var_mproperty = var35; -if (var_mproperty == NULL) { -var36 = 0; /* is null */ -} else { -var36 = 1; /* arg is null and recv is not */ +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2645); +fatal_exit(1); } -if (0) { -{ /* Inline kernel#Object#!= (var_mproperty,((val*)NULL)) on */ -var_other29 = ((val*)NULL); -{ -var39 = ((short int(*)(val* self, val* p0))(var_mproperty->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mproperty, var_other29); /* == on */ +var17 = var19; +RET_LABEL18:(void)0; } -var40 = !var39; -var37 = var40; -goto RET_LABEL38; -RET_LABEL38:(void)0; } -var36 = var37; +var_ = var17; +{ +var20 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_); } -if (var36){ +var_21 = var20; +for(;;) { { -var41 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, var_node, var_systype, var_name, 0); +var22 = ((short int(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_21); /* is_ok on */ } -var_callsite = var41; -if (var_callsite == NULL) { -var42 = 1; /* is null */ +if (var22){ } else { -var42 = 0; /* arg is null but recv is not */ +goto BREAK_label; } -if (0) { -{ /* Inline kernel#Object#== (var_callsite,((val*)NULL)) on */ -var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_callsite,var_other) on */ -var47 = var_callsite == var_other; -var45 = var47; -goto RET_LABEL46; -RET_LABEL46:(void)0; -} -} -var43 = var45; -goto RET_LABEL44; -RET_LABEL44:(void)0; -} -var42 = var43; +var23 = ((val*(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_21); /* item on */ } -if (var42){ -goto RET_LABEL; -} else { +var_nexpr = var23; +{ +var24 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var_nexpr, var_objtype); } { -{ /* Inline typing#AImplicitSelfExpr#is_sys= (var_nrecv,1) on */ -var_nrecv->attrs[COLOR_nitc__typing__AImplicitSelfExpr___is_sys].s = 1; /* _is_sys on */ -RET_LABEL48:(void)0; +((void(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_21); /* next on */ } } +BREAK_label: (void)0; { -{ /* Inline typing#ASelfExpr#its_variable= (var_nrecv,((val*)NULL)) on */ -var_nrecv->attrs[COLOR_nitc__typing__ASelfExpr___its_variable].val = ((val*)NULL); /* _its_variable on */ -RET_LABEL49:(void)0; +((void(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_21); /* finish on */ +} +RET_LABEL:; } +/* method typing$AArrayExpr$with_capacity_callsite for (self: AArrayExpr): nullable CallSite */ +val* nitc__typing___AArrayExpr___with_capacity_callsite(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__AArrayExpr___with_capacity_callsite].val; /* _with_capacity_callsite on */ +var = var1; +RET_LABEL:; +return var; } -{ -{ /* Inline typing#AExpr#mtype= (var_nrecv,var_systype) on */ -var_nrecv->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_systype; /* _mtype on */ -RET_LABEL50:(void)0; +/* method typing$AArrayExpr$with_capacity_callsite= for (self: AArrayExpr, nullable CallSite) */ +void nitc__typing___AArrayExpr___with_capacity_callsite_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AArrayExpr___with_capacity_callsite].val = p0; /* _with_capacity_callsite on */ +RET_LABEL:; } +/* method typing$AArrayExpr$push_callsite for (self: AArrayExpr): nullable CallSite */ +val* nitc__typing___AArrayExpr___push_callsite(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__AArrayExpr___push_callsite].val; /* _push_callsite on */ +var = var1; +RET_LABEL:; +return var; } -var_recvtype = var_systype; -} else { +/* method typing$AArrayExpr$push_callsite= for (self: AArrayExpr, nullable CallSite) */ +void nitc__typing___AArrayExpr___push_callsite_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AArrayExpr___push_callsite].val = p0; /* _push_callsite on */ +RET_LABEL:; } -} else { +/* method typing$AArrayExpr$element_mtype for (self: AArrayExpr): nullable MType */ +val* nitc__typing___AArrayExpr___element_mtype(val* self) { +val* var /* : nullable MType */; +val* var1 /* : nullable MType */; +var1 = self->attrs[COLOR_nitc__typing__AArrayExpr___element_mtype].val; /* _element_mtype on */ +var = var1; +RET_LABEL:; +return var; } -} else { +/* method typing$AArrayExpr$element_mtype= for (self: AArrayExpr, nullable MType) */ +void nitc__typing___AArrayExpr___element_mtype_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AArrayExpr___element_mtype].val = p0; /* _element_mtype on */ +RET_LABEL:; } -if (var_callsite == NULL) { -var51 = 1; /* is null */ +/* method typing$AArrayExpr$set_comprehension for (self: AArrayExpr, nullable AExpr) */ +void nitc__typing___AArrayExpr___set_comprehension(val* self, val* p0) { +val* var_n /* var n: nullable AExpr */; +short int var /* : Bool */; +short int var1 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var3 /* : Bool */; +short int var5 /* : Bool */; +short int var6 /* : Bool */; +int cltype; +int idtype; +val* var7 /* : nullable AExpr */; +val* var9 /* : nullable AExpr */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +val* var13 /* : nullable AExpr */; +val* var15 /* : nullable AExpr */; +val* var16 /* : nullable AExpr */; +val* var18 /* : nullable AExpr */; +var_n = p0; +if (var_n == NULL) { +var = 1; /* is null */ } else { -var51 = 0; /* arg is null but recv is not */ +var = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_callsite,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_n,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_callsite,var_other) on */ -var56 = var_callsite == var_other; -var54 = var56; -goto RET_LABEL55; -RET_LABEL55:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_n,var_other) on */ +var5 = var_n == var_other; +var3 = var5; +goto RET_LABEL4; +RET_LABEL4:(void)0; } } -var52 = var54; -goto RET_LABEL53; -RET_LABEL53:(void)0; +var1 = var3; +goto RET_LABEL2; +RET_LABEL2:(void)0; } -var51 = var52; +var = var1; } -if (var51){ -/* isa ASelfExpr */ -cltype58 = type_nitc__ASelfExpr.color; -idtype59 = type_nitc__ASelfExpr.id; -if(cltype58 >= var_nrecv->type->table_size) { -var57 = 0; +if (var){ +goto RET_LABEL; } else { -var57 = var_nrecv->type->type_table[cltype58] == idtype59; -} -{ -var60 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, var_node, var_recvtype, var_name, var57); -} -var_callsite = var60; -if (var_callsite == NULL) { -var61 = 1; /* is null */ +/* isa AForExpr */ +cltype = type_nitc__AForExpr.color; +idtype = type_nitc__AForExpr.id; +if(cltype >= var_n->type->table_size) { +var6 = 0; } else { -var61 = 0; /* arg is null but recv is not */ +var6 = var_n->type->type_table[cltype] == idtype; } -if (0) { -{ /* Inline kernel#Object#== (var_callsite,((val*)NULL)) on */ -var_other = ((val*)NULL); +if (var6){ { -{ /* Inline kernel#Object#is_same_instance (var_callsite,var_other) on */ -var66 = var_callsite == var_other; -var64 = var66; -goto RET_LABEL65; -RET_LABEL65:(void)0; -} +{ /* Inline parser_nodes$AForExpr$n_block (var_n) on */ +var9 = var_n->attrs[COLOR_nitc__parser_nodes__AForExpr___n_block].val; /* _n_block on */ +var7 = var9; +RET_LABEL8:(void)0; } -var62 = var64; -goto RET_LABEL63; -RET_LABEL63:(void)0; } -var61 = var62; +{ +nitc__typing___AArrayExpr___set_comprehension(self, var7); /* Direct call typing$AArrayExpr$set_comprehension on */ } -if (var61){ -goto RET_LABEL; } else { -} +/* isa AIfExpr */ +cltype11 = type_nitc__AIfExpr.color; +idtype12 = type_nitc__AIfExpr.id; +if(cltype11 >= var_n->type->table_size) { +var10 = 0; } else { +var10 = var_n->type->type_table[cltype11] == idtype12; } +if (var10){ { -{ /* Inline typing#ASendExpr#callsite= (self,var_callsite) on */ -self->attrs[COLOR_nitc__typing__ASendExpr___callsite].val = var_callsite; /* _callsite on */ -RET_LABEL67:(void)0; +{ /* Inline parser_nodes$AIfExpr$n_then (var_n) on */ +var15 = var_n->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on */ +var13 = var15; +RET_LABEL14:(void)0; } } { -{ /* Inline typing#CallSite#msignature (var_callsite) on */ -var70 = var_callsite->attrs[COLOR_nitc__typing__CallSite___msignature].val; /* _msignature on */ -if (unlikely(var70 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 660); -fatal_exit(1); +nitc__typing___AArrayExpr___set_comprehension(self, var13); /* Direct call typing$AArrayExpr$set_comprehension on */ } -var68 = var70; -RET_LABEL69:(void)0; +{ +{ /* Inline parser_nodes$AIfExpr$n_else (var_n) on */ +var18 = var_n->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on */ +var16 = var18; +RET_LABEL17:(void)0; } } -var_msignature = var68; { -var71 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__typing__ASendExpr__compute_raw_arguments]))(self); /* compute_raw_arguments on */ +nitc__typing___AArrayExpr___set_comprehension(self, var16); /* Direct call typing$AArrayExpr$set_comprehension on */ } -var_args = var71; +} else { { -var72 = nitc___nitc__CallSite___check_signature(var_callsite, var_v, var_node, var_args); +{ /* Inline typing$AExpr$comprehension= (var_n,self) on */ +var_n->attrs[COLOR_nitc__typing__AExpr___comprehension].val = self; /* _comprehension on */ +RET_LABEL19:(void)0; } -{ -{ /* Inline typing#CallSite#mproperty (var_callsite) on */ -var75 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mproperty].val; /* _mproperty on */ -if (unlikely(var75 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 653); -fatal_exit(1); } -var73 = var75; -RET_LABEL74:(void)0; } } -{ -{ /* Inline model#MMethod#is_init (var73) on */ -var78 = var73->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on */ -var76 = var78; -RET_LABEL77:(void)0; } +RET_LABEL:; } -if (var76){ +/* method typing$AArrayExpr$accept_typing for (self: AArrayExpr, TypeVisitor) */ +void nitc__typing___AArrayExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var_mtype /* var mtype: nullable MType */; +val* var /* : nullable AType */; +val* var2 /* : nullable AType */; +val* var_ntype /* var ntype: nullable AType */; +short int var3 /* : Bool */; +short int var4 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var6 /* : Bool */; +short int var7 /* : Bool */; +val* var8 /* : nullable MType */; +short int var9 /* : Bool */; +short int var10 /* : Bool */; +val* var_other12 /* var other: nullable Object */; +short int var13 /* : Bool */; +short int var15 /* : Bool */; +val* var16 /* : Array[nullable MType] */; +val* var_mtypes /* var mtypes: Array[nullable MType] */; +short int var_useless /* var useless: Bool */; +val* var17 /* : ANodes[AExpr] */; +val* var19 /* : ANodes[AExpr] */; +val* var_ /* var : ANodes[AExpr] */; +val* var20 /* : Iterator[ANode] */; +val* var_21 /* var : Iterator[AExpr] */; +short int var22 /* : Bool */; +val* var23 /* : nullable Object */; +val* var_e /* var e: AExpr */; +val* var24 /* : nullable MType */; +val* var_t /* var t: nullable MType */; +short int var25 /* : Bool */; +short int var26 /* : Bool */; +short int var28 /* : Bool */; +short int var30 /* : Bool */; +short int var31 /* : Bool */; +short int var32 /* : Bool */; +short int var34 /* : Bool */; +short int var35 /* : Bool */; +val* var36 /* : nullable MType */; +short int var37 /* : Bool */; +short int var38 /* : Bool */; +short int var40 /* : Bool */; +short int var42 /* : Bool */; +short int var43 /* : Bool */; +short int var45 /* : Bool */; +short int var47 /* : Bool */; +short int var48 /* : Bool */; +short int var49 /* : Bool */; +short int var51 /* : Bool */; +short int var53 /* : Bool */; +val* var54 /* : nullable MType */; +val* var56 /* : nullable MType */; +short int var57 /* : Bool */; +short int var58 /* : Bool */; +short int var60 /* : Bool */; +short int var61 /* : Bool */; +val* var62 /* : nullable MType */; +val* var64 /* : nullable MType */; +val* var65 /* : nullable MType */; +short int var66 /* : Bool */; +short int var67 /* : Bool */; +short int var68 /* : Bool */; +short int var70 /* : Bool */; +short int var72 /* : Bool */; +short int var_73 /* var : Bool */; +short int var74 /* : Bool */; +int cltype; +int idtype; +val* var75 /* : NativeArray[String] */; +static val* varonce; +static val* varonce76; +val* var77 /* : String */; +char* var78 /* : CString */; +val* var79 /* : String */; +val* var80 /* : nullable Int */; +val* var81 /* : nullable Int */; +val* var82 /* : nullable Bool */; +val* var83 /* : nullable Bool */; +static val* varonce84; +val* var85 /* : String */; +char* var86 /* : CString */; +val* var87 /* : String */; +val* var88 /* : nullable Int */; +val* var89 /* : nullable Int */; +val* var90 /* : nullable Bool */; +val* var91 /* : nullable Bool */; +val* var92 /* : String */; +val* var93 /* : String */; +short int var94 /* : Bool */; +short int var95 /* : Bool */; +short int var97 /* : Bool */; +short int var98 /* : Bool */; +val* var99 /* : ModelBuilder */; +val* var101 /* : ModelBuilder */; +static val* varonce102; +val* var103 /* : String */; +char* var104 /* : CString */; +val* var105 /* : String */; +val* var106 /* : nullable Int */; +val* var107 /* : nullable Int */; +val* var108 /* : nullable Bool */; +val* var109 /* : nullable Bool */; +val* var111 /* : NativeArray[String] */; +static val* varonce110; +static val* varonce112; +val* var113 /* : String */; +char* var114 /* : CString */; +val* var115 /* : String */; +val* var116 /* : nullable Int */; +val* var117 /* : nullable Int */; +val* var118 /* : nullable Bool */; +val* var119 /* : nullable Bool */; +static val* varonce120; +val* var121 /* : String */; +char* var122 /* : CString */; +val* var123 /* : String */; +val* var124 /* : nullable Int */; +val* var125 /* : nullable Int */; +val* var126 /* : nullable Bool */; +val* var127 /* : nullable Bool */; +val* var128 /* : String */; +val* var129 /* : String */; +static val* varonce131; +val* var132 /* : String */; +char* var133 /* : CString */; +val* var134 /* : String */; +val* var135 /* : nullable Int */; +val* var136 /* : nullable Int */; +val* var137 /* : nullable Bool */; +val* var138 /* : nullable Bool */; +val* var139 /* : nullable MClass */; +val* var_mclass /* var mclass: nullable MClass */; +short int var140 /* : Bool */; +short int var141 /* : Bool */; +short int var143 /* : Bool */; +short int var145 /* : Bool */; +val* var146 /* : Array[MType] */; +val* var_147 /* var : Array[MType] */; +val* var148 /* : MClassType */; +val* var_array_mtype /* var array_mtype: MClassType */; +static val* varonce149; +val* var150 /* : String */; +char* var151 /* : CString */; +val* var152 /* : String */; +val* var153 /* : nullable Int */; +val* var154 /* : nullable Int */; +val* var155 /* : nullable Bool */; +val* var156 /* : nullable Bool */; +val* var157 /* : nullable CallSite */; +static val* varonce159; +val* var160 /* : String */; +char* var161 /* : CString */; +val* var162 /* : String */; +val* var163 /* : nullable Int */; +val* var164 /* : nullable Int */; +val* var165 /* : nullable Bool */; +val* var166 /* : nullable Bool */; +val* var167 /* : nullable CallSite */; +var_v = p0; +var_mtype = ((val*)NULL); { -{ /* Inline typing#TypeVisitor#mpropdef (var_v) on */ -var81 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mpropdef].val; /* _mpropdef on */ -var79 = var81; -RET_LABEL80:(void)0; +{ /* Inline parser_nodes$AArrayExpr$n_type (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__AArrayExpr___n_type].val; /* _n_type on */ +var = var2; +RET_LABEL1:(void)0; } } -var_vmpropdef = var79; -/* isa MMethodDef */ -cltype84 = type_nitc__MMethodDef.color; -idtype85 = type_nitc__MMethodDef.id; -if(var_vmpropdef == NULL) { -var83 = 0; -} else { -if(cltype84 >= var_vmpropdef->type->table_size) { -var83 = 0; +var_ntype = var; +if (var_ntype == NULL) { +var3 = 0; /* is null */ } else { -var83 = var_vmpropdef->type->type_table[cltype84] == idtype85; -} +var3 = 1; /* arg is null and recv is not */ } -var_86 = var83; -if (var83){ +if (0) { +{ /* Inline kernel$Object$!= (var_ntype,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline model#MPropDef#mproperty (var_vmpropdef) on */ -var89 = var_vmpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on */ -if (unlikely(var89 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230); -fatal_exit(1); +var6 = ((short int(*)(val* self, val* p0))(var_ntype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ntype, var_other); /* == on */ } -var87 = var89; -RET_LABEL88:(void)0; +var7 = !var6; +var4 = var7; +goto RET_LABEL5; +RET_LABEL5:(void)0; } +var3 = var4; } +if (var3){ { -{ /* Inline model#MMethod#is_init (var87) on */ -var92 = var87->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on */ -var90 = var92; -RET_LABEL91:(void)0; -} -} -var82 = var90; -} else { -var82 = var_86; +var8 = nitc__typing___nitc__typing__TypeVisitor___resolve_mtype(var_v, var_ntype); } -var93 = !var82; -if (var93){ -if (likely(varonce94!=NULL)) { -var95 = varonce94; +var_mtype = var8; +if (var_mtype == NULL) { +var9 = 1; /* is null */ } else { -var96 = "Error: an `init` can only be called from another `init`."; -var97 = core__flat___NativeString___to_s_full(var96, 56l, 56l); -var95 = var97; -varonce94 = var95; +var9 = 0; /* arg is null but recv is not */ } +if (0) { +{ /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on */ +var_other12 = ((val*)NULL); { -nitc__typing___nitc__typing__TypeVisitor___error(var_v, var_node, var95); /* Direct call typing#TypeVisitor#error on */ +{ /* Inline kernel$Object$is_same_instance (var_mtype,var_other12) on */ +var15 = var_mtype == var_other12; +var13 = var15; +goto RET_LABEL14; +RET_LABEL14:(void)0; } -} else { } -/* isa MMethodDef */ -cltype101 = type_nitc__MMethodDef.color; -idtype102 = type_nitc__MMethodDef.id; -if(var_vmpropdef == NULL) { -var100 = 0; +var10 = var13; +goto RET_LABEL11; +RET_LABEL11:(void)0; +} +var9 = var10; +} +if (var9){ +goto RET_LABEL; } else { -if(cltype101 >= var_vmpropdef->type->table_size) { -var100 = 0; +} } else { -var100 = var_vmpropdef->type->type_table[cltype101] == idtype102; } +var16 = NEW_core__Array(&type_core__Array__nullable__nitc__MType); +{ +core___core__Array___core__kernel__Object__init(var16); /* Direct call array$Array$init on */ } -var_103 = var100; -if (var100){ +var_mtypes = var16; +var_useless = 0; { -{ /* Inline model#MPropDef#mproperty (var_vmpropdef) on */ -var106 = var_vmpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on */ -if (unlikely(var106 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230); +{ /* Inline parser_nodes$AArrayExpr$n_exprs (self) on */ +var19 = self->attrs[COLOR_nitc__parser_nodes__AArrayExpr___n_exprs].val; /* _n_exprs on */ +if (unlikely(var19 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2541); fatal_exit(1); } -var104 = var106; -RET_LABEL105:(void)0; +var17 = var19; +RET_LABEL18:(void)0; } } +var_ = var17; { -{ /* Inline model#MMethod#is_root_init (var104) on */ -var109 = var104->attrs[COLOR_nitc__model__MMethod___is_root_init].s; /* _is_root_init on */ -var107 = var109; -RET_LABEL108:(void)0; +var20 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_); } +var_21 = var20; +for(;;) { +{ +var22 = ((short int(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_21); /* is_ok on */ } -var99 = var107; +if (var22){ } else { -var99 = var_103; +goto BREAK_label; } -var_110 = var99; -if (var99){ { -{ /* Inline typing#CallSite#mproperty (var_callsite) on */ -var113 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mproperty].val; /* _mproperty on */ -if (unlikely(var113 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 653); -fatal_exit(1); +var23 = ((val*(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_21); /* item on */ } -var111 = var113; -RET_LABEL112:(void)0; +var_e = var23; +{ +var24 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var_e); } +var_t = var24; +if (var_t == NULL) { +var25 = 1; /* is null */ +} else { +var25 = 0; /* arg is null but recv is not */ } +if (0) { +{ /* Inline kernel$Object$== (var_t,((val*)NULL)) on */ +var_other12 = ((val*)NULL); { -{ /* Inline model#MMethod#is_root_init (var111) on */ -var116 = var111->attrs[COLOR_nitc__model__MMethod___is_root_init].s; /* _is_root_init on */ -var114 = var116; -RET_LABEL115:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_t,var_other12) on */ +var30 = var_t == var_other12; +var28 = var30; +goto RET_LABEL29; +RET_LABEL29:(void)0; } } -var117 = !var114; -var98 = var117; -} else { -var98 = var_110; +var26 = var28; +goto RET_LABEL27; +RET_LABEL27:(void)0; } -if (var98){ -if (unlikely(varonce118==NULL)) { -var119 = NEW_core__NativeArray(5l, &type_core__NativeArray__core__String); -if (likely(varonce120!=NULL)) { -var121 = varonce120; -} else { -var122 = "Error: `"; -var123 = core__flat___NativeString___to_s_full(var122, 8l, 8l); -var121 = var123; -varonce120 = var121; +var25 = var26; } -((struct instance_core__NativeArray*)var119)->values[0]=var121; -if (likely(varonce124!=NULL)) { -var125 = varonce124; +if (var25){ +goto RET_LABEL; } else { -var126 = "` cannot call a factory `"; -var127 = core__flat___NativeString___to_s_full(var126, 25l, 25l); -var125 = var127; -varonce124 = var125; } -((struct instance_core__NativeArray*)var119)->values[2]=var125; -if (likely(varonce128!=NULL)) { -var129 = varonce128; -} else { -var130 = "`."; -var131 = core__flat___NativeString___to_s_full(var130, 2l, 2l); -var129 = var131; -varonce128 = var129; +{ +nitc__typing___AArrayExpr___set_comprehension(self, var_e); /* Direct call typing$AArrayExpr$set_comprehension on */ } -((struct instance_core__NativeArray*)var119)->values[4]=var129; +if (var_mtype == NULL) { +var31 = 0; /* is null */ } else { -var119 = varonce118; -varonce118 = NULL; -} -{ -var132 = ((val*(*)(val* self))(var_vmpropdef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_vmpropdef); /* to_s on */ +var31 = 1; /* arg is null and recv is not */ } -((struct instance_core__NativeArray*)var119)->values[1]=var132; +if (0) { +{ /* Inline kernel$Object$!= (var_mtype,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline typing#CallSite#mproperty (var_callsite) on */ -var135 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mproperty].val; /* _mproperty on */ -if (unlikely(var135 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 653); -fatal_exit(1); +var34 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mtype, var_other); /* == on */ } -var133 = var135; -RET_LABEL134:(void)0; +var35 = !var34; +var32 = var35; +goto RET_LABEL33; +RET_LABEL33:(void)0; } +var31 = var32; } +if (var31){ { -var136 = ((val*(*)(val* self))(var133->class->vft[COLOR_core__abstract_text__Object__to_s]))(var133); /* to_s on */ +var36 = nitc__typing___nitc__typing__TypeVisitor___check_subtype(var_v, var_e, var_t, var_mtype, 0); } -((struct instance_core__NativeArray*)var119)->values[3]=var136; -{ -var137 = ((val*(*)(val* self))(var119->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var119); /* native_to_s on */ +if (var36 == NULL) { +var37 = 1; /* is null */ +} else { +var37 = 0; /* arg is null but recv is not */ } -varonce118 = var119; +if (0) { +{ /* Inline kernel$Object$== (var36,((val*)NULL)) on */ +var_other12 = ((val*)NULL); { -nitc__typing___nitc__typing__TypeVisitor___error(var_v, var_node, var137); /* Direct call typing#TypeVisitor#error on */ -} -} else { +{ /* Inline kernel$Object$is_same_instance (var36,var_other12) on */ +var42 = var36 == var_other12; +var40 = var42; +goto RET_LABEL41; +RET_LABEL41:(void)0; } -} else { } -{ -{ /* Inline model#MSignature#return_mtype (var_msignature) on */ -var140 = var_msignature->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on */ -var138 = var140; -RET_LABEL139:(void)0; +var38 = var40; +goto RET_LABEL39; +RET_LABEL39:(void)0; } +var37 = var38; } -var_ret = var138; -if (var_ret == NULL) { -var141 = 0; /* is null */ +if (var37){ +goto RET_LABEL; } else { -var141 = 1; /* arg is null and recv is not */ } -if (0) { -{ /* Inline kernel#Object#!= (var_ret,((val*)NULL)) on */ -var_other29 = ((val*)NULL); { -var144 = ((short int(*)(val* self, val* p0))(var_ret->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret, var_other29); /* == on */ +{ /* Inline kernel$Object$== (var_t,var_mtype) on */ +var_other12 = var_mtype; +{ +{ /* Inline kernel$Object$is_same_instance (var_t,var_other12) on */ +var47 = var_t == var_other12; +var45 = var47; +goto RET_LABEL46; +RET_LABEL46:(void)0; } -var145 = !var144; -var142 = var145; -goto RET_LABEL143; -RET_LABEL143:(void)0; } -var141 = var142; +var43 = var45; +goto RET_LABEL44; +RET_LABEL44:(void)0; } -if (var141){ -{ -{ /* Inline typing#AExpr#mtype= (self,var_ret) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_ret; /* _mtype on */ -RET_LABEL146:(void)0; } +if (var43){ +var_useless = 1; +} else { } } else { { -{ /* Inline typing#AExpr#is_typed= (self,1) on */ -self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ -RET_LABEL147:(void)0; +core___core__Array___core__abstract_collection__SimpleCollection__add(var_mtypes, var_t); /* Direct call array$Array$add on */ } } +{ +((void(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_21); /* next on */ } -RET_LABEL:; -} -/* method typing#ASendExpr#property_node for (self: ASendExpr): ANode */ -val* nitc__typing___ASendExpr___property_node(val* self) { -val* var /* : ANode */; -var = self; -goto RET_LABEL; -RET_LABEL:; -return var; } -/* method typing#ASendExpr#raw_arguments for (self: ASendExpr): Array[AExpr] */ -val* nitc__typing___ASendExpr___raw_arguments(val* self) { -val* var /* : Array[AExpr] */; -val* var1 /* : Array[AExpr] */; +BREAK_label: (void)0; { -var1 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__typing__ASendExpr__compute_raw_arguments]))(self); /* compute_raw_arguments on */ +((void(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_21); /* finish on */ } -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; +if (var_mtype == NULL) { +var48 = 1; /* is null */ +} else { +var48 = 0; /* arg is null but recv is not */ } -/* method typing#ABinopExpr#compute_raw_arguments for (self: ABinopExpr): Array[AExpr] */ -val* nitc__typing___ABinopExpr___ASendExpr__compute_raw_arguments(val* self) { -val* var /* : Array[AExpr] */; -val* var1 /* : Array[AExpr] */; -val* var_ /* var : Array[AExpr] */; -val* var2 /* : AExpr */; -val* var4 /* : AExpr */; -var1 = NEW_core__Array(&type_core__Array__nitc__AExpr); +if (0) { +{ /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on */ +var_other12 = ((val*)NULL); { -core___core__Array___with_capacity(var1, 1l); /* Direct call array#Array#with_capacity on */ +{ /* Inline kernel$Object$is_same_instance (var_mtype,var_other12) on */ +var53 = var_mtype == var_other12; +var51 = var53; +goto RET_LABEL52; +RET_LABEL52:(void)0; } -var_ = var1; -{ -{ /* Inline parser_nodes#ABinopExpr#n_expr2 (self) on */ -var4 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on */ -if (unlikely(var4 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2033); -fatal_exit(1); } -var2 = var4; -RET_LABEL3:(void)0; +var49 = var51; +goto RET_LABEL50; +RET_LABEL50:(void)0; } +var48 = var49; } +if (var48){ { -core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var2); /* Direct call array#AbstractArray#push on */ +{ /* Inline typing$AArrayExpr$element_mtype (self) on */ +var56 = self->attrs[COLOR_nitc__typing__AArrayExpr___element_mtype].val; /* _element_mtype on */ +var54 = var56; +RET_LABEL55:(void)0; } -var = var_; -goto RET_LABEL; -RET_LABEL:; -return var; } -/* method typing#ABinopExpr#property_name for (self: ABinopExpr): String */ -val* nitc__typing___ABinopExpr___ASendExpr__property_name(val* self) { -val* var /* : String */; -val* var1 /* : String */; +if (var54 == NULL) { +var57 = 0; /* is null */ +} else { +var57 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel$Object$!= (var54,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var1 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__parser_nodes__ABinopExpr__operator]))(self); /* operator on */ +var60 = ((short int(*)(val* self, val* p0))(var54->class->vft[COLOR_core__kernel__Object___61d_61d]))(var54, var_other); /* == on */ } -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; +var61 = !var60; +var58 = var61; +goto RET_LABEL59; +RET_LABEL59:(void)0; } -/* method typing#ABinopExpr#property_node for (self: ABinopExpr): ANode */ -val* nitc__typing___ABinopExpr___ASendExpr__property_node(val* self) { -val* var /* : ANode */; -val* var1 /* : Token */; -val* var3 /* : Token */; +var57 = var58; +} +if (var57){ { -{ /* Inline parser_nodes#ABinopExpr#n_op (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2030); -fatal_exit(1); +{ /* Inline typing$AArrayExpr$element_mtype (self) on */ +var64 = self->attrs[COLOR_nitc__typing__AArrayExpr___element_mtype].val; /* _element_mtype on */ +var62 = var64; +RET_LABEL63:(void)0; } -var1 = var3; -RET_LABEL2:(void)0; } +{ +core___core__Array___core__abstract_collection__SimpleCollection__add(var_mtypes, var62); /* Direct call array$Array$add on */ } -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; +} else { } -/* method typing#AEqFormExpr#accept_typing for (self: AEqFormExpr, TypeVisitor) */ -void nitc__typing___AEqFormExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -var_v = p0; { -((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__typing___AEqFormExpr___AExpr__accept_typing]))(self, p0); /* accept_typing on */ +var65 = nitc__typing___nitc__typing__TypeVisitor___merge_types(var_v, self, var_mtypes); } -{ -nitc__typing___nitc__typing__TypeVisitor___null_test(var_v, self); /* Direct call typing#TypeVisitor#null_test on */ +var_mtype = var65; +} else { } -RET_LABEL:; +if (var_mtype == NULL) { +var67 = 1; /* is null */ +} else { +var67 = 0; /* arg is null but recv is not */ } -/* method typing#AEqFormExpr#accept_post_typing for (self: AEqFormExpr, TypeVisitor) */ -void nitc__typing___AEqFormExpr___ANode__accept_post_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MType */; -val* var_mtype /* var mtype: nullable MType */; -val* var4 /* : AExpr */; -val* var6 /* : AExpr */; -val* var7 /* : nullable MType */; -val* var_mtype2 /* var mtype2: nullable MType */; -short int var8 /* : Bool */; -short int var9 /* : Bool */; -short int var10 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var12 /* : Bool */; -short int var14 /* : Bool */; -short int var_ /* var : Bool */; -short int var15 /* : Bool */; -short int var16 /* : Bool */; -short int var18 /* : Bool */; -short int var20 /* : Bool */; -short int var21 /* : Bool */; -int cltype; -int idtype; -short int var22 /* : Bool */; -val* var23 /* : AExpr */; -val* var25 /* : AExpr */; -short int var26 /* : Bool */; -var_v = p0; +if (0) { +{ /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on */ +var_other12 = ((val*)NULL); { -{ /* Inline parser_nodes#ASendExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2022); -fatal_exit(1); +{ /* Inline kernel$Object$is_same_instance (var_mtype,var_other12) on */ +var72 = var_mtype == var_other12; +var70 = var72; +goto RET_LABEL71; +RET_LABEL71:(void)0; } -var = var2; -RET_LABEL1:(void)0; } +var68 = var70; +goto RET_LABEL69; +RET_LABEL69:(void)0; } -{ -var3 = ((val*(*)(val* self))(var->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var); /* mtype on */ +var67 = var68; } -var_mtype = var3; -{ -{ /* Inline parser_nodes#ABinopExpr#n_expr2 (self) on */ -var6 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on */ -if (unlikely(var6 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2033); -fatal_exit(1); +var_73 = var67; +if (var67){ +var66 = var_73; +} else { +/* isa MNullType */ +cltype = type_nitc__MNullType.color; +idtype = type_nitc__MNullType.id; +if(cltype >= var_mtype->type->table_size) { +var74 = 0; +} else { +var74 = var_mtype->type->type_table[cltype] == idtype; } -var4 = var6; -RET_LABEL5:(void)0; +var66 = var74; } +if (var66){ +if (unlikely(varonce==NULL)) { +var75 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String); +if (likely(varonce76!=NULL)) { +var77 = varonce76; +} else { +var78 = "Type Error: ambiguous array type "; +var80 = (val*)(33l<<2|1); +var81 = (val*)(33l<<2|1); +var82 = (val*)((long)(0)<<2|3); +var83 = (val*)((long)(0)<<2|3); +var79 = core__flat___CString___to_s_unsafe(var78, var80, var81, var82, var83); +var77 = var79; +varonce76 = var77; } -{ -var7 = ((val*(*)(val* self))(var4->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var4); /* mtype on */ +((struct instance_core__NativeArray*)var75)->values[0]=var77; +} else { +var75 = varonce; +varonce = NULL; } -var_mtype2 = var7; -if (var_mtype == NULL) { -var9 = 1; /* is null */ +if (likely(varonce84!=NULL)) { +var85 = varonce84; } else { -var9 = 0; /* arg is null but recv is not */ +var86 = " "; +var88 = (val*)(1l<<2|1); +var89 = (val*)(1l<<2|1); +var90 = (val*)((long)(0)<<2|3); +var91 = (val*)((long)(0)<<2|3); +var87 = core__flat___CString___to_s_unsafe(var86, var88, var89, var90, var91); +var85 = var87; +varonce84 = var85; } -if (0) { -{ /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on */ -var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on */ -var14 = var_mtype == var_other; -var12 = var14; -goto RET_LABEL13; -RET_LABEL13:(void)0; +var92 = core__abstract_text___Collection___join(var_mtypes, var85, ((val*)NULL)); } +((struct instance_core__NativeArray*)var75)->values[1]=var92; +{ +var93 = ((val*(*)(val* self))(var75->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var75); /* native_to_s on */ } -var10 = var12; -goto RET_LABEL11; -RET_LABEL11:(void)0; -} -var9 = var10; +varonce = var75; +{ +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var93); /* Direct call typing$TypeVisitor$error on */ } -var_ = var9; -if (var9){ -var8 = var_; +goto RET_LABEL; } else { -if (var_mtype2 == NULL) { -var15 = 1; /* is null */ +} +if (var_useless){ +if (var_ntype == NULL) { +var94 = 0; /* is null */ } else { -var15 = 0; /* arg is null but recv is not */ +var94 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_mtype2,((val*)NULL)) on */ +{ /* Inline kernel$Object$!= (var_ntype,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_mtype2,var_other) on */ -var20 = var_mtype2 == var_other; -var18 = var20; -goto RET_LABEL19; -RET_LABEL19:(void)0; -} -} -var16 = var18; -goto RET_LABEL17; -RET_LABEL17:(void)0; -} -var15 = var16; -} -var8 = var15; +var97 = ((short int(*)(val* self, val* p0))(var_ntype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ntype, var_other); /* == on */ } -if (var8){ -goto RET_LABEL; -} else { +var98 = !var97; +var95 = var98; +goto RET_LABEL96; +RET_LABEL96:(void)0; } -/* isa MNullType */ -cltype = type_nitc__MNullType.color; -idtype = type_nitc__MNullType.id; -if(cltype >= var_mtype2->type->table_size) { -var21 = 0; -} else { -var21 = var_mtype2->type->type_table[cltype] == idtype; +var94 = var95; } -var22 = !var21; -if (var22){ -goto RET_LABEL; -} else { +if (unlikely(!var94)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -{ -{ /* Inline parser_nodes#ASendExpr#n_expr (self) on */ -var25 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var25 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2022); +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1611); fatal_exit(1); } -var23 = var25; -RET_LABEL24:(void)0; +{ +{ /* Inline typing$TypeVisitor$modelbuilder (var_v) on */ +var101 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___modelbuilder].val; /* _modelbuilder on */ +if (unlikely(var101 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 35); +fatal_exit(1); } -{ -var26 = nitc__typing___nitc__typing__TypeVisitor___check_can_be_null(var_v, var23, var_mtype); +var99 = var101; +RET_LABEL100:(void)0; } -RET_LABEL:; } -/* method typing#AUnaryopExpr#property_name for (self: AUnaryopExpr): String */ -val* nitc__typing___AUnaryopExpr___ASendExpr__property_name(val* self) { -val* var /* : String */; -val* var1 /* : NativeArray[String] */; -static val* varonce; -static val* varonce2; -val* var3 /* : String */; -char* var4 /* : NativeString */; -val* var5 /* : String */; -val* var6 /* : String */; -val* var7 /* : String */; -if (unlikely(varonce==NULL)) { -var1 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String); -if (likely(varonce2!=NULL)) { -var3 = varonce2; +if (likely(varonce102!=NULL)) { +var103 = varonce102; +} else { +var104 = "useless-type"; +var106 = (val*)(12l<<2|1); +var107 = (val*)(12l<<2|1); +var108 = (val*)((long)(0)<<2|3); +var109 = (val*)((long)(0)<<2|3); +var105 = core__flat___CString___to_s_unsafe(var104, var106, var107, var108, var109); +var103 = var105; +varonce102 = var103; +} +if (unlikely(varonce110==NULL)) { +var111 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String); +if (likely(varonce112!=NULL)) { +var113 = varonce112; +} else { +var114 = "Warning: useless type declaration `"; +var116 = (val*)(35l<<2|1); +var117 = (val*)(35l<<2|1); +var118 = (val*)((long)(0)<<2|3); +var119 = (val*)((long)(0)<<2|3); +var115 = core__flat___CString___to_s_unsafe(var114, var116, var117, var118, var119); +var113 = var115; +varonce112 = var113; +} +((struct instance_core__NativeArray*)var111)->values[0]=var113; +if (likely(varonce120!=NULL)) { +var121 = varonce120; } else { -var4 = "unary "; -var5 = core__flat___NativeString___to_s_full(var4, 6l, 6l); -var3 = var5; -varonce2 = var3; +var122 = "` in literal Array since it can be inferred from the elements type."; +var124 = (val*)(67l<<2|1); +var125 = (val*)(67l<<2|1); +var126 = (val*)((long)(0)<<2|3); +var127 = (val*)((long)(0)<<2|3); +var123 = core__flat___CString___to_s_unsafe(var122, var124, var125, var126, var127); +var121 = var123; +varonce120 = var121; } -((struct instance_core__NativeArray*)var1)->values[0]=var3; +((struct instance_core__NativeArray*)var111)->values[2]=var121; } else { -var1 = varonce; -varonce = NULL; +var111 = varonce110; +varonce110 = NULL; } { -var6 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__parser_nodes__AUnaryopExpr__operator]))(self); /* operator on */ +var128 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on */ } -((struct instance_core__NativeArray*)var1)->values[1]=var6; +((struct instance_core__NativeArray*)var111)->values[1]=var128; { -var7 = ((val*(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1); /* native_to_s on */ -} -varonce = var1; -var = var7; -goto RET_LABEL; -RET_LABEL:; -return var; +var129 = ((val*(*)(val* self))(var111->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var111); /* native_to_s on */ } -/* method typing#AUnaryopExpr#compute_raw_arguments for (self: AUnaryopExpr): Array[AExpr] */ -val* nitc__typing___AUnaryopExpr___ASendExpr__compute_raw_arguments(val* self) { -val* var /* : Array[AExpr] */; -val* var1 /* : Array[AExpr] */; -var1 = NEW_core__Array(&type_core__Array__nitc__AExpr); +varonce110 = var111; { -core___core__Array___core__kernel__Object__init(var1); /* Direct call array#Array#init on */ -} -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method typing#ACallExpr#property_name for (self: ACallExpr): String */ -val* nitc__typing___ACallExpr___ASendExpr__property_name(val* self) { -val* var /* : String */; -val* var1 /* : AQid */; -val* var3 /* : AQid */; -val* var4 /* : TId */; -val* var6 /* : TId */; -val* var7 /* : String */; -{ -{ /* Inline parser_nodes#ACallFormExpr#n_qid (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid].val; /* _n_qid on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2296); -fatal_exit(1); -} -var1 = var3; -RET_LABEL2:(void)0; +nitc___nitc__ModelBuilder___warning(var99, var_ntype, var103, var129); /* Direct call modelbuilder_base$ModelBuilder$warning on */ } +} else { } { -{ /* Inline parser_nodes#AQid#n_id (var1) on */ -var6 = var1->attrs[COLOR_nitc__parser_nodes__AQid___n_id].val; /* _n_id on */ -if (unlikely(var6 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1658); -fatal_exit(1); +{ /* Inline typing$AArrayExpr$element_mtype= (self,var_mtype) on */ +self->attrs[COLOR_nitc__typing__AArrayExpr___element_mtype].val = var_mtype; /* _element_mtype on */ +RET_LABEL130:(void)0; } -var4 = var6; -RET_LABEL5:(void)0; } +if (likely(varonce131!=NULL)) { +var132 = varonce131; +} else { +var133 = "Array"; +var135 = (val*)(5l<<2|1); +var136 = (val*)(5l<<2|1); +var137 = (val*)((long)(0)<<2|3); +var138 = (val*)((long)(0)<<2|3); +var134 = core__flat___CString___to_s_unsafe(var133, var135, var136, var137, var138); +var132 = var134; +varonce131 = var132; } { -var7 = nitc__lexer_work___Token___text(var4); +var139 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var132); } -var = var7; -goto RET_LABEL; -RET_LABEL:; -return var; +var_mclass = var139; +if (var_mclass == NULL) { +var140 = 1; /* is null */ +} else { +var140 = 0; /* arg is null but recv is not */ } -/* method typing#ACallExpr#property_node for (self: ACallExpr): ANode */ -val* nitc__typing___ACallExpr___ASendExpr__property_node(val* self) { -val* var /* : ANode */; -val* var1 /* : AQid */; -val* var3 /* : AQid */; +if (0) { +{ /* Inline kernel$Object$== (var_mclass,((val*)NULL)) on */ +var_other12 = ((val*)NULL); { -{ /* Inline parser_nodes#ACallFormExpr#n_qid (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid].val; /* _n_qid on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2296); -fatal_exit(1); +{ /* Inline kernel$Object$is_same_instance (var_mclass,var_other12) on */ +var145 = var_mclass == var_other12; +var143 = var145; +goto RET_LABEL144; +RET_LABEL144:(void)0; } -var1 = var3; -RET_LABEL2:(void)0; } +var141 = var143; +goto RET_LABEL142; +RET_LABEL142:(void)0; } -var = var1; +var140 = var141; +} +if (var140){ goto RET_LABEL; -RET_LABEL:; -return var; +} else { } -/* method typing#ACallExpr#compute_raw_arguments for (self: ACallExpr): Array[AExpr] */ -val* nitc__typing___ACallExpr___ASendExpr__compute_raw_arguments(val* self) { -val* var /* : Array[AExpr] */; -val* var1 /* : AExprs */; -val* var3 /* : AExprs */; -val* var4 /* : Array[AExpr] */; +var146 = NEW_core__Array(&type_core__Array__nitc__MType); { -{ /* Inline parser_nodes#ACallFormExpr#n_args (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_args].val; /* _n_args on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2299); -fatal_exit(1); -} -var1 = var3; -RET_LABEL2:(void)0; -} +core___core__Array___with_capacity(var146, 1l); /* Direct call array$Array$with_capacity on */ } +var_147 = var146; { -var4 = nitc__typing___AExprs___to_a(var1); -} -var = var4; -goto RET_LABEL; -RET_LABEL:; -return var; +core___core__AbstractArray___core__abstract_collection__Sequence__push(var_147, var_mtype); /* Direct call array$AbstractArray$push on */ } -/* method typing#ACallAssignExpr#property_name for (self: ACallAssignExpr): String */ -val* nitc__typing___ACallAssignExpr___ASendExpr__property_name(val* self) { -val* var /* : String */; -val* var1 /* : AQid */; -val* var3 /* : AQid */; -val* var4 /* : TId */; -val* var6 /* : TId */; -val* var7 /* : String */; -static val* varonce; -val* var8 /* : String */; -char* var9 /* : NativeString */; -val* var10 /* : String */; -val* var11 /* : String */; { -{ /* Inline parser_nodes#ACallFormExpr#n_qid (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid].val; /* _n_qid on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2296); -fatal_exit(1); +var148 = nitc___nitc__MClass___get_mtype(var_mclass, var_147); } -var1 = var3; -RET_LABEL2:(void)0; +var_array_mtype = var148; +if (likely(varonce149!=NULL)) { +var150 = varonce149; +} else { +var151 = "with_capacity"; +var153 = (val*)(13l<<2|1); +var154 = (val*)(13l<<2|1); +var155 = (val*)((long)(0)<<2|3); +var156 = (val*)((long)(0)<<2|3); +var152 = core__flat___CString___to_s_unsafe(var151, var153, var154, var155, var156); +var150 = var152; +varonce149 = var150; } +{ +var157 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_array_mtype, var150, 0); } { -{ /* Inline parser_nodes#AQid#n_id (var1) on */ -var6 = var1->attrs[COLOR_nitc__parser_nodes__AQid___n_id].val; /* _n_id on */ -if (unlikely(var6 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1658); -fatal_exit(1); +{ /* Inline typing$AArrayExpr$with_capacity_callsite= (self,var157) on */ +self->attrs[COLOR_nitc__typing__AArrayExpr___with_capacity_callsite].val = var157; /* _with_capacity_callsite on */ +RET_LABEL158:(void)0; } -var4 = var6; -RET_LABEL5:(void)0; } +if (likely(varonce159!=NULL)) { +var160 = varonce159; +} else { +var161 = "push"; +var163 = (val*)(4l<<2|1); +var164 = (val*)(4l<<2|1); +var165 = (val*)((long)(0)<<2|3); +var166 = (val*)((long)(0)<<2|3); +var162 = core__flat___CString___to_s_unsafe(var161, var163, var164, var165, var166); +var160 = var162; +varonce159 = var160; } { -var7 = nitc__lexer_work___Token___text(var4); -} -if (likely(varonce!=NULL)) { -var8 = varonce; -} else { -var9 = "="; -var10 = core__flat___NativeString___to_s_full(var9, 1l, 1l); -var8 = var10; -varonce = var8; +var167 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_array_mtype, var160, 0); } { -var11 = ((val*(*)(val* self, val* p0))(var7->class->vft[COLOR_core__abstract_text__String___43d]))(var7, var8); /* + on */ +{ /* Inline typing$AArrayExpr$push_callsite= (self,var167) on */ +self->attrs[COLOR_nitc__typing__AArrayExpr___push_callsite].val = var167; /* _push_callsite on */ +RET_LABEL168:(void)0; } -var = var11; -goto RET_LABEL; -RET_LABEL:; -return var; } -/* method typing#ACallAssignExpr#property_node for (self: ACallAssignExpr): ANode */ -val* nitc__typing___ACallAssignExpr___ASendExpr__property_node(val* self) { -val* var /* : ANode */; -val* var1 /* : AQid */; -val* var3 /* : AQid */; { -{ /* Inline parser_nodes#ACallFormExpr#n_qid (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid].val; /* _n_qid on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2296); -fatal_exit(1); +{ /* Inline typing$AExpr$mtype= (self,var_array_mtype) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_array_mtype; /* _mtype on */ +RET_LABEL169:(void)0; } -var1 = var3; -RET_LABEL2:(void)0; } +RET_LABEL:; } +/* method typing$ARangeExpr$init_callsite for (self: ARangeExpr): nullable CallSite */ +val* nitc__typing___ARangeExpr___init_callsite(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__ARangeExpr___init_callsite].val; /* _init_callsite on */ var = var1; -goto RET_LABEL; RET_LABEL:; return var; } -/* method typing#ACallAssignExpr#compute_raw_arguments for (self: ACallAssignExpr): Array[AExpr] */ -val* nitc__typing___ACallAssignExpr___ASendExpr__compute_raw_arguments(val* self) { -val* var /* : Array[AExpr] */; -val* var1 /* : AExprs */; -val* var3 /* : AExprs */; -val* var4 /* : Array[AExpr] */; -val* var_res /* var res: Array[AExpr] */; -val* var5 /* : AExpr */; -val* var7 /* : AExpr */; -{ -{ /* Inline parser_nodes#ACallFormExpr#n_args (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_args].val; /* _n_args on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2299); -fatal_exit(1); -} -var1 = var3; -RET_LABEL2:(void)0; +/* method typing$ARangeExpr$init_callsite= for (self: ARangeExpr, nullable CallSite) */ +void nitc__typing___ARangeExpr___init_callsite_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__ARangeExpr___init_callsite].val = p0; /* _init_callsite on */ +RET_LABEL:; } +/* method typing$ARangeExpr$accept_typing for (self: ARangeExpr, TypeVisitor) */ +void nitc__typing___ARangeExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +static val* varonce; +val* var /* : String */; +char* var1 /* : CString */; +val* var2 /* : String */; +val* var3 /* : nullable Int */; +val* var4 /* : nullable Int */; +val* var5 /* : nullable Bool */; +val* var6 /* : nullable Bool */; +val* var7 /* : nullable MClass */; +val* var_discrete_class /* var discrete_class: nullable MClass */; +short int var8 /* : Bool */; +short int var9 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var11 /* : Bool */; +short int var13 /* : Bool */; +val* var14 /* : MClassDef */; +val* var16 /* : MClassDef */; +val* var17 /* : MClassType */; +val* var19 /* : MClassType */; +val* var_discrete_type /* var discrete_type: MClassType */; +val* var20 /* : AExpr */; +val* var22 /* : AExpr */; +val* var23 /* : nullable MType */; +val* var_t1 /* var t1: nullable MType */; +val* var24 /* : AExpr */; +val* var26 /* : AExpr */; +val* var27 /* : nullable MType */; +val* var_t2 /* var t2: nullable MType */; +short int var28 /* : Bool */; +short int var29 /* : Bool */; +short int var30 /* : Bool */; +short int var32 /* : Bool */; +short int var34 /* : Bool */; +short int var_ /* var : Bool */; +short int var35 /* : Bool */; +short int var36 /* : Bool */; +short int var38 /* : Bool */; +short int var40 /* : Bool */; +static val* varonce41; +val* var42 /* : String */; +char* var43 /* : CString */; +val* var44 /* : String */; +val* var45 /* : nullable Int */; +val* var46 /* : nullable Int */; +val* var47 /* : nullable Bool */; +val* var48 /* : nullable Bool */; +val* var49 /* : nullable MClass */; +val* var_mclass /* var mclass: nullable MClass */; +short int var50 /* : Bool */; +short int var51 /* : Bool */; +short int var53 /* : Bool */; +short int var55 /* : Bool */; +short int var56 /* : Bool */; +val* var57 /* : Array[MType] */; +val* var_58 /* var : Array[MType] */; +val* var59 /* : MClassType */; +val* var_mtype /* var mtype: nullable Object */; +short int var60 /* : Bool */; +val* var61 /* : Array[MType] */; +val* var_62 /* var : Array[MType] */; +val* var63 /* : MClassType */; +val* var65 /* : NativeArray[String] */; +static val* varonce64; +static val* varonce66; +val* var67 /* : String */; +char* var68 /* : CString */; +val* var69 /* : String */; +val* var70 /* : nullable Int */; +val* var71 /* : nullable Int */; +val* var72 /* : nullable Bool */; +val* var73 /* : nullable Bool */; +static val* varonce74; +val* var75 /* : String */; +char* var76 /* : CString */; +val* var77 /* : String */; +val* var78 /* : nullable Int */; +val* var79 /* : nullable Int */; +val* var80 /* : nullable Bool */; +val* var81 /* : nullable Bool */; +static val* varonce82; +val* var83 /* : String */; +char* var84 /* : CString */; +val* var85 /* : String */; +val* var86 /* : nullable Int */; +val* var87 /* : nullable Int */; +val* var88 /* : nullable Bool */; +val* var89 /* : nullable Bool */; +val* var90 /* : String */; +val* var91 /* : String */; +val* var92 /* : String */; +short int var94 /* : Bool */; +int cltype; +int idtype; +static val* varonce95; +val* var96 /* : String */; +char* var97 /* : CString */; +val* var98 /* : String */; +val* var99 /* : nullable Int */; +val* var100 /* : nullable Int */; +val* var101 /* : nullable Bool */; +val* var102 /* : nullable Bool */; +val* var103 /* : nullable CallSite */; +val* var_callsite /* var callsite: nullable Object */; +short int var104 /* : Bool */; +int cltype105; +int idtype106; +static val* varonce107; +val* var108 /* : String */; +char* var109 /* : CString */; +val* var110 /* : String */; +val* var111 /* : nullable Int */; +val* var112 /* : nullable Int */; +val* var113 /* : nullable Bool */; +val* var114 /* : nullable Bool */; +val* var115 /* : nullable CallSite */; +var_v = p0; +if (likely(varonce!=NULL)) { +var = varonce; +} else { +var1 = "Discrete"; +var3 = (val*)(8l<<2|1); +var4 = (val*)(8l<<2|1); +var5 = (val*)((long)(0)<<2|3); +var6 = (val*)((long)(0)<<2|3); +var2 = core__flat___CString___to_s_unsafe(var1, var3, var4, var5, var6); +var = var2; +varonce = var; } { -var4 = nitc__typing___AExprs___to_a(var1); +var7 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var); } -var_res = var4; +var_discrete_class = var7; +if (var_discrete_class == NULL) { +var8 = 1; /* is null */ +} else { +var8 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel$Object$== (var_discrete_class,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline parser_nodes#AAssignFormExpr#n_value (self) on */ -var7 = self->attrs[COLOR_nitc__parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on */ -if (unlikely(var7 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1992); -fatal_exit(1); +{ /* Inline kernel$Object$is_same_instance (var_discrete_class,var_other) on */ +var13 = var_discrete_class == var_other; +var11 = var13; +goto RET_LABEL12; +RET_LABEL12:(void)0; } -var5 = var7; -RET_LABEL6:(void)0; } +var9 = var11; +goto RET_LABEL10; +RET_LABEL10:(void)0; } -{ -core___core__Array___core__abstract_collection__SimpleCollection__add(var_res, var5); /* Direct call array#Array#add on */ +var8 = var9; } -var = var_res; +if (var8){ goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method typing#ABraExpr#property_name for (self: ABraExpr): String */ -val* nitc__typing___ABraExpr___ASendExpr__property_name(val* self) { -val* var /* : String */; -static val* varonce; -val* var1 /* : String */; -char* var2 /* : NativeString */; -val* var3 /* : String */; -if (likely(varonce!=NULL)) { -var1 = varonce; } else { -var2 = "[]"; -var3 = core__flat___NativeString___to_s_full(var2, 2l, 2l); -var1 = var3; -varonce = var1; -} -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; } -/* method typing#ABraExpr#compute_raw_arguments for (self: ABraExpr): Array[AExpr] */ -val* nitc__typing___ABraExpr___ASendExpr__compute_raw_arguments(val* self) { -val* var /* : Array[AExpr] */; -val* var1 /* : AExprs */; -val* var3 /* : AExprs */; -val* var4 /* : Array[AExpr] */; { -{ /* Inline parser_nodes#ABraFormExpr#n_args (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__ABraFormExpr___n_args].val; /* _n_args on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2368); +{ /* Inline model$MClass$intro (var_discrete_class) on */ +var16 = var_discrete_class->attrs[COLOR_nitc__model__MClass___intro].val; /* _intro on */ +if (unlikely(var16 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 496); fatal_exit(1); } -var1 = var3; -RET_LABEL2:(void)0; +var14 = var16; +RET_LABEL15:(void)0; } } { -var4 = nitc__typing___AExprs___to_a(var1); +{ /* Inline model$MClassDef$bound_mtype (var14) on */ +var19 = var14->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var19 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var = var4; -goto RET_LABEL; -RET_LABEL:; -return var; +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594); +fatal_exit(1); } -/* method typing#ABraAssignExpr#property_name for (self: ABraAssignExpr): String */ -val* nitc__typing___ABraAssignExpr___ASendExpr__property_name(val* self) { -val* var /* : String */; -static val* varonce; -val* var1 /* : String */; -char* var2 /* : NativeString */; -val* var3 /* : String */; -if (likely(varonce!=NULL)) { -var1 = varonce; -} else { -var2 = "[]="; -var3 = core__flat___NativeString___to_s_full(var2, 3l, 3l); -var1 = var3; -varonce = var1; +var17 = var19; +RET_LABEL18:(void)0; } -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; } -/* method typing#ABraAssignExpr#compute_raw_arguments for (self: ABraAssignExpr): Array[AExpr] */ -val* nitc__typing___ABraAssignExpr___ASendExpr__compute_raw_arguments(val* self) { -val* var /* : Array[AExpr] */; -val* var1 /* : AExprs */; -val* var3 /* : AExprs */; -val* var4 /* : Array[AExpr] */; -val* var_res /* var res: Array[AExpr] */; -val* var5 /* : AExpr */; -val* var7 /* : AExpr */; -{ -{ /* Inline parser_nodes#ABraFormExpr#n_args (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__ABraFormExpr___n_args].val; /* _n_args on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2368); +var_discrete_type = var17; +{ +{ /* Inline parser_nodes$ARangeExpr$n_expr (self) on */ +var22 = self->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var22 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2502); fatal_exit(1); } -var1 = var3; -RET_LABEL2:(void)0; +var20 = var22; +RET_LABEL21:(void)0; } } { -var4 = nitc__typing___AExprs___to_a(var1); +var23 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var20, var_discrete_type); } -var_res = var4; +var_t1 = var23; { -{ /* Inline parser_nodes#AAssignFormExpr#n_value (self) on */ -var7 = self->attrs[COLOR_nitc__parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on */ -if (unlikely(var7 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1992); +{ /* Inline parser_nodes$ARangeExpr$n_expr2 (self) on */ +var26 = self->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on */ +if (unlikely(var26 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2508); fatal_exit(1); } -var5 = var7; -RET_LABEL6:(void)0; +var24 = var26; +RET_LABEL25:(void)0; } } { -core___core__Array___core__abstract_collection__SimpleCollection__add(var_res, var5); /* Direct call array#Array#add on */ +var27 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var24, var_discrete_type); } -var = var_res; -goto RET_LABEL; -RET_LABEL:; -return var; +var_t2 = var27; +if (var_t1 == NULL) { +var29 = 1; /* is null */ +} else { +var29 = 0; /* arg is null but recv is not */ } -/* method typing#ASendReassignFormExpr#write_callsite for (self: ASendReassignFormExpr): nullable CallSite */ -val* nitc__typing___ASendReassignFormExpr___write_callsite(val* self) { -val* var /* : nullable CallSite */; -val* var1 /* : nullable CallSite */; -var1 = self->attrs[COLOR_nitc__typing__ASendReassignFormExpr___write_callsite].val; /* _write_callsite on */ -var = var1; -RET_LABEL:; -return var; +if (0) { +{ /* Inline kernel$Object$== (var_t1,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +{ /* Inline kernel$Object$is_same_instance (var_t1,var_other) on */ +var34 = var_t1 == var_other; +var32 = var34; +goto RET_LABEL33; +RET_LABEL33:(void)0; } -/* method typing#ASendReassignFormExpr#write_callsite= for (self: ASendReassignFormExpr, nullable CallSite) */ -void nitc__typing___ASendReassignFormExpr___write_callsite_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__ASendReassignFormExpr___write_callsite].val = p0; /* _write_callsite on */ -RET_LABEL:; } -/* method typing#ASendReassignFormExpr#accept_typing for (self: ASendReassignFormExpr, TypeVisitor) */ -void nitc__typing___ASendReassignFormExpr___AExpr__accept_typing(val* self, val* p0) { -val* var_v /* var v: TypeVisitor */; -val* var /* : AExpr */; -val* var2 /* : AExpr */; -val* var3 /* : nullable MType */; -val* var_recvtype /* var recvtype: nullable MType */; -val* var4 /* : String */; -val* var_name /* var name: String */; -val* var5 /* : ANode */; -val* var_node /* var node: ANode */; -short int var6 /* : Bool */; -short int var7 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var9 /* : Bool */; -short int var11 /* : Bool */; -val* var12 /* : AExpr */; -val* var14 /* : AExpr */; -short int var15 /* : Bool */; -int cltype; -int idtype; -short int var_for_self /* var for_self: Bool */; -val* var16 /* : nullable CallSite */; -val* var_callsite /* var callsite: nullable CallSite */; -short int var17 /* : Bool */; -short int var18 /* : Bool */; -short int var20 /* : Bool */; -short int var22 /* : Bool */; -val* var24 /* : Array[AExpr] */; -val* var_args /* var args: Array[AExpr] */; -short int var25 /* : Bool */; -val* var26 /* : MSignature */; -val* var28 /* : MSignature */; -val* var29 /* : nullable MType */; -val* var31 /* : nullable MType */; -val* var_readtype /* var readtype: nullable MType */; -short int var32 /* : Bool */; -short int var33 /* : Bool */; -short int var35 /* : Bool */; -short int var37 /* : Bool */; -val* var38 /* : NativeArray[String] */; -static val* varonce; -static val* varonce39; -val* var40 /* : String */; -char* var41 /* : NativeString */; -val* var42 /* : String */; -static val* varonce43; -val* var44 /* : String */; -char* var45 /* : NativeString */; -val* var46 /* : String */; -val* var47 /* : String */; -static val* varonce48; -val* var49 /* : String */; -char* var50 /* : NativeString */; -val* var51 /* : String */; -val* var52 /* : String */; -val* var53 /* : AExpr */; -val* var55 /* : AExpr */; -short int var56 /* : Bool */; -int cltype57; -int idtype58; -val* var59 /* : nullable CallSite */; -val* var_wcallsite /* var wcallsite: nullable CallSite */; -short int var60 /* : Bool */; -short int var61 /* : Bool */; -short int var63 /* : Bool */; -short int var65 /* : Bool */; -val* var67 /* : MSignature */; -val* var69 /* : MSignature */; -val* var70 /* : Array[MParameter] */; -val* var72 /* : Array[MParameter] */; -val* var73 /* : nullable Object */; -val* var74 /* : MType */; -val* var76 /* : MType */; -val* var77 /* : nullable MType */; -val* var_wtype /* var wtype: nullable MType */; -short int var78 /* : Bool */; -short int var79 /* : Bool */; -short int var81 /* : Bool */; -short int var83 /* : Bool */; -val* var84 /* : Array[nullable Object] */; -val* var85 /* : AExpr */; -val* var87 /* : AExpr */; -short int var88 /* : Bool */; -var_v = p0; -{ -{ /* Inline parser_nodes#ASendExpr#n_expr (self) on */ -var2 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2022); -fatal_exit(1); +var30 = var32; +goto RET_LABEL31; +RET_LABEL31:(void)0; } -var = var2; -RET_LABEL1:(void)0; +var29 = var30; } +var_ = var29; +if (var29){ +var28 = var_; +} else { +if (var_t2 == NULL) { +var35 = 1; /* is null */ +} else { +var35 = 0; /* arg is null but recv is not */ } +if (0) { +{ /* Inline kernel$Object$== (var_t2,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var); +{ /* Inline kernel$Object$is_same_instance (var_t2,var_other) on */ +var40 = var_t2 == var_other; +var38 = var40; +goto RET_LABEL39; +RET_LABEL39:(void)0; } -var_recvtype = var3; -{ -var4 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__typing__ASendExpr__property_name]))(self); /* property_name on */ } -var_name = var4; +var36 = var38; +goto RET_LABEL37; +RET_LABEL37:(void)0; +} +var35 = var36; +} +var28 = var35; +} +if (var28){ +goto RET_LABEL; +} else { +} +if (likely(varonce41!=NULL)) { +var42 = varonce41; +} else { +var43 = "Range"; +var45 = (val*)(5l<<2|1); +var46 = (val*)(5l<<2|1); +var47 = (val*)((long)(0)<<2|3); +var48 = (val*)((long)(0)<<2|3); +var44 = core__flat___CString___to_s_unsafe(var43, var45, var46, var47, var48); +var42 = var44; +varonce41 = var42; +} { -var5 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__typing__ASendExpr__property_node]))(self); /* property_node on */ +var49 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var42); } -var_node = var5; -if (var_recvtype == NULL) { -var6 = 1; /* is null */ +var_mclass = var49; +if (var_mclass == NULL) { +var50 = 1; /* is null */ } else { -var6 = 0; /* arg is null but recv is not */ +var50 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_recvtype,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_mclass,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_recvtype,var_other) on */ -var11 = var_recvtype == var_other; -var9 = var11; -goto RET_LABEL10; -RET_LABEL10:(void)0; +{ /* Inline kernel$Object$is_same_instance (var_mclass,var_other) on */ +var55 = var_mclass == var_other; +var53 = var55; +goto RET_LABEL54; +RET_LABEL54:(void)0; } } -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +var51 = var53; +goto RET_LABEL52; +RET_LABEL52:(void)0; } -var6 = var7; +var50 = var51; } -if (var6){ +if (var50){ goto RET_LABEL; } else { } { -{ /* Inline parser_nodes#ASendExpr#n_expr (self) on */ -var14 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var14 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2022); -fatal_exit(1); +var56 = nitc__typing___nitc__typing__TypeVisitor___is_subtype(var_v, var_t1, var_t2); } -var12 = var14; -RET_LABEL13:(void)0; +if (var56){ +var57 = NEW_core__Array(&type_core__Array__nitc__MType); +{ +core___core__Array___with_capacity(var57, 1l); /* Direct call array$Array$with_capacity on */ } +var_58 = var57; +{ +core___core__AbstractArray___core__abstract_collection__Sequence__push(var_58, var_t2); /* Direct call array$AbstractArray$push on */ } -/* isa ASelfExpr */ -cltype = type_nitc__ASelfExpr.color; -idtype = type_nitc__ASelfExpr.id; -if(cltype >= var12->type->table_size) { -var15 = 0; +{ +var59 = nitc___nitc__MClass___get_mtype(var_mclass, var_58); +} +var_mtype = var59; } else { -var15 = var12->type->type_table[cltype] == idtype; +{ +var60 = nitc__typing___nitc__typing__TypeVisitor___is_subtype(var_v, var_t2, var_t1); } -var_for_self = var15; +if (var60){ +var61 = NEW_core__Array(&type_core__Array__nitc__MType); { -var16 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, var_node, var_recvtype, var_name, var_for_self); +core___core__Array___with_capacity(var61, 1l); /* Direct call array$Array$with_capacity on */ } -var_callsite = var16; -if (var_callsite == NULL) { -var17 = 1; /* is null */ -} else { -var17 = 0; /* arg is null but recv is not */ +var_62 = var61; +{ +core___core__AbstractArray___core__abstract_collection__Sequence__push(var_62, var_t1); /* Direct call array$AbstractArray$push on */ } -if (0) { -{ /* Inline kernel#Object#== (var_callsite,((val*)NULL)) on */ -var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_callsite,var_other) on */ -var22 = var_callsite == var_other; -var20 = var22; -goto RET_LABEL21; -RET_LABEL21:(void)0; +var63 = nitc___nitc__MClass___get_mtype(var_mclass, var_62); } +var_mtype = var63; +} else { +if (unlikely(varonce64==NULL)) { +var65 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String); +if (likely(varonce66!=NULL)) { +var67 = varonce66; +} else { +var68 = "Type Error: cannot create range: `"; +var70 = (val*)(34l<<2|1); +var71 = (val*)(34l<<2|1); +var72 = (val*)((long)(0)<<2|3); +var73 = (val*)((long)(0)<<2|3); +var69 = core__flat___CString___to_s_unsafe(var68, var70, var71, var72, var73); +var67 = var69; +varonce66 = var67; } -var18 = var20; -goto RET_LABEL19; -RET_LABEL19:(void)0; +((struct instance_core__NativeArray*)var65)->values[0]=var67; +if (likely(varonce74!=NULL)) { +var75 = varonce74; +} else { +var76 = "` vs `"; +var78 = (val*)(6l<<2|1); +var79 = (val*)(6l<<2|1); +var80 = (val*)((long)(0)<<2|3); +var81 = (val*)((long)(0)<<2|3); +var77 = core__flat___CString___to_s_unsafe(var76, var78, var79, var80, var81); +var75 = var77; +varonce74 = var75; } -var17 = var18; +((struct instance_core__NativeArray*)var65)->values[2]=var75; +if (likely(varonce82!=NULL)) { +var83 = varonce82; +} else { +var84 = "`."; +var86 = (val*)(2l<<2|1); +var87 = (val*)(2l<<2|1); +var88 = (val*)((long)(0)<<2|3); +var89 = (val*)((long)(0)<<2|3); +var85 = core__flat___CString___to_s_unsafe(var84, var86, var87, var88, var89); +var83 = var85; +varonce82 = var83; } -if (var17){ -goto RET_LABEL; +((struct instance_core__NativeArray*)var65)->values[4]=var83; } else { +var65 = varonce64; +varonce64 = NULL; } { -{ /* Inline typing#ASendExpr#callsite= (self,var_callsite) on */ -self->attrs[COLOR_nitc__typing__ASendExpr___callsite].val = var_callsite; /* _callsite on */ -RET_LABEL23:(void)0; -} +var90 = ((val*(*)(val* self))(var_t1->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_t1); /* to_s on */ } +((struct instance_core__NativeArray*)var65)->values[1]=var90; { -var24 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__typing__ASendExpr__compute_raw_arguments]))(self); /* compute_raw_arguments on */ +var91 = ((val*(*)(val* self))(var_t2->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_t2); /* to_s on */ } -var_args = var24; +((struct instance_core__NativeArray*)var65)->values[3]=var91; { -var25 = nitc___nitc__CallSite___check_signature(var_callsite, var_v, var_node, var_args); +var92 = ((val*(*)(val* self))(var65->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var65); /* native_to_s on */ } +varonce64 = var65; { -{ /* Inline typing#CallSite#msignature (var_callsite) on */ -var28 = var_callsite->attrs[COLOR_nitc__typing__CallSite___msignature].val; /* _msignature on */ -if (unlikely(var28 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 660); -fatal_exit(1); +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var92); /* Direct call typing$TypeVisitor$error on */ } -var26 = var28; -RET_LABEL27:(void)0; +goto RET_LABEL; } } { -{ /* Inline model#MSignature#return_mtype (var26) on */ -var31 = var26->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on */ -var29 = var31; -RET_LABEL30:(void)0; +{ /* Inline typing$AExpr$mtype= (self,var_mtype) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_mtype; /* _mtype on */ +RET_LABEL93:(void)0; } } -var_readtype = var29; -if (var_readtype == NULL) { -var32 = 1; /* is null */ +/* isa ACrangeExpr */ +cltype = type_nitc__ACrangeExpr.color; +idtype = type_nitc__ACrangeExpr.id; +if(cltype >= self->type->table_size) { +var94 = 0; } else { -var32 = 0; /* arg is null but recv is not */ +var94 = self->type->type_table[cltype] == idtype; +} +if (var94){ +if (likely(varonce95!=NULL)) { +var96 = varonce95; +} else { +var97 = "init"; +var99 = (val*)(4l<<2|1); +var100 = (val*)(4l<<2|1); +var101 = (val*)((long)(0)<<2|3); +var102 = (val*)((long)(0)<<2|3); +var98 = core__flat___CString___to_s_unsafe(var97, var99, var100, var101, var102); +var96 = var98; +varonce95 = var96; } -if (0) { -{ /* Inline kernel#Object#== (var_readtype,((val*)NULL)) on */ -var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_readtype,var_other) on */ -var37 = var_readtype == var_other; -var35 = var37; -goto RET_LABEL36; -RET_LABEL36:(void)0; +var103 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_mtype, var96, 0); } +var_callsite = var103; +} else { +/* isa AOrangeExpr */ +cltype105 = type_nitc__AOrangeExpr.color; +idtype106 = type_nitc__AOrangeExpr.id; +if(cltype105 >= self->type->table_size) { +var104 = 0; +} else { +var104 = self->type->type_table[cltype105] == idtype106; } -var33 = var35; -goto RET_LABEL34; -RET_LABEL34:(void)0; +if (var104){ +if (likely(varonce107!=NULL)) { +var108 = varonce107; +} else { +var109 = "without_last"; +var111 = (val*)(12l<<2|1); +var112 = (val*)(12l<<2|1); +var113 = (val*)((long)(0)<<2|3); +var114 = (val*)((long)(0)<<2|3); +var110 = core__flat___CString___to_s_unsafe(var109, var111, var112, var113, var114); +var108 = var110; +varonce107 = var108; } -var32 = var33; +{ +var115 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_mtype, var108, 0); } -if (var32){ -if (unlikely(varonce==NULL)) { -var38 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String); -if (likely(varonce39!=NULL)) { -var40 = varonce39; +var_callsite = var115; } else { -var41 = "Error: `"; -var42 = core__flat___NativeString___to_s_full(var41, 8l, 8l); -var40 = var42; -varonce39 = var40; +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Aborted"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1660); +fatal_exit(1); +} +} +{ +{ /* Inline typing$ARangeExpr$init_callsite= (self,var_callsite) on */ +self->attrs[COLOR_nitc__typing__ARangeExpr___init_callsite].val = var_callsite; /* _init_callsite on */ +RET_LABEL116:(void)0; +} +} +RET_LABEL:; +} +/* method typing$ANullExpr$accept_typing for (self: ANullExpr, TypeVisitor) */ +void nitc__typing___ANullExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : MModule */; +val* var2 /* : MModule */; +val* var3 /* : Model */; +val* var5 /* : Model */; +val* var6 /* : MNullType */; +val* var8 /* : MNullType */; +var_v = p0; +{ +{ /* Inline typing$TypeVisitor$mmodule (var_v) on */ +var2 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mmodule].val; /* _mmodule on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 37); +fatal_exit(1); } -((struct instance_core__NativeArray*)var38)->values[0]=var40; -if (likely(varonce43!=NULL)) { -var44 = varonce43; -} else { -var45 = "` is not a function."; -var46 = core__flat___NativeString___to_s_full(var45, 20l, 20l); -var44 = var46; -varonce43 = var44; +var = var2; +RET_LABEL1:(void)0; } -((struct instance_core__NativeArray*)var38)->values[2]=var44; -} else { -var38 = varonce; -varonce = NULL; } -((struct instance_core__NativeArray*)var38)->values[1]=var_name; { -var47 = ((val*(*)(val* self))(var38->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var38); /* native_to_s on */ +{ /* Inline mmodule$MModule$model (var) on */ +var5 = var->attrs[COLOR_nitc__mmodule__MModule___model].val; /* _model on */ +if (unlikely(var5 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -varonce = var38; -{ -nitc__typing___nitc__typing__TypeVisitor___error(var_v, var_node, var47); /* Direct call typing#TypeVisitor#error on */ +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 77); +fatal_exit(1); } -goto RET_LABEL; -} else { +var3 = var5; +RET_LABEL4:(void)0; } -if (likely(varonce48!=NULL)) { -var49 = varonce48; -} else { -var50 = "="; -var51 = core__flat___NativeString___to_s_full(var50, 1l, 1l); -var49 = var51; -varonce48 = var49; } { -var52 = ((val*(*)(val* self, val* p0))(var_name->class->vft[COLOR_core__abstract_text__String___43d]))(var_name, var49); /* + on */ +{ /* Inline model$Model$null_type (var3) on */ +var8 = var3->attrs[COLOR_nitc__model__Model___null_type].val; /* _null_type on */ +if (unlikely(var8 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -{ -{ /* Inline parser_nodes#ASendExpr#n_expr (self) on */ -var55 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on */ -if (unlikely(var55 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2022); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _null_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 103); fatal_exit(1); } -var53 = var55; -RET_LABEL54:(void)0; -} +var6 = var8; +RET_LABEL7:(void)0; } -/* isa ASelfExpr */ -cltype57 = type_nitc__ASelfExpr.color; -idtype58 = type_nitc__ASelfExpr.id; -if(cltype57 >= var53->type->table_size) { -var56 = 0; -} else { -var56 = var53->type->type_table[cltype57] == idtype58; } { -var59 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, var_node, var_recvtype, var52, var56); +{ /* Inline typing$AExpr$mtype= (self,var6) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var6; /* _mtype on */ +RET_LABEL9:(void)0; } -var_wcallsite = var59; -if (var_wcallsite == NULL) { -var60 = 1; /* is null */ -} else { -var60 = 0; /* arg is null but recv is not */ } -if (0) { -{ /* Inline kernel#Object#== (var_wcallsite,((val*)NULL)) on */ -var_other = ((val*)NULL); -{ -{ /* Inline kernel#Object#is_same_instance (var_wcallsite,var_other) on */ -var65 = var_wcallsite == var_other; -var63 = var65; -goto RET_LABEL64; -RET_LABEL64:(void)0; +RET_LABEL:; +} +/* method typing$AIsaExpr$cast_type for (self: AIsaExpr): nullable MType */ +val* nitc__typing___AIsaExpr___cast_type(val* self) { +val* var /* : nullable MType */; +val* var1 /* : nullable MType */; +var1 = self->attrs[COLOR_nitc__typing__AIsaExpr___cast_type].val; /* _cast_type on */ +var = var1; +RET_LABEL:; +return var; } +/* method typing$AIsaExpr$cast_type= for (self: AIsaExpr, nullable MType) */ +void nitc__typing___AIsaExpr___cast_type_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__AIsaExpr___cast_type].val = p0; /* _cast_type on */ +RET_LABEL:; } -var61 = var63; -goto RET_LABEL62; -RET_LABEL62:(void)0; +/* method typing$AIsaExpr$accept_typing for (self: AIsaExpr, TypeVisitor) */ +void nitc__typing___AIsaExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : nullable MType */; +val* var4 /* : AType */; +val* var6 /* : AType */; +val* var7 /* : nullable MType */; +val* var_mtype /* var mtype: nullable MType */; +val* var9 /* : AExpr */; +val* var11 /* : AExpr */; +val* var12 /* : nullable Variable */; +val* var_variable /* var variable: nullable Variable */; +short int var13 /* : Bool */; +short int var14 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var16 /* : Bool */; +short int var17 /* : Bool */; +val* var18 /* : AExpr */; +val* var20 /* : AExpr */; +val* var21 /* : nullable MType */; +val* var_orig /* var orig: nullable MType */; +short int var22 /* : Bool */; +short int var23 /* : Bool */; +short int var24 /* : Bool */; +short int var25 /* : Bool */; +val* var_other27 /* var other: nullable Object */; +short int var28 /* : Bool */; +short int var30 /* : Bool */; +short int var_ /* var : Bool */; +short int var31 /* : Bool */; +short int var32 /* : Bool */; +short int var34 /* : Bool */; +short int var36 /* : Bool */; +short int var_37 /* var : Bool */; +short int var38 /* : Bool */; +short int var39 /* : Bool */; +val* var40 /* : nullable FlowContext */; +val* var42 /* : nullable FlowContext */; +val* var43 /* : FlowContext */; +val* var45 /* : FlowContext */; +val* var46 /* : nullable MType */; +var_v = p0; +{ +{ /* Inline parser_nodes$AIsaExpr$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2234); +fatal_exit(1); } -var60 = var61; +var = var2; +RET_LABEL1:(void)0; } -if (var60){ -goto RET_LABEL; -} else { } { -{ /* Inline typing#ASendReassignFormExpr#write_callsite= (self,var_wcallsite) on */ -self->attrs[COLOR_nitc__typing__ASendReassignFormExpr___write_callsite].val = var_wcallsite; /* _write_callsite on */ -RET_LABEL66:(void)0; -} +var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var); } { -{ /* Inline typing#CallSite#msignature (var_wcallsite) on */ -var69 = var_wcallsite->attrs[COLOR_nitc__typing__CallSite___msignature].val; /* _msignature on */ -if (unlikely(var69 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 660); +{ /* Inline parser_nodes$AIsaExpr$n_type (self) on */ +var6 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_type].val; /* _n_type on */ +if (unlikely(var6 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2240); fatal_exit(1); } -var67 = var69; -RET_LABEL68:(void)0; +var4 = var6; +RET_LABEL5:(void)0; } } { -{ /* Inline model#MSignature#mparameters (var67) on */ -var72 = var67->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on */ -if (unlikely(var72 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1783); -fatal_exit(1); +var7 = nitc__typing___nitc__typing__TypeVisitor___resolve_mtype(var_v, var4); } -var70 = var72; -RET_LABEL71:(void)0; +var_mtype = var7; +{ +{ /* Inline typing$AIsaExpr$cast_type= (self,var_mtype) on */ +self->attrs[COLOR_nitc__typing__AIsaExpr___cast_type].val = var_mtype; /* _cast_type on */ +RET_LABEL8:(void)0; } } { -var73 = core___core__SequenceRead___last(var70); +{ /* Inline parser_nodes$AIsaExpr$n_expr (self) on */ +var11 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var11 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -{ -{ /* Inline model#MParameter#mtype (var73) on */ -var76 = var73->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on */ -if (unlikely(var76 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1900); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2234); fatal_exit(1); } -var74 = var76; -RET_LABEL75:(void)0; +var9 = var11; +RET_LABEL10:(void)0; } } { -var77 = nitc__typing___AReassignFormExpr___resolve_reassignment(self, var_v, var_readtype, var74); +var12 = ((val*(*)(val* self))(var9->class->vft[COLOR_nitc__typing__AExpr__its_variable]))(var9); /* its_variable on */ } -var_wtype = var77; -if (var_wtype == NULL) { -var78 = 1; /* is null */ +var_variable = var12; +if (var_variable == NULL) { +var13 = 0; /* is null */ } else { -var78 = 0; /* arg is null but recv is not */ +var13 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_wtype,((val*)NULL)) on */ +{ /* Inline kernel$Object$!= (var_variable,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_wtype,var_other) on */ -var83 = var_wtype == var_other; -var81 = var83; -goto RET_LABEL82; -RET_LABEL82:(void)0; -} -} -var79 = var81; -goto RET_LABEL80; -RET_LABEL80:(void)0; +var16 = ((short int(*)(val* self, val* p0))(var_variable->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_variable, var_other); /* == on */ } -var78 = var79; +var17 = !var16; +var14 = var17; +goto RET_LABEL15; +RET_LABEL15:(void)0; } -if (var78){ -goto RET_LABEL; -} else { +var13 = var14; } +if (var13){ { -var84 = core__array___Collection___to_a(var_args); +{ /* Inline parser_nodes$AIsaExpr$n_expr (self) on */ +var20 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var20 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var_args = var84; -{ -{ /* Inline parser_nodes#AReassignFormExpr#n_value (self) on */ -var87 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on */ -if (unlikely(var87 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2003); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2234); fatal_exit(1); } -var85 = var87; -RET_LABEL86:(void)0; +var18 = var20; +RET_LABEL19:(void)0; } } { -core___core__Array___core__abstract_collection__SimpleCollection__add(var_args, var85); /* Direct call array#Array#add on */ +var21 = ((val*(*)(val* self))(var18->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var18); /* mtype on */ } -{ -var88 = nitc___nitc__CallSite___check_signature(var_wcallsite, var_v, var_node, var_args); +var_orig = var21; +if (var_mtype == NULL) { +var24 = 1; /* is null */ +} else { +var24 = 0; /* arg is null but recv is not */ } +if (0) { +{ /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on */ +var_other27 = ((val*)NULL); { -{ /* Inline typing#AExpr#is_typed= (self,1) on */ -self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ -RET_LABEL89:(void)0; -} +{ /* Inline kernel$Object$is_same_instance (var_mtype,var_other27) on */ +var30 = var_mtype == var_other27; +var28 = var30; +goto RET_LABEL29; +RET_LABEL29:(void)0; } -RET_LABEL:; } -/* method typing#ACallReassignExpr#property_name for (self: ACallReassignExpr): String */ -val* nitc__typing___ACallReassignExpr___ASendExpr__property_name(val* self) { -val* var /* : String */; -val* var1 /* : AQid */; -val* var3 /* : AQid */; -val* var4 /* : TId */; -val* var6 /* : TId */; -val* var7 /* : String */; -{ -{ /* Inline parser_nodes#ACallFormExpr#n_qid (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid].val; /* _n_qid on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2296); -fatal_exit(1); +var25 = var28; +goto RET_LABEL26; +RET_LABEL26:(void)0; } -var1 = var3; -RET_LABEL2:(void)0; +var24 = var25; } +var_ = var24; +if (var24){ +var23 = var_; +} else { +if (var_orig == NULL) { +var31 = 1; /* is null */ +} else { +var31 = 0; /* arg is null but recv is not */ } +if (0) { +{ /* Inline kernel$Object$== (var_orig,((val*)NULL)) on */ +var_other27 = ((val*)NULL); { -{ /* Inline parser_nodes#AQid#n_id (var1) on */ -var6 = var1->attrs[COLOR_nitc__parser_nodes__AQid___n_id].val; /* _n_id on */ -if (unlikely(var6 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1658); -fatal_exit(1); +{ /* Inline kernel$Object$is_same_instance (var_orig,var_other27) on */ +var36 = var_orig == var_other27; +var34 = var36; +goto RET_LABEL35; +RET_LABEL35:(void)0; } -var4 = var6; -RET_LABEL5:(void)0; } +var32 = var34; +goto RET_LABEL33; +RET_LABEL33:(void)0; +} +var31 = var32; +} +var23 = var31; } +var_37 = var23; +if (var23){ +var22 = var_37; +} else { { -var7 = nitc__lexer_work___Token___text(var4); +var38 = nitc__typing___nitc__typing__TypeVisitor___is_subtype(var_v, var_orig, var_mtype); } -var = var7; -goto RET_LABEL; -RET_LABEL:; -return var; +var39 = !var38; +var22 = var39; } -/* method typing#ACallReassignExpr#property_node for (self: ACallReassignExpr): ANode */ -val* nitc__typing___ACallReassignExpr___ASendExpr__property_node(val* self) { -val* var /* : ANode */; -val* var1 /* : AQid */; -val* var3 /* : AQid */; -val* var4 /* : TId */; -val* var6 /* : TId */; +if (var22){ { -{ /* Inline parser_nodes#ACallFormExpr#n_qid (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid].val; /* _n_qid on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2296); -fatal_exit(1); +{ /* Inline flow$AExpr$after_flow_context (self) on */ +var42 = self->attrs[COLOR_nitc__flow__AExpr___after_flow_context].val; /* _after_flow_context on */ +var40 = var42; +RET_LABEL41:(void)0; } -var1 = var3; -RET_LABEL2:(void)0; } +if (var40 == NULL) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -{ -{ /* Inline parser_nodes#AQid#n_id (var1) on */ -var6 = var1->attrs[COLOR_nitc__parser_nodes__AQid___n_id].val; /* _n_id on */ -if (unlikely(var6 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1658); +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1694); fatal_exit(1); +} else { +{ /* Inline flow$FlowContext$when_true (var40) on */ +if (unlikely(var40 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var4 = var6; -RET_LABEL5:(void)0; -} +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow, 225); +fatal_exit(1); } -var = var4; -goto RET_LABEL; -RET_LABEL:; -return var; +var45 = var40->attrs[COLOR_nitc__flow__FlowContext___when_true].val; /* _when_true on */ +if (unlikely(var45 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -/* method typing#ACallReassignExpr#compute_raw_arguments for (self: ACallReassignExpr): Array[AExpr] */ -val* nitc__typing___ACallReassignExpr___ASendExpr__compute_raw_arguments(val* self) { -val* var /* : Array[AExpr] */; -val* var1 /* : AExprs */; -val* var3 /* : AExprs */; -val* var4 /* : Array[AExpr] */; -{ -{ /* Inline parser_nodes#ACallFormExpr#n_args (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_args].val; /* _n_args on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2299); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow, 225); fatal_exit(1); } -var1 = var3; -RET_LABEL2:(void)0; +var43 = var45; +RET_LABEL44:(void)0; } } { -var4 = nitc__typing___AExprs___to_a(var1); +nitc__typing___FlowContext___set_var(var43, var_v, var_variable, var_mtype); /* Direct call typing$FlowContext$set_var on */ } -var = var4; -goto RET_LABEL; -RET_LABEL:; -return var; +} else { } -/* method typing#ABraReassignExpr#property_name for (self: ABraReassignExpr): String */ -val* nitc__typing___ABraReassignExpr___ASendExpr__property_name(val* self) { -val* var /* : String */; -static val* varonce; -val* var1 /* : String */; -char* var2 /* : NativeString */; -val* var3 /* : String */; -if (likely(varonce!=NULL)) { -var1 = varonce; } else { -var2 = "[]"; -var3 = core__flat___NativeString___to_s_full(var2, 2l, 2l); -var1 = var3; -varonce = var1; } -var = var1; -goto RET_LABEL; +{ +var46 = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self); +} +{ +{ /* Inline typing$AExpr$mtype= (self,var46) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var46; /* _mtype on */ +RET_LABEL47:(void)0; +} +} RET_LABEL:; -return var; } -/* method typing#ABraReassignExpr#compute_raw_arguments for (self: ABraReassignExpr): Array[AExpr] */ -val* nitc__typing___ABraReassignExpr___ASendExpr__compute_raw_arguments(val* self) { -val* var /* : Array[AExpr] */; -val* var1 /* : AExprs */; -val* var3 /* : AExprs */; -val* var4 /* : Array[AExpr] */; +/* method typing$AIsaExpr$accept_post_typing for (self: AIsaExpr, TypeVisitor) */ +void nitc__typing___AIsaExpr___ANode__accept_post_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : AType */; +val* var5 /* : AType */; +val* var6 /* : nullable MType */; +var_v = p0; { -{ /* Inline parser_nodes#ABraFormExpr#n_args (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__ABraFormExpr___n_args].val; /* _n_args on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2368); +{ /* Inline parser_nodes$AIsaExpr$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2234); fatal_exit(1); } -var1 = var3; -RET_LABEL2:(void)0; +var = var2; +RET_LABEL1:(void)0; } } { -var4 = nitc__typing___AExprs___to_a(var1); +{ /* Inline parser_nodes$AIsaExpr$n_type (self) on */ +var5 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_type].val; /* _n_type on */ +if (unlikely(var5 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var = var4; -goto RET_LABEL; -RET_LABEL:; -return var; +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2240); +fatal_exit(1); } -/* method typing#AInitExpr#property_name for (self: AInitExpr): String */ -val* nitc__typing___AInitExpr___ASendExpr__property_name(val* self) { -val* var /* : String */; -static val* varonce; -val* var1 /* : String */; -char* var2 /* : NativeString */; -val* var3 /* : String */; -if (likely(varonce!=NULL)) { -var1 = varonce; -} else { -var2 = "init"; -var3 = core__flat___NativeString___to_s_full(var2, 4l, 4l); -var1 = var3; -varonce = var1; +var3 = var5; +RET_LABEL4:(void)0; +} +} +{ +var6 = nitc__typing___nitc__typing__TypeVisitor___check_expr_cast(var_v, self, var, var3); } -var = var1; -goto RET_LABEL; RET_LABEL:; -return var; } -/* method typing#AInitExpr#property_node for (self: AInitExpr): ANode */ -val* nitc__typing___AInitExpr___ASendExpr__property_node(val* self) { -val* var /* : ANode */; -val* var1 /* : TKwinit */; -val* var3 /* : TKwinit */; +/* method typing$AAsCastExpr$accept_typing for (self: AAsCastExpr, TypeVisitor) */ +void nitc__typing___AAsCastExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : nullable MType */; +val* var4 /* : AType */; +val* var6 /* : AType */; +val* var7 /* : nullable MType */; +var_v = p0; { -{ /* Inline parser_nodes#AInitExpr#n_kwinit (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__AInitExpr___n_kwinit].val; /* _n_kwinit on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwinit"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2357); +{ /* Inline parser_nodes$AAsCastForm$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2667); fatal_exit(1); } -var1 = var3; -RET_LABEL2:(void)0; +var = var2; +RET_LABEL1:(void)0; } } -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; +{ +var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var); } -/* method typing#AInitExpr#compute_raw_arguments for (self: AInitExpr): Array[AExpr] */ -val* nitc__typing___AInitExpr___ASendExpr__compute_raw_arguments(val* self) { -val* var /* : Array[AExpr] */; -val* var1 /* : AExprs */; -val* var3 /* : AExprs */; -val* var4 /* : Array[AExpr] */; { -{ /* Inline parser_nodes#AInitExpr#n_args (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__AInitExpr___n_args].val; /* _n_args on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2360); +{ /* Inline parser_nodes$AAsCastExpr$n_type (self) on */ +var6 = self->attrs[COLOR_nitc__parser_nodes__AAsCastExpr___n_type].val; /* _n_type on */ +if (unlikely(var6 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2684); fatal_exit(1); } -var1 = var3; -RET_LABEL2:(void)0; +var4 = var6; +RET_LABEL5:(void)0; } } { -var4 = nitc__typing___AExprs___to_a(var1); +var7 = nitc__typing___nitc__typing__TypeVisitor___resolve_mtype(var_v, var4); +} +{ +{ /* Inline typing$AExpr$mtype= (self,var7) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var7; /* _mtype on */ +RET_LABEL8:(void)0; +} } -var = var4; -goto RET_LABEL; RET_LABEL:; -return var; } -/* method typing#AExprs#to_a for (self: AExprs): Array[AExpr] */ -val* nitc__typing___AExprs___to_a(val* self) { -val* var /* : Array[AExpr] */; -val* var1 /* : ANodes[AExpr] */; -val* var3 /* : ANodes[AExpr] */; -val* var4 /* : Array[nullable Object] */; +/* method typing$AAsCastExpr$accept_post_typing for (self: AAsCastExpr, TypeVisitor) */ +void nitc__typing___AAsCastExpr___ANode__accept_post_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : AType */; +val* var5 /* : AType */; +val* var6 /* : nullable MType */; +var_v = p0; { -{ /* Inline parser_nodes#AExprs#n_exprs (self) on */ -var3 = self->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2709); +{ /* Inline parser_nodes$AAsCastForm$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2667); fatal_exit(1); } -var1 = var3; -RET_LABEL2:(void)0; +var = var2; +RET_LABEL1:(void)0; } } { -var4 = core__array___Collection___to_a(var1); +{ /* Inline parser_nodes$AAsCastExpr$n_type (self) on */ +var5 = self->attrs[COLOR_nitc__parser_nodes__AAsCastExpr___n_type].val; /* _n_type on */ +if (unlikely(var5 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var = var4; -goto RET_LABEL; -RET_LABEL:; -return var; +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2684); +fatal_exit(1); } -/* method typing#ASuperExpr#callsite for (self: ASuperExpr): nullable CallSite */ -val* nitc__typing___ASuperExpr___callsite(val* self) { -val* var /* : nullable CallSite */; -val* var1 /* : nullable CallSite */; -var1 = self->attrs[COLOR_nitc__typing__ASuperExpr___callsite].val; /* _callsite on */ -var = var1; -RET_LABEL:; -return var; +var3 = var5; +RET_LABEL4:(void)0; } -/* method typing#ASuperExpr#callsite= for (self: ASuperExpr, nullable CallSite) */ -void nitc__typing___ASuperExpr___callsite_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__ASuperExpr___callsite].val = p0; /* _callsite on */ -RET_LABEL:; } -/* method typing#ASuperExpr#mpropdef for (self: ASuperExpr): nullable MMethodDef */ -val* nitc__typing___ASuperExpr___mpropdef(val* self) { -val* var /* : nullable MMethodDef */; -val* var1 /* : nullable MMethodDef */; -var1 = self->attrs[COLOR_nitc__typing__ASuperExpr___mpropdef].val; /* _mpropdef on */ -var = var1; -RET_LABEL:; -return var; +{ +var6 = nitc__typing___nitc__typing__TypeVisitor___check_expr_cast(var_v, self, var, var3); } -/* method typing#ASuperExpr#mpropdef= for (self: ASuperExpr, nullable MMethodDef) */ -void nitc__typing___ASuperExpr___mpropdef_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__ASuperExpr___mpropdef].val = p0; /* _mpropdef on */ RET_LABEL:; } -/* method typing#ASuperExpr#accept_typing for (self: ASuperExpr, TypeVisitor) */ -void nitc__typing___ASuperExpr___AExpr__accept_typing(val* self, val* p0) { +/* method typing$AAsNotnullExpr$accept_typing for (self: AAsNotnullExpr, TypeVisitor) */ +void nitc__typing___AAsNotnullExpr___AExpr__accept_typing(val* self, val* p0) { val* var_v /* var v: TypeVisitor */; -val* var /* : nullable MClassType */; -val* var2 /* : nullable MClassType */; -val* var_anchor /* var anchor: nullable MClassType */; -short int var3 /* : Bool */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : nullable MType */; +val* var_mtype /* var mtype: nullable MType */; short int var4 /* : Bool */; +short int var5 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var6 /* : Bool */; short int var7 /* : Bool */; -val* var8 /* : Variable */; -val* var10 /* : Variable */; -val* var11 /* : nullable MType */; -val* var_recvtype /* var recvtype: nullable MType */; -short int var12 /* : Bool */; -short int var13 /* : Bool */; -short int var15 /* : Bool */; -short int var16 /* : Bool */; -val* var17 /* : nullable MPropDef */; -val* var19 /* : nullable MPropDef */; -val* var20 /* : MProperty */; -val* var22 /* : MProperty */; -val* var_mproperty /* var mproperty: MProperty */; -short int var23 /* : Bool */; +short int var9 /* : Bool */; +short int var10 /* : Bool */; int cltype; int idtype; -short int var24 /* : Bool */; static val* varonce; -val* var25 /* : String */; -char* var26 /* : NativeString */; -val* var27 /* : String */; -val* var28 /* : MModule */; -val* var30 /* : MModule */; -val* var31 /* : Array[MPropDef] */; -val* var_superprops /* var superprops: Array[MMethodDef] */; -long var32 /* : Int */; -long var34 /* : Int */; -short int var35 /* : Bool */; -short int var37 /* : Bool */; -short int var38 /* : Bool */; -short int var39 /* : Bool */; -short int var41 /* : Bool */; -short int var_ /* var : Bool */; -val* var42 /* : nullable MPropDef */; -val* var44 /* : nullable MPropDef */; -short int var45 /* : Bool */; -val* var47 /* : NativeArray[String] */; -static val* varonce46; -static val* varonce48; -val* var49 /* : String */; -char* var50 /* : NativeString */; -val* var51 /* : String */; -static val* varonce52; -val* var53 /* : String */; -char* var54 /* : NativeString */; -val* var55 /* : String */; -val* var56 /* : String */; -val* var57 /* : String */; -val* var58 /* : nullable Object */; -val* var_superprop /* var superprop: MMethodDef */; -val* var59 /* : nullable MSignature */; -val* var61 /* : nullable MSignature */; -val* var_msignature /* var msignature: MSignature */; -val* var62 /* : MType */; -short int var63 /* : Bool */; -int cltype64; -int idtype65; -const char* var_class_name; -val* var66 /* : AExprs */; -val* var68 /* : AExprs */; -val* var69 /* : Array[AExpr] */; -val* var_args /* var args: Array[AExpr] */; -long var70 /* : Int */; -long var72 /* : Int */; -short int var73 /* : Bool */; -short int var75 /* : Bool */; -int cltype76; -int idtype77; -const char* var_class_name78; -short int var79 /* : Bool */; -val* var80 /* : nullable SignatureMap */; -val* var82 /* : nullable MType */; -val* var84 /* : nullable MType */; -val* var87 /* : nullable MPropDef */; -val* var89 /* : nullable MPropDef */; -val* var91 /* : nullable MPropDef */; -val* var93 /* : nullable MPropDef */; -short int var94 /* : Bool */; -int cltype95; -int idtype96; -const char* var_class_name97; +val* var11 /* : String */; +char* var12 /* : CString */; +val* var13 /* : String */; +val* var14 /* : nullable Int */; +val* var15 /* : nullable Int */; +val* var16 /* : nullable Bool */; +val* var17 /* : nullable Bool */; +short int var18 /* : Bool */; +val* var19 /* : MType */; var_v = p0; { -{ /* Inline typing#TypeVisitor#anchor (var_v) on */ -var2 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___anchor].val; /* _anchor on */ +{ /* Inline parser_nodes$AAsCastForm$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2667); +fatal_exit(1); +} var = var2; RET_LABEL1:(void)0; } } -var_anchor = var; -if (var_anchor == NULL) { -var3 = 0; /* is null */ +{ +var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var); +} +var_mtype = var3; +if (var_mtype == NULL) { +var4 = 1; /* is null */ } else { -var3 = 1; /* arg is null and recv is not */ +var4 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_anchor,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on */ var_other = ((val*)NULL); { -var6 = ((short int(*)(val* self, val* p0))(var_anchor->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_anchor, var_other); /* == on */ +{ /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on */ +var9 = var_mtype == var_other; +var7 = var9; +goto RET_LABEL8; +RET_LABEL8:(void)0; } -var7 = !var6; -var4 = var7; -goto RET_LABEL5; -RET_LABEL5:(void)0; } -var3 = var4; +var5 = var7; +goto RET_LABEL6; +RET_LABEL6:(void)0; } -if (unlikely(!var3)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1930); -fatal_exit(1); +var4 = var5; } -{ -{ /* Inline typing#TypeVisitor#selfvariable (var_v) on */ -var10 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___selfvariable].val; /* _selfvariable on */ -if (unlikely(var10 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 51); -fatal_exit(1); +if (var4){ +goto RET_LABEL; +} else { } -var8 = var10; -RET_LABEL9:(void)0; +/* isa MNullType */ +cltype = type_nitc__MNullType.color; +idtype = type_nitc__MNullType.id; +if(cltype >= var_mtype->type->table_size) { +var10 = 0; +} else { +var10 = var_mtype->type->type_table[cltype] == idtype; } +if (var10){ +if (likely(varonce!=NULL)) { +var11 = varonce; +} else { +var12 = "Type Error: `as(not null)` on `null`."; +var14 = (val*)(37l<<2|1); +var15 = (val*)(37l<<2|1); +var16 = (val*)((long)(0)<<2|3); +var17 = (val*)((long)(0)<<2|3); +var13 = core__flat___CString___to_s_unsafe(var12, var14, var15, var16, var17); +var11 = var13; +varonce = var11; } { -var11 = nitc__typing___nitc__typing__TypeVisitor___get_variable(var_v, self, var8); +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var11); /* Direct call typing$TypeVisitor$error on */ } -var_recvtype = var11; -if (var_recvtype == NULL) { -var12 = 0; /* is null */ +goto RET_LABEL; } else { -var12 = 1; /* arg is null and recv is not */ } -if (0) { -{ /* Inline kernel#Object#!= (var_recvtype,((val*)NULL)) on */ -var_other = ((val*)NULL); { -var15 = ((short int(*)(val* self, val* p0))(var_recvtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_recvtype, var_other); /* == on */ -} -var16 = !var15; -var13 = var16; -goto RET_LABEL14; -RET_LABEL14:(void)0; +var18 = nitc__typing___nitc__typing__TypeVisitor___can_be_null(var_v, var_mtype); } -var12 = var13; +if (var18){ +{ +var19 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__as_notnull]))(var_mtype); /* as_notnull on */ } -if (unlikely(!var12)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1932); -fatal_exit(1); +var_mtype = var19; +} else { } { -{ /* Inline typing#TypeVisitor#mpropdef (var_v) on */ -var19 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mpropdef].val; /* _mpropdef on */ -var17 = var19; -RET_LABEL18:(void)0; +{ /* Inline typing$AExpr$mtype= (self,var_mtype) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_mtype; /* _mtype on */ +RET_LABEL20:(void)0; } } -if (var17 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1933); -fatal_exit(1); -} else { -{ /* Inline model#MPropDef#mproperty (var17) on */ -if (unlikely(var17 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230); -fatal_exit(1); +RET_LABEL:; } -var22 = var17->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on */ -if (unlikely(var22 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230); +/* method typing$AAsNotnullExpr$accept_post_typing for (self: AAsNotnullExpr, TypeVisitor) */ +void nitc__typing___AAsNotnullExpr___ANode__accept_post_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : nullable MType */; +val* var_mtype /* var mtype: nullable MType */; +short int var4 /* : Bool */; +short int var5 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var7 /* : Bool */; +short int var9 /* : Bool */; +val* var10 /* : AExpr */; +val* var12 /* : AExpr */; +short int var13 /* : Bool */; +var_v = p0; +{ +{ /* Inline parser_nodes$AAsCastForm$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2667); fatal_exit(1); } -var20 = var22; -RET_LABEL21:(void)0; +var = var2; +RET_LABEL1:(void)0; } } -var_mproperty = var20; -/* isa MMethod */ -cltype = type_nitc__MMethod.color; -idtype = type_nitc__MMethod.id; -if(cltype >= var_mproperty->type->table_size) { -var23 = 0; -} else { -var23 = var_mproperty->type->type_table[cltype] == idtype; +{ +var3 = ((val*(*)(val* self))(var->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var); /* mtype on */ } -var24 = !var23; -if (var24){ -if (likely(varonce!=NULL)) { -var25 = varonce; +var_mtype = var3; +if (var_mtype == NULL) { +var4 = 1; /* is null */ } else { -var26 = "Error: `super` only usable in a `method`."; -var27 = core__flat___NativeString___to_s_full(var26, 41l, 41l); -var25 = var27; -varonce = var25; +var4 = 0; /* arg is null but recv is not */ } +if (0) { +{ /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on */ +var_other = ((val*)NULL); { -nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var25); /* Direct call typing#TypeVisitor#error on */ +{ /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on */ +var9 = var_mtype == var_other; +var7 = var9; +goto RET_LABEL8; +RET_LABEL8:(void)0; +} +} +var5 = var7; +goto RET_LABEL6; +RET_LABEL6:(void)0; +} +var4 = var5; } +if (var4){ goto RET_LABEL; } else { } { -{ /* Inline typing#TypeVisitor#mmodule (var_v) on */ -var30 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mmodule].val; /* _mmodule on */ -if (unlikely(var30 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 37); -fatal_exit(1); +{ /* Inline parser_nodes$AAsCastForm$n_expr (self) on */ +var12 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on */ +if (unlikely(var12 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -var28 = var30; -RET_LABEL29:(void)0; +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2667); +fatal_exit(1); } +var10 = var12; +RET_LABEL11:(void)0; } -{ -var31 = nitc___nitc__MProperty___lookup_super_definitions(var_mproperty, var28, var_anchor); } -var_superprops = var31; { -{ /* Inline array#AbstractArrayRead#length (var_superprops) on */ -var34 = var_superprops->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on */ -var32 = var34; -RET_LABEL33:(void)0; +var13 = nitc__typing___nitc__typing__TypeVisitor___check_can_be_null(var_v, var10, var_mtype); } +RET_LABEL:; } +/* method typing$AParExpr$accept_typing for (self: AParExpr, TypeVisitor) */ +void nitc__typing___AParExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : nullable MType */; +var_v = p0; { -{ /* Inline kernel#Int#== (var32,0l) on */ -var37 = var32 == 0l; -var35 = var37; -goto RET_LABEL36; -RET_LABEL36:(void)0; +{ /* Inline parser_nodes$AParExpr$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__AParExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2656); +fatal_exit(1); } -if (var35){ -{ -{ /* Inline model#MMethod#is_init (var_mproperty) on */ -var41 = var_mproperty->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on */ -var39 = var41; -RET_LABEL40:(void)0; +var = var2; +RET_LABEL1:(void)0; } } -var_ = var39; -if (var39){ { -{ /* Inline typing#TypeVisitor#mpropdef (var_v) on */ -var44 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mpropdef].val; /* _mpropdef on */ -var42 = var44; -RET_LABEL43:(void)0; +var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var); } +{ +{ /* Inline typing$AExpr$mtype= (self,var3) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var3; /* _mtype on */ +RET_LABEL4:(void)0; } -if (var42 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1940); -fatal_exit(1); -} else { -var45 = nitc___nitc__MPropDef___is_intro(var42); } -var38 = var45; -} else { -var38 = var_; +RET_LABEL:; } -if (var38){ +/* method typing$AOnceExpr$accept_typing for (self: AOnceExpr, TypeVisitor) */ +void nitc__typing___AOnceExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +val* var /* : AExpr */; +val* var2 /* : AExpr */; +val* var3 /* : nullable MType */; +var_v = p0; { -nitc__typing___ASuperExpr___process_superinit(self, var_v); /* Direct call typing#ASuperExpr#process_superinit on */ -} -goto RET_LABEL; -} else { +{ /* Inline parser_nodes$AOnceExpr$n_expr (self) on */ +var2 = self->attrs[COLOR_nitc__parser_nodes__AOnceExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var2 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -if (unlikely(varonce46==NULL)) { -var47 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String); -if (likely(varonce48!=NULL)) { -var49 = varonce48; -} else { -var50 = "Error: no super method to call for `"; -var51 = core__flat___NativeString___to_s_full(var50, 36l, 36l); -var49 = var51; -varonce48 = var49; +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2095); +fatal_exit(1); } -((struct instance_core__NativeArray*)var47)->values[0]=var49; -if (likely(varonce52!=NULL)) { -var53 = varonce52; -} else { -var54 = "`."; -var55 = core__flat___NativeString___to_s_full(var54, 2l, 2l); -var53 = var55; -varonce52 = var53; +var = var2; +RET_LABEL1:(void)0; } -((struct instance_core__NativeArray*)var47)->values[2]=var53; -} else { -var47 = varonce46; -varonce46 = NULL; } { -var56 = ((val*(*)(val* self))(var_mproperty->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mproperty); /* to_s on */ +var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var); } -((struct instance_core__NativeArray*)var47)->values[1]=var56; { -var57 = ((val*(*)(val* self))(var47->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var47); /* native_to_s on */ +{ /* Inline typing$AExpr$mtype= (self,var3) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var3; /* _mtype on */ +RET_LABEL4:(void)0; } -varonce46 = var47; -{ -nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var57); /* Direct call typing#TypeVisitor#error on */ } -goto RET_LABEL; -} else { +RET_LABEL:; } -{ -var58 = core___core__SequenceRead___Collection__first(var_superprops); +/* method typing$ASelfExpr$its_variable for (self: ASelfExpr): nullable Variable */ +val* nitc__typing___ASelfExpr___AExpr__its_variable(val* self) { +val* var /* : nullable Variable */; +val* var1 /* : nullable Variable */; +var1 = self->attrs[COLOR_nitc__typing__ASelfExpr___its_variable].val; /* _its_variable on */ +var = var1; +RET_LABEL:; +return var; } -var_superprop = var58; -{ -{ /* Inline model#MMethodDef#msignature (var_superprop) on */ -var61 = var_superprop->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on */ -var59 = var61; -RET_LABEL60:(void)0; +/* method typing$ASelfExpr$its_variable= for (self: ASelfExpr, nullable Variable) */ +void nitc__typing___ASelfExpr___its_variable_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__ASelfExpr___its_variable].val = p0; /* _its_variable on */ +RET_LABEL:; } +/* method typing$ASelfExpr$accept_typing for (self: ASelfExpr, TypeVisitor) */ +void nitc__typing___ASelfExpr___AExpr__accept_typing(val* self, val* p0) { +val* var_v /* var v: TypeVisitor */; +short int var /* : Bool */; +short int var1 /* : Bool */; +short int var3 /* : Bool */; +short int var_ /* var : Bool */; +short int var4 /* : Bool */; +int cltype; +int idtype; +short int var5 /* : Bool */; +static val* varonce; +val* var6 /* : String */; +char* var7 /* : CString */; +val* var8 /* : String */; +val* var9 /* : nullable Int */; +val* var10 /* : nullable Int */; +val* var11 /* : nullable Bool */; +val* var12 /* : nullable Bool */; +val* var13 /* : Variable */; +val* var15 /* : Variable */; +val* var_variable /* var variable: Variable */; +val* var17 /* : nullable MType */; +var_v = p0; +{ +{ /* Inline typing$TypeVisitor$is_toplevel_context (var_v) on */ +var3 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___is_toplevel_context].s; /* _is_toplevel_context on */ +var1 = var3; +RET_LABEL2:(void)0; } -if (unlikely(var59 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1950); -fatal_exit(1); } -var_msignature = var59; -{ -var62 = nitc__typing___nitc__typing__TypeVisitor___resolve_for(var_v, var_msignature, var_recvtype, 1); +var_ = var1; +if (var1){ +/* isa AImplicitSelfExpr */ +cltype = type_nitc__AImplicitSelfExpr.color; +idtype = type_nitc__AImplicitSelfExpr.id; +if(cltype >= self->type->table_size) { +var4 = 0; +} else { +var4 = self->type->type_table[cltype] == idtype; } -/* isa MSignature */ -cltype64 = type_nitc__MSignature.color; -idtype65 = type_nitc__MSignature.id; -if(cltype64 >= var62->type->table_size) { -var63 = 0; +var5 = !var4; +var = var5; } else { -var63 = var62->type->type_table[cltype64] == idtype65; +var = var_; } -if (unlikely(!var63)) { -var_class_name = var62 == NULL ? "null" : var62->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MSignature", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1951); -fatal_exit(1); +if (var){ +if (likely(varonce!=NULL)) { +var6 = varonce; +} else { +var7 = "Error: `self` cannot be used in top-level method."; +var9 = (val*)(49l<<2|1); +var10 = (val*)(49l<<2|1); +var11 = (val*)((long)(0)<<2|3); +var12 = (val*)((long)(0)<<2|3); +var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12); +var6 = var8; +varonce = var6; } -var_msignature = var62; { -{ /* Inline parser_nodes#ASuperExpr#n_args (self) on */ -var68 = self->attrs[COLOR_nitc__parser_nodes__ASuperExpr___n_args].val; /* _n_args on */ -if (unlikely(var68 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2348); -fatal_exit(1); -} -var66 = var68; -RET_LABEL67:(void)0; -} +nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var6); /* Direct call typing$TypeVisitor$error on */ } -{ -var69 = nitc__typing___AExprs___to_a(var66); +} else { } -var_args = var69; { -{ /* Inline array#AbstractArrayRead#length (var_args) on */ -var72 = var_args->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on */ -var70 = var72; -RET_LABEL71:(void)0; -} +{ /* Inline typing$TypeVisitor$selfvariable (var_v) on */ +var15 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___selfvariable].val; /* _selfvariable on */ +if (unlikely(var15 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -{ -{ /* Inline kernel#Int#> (var70,0l) on */ -/* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */ -/* <0l:Int> isa OTHER */ -var75 = 1; /* easy <0l:Int> isa OTHER*/ -if (unlikely(!var75)) { -var_class_name78 = type_core__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name78); -PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 51); fatal_exit(1); } -var79 = var70 > 0l; -var73 = var79; -goto RET_LABEL74; -RET_LABEL74:(void)0; -} +var13 = var15; +RET_LABEL14:(void)0; } -if (var73){ -{ -var80 = nitc__typing___nitc__typing__TypeVisitor___check_signature(var_v, self, var_args, var_mproperty, var_msignature); } +var_variable = var13; { -{ /* Inline typing#ASuperExpr#signaturemap= (self,var80) on */ -self->attrs[COLOR_nitc__typing__ASuperExpr___signaturemap].val = var80; /* _signaturemap on */ -RET_LABEL81:(void)0; +{ /* Inline typing$ASelfExpr$its_variable= (self,var_variable) on */ +self->attrs[COLOR_nitc__typing__ASelfExpr___its_variable].val = var_variable; /* _its_variable on */ +RET_LABEL16:(void)0; } } -} else { +{ +var17 = nitc__typing___nitc__typing__TypeVisitor___get_variable(var_v, self, var_variable); } { -{ /* Inline model#MSignature#return_mtype (var_msignature) on */ -var84 = var_msignature->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on */ -var82 = var84; -RET_LABEL83:(void)0; +{ /* Inline typing$AExpr$mtype= (self,var17) on */ +self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var17; /* _mtype on */ +RET_LABEL18:(void)0; } } -{ -{ /* Inline typing#AExpr#mtype= (self,var82) on */ -self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var82; /* _mtype on */ -RET_LABEL85:(void)0; +RET_LABEL:; } +/* method typing$AImplicitSelfExpr$is_sys for (self: AImplicitSelfExpr): Bool */ +short int nitc__typing___AImplicitSelfExpr___is_sys(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = self->attrs[COLOR_nitc__typing__AImplicitSelfExpr___is_sys].s; /* _is_sys on */ +var = var1; +RET_LABEL:; +return var; } -{ -{ /* Inline typing#AExpr#is_typed= (self,1) on */ -self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on */ -RET_LABEL86:(void)0; +/* method typing$AImplicitSelfExpr$is_sys= for (self: AImplicitSelfExpr, Bool) */ +void nitc__typing___AImplicitSelfExpr___is_sys_61d(val* self, short int p0) { +self->attrs[COLOR_nitc__typing__AImplicitSelfExpr___is_sys].s = p0; /* _is_sys on */ +RET_LABEL:; } +/* method typing$ASendExpr$callsite for (self: ASendExpr): nullable CallSite */ +val* nitc__typing___ASendExpr___callsite(val* self) { +val* var /* : nullable CallSite */; +val* var1 /* : nullable CallSite */; +var1 = self->attrs[COLOR_nitc__typing__ASendExpr___callsite].val; /* _callsite on */ +var = var1; +RET_LABEL:; +return var; } -{ -{ /* Inline typing#TypeVisitor#mpropdef (var_v) on */ -var89 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mpropdef].val; /* _mpropdef on */ -var87 = var89; -RET_LABEL88:(void)0; +/* method typing$ASendExpr$callsite= for (self: ASendExpr, nullable CallSite) */ +void nitc__typing___ASendExpr___callsite_61d(val* self, val* p0) { +self->attrs[COLOR_nitc__typing__ASendExpr___callsite].val = p0; /* _callsite on */ +RET_LABEL:; } +/* method typing$ASendExpr$bad_expr_message for (self: ASendExpr, AExpr): nullable String */ +val* nitc__typing___ASendExpr___ANode__bad_expr_message(val* self, val* p0) { +val* var /* : nullable String */; +val* var_child /* var child: AExpr */; +val* var1 /* : AExpr */; +val* var3 /* : AExpr */; +short int var4 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var6 /* : Bool */; +short int var8 /* : Bool */; +val* var9 /* : NativeArray[String] */; +static val* varonce; +static val* varonce10; +val* var11 /* : String */; +char* var12 /* : CString */; +val* var13 /* : String */; +val* var14 /* : nullable Int */; +val* var15 /* : nullable Int */; +val* var16 /* : nullable Bool */; +val* var17 /* : nullable Bool */; +static val* varonce18; +val* var19 /* : String */; +char* var20 /* : CString */; +val* var21 /* : String */; +val* var22 /* : nullable Int */; +val* var23 /* : nullable Int */; +val* var24 /* : nullable Bool */; +val* var25 /* : nullable Bool */; +val* var26 /* : String */; +val* var27 /* : String */; +var_child = p0; +{ +{ /* Inline parser_nodes$ASendExpr$n_expr (self) on */ +var3 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on */ +if (unlikely(var3 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); } -if (var87 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1958); -fatal_exit(1); -} else { -{ /* Inline modelize_property#MPropDef#has_supercall= (var87,1) on */ -if (unlikely(var87 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 483); +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr"); +PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2103); fatal_exit(1); } -var87->attrs[COLOR_nitc__modelize_property__MPropDef___has_supercall].s = 1; /* _has_supercall on */ -RET_LABEL90:(void)0; +var1 = var3; +RET_LABEL2:(void)0; } } { -{ /* Inline typing#TypeVisitor#mpropdef (var_v) on */ -var93 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mpropdef].val; /* _mpropdef on */ -var91 = var93; -RET_LABEL92:(void)0; +{ /* Inline kernel$Object$== (var_child,var1) on */ +var_other = var1; +{ +{ /* Inline kernel$Object$is_same_instance (var_child,var_other) on */ +var8 = var_child == var_other; +var6 = var8; +goto RET_LABEL7; +RET_LABEL7:(void)0; } } -/* isa MMethodDef */ -cltype95 = type_nitc__MMethodDef.color; -idtype96 = type_nitc__MMethodDef.id; -if(var91 == NULL) { -var94 = 0; -} else { -if(cltype95 >= var91->type->table_size) { -var94 = 0; -} else { -var94 = var91->type->type_table[cltype95] == idtype96; +var4 = var6; +goto RET_LABEL5; +RET_LABEL5:(void)0; } } -if (unlikely(!var94)) { -var_class_name97 = var91 == NULL ? "null" : var91->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MMethodDef", var_class_name97); -PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1959); -fatal_exit(1); +if (var4){ +if (unlikely(varonce==NULL)) { +var9 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String); +if (likely(varonce10!=NULL)) { +var11 = varonce10; +} else { +var12 = "to be the receiver of `"; +var14 = (val*)(23l<<2|1); +var15 = (val*)(23l<<2|1); +var16 = (val*)((long)(0)<<2|3); +var17 = (val*)((long)(0)<<2|3); +var13 = core__flat___CString___to_s_unsafe(var12, var14, var15, var16, var17); +var11 = var13; +varonce10 = var11; +} +((struct instance_core__NativeArray*)var9)->values[0]=var11; +if (likely(varonce18!=NULL)) { +var19 = varonce18; +} else { +var20 = "`"; +var22 = (val*)(1l<<2|1); +var23 = (val*)(1l<<2|1); +var24 = (val*)((long)(0)<<2|3); +var25 = (val*)((long)(0)<<2|3); +var21 = core__flat___CString___to_s_unsafe(var20, var22, var23, var24, var25); +var19 = var21; +varonce18 = var19; +} +((struct instance_core__NativeArray*)var9)->values[2]=var19; +} else { +var9 = varonce; +varonce = NULL; } { -{ /* Inline typing#ASuperExpr#mpropdef= (self,var91) on */ -self->attrs[COLOR_nitc__typing__ASuperExpr___mpropdef].val = var91; /* _mpropdef on */ -RET_LABEL98:(void)0; +var26 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__typing__ASendExpr__property_name]))(self); /* property_name on */ } +((struct instance_core__NativeArray*)var9)->values[1]=var26; +{ +var27 = ((val*(*)(val* self))(var9->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var9); /* native_to_s on */ } -RET_LABEL:; +varonce = var9; +var = var27; +goto RET_LABEL; +} else { } -/* method typing#ASuperExpr#signaturemap for (self: ASuperExpr): nullable SignatureMap */ -val* nitc__typing___ASuperExpr___signaturemap(val* self) { -val* var /* : nullable SignatureMap */; -val* var1 /* : nullable SignatureMap */; -var1 = self->attrs[COLOR_nitc__typing__ASuperExpr___signaturemap].val; /* _signaturemap on */ -var = var1; +var = ((val*)NULL); +goto RET_LABEL; RET_LABEL:; return var; } -/* method typing#ASuperExpr#signaturemap= for (self: ASuperExpr, nullable SignatureMap) */ -void nitc__typing___ASuperExpr___signaturemap_61d(val* self, val* p0) { -self->attrs[COLOR_nitc__typing__ASuperExpr___signaturemap].val = p0; /* _signaturemap on */ -RET_LABEL:; -}