mmodule__MGroup__mmodules_61d(self, p0);
RET_LABEL:;
}
+/* method mmodule#MGroup#fuzzy_owner for (self: MGroup): nullable MModule */
+val* mmodule__MGroup__fuzzy_owner(val* self) {
+val* var /* : nullable MModule */;
+val* var1 /* : Array[MModule] */;
+val* var2 /* : Iterator[nullable Object] */;
+short int var3 /* : Bool */;
+val* var4 /* : nullable Object */;
+val* var_m /* var m: MModule */;
+val* var5 /* : String */;
+val* var6 /* : String */;
+short int var7 /* : Bool */;
+val* var8 /* : null */;
+var1 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MGroup__mmodules]))(self) /* mmodules on <self:MGroup>*/;
+var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Collection__iterator]))(var1) /* iterator on <var1:Array[MModule]>*/;
+for(;;) {
+var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on <var2:Iterator[nullable Object]>*/;
+if(!var3) break;
+var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on <var2:Iterator[nullable Object]>*/;
+var_m = var4;
+var5 = ((val* (*)(val*))(var_m->class->vft[COLOR_mmodule__MModule__name]))(var_m) /* name on <var_m:MModule>*/;
+var6 = ((val* (*)(val*))(self->class->vft[COLOR_mproject__MGroup__name]))(self) /* name on <self:MGroup>*/;
+var7 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var6) /* == on <var5:String>*/;
+if (var7){
+var = var_m;
+goto RET_LABEL;
+} else {
+}
+CONTINUE_label: (void)0;
+((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on <var2:Iterator[nullable Object]>*/;
+}
+BREAK_label: (void)0;
+var8 = NULL;
+var = var8;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method mmodule#MGroup#fuzzy_owner for (self: Object): nullable MModule */
+val* VIRTUAL_mmodule__MGroup__fuzzy_owner(val* self) {
+val* var /* : nullable MModule */;
+val* var1 /* : nullable MModule */;
+var1 = mmodule__MGroup__fuzzy_owner(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
/* method mmodule#MModule#model for (self: MModule): Model */
val* mmodule__MModule__model(val* self) {
val* var /* : Model */;
var1 = self->attrs[COLOR_mmodule__MModule___64dmodel].val; /* @model on <self:MModule> */
if (var1 == NULL) {
fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @model");
-fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 64);
+fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 72);
show_backtrace(1);
}
var = var1;
var1 = self->attrs[COLOR_mmodule__MModule___64dname].val; /* @name on <self:MModule> */
if (var1 == NULL) {
fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @name");
-fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 76);
+fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 84);
show_backtrace(1);
}
var = var1;
var1 = self->attrs[COLOR_mmodule__MModule___64dlocation].val; /* @location on <self:MModule> */
if (var1 == NULL) {
fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @location");
-fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 79);
+fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 87);
show_backtrace(1);
}
var = var1;
var1 = self->attrs[COLOR_mmodule__MModule___64din_nesting].val; /* @in_nesting on <self:MModule> */
if (var1 == NULL) {
fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @in_nesting");
-fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 85);
+fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 93);
show_backtrace(1);
}
var = var1;
var1 = self->attrs[COLOR_mmodule__MModule___64din_importation].val; /* @in_importation on <self:MModule> */
if (var1 == NULL) {
fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @in_importation");
-fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 91);
+fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 99);
show_backtrace(1);
}
var = var1;
val* var4 /* : null */;
short int var5 /* : Bool */;
val* var6 /* : Array[MModule] */;
-val* var7 /* : Array[MModule] */;
-val* var8 /* : nullable Object */;
-val* var_direct_owner /* var direct_owner: MModule */;
-short int var9 /* : Bool */;
-short int var10 /* : Bool */;
+val* var7 /* : nullable MModule */;
+val* var_direct_owner /* var direct_owner: nullable MModule */;
+short int var8 /* : Bool */;
+val* var9 /* : Array[MModule] */;
+val* var10 /* : Iterator[nullable Object] */;
short int var11 /* : Bool */;
+val* var12 /* : nullable Object */;
+val* var_m /* var m: MModule */;
+short int var13 /* : Bool */;
+val* var14 /* : POSet[MModule] */;
+val* var15 /* : nullable MGroup */;
+val* var16 /* : null */;
+short int var17 /* : Bool */;
+val* var18 /* : nullable MGroup */;
+val* var19 /* : nullable MModule */;
+short int var20 /* : Bool */;
+short int var21 /* : Bool */;
short int var_ /* var : Bool */;
-val* var12 /* : nullable MGroup */;
-val* var13 /* : null */;
-short int var14 /* : Bool */;
-short int var_15 /* var : Bool */;
-val* var16 /* : nullable MGroup */;
-val* var17 /* : Array[MModule] */;
-short int var18 /* : Bool */;
-short int var19 /* : Bool */;
-val* var20 /* : nullable MGroup */;
-val* var21 /* : Array[MModule] */;
-val* var22 /* : nullable Object */;
+val* var22 /* : null */;
short int var23 /* : Bool */;
val* var24 /* : POSet[MModule] */;
val* var25 /* : POSet[MModule] */;
if (var5){
var6 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mmodule__MGroup__mmodules]))(var_mgroup) /* mmodules on <var_mgroup:nullable MGroup(MGroup)>*/;
((void (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var6, self) /* add on <var6:Array[MModule]>*/;
-var7 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mmodule__MGroup__mmodules]))(var_mgroup) /* mmodules on <var_mgroup:nullable MGroup(MGroup)>*/;
-var8 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Collection__first]))(var7) /* first on <var7:Array[MModule]>*/;
-var_direct_owner = var8;
-var11 = ((short int (*)(val*, val*))(var_direct_owner->class->vft[COLOR_kernel__Object___61d_61d]))(var_direct_owner, self) /* == on <var_direct_owner:MModule>*/;
-var_ = var11;
-if (var11){
-var12 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mproject__MGroup__parent]))(var_mgroup) /* parent on <var_mgroup:nullable MGroup(MGroup)>*/;
-var13 = NULL;
-if (var12 == NULL) {
-var14 = 0; /* is null */
+var7 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mmodule__MGroup__fuzzy_owner]))(var_mgroup) /* fuzzy_owner on <var_mgroup:nullable MGroup(MGroup)>*/;
+var_direct_owner = var7;
+if (var_direct_owner == NULL) {
+var8 = 0; /* <self:MModule> cannot be null */
+} else {
+var8 = ((short int (*)(val*, val*))(var_direct_owner->class->vft[COLOR_kernel__Object___61d_61d]))(var_direct_owner, self) /* == on <var_direct_owner:nullable MModule>*/;
+}
+if (var8){
+var9 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mmodule__MGroup__mmodules]))(var_mgroup) /* mmodules on <var_mgroup:nullable MGroup(MGroup)>*/;
+var10 = ((val* (*)(val*))(var9->class->vft[COLOR_abstract_collection__Collection__iterator]))(var9) /* iterator on <var9:Array[MModule]>*/;
+for(;;) {
+var11 = ((short int (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var10) /* is_ok on <var10:Iterator[nullable Object]>*/;
+if(!var11) break;
+var12 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__item]))(var10) /* item on <var10:Iterator[nullable Object]>*/;
+var_m = var12;
+var13 = ((short int (*)(val*, val*))(var_m->class->vft[COLOR_kernel__Object___61d_61d]))(var_m, self) /* == on <var_m:MModule>*/;
+if (var13){
+goto CONTINUE_label;
} else {
-var14 = 1; /* arg is null and recv is not */
}
-var10 = var14;
+((void (*)(val*, val*))(var_m->class->vft[COLOR_mmodule__MModule__direct_owner_61d]))(var_m, self) /* direct_owner= on <var_m:MModule>*/;
+var14 = ((val* (*)(val*))(var_model->class->vft[COLOR_mmodule__Model__mmodule_nesting_hierarchy]))(var_model) /* mmodule_nesting_hierarchy on <var_model:Model>*/;
+((void (*)(val*, val*, val*))(var14->class->vft[COLOR_poset__POSet__add_edge]))(var14, self, var_m) /* add_edge on <var14:POSet[MModule]>*/;
+CONTINUE_label: (void)0;
+((void (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__next]))(var10) /* next on <var10:Iterator[nullable Object]>*/;
+}
+BREAK_label: (void)0;
+var15 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mproject__MGroup__parent]))(var_mgroup) /* parent on <var_mgroup:nullable MGroup(MGroup)>*/;
+var16 = NULL;
+if (var15 == NULL) {
+var17 = 0; /* is null */
} else {
-var10 = var_;
+var17 = 1; /* arg is null and recv is not */
}
-var_15 = var10;
-if (var10){
-var16 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mproject__MGroup__parent]))(var_mgroup) /* parent on <var_mgroup:nullable MGroup(MGroup)>*/;
-if (var16 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Reciever is null");
-fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 120);
+if (var17){
+var18 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mproject__MGroup__parent]))(var_mgroup) /* parent on <var_mgroup:nullable MGroup(MGroup)>*/;
+if (var18 == NULL) {
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 136);
show_backtrace(1);
} else {
-var17 = ((val* (*)(val*))(var16->class->vft[COLOR_mmodule__MGroup__mmodules]))(var16) /* mmodules on <var16:nullable MGroup>*/;
+var19 = ((val* (*)(val*))(var18->class->vft[COLOR_mmodule__MGroup__fuzzy_owner]))(var18) /* fuzzy_owner on <var18:nullable MGroup>*/;
}
-var18 = ((short int (*)(val*))(var17->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var17) /* is_empty on <var17:Array[MModule]>*/;
-var19 = !var18;
-var9 = var19;
+var_direct_owner = var19;
} else {
-var9 = var_15;
}
-if (var9){
-var20 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mproject__MGroup__parent]))(var_mgroup) /* parent on <var_mgroup:nullable MGroup(MGroup)>*/;
-if (var20 == NULL) {
-fprintf(stderr, "Runtime error: %s", "Reciever is null");
-fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 121);
-show_backtrace(1);
} else {
-var21 = ((val* (*)(val*))(var20->class->vft[COLOR_mmodule__MGroup__mmodules]))(var20) /* mmodules on <var20:nullable MGroup>*/;
}
-var22 = ((val* (*)(val*))(var21->class->vft[COLOR_abstract_collection__Collection__first]))(var21) /* first on <var21:Array[MModule]>*/;
-var_direct_owner = var22;
+if (var_direct_owner == NULL) {
+var21 = 1; /* <self:MModule> cannot be null */
+} else {
+var21 = ((short int (*)(val*, val*))(var_direct_owner->class->vft[COLOR_kernel__Object___33d_61d]))(var_direct_owner, self) /* != on <var_direct_owner:nullable MModule>*/;
+}
+var_ = var21;
+if (var21){
+var22 = NULL;
+if (var_direct_owner == NULL) {
+var23 = 0; /* is null */
+} else {
+var23 = 1; /* arg is null and recv is not */
+}
+var20 = var23;
} else {
+var20 = var_;
}
-var23 = ((short int (*)(val*, val*))(var_direct_owner->class->vft[COLOR_kernel__Object___33d_61d]))(var_direct_owner, self) /* != on <var_direct_owner:MModule>*/;
-if (var23){
+if (var20){
((void (*)(val*, val*))(self->class->vft[COLOR_mmodule__MModule__direct_owner_61d]))(self, var_direct_owner) /* direct_owner= on <self:MModule>*/;
var24 = ((val* (*)(val*))(var_model->class->vft[COLOR_mmodule__Model__mmodule_nesting_hierarchy]))(var_model) /* mmodule_nesting_hierarchy on <var_model:Model>*/;
((void (*)(val*, val*, val*))(var24->class->vft[COLOR_poset__POSet__add_edge]))(var24, var_direct_owner, self) /* add_edge on <var24:POSet[MModule]>*/;
var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var1) /* is_empty on <var1:Collection[Object](Collection[MModule])>*/;
if (!var2) {
fprintf(stderr, "Runtime error: %s", "Assert \'unique_invocation\' failed");
-fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 136);
+fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 151);
show_backtrace(1);
}
var3 = ((val* (*)(val*))(var_imported_mmodules->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_imported_mmodules) /* iterator on <var_imported_mmodules:Array[MModule]>*/;
var1 = self->attrs[COLOR_mmodule__MModule___64dintrude_mmodules].val; /* @intrude_mmodules on <self:MModule> */
if (var1 == NULL) {
fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @intrude_mmodules");
-fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 142);
+fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 157);
show_backtrace(1);
}
var = var1;
var1 = self->attrs[COLOR_mmodule__MModule___64dpublic_mmodules].val; /* @public_mmodules on <self:MModule> */
if (var1 == NULL) {
fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @public_mmodules");
-fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 143);
+fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 158);
show_backtrace(1);
}
var = var1;
var1 = self->attrs[COLOR_mmodule__MModule___64dprivate_mmodules].val; /* @private_mmodules on <self:MModule> */
if (var1 == NULL) {
fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @private_mmodules");
-fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 144);
+fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 159);
show_backtrace(1);
}
var = var1;
var35 = ((val* (*)(val*))(var32->class->vft[COLOR_string__Object__to_s]))(var32) /* to_s on <var32:Array[Object]>*/;
((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var35) /* print on <self:MModule>*/;
fprintf(stderr, "Runtime error: %s", "Aborted");
-fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 175);
+fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 190);
show_backtrace(1);
}
}
val* var7 /* : Array[MModule] */;
short int var8 /* : Bool */;
val* var9 /* : null */;
-val* var10 /* : Array[MModule] */;
-val* var11 /* : nullable Object */;
-val* var_res /* var res: MModule */;
-short int var12 /* : Bool */;
-val* var13 /* : null */;
+val* var10 /* : nullable MModule */;
+val* var_res /* var res: nullable MModule */;
+short int var11 /* : Bool */;
+val* var12 /* : null */;
var1 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__mgroup]))(self) /* mgroup on <self:MModule>*/;
var_mgroup = var1;
var2 = NULL;
var6 = ((val* (*)(val*))(var5->class->vft[COLOR_mproject__MProject__root]))(var5) /* root on <var5:MProject>*/;
var_mgroup = var6;
if (var_mgroup == NULL) {
-fprintf(stderr, "Runtime error: %s", "Reciever is null");
-fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 185);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 200);
show_backtrace(1);
} else {
var7 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mmodule__MGroup__mmodules]))(var_mgroup) /* mmodules on <var_mgroup:nullable MGroup>*/;
} else {
}
if (var_mgroup == NULL) {
-fprintf(stderr, "Runtime error: %s", "Reciever is null");
-fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 186);
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 201);
show_backtrace(1);
} else {
-var10 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mmodule__MGroup__mmodules]))(var_mgroup) /* mmodules on <var_mgroup:nullable MGroup>*/;
+var10 = ((val* (*)(val*))(var_mgroup->class->vft[COLOR_mmodule__MGroup__fuzzy_owner]))(var_mgroup) /* fuzzy_owner on <var_mgroup:nullable MGroup>*/;
}
-var11 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Collection__first]))(var10) /* first on <var10:Array[MModule]>*/;
-var_res = var11;
-var12 = ((short int (*)(val*, val*))(var_res->class->vft[COLOR_kernel__Object___61d_61d]))(var_res, self) /* == on <var_res:MModule>*/;
-if (var12){
-var13 = NULL;
-var = var13;
+var_res = var10;
+if (var_res == NULL) {
+var11 = 0; /* <self:MModule> cannot be null */
+} else {
+var11 = ((short int (*)(val*, val*))(var_res->class->vft[COLOR_kernel__Object___61d_61d]))(var_res, self) /* == on <var_res:nullable MModule>*/;
+}
+if (var11){
+var12 = NULL;
+var = var12;
goto RET_LABEL;
} else {
}
goto RET_LABEL;
} else {
fprintf(stderr, "Runtime error: %s", "Aborted");
-fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 204);
+fprintf(stderr, " (%s:%d)\n", "src/model/mmodule.nit", 219);
show_backtrace(1);
}
}