-var7 = 0; /* arg is null but recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#== (var6,((val*)NULL)) on <var6:nullable MType> */
-var_other = ((val*)NULL);
-{
-{ /* Inline kernel#Object#is_same_instance (var6,var_other) on <var6:nullable MType(MType)> */
-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#AExpr#is_typed (var_n) on <var_n:ANode(AExpr)> */
-var16 = var_n->attrs[COLOR_nitc__typing__AExpr___is_typed].s; /* _is_typed on <var_n:ANode(AExpr)> */
-var14 = var16;
-RET_LABEL15:(void)0;
-}
-}
-var17 = !var14;
-var3 = var17;
-} else {
-var3 = var_13;
-}
-if (var3){
-{
-{ /* Inline modelbuilder_base#ANode#is_broken= (var_n,1) on <var_n:ANode(AExpr)> */
-var_n->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s = 1; /* _is_broken on <var_n:ANode(AExpr)> */
-RET_LABEL18:(void)0;
-}
-}
-} else {
-}
-RET_LABEL:;
-}
-/* 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 <self:PostTypingVisitor>*/
-}
-RET_LABEL:;
-}
-/* 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:;
-}
-/* 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 var_ /* var : 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 */;
-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 /* : NativeString */;
-val* var62 /* : String */;
-var_modelbuilder = p0;
-{
-{ /* Inline modelize_property#AAttrPropdef#has_value (self) on <self:AAttrPropdef> */
-var2 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___has_value].s; /* _has_value on <self:AAttrPropdef> */
-var = var2;
-RET_LABEL1:(void)0;
-}
-}
-var3 = !var;
-if (var3){
-goto RET_LABEL;
-} else {
-}
-{
-{ /* Inline modelize_property#AAttrPropdef#mreadpropdef (self) on <self:AAttrPropdef> */
-var6 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mreadpropdef].val; /* _mreadpropdef on <self:AAttrPropdef> */
-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_mpropdef:nullable MMethodDef> */
-var_other = ((val*)NULL);
-{
-{ /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
-var13 = var_mpropdef == var_other;
-var11 = var13;
-goto RET_LABEL12;
-RET_LABEL12:(void)0;
-}
-}
-var9 = var11;
-goto RET_LABEL10;
-RET_LABEL10:(void)0;
-}
-var8 = var9;
-}
-var_ = var8;
-if (var8){
-var7 = var_;
-} else {
-{
-{ /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
-var16 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
-var14 = var16;
-RET_LABEL15:(void)0;
-}
-}
-if (var14 == NULL) {
-var17 = 1; /* is null */
-} else {
-var17 = 0; /* arg is null but recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#== (var14,((val*)NULL)) on <var14:nullable MSignature> */
-var_other = ((val*)NULL);
-{
-{ /* Inline kernel#Object#is_same_instance (var14,var_other) on <var14:nullable MSignature(MSignature)> */
-var22 = var14 == var_other;
-var20 = var22;
-goto RET_LABEL21;
-RET_LABEL21:(void)0;
-}
-}
-var18 = var20;
-goto RET_LABEL19;
-RET_LABEL19:(void)0;
-}
-var17 = var18;
-}
-var7 = var17;
-}
-if (var7){
-goto RET_LABEL;
-} else {
-}
-var23 = NEW_nitc__typing__TypeVisitor(&type_nitc__typing__TypeVisitor);
-{
-{ /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
-var26 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
-if (unlikely(var26 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
-fatal_exit(1);
-}
-var24 = var26;
-RET_LABEL25:(void)0;
-}
-}
-{
-{ /* Inline model#MClassDef#mmodule (var24) on <var24:MClassDef> */
-var29 = var24->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var24:MClassDef> */
-if (unlikely(var29 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
-fatal_exit(1);
-}
-var27 = var29;
-RET_LABEL28:(void)0;
-}
-}
-{
-((void(*)(val* self, val* p0))(var23->class->vft[COLOR_nitc__typing__TypeVisitor__modelbuilder_61d]))(var23, var_modelbuilder); /* modelbuilder= on <var23:TypeVisitor>*/
-}
-{
-((void(*)(val* self, val* p0))(var23->class->vft[COLOR_nitc__typing__TypeVisitor__mmodule_61d]))(var23, var27); /* mmodule= on <var23:TypeVisitor>*/
-}
-{
-((void(*)(val* self, val* p0))(var23->class->vft[COLOR_nitc__typing__TypeVisitor__mpropdef_61d]))(var23, var_mpropdef); /* mpropdef= on <var23:TypeVisitor>*/
-}
-{
-((void(*)(val* self))(var23->class->vft[COLOR_core__kernel__Object__init]))(var23); /* init on <var23:TypeVisitor>*/
-}
-var_v = var23;
-{
-{ /* Inline typing#TypeVisitor#selfvariable (var_v) on <var_v:TypeVisitor> */
-var32 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___selfvariable].val; /* _selfvariable on <var_v:TypeVisitor> */
-if (unlikely(var32 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 51);
-fatal_exit(1);
-}
-var30 = var32;
-RET_LABEL31:(void)0;
-}
-}
-{
-{ /* Inline typing#APropdef#selfvariable= (self,var30) on <self:AAttrPropdef> */
-self->attrs[COLOR_nitc__typing__APropdef___selfvariable].val = var30; /* _selfvariable on <self:AAttrPropdef> */
-RET_LABEL33:(void)0;
-}
-}
-{
-{ /* Inline parser_nodes#AAttrPropdef#n_expr (self) on <self:AAttrPropdef> */
-var36 = self->attrs[COLOR_nitc__parser_nodes__AAttrPropdef___n_expr].val; /* _n_expr on <self:AAttrPropdef> */
-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_nexpr:nullable AExpr> */
-var_other40 = ((val*)NULL);
-{
-var41 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other40); /* == on <var_nexpr:nullable AExpr(AExpr)>*/
-}
-var42 = !var41;
-var38 = var42;
-goto RET_LABEL39;
-RET_LABEL39:(void)0;
-}
-var37 = var38;
-}
-if (var37){
-{
-{ /* Inline modelize_property#AAttrPropdef#mtype (self) on <self:AAttrPropdef> */
-var45 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mtype].val; /* _mtype on <self:AAttrPropdef> */
-var43 = var45;
-RET_LABEL44:(void)0;
-}
-}
-var_mtype = var43;
-{
-var46 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var_nexpr, var_mtype);
-}
-} else {
-}
-{
-{ /* Inline parser_nodes#AAttrPropdef#n_block (self) on <self:AAttrPropdef> */
-var49 = self->attrs[COLOR_nitc__parser_nodes__AAttrPropdef___n_block].val; /* _n_block on <self:AAttrPropdef> */
-var47 = var49;
-RET_LABEL48:(void)0;
-}
-}
-var_nblock = var47;
-if (var_nblock == NULL) {
-var50 = 0; /* is null */
-} else {
-var50 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_nblock,((val*)NULL)) on <var_nblock:nullable AExpr> */
-var_other40 = ((val*)NULL);
-{
-var53 = ((short int(*)(val* self, val* p0))(var_nblock->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nblock, var_other40); /* == on <var_nblock:nullable AExpr(AExpr)>*/
-}
-var54 = !var53;
-var51 = var54;
-goto RET_LABEL52;
-RET_LABEL52:(void)0;
-}
-var50 = var51;
-}
-if (var50){
-{
-nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var_nblock); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
-}
-{
-{ /* Inline flow#AExpr#after_flow_context (var_nblock) on <var_nblock:nullable AExpr(AExpr)> */
-var57 = var_nblock->attrs[COLOR_nitc__flow__AExpr___after_flow_context].val; /* _after_flow_context on <var_nblock:nullable AExpr(AExpr)> */
-var55 = var57;
-RET_LABEL56:(void)0;
-}
-}
-if (var55 == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 826);
-fatal_exit(1);
-} else {
-var58 = nitc___nitc__FlowContext___is_unreachable(var55);
-}
-var59 = !var58;
-if (var59){
-if (likely(varonce!=NULL)) {
-var60 = varonce;
-} else {
-var61 = "Error: reached end of block; expected `return`.";
-var62 = core__flat___NativeString___to_s_full(var61, 47l, 47l);
-var60 = var62;
-varonce = var60;
-}
-{
-nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var60); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
-}
-} else {
-}
-} else {
-}
-RET_LABEL:;
-}
-/* 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 <self:AExpr> */
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* 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 <self:AExpr> */
-RET_LABEL:;
-}
-/* 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 <self:AExpr> */
-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 <self:AExpr> */
-RET_LABEL:;
-}
-/* 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 <self:AExpr> */
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* 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 <self:AExpr> */
-RET_LABEL:;
-}
-/* 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 /* : NativeString */;
-val* var4 /* : String */;
-val* var5 /* : String */;
-val* var6 /* : String */;
-var_v = p0;
-if (unlikely(varonce==NULL)) {
-var = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
-if (likely(varonce1!=NULL)) {
-var2 = varonce1;
-} else {
-var3 = "no implemented accept_typing for ";
-var4 = core__flat___NativeString___to_s_full(var3, 33l, 33l);
-var2 = var4;
-varonce1 = var2;
-}
-((struct instance_core__NativeArray*)var)->values[0]=var2;
-} else {
-var = varonce;
-varonce = NULL;
-}
-{
-var5 = core__abstract_text___Object___class_name(self);
-}
-((struct instance_core__NativeArray*)var)->values[1]=var5;
-{
-var6 = ((val*(*)(val* self))(var->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var); /* native_to_s on <var:NativeArray[String]>*/
-}
-varonce = var;
-{
-nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var6); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
-}
-RET_LABEL:;
-}
-/* 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 <self:AExpr> */
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* 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 <self:AExpr> */
-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 <self:AExpr> */
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* 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 <self:AExpr> */
-RET_LABEL:;
-}
-/* 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 <self:ABlockExpr> */
-var2 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
-if (unlikely(var2 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1744);
-fatal_exit(1);
-}
-var = var2;
-RET_LABEL1:(void)0;
-}
-}
-var_ = var;
-{
-var3 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
-}
-var_4 = var3;
-for(;;) {
-{
-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 <var_4:Iterator[AExpr]>*/
-}
-if (var5){
-} else {
-goto BREAK_label;
-}
-{
-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 <var_4:Iterator[AExpr]>*/
-}
-var_e = var6;
-{
-nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var_e); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
-}
-{
-((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 <var_4:Iterator[AExpr]>*/
-}
-}
-BREAK_label: (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 <var_4:Iterator[AExpr]>*/
-}
-{
-{ /* Inline typing#AExpr#is_typed= (self,1) on <self:ABlockExpr> */
-self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:ABlockExpr> */
-RET_LABEL7:(void)0;
-}
-}
-RET_LABEL:;
-}
-/* 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* var5 /* : ANodes[AExpr] */;
-val* var7 /* : ANodes[AExpr] */;
-val* var8 /* : nullable Object */;
-val* var9 /* : nullable MType */;
-{
-{ /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
-var3 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1744);
-fatal_exit(1);
-}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-}
-{
-var4 = nitc___nitc__ANodes___core__abstract_collection__Collection__is_empty(var1);
-}
-if (var4){
-var = ((val*)NULL);
-goto RET_LABEL;
-} else {
-}
-{
-{ /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
-var7 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
-if (unlikely(var7 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1744);
-fatal_exit(1);
-}
-var5 = var7;
-RET_LABEL6:(void)0;
-}
-}
-{
-var8 = core___core__SequenceRead___last(var5);
-}
-{
-var9 = ((val*(*)(val* self))(var8->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var8); /* mtype on <var8:nullable Object(AExpr)>*/
-}
-var = var9;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* 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 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 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 /* : NativeString */;
-val* var56 /* : String */;
-val* var58 /* : NativeArray[String] */;
-static val* varonce57;
-static val* varonce59;
-val* var60 /* : String */;
-char* var61 /* : NativeString */;
-val* var62 /* : String */;
-static val* varonce63;
-val* var64 /* : String */;
-char* var65 /* : NativeString */;
-val* var66 /* : String */;
-val* var67 /* : String */;
-val* var69 /* : String */;
-val* var70 /* : String */;
-val* var71 /* : nullable MType */;
-short int var72 /* : Bool */;
-short int var73 /* : Bool */;
-short int var75 /* : Bool */;
-short int var77 /* : Bool */;
-val* var_decltype /* var decltype: nullable MType */;
-short int var78 /* : Bool */;
-short int var79 /* : Bool */;
-short int var80 /* : Bool */;
-short int var82 /* : Bool */;
-short int var84 /* : Bool */;
-short int var_ /* var : Bool */;
-short int var85 /* : Bool */;
-int cltype;
-int idtype;
-static val* varonce86;
-val* var87 /* : String */;
-char* var88 /* : NativeString */;
-val* var89 /* : String */;
-val* var90 /* : nullable MClass */;
-val* var_objclass /* var objclass: nullable MClass */;
-short int var91 /* : Bool */;
-short int var92 /* : Bool */;
-short int var94 /* : Bool */;
-short int var96 /* : Bool */;
-val* var97 /* : MClassType */;
-val* var99 /* : MClassType */;
-val* var100 /* : MType */;
-short int var101 /* : Bool */;
-short int var102 /* : Bool */;
-short int var104 /* : Bool */;
-short int var106 /* : Bool */;
-var_v = p0;
-{
-{ /* Inline scope#AVardeclExpr#variable (self) on <self:AVardeclExpr> */
-var2 = self->attrs[COLOR_nitc__scope__AVardeclExpr___variable].val; /* _variable on <self:AVardeclExpr> */
-var = var2;
-RET_LABEL1:(void)0;
-}
-}
-var_variable = var;
-if (var_variable == NULL) {
-var3 = 1; /* is null */
-} else {
-var3 = 0; /* arg is null but recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#== (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
-var_other = ((val*)NULL);
-{
-{ /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
-var8 = var_variable == var_other;
-var6 = var8;
-goto RET_LABEL7;
-RET_LABEL7:(void)0;
-}
-}
-var4 = var6;
-goto RET_LABEL5;
-RET_LABEL5:(void)0;
-}
-var3 = var4;
-}
-if (var3){
-goto RET_LABEL;
-} else {
-}
-{
-{ /* Inline parser_nodes#AVardeclExpr#n_type (self) on <self:AVardeclExpr> */
-var11 = self->attrs[COLOR_nitc__parser_nodes__AVardeclExpr___n_type].val; /* _n_type on <self:AVardeclExpr> */
-var9 = var11;
-RET_LABEL10:(void)0;
-}
-}
-var_ntype = var9;
-if (var_ntype == NULL) {
-var12 = 1; /* is null */
-} else {
-var12 = 0; /* arg is null but recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#== (var_ntype,((val*)NULL)) on <var_ntype:nullable AType> */
-var_other = ((val*)NULL);
-{
-{ /* Inline kernel#Object#is_same_instance (var_ntype,var_other) on <var_ntype:nullable AType(AType)> */
-var17 = var_ntype == var_other;
-var15 = var17;
-goto RET_LABEL16;
-RET_LABEL16:(void)0;
-}
-}
-var13 = var15;
-goto RET_LABEL14;
-RET_LABEL14:(void)0;
-}
-var12 = var13;
-}
-if (var12){
-var_mtype = ((val*)NULL);
-} else {
-{
-var18 = nitc__typing___nitc__typing__TypeVisitor___resolve_mtype(var_v, var_ntype);
-}
-var_mtype = var18;
-if (var_mtype == NULL) {
-var19 = 1; /* is null */
-} else {
-var19 = 0; /* arg is null but recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
-var_other = ((val*)NULL);
-{
-{ /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
-var24 = var_mtype == var_other;
-var22 = var24;
-goto RET_LABEL23;
-RET_LABEL23:(void)0;
-}
-}
-var20 = var22;
-goto RET_LABEL21;
-RET_LABEL21:(void)0;
-}
-var19 = var20;
-}
-if (var19){
-goto RET_LABEL;
-} else {
-}
-}
-{
-{ /* Inline parser_nodes#AVardeclExpr#n_expr (self) on <self:AVardeclExpr> */
-var27 = self->attrs[COLOR_nitc__parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on <self:AVardeclExpr> */
-var25 = var27;
-RET_LABEL26:(void)0;
-}
-}
-var_nexpr = var25;
-if (var_nexpr == NULL) {
-var28 = 0; /* is null */
-} else {
-var28 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
-var_other31 = ((val*)NULL);
-{
-var32 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other31); /* == on <var_nexpr:nullable AExpr(AExpr)>*/
-}
-var33 = !var32;
-var29 = var33;
-goto RET_LABEL30;
-RET_LABEL30:(void)0;
-}
-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_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
-var_other31 = ((val*)NULL);
-{
-var37 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mtype, var_other31); /* == on <var_mtype:nullable MType(MType)>*/
-}
-var38 = !var37;
-var35 = var38;
-goto RET_LABEL36;
-RET_LABEL36:(void)0;
-}
-var34 = var35;
-}
-if (var34){
-{
-var39 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var_nexpr, var_mtype);
-}
-var_etype = var39;
-if (var_etype == NULL) {
-var40 = 0; /* <var_mtype:nullable MType(MType)> cannot be null */
-} else {
-{ /* Inline kernel#Object#== (var_etype,var_mtype) on <var_etype:nullable MType> */
-var_other = var_mtype;
-{
-{ /* Inline kernel#Object#is_same_instance (var_etype,var_other) on <var_etype:nullable MType(MType)> */
-var45 = var_etype == var_other;
-var43 = var45;
-goto RET_LABEL44;
-RET_LABEL44:(void)0;
-}
-}
-var41 = var43;
-goto RET_LABEL42;
-RET_LABEL42:(void)0;
-}
-var40 = var41;
-}
-if (var40){
-if (var_ntype == NULL) {
-var46 = 0; /* is null */
-} else {
-var46 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_ntype,((val*)NULL)) on <var_ntype:nullable AType> */
-var_other31 = ((val*)NULL);
-{
-var49 = ((short int(*)(val* self, val* p0))(var_ntype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ntype, var_other31); /* == on <var_ntype:nullable AType(AType)>*/
-}
-var50 = !var49;
-var47 = var50;
-goto RET_LABEL48;
-RET_LABEL48:(void)0;
-}
-var46 = var47;
-}
-if (unlikely(!var46)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 911);
-fatal_exit(1);
-}
-{
-{ /* Inline typing#TypeVisitor#modelbuilder (var_v) on <var_v:TypeVisitor> */
-var53 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___modelbuilder].val; /* _modelbuilder on <var_v:TypeVisitor> */
-if (unlikely(var53 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 35);
-fatal_exit(1);
-}
-var51 = var53;
-RET_LABEL52:(void)0;
-}
-}
-if (likely(varonce!=NULL)) {
-var54 = varonce;
-} else {
-var55 = "useless-type";
-var56 = core__flat___NativeString___to_s_full(var55, 12l, 12l);
-var54 = var56;
-varonce = var54;
-}
-if (unlikely(varonce57==NULL)) {
-var58 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
-if (likely(varonce59!=NULL)) {
-var60 = varonce59;
-} else {
-var61 = "Warning: useless type definition for variable `";
-var62 = core__flat___NativeString___to_s_full(var61, 47l, 47l);
-var60 = var62;
-varonce59 = var60;
-}
-((struct instance_core__NativeArray*)var58)->values[0]=var60;
-if (likely(varonce63!=NULL)) {
-var64 = varonce63;
-} else {
-var65 = "`";
-var66 = core__flat___NativeString___to_s_full(var65, 1l, 1l);
-var64 = var66;
-varonce63 = var64;
-}
-((struct instance_core__NativeArray*)var58)->values[2]=var64;
-} else {
-var58 = varonce57;
-varonce57 = NULL;
-}
-{
-{ /* Inline scope#Variable#name (var_variable) on <var_variable:nullable Variable(Variable)> */
-var69 = var_variable->attrs[COLOR_nitc__scope__Variable___name].val; /* _name on <var_variable:nullable Variable(Variable)> */
-if (unlikely(var69 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope, 36);
-fatal_exit(1);
-}
-var67 = var69;
-RET_LABEL68:(void)0;
-}
-}
-((struct instance_core__NativeArray*)var58)->values[1]=var67;
-{
-var70 = ((val*(*)(val* self))(var58->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var58); /* native_to_s on <var58:NativeArray[String]>*/
-}
-varonce57 = var58;
-{
-nitc___nitc__ModelBuilder___advice(var51, var_ntype, var54, var70); /* Direct call modelbuilder_base#ModelBuilder#advice on <var51:ModelBuilder>*/
-}
-} else {
-}
-} else {
-{
-var71 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var_nexpr);
-}
-var_mtype = var71;
-if (var_mtype == NULL) {
-var72 = 1; /* is null */
-} else {
-var72 = 0; /* arg is null but recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
-var_other = ((val*)NULL);
-{
-{ /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
-var77 = var_mtype == var_other;
-var75 = var77;
-goto RET_LABEL76;
-RET_LABEL76:(void)0;
-}
-}
-var73 = var75;
-goto RET_LABEL74;
-RET_LABEL74:(void)0;
-}
-var72 = var73;
-}
-if (var72){
-goto RET_LABEL;
-} else {
-}
-}
-} else {
-}
-var_decltype = var_mtype;
-if (var_mtype == NULL) {
-var79 = 1; /* is null */
-} else {
-var79 = 0; /* arg is null but recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
-var_other = ((val*)NULL);
-{
-{ /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
-var84 = var_mtype == var_other;
-var82 = var84;
-goto RET_LABEL83;
-RET_LABEL83:(void)0;
-}
-}
-var80 = var82;
-goto RET_LABEL81;
-RET_LABEL81:(void)0;
-}
-var79 = var80;
-}
-var_ = var79;
-if (var79){
-var78 = var_;
-} else {
-/* <var_mtype:nullable MType(MType)> isa MNullType */
-cltype = type_nitc__MNullType.color;
-idtype = type_nitc__MNullType.id;
-if(cltype >= var_mtype->type->table_size) {
-var85 = 0;
-} else {
-var85 = var_mtype->type->type_table[cltype] == idtype;
-}
-var78 = var85;
-}
-if (var78){
-if (likely(varonce86!=NULL)) {
-var87 = varonce86;
-} else {
-var88 = "Object";
-var89 = core__flat___NativeString___to_s_full(var88, 6l, 6l);
-var87 = var89;
-varonce86 = var87;
-}
-{
-var90 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var87);
-}
-var_objclass = var90;
-if (var_objclass == NULL) {
-var91 = 1; /* is null */
-} else {
-var91 = 0; /* arg is null but recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#== (var_objclass,((val*)NULL)) on <var_objclass:nullable MClass> */
-var_other = ((val*)NULL);
-{
-{ /* Inline kernel#Object#is_same_instance (var_objclass,var_other) on <var_objclass:nullable MClass(MClass)> */
-var96 = var_objclass == var_other;
-var94 = var96;
-goto RET_LABEL95;
-RET_LABEL95:(void)0;
-}
-}
-var92 = var94;
-goto RET_LABEL93;
-RET_LABEL93:(void)0;
-}
-var91 = var92;
-}
-if (var91){
-goto RET_LABEL;
-} else {
-}
-{
-{ /* Inline model#MClass#mclass_type (var_objclass) on <var_objclass:nullable MClass(MClass)> */
-var99 = var_objclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_objclass:nullable MClass(MClass)> */
-if (unlikely(var99 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 507);
-fatal_exit(1);
-}
-var97 = var99;
-RET_LABEL98:(void)0;
-}
-}
-{
-var100 = nitc___nitc__MType___as_nullable(var97);
-}
-var_decltype = var100;
-if (var_mtype == NULL) {
-var101 = 1; /* is null */
-} else {
-var101 = 0; /* arg is null but recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType(nullable MNullType)> */
-var_other = ((val*)NULL);
-{
-{ /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MNullType(MNullType)> */
-var106 = var_mtype == var_other;
-var104 = var106;
-goto RET_LABEL105;
-RET_LABEL105:(void)0;
-}
-}
-var102 = var104;
-goto RET_LABEL103;
-RET_LABEL103:(void)0;
-}
-var101 = var102;
-}
-if (var101){
-var_mtype = var_decltype;
-} else {
-}
-} else {
-}
-{
-{ /* Inline typing#Variable#declared_type= (var_variable,var_decltype) on <var_variable:nullable Variable(Variable)> */
-var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val = var_decltype; /* _declared_type on <var_variable:nullable Variable(Variable)> */
-RET_LABEL107:(void)0;
-}
-}
-{
-nitc__typing___nitc__typing__TypeVisitor___set_variable(var_v, self, var_variable, var_mtype); /* Direct call typing#TypeVisitor#set_variable on <var_v:TypeVisitor>*/
-}
-{
-{ /* Inline typing#AExpr#mtype= (self,var_mtype) on <self:AVardeclExpr> */
-self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_mtype; /* _mtype on <self:AVardeclExpr> */
-RET_LABEL108:(void)0;
-}
-}
-{
-{ /* Inline typing#AExpr#is_typed= (self,1) on <self:AVardeclExpr> */
-self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:AVardeclExpr> */
-RET_LABEL109:(void)0;
-}
-}
-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 */;
-{
-{ /* Inline scope#AVarFormExpr#variable (self) on <self:AVarExpr> */
-var3 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarExpr> */
-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;
-{
-{ /* Inline scope#AVarFormExpr#variable (self) on <self:AVarExpr> */
-var2 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarExpr> */
-var = var2;
-RET_LABEL1:(void)0;
-}
-}
-var_variable = var;
-if (var_variable == NULL) {
-var3 = 1; /* is null */
-} else {
-var3 = 0; /* arg is null but recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#== (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
-var_other = ((val*)NULL);
-{
-{ /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
-var8 = var_variable == var_other;
-var6 = var8;
-goto RET_LABEL7;
-RET_LABEL7:(void)0;
-}
-}
-var4 = var6;
-goto RET_LABEL5;
-RET_LABEL5:(void)0;
-}
-var3 = var4;
-}
-if (var3){
-goto RET_LABEL;
-} else {
-}
-{
-var9 = nitc__typing___nitc__typing__TypeVisitor___get_variable(var_v, self, var_variable);
-}
-var_mtype = var9;
-if (var_mtype == NULL) {
-var10 = 0; /* is null */
-} else {
-var10 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
-var_other13 = ((val*)NULL);
-{
-var14 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mtype, var_other13); /* == on <var_mtype:nullable MType(MType)>*/
-}
-var15 = !var14;
-var11 = var15;
-goto RET_LABEL12;
-RET_LABEL12:(void)0;
-}
-var10 = var11;
-}
-if (var10){
-} else {
-}
-{
-{ /* Inline typing#AExpr#mtype= (self,var_mtype) on <self:AVarExpr> */
-self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_mtype; /* _mtype on <self:AVarExpr> */
-RET_LABEL16:(void)0;
-}