+val* var12 /* : MClassDef */;
+val* var14 /* : MClassDef */;
+val* var_intro /* var intro: MClassDef */;
+val* var15 /* : Array[MClassDef] */;
+val* var17 /* : Array[MClassDef] */;
+val* var_18 /* var : Array[MClassDef] */;
+val* var19 /* : ArrayIterator[nullable Object] */;
+val* var_20 /* var : ArrayIterator[MClassDef] */;
+short int var21 /* : Bool */;
+val* var22 /* : nullable Object */;
+val* var_mclassdef /* var mclassdef: MClassDef */;
+val* var23 /* : POSetElement[MModule] */;
+val* var25 /* : POSetElement[MModule] */;
+val* var26 /* : Collection[nullable Object] */;
+val* var27 /* : MModule */;
+val* var29 /* : MModule */;
+short int var30 /* : Bool */;
+short int var31 /* : Bool */;
+val* var32 /* : nullable POSetElement[MClassDef] */;
+val* var34 /* : nullable POSetElement[MClassDef] */;
+val* var35 /* : Collection[nullable Object] */;
+short int var36 /* : Bool */;
+short int var37 /* : Bool */;
+short int var38 /* : Bool */;
+short int var39 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var41 /* : Bool */;
+short int var43 /* : Bool */;
+short int var44 /* : Bool */;
+val* var_other46 /* var other: nullable Object */;
+short int var47 /* : Bool */;
+short int var48 /* : Bool */;
+val* var49 /* : Sys */;
+val* var50 /* : NativeArray[String] */;
+static val* varonce;
+static val* varonce51;
+val* var52 /* : String */;
+char* var53 /* : NativeString */;
+val* var54 /* : FlatString */;
+static val* varonce55;
+val* var56 /* : String */;
+char* var57 /* : NativeString */;
+val* var58 /* : FlatString */;
+static val* varonce59;
+val* var60 /* : String */;
+char* var61 /* : NativeString */;
+val* var62 /* : FlatString */;
+val* var63 /* : String */;
+val* var64 /* : String */;
+val* var65 /* : String */;
+var_name = p0;
+var_recv = p1;
+{
+{ /* Inline mmodule#MModule#model (self) on <self:MModule> */
+var3 = self->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on <self:MModule> */
+if (unlikely(var3 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 73);
+fatal_exit(1);
+}
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+}
+{
+var4 = nit__model___Model___get_mproperties_by_name(var1, var_name);
+}
+var_props = var4;
+if (var_props == NULL) {
+var5 = 1; /* is null */
+} else {
+var5 = 0; /* arg is null but recv is not */
+}
+if (0) {
+var6 = standard___standard__Array___standard__kernel__Object___61d_61d(var_props, ((val*)NULL));
+var5 = var6;
+}
+if (var5){
+var = ((val*)NULL);
+goto RET_LABEL;
+} else {
+}
+var_res = ((val*)NULL);
+var_ = var_props;
+{
+var7 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
+}
+var_8 = var7;
+for(;;) {
+{
+var9 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_8);
+}
+if (var9){
+{
+var10 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_8);
+}
+var_mprop = var10;
+/* <var_mprop:MProperty> isa MMethod */
+cltype = type_nit__MMethod.color;
+idtype = type_nit__MMethod.id;
+if(cltype >= var_mprop->type->table_size) {
+var11 = 0;
+} else {
+var11 = var_mprop->type->type_table[cltype] == idtype;
+}
+if (unlikely(!var11)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 288);
+fatal_exit(1);
+}
+{
+{ /* Inline model#MProperty#intro_mclassdef (var_mprop) on <var_mprop:MProperty(MMethod)> */
+var14 = var_mprop->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_mprop:MProperty(MMethod)> */
+if (unlikely(var14 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1928);
+fatal_exit(1);
+}
+var12 = var14;
+RET_LABEL13:(void)0;
+}
+}
+var_intro = var12;
+{
+{ /* Inline model#MClass#mclassdefs (var_recv) on <var_recv:MClass> */
+var17 = var_recv->attrs[COLOR_nit__model__MClass___mclassdefs].val; /* _mclassdefs on <var_recv:MClass> */
+if (unlikely(var17 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 454);
+fatal_exit(1);
+}
+var15 = var17;
+RET_LABEL16:(void)0;
+}
+}
+var_18 = var15;
+{
+var19 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_18);
+}
+var_20 = var19;
+for(;;) {
+{
+var21 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_20);
+}
+if (var21){
+{
+var22 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_20);
+}
+var_mclassdef = var22;
+{
+{ /* Inline mmodule#MModule#in_importation (self) on <self:MModule> */
+var25 = self->attrs[COLOR_nit__mmodule__MModule___in_importation].val; /* _in_importation on <self:MModule> */
+if (unlikely(var25 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 96);
+fatal_exit(1);
+}
+var23 = var25;
+RET_LABEL24:(void)0;
+}
+}
+{
+var26 = poset___poset__POSetElement___greaters(var23);
+}
+{
+{ /* Inline model#MClassDef#mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
+var29 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
+if (unlikely(var29 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550);
+fatal_exit(1);
+}
+var27 = var29;
+RET_LABEL28:(void)0;
+}
+}
+{
+var30 = ((short int(*)(val* self, val* p0))((((long)var26&3)?class_info[((long)var26&3)]:var26->class)->vft[COLOR_standard__abstract_collection__Collection__has]))(var26, var27); /* has on <var26:Collection[nullable Object](Collection[MModule])>*/
+}
+var31 = !var30;
+if (var31){
+goto BREAK_label;
+} else {
+}
+{
+{ /* Inline model#MClassDef#in_hierarchy (var_mclassdef) on <var_mclassdef:MClassDef> */
+var34 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___in_hierarchy].val; /* _in_hierarchy on <var_mclassdef:MClassDef> */
+var32 = var34;
+RET_LABEL33:(void)0;
+}
+}
+if (var32 == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 292);
+fatal_exit(1);
+} else {
+var35 = poset___poset__POSetElement___greaters(var32);
+}
+{
+var36 = ((short int(*)(val* self, val* p0))((((long)var35&3)?class_info[((long)var35&3)]:var35->class)->vft[COLOR_standard__abstract_collection__Collection__has]))(var35, var_intro); /* has on <var35:Collection[nullable Object](Collection[MClassDef])>*/
+}
+var37 = !var36;
+if (var37){
+goto BREAK_label;
+} else {
+}
+if (var_res == NULL) {
+var38 = 1; /* is null */
+} else {
+var38 = 0; /* arg is null but recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#== (var_res,((val*)NULL)) on <var_res:nullable MMethod> */
+var_other = ((val*)NULL);
+{
+{ /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable MMethod(MMethod)> */
+var43 = var_res == var_other;
+var41 = var43;
+goto RET_LABEL42;
+RET_LABEL42:(void)0;
+}
+}
+var39 = var41;
+goto RET_LABEL40;
+RET_LABEL40:(void)0;
+}
+var38 = var39;
+}
+if (var38){
+var_res = var_mprop;
+} else {
+{
+{ /* Inline kernel#Object#!= (var_res,var_mprop) on <var_res:nullable MMethod(MMethod)> */
+var_other46 = var_mprop;
+{
+var47 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other46); /* == on <var_res:nullable MMethod(MMethod)>*/
+}
+var48 = !var47;
+var44 = var48;
+goto RET_LABEL45;
+RET_LABEL45:(void)0;
+}
+}
+if (var44){
+var49 = glob_sys;
+if (unlikely(varonce==NULL)) {
+var50 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String);
+if (likely(varonce51!=NULL)) {
+var52 = varonce51;
+} else {
+var53 = "Fatal Error: ambigous property name \'";
+var54 = standard___standard__NativeString___to_s_with_length(var53, 37l);
+var52 = var54;
+varonce51 = var52;
+}
+((struct instance_standard__NativeArray*)var50)->values[0]=var52;
+if (likely(varonce55!=NULL)) {
+var56 = varonce55;
+} else {
+var57 = "\'; conflict between ";
+var58 = standard___standard__NativeString___to_s_with_length(var57, 20l);
+var56 = var58;
+varonce55 = var56;
+}
+((struct instance_standard__NativeArray*)var50)->values[2]=var56;
+if (likely(varonce59!=NULL)) {
+var60 = varonce59;
+} else {
+var61 = " and ";
+var62 = standard___standard__NativeString___to_s_with_length(var61, 5l);
+var60 = var62;
+varonce59 = var60;
+}
+((struct instance_standard__NativeArray*)var50)->values[4]=var60;
+} else {
+var50 = varonce;
+varonce = NULL;
+}
+((struct instance_standard__NativeArray*)var50)->values[1]=var_name;
+{
+var63 = nit___nit__MProperty___nit__model_base__MEntity__full_name(var_mprop);
+}
+((struct instance_standard__NativeArray*)var50)->values[3]=var63;
+{
+var64 = nit___nit__MProperty___nit__model_base__MEntity__full_name(var_res);
+}
+((struct instance_standard__NativeArray*)var50)->values[5]=var64;
+{
+var65 = ((val*(*)(val* self))(var50->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var50); /* native_to_s on <var50:NativeArray[String]>*/
+}
+varonce = var50;
+{
+standard__file___Sys___print(var49, var65); /* Direct call file#Sys#print on <var49:Sys>*/
+}
+PRINT_ERROR("Runtime error: %s", "Aborted");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 297);
+fatal_exit(1);
+} else {
+}
+}
+BREAK_label: (void)0;
+{
+standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_20); /* Direct call array#ArrayIterator#next on <var_20:ArrayIterator[MClassDef]>*/
+}
+} else {
+goto BREAK_label66;
+}
+}
+BREAK_label66: (void)0;
+{
+standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_20); /* Direct call array#ArrayIterator#finish on <var_20:ArrayIterator[MClassDef]>*/
+}
+{
+standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_8); /* Direct call array#ArrayIterator#next on <var_8:ArrayIterator[MProperty]>*/
+}
+} else {
+goto BREAK_label67;
+}
+}
+BREAK_label67: (void)0;
+{
+standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_8); /* Direct call array#ArrayIterator#finish on <var_8:ArrayIterator[MProperty]>*/
+}
+var = var_res;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method model#MClassDefSorter#mmodule for (self: MClassDefSorter): MModule */
+val* nit__model___nit__model__MClassDefSorter___mmodule(val* self) {
+val* var /* : MModule */;
+val* var1 /* : MModule */;
+var1 = self->attrs[COLOR_nit__model__MClassDefSorter___mmodule].val; /* _mmodule on <self:MClassDefSorter> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 308);
+fatal_exit(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method model#MClassDefSorter#mmodule= for (self: MClassDefSorter, MModule) */
+void nit__model___nit__model__MClassDefSorter___mmodule_61d(val* self, val* p0) {
+self->attrs[COLOR_nit__model__MClassDefSorter___mmodule].val = p0; /* _mmodule on <self:MClassDefSorter> */
+RET_LABEL:;
+}
+/* method model#MClassDefSorter#compare for (self: MClassDefSorter, MClassDef, MClassDef): Int */
+long nit__model___nit__model__MClassDefSorter___standard__sorter__Comparator__compare(val* self, val* p0, val* p1) {
+long var /* : Int */;
+short int var1 /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+const char* var_class_name;
+short int var2 /* : Bool */;
+int cltype3;
+int idtype4;
+const struct type* type_struct5;
+const char* var_class_name6;
+val* var_a /* var a: MClassDef */;
+val* var_b /* var b: MClassDef */;
+val* var7 /* : MClass */;
+val* var9 /* : MClass */;
+val* var_ca /* var ca: MClass */;
+val* var10 /* : MClass */;