+/* method separate_erasure_compiler$SeparateErasureCompiler$display_sizes for (self: SeparateErasureCompiler) */
+void nitc___nitc__SeparateErasureCompiler___nitc__separate_compiler__SeparateCompiler__display_sizes(val* self) {
+val* var /* : Sys */;
+static val* varonce;
+val* var1 /* : String */;
+char* var2 /* : CString */;
+val* var3 /* : String */;
+val* var4 /* : nullable Int */;
+val* var5 /* : nullable Int */;
+val* var6 /* : nullable Bool */;
+val* var7 /* : nullable Bool */;
+val* var8 /* : Sys */;
+static val* varonce9;
+val* var10 /* : String */;
+char* var11 /* : CString */;
+val* var12 /* : String */;
+val* var13 /* : nullable Int */;
+val* var14 /* : nullable Int */;
+val* var15 /* : nullable Bool */;
+val* var16 /* : nullable Bool */;
+long var_total /* var total: Int */;
+long var_holes /* var holes: Int */;
+val* var17 /* : Map[MClass, Array[nullable MClass]] */;
+val* var19 /* : Map[MClass, Array[nullable MClass]] */;
+val* var_ /* var : Map[MClass, Array[nullable MClass]] */;
+val* var20 /* : MapIterator[nullable Object, nullable Object] */;
+val* var_21 /* var : MapIterator[MClass, Array[nullable MClass]] */;
+short int var22 /* : Bool */;
+val* var23 /* : nullable Object */;
+val* var_t /* var t: MClass */;
+val* var24 /* : nullable Object */;
+val* var_table /* var table: Array[nullable MClass] */;
+long var25 /* : Int */;
+long var27 /* : Int */;
+long var28 /* : Int */;
+short int var30 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+long var31 /* : Int */;
+val* var_32 /* var : Array[nullable MClass] */;
+val* var33 /* : IndexedIterator[nullable Object] */;
+val* var_34 /* var : IndexedIterator[nullable MClass] */;
+short int var35 /* : Bool */;
+val* var37 /* : nullable Object */;
+val* var_e /* var e: nullable MClass */;
+short int var38 /* : Bool */;
+short int var39 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var41 /* : Bool */;
+short int var43 /* : Bool */;
+long var44 /* : Int */;
+short int var46 /* : Bool */;
+int cltype47;
+int idtype48;
+const char* var_class_name49;
+long var50 /* : Int */;
+val* var52 /* : Sys */;
+val* var54 /* : NativeArray[String] */;
+static val* varonce53;
+static val* varonce55;
+val* var56 /* : String */;
+char* var57 /* : CString */;
+val* var58 /* : String */;
+val* var59 /* : nullable Int */;
+val* var60 /* : nullable Int */;
+val* var61 /* : nullable Bool */;
+val* var62 /* : nullable Bool */;
+static val* varonce63;
+val* var64 /* : String */;
+char* var65 /* : CString */;
+val* var66 /* : String */;
+val* var67 /* : nullable Int */;
+val* var68 /* : nullable Int */;
+val* var69 /* : nullable Bool */;
+val* var70 /* : nullable Bool */;
+val* var71 /* : String */;
+val* var72 /* : String */;
+val* var73 /* : String */;
+val* var74 /* : Sys */;
+static val* varonce75;
+val* var76 /* : String */;
+char* var77 /* : CString */;
+val* var78 /* : String */;
+val* var79 /* : nullable Int */;
+val* var80 /* : nullable Int */;
+val* var81 /* : nullable Bool */;
+val* var82 /* : nullable Bool */;
+val* var83 /* : Sys */;
+static val* varonce84;
+val* var85 /* : String */;
+char* var86 /* : CString */;
+val* var87 /* : String */;
+val* var88 /* : nullable Int */;
+val* var89 /* : nullable Int */;
+val* var90 /* : nullable Bool */;
+val* var91 /* : nullable Bool */;
+val* var92 /* : Map[MClass, Array[nullable MPropDef]] */;
+val* var94 /* : Map[MClass, Array[nullable MPropDef]] */;
+val* var_95 /* var : Map[MClass, Array[nullable MPropDef]] */;
+val* var96 /* : MapIterator[nullable Object, nullable Object] */;
+val* var_97 /* var : MapIterator[MClass, Array[nullable MPropDef]] */;
+short int var98 /* : Bool */;
+val* var100 /* : nullable Object */;
+val* var_t101 /* var t: MClass */;
+val* var102 /* : nullable Object */;
+val* var_table103 /* var table: Array[nullable MPropDef] */;
+long var104 /* : Int */;
+long var106 /* : Int */;
+long var107 /* : Int */;
+short int var109 /* : Bool */;
+int cltype110;
+int idtype111;
+const char* var_class_name112;
+long var113 /* : Int */;
+val* var_114 /* var : Array[nullable MPropDef] */;
+val* var115 /* : IndexedIterator[nullable Object] */;
+val* var_116 /* var : IndexedIterator[nullable MPropDef] */;
+short int var117 /* : Bool */;
+val* var119 /* : nullable Object */;
+val* var_e120 /* var e: nullable MPropDef */;
+short int var121 /* : Bool */;
+short int var122 /* : Bool */;
+short int var124 /* : Bool */;
+short int var126 /* : Bool */;
+long var127 /* : Int */;
+short int var129 /* : Bool */;
+int cltype130;
+int idtype131;
+const char* var_class_name132;
+long var133 /* : Int */;
+val* var135 /* : Sys */;
+val* var137 /* : NativeArray[String] */;
+static val* varonce136;
+static val* varonce138;
+val* var139 /* : String */;
+char* var140 /* : CString */;
+val* var141 /* : String */;
+val* var142 /* : nullable Int */;
+val* var143 /* : nullable Int */;
+val* var144 /* : nullable Bool */;
+val* var145 /* : nullable Bool */;
+static val* varonce146;
+val* var147 /* : String */;
+char* var148 /* : CString */;
+val* var149 /* : String */;
+val* var150 /* : nullable Int */;
+val* var151 /* : nullable Int */;
+val* var152 /* : nullable Bool */;
+val* var153 /* : nullable Bool */;
+val* var154 /* : String */;
+val* var155 /* : String */;
+val* var156 /* : String */;
+val* var157 /* : Sys */;
+static val* varonce158;
+val* var159 /* : String */;
+char* var160 /* : CString */;
+val* var161 /* : String */;
+val* var162 /* : nullable Int */;
+val* var163 /* : nullable Int */;
+val* var164 /* : nullable Bool */;
+val* var165 /* : nullable Bool */;
+val* var166 /* : Sys */;
+static val* varonce167;
+val* var168 /* : String */;
+char* var169 /* : CString */;
+val* var170 /* : String */;
+val* var171 /* : nullable Int */;
+val* var172 /* : nullable Int */;
+val* var173 /* : nullable Bool */;
+val* var174 /* : nullable Bool */;
+val* var175 /* : Map[MClass, Array[nullable MPropDef]] */;
+val* var177 /* : Map[MClass, Array[nullable MPropDef]] */;
+val* var_178 /* var : Map[MClass, Array[nullable MPropDef]] */;
+val* var179 /* : MapIterator[nullable Object, nullable Object] */;
+val* var_180 /* var : MapIterator[MClass, Array[nullable MPropDef]] */;
+short int var181 /* : Bool */;
+val* var183 /* : nullable Object */;
+val* var_t184 /* var t: MClass */;
+val* var185 /* : nullable Object */;
+val* var_table186 /* var table: Array[nullable MPropDef] */;
+long var187 /* : Int */;
+long var189 /* : Int */;
+long var190 /* : Int */;
+short int var192 /* : Bool */;
+int cltype193;
+int idtype194;
+const char* var_class_name195;
+long var196 /* : Int */;
+val* var_197 /* var : Array[nullable MPropDef] */;
+val* var198 /* : IndexedIterator[nullable Object] */;
+val* var_199 /* var : IndexedIterator[nullable MPropDef] */;
+short int var200 /* : Bool */;
+val* var202 /* : nullable Object */;
+val* var_e203 /* var e: nullable MPropDef */;
+short int var204 /* : Bool */;
+short int var205 /* : Bool */;
+short int var207 /* : Bool */;
+short int var209 /* : Bool */;
+long var210 /* : Int */;
+short int var212 /* : Bool */;
+int cltype213;
+int idtype214;
+const char* var_class_name215;
+long var216 /* : Int */;
+val* var218 /* : Sys */;
+val* var220 /* : NativeArray[String] */;
+static val* varonce219;
+static val* varonce221;
+val* var222 /* : String */;
+char* var223 /* : CString */;
+val* var224 /* : String */;
+val* var225 /* : nullable Int */;
+val* var226 /* : nullable Int */;
+val* var227 /* : nullable Bool */;
+val* var228 /* : nullable Bool */;
+static val* varonce229;
+val* var230 /* : String */;
+char* var231 /* : CString */;
+val* var232 /* : String */;
+val* var233 /* : nullable Int */;
+val* var234 /* : nullable Int */;
+val* var235 /* : nullable Bool */;
+val* var236 /* : nullable Bool */;
+val* var237 /* : String */;
+val* var238 /* : String */;
+val* var239 /* : String */;
+val* var240 /* : Sys */;
+static val* varonce241;
+val* var242 /* : String */;
+char* var243 /* : CString */;
+val* var244 /* : String */;
+val* var245 /* : nullable Int */;
+val* var246 /* : nullable Int */;
+val* var247 /* : nullable Bool */;
+val* var248 /* : nullable Bool */;
+val* var249 /* : Sys */;
+static val* varonce250;
+val* var251 /* : String */;
+char* var252 /* : CString */;
+val* var253 /* : String */;
+val* var254 /* : nullable Int */;
+val* var255 /* : nullable Int */;
+val* var256 /* : nullable Bool */;
+val* var257 /* : nullable Bool */;
+val* var258 /* : Map[MClass, Array[nullable MProperty]] */;
+val* var260 /* : Map[MClass, Array[nullable MProperty]] */;
+val* var_261 /* var : Map[MClass, Array[nullable MProperty]] */;
+val* var262 /* : MapIterator[nullable Object, nullable Object] */;
+val* var_263 /* var : MapIterator[MClass, Array[nullable MProperty]] */;
+short int var264 /* : Bool */;
+val* var266 /* : nullable Object */;
+val* var_t267 /* var t: MClass */;
+val* var268 /* : nullable Object */;
+val* var_table269 /* var table: Array[nullable MProperty] */;
+long var270 /* : Int */;
+long var272 /* : Int */;
+long var273 /* : Int */;
+short int var275 /* : Bool */;
+int cltype276;
+int idtype277;
+const char* var_class_name278;
+long var279 /* : Int */;
+val* var_280 /* var : Array[nullable MProperty] */;
+val* var281 /* : IndexedIterator[nullable Object] */;
+val* var_282 /* var : IndexedIterator[nullable MProperty] */;
+short int var283 /* : Bool */;
+val* var285 /* : nullable Object */;
+val* var_e286 /* var e: nullable MProperty */;
+short int var287 /* : Bool */;
+short int var288 /* : Bool */;
+short int var290 /* : Bool */;
+short int var292 /* : Bool */;
+long var293 /* : Int */;
+short int var295 /* : Bool */;
+int cltype296;
+int idtype297;
+const char* var_class_name298;
+long var299 /* : Int */;
+val* var301 /* : Sys */;
+val* var303 /* : NativeArray[String] */;
+static val* varonce302;
+static val* varonce304;
+val* var305 /* : String */;
+char* var306 /* : CString */;
+val* var307 /* : String */;
+val* var308 /* : nullable Int */;
+val* var309 /* : nullable Int */;
+val* var310 /* : nullable Bool */;
+val* var311 /* : nullable Bool */;
+static val* varonce312;
+val* var313 /* : String */;
+char* var314 /* : CString */;
+val* var315 /* : String */;
+val* var316 /* : nullable Int */;
+val* var317 /* : nullable Int */;
+val* var318 /* : nullable Bool */;
+val* var319 /* : nullable Bool */;
+val* var320 /* : String */;
+val* var321 /* : String */;
+val* var322 /* : String */;
+var = glob_sys;
+if (likely(varonce!=NULL)) {
+var1 = varonce;
+} else {
+var2 = "# size of subtyping tables";
+var4 = (val*)(26l<<2|1);
+var5 = (val*)(26l<<2|1);
+var6 = (val*)((long)(0)<<2|3);
+var7 = (val*)((long)(0)<<2|3);
+var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
+var1 = var3;
+varonce = var1;
+}
+{
+core__file___Sys___print(var, var1); /* Direct call file$Sys$print on <var:Sys>*/
+}
+var8 = glob_sys;
+if (likely(varonce9!=NULL)) {
+var10 = varonce9;
+} else {
+var11 = "\ttotal \tholes";
+var13 = (val*)(13l<<2|1);
+var14 = (val*)(13l<<2|1);
+var15 = (val*)((long)(0)<<2|3);
+var16 = (val*)((long)(0)<<2|3);
+var12 = core__flat___CString___to_s_unsafe(var11, var13, var14, var15, var16);
+var10 = var12;
+varonce9 = var10;
+}
+{
+core__file___Sys___print(var8, var10); /* Direct call file$Sys$print on <var8:Sys>*/
+}
+var_total = 0l;
+var_holes = 0l;
+{
+{ /* Inline separate_erasure_compiler$SeparateErasureCompiler$class_tables (self) on <self:SeparateErasureCompiler> */
+var19 = self->attrs[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___class_tables].val; /* _class_tables on <self:SeparateErasureCompiler> */
+if (unlikely(var19 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables");
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler, 427);
+fatal_exit(1);
+}
+var17 = var19;
+RET_LABEL18:(void)0;
+}
+}
+var_ = var17;
+{
+var20 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__MapRead__iterator]))(var_); /* iterator on <var_:Map[MClass, Array[nullable MClass]]>*/
+}
+var_21 = var20;
+for(;;) {
+{
+var22 = ((short int(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__MapIterator__is_ok]))(var_21); /* is_ok on <var_21:MapIterator[MClass, Array[nullable MClass]]>*/
+}
+if (var22){
+} else {
+goto BREAK_label;
+}
+{
+var23 = ((val*(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__MapIterator__key]))(var_21); /* key on <var_21:MapIterator[MClass, Array[nullable MClass]]>*/
+}
+var_t = var23;
+{
+var24 = ((val*(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__MapIterator__item]))(var_21); /* item on <var_21:MapIterator[MClass, Array[nullable MClass]]>*/
+}
+var_table = var24;
+{
+{ /* Inline array$AbstractArrayRead$length (var_table) on <var_table:Array[nullable MClass]> */
+var27 = var_table->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_table:Array[nullable MClass]> */
+var25 = var27;
+RET_LABEL26:(void)0;
+}
+}
+{
+{ /* Inline kernel$Int$+ (var_total,var25) on <var_total:Int> */
+/* Covariant cast for argument 0 (i) <var25:Int> isa OTHER */
+/* <var25:Int> isa OTHER */
+var30 = 1; /* easy <var25:Int> isa OTHER*/
+if (unlikely(!var30)) {
+var_class_name = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+fatal_exit(1);
+}
+var31 = var_total + var25;
+var28 = var31;
+goto RET_LABEL29;
+RET_LABEL29:(void)0;
+}
+}
+var_total = var28;
+var_32 = var_table;
+{
+var33 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_32);
+}
+var_34 = var33;
+for(;;) {
+{
+var35 = ((short int(*)(val* self))((((long)var_34&3)?class_info[((long)var_34&3)]:var_34->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_34); /* is_ok on <var_34:IndexedIterator[nullable MClass]>*/
+}
+if (var35){
+} else {
+goto BREAK_label36;
+}
+{
+var37 = ((val*(*)(val* self))((((long)var_34&3)?class_info[((long)var_34&3)]:var_34->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_34); /* item on <var_34:IndexedIterator[nullable MClass]>*/
+}
+var_e = var37;
+if (var_e == NULL) {
+var38 = 1; /* is null */
+} else {
+var38 = 0; /* arg is null but recv is not */
+}
+if (0) {
+{ /* Inline kernel$Object$== (var_e,((val*)NULL)) on <var_e:nullable MClass> */
+var_other = ((val*)NULL);
+{
+{ /* Inline kernel$Object$is_same_instance (var_e,var_other) on <var_e:nullable MClass(MClass)> */
+var43 = var_e == var_other;
+var41 = var43;
+goto RET_LABEL42;
+RET_LABEL42:(void)0;
+}
+}
+var39 = var41;
+goto RET_LABEL40;
+RET_LABEL40:(void)0;
+}
+var38 = var39;
+}
+if (var38){
+{
+{ /* Inline kernel$Int$+ (var_holes,1l) on <var_holes:Int> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var46 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var46)) {
+var_class_name49 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+fatal_exit(1);
+}
+var50 = var_holes + 1l;
+var44 = var50;
+goto RET_LABEL45;
+RET_LABEL45:(void)0;
+}
+}
+var_holes = var44;
+} else {
+}
+{
+((void(*)(val* self))((((long)var_34&3)?class_info[((long)var_34&3)]:var_34->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_34); /* next on <var_34:IndexedIterator[nullable MClass]>*/
+}
+}
+BREAK_label36: (void)0;
+{
+((void(*)(val* self))((((long)var_34&3)?class_info[((long)var_34&3)]:var_34->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_34); /* finish on <var_34:IndexedIterator[nullable MClass]>*/
+}
+{
+((void(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__MapIterator__next]))(var_21); /* next on <var_21:MapIterator[MClass, Array[nullable MClass]]>*/
+}
+}
+BREAK_label: (void)0;
+{
+{ /* Inline abstract_collection$MapIterator$finish (var_21) on <var_21:MapIterator[MClass, Array[nullable MClass]]> */
+RET_LABEL51:(void)0;
+}
+}
+var52 = glob_sys;
+if (unlikely(varonce53==NULL)) {
+var54 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
+if (likely(varonce55!=NULL)) {
+var56 = varonce55;
+} else {
+var57 = "\t";
+var59 = (val*)(1l<<2|1);
+var60 = (val*)(1l<<2|1);
+var61 = (val*)((long)(0)<<2|3);
+var62 = (val*)((long)(0)<<2|3);
+var58 = core__flat___CString___to_s_unsafe(var57, var59, var60, var61, var62);
+var56 = var58;
+varonce55 = var56;
+}
+((struct instance_core__NativeArray*)var54)->values[0]=var56;
+if (likely(varonce63!=NULL)) {
+var64 = varonce63;
+} else {
+var65 = "\t";
+var67 = (val*)(1l<<2|1);
+var68 = (val*)(1l<<2|1);
+var69 = (val*)((long)(0)<<2|3);
+var70 = (val*)((long)(0)<<2|3);
+var66 = core__flat___CString___to_s_unsafe(var65, var67, var68, var69, var70);
+var64 = var66;
+varonce63 = var64;
+}
+((struct instance_core__NativeArray*)var54)->values[2]=var64;
+} else {
+var54 = varonce53;
+varonce53 = NULL;
+}
+var71 = core__flat___Int___core__abstract_text__Object__to_s(var_total);
+((struct instance_core__NativeArray*)var54)->values[1]=var71;
+var72 = core__flat___Int___core__abstract_text__Object__to_s(var_holes);
+((struct instance_core__NativeArray*)var54)->values[3]=var72;
+{
+var73 = ((val*(*)(val* self))(var54->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var54); /* native_to_s on <var54:NativeArray[String]>*/
+}
+varonce53 = var54;
+{
+core__file___Sys___print(var52, var73); /* Direct call file$Sys$print on <var52:Sys>*/
+}
+var74 = glob_sys;
+if (likely(varonce75!=NULL)) {
+var76 = varonce75;
+} else {
+var77 = "# size of resolution tables";
+var79 = (val*)(27l<<2|1);
+var80 = (val*)(27l<<2|1);
+var81 = (val*)((long)(0)<<2|3);
+var82 = (val*)((long)(0)<<2|3);
+var78 = core__flat___CString___to_s_unsafe(var77, var79, var80, var81, var82);
+var76 = var78;
+varonce75 = var76;
+}
+{
+core__file___Sys___print(var74, var76); /* Direct call file$Sys$print on <var74:Sys>*/
+}
+var83 = glob_sys;
+if (likely(varonce84!=NULL)) {
+var85 = varonce84;
+} else {
+var86 = "\ttotal \tholes";
+var88 = (val*)(13l<<2|1);
+var89 = (val*)(13l<<2|1);
+var90 = (val*)((long)(0)<<2|3);
+var91 = (val*)((long)(0)<<2|3);
+var87 = core__flat___CString___to_s_unsafe(var86, var88, var89, var90, var91);
+var85 = var87;
+varonce84 = var85;
+}
+{
+core__file___Sys___print(var83, var85); /* Direct call file$Sys$print on <var83:Sys>*/
+}
+var_total = 0l;
+var_holes = 0l;
+{
+{ /* Inline separate_erasure_compiler$SeparateErasureCompiler$vt_tables (self) on <self:SeparateErasureCompiler> */
+var94 = self->attrs[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___vt_tables].val; /* _vt_tables on <self:SeparateErasureCompiler> */
+if (unlikely(var94 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler, 428);
+fatal_exit(1);
+}
+var92 = var94;
+RET_LABEL93:(void)0;
+}
+}
+var_95 = var92;
+{
+var96 = ((val*(*)(val* self))((((long)var_95&3)?class_info[((long)var_95&3)]:var_95->class)->vft[COLOR_core__abstract_collection__MapRead__iterator]))(var_95); /* iterator on <var_95:Map[MClass, Array[nullable MPropDef]]>*/
+}
+var_97 = var96;
+for(;;) {
+{
+var98 = ((short int(*)(val* self))((((long)var_97&3)?class_info[((long)var_97&3)]:var_97->class)->vft[COLOR_core__abstract_collection__MapIterator__is_ok]))(var_97); /* is_ok on <var_97:MapIterator[MClass, Array[nullable MPropDef]]>*/
+}
+if (var98){
+} else {
+goto BREAK_label99;
+}
+{
+var100 = ((val*(*)(val* self))((((long)var_97&3)?class_info[((long)var_97&3)]:var_97->class)->vft[COLOR_core__abstract_collection__MapIterator__key]))(var_97); /* key on <var_97:MapIterator[MClass, Array[nullable MPropDef]]>*/
+}
+var_t101 = var100;
+{
+var102 = ((val*(*)(val* self))((((long)var_97&3)?class_info[((long)var_97&3)]:var_97->class)->vft[COLOR_core__abstract_collection__MapIterator__item]))(var_97); /* item on <var_97:MapIterator[MClass, Array[nullable MPropDef]]>*/
+}
+var_table103 = var102;
+{
+{ /* Inline array$AbstractArrayRead$length (var_table103) on <var_table103:Array[nullable MPropDef]> */
+var106 = var_table103->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_table103:Array[nullable MPropDef]> */
+var104 = var106;
+RET_LABEL105:(void)0;
+}
+}
+{
+{ /* Inline kernel$Int$+ (var_total,var104) on <var_total:Int> */
+/* Covariant cast for argument 0 (i) <var104:Int> isa OTHER */
+/* <var104:Int> isa OTHER */
+var109 = 1; /* easy <var104:Int> isa OTHER*/
+if (unlikely(!var109)) {
+var_class_name112 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name112);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+fatal_exit(1);
+}
+var113 = var_total + var104;
+var107 = var113;
+goto RET_LABEL108;
+RET_LABEL108:(void)0;
+}
+}
+var_total = var107;
+var_114 = var_table103;
+{
+var115 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_114);
+}
+var_116 = var115;
+for(;;) {
+{
+var117 = ((short int(*)(val* self))((((long)var_116&3)?class_info[((long)var_116&3)]:var_116->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_116); /* is_ok on <var_116:IndexedIterator[nullable MPropDef]>*/
+}
+if (var117){
+} else {
+goto BREAK_label118;
+}
+{
+var119 = ((val*(*)(val* self))((((long)var_116&3)?class_info[((long)var_116&3)]:var_116->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_116); /* item on <var_116:IndexedIterator[nullable MPropDef]>*/
+}
+var_e120 = var119;
+if (var_e120 == NULL) {
+var121 = 1; /* is null */
+} else {
+var121 = 0; /* arg is null but recv is not */
+}
+if (0) {
+{ /* Inline kernel$Object$== (var_e120,((val*)NULL)) on <var_e120:nullable MPropDef> */
+var_other = ((val*)NULL);
+{
+{ /* Inline kernel$Object$is_same_instance (var_e120,var_other) on <var_e120:nullable MPropDef(MPropDef)> */
+var126 = var_e120 == var_other;
+var124 = var126;
+goto RET_LABEL125;
+RET_LABEL125:(void)0;
+}
+}
+var122 = var124;
+goto RET_LABEL123;
+RET_LABEL123:(void)0;
+}
+var121 = var122;
+}
+if (var121){
+{
+{ /* Inline kernel$Int$+ (var_holes,1l) on <var_holes:Int> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var129 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var129)) {
+var_class_name132 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name132);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+fatal_exit(1);
+}
+var133 = var_holes + 1l;
+var127 = var133;
+goto RET_LABEL128;
+RET_LABEL128:(void)0;
+}
+}
+var_holes = var127;
+} else {
+}
+{
+((void(*)(val* self))((((long)var_116&3)?class_info[((long)var_116&3)]:var_116->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_116); /* next on <var_116:IndexedIterator[nullable MPropDef]>*/
+}
+}
+BREAK_label118: (void)0;
+{
+((void(*)(val* self))((((long)var_116&3)?class_info[((long)var_116&3)]:var_116->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_116); /* finish on <var_116:IndexedIterator[nullable MPropDef]>*/
+}
+{
+((void(*)(val* self))((((long)var_97&3)?class_info[((long)var_97&3)]:var_97->class)->vft[COLOR_core__abstract_collection__MapIterator__next]))(var_97); /* next on <var_97:MapIterator[MClass, Array[nullable MPropDef]]>*/
+}
+}
+BREAK_label99: (void)0;
+{
+{ /* Inline abstract_collection$MapIterator$finish (var_97) on <var_97:MapIterator[MClass, Array[nullable MPropDef]]> */
+RET_LABEL134:(void)0;
+}
+}
+var135 = glob_sys;
+if (unlikely(varonce136==NULL)) {
+var137 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
+if (likely(varonce138!=NULL)) {
+var139 = varonce138;
+} else {
+var140 = "\t";
+var142 = (val*)(1l<<2|1);
+var143 = (val*)(1l<<2|1);
+var144 = (val*)((long)(0)<<2|3);
+var145 = (val*)((long)(0)<<2|3);
+var141 = core__flat___CString___to_s_unsafe(var140, var142, var143, var144, var145);
+var139 = var141;
+varonce138 = var139;
+}
+((struct instance_core__NativeArray*)var137)->values[0]=var139;
+if (likely(varonce146!=NULL)) {
+var147 = varonce146;
+} else {
+var148 = "\t";
+var150 = (val*)(1l<<2|1);
+var151 = (val*)(1l<<2|1);
+var152 = (val*)((long)(0)<<2|3);
+var153 = (val*)((long)(0)<<2|3);
+var149 = core__flat___CString___to_s_unsafe(var148, var150, var151, var152, var153);
+var147 = var149;
+varonce146 = var147;
+}
+((struct instance_core__NativeArray*)var137)->values[2]=var147;
+} else {
+var137 = varonce136;
+varonce136 = NULL;
+}
+var154 = core__flat___Int___core__abstract_text__Object__to_s(var_total);
+((struct instance_core__NativeArray*)var137)->values[1]=var154;
+var155 = core__flat___Int___core__abstract_text__Object__to_s(var_holes);
+((struct instance_core__NativeArray*)var137)->values[3]=var155;
+{
+var156 = ((val*(*)(val* self))(var137->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var137); /* native_to_s on <var137:NativeArray[String]>*/
+}
+varonce136 = var137;
+{
+core__file___Sys___print(var135, var156); /* Direct call file$Sys$print on <var135:Sys>*/
+}
+var157 = glob_sys;
+if (likely(varonce158!=NULL)) {
+var159 = varonce158;
+} else {
+var160 = "# size of methods tables";
+var162 = (val*)(24l<<2|1);
+var163 = (val*)(24l<<2|1);
+var164 = (val*)((long)(0)<<2|3);
+var165 = (val*)((long)(0)<<2|3);
+var161 = core__flat___CString___to_s_unsafe(var160, var162, var163, var164, var165);
+var159 = var161;
+varonce158 = var159;
+}
+{
+core__file___Sys___print(var157, var159); /* Direct call file$Sys$print on <var157:Sys>*/
+}
+var166 = glob_sys;
+if (likely(varonce167!=NULL)) {
+var168 = varonce167;
+} else {
+var169 = "\ttotal \tholes";
+var171 = (val*)(13l<<2|1);
+var172 = (val*)(13l<<2|1);
+var173 = (val*)((long)(0)<<2|3);
+var174 = (val*)((long)(0)<<2|3);
+var170 = core__flat___CString___to_s_unsafe(var169, var171, var172, var173, var174);
+var168 = var170;
+varonce167 = var168;
+}
+{
+core__file___Sys___print(var166, var168); /* Direct call file$Sys$print on <var166:Sys>*/
+}
+var_total = 0l;
+var_holes = 0l;
+{
+{ /* Inline separate_compiler$SeparateCompiler$method_tables (self) on <self:SeparateErasureCompiler> */
+var177 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___method_tables].val; /* _method_tables on <self:SeparateErasureCompiler> */
+if (unlikely(var177 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1073);
+fatal_exit(1);
+}
+var175 = var177;
+RET_LABEL176:(void)0;
+}
+}
+var_178 = var175;
+{
+var179 = ((val*(*)(val* self))((((long)var_178&3)?class_info[((long)var_178&3)]:var_178->class)->vft[COLOR_core__abstract_collection__MapRead__iterator]))(var_178); /* iterator on <var_178:Map[MClass, Array[nullable MPropDef]]>*/
+}
+var_180 = var179;
+for(;;) {
+{
+var181 = ((short int(*)(val* self))((((long)var_180&3)?class_info[((long)var_180&3)]:var_180->class)->vft[COLOR_core__abstract_collection__MapIterator__is_ok]))(var_180); /* is_ok on <var_180:MapIterator[MClass, Array[nullable MPropDef]]>*/
+}
+if (var181){
+} else {
+goto BREAK_label182;
+}
+{
+var183 = ((val*(*)(val* self))((((long)var_180&3)?class_info[((long)var_180&3)]:var_180->class)->vft[COLOR_core__abstract_collection__MapIterator__key]))(var_180); /* key on <var_180:MapIterator[MClass, Array[nullable MPropDef]]>*/
+}
+var_t184 = var183;
+{
+var185 = ((val*(*)(val* self))((((long)var_180&3)?class_info[((long)var_180&3)]:var_180->class)->vft[COLOR_core__abstract_collection__MapIterator__item]))(var_180); /* item on <var_180:MapIterator[MClass, Array[nullable MPropDef]]>*/
+}
+var_table186 = var185;
+{
+{ /* Inline array$AbstractArrayRead$length (var_table186) on <var_table186:Array[nullable MPropDef]> */
+var189 = var_table186->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_table186:Array[nullable MPropDef]> */
+var187 = var189;
+RET_LABEL188:(void)0;
+}
+}
+{
+{ /* Inline kernel$Int$+ (var_total,var187) on <var_total:Int> */
+/* Covariant cast for argument 0 (i) <var187:Int> isa OTHER */
+/* <var187:Int> isa OTHER */
+var192 = 1; /* easy <var187:Int> isa OTHER*/
+if (unlikely(!var192)) {
+var_class_name195 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name195);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+fatal_exit(1);
+}
+var196 = var_total + var187;
+var190 = var196;
+goto RET_LABEL191;
+RET_LABEL191:(void)0;
+}
+}
+var_total = var190;
+var_197 = var_table186;
+{
+var198 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_197);
+}
+var_199 = var198;
+for(;;) {
+{
+var200 = ((short int(*)(val* self))((((long)var_199&3)?class_info[((long)var_199&3)]:var_199->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_199); /* is_ok on <var_199:IndexedIterator[nullable MPropDef]>*/
+}
+if (var200){
+} else {
+goto BREAK_label201;
+}
+{
+var202 = ((val*(*)(val* self))((((long)var_199&3)?class_info[((long)var_199&3)]:var_199->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_199); /* item on <var_199:IndexedIterator[nullable MPropDef]>*/
+}
+var_e203 = var202;
+if (var_e203 == NULL) {
+var204 = 1; /* is null */
+} else {
+var204 = 0; /* arg is null but recv is not */
+}
+if (0) {
+{ /* Inline kernel$Object$== (var_e203,((val*)NULL)) on <var_e203:nullable MPropDef> */
+var_other = ((val*)NULL);
+{
+{ /* Inline kernel$Object$is_same_instance (var_e203,var_other) on <var_e203:nullable MPropDef(MPropDef)> */
+var209 = var_e203 == var_other;
+var207 = var209;
+goto RET_LABEL208;
+RET_LABEL208:(void)0;
+}
+}
+var205 = var207;
+goto RET_LABEL206;
+RET_LABEL206:(void)0;
+}
+var204 = var205;
+}
+if (var204){
+{
+{ /* Inline kernel$Int$+ (var_holes,1l) on <var_holes:Int> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var212 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var212)) {
+var_class_name215 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name215);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+fatal_exit(1);
+}
+var216 = var_holes + 1l;
+var210 = var216;
+goto RET_LABEL211;
+RET_LABEL211:(void)0;
+}
+}
+var_holes = var210;
+} else {
+}
+{
+((void(*)(val* self))((((long)var_199&3)?class_info[((long)var_199&3)]:var_199->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_199); /* next on <var_199:IndexedIterator[nullable MPropDef]>*/
+}
+}
+BREAK_label201: (void)0;
+{
+((void(*)(val* self))((((long)var_199&3)?class_info[((long)var_199&3)]:var_199->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_199); /* finish on <var_199:IndexedIterator[nullable MPropDef]>*/
+}
+{
+((void(*)(val* self))((((long)var_180&3)?class_info[((long)var_180&3)]:var_180->class)->vft[COLOR_core__abstract_collection__MapIterator__next]))(var_180); /* next on <var_180:MapIterator[MClass, Array[nullable MPropDef]]>*/
+}
+}
+BREAK_label182: (void)0;
+{
+{ /* Inline abstract_collection$MapIterator$finish (var_180) on <var_180:MapIterator[MClass, Array[nullable MPropDef]]> */
+RET_LABEL217:(void)0;
+}
+}
+var218 = glob_sys;
+if (unlikely(varonce219==NULL)) {
+var220 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
+if (likely(varonce221!=NULL)) {
+var222 = varonce221;
+} else {
+var223 = "\t";
+var225 = (val*)(1l<<2|1);
+var226 = (val*)(1l<<2|1);
+var227 = (val*)((long)(0)<<2|3);
+var228 = (val*)((long)(0)<<2|3);
+var224 = core__flat___CString___to_s_unsafe(var223, var225, var226, var227, var228);
+var222 = var224;
+varonce221 = var222;
+}
+((struct instance_core__NativeArray*)var220)->values[0]=var222;
+if (likely(varonce229!=NULL)) {
+var230 = varonce229;
+} else {
+var231 = "\t";
+var233 = (val*)(1l<<2|1);
+var234 = (val*)(1l<<2|1);
+var235 = (val*)((long)(0)<<2|3);
+var236 = (val*)((long)(0)<<2|3);
+var232 = core__flat___CString___to_s_unsafe(var231, var233, var234, var235, var236);
+var230 = var232;
+varonce229 = var230;
+}
+((struct instance_core__NativeArray*)var220)->values[2]=var230;
+} else {
+var220 = varonce219;
+varonce219 = NULL;
+}
+var237 = core__flat___Int___core__abstract_text__Object__to_s(var_total);
+((struct instance_core__NativeArray*)var220)->values[1]=var237;
+var238 = core__flat___Int___core__abstract_text__Object__to_s(var_holes);
+((struct instance_core__NativeArray*)var220)->values[3]=var238;
+{
+var239 = ((val*(*)(val* self))(var220->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var220); /* native_to_s on <var220:NativeArray[String]>*/
+}
+varonce219 = var220;
+{
+core__file___Sys___print(var218, var239); /* Direct call file$Sys$print on <var218:Sys>*/
+}
+var240 = glob_sys;
+if (likely(varonce241!=NULL)) {
+var242 = varonce241;
+} else {
+var243 = "# size of attributes tables";
+var245 = (val*)(27l<<2|1);
+var246 = (val*)(27l<<2|1);
+var247 = (val*)((long)(0)<<2|3);
+var248 = (val*)((long)(0)<<2|3);
+var244 = core__flat___CString___to_s_unsafe(var243, var245, var246, var247, var248);
+var242 = var244;
+varonce241 = var242;
+}
+{
+core__file___Sys___print(var240, var242); /* Direct call file$Sys$print on <var240:Sys>*/
+}
+var249 = glob_sys;
+if (likely(varonce250!=NULL)) {
+var251 = varonce250;
+} else {
+var252 = "\ttotal \tholes";
+var254 = (val*)(13l<<2|1);
+var255 = (val*)(13l<<2|1);
+var256 = (val*)((long)(0)<<2|3);
+var257 = (val*)((long)(0)<<2|3);
+var253 = core__flat___CString___to_s_unsafe(var252, var254, var255, var256, var257);
+var251 = var253;
+varonce250 = var251;
+}
+{
+core__file___Sys___print(var249, var251); /* Direct call file$Sys$print on <var249:Sys>*/
+}
+var_total = 0l;
+var_holes = 0l;
+{
+{ /* Inline separate_compiler$SeparateCompiler$attr_tables (self) on <self:SeparateErasureCompiler> */
+var260 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___attr_tables].val; /* _attr_tables on <self:SeparateErasureCompiler> */
+if (unlikely(var260 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1074);
+fatal_exit(1);
+}
+var258 = var260;
+RET_LABEL259:(void)0;
+}
+}
+var_261 = var258;
+{
+var262 = ((val*(*)(val* self))((((long)var_261&3)?class_info[((long)var_261&3)]:var_261->class)->vft[COLOR_core__abstract_collection__MapRead__iterator]))(var_261); /* iterator on <var_261:Map[MClass, Array[nullable MProperty]]>*/
+}
+var_263 = var262;
+for(;;) {
+{
+var264 = ((short int(*)(val* self))((((long)var_263&3)?class_info[((long)var_263&3)]:var_263->class)->vft[COLOR_core__abstract_collection__MapIterator__is_ok]))(var_263); /* is_ok on <var_263:MapIterator[MClass, Array[nullable MProperty]]>*/
+}
+if (var264){
+} else {
+goto BREAK_label265;
+}
+{
+var266 = ((val*(*)(val* self))((((long)var_263&3)?class_info[((long)var_263&3)]:var_263->class)->vft[COLOR_core__abstract_collection__MapIterator__key]))(var_263); /* key on <var_263:MapIterator[MClass, Array[nullable MProperty]]>*/
+}
+var_t267 = var266;
+{
+var268 = ((val*(*)(val* self))((((long)var_263&3)?class_info[((long)var_263&3)]:var_263->class)->vft[COLOR_core__abstract_collection__MapIterator__item]))(var_263); /* item on <var_263:MapIterator[MClass, Array[nullable MProperty]]>*/
+}
+var_table269 = var268;
+{
+{ /* Inline array$AbstractArrayRead$length (var_table269) on <var_table269:Array[nullable MProperty]> */
+var272 = var_table269->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_table269:Array[nullable MProperty]> */
+var270 = var272;
+RET_LABEL271:(void)0;
+}
+}
+{
+{ /* Inline kernel$Int$+ (var_total,var270) on <var_total:Int> */
+/* Covariant cast for argument 0 (i) <var270:Int> isa OTHER */
+/* <var270:Int> isa OTHER */
+var275 = 1; /* easy <var270:Int> isa OTHER*/
+if (unlikely(!var275)) {
+var_class_name278 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name278);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+fatal_exit(1);
+}
+var279 = var_total + var270;
+var273 = var279;
+goto RET_LABEL274;
+RET_LABEL274:(void)0;
+}
+}
+var_total = var273;
+var_280 = var_table269;
+{
+var281 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_280);
+}
+var_282 = var281;
+for(;;) {
+{
+var283 = ((short int(*)(val* self))((((long)var_282&3)?class_info[((long)var_282&3)]:var_282->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_282); /* is_ok on <var_282:IndexedIterator[nullable MProperty]>*/
+}
+if (var283){
+} else {
+goto BREAK_label284;
+}
+{
+var285 = ((val*(*)(val* self))((((long)var_282&3)?class_info[((long)var_282&3)]:var_282->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_282); /* item on <var_282:IndexedIterator[nullable MProperty]>*/
+}
+var_e286 = var285;
+if (var_e286 == NULL) {
+var287 = 1; /* is null */
+} else {
+var287 = 0; /* arg is null but recv is not */
+}
+if (0) {
+{ /* Inline kernel$Object$== (var_e286,((val*)NULL)) on <var_e286:nullable MProperty> */
+var_other = ((val*)NULL);
+{
+{ /* Inline kernel$Object$is_same_instance (var_e286,var_other) on <var_e286:nullable MProperty(MProperty)> */
+var292 = var_e286 == var_other;
+var290 = var292;
+goto RET_LABEL291;
+RET_LABEL291:(void)0;
+}
+}
+var288 = var290;
+goto RET_LABEL289;
+RET_LABEL289:(void)0;
+}
+var287 = var288;
+}
+if (var287){
+{
+{ /* Inline kernel$Int$+ (var_holes,1l) on <var_holes:Int> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var295 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var295)) {
+var_class_name298 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name298);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+fatal_exit(1);
+}
+var299 = var_holes + 1l;
+var293 = var299;
+goto RET_LABEL294;
+RET_LABEL294:(void)0;
+}
+}
+var_holes = var293;
+} else {
+}
+{
+((void(*)(val* self))((((long)var_282&3)?class_info[((long)var_282&3)]:var_282->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_282); /* next on <var_282:IndexedIterator[nullable MProperty]>*/
+}
+}
+BREAK_label284: (void)0;
+{
+((void(*)(val* self))((((long)var_282&3)?class_info[((long)var_282&3)]:var_282->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_282); /* finish on <var_282:IndexedIterator[nullable MProperty]>*/
+}
+{
+((void(*)(val* self))((((long)var_263&3)?class_info[((long)var_263&3)]:var_263->class)->vft[COLOR_core__abstract_collection__MapIterator__next]))(var_263); /* next on <var_263:MapIterator[MClass, Array[nullable MProperty]]>*/
+}
+}
+BREAK_label265: (void)0;
+{
+{ /* Inline abstract_collection$MapIterator$finish (var_263) on <var_263:MapIterator[MClass, Array[nullable MProperty]]> */
+RET_LABEL300:(void)0;
+}
+}
+var301 = glob_sys;
+if (unlikely(varonce302==NULL)) {
+var303 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
+if (likely(varonce304!=NULL)) {
+var305 = varonce304;
+} else {
+var306 = "\t";
+var308 = (val*)(1l<<2|1);
+var309 = (val*)(1l<<2|1);
+var310 = (val*)((long)(0)<<2|3);
+var311 = (val*)((long)(0)<<2|3);
+var307 = core__flat___CString___to_s_unsafe(var306, var308, var309, var310, var311);
+var305 = var307;
+varonce304 = var305;
+}
+((struct instance_core__NativeArray*)var303)->values[0]=var305;
+if (likely(varonce312!=NULL)) {
+var313 = varonce312;
+} else {
+var314 = "\t";
+var316 = (val*)(1l<<2|1);
+var317 = (val*)(1l<<2|1);
+var318 = (val*)((long)(0)<<2|3);
+var319 = (val*)((long)(0)<<2|3);
+var315 = core__flat___CString___to_s_unsafe(var314, var316, var317, var318, var319);
+var313 = var315;
+varonce312 = var313;
+}
+((struct instance_core__NativeArray*)var303)->values[2]=var313;
+} else {
+var303 = varonce302;
+varonce302 = NULL;
+}
+var320 = core__flat___Int___core__abstract_text__Object__to_s(var_total);
+((struct instance_core__NativeArray*)var303)->values[1]=var320;
+var321 = core__flat___Int___core__abstract_text__Object__to_s(var_holes);
+((struct instance_core__NativeArray*)var303)->values[3]=var321;
+{
+var322 = ((val*(*)(val* self))(var303->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var303); /* native_to_s on <var303:NativeArray[String]>*/
+}
+varonce302 = var303;
+{
+core__file___Sys___print(var301, var322); /* Direct call file$Sys$print on <var301:Sys>*/
+}
+RET_LABEL:;
+}
+/* method separate_erasure_compiler$SeparateErasureCompilerVisitor$compile_callsite for (self: SeparateErasureCompilerVisitor, CallSite, Array[RuntimeVariable]): nullable RuntimeVariable */
+val* nitc___nitc__SeparateErasureCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite(val* self, val* p0, val* p1) {
+val* var /* : nullable RuntimeVariable */;
+val* var_callsite /* var callsite: CallSite */;
+val* var_arguments /* var arguments: Array[RuntimeVariable] */;
+val* var1 /* : nullable RuntimeVariable */;
+val* var_res /* var res: nullable RuntimeVariable */;
+short int var2 /* : Bool */;
+short int var3 /* : Bool */;
+short int var5 /* : Bool */;
+short int var_ /* var : Bool */;
+val* var6 /* : AbstractCompiler */;
+val* var8 /* : AbstractCompiler */;
+short int var9 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+val* var10 /* : ModelBuilder */;
+val* var12 /* : ModelBuilder */;
+val* var13 /* : ToolContext */;
+val* var15 /* : ToolContext */;
+val* var16 /* : OptionBool */;
+val* var18 /* : OptionBool */;
+val* var19 /* : nullable Object */;
+val* var21 /* : nullable Object */;
+short int var22 /* : Bool */;
+short int var23 /* : Bool */;
+short int var24 /* : Bool */;
+short int var25 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var27 /* : Bool */;
+short int var28 /* : Bool */;
+val* var29 /* : MSignature */;
+val* var31 /* : MSignature */;
+val* var32 /* : nullable MType */;
+val* var34 /* : nullable MType */;
+val* var_mtype /* var mtype: nullable MType */;
+short int var35 /* : Bool */;
+short int var36 /* : Bool */;
+short int var38 /* : Bool */;
+short int var39 /* : Bool */;
+val* var40 /* : NativeArray[String] */;
+static val* varonce;
+static val* varonce41;
+val* var42 /* : String */;
+char* var43 /* : CString */;
+val* var44 /* : String */;
+val* var45 /* : nullable Int */;
+val* var46 /* : nullable Int */;
+val* var47 /* : nullable Bool */;
+val* var48 /* : nullable Bool */;
+static val* varonce49;
+val* var50 /* : String */;
+char* var51 /* : CString */;
+val* var52 /* : String */;
+val* var53 /* : nullable Int */;
+val* var54 /* : nullable Int */;
+val* var55 /* : nullable Bool */;
+val* var56 /* : nullable Bool */;
+static val* varonce57;
+val* var58 /* : String */;
+char* var59 /* : CString */;
+val* var60 /* : String */;
+val* var61 /* : nullable Int */;
+val* var62 /* : nullable Int */;
+val* var63 /* : nullable Bool */;
+val* var64 /* : nullable Bool */;
+val* var65 /* : String */;
+val* var66 /* : String */;
+val* var67 /* : String */;
+static val* varonce68;
+val* var69 /* : String */;
+char* var70 /* : CString */;
+val* var71 /* : String */;
+val* var72 /* : nullable Int */;
+val* var73 /* : nullable Int */;
+val* var74 /* : nullable Bool */;
+val* var75 /* : nullable Bool */;
+val* var76 /* : RuntimeVariable */;
+val* var_cond /* var cond: RuntimeVariable */;
+val* var78 /* : NativeArray[String] */;
+static val* varonce77;
+static val* varonce79;
+val* var80 /* : String */;
+char* var81 /* : CString */;
+val* var82 /* : String */;
+val* var83 /* : nullable Int */;
+val* var84 /* : nullable Int */;
+val* var85 /* : nullable Bool */;
+val* var86 /* : nullable Bool */;
+static val* varonce87;
+val* var88 /* : String */;
+char* var89 /* : CString */;
+val* var90 /* : String */;
+val* var91 /* : nullable Int */;
+val* var92 /* : nullable Int */;
+val* var93 /* : nullable Bool */;
+val* var94 /* : nullable Bool */;
+val* var95 /* : String */;
+val* var96 /* : String */;
+static val* varonce97;
+val* var98 /* : String */;
+char* var99 /* : CString */;
+val* var100 /* : String */;
+val* var101 /* : nullable Int */;
+val* var102 /* : nullable Int */;
+val* var103 /* : nullable Bool */;
+val* var104 /* : nullable Bool */;
+static val* varonce105;
+val* var106 /* : String */;
+char* var107 /* : CString */;
+val* var108 /* : String */;
+val* var109 /* : nullable Int */;
+val* var110 /* : nullable Int */;
+val* var111 /* : nullable Bool */;
+val* var112 /* : nullable Bool */;
+var_callsite = p0;
+var_arguments = p1;
+{
+var1 = ((val*(*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_nitc___nitc__SeparateErasureCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(self, p0, p1); /* compile_callsite on <self:SeparateErasureCompilerVisitor>*/
+}
+var_res = var1;
+{
+{ /* Inline typing$CallSite$erasure_cast (var_callsite) on <var_callsite:CallSite> */
+var5 = var_callsite->attrs[COLOR_nitc__typing__CallSite___erasure_cast].s; /* _erasure_cast on <var_callsite:CallSite> */
+var3 = var5;
+RET_LABEL4:(void)0;
+}
+}
+var_ = var3;
+if (var3){
+{
+{ /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateErasureCompilerVisitor> */
+var8 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateErasureCompilerVisitor> */
+if (unlikely(var8 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
+fatal_exit(1);
+}
+var6 = var8;
+RET_LABEL7:(void)0;
+}
+}
+/* <var6:AbstractCompiler(SeparateCompiler)> isa SeparateErasureCompiler */
+cltype = type_nitc__SeparateErasureCompiler.color;
+idtype = type_nitc__SeparateErasureCompiler.id;
+if(cltype >= var6->type->table_size) {
+var9 = 0;
+} else {
+var9 = var6->type->type_table[cltype] == idtype;
+}
+if (unlikely(!var9)) {
+var_class_name = var6 == NULL ? "null" : var6->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SeparateErasureCompiler", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler, 480);
+fatal_exit(1);
+}
+{
+{ /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var6) on <var6:AbstractCompiler(SeparateErasureCompiler)> */
+var12 = var6->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var6:AbstractCompiler(SeparateErasureCompiler)> */
+if (unlikely(var12 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
+fatal_exit(1);
+}
+var10 = var12;
+RET_LABEL11:(void)0;
+}
+}
+{
+{ /* Inline modelbuilder_base$ModelBuilder$toolcontext (var10) on <var10:ModelBuilder> */
+var15 = var10->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var10:ModelBuilder> */
+if (unlikely(var15 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
+fatal_exit(1);
+}
+var13 = var15;
+RET_LABEL14:(void)0;
+}
+}
+{
+{ /* Inline separate_erasure_compiler$ToolContext$opt_no_check_erasure_cast (var13) on <var13:ToolContext> */
+var18 = var13->attrs[COLOR_nitc__separate_erasure_compiler__ToolContext___opt_no_check_erasure_cast].val; /* _opt_no_check_erasure_cast on <var13:ToolContext> */
+if (unlikely(var18 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_erasure_cast");
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler, 26);
+fatal_exit(1);
+}
+var16 = var18;
+RET_LABEL17:(void)0;
+}
+}
+{
+{ /* Inline opts$Option$value (var16) on <var16:OptionBool> */
+var21 = var16->attrs[COLOR_opts__Option___value].val; /* _value on <var16:OptionBool> */
+var19 = var21;
+RET_LABEL20:(void)0;
+}
+}
+var22 = (short int)((long)(var19)>>2);
+var23 = !var22;
+var2 = var23;
+} else {
+var2 = var_;
+}
+if (var2){
+if (var_res == NULL) {
+var24 = 0; /* is null */
+} else {
+var24 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel$Object$!= (var_res,((val*)NULL)) on <var_res:nullable RuntimeVariable> */
+var_other = ((val*)NULL);
+{
+var27 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_res, var_other); /* == on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
+}
+var28 = !var27;
+var25 = var28;
+goto RET_LABEL26;
+RET_LABEL26:(void)0;
+}
+var24 = var25;
+}
+if (unlikely(!var24)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler, 481);
+fatal_exit(1);
+}
+{
+{ /* Inline typing$CallSite$msignature (var_callsite) on <var_callsite:CallSite> */
+var31 = var_callsite->attrs[COLOR_nitc__typing__CallSite___msignature].val; /* _msignature on <var_callsite:CallSite> */
+if (unlikely(var31 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 663);
+fatal_exit(1);
+}
+var29 = var31;
+RET_LABEL30:(void)0;
+}
+}
+{
+{ /* Inline model$MSignature$return_mtype (var29) on <var29:MSignature> */
+var34 = var29->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var29:MSignature> */
+var32 = var34;
+RET_LABEL33:(void)0;
+}
+}
+var_mtype = var32;
+if (var_mtype == NULL) {
+var35 = 0; /* is null */
+} else {
+var35 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel$Object$!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
+var_other = ((val*)NULL);
+{
+var38 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mtype, var_other); /* == on <var_mtype:nullable MType(MType)>*/
+}
+var39 = !var38;
+var36 = var39;
+goto RET_LABEL37;
+RET_LABEL37:(void)0;
+}
+var35 = var36;
+}
+if (unlikely(!var35)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler, 483);
+fatal_exit(1);
+}
+if (unlikely(varonce==NULL)) {
+var40 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
+if (likely(varonce41!=NULL)) {
+var42 = varonce41;
+} else {
+var43 = "/* Erasure cast for return ";
+var45 = (val*)(27l<<2|1);
+var46 = (val*)(27l<<2|1);
+var47 = (val*)((long)(0)<<2|3);
+var48 = (val*)((long)(0)<<2|3);
+var44 = core__flat___CString___to_s_unsafe(var43, var45, var46, var47, var48);
+var42 = var44;
+varonce41 = var42;
+}
+((struct instance_core__NativeArray*)var40)->values[0]=var42;
+if (likely(varonce49!=NULL)) {
+var50 = varonce49;
+} else {
+var51 = " isa ";
+var53 = (val*)(5l<<2|1);
+var54 = (val*)(5l<<2|1);
+var55 = (val*)((long)(0)<<2|3);
+var56 = (val*)((long)(0)<<2|3);
+var52 = core__flat___CString___to_s_unsafe(var51, var53, var54, var55, var56);
+var50 = var52;
+varonce49 = var50;
+}
+((struct instance_core__NativeArray*)var40)->values[2]=var50;
+if (likely(varonce57!=NULL)) {
+var58 = varonce57;
+} else {
+var59 = " */";
+var61 = (val*)(3l<<2|1);
+var62 = (val*)(3l<<2|1);
+var63 = (val*)((long)(0)<<2|3);
+var64 = (val*)((long)(0)<<2|3);
+var60 = core__flat___CString___to_s_unsafe(var59, var61, var62, var63, var64);
+var58 = var60;
+varonce57 = var58;
+}
+((struct instance_core__NativeArray*)var40)->values[4]=var58;
+} else {
+var40 = varonce;
+varonce = NULL;
+}
+{
+var65 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
+}
+((struct instance_core__NativeArray*)var40)->values[1]=var65;
+{
+var66 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:nullable MType(MType)>*/
+}
+((struct instance_core__NativeArray*)var40)->values[3]=var66;
+{
+var67 = ((val*(*)(val* self))(var40->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var40); /* native_to_s on <var40:NativeArray[String]>*/
+}
+varonce = var40;
+{
+nitc___nitc__AbstractCompilerVisitor___add(self, var67); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateErasureCompilerVisitor>*/
+}
+if (likely(varonce68!=NULL)) {
+var69 = varonce68;
+} else {
+var70 = "erasure";
+var72 = (val*)(7l<<2|1);
+var73 = (val*)(7l<<2|1);
+var74 = (val*)((long)(0)<<2|3);
+var75 = (val*)((long)(0)<<2|3);
+var71 = core__flat___CString___to_s_unsafe(var70, var72, var73, var74, var75);
+var69 = var71;
+varonce68 = var69;
+}
+{
+var76 = nitc___nitc__SeparateErasureCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__type_test(self, var_res, var_mtype, var69);
+}
+var_cond = var76;
+if (unlikely(varonce77==NULL)) {
+var78 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
+if (likely(varonce79!=NULL)) {
+var80 = varonce79;
+} else {
+var81 = "if (!";
+var83 = (val*)(5l<<2|1);
+var84 = (val*)(5l<<2|1);
+var85 = (val*)((long)(0)<<2|3);
+var86 = (val*)((long)(0)<<2|3);
+var82 = core__flat___CString___to_s_unsafe(var81, var83, var84, var85, var86);
+var80 = var82;
+varonce79 = var80;
+}
+((struct instance_core__NativeArray*)var78)->values[0]=var80;
+if (likely(varonce87!=NULL)) {
+var88 = varonce87;
+} else {
+var89 = ") {";
+var91 = (val*)(3l<<2|1);
+var92 = (val*)(3l<<2|1);
+var93 = (val*)((long)(0)<<2|3);
+var94 = (val*)((long)(0)<<2|3);
+var90 = core__flat___CString___to_s_unsafe(var89, var91, var92, var93, var94);
+var88 = var90;
+varonce87 = var88;
+}
+((struct instance_core__NativeArray*)var78)->values[2]=var88;
+} else {
+var78 = varonce77;
+varonce77 = NULL;
+}
+{
+var95 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_cond); /* to_s on <var_cond:RuntimeVariable>*/
+}
+((struct instance_core__NativeArray*)var78)->values[1]=var95;
+{
+var96 = ((val*(*)(val* self))(var78->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var78); /* native_to_s on <var78:NativeArray[String]>*/
+}
+varonce77 = var78;
+{
+nitc___nitc__AbstractCompilerVisitor___add(self, var96); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateErasureCompilerVisitor>*/
+}
+if (likely(varonce97!=NULL)) {
+var98 = varonce97;
+} else {
+var99 = "Cast failed";
+var101 = (val*)(11l<<2|1);
+var102 = (val*)(11l<<2|1);
+var103 = (val*)((long)(0)<<2|3);
+var104 = (val*)((long)(0)<<2|3);
+var100 = core__flat___CString___to_s_unsafe(var99, var101, var102, var103, var104);
+var98 = var100;
+varonce97 = var98;
+}
+{
+nitc___nitc__AbstractCompilerVisitor___add_abort(self, var98); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <self:SeparateErasureCompilerVisitor>*/
+}
+if (likely(varonce105!=NULL)) {
+var106 = varonce105;
+} else {
+var107 = "}";
+var109 = (val*)(1l<<2|1);
+var110 = (val*)(1l<<2|1);
+var111 = (val*)((long)(0)<<2|3);
+var112 = (val*)((long)(0)<<2|3);
+var108 = core__flat___CString___to_s_unsafe(var107, var109, var110, var111, var112);
+var106 = var108;
+varonce105 = var106;
+}
+{
+nitc___nitc__AbstractCompilerVisitor___add(self, var106); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateErasureCompilerVisitor>*/
+}
+} else {
+}
+var = var_res;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method separate_erasure_compiler$SeparateErasureCompilerVisitor$init_instance for (self: SeparateErasureCompilerVisitor, MClassType): RuntimeVariable */
+val* nitc___nitc__SeparateErasureCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__init_instance(val* self, val* p0) {
+val* var /* : RuntimeVariable */;
+val* var_mtype /* var mtype: MClassType */;
+val* var1 /* : NativeArray[String] */;
+static val* varonce;
+static val* varonce2;
+val* var3 /* : String */;
+char* var4 /* : CString */;
+val* var5 /* : String */;
+val* var6 /* : nullable Int */;
+val* var7 /* : nullable Int */;
+val* var8 /* : nullable Bool */;
+val* var9 /* : nullable Bool */;
+val* var10 /* : MClass */;
+val* var12 /* : MClass */;
+val* var13 /* : String */;
+val* var14 /* : String */;
+val* var16 /* : NativeArray[String] */;
+static val* varonce15;
+static val* varonce17;
+val* var18 /* : String */;
+char* var19 /* : CString */;
+val* var20 /* : String */;
+val* var21 /* : nullable Int */;
+val* var22 /* : nullable Int */;
+val* var23 /* : nullable Bool */;
+val* var24 /* : nullable Bool */;
+static val* varonce25;
+val* var26 /* : String */;
+char* var27 /* : CString */;
+val* var28 /* : String */;
+val* var29 /* : nullable Int */;
+val* var30 /* : nullable Int */;
+val* var31 /* : nullable Bool */;
+val* var32 /* : nullable Bool */;
+val* var33 /* : MClass */;
+val* var35 /* : MClass */;
+val* var36 /* : String */;
+val* var37 /* : String */;
+val* var38 /* : RuntimeVariable */;
+var_mtype = p0;
+if (unlikely(varonce==NULL)) {
+var1 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
+if (likely(varonce2!=NULL)) {
+var3 = varonce2;
+} else {
+var4 = "NEW_";
+var6 = (val*)(4l<<2|1);
+var7 = (val*)(4l<<2|1);
+var8 = (val*)((long)(0)<<2|3);
+var9 = (val*)((long)(0)<<2|3);
+var5 = core__flat___CString___to_s_unsafe(var4, var6, var7, var8, var9);
+var3 = var5;
+varonce2 = var3;
+}
+((struct instance_core__NativeArray*)var1)->values[0]=var3;
+} else {
+var1 = varonce;
+varonce = NULL;
+}
+{
+{ /* Inline model$MClassType$mclass (var_mtype) on <var_mtype:MClassType> */
+var12 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:MClassType> */
+if (unlikely(var12 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
+fatal_exit(1);
+}
+var10 = var12;
+RET_LABEL11:(void)0;
+}
+}
+{
+var13 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var10);
+}
+((struct instance_core__NativeArray*)var1)->values[1]=var13;
+{
+var14 = ((val*(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
+}
+varonce = var1;
+{
+nitc___nitc__AbstractCompilerVisitor___require_declaration(self, var14); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <self:SeparateErasureCompilerVisitor>*/
+}
+if (unlikely(varonce15==NULL)) {
+var16 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
+if (likely(varonce17!=NULL)) {
+var18 = varonce17;
+} else {
+var19 = "NEW_";
+var21 = (val*)(4l<<2|1);
+var22 = (val*)(4l<<2|1);
+var23 = (val*)((long)(0)<<2|3);
+var24 = (val*)((long)(0)<<2|3);
+var20 = core__flat___CString___to_s_unsafe(var19, var21, var22, var23, var24);
+var18 = var20;
+varonce17 = var18;
+}
+((struct instance_core__NativeArray*)var16)->values[0]=var18;
+if (likely(varonce25!=NULL)) {
+var26 = varonce25;
+} else {
+var27 = "()";
+var29 = (val*)(2l<<2|1);
+var30 = (val*)(2l<<2|1);
+var31 = (val*)((long)(0)<<2|3);
+var32 = (val*)((long)(0)<<2|3);
+var28 = core__flat___CString___to_s_unsafe(var27, var29, var30, var31, var32);
+var26 = var28;
+varonce25 = var26;
+}
+((struct instance_core__NativeArray*)var16)->values[2]=var26;
+} else {
+var16 = varonce15;
+varonce15 = NULL;
+}
+{
+{ /* Inline model$MClassType$mclass (var_mtype) on <var_mtype:MClassType> */
+var35 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:MClassType> */
+if (unlikely(var35 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
+PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
+fatal_exit(1);
+}
+var33 = var35;
+RET_LABEL34:(void)0;
+}
+}
+{
+var36 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var33);
+}
+((struct instance_core__NativeArray*)var16)->values[1]=var36;
+{
+var37 = ((val*(*)(val* self))(var16->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var16); /* native_to_s on <var16:NativeArray[String]>*/
+}
+varonce15 = var16;
+{
+var38 = nitc___nitc__AbstractCompilerVisitor___new_expr(self, var37, var_mtype);
+}
+var = var38;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method separate_erasure_compiler$SeparateErasureCompilerVisitor$type_test for (self: SeparateErasureCompilerVisitor, RuntimeVariable, MType, String): RuntimeVariable */