+{
+{ /* Inline model#MClass#visibility (var34) on <var34:MClass> */
+var39 = var34->attrs[COLOR_model__MClass___visibility].val; /* _visibility on <var34:MClass> */
+if (unlikely(var39 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 375);
+show_backtrace(1);
+}
+var37 = var39;
+RET_LABEL38:(void)0;
+}
+}
+{
+model__MMethod__init(var28, var_mclassdef, var30, var37); /* Direct call model#MMethod#init on <var28:MMethod>*/
+}
+var_mprop = var28;
+var40 = 1;
+{
+{ /* Inline model#MMethod#is_root_init= (var_mprop,var40) on <var_mprop:MMethod> */
+var_mprop->attrs[COLOR_model__MMethod___is_root_init].s = var40; /* _is_root_init on <var_mprop:MMethod> */
+RET_LABEL41:(void)0;
+}
+}
+var42 = NEW_model__MMethodDef(&type_model__MMethodDef);
+{
+{ /* Inline parser_nodes#ANode#location (var_nclassdef) on <var_nclassdef:AClassdef> */
+var45 = var_nclassdef->attrs[COLOR_parser_nodes__ANode___location].val; /* _location on <var_nclassdef:AClassdef> */
+if (unlikely(var45 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 23);
+show_backtrace(1);
+}
+var43 = var45;
+RET_LABEL44:(void)0;
+}
+}
+{
+model__MMethodDef__init(var42, var_mclassdef, var_mprop, var43); /* Direct call model#MMethodDef#init on <var42:MMethodDef>*/
+}
+var_mpropdef = var42;
+var46 = NEW_array__Array(&type_array__Arraymodel__MParameter);
+{
+((void (*)(val*))(var46->class->vft[COLOR_kernel__Object__init]))(var46) /* init on <var46:Array[MParameter]>*/;
+}
+var_mparameters = var46;
+var47 = NEW_model__MSignature(&type_model__MSignature);
+var48 = NULL;
+{
+model__MSignature__init(var47, var_mparameters, var48); /* Direct call model#MSignature#init on <var47:MSignature>*/
+}
+var_msignature = var47;
+{
+{ /* Inline model#MMethodDef#msignature= (var_mpropdef,var_msignature) on <var_mpropdef:MMethodDef> */
+var_mpropdef->attrs[COLOR_model__MMethodDef___msignature].val = var_msignature; /* _msignature on <var_mpropdef:MMethodDef> */
+RET_LABEL49:(void)0;
+}
+}
+{
+{ /* Inline model#MMethodDef#new_msignature= (var_mpropdef,var_msignature) on <var_mpropdef:MMethodDef> */
+var_mpropdef->attrs[COLOR_model__MMethodDef___new_msignature].val = var_msignature; /* _new_msignature on <var_mpropdef:MMethodDef> */
+RET_LABEL50:(void)0;
+}
+}
+var51 = 1;
+{
+{ /* Inline model#MMethod#is_init= (var_mprop,var51) on <var_mprop:MMethod> */
+var_mprop->attrs[COLOR_model__MMethod___is_init].s = var51; /* _is_init on <var_mprop:MMethod> */
+RET_LABEL52:(void)0;
+}
+}
+{
+{ /* Inline modelize_property#AClassdef#mfree_init= (var_nclassdef,var_mpropdef) on <var_nclassdef:AClassdef> */
+var_nclassdef->attrs[COLOR_modelize_property__AClassdef___mfree_init].val = var_mpropdef; /* _mfree_init on <var_nclassdef:AClassdef> */
+RET_LABEL53:(void)0;
+}
+}
+{
+{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
+var56 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
+if (unlikely(var56 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
+PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
+show_backtrace(1);
+}
+var54 = var56;
+RET_LABEL55:(void)0;
+}
+}
+if (varonce57) {
+var58 = varonce57;
+} else {
+var59 = " gets a free empty constructor ";
+var60 = 31;
+var61 = string__NativeString__to_s_with_length(var59, var60);
+var58 = var61;
+varonce57 = var58;
+}
+var62 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var62 = array_instance Array[Object] */
+var63 = 4;
+var64 = NEW_array__NativeArray(var63, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var64)->values[0] = (val*) var_mclassdef;
+((struct instance_array__NativeArray*)var64)->values[1] = (val*) var58;
+((struct instance_array__NativeArray*)var64)->values[2] = (val*) var_mpropdef;
+((struct instance_array__NativeArray*)var64)->values[3] = (val*) var_msignature;
+{
+((void (*)(val*, val*, long))(var62->class->vft[COLOR_array__Array__with_native]))(var62, var64, var63) /* with_native on <var62:Array[Object]>*/;
+}
+}
+{
+var65 = ((val* (*)(val*))(var62->class->vft[COLOR_string__Object__to_s]))(var62) /* to_s on <var62:Array[Object]>*/;
+}
+var66 = 3;
+{
+toolcontext__ToolContext__info(var54, var65, var66); /* Direct call toolcontext#ToolContext#info on <var54:ToolContext>*/
+}
+{
+{ /* Inline modelize_property#ModelBuilder#the_root_init_mmethod= (self,var_mprop) on <self:ModelBuilder> */
+self->attrs[COLOR_modelize_property__ModelBuilder___the_root_init_mmethod].val = var_mprop; /* _the_root_init_mmethod on <self:ModelBuilder> */
+RET_LABEL67:(void)0;
+}
+}
+goto RET_LABEL;
+} else {
+}
+{
+{ /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
+var70 = var_mclassdef->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
+if (unlikely(var70 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
+show_backtrace(1);
+}
+var68 = var70;
+RET_LABEL69:(void)0;
+}
+}
+{
+{ /* Inline model#MClass#kind (var68) on <var68:MClass> */
+var73 = var68->attrs[COLOR_model__MClass___kind].val; /* _kind on <var68:MClass> */
+if (unlikely(var73 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
+show_backtrace(1);
+}
+var71 = var73;
+RET_LABEL72:(void)0;
+}
+}
+{
+{ /* Inline model#MClassKind#need_init (var71) on <var71:MClassKind> */
+var76 = var71->attrs[COLOR_model__MClassKind___need_init].s; /* _need_init on <var71:MClassKind> */
+var74 = var76;
+RET_LABEL75:(void)0;
+}
+}
+var77 = !var74;
+if (var77){
+goto RET_LABEL;
+} else {
+}
+var78 = NULL;
+var_defined_init = var78;
+{
+{ /* Inline model#MClassDef#mpropdefs (var_mclassdef) on <var_mclassdef:MClassDef> */
+var81 = var_mclassdef->attrs[COLOR_model__MClassDef___mpropdefs].val; /* _mpropdefs on <var_mclassdef:MClassDef> */
+if (unlikely(var81 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 591);
+show_backtrace(1);
+}
+var79 = var81;
+RET_LABEL80:(void)0;
+}
+}
+var_82 = var79;
+{
+var83 = array__AbstractArrayRead__iterator(var_82);
+}
+var_84 = var83;
+for(;;) {
+{
+var85 = array__ArrayIterator__is_ok(var_84);
+}
+if (var85){
+{
+var86 = array__ArrayIterator__item(var_84);
+}
+var_mpropdef87 = var86;
+/* <var_mpropdef87:MPropDef> isa MMethodDef */
+cltype = type_model__MMethodDef.color;
+idtype = type_model__MMethodDef.id;
+if(cltype >= var_mpropdef87->type->table_size) {
+var88 = 0;
+} else {
+var88 = var_mpropdef87->type->type_table[cltype] == idtype;
+}
+var89 = !var88;
+if (var89){
+goto BREAK_label;
+} else {
+}
+{
+{ /* Inline model#MPropDef#mproperty (var_mpropdef87) on <var_mpropdef87:MPropDef(MMethodDef)> */
+var92 = var_mpropdef87->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef87:MPropDef(MMethodDef)> */
+if (unlikely(var92 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
+show_backtrace(1);
+}
+var90 = var92;
+RET_LABEL91:(void)0;
+}
+}
+{
+{ /* Inline model#MMethod#is_init (var90) on <var90:MProperty(MMethod)> */
+var95 = var90->attrs[COLOR_model__MMethod___is_init].s; /* _is_init on <var90:MProperty(MMethod)> */
+var93 = var95;
+RET_LABEL94:(void)0;
+}
+}
+var96 = !var93;
+if (var96){
+goto BREAK_label;
+} else {
+}
+{
+{ /* Inline model#MPropDef#mproperty (var_mpropdef87) on <var_mpropdef87:MPropDef(MMethodDef)> */
+var99 = var_mpropdef87->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef87:MPropDef(MMethodDef)> */
+if (unlikely(var99 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
+show_backtrace(1);
+}
+var97 = var99;
+RET_LABEL98:(void)0;
+}
+}
+{
+{ /* Inline model#MMethod#is_root_init (var97) on <var97:MProperty(MMethod)> */
+var102 = var97->attrs[COLOR_model__MMethod___is_root_init].s; /* _is_root_init on <var97:MProperty(MMethod)> */
+var100 = var102;
+RET_LABEL101:(void)0;
+}
+}
+if (var100){
+var103 = NULL;
+if (var_defined_init == NULL) {
+var104 = 1; /* is null */
+} else {
+var104 = 0; /* arg is null but recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#== (var_defined_init,var103) on <var_defined_init:nullable MMethodDef> */
+var_other = var103;
+{
+{ /* Inline kernel#Object#is_same_instance (var_defined_init,var_other) on <var_defined_init:nullable MMethodDef(MMethodDef)> */
+var109 = var_defined_init == var_other;
+var107 = var109;
+goto RET_LABEL108;
+RET_LABEL108:(void)0;
+}
+}
+var105 = var107;
+goto RET_LABEL106;
+RET_LABEL106:(void)0;
+}
+var104 = var105;
+}
+if (unlikely(!var104)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 111);
+show_backtrace(1);
+}
+var_defined_init = var_mpropdef87;
+} else {
+{
+{ /* Inline model#MPropDef#mproperty (var_mpropdef87) on <var_mpropdef87:MPropDef(MMethodDef)> */
+var112 = var_mpropdef87->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef87:MPropDef(MMethodDef)> */
+if (unlikely(var112 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
+show_backtrace(1);
+}
+var110 = var112;
+RET_LABEL111:(void)0;
+}
+}
+{
+{ /* Inline model#MProperty#name (var110) on <var110:MProperty(MMethod)> */
+var115 = var110->attrs[COLOR_model__MProperty___name].val; /* _name on <var110:MProperty(MMethod)> */
+if (unlikely(var115 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1620);
+show_backtrace(1);
+}
+var113 = var115;
+RET_LABEL114:(void)0;
+}
+}
+if (varonce116) {
+var117 = varonce116;
+} else {
+var118 = "init";
+var119 = 4;
+var120 = string__NativeString__to_s_with_length(var118, var119);
+var117 = var120;
+varonce116 = var117;
+}
+{
+var122 = string__FlatString___61d_61d(var113, var117);
+var121 = var122;
+}
+if (var121){
+goto RET_LABEL;
+} else {
+}
+}
+BREAK_label: (void)0;
+{
+array__ArrayIterator__next(var_84); /* Direct call array#ArrayIterator#next on <var_84:ArrayIterator[MPropDef]>*/
+}
+} else {
+goto BREAK_label123;
+}
+}
+BREAK_label123: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_84) on <var_84:ArrayIterator[MPropDef]> */
+RET_LABEL124:(void)0;
+}
+}
+/* <var_nclassdef:AClassdef> isa AStdClassdef */
+cltype126 = type_parser_nodes__AStdClassdef.color;
+idtype127 = type_parser_nodes__AStdClassdef.id;
+if(cltype126 >= var_nclassdef->type->table_size) {
+var125 = 0;
+} else {
+var125 = var_nclassdef->type->type_table[cltype126] == idtype127;
+}
+var128 = !var125;
+if (var128){
+goto RET_LABEL;
+} else {
+}
+var129 = NEW_array__Array(&type_array__Arraymodel__MParameter);
+{
+((void (*)(val*))(var129->class->vft[COLOR_kernel__Object__init]))(var129) /* init on <var129:Array[MParameter]>*/;
+}
+var_mparameters130 = var129;
+var131 = NEW_array__Array(&type_array__Arraymodel__MProperty);
+{
+((void (*)(val*))(var131->class->vft[COLOR_kernel__Object__init]))(var131) /* init on <var131:Array[MProperty]>*/;
+}
+var_initializers = var131;
+{
+{ /* Inline parser_nodes#AClassdef#n_propdefs (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
+var134 = var_nclassdef->attrs[COLOR_parser_nodes__AClassdef___n_propdefs].val; /* _n_propdefs on <var_nclassdef:AClassdef(AStdClassdef)> */
+if (unlikely(var134 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_propdefs");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 929);
+show_backtrace(1);
+}
+var132 = var134;
+RET_LABEL133:(void)0;
+}
+}
+var_135 = var132;
+{
+var136 = parser_nodes__ANodes__iterator(var_135);
+}
+var_137 = var136;
+for(;;) {
+{
+var138 = ((short int (*)(val*))(var_137->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_137) /* is_ok on <var_137:Iterator[APropdef]>*/;
+}
+if (var138){
+{
+var139 = ((val* (*)(val*))(var_137->class->vft[COLOR_abstract_collection__Iterator__item]))(var_137) /* item on <var_137:Iterator[APropdef]>*/;
+}
+var_npropdef = var139;
+/* <var_npropdef:APropdef> isa AMethPropdef */
+cltype141 = type_parser_nodes__AMethPropdef.color;
+idtype142 = type_parser_nodes__AMethPropdef.id;
+if(cltype141 >= var_npropdef->type->table_size) {
+var140 = 0;
+} else {
+var140 = var_npropdef->type->type_table[cltype141] == idtype142;
+}
+if (var140){
+{
+{ /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef(AMethPropdef)> */
+var145 = var_npropdef->attrs[COLOR_modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_npropdef:APropdef(AMethPropdef)> */
+var143 = var145;
+RET_LABEL144:(void)0;
+}
+}
+var146 = NULL;
+if (var143 == NULL) {
+var147 = 1; /* is null */
+} else {
+var147 = 0; /* arg is null but recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#== (var143,var146) on <var143:nullable MPropDef(nullable MMethodDef)> */
+var_other = var146;
+{
+{ /* Inline kernel#Object#is_same_instance (var143,var_other) on <var143:nullable MMethodDef(MMethodDef)> */
+var152 = var143 == var_other;
+var150 = var152;
+goto RET_LABEL151;
+RET_LABEL151:(void)0;
+}
+}
+var148 = var150;
+goto RET_LABEL149;
+RET_LABEL149:(void)0;
+}
+var147 = var148;
+}
+if (var147){
+goto RET_LABEL;
+} else {
+}
+if (varonce153) {
+var154 = varonce153;
+} else {
+var155 = "autoinit";
+var156 = 8;
+var157 = string__NativeString__to_s_with_length(var155, var156);
+var154 = var157;
+varonce153 = var154;
+}
+{
+var158 = annotation__Prod__get_single_annotation(var_npropdef, var154, self);
+}
+var_at = var158;
+var159 = NULL;
+if (var_at == NULL) {
+var160 = 1; /* is null */
+} else {
+var160 = 0; /* arg is null but recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#== (var_at,var159) on <var_at:nullable AAnnotation> */
+var_other = var159;
+{
+{ /* Inline kernel#Object#is_same_instance (var_at,var_other) on <var_at:nullable AAnnotation(AAnnotation)> */
+var165 = var_at == var_other;
+var163 = var165;
+goto RET_LABEL164;
+RET_LABEL164:(void)0;
+}
+}
+var161 = var163;
+goto RET_LABEL162;
+RET_LABEL162:(void)0;
+}
+var160 = var161;
+}
+if (var160){
+goto BREAK_label166;
+} else {
+}
+{
+{ /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef(AMethPropdef)> */
+var169 = var_npropdef->attrs[COLOR_modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_npropdef:APropdef(AMethPropdef)> */
+var167 = var169;
+RET_LABEL168:(void)0;
+}
+}
+if (var167 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 130);
+show_backtrace(1);
+} else {
+{ /* Inline model#MMethodDef#msignature (var167) on <var167:nullable MPropDef(nullable MMethodDef)> */
+if (unlikely(var167 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1958);
+show_backtrace(1);
+}
+var172 = var167->attrs[COLOR_model__MMethodDef___msignature].val; /* _msignature on <var167:nullable MPropDef(nullable MMethodDef)> */
+var170 = var172;
+RET_LABEL171:(void)0;
+}
+}
+var_sig = var170;
+var173 = NULL;
+if (var_sig == NULL) {
+var174 = 1; /* is null */
+} else {
+var174 = 0; /* arg is null but recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#== (var_sig,var173) on <var_sig:nullable MSignature> */
+var_other = var173;
+{
+{ /* Inline kernel#Object#is_same_instance (var_sig,var_other) on <var_sig:nullable MSignature(MSignature)> */
+var179 = var_sig == var_other;
+var177 = var179;
+goto RET_LABEL178;
+RET_LABEL178:(void)0;
+}
+}
+var175 = var177;
+goto RET_LABEL176;
+RET_LABEL176:(void)0;
+}
+var174 = var175;
+}
+if (var174){
+goto BREAK_label166;
+} else {
+}
+{
+{ /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef(AMethPropdef)> */
+var182 = var_npropdef->attrs[COLOR_modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_npropdef:APropdef(AMethPropdef)> */
+var180 = var182;
+RET_LABEL181:(void)0;
+}
+}
+if (var180 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 133);
+show_backtrace(1);
+} else {
+var183 = model__MPropDef__is_intro(var180);
+}
+var184 = !var183;
+if (var184){
+if (varonce185) {
+var186 = varonce185;
+} else {
+var187 = "Error: `autoinit` cannot be set on redefinitions";
+var188 = 48;
+var189 = string__NativeString__to_s_with_length(var187, var188);
+var186 = var189;
+varonce185 = var186;
+}
+{
+modelbuilder__ModelBuilder__error(self, var_at, var186); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
+}
+goto BREAK_label166;
+} else {
+}
+{
+{ /* Inline model#MSignature#mparameters (var_sig) on <var_sig:nullable MSignature(MSignature)> */
+var192 = var_sig->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <var_sig:nullable MSignature(MSignature)> */
+if (unlikely(var192 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
+show_backtrace(1);
+}
+var190 = var192;
+RET_LABEL191:(void)0;
+}
+}
+var_193 = var190;
+{
+var194 = array__AbstractArrayRead__iterator(var_193);
+}
+var_195 = var194;
+for(;;) {
+{
+var196 = array__ArrayIterator__is_ok(var_195);
+}
+if (var196){
+{
+var197 = array__ArrayIterator__item(var_195);
+}
+var_param = var197;
+{
+{ /* Inline model#MParameter#mtype (var_param) on <var_param:MParameter> */
+var200 = var_param->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <var_param:MParameter> */
+if (unlikely(var200 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
+show_backtrace(1);
+}
+var198 = var200;
+RET_LABEL199:(void)0;
+}
+}
+var_ret_type = var198;
+var201 = NEW_model__MParameter(&type_model__MParameter);
+{
+{ /* Inline model#MParameter#name (var_param) on <var_param:MParameter> */
+var204 = var_param->attrs[COLOR_model__MParameter___name].val; /* _name on <var_param:MParameter> */
+if (unlikely(var204 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1562);
+show_backtrace(1);
+}
+var202 = var204;
+RET_LABEL203:(void)0;
+}
+}
+var205 = 0;
+{
+model__MParameter__init(var201, var202, var_ret_type, var205); /* Direct call model#MParameter#init on <var201:MParameter>*/
+}
+var_mparameter = var201;
+{
+array__Array__add(var_mparameters130, var_mparameter); /* Direct call array#Array#add on <var_mparameters130:Array[MParameter]>*/
+}
+{
+array__ArrayIterator__next(var_195); /* Direct call array#ArrayIterator#next on <var_195:ArrayIterator[MParameter]>*/
+}
+} else {
+goto BREAK_label206;
+}
+}
+BREAK_label206: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_195) on <var_195:ArrayIterator[MParameter]> */
+RET_LABEL207:(void)0;
+}
+}
+{
+{ /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef(AMethPropdef)> */
+var210 = var_npropdef->attrs[COLOR_modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_npropdef:APropdef(AMethPropdef)> */
+var208 = var210;
+RET_LABEL209:(void)0;
+}
+}
+if (var208 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 143);
+show_backtrace(1);
+} else {
+{ /* Inline model#MPropDef#mproperty (var208) on <var208:nullable MPropDef(nullable MMethodDef)> */
+if (unlikely(var208 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
+show_backtrace(1);
+}
+var213 = var208->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <var208:nullable MPropDef(nullable MMethodDef)> */
+if (unlikely(var213 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
+show_backtrace(1);
+}
+var211 = var213;
+RET_LABEL212:(void)0;
+}
+}
+{
+array__Array__add(var_initializers, var211); /* Direct call array#Array#add on <var_initializers:Array[MProperty]>*/
+}
+} else {
+}
+/* <var_npropdef:APropdef> isa AAttrPropdef */
+cltype215 = type_parser_nodes__AAttrPropdef.color;
+idtype216 = type_parser_nodes__AAttrPropdef.id;
+if(cltype215 >= var_npropdef->type->table_size) {
+var214 = 0;
+} else {
+var214 = var_npropdef->type->type_table[cltype215] == idtype216;
+}
+if (var214){
+{
+{ /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
+var219 = var_npropdef->attrs[COLOR_modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_npropdef:APropdef(AAttrPropdef)> */
+var217 = var219;
+RET_LABEL218:(void)0;
+}
+}
+var220 = NULL;
+if (var217 == NULL) {
+var221 = 1; /* is null */
+} else {
+var221 = 0; /* arg is null but recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#== (var217,var220) on <var217:nullable MPropDef(nullable MAttributeDef)> */
+var_other = var220;
+{
+{ /* Inline kernel#Object#is_same_instance (var217,var_other) on <var217:nullable MAttributeDef(MAttributeDef)> */
+var226 = var217 == var_other;
+var224 = var226;
+goto RET_LABEL225;
+RET_LABEL225:(void)0;
+}
+}
+var222 = var224;
+goto RET_LABEL223;
+RET_LABEL223:(void)0;
+}
+var221 = var222;
+}
+if (var221){
+goto RET_LABEL;
+} else {
+}
+{
+{ /* Inline modelize_property#AAttrPropdef#noinit (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
+var229 = var_npropdef->attrs[COLOR_modelize_property__AAttrPropdef___noinit].s; /* _noinit on <var_npropdef:APropdef(AAttrPropdef)> */
+var227 = var229;
+RET_LABEL228:(void)0;
+}
+}
+if (var227){
+goto BREAK_label166;
+} else {
+}
+if (varonce230) {
+var231 = varonce230;
+} else {
+var232 = "autoinit";
+var233 = 8;
+var234 = string__NativeString__to_s_with_length(var232, var233);
+var231 = var234;
+varonce230 = var231;
+}
+{
+var235 = annotation__Prod__get_single_annotation(var_npropdef, var231, self);
+}
+var_atautoinit = var235;
+var236 = NULL;
+if (var_atautoinit == NULL) {
+var237 = 0; /* is null */
+} else {
+var237 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_atautoinit,var236) on <var_atautoinit:nullable AAnnotation> */
+var_other240 = var236;
+{
+var242 = ((short int (*)(val*, val*))(var_atautoinit->class->vft[COLOR_kernel__Object___61d_61d]))(var_atautoinit, var_other240) /* == on <var_atautoinit:nullable AAnnotation(AAnnotation)>*/;
+var241 = var242;
+}
+var243 = !var241;
+var238 = var243;
+goto RET_LABEL239;
+RET_LABEL239:(void)0;
+}
+var237 = var238;
+}
+if (var237){
+{
+{ /* Inline modelize_property#AAttrPropdef#mreadpropdef (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
+var246 = var_npropdef->attrs[COLOR_modelize_property__AAttrPropdef___mreadpropdef].val; /* _mreadpropdef on <var_npropdef:APropdef(AAttrPropdef)> */
+var244 = var246;
+RET_LABEL245:(void)0;
+}
+}
+if (var244 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 152);
+show_backtrace(1);
+} else {
+{ /* Inline model#MPropDef#mproperty (var244) on <var244:nullable MMethodDef> */
+if (unlikely(var244 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
+show_backtrace(1);
+}
+var249 = var244->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <var244:nullable MMethodDef> */
+if (unlikely(var249 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
+show_backtrace(1);
+}
+var247 = var249;
+RET_LABEL248:(void)0;
+}
+}
+{
+array__Array__add(var_initializers, var247); /* Direct call array#Array#add on <var_initializers:Array[MProperty]>*/
+}
+goto BREAK_label166;
+} else {
+}
+{
+{ /* Inline modelize_property#AAttrPropdef#has_value (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
+var252 = var_npropdef->attrs[COLOR_modelize_property__AAttrPropdef___has_value].s; /* _has_value on <var_npropdef:APropdef(AAttrPropdef)> */
+var250 = var252;
+RET_LABEL251:(void)0;
+}
+}
+if (var250){
+goto BREAK_label166;
+} else {
+}
+{
+{ /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
+var255 = var_npropdef->attrs[COLOR_modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_npropdef:APropdef(AAttrPropdef)> */
+var253 = var255;
+RET_LABEL254:(void)0;
+}
+}
+if (var253 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 156);
+show_backtrace(1);
+} else {
+{ /* Inline model#MPropDef#mproperty (var253) on <var253:nullable MPropDef(nullable MAttributeDef)> */
+if (unlikely(var253 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
+show_backtrace(1);
+}
+var258 = var253->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <var253:nullable MPropDef(nullable MAttributeDef)> */
+if (unlikely(var258 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
+show_backtrace(1);
+}
+var256 = var258;
+RET_LABEL257:(void)0;
+}
+}
+{
+{ /* Inline model#MProperty#name (var256) on <var256:MProperty(MAttribute)> */
+var261 = var256->attrs[COLOR_model__MProperty___name].val; /* _name on <var256:MProperty(MAttribute)> */
+if (unlikely(var261 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1620);
+show_backtrace(1);
+}
+var259 = var261;
+RET_LABEL260:(void)0;
+}
+}
+var262 = 1;
+{
+var263 = string__Text__substring_from(var259, var262);
+}
+var_paramname = var263;
+{
+{ /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
+var266 = var_npropdef->attrs[COLOR_modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_npropdef:APropdef(AAttrPropdef)> */
+var264 = var266;
+RET_LABEL265:(void)0;
+}
+}
+if (var264 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 157);
+show_backtrace(1);
+} else {
+{ /* Inline model#MAttributeDef#static_mtype (var264) on <var264:nullable MPropDef(nullable MAttributeDef)> */
+if (unlikely(var264 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 2006);
+show_backtrace(1);
+}
+var269 = var264->attrs[COLOR_model__MAttributeDef___static_mtype].val; /* _static_mtype on <var264:nullable MPropDef(nullable MAttributeDef)> */
+var267 = var269;
+RET_LABEL268:(void)0;
+}
+}
+var_ret_type270 = var267;
+var271 = NULL;
+if (var_ret_type270 == NULL) {
+var272 = 1; /* is null */
+} else {
+var272 = 0; /* arg is null but recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#== (var_ret_type270,var271) on <var_ret_type270:nullable MType> */
+var_other = var271;
+{
+{ /* Inline kernel#Object#is_same_instance (var_ret_type270,var_other) on <var_ret_type270:nullable MType(MType)> */
+var277 = var_ret_type270 == var_other;
+var275 = var277;
+goto RET_LABEL276;
+RET_LABEL276:(void)0;
+}
+}
+var273 = var275;
+goto RET_LABEL274;
+RET_LABEL274:(void)0;
+}
+var272 = var273;
+}
+if (var272){
+goto RET_LABEL;
+} else {
+}
+var278 = NEW_model__MParameter(&type_model__MParameter);
+var279 = 0;
+{
+model__MParameter__init(var278, var_paramname, var_ret_type270, var279); /* Direct call model#MParameter#init on <var278:MParameter>*/
+}
+var_mparameter280 = var278;
+{
+array__Array__add(var_mparameters130, var_mparameter280); /* Direct call array#Array#add on <var_mparameters130:Array[MParameter]>*/
+}
+{
+{ /* Inline modelize_property#AAttrPropdef#mwritepropdef (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
+var283 = var_npropdef->attrs[COLOR_modelize_property__AAttrPropdef___mwritepropdef].val; /* _mwritepropdef on <var_npropdef:APropdef(AAttrPropdef)> */
+var281 = var283;
+RET_LABEL282:(void)0;
+}
+}
+var_msetter = var281;
+var284 = NULL;
+if (var_msetter == NULL) {
+var285 = 1; /* is null */
+} else {
+var285 = 0; /* arg is null but recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#== (var_msetter,var284) on <var_msetter:nullable MMethodDef> */
+var_other = var284;
+{
+{ /* Inline kernel#Object#is_same_instance (var_msetter,var_other) on <var_msetter:nullable MMethodDef(MMethodDef)> */
+var290 = var_msetter == var_other;
+var288 = var290;
+goto RET_LABEL289;
+RET_LABEL289:(void)0;
+}
+}
+var286 = var288;
+goto RET_LABEL287;
+RET_LABEL287:(void)0;
+}
+var285 = var286;
+}
+if (var285){
+{
+{ /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef(AAttrPropdef)> */
+var293 = var_npropdef->attrs[COLOR_modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_npropdef:APropdef(AAttrPropdef)> */
+var291 = var293;
+RET_LABEL292:(void)0;
+}
+}
+if (var291 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 164);
+show_backtrace(1);
+} else {
+{ /* Inline model#MPropDef#mproperty (var291) on <var291:nullable MPropDef(nullable MAttributeDef)> */
+if (unlikely(var291 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
+show_backtrace(1);
+}
+var296 = var291->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <var291:nullable MPropDef(nullable MAttributeDef)> */
+if (unlikely(var296 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
+show_backtrace(1);
+}
+var294 = var296;
+RET_LABEL295:(void)0;
+}
+}
+{
+array__Array__add(var_initializers, var294); /* Direct call array#Array#add on <var_initializers:Array[MProperty]>*/
+}
+} else {
+{
+{ /* Inline model#MPropDef#mproperty (var_msetter) on <var_msetter:nullable MMethodDef(MMethodDef)> */
+var299 = var_msetter->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <var_msetter:nullable MMethodDef(MMethodDef)> */
+if (unlikely(var299 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
+show_backtrace(1);
+}
+var297 = var299;
+RET_LABEL298:(void)0;
+}
+}
+{
+array__Array__add(var_initializers, var297); /* Direct call array#Array#add on <var_initializers:Array[MProperty]>*/
+}
+}
+} else {
+}
+BREAK_label166: (void)0;
+{
+((void (*)(val*))(var_137->class->vft[COLOR_abstract_collection__Iterator__next]))(var_137) /* next on <var_137:Iterator[APropdef]>*/;
+}
+} else {
+goto BREAK_label300;
+}
+}
+BREAK_label300: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_137) on <var_137:Iterator[APropdef]> */
+RET_LABEL301:(void)0;
+}
+}
+{
+{ /* Inline modelize_property#ModelBuilder#the_root_init_mmethod (self) on <self:ModelBuilder> */
+var304 = self->attrs[COLOR_modelize_property__ModelBuilder___the_root_init_mmethod].val; /* _the_root_init_mmethod on <self:ModelBuilder> */
+var302 = var304;
+RET_LABEL303:(void)0;
+}
+}
+var305 = NULL;
+if (var302 == NULL) {
+var306 = 1; /* is null */
+} else {
+var306 = 0; /* arg is null but recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#== (var302,var305) on <var302:nullable MMethod> */
+var_other = var305;
+{
+{ /* Inline kernel#Object#is_same_instance (var302,var_other) on <var302:nullable MMethod(MMethod)> */
+var311 = var302 == var_other;
+var309 = var311;
+goto RET_LABEL310;
+RET_LABEL310:(void)0;
+}
+}
+var307 = var309;
+goto RET_LABEL308;
+RET_LABEL308:(void)0;
+}
+var306 = var307;
+}
+if (var306){
+goto RET_LABEL;
+} else {
+}
+{
+{ /* Inline modelize_property#ModelBuilder#the_root_init_mmethod (self) on <self:ModelBuilder> */
+var314 = self->attrs[COLOR_modelize_property__ModelBuilder___the_root_init_mmethod].val; /* _the_root_init_mmethod on <self:ModelBuilder> */
+var312 = var314;
+RET_LABEL313:(void)0;
+}
+}
+{
+{ /* Inline model#MClassDef#mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
+var317 = var_mclassdef->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
+if (unlikely(var317 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
+show_backtrace(1);
+}
+var315 = var317;
+RET_LABEL316:(void)0;
+}
+}
+{
+{ /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
+var320 = var_mclassdef->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_mclassdef:MClassDef> */
+if (unlikely(var320 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
+show_backtrace(1);
+}
+var318 = var320;
+RET_LABEL319:(void)0;
+}
+}
+if (var312 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 175);
+show_backtrace(1);
+} else {
+var321 = model__MProperty__lookup_super_definitions(var312, var315, var318);
+}
+var_spropdefs = var321;
+{
+var322 = array__AbstractArrayRead__is_empty(var_spropdefs);
+}
+if (var322){
+{
+{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
+var325 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
+if (unlikely(var325 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
+PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
+show_backtrace(1);
+}
+var323 = var325;
+RET_LABEL324:(void)0;
+}
+}
+{
+{ /* Inline parser_nodes#ANode#location (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
+var328 = var_nclassdef->attrs[COLOR_parser_nodes__ANode___location].val; /* _location on <var_nclassdef:AClassdef(AStdClassdef)> */
+if (unlikely(var328 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 23);
+show_backtrace(1);
+}
+var326 = var328;
+RET_LABEL327:(void)0;
+}
+}
+if (varonce329) {
+var330 = varonce329;
+} else {
+var331 = "Fatal error: ";
+var332 = 13;
+var333 = string__NativeString__to_s_with_length(var331, var332);
+var330 = var333;
+varonce329 = var330;
+}
+if (varonce334) {
+var335 = varonce334;
+} else {
+var336 = " does not specialize ";
+var337 = 21;
+var338 = string__NativeString__to_s_with_length(var336, var337);
+var335 = var338;
+varonce334 = var335;
+}
+{
+{ /* Inline modelize_property#ModelBuilder#the_root_init_mmethod (self) on <self:ModelBuilder> */
+var341 = self->attrs[COLOR_modelize_property__ModelBuilder___the_root_init_mmethod].val; /* _the_root_init_mmethod on <self:ModelBuilder> */
+var339 = var341;
+RET_LABEL340:(void)0;
+}
+}
+if (var339 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 177);
+show_backtrace(1);
+} else {
+{ /* Inline model#MProperty#intro_mclassdef (var339) on <var339:nullable MMethod> */
+if (unlikely(var339 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1615);
+show_backtrace(1);
+}
+var344 = var339->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var339:nullable MMethod> */
+if (unlikely(var344 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1615);
+show_backtrace(1);
+}
+var342 = var344;
+RET_LABEL343:(void)0;
+}
+}
+if (varonce345) {
+var346 = varonce345;
+} else {
+var347 = ". Possible duplication of the root class `Object`?";
+var348 = 50;
+var349 = string__NativeString__to_s_with_length(var347, var348);
+var346 = var349;
+varonce345 = var346;
+}
+var350 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var350 = array_instance Array[Object] */
+var351 = 5;
+var352 = NEW_array__NativeArray(var351, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var352)->values[0] = (val*) var330;
+((struct instance_array__NativeArray*)var352)->values[1] = (val*) var_mclassdef;
+((struct instance_array__NativeArray*)var352)->values[2] = (val*) var335;
+((struct instance_array__NativeArray*)var352)->values[3] = (val*) var342;
+((struct instance_array__NativeArray*)var352)->values[4] = (val*) var346;
+{
+((void (*)(val*, val*, long))(var350->class->vft[COLOR_array__Array__with_native]))(var350, var352, var351) /* with_native on <var350:Array[Object]>*/;
+}
+}
+{
+var353 = ((val* (*)(val*))(var350->class->vft[COLOR_string__Object__to_s]))(var350) /* to_s on <var350:Array[Object]>*/;
+}
+{
+toolcontext__ToolContext__fatal_error(var323, var326, var353); /* Direct call toolcontext#ToolContext#fatal_error on <var323:ToolContext>*/
+}
+} else {
+}
+{
+var354 = abstract_collection__SequenceRead__first(var_spropdefs);
+}
+var_longest = var354;
+{
+{ /* Inline array#AbstractArrayRead#length (var_spropdefs) on <var_spropdefs:Array[MMethodDef]> */
+var357 = var_spropdefs->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var_spropdefs:Array[MMethodDef]> */
+var355 = var357;
+RET_LABEL356:(void)0;
+}
+}
+var358 = 1;
+{
+{ /* Inline kernel#Int#> (var355,var358) on <var355:Int> */
+/* Covariant cast for argument 0 (i) <var358:Int> isa OTHER */
+/* <var358:Int> isa OTHER */
+var361 = 1; /* easy <var358:Int> isa OTHER*/
+if (unlikely(!var361)) {
+var_class_name = type_kernel__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
+show_backtrace(1);
+}
+var364 = var355 > var358;
+var359 = var364;
+goto RET_LABEL360;
+RET_LABEL360:(void)0;
+}
+}
+if (var359){
+var_365 = var_spropdefs;
+{
+var366 = array__AbstractArrayRead__iterator(var_365);
+}
+var_367 = var366;
+for(;;) {
+{
+var368 = array__ArrayIterator__is_ok(var_367);
+}
+if (var368){
+{
+var369 = array__ArrayIterator__item(var_367);
+}
+var_spd = var369;
+{
+{ /* Inline model#MMethodDef#initializers (var_spd) on <var_spd:MMethodDef> */
+var372 = var_spd->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on <var_spd:MMethodDef> */
+if (unlikely(var372 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
+show_backtrace(1);
+}
+var370 = var372;
+RET_LABEL371:(void)0;
+}
+}
+{
+{ /* Inline array#AbstractArrayRead#length (var370) on <var370:Array[MProperty]> */
+var375 = var370->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var370:Array[MProperty]> */
+var373 = var375;
+RET_LABEL374:(void)0;
+}
+}
+{
+{ /* Inline model#MMethodDef#initializers (var_longest) on <var_longest:MMethodDef> */
+var378 = var_longest->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on <var_longest:MMethodDef> */
+if (unlikely(var378 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
+show_backtrace(1);
+}
+var376 = var378;
+RET_LABEL377:(void)0;
+}
+}
+{
+{ /* Inline array#AbstractArrayRead#length (var376) on <var376:Array[MProperty]> */
+var381 = var376->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var376:Array[MProperty]> */
+var379 = var381;
+RET_LABEL380:(void)0;
+}
+}
+{
+{ /* Inline kernel#Int#> (var373,var379) on <var373:Int> */
+/* Covariant cast for argument 0 (i) <var379:Int> isa OTHER */
+/* <var379:Int> isa OTHER */
+var384 = 1; /* easy <var379:Int> isa OTHER*/
+if (unlikely(!var384)) {
+var_class_name387 = type_kernel__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name387);
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
+show_backtrace(1);
+}
+var388 = var373 > var379;
+var382 = var388;
+goto RET_LABEL383;
+RET_LABEL383:(void)0;
+}
+}
+if (var382){
+var_longest = var_spd;
+} else {
+}
+{
+array__ArrayIterator__next(var_367); /* Direct call array#ArrayIterator#next on <var_367:ArrayIterator[MMethodDef]>*/
+}
+} else {
+goto BREAK_label389;
+}
+}
+BREAK_label389: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_367) on <var_367:ArrayIterator[MMethodDef]> */
+RET_LABEL390:(void)0;
+}
+}
+var_391 = var_spropdefs;
+{
+var392 = array__AbstractArrayRead__iterator(var_391);
+}
+var_393 = var392;
+for(;;) {
+{
+var394 = array__ArrayIterator__is_ok(var_393);
+}
+if (var394){
+{
+var395 = array__ArrayIterator__item(var_393);
+}
+var_spd396 = var395;
+var397 = 0;
+var_i = var397;
+{
+{ /* Inline model#MMethodDef#initializers (var_spd396) on <var_spd396:MMethodDef> */
+var400 = var_spd396->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on <var_spd396:MMethodDef> */
+if (unlikely(var400 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
+show_backtrace(1);
+}
+var398 = var400;
+RET_LABEL399:(void)0;
+}
+}
+var_401 = var398;
+{
+var402 = array__AbstractArrayRead__iterator(var_401);
+}
+var_403 = var402;
+for(;;) {
+{
+var404 = array__ArrayIterator__is_ok(var_403);
+}
+if (var404){
+{
+var405 = array__ArrayIterator__item(var_403);
+}
+var_p = var405;
+{
+{ /* Inline model#MMethodDef#initializers (var_longest) on <var_longest:MMethodDef> */
+var408 = var_longest->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on <var_longest:MMethodDef> */
+if (unlikely(var408 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
+show_backtrace(1);
+}
+var406 = var408;
+RET_LABEL407:(void)0;
+}
+}
+{
+var409 = array__Array___91d_93d(var406, var_i);
+}
+{
+{ /* Inline kernel#Object#!= (var_p,var409) on <var_p:MProperty> */
+var_other240 = var409;
+{
+var414 = ((short int (*)(val*, val*))(var_p->class->vft[COLOR_kernel__Object___61d_61d]))(var_p, var_other240) /* == on <var_p:MProperty>*/;
+var413 = var414;
+}
+var415 = !var413;
+var411 = var415;
+goto RET_LABEL412;
+RET_LABEL412:(void)0;
+}
+var410 = var411;
+}
+if (var410){
+if (varonce416) {
+var417 = varonce416;
+} else {
+var418 = "Error: conflict for inherited inits ";
+var419 = 36;
+var420 = string__NativeString__to_s_with_length(var418, var419);
+var417 = var420;
+varonce416 = var417;
+}
+if (varonce421) {
+var422 = varonce421;
+} else {
+var423 = "(";
+var424 = 1;
+var425 = string__NativeString__to_s_with_length(var423, var424);
+var422 = var425;
+varonce421 = var422;
+}
+{
+{ /* Inline model#MMethodDef#initializers (var_spd396) on <var_spd396:MMethodDef> */
+var428 = var_spd396->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on <var_spd396:MMethodDef> */
+if (unlikely(var428 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
+show_backtrace(1);
+}
+var426 = var428;
+RET_LABEL427:(void)0;
+}
+}
+if (varonce429) {
+var430 = varonce429;
+} else {
+var431 = ", ";
+var432 = 2;
+var433 = string__NativeString__to_s_with_length(var431, var432);
+var430 = var433;
+varonce429 = var430;
+}
+{
+var434 = string__Collection__join(var426, var430);
+}
+if (varonce435) {
+var436 = varonce435;
+} else {
+var437 = ") and ";
+var438 = 6;
+var439 = string__NativeString__to_s_with_length(var437, var438);
+var436 = var439;
+varonce435 = var436;
+}
+if (varonce440) {
+var441 = varonce440;
+} else {
+var442 = "(";
+var443 = 1;
+var444 = string__NativeString__to_s_with_length(var442, var443);
+var441 = var444;
+varonce440 = var441;
+}
+{
+{ /* Inline model#MMethodDef#initializers (var_longest) on <var_longest:MMethodDef> */
+var447 = var_longest->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on <var_longest:MMethodDef> */
+if (unlikely(var447 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
+show_backtrace(1);
+}
+var445 = var447;
+RET_LABEL446:(void)0;
+}
+}
+if (varonce448) {
+var449 = varonce448;
+} else {
+var450 = ", ";
+var451 = 2;
+var452 = string__NativeString__to_s_with_length(var450, var451);
+var449 = var452;
+varonce448 = var449;
+}
+{
+var453 = string__Collection__join(var445, var449);
+}
+if (varonce454) {
+var455 = varonce454;
+} else {
+var456 = ")";
+var457 = 1;
+var458 = string__NativeString__to_s_with_length(var456, var457);
+var455 = var458;
+varonce454 = var455;
+}
+var459 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var459 = array_instance Array[Object] */
+var460 = 9;
+var461 = NEW_array__NativeArray(var460, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var461)->values[0] = (val*) var417;
+((struct instance_array__NativeArray*)var461)->values[1] = (val*) var_spd396;
+((struct instance_array__NativeArray*)var461)->values[2] = (val*) var422;
+((struct instance_array__NativeArray*)var461)->values[3] = (val*) var434;
+((struct instance_array__NativeArray*)var461)->values[4] = (val*) var436;
+((struct instance_array__NativeArray*)var461)->values[5] = (val*) var_longest;
+((struct instance_array__NativeArray*)var461)->values[6] = (val*) var441;
+((struct instance_array__NativeArray*)var461)->values[7] = (val*) var453;
+((struct instance_array__NativeArray*)var461)->values[8] = (val*) var455;
+{
+((void (*)(val*, val*, long))(var459->class->vft[COLOR_array__Array__with_native]))(var459, var461, var460) /* with_native on <var459:Array[Object]>*/;
+}
+}
+{
+var462 = ((val* (*)(val*))(var459->class->vft[COLOR_string__Object__to_s]))(var459) /* to_s on <var459:Array[Object]>*/;
+}
+{
+modelbuilder__ModelBuilder__error(self, var_nclassdef, var462); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
+}
+goto RET_LABEL;
+} else {
+}
+var463 = 1;
+{
+{ /* Inline kernel#Int#+ (var_i,var463) on <var_i:Int> */
+/* Covariant cast for argument 0 (i) <var463:Int> isa OTHER */
+/* <var463:Int> isa OTHER */
+var466 = 1; /* easy <var463:Int> isa OTHER*/
+if (unlikely(!var466)) {
+var_class_name469 = type_kernel__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name469);
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
+show_backtrace(1);
+}
+var470 = var_i + var463;
+var464 = var470;
+goto RET_LABEL465;
+RET_LABEL465:(void)0;
+}
+}
+var_i = var464;
+{
+array__ArrayIterator__next(var_403); /* Direct call array#ArrayIterator#next on <var_403:ArrayIterator[MProperty]>*/
+}
+} else {
+goto BREAK_label471;
+}
+}
+BREAK_label471: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_403) on <var_403:ArrayIterator[MProperty]> */
+RET_LABEL472:(void)0;
+}
+}
+{
+array__ArrayIterator__next(var_393); /* Direct call array#ArrayIterator#next on <var_393:ArrayIterator[MMethodDef]>*/
+}
+} else {
+goto BREAK_label473;
+}
+}
+BREAK_label473: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_393) on <var_393:ArrayIterator[MMethodDef]> */
+RET_LABEL474:(void)0;
+}
+}
+} else {
+}
+{
+{ /* Inline array#AbstractArrayRead#length (var_spropdefs) on <var_spropdefs:Array[MMethodDef]> */
+var479 = var_spropdefs->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var_spropdefs:Array[MMethodDef]> */
+var477 = var479;
+RET_LABEL478:(void)0;
+}
+}
+var480 = 1;
+{
+{ /* Inline kernel#Int#== (var477,var480) on <var477:Int> */
+var484 = var477 == var480;
+var482 = var484;
+goto RET_LABEL483;
+RET_LABEL483:(void)0;
+}
+var481 = var482;
+}
+var_485 = var481;
+if (var481){
+{
+var486 = array__AbstractArrayRead__is_empty(var_mparameters130);
+}
+var476 = var486;
+} else {
+var476 = var_485;
+}
+var_487 = var476;
+if (var476){
+var488 = NULL;
+if (var_defined_init == NULL) {
+var489 = 1; /* is null */
+} else {
+var489 = 0; /* arg is null but recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#== (var_defined_init,var488) on <var_defined_init:nullable MMethodDef> */
+var_other = var488;
+{
+{ /* Inline kernel#Object#is_same_instance (var_defined_init,var_other) on <var_defined_init:nullable MMethodDef(MMethodDef)> */
+var494 = var_defined_init == var_other;
+var492 = var494;
+goto RET_LABEL493;
+RET_LABEL493:(void)0;
+}
+}
+var490 = var492;
+goto RET_LABEL491;
+RET_LABEL491:(void)0;
+}
+var489 = var490;
+}
+var475 = var489;
+} else {
+var475 = var_487;
+}
+if (var475){
+{
+{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
+var497 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
+if (unlikely(var497 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
+PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
+show_backtrace(1);
+}
+var495 = var497;
+RET_LABEL496:(void)0;
+}
+}
+if (varonce498) {
+var499 = varonce498;
+} else {
+var500 = " inherits the basic constructor ";
+var501 = 32;
+var502 = string__NativeString__to_s_with_length(var500, var501);
+var499 = var502;
+varonce498 = var499;
+}
+var503 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var503 = array_instance Array[Object] */
+var504 = 3;
+var505 = NEW_array__NativeArray(var504, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var505)->values[0] = (val*) var_mclassdef;
+((struct instance_array__NativeArray*)var505)->values[1] = (val*) var499;
+((struct instance_array__NativeArray*)var505)->values[2] = (val*) var_longest;
+{
+((void (*)(val*, val*, long))(var503->class->vft[COLOR_array__Array__with_native]))(var503, var505, var504) /* with_native on <var503:Array[Object]>*/;
+}
+}
+{
+var506 = ((val* (*)(val*))(var503->class->vft[COLOR_string__Object__to_s]))(var503) /* to_s on <var503:Array[Object]>*/;
+}
+var507 = 3;
+{
+toolcontext__ToolContext__info(var495, var506, var507); /* Direct call toolcontext#ToolContext#info on <var495:ToolContext>*/
+}
+{
+{ /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
+var510 = var_mclassdef->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
+if (unlikely(var510 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
+show_backtrace(1);
+}
+var508 = var510;
+RET_LABEL509:(void)0;
+}
+}
+{
+{ /* Inline modelize_property#MClass#root_init= (var508,var_longest) on <var508:MClass> */
+var508->attrs[COLOR_modelize_property__MClass___root_init].val = var_longest; /* _root_init on <var508:MClass> */
+RET_LABEL511:(void)0;
+}
+}
+goto RET_LABEL;
+} else {
+}
+{
+{ /* Inline model#MMethodDef#initializers (var_longest) on <var_longest:MMethodDef> */
+var514 = var_longest->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on <var_longest:MMethodDef> */
+if (unlikely(var514 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
+show_backtrace(1);
+}
+var512 = var514;
+RET_LABEL513:(void)0;
+}
+}
+{
+{ /* Inline array#AbstractArrayRead#length (var512) on <var512:Array[MProperty]> */
+var517 = var512->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var512:Array[MProperty]> */
+var515 = var517;
+RET_LABEL516:(void)0;
+}
+}
+var518 = 0;
+{
+{ /* Inline kernel#Int#> (var515,var518) on <var515:Int> */
+/* Covariant cast for argument 0 (i) <var518:Int> isa OTHER */
+/* <var518:Int> isa OTHER */
+var521 = 1; /* easy <var518:Int> isa OTHER*/
+if (unlikely(!var521)) {
+var_class_name524 = type_kernel__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name524);
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
+show_backtrace(1);
+}
+var525 = var515 > var518;
+var519 = var525;
+goto RET_LABEL520;
+RET_LABEL520:(void)0;
+}
+}
+if (var519){
+{
+{ /* Inline model#MMethodDef#new_msignature (var_longest) on <var_longest:MMethodDef> */
+var528 = var_longest->attrs[COLOR_model__MMethodDef___new_msignature].val; /* _new_msignature on <var_longest:MMethodDef> */
+var526 = var528;
+RET_LABEL527:(void)0;
+}
+}
+if (var526 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 211);
+show_backtrace(1);
+} else {
+{ /* Inline model#MSignature#mparameters (var526) on <var526:nullable MSignature> */
+if (unlikely(var526 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
+show_backtrace(1);
+}
+var531 = var526->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <var526:nullable MSignature> */
+if (unlikely(var531 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
+show_backtrace(1);
+}
+var529 = var531;
+RET_LABEL530:(void)0;
+}
+}
+{
+abstract_collection__Sequence__prepend(var_mparameters130, var529); /* Direct call abstract_collection#Sequence#prepend on <var_mparameters130:Array[MParameter]>*/
+}
+{
+{ /* Inline model#MMethodDef#initializers (var_longest) on <var_longest:MMethodDef> */
+var534 = var_longest->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on <var_longest:MMethodDef> */
+if (unlikely(var534 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
+show_backtrace(1);
+}
+var532 = var534;
+RET_LABEL533:(void)0;
+}
+}
+{
+abstract_collection__Sequence__prepend(var_initializers, var532); /* Direct call abstract_collection#Sequence#prepend on <var_initializers:Array[MProperty]>*/
+}
+} else {
+}
+var535 = NULL;
+if (var_defined_init == NULL) {
+var536 = 0; /* is null */
+} else {
+var536 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_defined_init,var535) on <var_defined_init:nullable MMethodDef> */
+var_other240 = var535;
+{
+var540 = ((short int (*)(val*, val*))(var_defined_init->class->vft[COLOR_kernel__Object___61d_61d]))(var_defined_init, var_other240) /* == on <var_defined_init:nullable MMethodDef(MMethodDef)>*/;
+var539 = var540;
+}
+var541 = !var539;
+var537 = var541;
+goto RET_LABEL538;
+RET_LABEL538:(void)0;
+}
+var536 = var537;
+}
+if (var536){
+{
+{ /* Inline model#MMethodDef#initializers (var_defined_init) on <var_defined_init:nullable MMethodDef(MMethodDef)> */
+var544 = var_defined_init->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on <var_defined_init:nullable MMethodDef(MMethodDef)> */
+if (unlikely(var544 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
+show_backtrace(1);
+}
+var542 = var544;
+RET_LABEL543:(void)0;
+}
+}
+{
+abstract_collection__SimpleCollection__add_all(var542, var_initializers); /* Direct call abstract_collection#SimpleCollection#add_all on <var542:Array[MProperty]>*/
+}
+var545 = NEW_model__MSignature(&type_model__MSignature);
+var546 = NULL;
+{
+model__MSignature__init(var545, var_mparameters130, var546); /* Direct call model#MSignature#init on <var545:MSignature>*/
+}
+var_msignature547 = var545;
+{
+{ /* Inline model#MMethodDef#new_msignature= (var_defined_init,var_msignature547) on <var_defined_init:nullable MMethodDef(MMethodDef)> */
+var_defined_init->attrs[COLOR_model__MMethodDef___new_msignature].val = var_msignature547; /* _new_msignature on <var_defined_init:nullable MMethodDef(MMethodDef)> */
+RET_LABEL548:(void)0;
+}
+}
+{
+{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
+var551 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
+if (unlikely(var551 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
+PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
+show_backtrace(1);
+}
+var549 = var551;
+RET_LABEL550:(void)0;
+}
+}
+if (varonce552) {
+var553 = varonce552;
+} else {
+var554 = " extends its basic constructor signature to ";
+var555 = 44;
+var556 = string__NativeString__to_s_with_length(var554, var555);
+var553 = var556;
+varonce552 = var553;
+}
+var557 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var557 = array_instance Array[Object] */
+var558 = 4;
+var559 = NEW_array__NativeArray(var558, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var559)->values[0] = (val*) var_mclassdef;
+((struct instance_array__NativeArray*)var559)->values[1] = (val*) var553;
+((struct instance_array__NativeArray*)var559)->values[2] = (val*) var_defined_init;
+((struct instance_array__NativeArray*)var559)->values[3] = (val*) var_msignature547;
+{
+((void (*)(val*, val*, long))(var557->class->vft[COLOR_array__Array__with_native]))(var557, var559, var558) /* with_native on <var557:Array[Object]>*/;
+}
+}
+{
+var560 = ((val* (*)(val*))(var557->class->vft[COLOR_string__Object__to_s]))(var557) /* to_s on <var557:Array[Object]>*/;
+}
+var561 = 3;
+{
+toolcontext__ToolContext__info(var549, var560, var561); /* Direct call toolcontext#ToolContext#info on <var549:ToolContext>*/
+}
+{
+{ /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
+var564 = var_mclassdef->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
+if (unlikely(var564 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
+show_backtrace(1);
+}
+var562 = var564;
+RET_LABEL563:(void)0;
+}
+}
+{
+{ /* Inline modelize_property#MClass#root_init= (var562,var_defined_init) on <var562:MClass> */
+var562->attrs[COLOR_modelize_property__MClass___root_init].val = var_defined_init; /* _root_init on <var562:MClass> */
+RET_LABEL565:(void)0;
+}
+}
+goto RET_LABEL;
+} else {
+}
+{
+{ /* Inline modelize_property#ModelBuilder#the_root_init_mmethod (self) on <self:ModelBuilder> */
+var568 = self->attrs[COLOR_modelize_property__ModelBuilder___the_root_init_mmethod].val; /* _the_root_init_mmethod on <self:ModelBuilder> */
+var566 = var568;
+RET_LABEL567:(void)0;
+}
+}
+if (unlikely(var566 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 226);
+show_backtrace(1);
+}
+var_mprop569 = var566;
+var570 = NEW_model__MMethodDef(&type_model__MMethodDef);
+{
+{ /* Inline parser_nodes#ANode#location (var_nclassdef) on <var_nclassdef:AClassdef(AStdClassdef)> */
+var573 = var_nclassdef->attrs[COLOR_parser_nodes__ANode___location].val; /* _location on <var_nclassdef:AClassdef(AStdClassdef)> */
+if (unlikely(var573 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 23);
+show_backtrace(1);
+}
+var571 = var573;
+RET_LABEL572:(void)0;
+}
+}
+{
+model__MMethodDef__init(var570, var_mclassdef, var_mprop569, var571); /* Direct call model#MMethodDef#init on <var570:MMethodDef>*/
+}
+var_mpropdef574 = var570;
+var575 = 1;
+{
+{ /* Inline modelize_property#MPropDef#has_supercall= (var_mpropdef574,var575) on <var_mpropdef574:MMethodDef> */
+var_mpropdef574->attrs[COLOR_modelize_property__MPropDef___has_supercall].s = var575; /* _has_supercall on <var_mpropdef574:MMethodDef> */
+RET_LABEL576:(void)0;
+}
+}
+{
+{ /* Inline model#MMethodDef#initializers (var_mpropdef574) on <var_mpropdef574:MMethodDef> */
+var579 = var_mpropdef574->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on <var_mpropdef574:MMethodDef> */
+if (unlikely(var579 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
+show_backtrace(1);
+}
+var577 = var579;
+RET_LABEL578:(void)0;
+}
+}
+{
+abstract_collection__SimpleCollection__add_all(var577, var_initializers); /* Direct call abstract_collection#SimpleCollection#add_all on <var577:Array[MProperty]>*/
+}
+var580 = NEW_model__MSignature(&type_model__MSignature);
+var581 = NULL;
+{
+model__MSignature__init(var580, var_mparameters130, var581); /* Direct call model#MSignature#init on <var580:MSignature>*/
+}
+var_msignature582 = var580;
+{
+{ /* Inline model#MMethodDef#new_msignature= (var_mpropdef574,var_msignature582) on <var_mpropdef574:MMethodDef> */
+var_mpropdef574->attrs[COLOR_model__MMethodDef___new_msignature].val = var_msignature582; /* _new_msignature on <var_mpropdef574:MMethodDef> */
+RET_LABEL583:(void)0;
+}
+}
+var584 = NEW_model__MSignature(&type_model__MSignature);
+var585 = NEW_array__Array(&type_array__Arraymodel__MParameter);
+{
+((void (*)(val*))(var585->class->vft[COLOR_kernel__Object__init]))(var585) /* init on <var585:Array[MParameter]>*/;
+}
+var586 = NULL;
+{
+model__MSignature__init(var584, var585, var586); /* Direct call model#MSignature#init on <var584:MSignature>*/
+}
+{
+{ /* Inline model#MMethodDef#msignature= (var_mpropdef574,var584) on <var_mpropdef574:MMethodDef> */
+var_mpropdef574->attrs[COLOR_model__MMethodDef___msignature].val = var584; /* _msignature on <var_mpropdef574:MMethodDef> */
+RET_LABEL587:(void)0;
+}
+}
+{
+{ /* Inline modelize_property#AClassdef#mfree_init= (var_nclassdef,var_mpropdef574) on <var_nclassdef:AClassdef(AStdClassdef)> */
+var_nclassdef->attrs[COLOR_modelize_property__AClassdef___mfree_init].val = var_mpropdef574; /* _mfree_init on <var_nclassdef:AClassdef(AStdClassdef)> */
+RET_LABEL588:(void)0;
+}
+}
+{
+{ /* Inline modelbuilder#ModelBuilder#toolcontext (self) on <self:ModelBuilder> */
+var591 = self->attrs[COLOR_modelbuilder__ModelBuilder___toolcontext].val; /* _toolcontext on <self:ModelBuilder> */
+if (unlikely(var591 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
+PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
+show_backtrace(1);
+}
+var589 = var591;
+RET_LABEL590:(void)0;
+}
+}
+if (varonce592) {
+var593 = varonce592;
+} else {
+var594 = " gets a free constructor for attributes ";
+var595 = 40;
+var596 = string__NativeString__to_s_with_length(var594, var595);
+var593 = var596;
+varonce592 = var593;
+}
+var597 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var597 = array_instance Array[Object] */
+var598 = 4;
+var599 = NEW_array__NativeArray(var598, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var599)->values[0] = (val*) var_mclassdef;
+((struct instance_array__NativeArray*)var599)->values[1] = (val*) var593;
+((struct instance_array__NativeArray*)var599)->values[2] = (val*) var_mpropdef574;
+((struct instance_array__NativeArray*)var599)->values[3] = (val*) var_msignature582;
+{
+((void (*)(val*, val*, long))(var597->class->vft[COLOR_array__Array__with_native]))(var597, var599, var598) /* with_native on <var597:Array[Object]>*/;
+}
+}
+{
+var600 = ((val* (*)(val*))(var597->class->vft[COLOR_string__Object__to_s]))(var597) /* to_s on <var597:Array[Object]>*/;
+}
+var601 = 3;
+{
+toolcontext__ToolContext__info(var589, var600, var601); /* Direct call toolcontext#ToolContext#info on <var589:ToolContext>*/
+}
+{
+{ /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
+var604 = var_mclassdef->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_mclassdef:MClassDef> */
+if (unlikely(var604 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
+show_backtrace(1);
+}
+var602 = var604;
+RET_LABEL603:(void)0;
+}
+}
+{
+{ /* Inline modelize_property#MClass#root_init= (var602,var_mpropdef574) on <var602:MClass> */
+var602->attrs[COLOR_modelize_property__MClass___root_init].val = var_mpropdef574; /* _root_init on <var602:MClass> */
+RET_LABEL605:(void)0;
+}
+}
+RET_LABEL:;
+}
+/* method modelize_property#ModelBuilder#process_default_constructors for (self: Object, AClassdef) */
+void VIRTUAL_modelize_property__ModelBuilder__process_default_constructors(val* self, val* p0) {
+modelize_property__ModelBuilder__process_default_constructors(self, p0); /* Direct call modelize_property#ModelBuilder#process_default_constructors on <self:Object(ModelBuilder)>*/
+RET_LABEL:;
+}
+/* method modelize_property#ModelBuilder#check_visibility for (self: ModelBuilder, ANode, MType, MPropDef) */
+void modelize_property__ModelBuilder__check_visibility(val* self, val* p0, val* p1, val* p2) {
+val* var_node /* var node: ANode */;
+val* var_mtype /* var mtype: MType */;
+val* var_mpropdef /* var mpropdef: MPropDef */;
+val* var /* : MClassDef */;
+val* var2 /* : MClassDef */;
+val* var3 /* : MModule */;
+val* var5 /* : MModule */;
+val* var_mmodule /* var mmodule: MModule */;
+val* var6 /* : MProperty */;
+val* var8 /* : MProperty */;
+val* var_mproperty /* var mproperty: MProperty */;
+val* var9 /* : null */;
+val* var_vis_type /* var vis_type: nullable MVisibility */;
+val* var10 /* : null */;
+val* var_mmodule_type /* var mmodule_type: nullable MModule */;
+val* var11 /* : MType */;
+short int var12 /* : Bool */;
+int cltype;
+int idtype;
+val* var13 /* : MClass */;
+val* var15 /* : MClass */;
+val* var16 /* : MVisibility */;
+val* var18 /* : MVisibility */;
+val* var19 /* : MClass */;
+val* var21 /* : MClass */;
+val* var22 /* : MClassDef */;
+val* var24 /* : MClassDef */;
+val* var25 /* : MModule */;
+val* var27 /* : MModule */;
+short int var28 /* : Bool */;
+int cltype29;
+int idtype30;
+val* var31 /* : MProperty */;
+val* var33 /* : MProperty */;
+val* var34 /* : MVisibility */;
+val* var36 /* : MVisibility */;
+val* var37 /* : MProperty */;
+val* var39 /* : MProperty */;
+val* var40 /* : MClassDef */;
+val* var42 /* : MClassDef */;
+val* var43 /* : MModule */;
+val* var45 /* : MModule */;
+short int var46 /* : Bool */;
+int cltype47;
+int idtype48;
+static val* varonce;
+val* var49 /* : String */;
+char* var50 /* : NativeString */;
+long var51 /* : Int */;
+val* var52 /* : FlatString */;
+val* var53 /* : Array[Object] */;
+long var54 /* : Int */;
+val* var55 /* : NativeArray[Object] */;
+val* var56 /* : String */;
+val* var57 /* : null */;
+short int var58 /* : Bool */;
+short int var59 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var61 /* : Bool */;
+short int var62 /* : Bool */;
+short int var63 /* : Bool */;
+val* var64 /* : null */;
+short int var65 /* : Bool */;
+short int var66 /* : Bool */;
+short int var68 /* : Bool */;
+short int var69 /* : Bool */;
+short int var70 /* : Bool */;
+val* var71 /* : MVisibility */;
+val* var_vis_module_type /* var vis_module_type: MVisibility */;
+val* var72 /* : MVisibility */;
+val* var74 /* : MVisibility */;
+short int var75 /* : Bool */;
+static val* varonce76;
+val* var77 /* : String */;
+char* var78 /* : NativeString */;
+long var79 /* : Int */;
+val* var80 /* : FlatString */;
+val* var81 /* : MVisibility */;
+val* var83 /* : MVisibility */;
+static val* varonce84;
+val* var85 /* : String */;
+char* var86 /* : NativeString */;
+long var87 /* : Int */;
+val* var88 /* : FlatString */;
+static val* varonce89;
+val* var90 /* : String */;
+char* var91 /* : NativeString */;
+long var92 /* : Int */;
+val* var93 /* : FlatString */;
+static val* varonce94;
+val* var95 /* : String */;
+char* var96 /* : NativeString */;
+long var97 /* : Int */;
+val* var98 /* : FlatString */;
+static val* varonce99;
+val* var100 /* : String */;
+char* var101 /* : NativeString */;
+long var102 /* : Int */;
+val* var103 /* : FlatString */;
+val* var104 /* : Array[Object] */;
+long var105 /* : Int */;
+val* var106 /* : NativeArray[Object] */;
+val* var107 /* : String */;
+val* var108 /* : MVisibility */;
+val* var110 /* : MVisibility */;
+short int var111 /* : Bool */;
+static val* varonce112;
+val* var113 /* : String */;
+char* var114 /* : NativeString */;
+long var115 /* : Int */;
+val* var116 /* : FlatString */;
+val* var117 /* : MVisibility */;
+val* var119 /* : MVisibility */;
+static val* varonce120;
+val* var121 /* : String */;
+char* var122 /* : NativeString */;
+long var123 /* : Int */;
+val* var124 /* : FlatString */;
+static val* varonce125;
+val* var126 /* : String */;
+char* var127 /* : NativeString */;
+long var128 /* : Int */;
+val* var129 /* : FlatString */;
+static val* varonce130;
+val* var131 /* : String */;
+char* var132 /* : NativeString */;
+long var133 /* : Int */;
+val* var134 /* : FlatString */;
+static val* varonce135;
+val* var136 /* : String */;
+char* var137 /* : NativeString */;
+long var138 /* : Int */;
+val* var139 /* : FlatString */;
+static val* varonce140;
+val* var141 /* : String */;
+char* var142 /* : NativeString */;
+long var143 /* : Int */;
+val* var144 /* : FlatString */;
+val* var145 /* : Array[Object] */;
+long var146 /* : Int */;
+val* var147 /* : NativeArray[Object] */;
+val* var148 /* : String */;
+short int var149 /* : Bool */;
+int cltype150;
+int idtype151;
+val* var152 /* : ANodes[AType] */;
+val* var154 /* : ANodes[AType] */;
+val* var_ /* var : ANodes[AType] */;
+val* var155 /* : Iterator[ANode] */;
+val* var_156 /* var : Iterator[AType] */;
+short int var157 /* : Bool */;
+val* var158 /* : nullable Object */;
+val* var_a /* var a: AType */;
+val* var159 /* : nullable MType */;
+val* var161 /* : nullable MType */;
+val* var_t /* var t: nullable MType */;
+val* var162 /* : null */;
+short int var163 /* : Bool */;
+short int var164 /* : Bool */;
+val* var_other166 /* var other: nullable Object */;
+short int var167 /* : Bool */;
+short int var169 /* : Bool */;
+short int var172 /* : Bool */;
+int cltype173;
+int idtype174;
+val* var175 /* : Array[MType] */;
+val* var177 /* : Array[MType] */;
+val* var_178 /* var : Array[MType] */;
+val* var179 /* : ArrayIterator[nullable Object] */;
+val* var_180 /* var : ArrayIterator[MType] */;
+short int var181 /* : Bool */;
+val* var182 /* : nullable Object */;
+val* var_t183 /* var t: MType */;
+var_node = p0;
+var_mtype = p1;
+var_mpropdef = p2;
+{
+{ /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
+var2 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
+if (unlikely(var2 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
+show_backtrace(1);
+}
+var = var2;
+RET_LABEL1:(void)0;
+}
+}
+{
+{ /* Inline model#MClassDef#mmodule (var) on <var:MClassDef> */
+var5 = var->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var:MClassDef> */
+if (unlikely(var5 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
+show_backtrace(1);
+}
+var3 = var5;
+RET_LABEL4:(void)0;
+}
+}
+var_mmodule = var3;
+{
+{ /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MPropDef> */
+var8 = var_mpropdef->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MPropDef> */
+if (unlikely(var8 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
+show_backtrace(1);
+}
+var6 = var8;
+RET_LABEL7:(void)0;
+}
+}
+var_mproperty = var6;
+var9 = NULL;
+var_vis_type = var9;
+var10 = NULL;
+var_mmodule_type = var10;
+{
+var11 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_model__MType__as_notnullable]))(var_mtype) /* as_notnullable on <var_mtype:MType>*/;
+}
+var_mtype = var11;
+/* <var_mtype:MType> isa MClassType */
+cltype = type_model__MClassType.color;
+idtype = type_model__MClassType.id;
+if(cltype >= var_mtype->type->table_size) {
+var12 = 0;
+} else {
+var12 = var_mtype->type->type_table[cltype] == idtype;
+}
+if (var12){
+{
+{ /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
+var15 = var_mtype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_mtype:MType(MClassType)> */
+if (unlikely(var15 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
+show_backtrace(1);
+}
+var13 = var15;
+RET_LABEL14:(void)0;
+}
+}
+{
+{ /* Inline model#MClass#visibility (var13) on <var13:MClass> */
+var18 = var13->attrs[COLOR_model__MClass___visibility].val; /* _visibility on <var13:MClass> */
+if (unlikely(var18 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 375);
+show_backtrace(1);
+}
+var16 = var18;
+RET_LABEL17:(void)0;
+}
+}
+var_vis_type = var16;
+{
+{ /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MClassType)> */
+var21 = var_mtype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_mtype:MType(MClassType)> */
+if (unlikely(var21 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
+show_backtrace(1);
+}
+var19 = var21;
+RET_LABEL20:(void)0;
+}
+}
+{
+{ /* Inline model#MClass#intro (var19) on <var19:MClass> */
+var24 = var19->attrs[COLOR_model__MClass___intro].val; /* _intro on <var19:MClass> */
+if (unlikely(var24 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
+show_backtrace(1);
+}
+var22 = var24;
+RET_LABEL23:(void)0;
+}
+}
+{
+{ /* Inline model#MClassDef#mmodule (var22) on <var22:MClassDef> */
+var27 = var22->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var22:MClassDef> */
+if (unlikely(var27 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
+show_backtrace(1);
+}
+var25 = var27;
+RET_LABEL26:(void)0;
+}
+}
+var_mmodule_type = var25;
+} else {
+/* <var_mtype:MType> isa MVirtualType */
+cltype29 = type_model__MVirtualType.color;
+idtype30 = type_model__MVirtualType.id;
+if(cltype29 >= var_mtype->type->table_size) {
+var28 = 0;
+} else {
+var28 = var_mtype->type->type_table[cltype29] == idtype30;
+}
+if (var28){
+{
+{ /* Inline model#MVirtualType#mproperty (var_mtype) on <var_mtype:MType(MVirtualType)> */
+var33 = var_mtype->attrs[COLOR_model__MVirtualType___mproperty].val; /* _mproperty on <var_mtype:MType(MVirtualType)> */
+if (unlikely(var33 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1152);
+show_backtrace(1);
+}
+var31 = var33;
+RET_LABEL32:(void)0;
+}
+}
+{
+{ /* Inline model#MProperty#visibility (var31) on <var31:MProperty> */
+var36 = var31->attrs[COLOR_model__MProperty___visibility].val; /* _visibility on <var31:MProperty> */
+if (unlikely(var36 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1630);
+show_backtrace(1);
+}
+var34 = var36;
+RET_LABEL35:(void)0;
+}
+}
+var_vis_type = var34;
+{
+{ /* Inline model#MVirtualType#mproperty (var_mtype) on <var_mtype:MType(MVirtualType)> */
+var39 = var_mtype->attrs[COLOR_model__MVirtualType___mproperty].val; /* _mproperty on <var_mtype:MType(MVirtualType)> */
+if (unlikely(var39 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1152);
+show_backtrace(1);
+}
+var37 = var39;
+RET_LABEL38:(void)0;
+}
+}
+{
+{ /* Inline model#MProperty#intro_mclassdef (var37) on <var37:MProperty> */
+var42 = var37->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var37:MProperty> */
+if (unlikely(var42 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1615);
+show_backtrace(1);
+}
+var40 = var42;
+RET_LABEL41:(void)0;
+}
+}
+{
+{ /* Inline model#MClassDef#mmodule (var40) on <var40:MClassDef> */
+var45 = var40->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var40:MClassDef> */
+if (unlikely(var45 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
+show_backtrace(1);
+}
+var43 = var45;
+RET_LABEL44:(void)0;
+}
+}
+var_mmodule_type = var43;
+} else {
+/* <var_mtype:MType> isa MParameterType */
+cltype47 = type_model__MParameterType.color;
+idtype48 = type_model__MParameterType.id;
+if(cltype47 >= var_mtype->type->table_size) {
+var46 = 0;
+} else {
+var46 = var_mtype->type->type_table[cltype47] == idtype48;
+}
+if (var46){
+} else {
+if (varonce) {
+var49 = varonce;
+} else {
+var50 = "Unexpected type ";
+var51 = 16;
+var52 = string__NativeString__to_s_with_length(var50, var51);
+var49 = var52;
+varonce = var49;
+}
+var53 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var53 = array_instance Array[Object] */
+var54 = 2;
+var55 = NEW_array__NativeArray(var54, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var55)->values[0] = (val*) var49;
+((struct instance_array__NativeArray*)var55)->values[1] = (val*) var_mtype;
+{
+((void (*)(val*, val*, long))(var53->class->vft[COLOR_array__Array__with_native]))(var53, var55, var54) /* with_native on <var53:Array[Object]>*/;
+}
+}
+{
+var56 = ((val* (*)(val*))(var53->class->vft[COLOR_string__Object__to_s]))(var53) /* to_s on <var53:Array[Object]>*/;
+}
+{
+parser_nodes__ANode__debug(var_node, var56); /* Direct call parser_nodes#ANode#debug on <var_node:ANode>*/
+}
+PRINT_ERROR("Runtime error: %s", "Aborted");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 259);
+show_backtrace(1);
+}
+}
+}
+var57 = NULL;
+if (var_vis_type == NULL) {
+var58 = 0; /* is null */
+} else {
+var58 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_vis_type,var57) on <var_vis_type:nullable MVisibility> */
+var_other = var57;
+{
+var62 = ((short int (*)(val*, val*))(var_vis_type->class->vft[COLOR_kernel__Object___61d_61d]))(var_vis_type, var_other) /* == on <var_vis_type:nullable MVisibility(MVisibility)>*/;
+var61 = var62;
+}
+var63 = !var61;
+var59 = var63;
+goto RET_LABEL60;
+RET_LABEL60:(void)0;
+}
+var58 = var59;
+}
+if (var58){
+var64 = NULL;
+if (var_mmodule_type == NULL) {
+var65 = 0; /* is null */
+} else {
+var65 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_mmodule_type,var64) on <var_mmodule_type:nullable MModule> */
+var_other = var64;
+{
+var69 = ((short int (*)(val*, val*))(var_mmodule_type->class->vft[COLOR_kernel__Object___61d_61d]))(var_mmodule_type, var_other) /* == on <var_mmodule_type:nullable MModule(MModule)>*/;
+var68 = var69;
+}
+var70 = !var68;
+var66 = var70;
+goto RET_LABEL67;
+RET_LABEL67:(void)0;
+}
+var65 = var66;
+}
+if (unlikely(!var65)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 263);
+show_backtrace(1);
+}
+{
+var71 = mmodule__MModule__visibility_for(var_mmodule, var_mmodule_type);
+}
+var_vis_module_type = var71;
+{
+{ /* Inline model#MProperty#visibility (var_mproperty) on <var_mproperty:MProperty> */
+var74 = var_mproperty->attrs[COLOR_model__MProperty___visibility].val; /* _visibility on <var_mproperty:MProperty> */
+if (unlikely(var74 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1630);
+show_backtrace(1);
+}
+var72 = var74;
+RET_LABEL73:(void)0;
+}
+}
+{
+var75 = kernel__Comparable___62d(var72, var_vis_type);
+}
+if (var75){
+if (varonce76) {
+var77 = varonce76;
+} else {
+var78 = "Error: The ";
+var79 = 11;
+var80 = string__NativeString__to_s_with_length(var78, var79);
+var77 = var80;
+varonce76 = var77;
+}
+{
+{ /* Inline model#MProperty#visibility (var_mproperty) on <var_mproperty:MProperty> */
+var83 = var_mproperty->attrs[COLOR_model__MProperty___visibility].val; /* _visibility on <var_mproperty:MProperty> */
+if (unlikely(var83 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1630);
+show_backtrace(1);
+}
+var81 = var83;
+RET_LABEL82:(void)0;
+}
+}
+if (varonce84) {
+var85 = varonce84;
+} else {
+var86 = " property `";
+var87 = 11;
+var88 = string__NativeString__to_s_with_length(var86, var87);
+var85 = var88;
+varonce84 = var85;
+}
+if (varonce89) {
+var90 = varonce89;
+} else {
+var91 = "` cannot contain the ";
+var92 = 21;
+var93 = string__NativeString__to_s_with_length(var91, var92);
+var90 = var93;
+varonce89 = var90;
+}
+if (varonce94) {
+var95 = varonce94;
+} else {
+var96 = " type `";
+var97 = 7;
+var98 = string__NativeString__to_s_with_length(var96, var97);
+var95 = var98;
+varonce94 = var95;
+}
+if (varonce99) {
+var100 = varonce99;
+} else {
+var101 = "`";
+var102 = 1;
+var103 = string__NativeString__to_s_with_length(var101, var102);
+var100 = var103;
+varonce99 = var100;
+}
+var104 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var104 = array_instance Array[Object] */
+var105 = 9;
+var106 = NEW_array__NativeArray(var105, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var106)->values[0] = (val*) var77;
+((struct instance_array__NativeArray*)var106)->values[1] = (val*) var81;
+((struct instance_array__NativeArray*)var106)->values[2] = (val*) var85;
+((struct instance_array__NativeArray*)var106)->values[3] = (val*) var_mproperty;
+((struct instance_array__NativeArray*)var106)->values[4] = (val*) var90;
+((struct instance_array__NativeArray*)var106)->values[5] = (val*) var_vis_type;
+((struct instance_array__NativeArray*)var106)->values[6] = (val*) var95;
+((struct instance_array__NativeArray*)var106)->values[7] = (val*) var_mtype;
+((struct instance_array__NativeArray*)var106)->values[8] = (val*) var100;
+{
+((void (*)(val*, val*, long))(var104->class->vft[COLOR_array__Array__with_native]))(var104, var106, var105) /* with_native on <var104:Array[Object]>*/;
+}
+}
+{
+var107 = ((val* (*)(val*))(var104->class->vft[COLOR_string__Object__to_s]))(var104) /* to_s on <var104:Array[Object]>*/;
+}
+{
+modelbuilder__ModelBuilder__error(self, var_node, var107); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
+}
+goto RET_LABEL;
+} else {
+{
+{ /* Inline model#MProperty#visibility (var_mproperty) on <var_mproperty:MProperty> */
+var110 = var_mproperty->attrs[COLOR_model__MProperty___visibility].val; /* _visibility on <var_mproperty:MProperty> */
+if (unlikely(var110 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1630);
+show_backtrace(1);
+}
+var108 = var110;
+RET_LABEL109:(void)0;
+}
+}
+{
+var111 = kernel__Comparable___62d(var108, var_vis_module_type);
+}
+if (var111){
+if (varonce112) {
+var113 = varonce112;
+} else {
+var114 = "Error: The ";
+var115 = 11;
+var116 = string__NativeString__to_s_with_length(var114, var115);
+var113 = var116;
+varonce112 = var113;
+}
+{
+{ /* Inline model#MProperty#visibility (var_mproperty) on <var_mproperty:MProperty> */
+var119 = var_mproperty->attrs[COLOR_model__MProperty___visibility].val; /* _visibility on <var_mproperty:MProperty> */
+if (unlikely(var119 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1630);
+show_backtrace(1);
+}
+var117 = var119;
+RET_LABEL118:(void)0;
+}
+}
+if (varonce120) {
+var121 = varonce120;
+} else {
+var122 = " property `";
+var123 = 11;
+var124 = string__NativeString__to_s_with_length(var122, var123);
+var121 = var124;
+varonce120 = var121;
+}
+if (varonce125) {
+var126 = varonce125;
+} else {
+var127 = "` cannot contain the type `";
+var128 = 27;
+var129 = string__NativeString__to_s_with_length(var127, var128);
+var126 = var129;
+varonce125 = var126;
+}
+if (varonce130) {
+var131 = varonce130;
+} else {
+var132 = "` from the ";
+var133 = 11;
+var134 = string__NativeString__to_s_with_length(var132, var133);
+var131 = var134;
+varonce130 = var131;
+}
+if (varonce135) {
+var136 = varonce135;
+} else {
+var137 = " module `";
+var138 = 9;
+var139 = string__NativeString__to_s_with_length(var137, var138);
+var136 = var139;
+varonce135 = var136;
+}
+if (varonce140) {
+var141 = varonce140;
+} else {
+var142 = "`";
+var143 = 1;
+var144 = string__NativeString__to_s_with_length(var142, var143);
+var141 = var144;
+varonce140 = var141;
+}
+var145 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var145 = array_instance Array[Object] */
+var146 = 11;
+var147 = NEW_array__NativeArray(var146, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var147)->values[0] = (val*) var113;
+((struct instance_array__NativeArray*)var147)->values[1] = (val*) var117;
+((struct instance_array__NativeArray*)var147)->values[2] = (val*) var121;
+((struct instance_array__NativeArray*)var147)->values[3] = (val*) var_mproperty;
+((struct instance_array__NativeArray*)var147)->values[4] = (val*) var126;
+((struct instance_array__NativeArray*)var147)->values[5] = (val*) var_mtype;
+((struct instance_array__NativeArray*)var147)->values[6] = (val*) var131;
+((struct instance_array__NativeArray*)var147)->values[7] = (val*) var_vis_module_type;
+((struct instance_array__NativeArray*)var147)->values[8] = (val*) var136;
+((struct instance_array__NativeArray*)var147)->values[9] = (val*) var_mmodule_type;
+((struct instance_array__NativeArray*)var147)->values[10] = (val*) var141;
+{
+((void (*)(val*, val*, long))(var145->class->vft[COLOR_array__Array__with_native]))(var145, var147, var146) /* with_native on <var145:Array[Object]>*/;
+}
+}
+{
+var148 = ((val* (*)(val*))(var145->class->vft[COLOR_string__Object__to_s]))(var145) /* to_s on <var145:Array[Object]>*/;
+}
+{
+modelbuilder__ModelBuilder__error(self, var_node, var148); /* Direct call modelbuilder#ModelBuilder#error on <self:ModelBuilder>*/
+}
+goto RET_LABEL;
+} else {
+}
+}
+} else {
+}
+/* <var_node:ANode> isa AType */
+cltype150 = type_parser_nodes__AType.color;
+idtype151 = type_parser_nodes__AType.id;
+if(cltype150 >= var_node->type->table_size) {
+var149 = 0;
+} else {
+var149 = var_node->type->type_table[cltype150] == idtype151;
+}
+if (var149){
+{
+{ /* Inline parser_nodes#AType#n_types (var_node) on <var_node:ANode(AType)> */
+var154 = var_node->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <var_node:ANode(AType)> */
+if (unlikely(var154 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
+PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1300);
+show_backtrace(1);
+}
+var152 = var154;
+RET_LABEL153:(void)0;
+}
+}
+var_ = var152;
+{
+var155 = parser_nodes__ANodes__iterator(var_);
+}
+var_156 = var155;
+for(;;) {
+{
+var157 = ((short int (*)(val*))(var_156->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_156) /* is_ok on <var_156:Iterator[AType]>*/;
+}
+if (var157){
+{
+var158 = ((val* (*)(val*))(var_156->class->vft[COLOR_abstract_collection__Iterator__item]))(var_156) /* item on <var_156:Iterator[AType]>*/;
+}
+var_a = var158;
+{
+{ /* Inline modelize_class#AType#mtype (var_a) on <var_a:AType> */
+var161 = var_a->attrs[COLOR_modelize_class__AType___mtype].val; /* _mtype on <var_a:AType> */
+var159 = var161;
+RET_LABEL160:(void)0;
+}
+}
+var_t = var159;
+var162 = NULL;
+if (var_t == NULL) {
+var163 = 1; /* is null */
+} else {
+var163 = 0; /* arg is null but recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#== (var_t,var162) on <var_t:nullable MType> */
+var_other166 = var162;
+{
+{ /* Inline kernel#Object#is_same_instance (var_t,var_other166) on <var_t:nullable MType(MType)> */
+var169 = var_t == var_other166;
+var167 = var169;
+goto RET_LABEL168;
+RET_LABEL168:(void)0;
+}
+}
+var164 = var167;
+goto RET_LABEL165;
+RET_LABEL165:(void)0;
+}
+var163 = var164;
+}
+if (var163){
+goto BREAK_label;
+} else {
+}
+{
+modelize_property__ModelBuilder__check_visibility(self, var_a, var_t, var_mpropdef); /* Direct call modelize_property#ModelBuilder#check_visibility on <self:ModelBuilder>*/
+}
+BREAK_label: (void)0;
+{
+((void (*)(val*))(var_156->class->vft[COLOR_abstract_collection__Iterator__next]))(var_156) /* next on <var_156:Iterator[AType]>*/;
+}
+} else {
+goto BREAK_label170;
+}
+}
+BREAK_label170: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_156) on <var_156:Iterator[AType]> */
+RET_LABEL171:(void)0;
+}
+}
+} else {
+/* <var_mtype:MType> isa MGenericType */
+cltype173 = type_model__MGenericType.color;
+idtype174 = type_model__MGenericType.id;
+if(cltype173 >= var_mtype->type->table_size) {
+var172 = 0;
+} else {
+var172 = var_mtype->type->type_table[cltype173] == idtype174;
+}
+if (var172){
+{
+{ /* Inline model#MClassType#arguments (var_mtype) on <var_mtype:MType(MGenericType)> */
+var177 = var_mtype->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on <var_mtype:MType(MGenericType)> */
+if (unlikely(var177 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
+show_backtrace(1);
+}
+var175 = var177;
+RET_LABEL176:(void)0;
+}
+}
+var_178 = var175;
+{
+var179 = array__AbstractArrayRead__iterator(var_178);
+}
+var_180 = var179;
+for(;;) {
+{
+var181 = array__ArrayIterator__is_ok(var_180);
+}
+if (var181){
+{
+var182 = array__ArrayIterator__item(var_180);
+}
+var_t183 = var182;
+{
+modelize_property__ModelBuilder__check_visibility(self, var_node, var_t183, var_mpropdef); /* Direct call modelize_property#ModelBuilder#check_visibility on <self:ModelBuilder>*/
+}
+{
+array__ArrayIterator__next(var_180); /* Direct call array#ArrayIterator#next on <var_180:ArrayIterator[MType]>*/
+}
+} else {
+goto BREAK_label184;
+}
+}
+BREAK_label184: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_180) on <var_180:ArrayIterator[MType]> */
+RET_LABEL185:(void)0;
+}
+}
+} else {
+}
+}
+RET_LABEL:;
+}
+/* method modelize_property#ModelBuilder#check_visibility for (self: Object, ANode, MType, MPropDef) */
+void VIRTUAL_modelize_property__ModelBuilder__check_visibility(val* self, val* p0, val* p1, val* p2) {
+modelize_property__ModelBuilder__check_visibility(self, p0, p1, p2); /* Direct call modelize_property#ModelBuilder#check_visibility on <self:Object(ModelBuilder)>*/
+RET_LABEL:;
+}
+/* method modelize_property#MPropDef#has_supercall for (self: MPropDef): Bool */
+short int modelize_property__MPropDef__has_supercall(val* self) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+var1 = self->attrs[COLOR_modelize_property__MPropDef___has_supercall].s; /* _has_supercall on <self:MPropDef> */
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method modelize_property#MPropDef#has_supercall for (self: Object): Bool */
+short int VIRTUAL_modelize_property__MPropDef__has_supercall(val* self) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+short int var3 /* : Bool */;
+{ /* Inline modelize_property#MPropDef#has_supercall (self) on <self:Object(MPropDef)> */
+var3 = self->attrs[COLOR_modelize_property__MPropDef___has_supercall].s; /* _has_supercall on <self:Object(MPropDef)> */
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method modelize_property#MPropDef#has_supercall= for (self: MPropDef, Bool) */
+void modelize_property__MPropDef__has_supercall_61d(val* self, short int p0) {
+self->attrs[COLOR_modelize_property__MPropDef___has_supercall].s = p0; /* _has_supercall on <self:MPropDef> */
+RET_LABEL:;
+}
+/* method modelize_property#MPropDef#has_supercall= for (self: Object, Bool) */
+void VIRTUAL_modelize_property__MPropDef__has_supercall_61d(val* self, short int p0) {
+{ /* Inline modelize_property#MPropDef#has_supercall= (self,p0) on <self:Object(MPropDef)> */
+self->attrs[COLOR_modelize_property__MPropDef___has_supercall].s = p0; /* _has_supercall on <self:Object(MPropDef)> */
+RET_LABEL1:(void)0;
+}
+RET_LABEL:;
+}
+/* method modelize_property#AClassdef#build_properties_is_done for (self: AClassdef): Bool */
+short int modelize_property__AClassdef__build_properties_is_done(val* self) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+var1 = self->attrs[COLOR_modelize_property__AClassdef___build_properties_is_done].s; /* _build_properties_is_done on <self:AClassdef> */
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method modelize_property#AClassdef#build_properties_is_done for (self: Object): Bool */
+short int VIRTUAL_modelize_property__AClassdef__build_properties_is_done(val* self) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+short int var3 /* : Bool */;
+{ /* Inline modelize_property#AClassdef#build_properties_is_done (self) on <self:Object(AClassdef)> */
+var3 = self->attrs[COLOR_modelize_property__AClassdef___build_properties_is_done].s; /* _build_properties_is_done on <self:Object(AClassdef)> */
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method modelize_property#AClassdef#build_properties_is_done= for (self: AClassdef, Bool) */
+void modelize_property__AClassdef__build_properties_is_done_61d(val* self, short int p0) {
+self->attrs[COLOR_modelize_property__AClassdef___build_properties_is_done].s = p0; /* _build_properties_is_done on <self:AClassdef> */
+RET_LABEL:;
+}
+/* method modelize_property#AClassdef#build_properties_is_done= for (self: Object, Bool) */
+void VIRTUAL_modelize_property__AClassdef__build_properties_is_done_61d(val* self, short int p0) {
+{ /* Inline modelize_property#AClassdef#build_properties_is_done= (self,p0) on <self:Object(AClassdef)> */
+self->attrs[COLOR_modelize_property__AClassdef___build_properties_is_done].s = p0; /* _build_properties_is_done on <self:Object(AClassdef)> */
+RET_LABEL1:(void)0;
+}
+RET_LABEL:;
+}
+/* method modelize_property#AClassdef#mfree_init for (self: AClassdef): nullable MMethodDef */
+val* modelize_property__AClassdef__mfree_init(val* self) {
+val* var /* : nullable MMethodDef */;
+val* var1 /* : nullable MMethodDef */;
+var1 = self->attrs[COLOR_modelize_property__AClassdef___mfree_init].val; /* _mfree_init on <self:AClassdef> */
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method modelize_property#AClassdef#mfree_init for (self: Object): nullable MMethodDef */
+val* VIRTUAL_modelize_property__AClassdef__mfree_init(val* self) {
+val* var /* : nullable MMethodDef */;
+val* var1 /* : nullable MMethodDef */;
+val* var3 /* : nullable MMethodDef */;
+{ /* Inline modelize_property#AClassdef#mfree_init (self) on <self:Object(AClassdef)> */
+var3 = self->attrs[COLOR_modelize_property__AClassdef___mfree_init].val; /* _mfree_init on <self:Object(AClassdef)> */
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method modelize_property#AClassdef#mfree_init= for (self: AClassdef, nullable MMethodDef) */
+void modelize_property__AClassdef__mfree_init_61d(val* self, val* p0) {
+self->attrs[COLOR_modelize_property__AClassdef___mfree_init].val = p0; /* _mfree_init on <self:AClassdef> */
+RET_LABEL:;
+}
+/* method modelize_property#AClassdef#mfree_init= for (self: Object, nullable MMethodDef) */
+void VIRTUAL_modelize_property__AClassdef__mfree_init_61d(val* self, val* p0) {
+{ /* Inline modelize_property#AClassdef#mfree_init= (self,p0) on <self:Object(AClassdef)> */
+self->attrs[COLOR_modelize_property__AClassdef___mfree_init].val = p0; /* _mfree_init on <self:Object(AClassdef)> */
+RET_LABEL1:(void)0;
+}
+RET_LABEL:;
+}
+/* method modelize_property#MClass#root_init for (self: MClass): nullable MMethodDef */
+val* modelize_property__MClass__root_init(val* self) {
+val* var /* : nullable MMethodDef */;
+val* var1 /* : nullable MMethodDef */;
+var1 = self->attrs[COLOR_modelize_property__MClass___root_init].val; /* _root_init on <self:MClass> */
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method modelize_property#MClass#root_init for (self: Object): nullable MMethodDef */
+val* VIRTUAL_modelize_property__MClass__root_init(val* self) {
+val* var /* : nullable MMethodDef */;
+val* var1 /* : nullable MMethodDef */;
+val* var3 /* : nullable MMethodDef */;
+{ /* Inline modelize_property#MClass#root_init (self) on <self:Object(MClass)> */
+var3 = self->attrs[COLOR_modelize_property__MClass___root_init].val; /* _root_init on <self:Object(MClass)> */
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method modelize_property#MClass#root_init= for (self: MClass, nullable MMethodDef) */
+void modelize_property__MClass__root_init_61d(val* self, val* p0) {
+self->attrs[COLOR_modelize_property__MClass___root_init].val = p0; /* _root_init on <self:MClass> */
+RET_LABEL:;
+}
+/* method modelize_property#MClass#root_init= for (self: Object, nullable MMethodDef) */
+void VIRTUAL_modelize_property__MClass__root_init_61d(val* self, val* p0) {
+{ /* Inline modelize_property#MClass#root_init= (self,p0) on <self:Object(MClass)> */
+self->attrs[COLOR_modelize_property__MClass___root_init].val = p0; /* _root_init on <self:Object(MClass)> */
+RET_LABEL1:(void)0;
+}
+RET_LABEL:;
+}
+/* method modelize_property#MClassDef#mprop2npropdef for (self: MClassDef): Map[MProperty, APropdef] */
+val* modelize_property__MClassDef__mprop2npropdef(val* self) {
+val* var /* : Map[MProperty, APropdef] */;
+val* var1 /* : Map[MProperty, APropdef] */;
+var1 = self->attrs[COLOR_modelize_property__MClassDef___mprop2npropdef].val; /* _mprop2npropdef on <self:MClassDef> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mprop2npropdef");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 310);
+show_backtrace(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method modelize_property#MClassDef#mprop2npropdef for (self: Object): Map[MProperty, APropdef] */
+val* VIRTUAL_modelize_property__MClassDef__mprop2npropdef(val* self) {
+val* var /* : Map[MProperty, APropdef] */;
+val* var1 /* : Map[MProperty, APropdef] */;
+val* var3 /* : Map[MProperty, APropdef] */;
+{ /* Inline modelize_property#MClassDef#mprop2npropdef (self) on <self:Object(MClassDef)> */
+var3 = self->attrs[COLOR_modelize_property__MClassDef___mprop2npropdef].val; /* _mprop2npropdef on <self:Object(MClassDef)> */
+if (unlikely(var3 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mprop2npropdef");
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 310);
+show_backtrace(1);
+}
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method modelize_property#APropdef#mpropdef for (self: APropdef): nullable MPropDef */
+val* modelize_property__APropdef__mpropdef(val* self) {
+val* var /* : nullable MPropDef */;
+val* var1 /* : nullable MPropDef */;
+var1 = self->attrs[COLOR_modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:APropdef> */
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method modelize_property#APropdef#mpropdef for (self: Object): nullable MPropDef */
+val* VIRTUAL_modelize_property__APropdef__mpropdef(val* self) {
+val* var /* : nullable MPropDef */;
+val* var1 /* : nullable MPropDef */;
+val* var3 /* : nullable MPropDef */;
+{ /* Inline modelize_property#APropdef#mpropdef (self) on <self:Object(APropdef)> */
+var3 = self->attrs[COLOR_modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:Object(APropdef)> */
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method modelize_property#APropdef#mpropdef= for (self: APropdef, nullable MPropDef) */
+void modelize_property__APropdef__mpropdef_61d(val* self, val* p0) {
+short int var /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+const char* var_class_name;
+/* Covariant cast for argument 0 (mpropdef) <p0:nullable MPropDef> isa nullable MPROPDEF */
+/* <p0:nullable MPropDef> isa nullable MPROPDEF */
+type_struct = self->type->resolution_table->types[COLOR_nullable_parser_nodes__APropdef_VTMPROPDEF];
+cltype = type_struct->color;
+idtype = type_struct->id;
+if(p0 == NULL) {
+var = 1;
+} else {
+if(cltype >= p0->type->table_size) {
+var = 0;
+} else {
+var = p0->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var)) {
+var_class_name = p0 == NULL ? "null" : p0->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 319);
+show_backtrace(1);
+}
+self->attrs[COLOR_modelize_property__APropdef___mpropdef].val = p0; /* _mpropdef on <self:APropdef> */
+RET_LABEL:;
+}
+/* method modelize_property#APropdef#mpropdef= for (self: Object, nullable MPropDef) */
+void VIRTUAL_modelize_property__APropdef__mpropdef_61d(val* self, val* p0) {
+short int var /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+const char* var_class_name;
+{ /* Inline modelize_property#APropdef#mpropdef= (self,p0) on <self:Object(APropdef)> */
+/* Covariant cast for argument 0 (mpropdef) <p0:nullable MPropDef> isa nullable MPROPDEF */
+/* <p0:nullable MPropDef> isa nullable MPROPDEF */
+type_struct = self->type->resolution_table->types[COLOR_nullable_parser_nodes__APropdef_VTMPROPDEF];
+cltype = type_struct->color;
+idtype = type_struct->id;
+if(p0 == NULL) {
+var = 1;
+} else {
+if(cltype >= p0->type->table_size) {
+var = 0;
+} else {
+var = p0->type->type_table[cltype] == idtype;
+}
+}
+if (unlikely(!var)) {
+var_class_name = p0 == NULL ? "null" : p0->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", "modelize/modelize_property.nit", 319);
+show_backtrace(1);
+}
+self->attrs[COLOR_modelize_property__APropdef___mpropdef].val = p0; /* _mpropdef on <self:Object(APropdef)> */
+RET_LABEL1:(void)0;
+}
+RET_LABEL:;
+}
+/* method modelize_property#APropdef#new_property_visibility for (self: APropdef, ModelBuilder, MClassDef, nullable AVisibility): MVisibility */
+val* modelize_property__APropdef__new_property_visibility(val* self, val* p0, val* p1, val* p2) {
+val* var /* : MVisibility */;
+val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
+val* var_mclassdef /* var mclassdef: MClassDef */;
+val* var_nvisibility /* var nvisibility: nullable AVisibility */;
+val* var1 /* : MVisibility */;
+val* var_mvisibility /* var mvisibility: MVisibility */;
+val* var2 /* : null */;
+short int var3 /* : Bool */;
+short int var4 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var6 /* : Bool */;
+short int var7 /* : Bool */;
+short int var8 /* : Bool */;
+val* var9 /* : MVisibility */;
+val* var10 /* : MVisibility */;
+short int var11 /* : Bool */;
+short int var12 /* : Bool */;
+val* var_other14 /* var other: nullable Object */;
+short int var15 /* : Bool */;
+short int var17 /* : Bool */;
+static val* varonce;
+val* var18 /* : String */;
+char* var19 /* : NativeString */;
+long var20 /* : Int */;
+val* var21 /* : FlatString */;
+val* var22 /* : MVisibility */;
+val* var23 /* : MClass */;
+val* var25 /* : MClass */;
+val* var26 /* : MVisibility */;
+val* var28 /* : MVisibility */;
+val* var29 /* : MVisibility */;
+short int var30 /* : Bool */;
+short int var31 /* : Bool */;
+short int var33 /* : Bool */;
+short int var35 /* : Bool */;
+val* var36 /* : MVisibility */;
+short int var37 /* : Bool */;
+short int var38 /* : Bool */;
+short int var40 /* : Bool */;
+short int var42 /* : Bool */;
+val* var43 /* : null */;
+short int var44 /* : Bool */;
+short int var45 /* : Bool */;
+short int var47 /* : Bool */;
+short int var48 /* : Bool */;
+short int var49 /* : Bool */;
+static val* varonce50;
+val* var51 /* : String */;
+char* var52 /* : NativeString */;
+long var53 /* : Int */;
+val* var54 /* : FlatString */;
+val* var55 /* : MVisibility */;
+short int var56 /* : Bool */;
+short int var57 /* : Bool */;
+short int var59 /* : Bool */;
+short int var61 /* : Bool */;
+val* var62 /* : null */;
+short int var63 /* : Bool */;
+short int var64 /* : Bool */;
+short int var66 /* : Bool */;
+short int var67 /* : Bool */;
+short int var68 /* : Bool */;
+static val* varonce69;
+val* var70 /* : String */;
+char* var71 /* : NativeString */;
+long var72 /* : Int */;
+val* var73 /* : FlatString */;
+static val* varonce74;
+val* var75 /* : String */;
+char* var76 /* : NativeString */;
+long var77 /* : Int */;
+val* var78 /* : FlatString */;
+val* var79 /* : MVisibility */;
+var_modelbuilder = p0;
+var_mclassdef = p1;
+var_nvisibility = p2;
+{
+var1 = model_base__Object__public_visibility(self);
+}
+var_mvisibility = var1;
+var2 = NULL;
+if (var_nvisibility == NULL) {
+var3 = 0; /* is null */
+} else {
+var3 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_nvisibility,var2) on <var_nvisibility:nullable AVisibility> */
+var_other = var2;
+{
+var7 = ((short int (*)(val*, val*))(var_nvisibility->class->vft[COLOR_kernel__Object___61d_61d]))(var_nvisibility, var_other) /* == on <var_nvisibility:nullable AVisibility(AVisibility)>*/;
+var6 = var7;
+}
+var8 = !var6;
+var4 = var8;
+goto RET_LABEL5;
+RET_LABEL5:(void)0;
+}
+var3 = var4;
+}
+if (var3){
+{
+var9 = ((val* (*)(val*))(var_nvisibility->class->vft[COLOR_modelbuilder__AVisibility__mvisibility]))(var_nvisibility) /* mvisibility on <var_nvisibility:nullable AVisibility(AVisibility)>*/;
+}
+var_mvisibility = var9;
+{
+var10 = model_base__Object__intrude_visibility(self);
+}
+{
+{ /* Inline kernel#Object#== (var_mvisibility,var10) on <var_mvisibility:MVisibility> */
+var_other14 = var10;
+{
+{ /* Inline kernel#Object#is_same_instance (var_mvisibility,var_other14) on <var_mvisibility:MVisibility> */
+var17 = var_mvisibility == var_other14;
+var15 = var17;
+goto RET_LABEL16;
+RET_LABEL16:(void)0;