-/* 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 /* : NativeString */;
-val* var3 /* : String */;
-val* var4 /* : Sys */;
-static val* varonce5;
-val* var6 /* : String */;
-char* var7 /* : NativeString */;
-val* var8 /* : String */;
-long var_total /* var total: Int */;
-long var_holes /* var holes: Int */;
-val* var9 /* : Map[MClass, Array[nullable MClass]] */;
-val* var11 /* : Map[MClass, Array[nullable MClass]] */;
-val* var_ /* var : Map[MClass, Array[nullable MClass]] */;
-val* var12 /* : MapIterator[nullable Object, nullable Object] */;
-val* var_13 /* var : MapIterator[MClass, Array[nullable MClass]] */;
-short int var14 /* : Bool */;
-val* var15 /* : nullable Object */;
-val* var_t /* var t: MClass */;
-val* var16 /* : nullable Object */;
-val* var_table /* var table: Array[nullable MClass] */;
-long var17 /* : Int */;
-long var19 /* : Int */;
-long var20 /* : Int */;
-short int var22 /* : Bool */;
-int cltype;
-int idtype;
-const char* var_class_name;
-long var23 /* : Int */;
-val* var_24 /* var : Array[nullable MClass] */;
-val* var25 /* : IndexedIterator[nullable Object] */;
-val* var_26 /* var : IndexedIterator[nullable MClass] */;
-short int var27 /* : Bool */;
-val* var29 /* : nullable Object */;
-val* var_e /* var e: nullable MClass */;
-short int var30 /* : Bool */;
-short int var31 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var33 /* : Bool */;
-short int var35 /* : Bool */;
-long var36 /* : Int */;
-short int var38 /* : Bool */;
-int cltype39;
-int idtype40;
-const char* var_class_name41;
-long var42 /* : Int */;
-val* var44 /* : Sys */;
-val* var46 /* : NativeArray[String] */;
-static val* varonce45;
-static val* varonce47;
-val* var48 /* : String */;
-char* var49 /* : NativeString */;
-val* var50 /* : String */;
-static val* varonce51;
-val* var52 /* : String */;
-char* var53 /* : NativeString */;
-val* var54 /* : String */;
-val* var55 /* : String */;
-val* var56 /* : String */;
-val* var57 /* : String */;
-val* var58 /* : Sys */;
-static val* varonce59;
-val* var60 /* : String */;
-char* var61 /* : NativeString */;
-val* var62 /* : String */;
-val* var63 /* : Sys */;
-static val* varonce64;
-val* var65 /* : String */;
-char* var66 /* : NativeString */;
-val* var67 /* : String */;
-val* var68 /* : Map[MClass, Array[nullable MPropDef]] */;
-val* var70 /* : Map[MClass, Array[nullable MPropDef]] */;
-val* var_71 /* var : Map[MClass, Array[nullable MPropDef]] */;
-val* var72 /* : MapIterator[nullable Object, nullable Object] */;
-val* var_73 /* var : MapIterator[MClass, Array[nullable MPropDef]] */;
-short int var74 /* : Bool */;
-val* var76 /* : nullable Object */;
-val* var_t77 /* var t: MClass */;
-val* var78 /* : nullable Object */;
-val* var_table79 /* var table: Array[nullable MPropDef] */;
-long var80 /* : Int */;
-long var82 /* : Int */;
-long var83 /* : Int */;
-short int var85 /* : Bool */;
-int cltype86;
-int idtype87;
-const char* var_class_name88;
-long var89 /* : Int */;
-val* var_90 /* var : Array[nullable MPropDef] */;
-val* var91 /* : IndexedIterator[nullable Object] */;
-val* var_92 /* var : IndexedIterator[nullable MPropDef] */;
-short int var93 /* : Bool */;
-val* var95 /* : nullable Object */;
-val* var_e96 /* var e: nullable MPropDef */;
-short int var97 /* : Bool */;
-short int var98 /* : Bool */;
-short int var100 /* : Bool */;
-short int var102 /* : Bool */;
-long var103 /* : Int */;
-short int var105 /* : Bool */;
-int cltype106;
-int idtype107;
-const char* var_class_name108;
-long var109 /* : Int */;
-val* var111 /* : Sys */;
-val* var113 /* : NativeArray[String] */;
-static val* varonce112;
-static val* varonce114;
-val* var115 /* : String */;
-char* var116 /* : NativeString */;
-val* var117 /* : String */;
-static val* varonce118;
-val* var119 /* : String */;
-char* var120 /* : NativeString */;
-val* var121 /* : String */;
-val* var122 /* : String */;
-val* var123 /* : String */;
-val* var124 /* : String */;
-val* var125 /* : Sys */;
-static val* varonce126;
-val* var127 /* : String */;
-char* var128 /* : NativeString */;
-val* var129 /* : String */;
-val* var130 /* : Sys */;
-static val* varonce131;
-val* var132 /* : String */;
-char* var133 /* : NativeString */;
-val* var134 /* : String */;
-val* var135 /* : Map[MClass, Array[nullable MPropDef]] */;
-val* var137 /* : Map[MClass, Array[nullable MPropDef]] */;
-val* var_138 /* var : Map[MClass, Array[nullable MPropDef]] */;
-val* var139 /* : MapIterator[nullable Object, nullable Object] */;
-val* var_140 /* var : MapIterator[MClass, Array[nullable MPropDef]] */;
-short int var141 /* : Bool */;
-val* var143 /* : nullable Object */;
-val* var_t144 /* var t: MClass */;
-val* var145 /* : nullable Object */;
-val* var_table146 /* var table: Array[nullable MPropDef] */;
-long var147 /* : Int */;
-long var149 /* : Int */;
-long var150 /* : Int */;
-short int var152 /* : Bool */;
-int cltype153;
-int idtype154;
-const char* var_class_name155;
-long var156 /* : Int */;
-val* var_157 /* var : Array[nullable MPropDef] */;
-val* var158 /* : IndexedIterator[nullable Object] */;
-val* var_159 /* var : IndexedIterator[nullable MPropDef] */;
-short int var160 /* : Bool */;
-val* var162 /* : nullable Object */;
-val* var_e163 /* var e: nullable MPropDef */;
-short int var164 /* : Bool */;
-short int var165 /* : Bool */;
-short int var167 /* : Bool */;
-short int var169 /* : Bool */;
-long var170 /* : Int */;
-short int var172 /* : Bool */;
-int cltype173;
-int idtype174;
-const char* var_class_name175;
-long var176 /* : Int */;
-val* var178 /* : Sys */;
-val* var180 /* : NativeArray[String] */;
-static val* varonce179;
-static val* varonce181;
-val* var182 /* : String */;
-char* var183 /* : NativeString */;
-val* var184 /* : String */;
-static val* varonce185;
-val* var186 /* : String */;
-char* var187 /* : NativeString */;
-val* var188 /* : String */;
-val* var189 /* : String */;
-val* var190 /* : String */;
-val* var191 /* : String */;
-val* var192 /* : Sys */;
-static val* varonce193;
-val* var194 /* : String */;
-char* var195 /* : NativeString */;
-val* var196 /* : String */;
-val* var197 /* : Sys */;
-static val* varonce198;
-val* var199 /* : String */;
-char* var200 /* : NativeString */;
-val* var201 /* : String */;
-val* var202 /* : Map[MClass, Array[nullable MProperty]] */;
-val* var204 /* : Map[MClass, Array[nullable MProperty]] */;
-val* var_205 /* var : Map[MClass, Array[nullable MProperty]] */;
-val* var206 /* : MapIterator[nullable Object, nullable Object] */;
-val* var_207 /* var : MapIterator[MClass, Array[nullable MProperty]] */;
-short int var208 /* : Bool */;
-val* var210 /* : nullable Object */;
-val* var_t211 /* var t: MClass */;
-val* var212 /* : nullable Object */;
-val* var_table213 /* var table: Array[nullable MProperty] */;
-long var214 /* : Int */;
-long var216 /* : Int */;
-long var217 /* : Int */;
-short int var219 /* : Bool */;
-int cltype220;
-int idtype221;
-const char* var_class_name222;
-long var223 /* : Int */;
-val* var_224 /* var : Array[nullable MProperty] */;
-val* var225 /* : IndexedIterator[nullable Object] */;
-val* var_226 /* var : IndexedIterator[nullable MProperty] */;
-short int var227 /* : Bool */;
-val* var229 /* : nullable Object */;
-val* var_e230 /* var e: nullable MProperty */;
-short int var231 /* : Bool */;
-short int var232 /* : Bool */;
-short int var234 /* : Bool */;
-short int var236 /* : Bool */;
-long var237 /* : Int */;
-short int var239 /* : Bool */;
-int cltype240;
-int idtype241;
-const char* var_class_name242;
-long var243 /* : Int */;
-val* var245 /* : Sys */;
-val* var247 /* : NativeArray[String] */;
-static val* varonce246;
-static val* varonce248;
-val* var249 /* : String */;
-char* var250 /* : NativeString */;
-val* var251 /* : String */;
-static val* varonce252;
-val* var253 /* : String */;
-char* var254 /* : NativeString */;
-val* var255 /* : String */;
-val* var256 /* : String */;
-val* var257 /* : String */;
-val* var258 /* : String */;
-var = glob_sys;
-if (likely(varonce!=NULL)) {
-var1 = varonce;
-} else {
-var2 = "# size of subtyping tables";
-var3 = core__flat___NativeString___to_s_full(var2, 26l, 26l);
-var1 = var3;
-varonce = var1;
-}
-{
-core__file___Sys___print(var, var1); /* Direct call file#Sys#print on <var:Sys>*/
-}
-var4 = glob_sys;
-if (likely(varonce5!=NULL)) {
-var6 = varonce5;
-} else {
-var7 = "\ttotal \tholes";
-var8 = core__flat___NativeString___to_s_full(var7, 13l, 13l);
-var6 = var8;
-varonce5 = var6;
-}
-{
-core__file___Sys___print(var4, var6); /* Direct call file#Sys#print on <var4:Sys>*/
-}
-var_total = 0l;
-var_holes = 0l;
-{
-{ /* Inline separate_erasure_compiler#SeparateErasureCompiler#class_tables (self) on <self:SeparateErasureCompiler> */
-var11 = self->attrs[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___class_tables].val; /* _class_tables on <self:SeparateErasureCompiler> */
-if (unlikely(var11 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _class_tables");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler, 427);
-fatal_exit(1);
-}
-var9 = var11;
-RET_LABEL10:(void)0;
-}
-}
-var_ = var9;
-{
-var12 = ((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_13 = var12;
-for(;;) {
-{
-var14 = ((short int(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__MapIterator__is_ok]))(var_13); /* is_ok on <var_13:MapIterator[MClass, Array[nullable MClass]]>*/
-}
-if (var14){
-} else {
-goto BREAK_label;
-}
-{
-var15 = ((val*(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__MapIterator__key]))(var_13); /* key on <var_13:MapIterator[MClass, Array[nullable MClass]]>*/
-}
-var_t = var15;
-{
-var16 = ((val*(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__MapIterator__item]))(var_13); /* item on <var_13:MapIterator[MClass, Array[nullable MClass]]>*/
-}
-var_table = var16;
-{
-{ /* Inline array#AbstractArrayRead#length (var_table) on <var_table:Array[nullable MClass]> */
-var19 = var_table->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_table:Array[nullable MClass]> */
-var17 = var19;
-RET_LABEL18:(void)0;
-}
-}
-{
-{ /* Inline kernel#Int#+ (var_total,var17) on <var_total:Int> */
-/* Covariant cast for argument 0 (i) <var17:Int> isa OTHER */
-/* <var17:Int> isa OTHER */
-var22 = 1; /* easy <var17:Int> isa OTHER*/
-if (unlikely(!var22)) {
-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, 731);
-fatal_exit(1);
-}
-var23 = var_total + var17;
-var20 = var23;
-goto RET_LABEL21;
-RET_LABEL21:(void)0;
-}
-}
-var_total = var20;
-var_24 = var_table;
-{
-var25 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_24);
-}
-var_26 = var25;
-for(;;) {
-{
-var27 = ((short int(*)(val* self))((((long)var_26&3)?class_info[((long)var_26&3)]:var_26->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_26); /* is_ok on <var_26:IndexedIterator[nullable MClass]>*/
-}
-if (var27){
-} else {
-goto BREAK_label28;
-}
-{
-var29 = ((val*(*)(val* self))((((long)var_26&3)?class_info[((long)var_26&3)]:var_26->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_26); /* item on <var_26:IndexedIterator[nullable MClass]>*/
-}
-var_e = var29;
-if (var_e == NULL) {
-var30 = 1; /* is null */
-} else {
-var30 = 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)> */
-var35 = var_e == var_other;
-var33 = var35;
-goto RET_LABEL34;
-RET_LABEL34:(void)0;
-}
-}
-var31 = var33;
-goto RET_LABEL32;
-RET_LABEL32:(void)0;
-}
-var30 = var31;
-}
-if (var30){
-{
-{ /* Inline kernel#Int#+ (var_holes,1l) on <var_holes:Int> */
-/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
-/* <1l:Int> isa OTHER */
-var38 = 1; /* easy <1l:Int> isa OTHER*/
-if (unlikely(!var38)) {
-var_class_name41 = type_core__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
-fatal_exit(1);
-}
-var42 = var_holes + 1l;
-var36 = var42;
-goto RET_LABEL37;
-RET_LABEL37:(void)0;
-}
-}
-var_holes = var36;
-} else {
-}
-{
-((void(*)(val* self))((((long)var_26&3)?class_info[((long)var_26&3)]:var_26->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_26); /* next on <var_26:IndexedIterator[nullable MClass]>*/
-}
-}
-BREAK_label28: (void)0;
-{
-((void(*)(val* self))((((long)var_26&3)?class_info[((long)var_26&3)]:var_26->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_26); /* finish on <var_26:IndexedIterator[nullable MClass]>*/
-}
-{
-((void(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__MapIterator__next]))(var_13); /* next on <var_13:MapIterator[MClass, Array[nullable MClass]]>*/
-}
-}
-BREAK_label: (void)0;
-{
-{ /* Inline abstract_collection#MapIterator#finish (var_13) on <var_13:MapIterator[MClass, Array[nullable MClass]]> */
-RET_LABEL43:(void)0;
-}
-}
-var44 = glob_sys;
-if (unlikely(varonce45==NULL)) {
-var46 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
-if (likely(varonce47!=NULL)) {
-var48 = varonce47;
-} else {
-var49 = "\t";
-var50 = core__flat___NativeString___to_s_full(var49, 1l, 1l);
-var48 = var50;
-varonce47 = var48;
-}
-((struct instance_core__NativeArray*)var46)->values[0]=var48;
-if (likely(varonce51!=NULL)) {
-var52 = varonce51;
-} else {
-var53 = "\t";
-var54 = core__flat___NativeString___to_s_full(var53, 1l, 1l);
-var52 = var54;
-varonce51 = var52;
-}
-((struct instance_core__NativeArray*)var46)->values[2]=var52;
-} else {
-var46 = varonce45;
-varonce45 = NULL;
-}
-var55 = core__flat___Int___core__abstract_text__Object__to_s(var_total);
-((struct instance_core__NativeArray*)var46)->values[1]=var55;
-var56 = core__flat___Int___core__abstract_text__Object__to_s(var_holes);
-((struct instance_core__NativeArray*)var46)->values[3]=var56;
-{
-var57 = ((val*(*)(val* self))(var46->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var46); /* native_to_s on <var46:NativeArray[String]>*/
-}
-varonce45 = var46;
-{
-core__file___Sys___print(var44, var57); /* Direct call file#Sys#print on <var44:Sys>*/
-}
-var58 = glob_sys;
-if (likely(varonce59!=NULL)) {
-var60 = varonce59;
-} else {
-var61 = "# size of resolution tables";
-var62 = core__flat___NativeString___to_s_full(var61, 27l, 27l);
-var60 = var62;
-varonce59 = var60;
-}
-{
-core__file___Sys___print(var58, var60); /* Direct call file#Sys#print on <var58:Sys>*/
-}
-var63 = glob_sys;
-if (likely(varonce64!=NULL)) {
-var65 = varonce64;
-} else {
-var66 = "\ttotal \tholes";
-var67 = core__flat___NativeString___to_s_full(var66, 13l, 13l);
-var65 = var67;
-varonce64 = var65;
-}
-{
-core__file___Sys___print(var63, var65); /* Direct call file#Sys#print on <var63:Sys>*/
-}
-var_total = 0l;
-var_holes = 0l;
-{
-{ /* Inline separate_erasure_compiler#SeparateErasureCompiler#vt_tables (self) on <self:SeparateErasureCompiler> */
-var70 = self->attrs[COLOR_nitc__separate_erasure_compiler__SeparateErasureCompiler___vt_tables].val; /* _vt_tables on <self:SeparateErasureCompiler> */
-if (unlikely(var70 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vt_tables");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler, 428);
-fatal_exit(1);
-}
-var68 = var70;
-RET_LABEL69:(void)0;
-}
-}
-var_71 = var68;
-{
-var72 = ((val*(*)(val* self))((((long)var_71&3)?class_info[((long)var_71&3)]:var_71->class)->vft[COLOR_core__abstract_collection__MapRead__iterator]))(var_71); /* iterator on <var_71:Map[MClass, Array[nullable MPropDef]]>*/
-}
-var_73 = var72;
-for(;;) {
-{
-var74 = ((short int(*)(val* self))((((long)var_73&3)?class_info[((long)var_73&3)]:var_73->class)->vft[COLOR_core__abstract_collection__MapIterator__is_ok]))(var_73); /* is_ok on <var_73:MapIterator[MClass, Array[nullable MPropDef]]>*/
-}
-if (var74){
-} else {
-goto BREAK_label75;
-}
-{
-var76 = ((val*(*)(val* self))((((long)var_73&3)?class_info[((long)var_73&3)]:var_73->class)->vft[COLOR_core__abstract_collection__MapIterator__key]))(var_73); /* key on <var_73:MapIterator[MClass, Array[nullable MPropDef]]>*/
-}
-var_t77 = var76;
-{
-var78 = ((val*(*)(val* self))((((long)var_73&3)?class_info[((long)var_73&3)]:var_73->class)->vft[COLOR_core__abstract_collection__MapIterator__item]))(var_73); /* item on <var_73:MapIterator[MClass, Array[nullable MPropDef]]>*/
-}
-var_table79 = var78;
-{
-{ /* Inline array#AbstractArrayRead#length (var_table79) on <var_table79:Array[nullable MPropDef]> */
-var82 = var_table79->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_table79:Array[nullable MPropDef]> */
-var80 = var82;
-RET_LABEL81:(void)0;
-}
-}
-{
-{ /* Inline kernel#Int#+ (var_total,var80) on <var_total:Int> */
-/* Covariant cast for argument 0 (i) <var80:Int> isa OTHER */
-/* <var80:Int> isa OTHER */
-var85 = 1; /* easy <var80:Int> isa OTHER*/
-if (unlikely(!var85)) {
-var_class_name88 = type_core__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name88);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
-fatal_exit(1);
-}
-var89 = var_total + var80;
-var83 = var89;
-goto RET_LABEL84;
-RET_LABEL84:(void)0;
-}
-}
-var_total = var83;
-var_90 = var_table79;
-{
-var91 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_90);
-}
-var_92 = var91;
-for(;;) {
-{
-var93 = ((short int(*)(val* self))((((long)var_92&3)?class_info[((long)var_92&3)]:var_92->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_92); /* is_ok on <var_92:IndexedIterator[nullable MPropDef]>*/
-}
-if (var93){
-} else {
-goto BREAK_label94;
-}
-{
-var95 = ((val*(*)(val* self))((((long)var_92&3)?class_info[((long)var_92&3)]:var_92->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_92); /* item on <var_92:IndexedIterator[nullable MPropDef]>*/
-}
-var_e96 = var95;
-if (var_e96 == NULL) {
-var97 = 1; /* is null */
-} else {
-var97 = 0; /* arg is null but recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#== (var_e96,((val*)NULL)) on <var_e96:nullable MPropDef> */
-var_other = ((val*)NULL);
-{
-{ /* Inline kernel#Object#is_same_instance (var_e96,var_other) on <var_e96:nullable MPropDef(MPropDef)> */
-var102 = var_e96 == var_other;
-var100 = var102;
-goto RET_LABEL101;
-RET_LABEL101:(void)0;
-}
-}
-var98 = var100;
-goto RET_LABEL99;
-RET_LABEL99:(void)0;
-}
-var97 = var98;
-}
-if (var97){
-{
-{ /* Inline kernel#Int#+ (var_holes,1l) on <var_holes:Int> */
-/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
-/* <1l:Int> isa OTHER */
-var105 = 1; /* easy <1l:Int> isa OTHER*/
-if (unlikely(!var105)) {
-var_class_name108 = type_core__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name108);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
-fatal_exit(1);
-}
-var109 = var_holes + 1l;
-var103 = var109;
-goto RET_LABEL104;
-RET_LABEL104:(void)0;
-}
-}
-var_holes = var103;
-} else {
-}
-{
-((void(*)(val* self))((((long)var_92&3)?class_info[((long)var_92&3)]:var_92->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_92); /* next on <var_92:IndexedIterator[nullable MPropDef]>*/
-}
-}
-BREAK_label94: (void)0;
-{
-((void(*)(val* self))((((long)var_92&3)?class_info[((long)var_92&3)]:var_92->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_92); /* finish on <var_92:IndexedIterator[nullable MPropDef]>*/
-}
-{
-((void(*)(val* self))((((long)var_73&3)?class_info[((long)var_73&3)]:var_73->class)->vft[COLOR_core__abstract_collection__MapIterator__next]))(var_73); /* next on <var_73:MapIterator[MClass, Array[nullable MPropDef]]>*/
-}
-}
-BREAK_label75: (void)0;
-{
-{ /* Inline abstract_collection#MapIterator#finish (var_73) on <var_73:MapIterator[MClass, Array[nullable MPropDef]]> */
-RET_LABEL110:(void)0;
-}
-}
-var111 = glob_sys;
-if (unlikely(varonce112==NULL)) {
-var113 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
-if (likely(varonce114!=NULL)) {
-var115 = varonce114;
-} else {
-var116 = "\t";
-var117 = core__flat___NativeString___to_s_full(var116, 1l, 1l);
-var115 = var117;
-varonce114 = var115;
-}
-((struct instance_core__NativeArray*)var113)->values[0]=var115;
-if (likely(varonce118!=NULL)) {
-var119 = varonce118;
-} else {
-var120 = "\t";
-var121 = core__flat___NativeString___to_s_full(var120, 1l, 1l);
-var119 = var121;
-varonce118 = var119;
-}
-((struct instance_core__NativeArray*)var113)->values[2]=var119;
-} else {
-var113 = varonce112;
-varonce112 = NULL;
-}
-var122 = core__flat___Int___core__abstract_text__Object__to_s(var_total);
-((struct instance_core__NativeArray*)var113)->values[1]=var122;
-var123 = core__flat___Int___core__abstract_text__Object__to_s(var_holes);
-((struct instance_core__NativeArray*)var113)->values[3]=var123;
-{
-var124 = ((val*(*)(val* self))(var113->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var113); /* native_to_s on <var113:NativeArray[String]>*/
-}
-varonce112 = var113;
-{
-core__file___Sys___print(var111, var124); /* Direct call file#Sys#print on <var111:Sys>*/
-}
-var125 = glob_sys;
-if (likely(varonce126!=NULL)) {
-var127 = varonce126;
-} else {
-var128 = "# size of methods tables";
-var129 = core__flat___NativeString___to_s_full(var128, 24l, 24l);
-var127 = var129;
-varonce126 = var127;
-}
-{
-core__file___Sys___print(var125, var127); /* Direct call file#Sys#print on <var125:Sys>*/
-}
-var130 = glob_sys;
-if (likely(varonce131!=NULL)) {
-var132 = varonce131;
-} else {
-var133 = "\ttotal \tholes";
-var134 = core__flat___NativeString___to_s_full(var133, 13l, 13l);
-var132 = var134;
-varonce131 = var132;
-}
-{
-core__file___Sys___print(var130, var132); /* Direct call file#Sys#print on <var130:Sys>*/
-}
-var_total = 0l;
-var_holes = 0l;
-{
-{ /* Inline separate_compiler#SeparateCompiler#method_tables (self) on <self:SeparateErasureCompiler> */
-var137 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___method_tables].val; /* _method_tables on <self:SeparateErasureCompiler> */
-if (unlikely(var137 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1067);
-fatal_exit(1);
-}
-var135 = var137;
-RET_LABEL136:(void)0;
-}
-}
-var_138 = var135;
-{
-var139 = ((val*(*)(val* self))((((long)var_138&3)?class_info[((long)var_138&3)]:var_138->class)->vft[COLOR_core__abstract_collection__MapRead__iterator]))(var_138); /* iterator on <var_138:Map[MClass, Array[nullable MPropDef]]>*/
-}
-var_140 = var139;
-for(;;) {
-{
-var141 = ((short int(*)(val* self))((((long)var_140&3)?class_info[((long)var_140&3)]:var_140->class)->vft[COLOR_core__abstract_collection__MapIterator__is_ok]))(var_140); /* is_ok on <var_140:MapIterator[MClass, Array[nullable MPropDef]]>*/
-}
-if (var141){
-} else {
-goto BREAK_label142;
-}
-{
-var143 = ((val*(*)(val* self))((((long)var_140&3)?class_info[((long)var_140&3)]:var_140->class)->vft[COLOR_core__abstract_collection__MapIterator__key]))(var_140); /* key on <var_140:MapIterator[MClass, Array[nullable MPropDef]]>*/
-}
-var_t144 = var143;
-{
-var145 = ((val*(*)(val* self))((((long)var_140&3)?class_info[((long)var_140&3)]:var_140->class)->vft[COLOR_core__abstract_collection__MapIterator__item]))(var_140); /* item on <var_140:MapIterator[MClass, Array[nullable MPropDef]]>*/
-}
-var_table146 = var145;
-{
-{ /* Inline array#AbstractArrayRead#length (var_table146) on <var_table146:Array[nullable MPropDef]> */
-var149 = var_table146->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_table146:Array[nullable MPropDef]> */
-var147 = var149;
-RET_LABEL148:(void)0;
-}
-}
-{
-{ /* Inline kernel#Int#+ (var_total,var147) on <var_total:Int> */
-/* Covariant cast for argument 0 (i) <var147:Int> isa OTHER */
-/* <var147:Int> isa OTHER */
-var152 = 1; /* easy <var147:Int> isa OTHER*/
-if (unlikely(!var152)) {
-var_class_name155 = type_core__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name155);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
-fatal_exit(1);
-}
-var156 = var_total + var147;
-var150 = var156;
-goto RET_LABEL151;
-RET_LABEL151:(void)0;
-}
-}
-var_total = var150;
-var_157 = var_table146;
-{
-var158 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_157);
-}
-var_159 = var158;
-for(;;) {
-{
-var160 = ((short int(*)(val* self))((((long)var_159&3)?class_info[((long)var_159&3)]:var_159->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_159); /* is_ok on <var_159:IndexedIterator[nullable MPropDef]>*/
-}
-if (var160){
-} else {
-goto BREAK_label161;
-}
-{
-var162 = ((val*(*)(val* self))((((long)var_159&3)?class_info[((long)var_159&3)]:var_159->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_159); /* item on <var_159:IndexedIterator[nullable MPropDef]>*/
-}
-var_e163 = var162;
-if (var_e163 == NULL) {
-var164 = 1; /* is null */
-} else {
-var164 = 0; /* arg is null but recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#== (var_e163,((val*)NULL)) on <var_e163:nullable MPropDef> */
-var_other = ((val*)NULL);
-{
-{ /* Inline kernel#Object#is_same_instance (var_e163,var_other) on <var_e163:nullable MPropDef(MPropDef)> */
-var169 = var_e163 == var_other;
-var167 = var169;
-goto RET_LABEL168;
-RET_LABEL168:(void)0;
-}
-}
-var165 = var167;
-goto RET_LABEL166;
-RET_LABEL166:(void)0;
-}
-var164 = var165;
-}
-if (var164){
-{
-{ /* Inline kernel#Int#+ (var_holes,1l) on <var_holes:Int> */
-/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
-/* <1l:Int> isa OTHER */
-var172 = 1; /* easy <1l:Int> isa OTHER*/
-if (unlikely(!var172)) {
-var_class_name175 = type_core__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name175);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
-fatal_exit(1);
-}
-var176 = var_holes + 1l;
-var170 = var176;
-goto RET_LABEL171;
-RET_LABEL171:(void)0;
-}
-}
-var_holes = var170;
-} else {
-}
-{
-((void(*)(val* self))((((long)var_159&3)?class_info[((long)var_159&3)]:var_159->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_159); /* next on <var_159:IndexedIterator[nullable MPropDef]>*/
-}
-}
-BREAK_label161: (void)0;
-{
-((void(*)(val* self))((((long)var_159&3)?class_info[((long)var_159&3)]:var_159->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_159); /* finish on <var_159:IndexedIterator[nullable MPropDef]>*/
-}
-{
-((void(*)(val* self))((((long)var_140&3)?class_info[((long)var_140&3)]:var_140->class)->vft[COLOR_core__abstract_collection__MapIterator__next]))(var_140); /* next on <var_140:MapIterator[MClass, Array[nullable MPropDef]]>*/
-}
-}
-BREAK_label142: (void)0;
-{
-{ /* Inline abstract_collection#MapIterator#finish (var_140) on <var_140:MapIterator[MClass, Array[nullable MPropDef]]> */
-RET_LABEL177:(void)0;
-}
-}
-var178 = glob_sys;
-if (unlikely(varonce179==NULL)) {
-var180 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
-if (likely(varonce181!=NULL)) {
-var182 = varonce181;
-} else {
-var183 = "\t";
-var184 = core__flat___NativeString___to_s_full(var183, 1l, 1l);
-var182 = var184;
-varonce181 = var182;
-}
-((struct instance_core__NativeArray*)var180)->values[0]=var182;
-if (likely(varonce185!=NULL)) {
-var186 = varonce185;
-} else {
-var187 = "\t";
-var188 = core__flat___NativeString___to_s_full(var187, 1l, 1l);
-var186 = var188;
-varonce185 = var186;
-}
-((struct instance_core__NativeArray*)var180)->values[2]=var186;
-} else {
-var180 = varonce179;
-varonce179 = NULL;
-}
-var189 = core__flat___Int___core__abstract_text__Object__to_s(var_total);
-((struct instance_core__NativeArray*)var180)->values[1]=var189;
-var190 = core__flat___Int___core__abstract_text__Object__to_s(var_holes);
-((struct instance_core__NativeArray*)var180)->values[3]=var190;
-{
-var191 = ((val*(*)(val* self))(var180->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var180); /* native_to_s on <var180:NativeArray[String]>*/
-}
-varonce179 = var180;
-{
-core__file___Sys___print(var178, var191); /* Direct call file#Sys#print on <var178:Sys>*/
-}
-var192 = glob_sys;
-if (likely(varonce193!=NULL)) {
-var194 = varonce193;
-} else {
-var195 = "# size of attributes tables";
-var196 = core__flat___NativeString___to_s_full(var195, 27l, 27l);
-var194 = var196;
-varonce193 = var194;
-}
-{
-core__file___Sys___print(var192, var194); /* Direct call file#Sys#print on <var192:Sys>*/
-}
-var197 = glob_sys;
-if (likely(varonce198!=NULL)) {
-var199 = varonce198;
-} else {
-var200 = "\ttotal \tholes";
-var201 = core__flat___NativeString___to_s_full(var200, 13l, 13l);
-var199 = var201;
-varonce198 = var199;
-}
-{
-core__file___Sys___print(var197, var199); /* Direct call file#Sys#print on <var197:Sys>*/
-}
-var_total = 0l;
-var_holes = 0l;
-{
-{ /* Inline separate_compiler#SeparateCompiler#attr_tables (self) on <self:SeparateErasureCompiler> */
-var204 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___attr_tables].val; /* _attr_tables on <self:SeparateErasureCompiler> */
-if (unlikely(var204 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1068);
-fatal_exit(1);
-}
-var202 = var204;
-RET_LABEL203:(void)0;
-}
-}
-var_205 = var202;
-{
-var206 = ((val*(*)(val* self))((((long)var_205&3)?class_info[((long)var_205&3)]:var_205->class)->vft[COLOR_core__abstract_collection__MapRead__iterator]))(var_205); /* iterator on <var_205:Map[MClass, Array[nullable MProperty]]>*/
-}
-var_207 = var206;
-for(;;) {
-{
-var208 = ((short int(*)(val* self))((((long)var_207&3)?class_info[((long)var_207&3)]:var_207->class)->vft[COLOR_core__abstract_collection__MapIterator__is_ok]))(var_207); /* is_ok on <var_207:MapIterator[MClass, Array[nullable MProperty]]>*/
-}
-if (var208){
-} else {
-goto BREAK_label209;
-}
-{
-var210 = ((val*(*)(val* self))((((long)var_207&3)?class_info[((long)var_207&3)]:var_207->class)->vft[COLOR_core__abstract_collection__MapIterator__key]))(var_207); /* key on <var_207:MapIterator[MClass, Array[nullable MProperty]]>*/
-}
-var_t211 = var210;
-{
-var212 = ((val*(*)(val* self))((((long)var_207&3)?class_info[((long)var_207&3)]:var_207->class)->vft[COLOR_core__abstract_collection__MapIterator__item]))(var_207); /* item on <var_207:MapIterator[MClass, Array[nullable MProperty]]>*/
-}
-var_table213 = var212;
-{
-{ /* Inline array#AbstractArrayRead#length (var_table213) on <var_table213:Array[nullable MProperty]> */
-var216 = var_table213->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_table213:Array[nullable MProperty]> */
-var214 = var216;
-RET_LABEL215:(void)0;
-}
-}
-{
-{ /* Inline kernel#Int#+ (var_total,var214) on <var_total:Int> */
-/* Covariant cast for argument 0 (i) <var214:Int> isa OTHER */
-/* <var214:Int> isa OTHER */
-var219 = 1; /* easy <var214:Int> isa OTHER*/
-if (unlikely(!var219)) {
-var_class_name222 = type_core__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name222);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
-fatal_exit(1);
-}
-var223 = var_total + var214;
-var217 = var223;
-goto RET_LABEL218;
-RET_LABEL218:(void)0;
-}
-}
-var_total = var217;
-var_224 = var_table213;
-{
-var225 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_224);
-}
-var_226 = var225;
-for(;;) {
-{
-var227 = ((short int(*)(val* self))((((long)var_226&3)?class_info[((long)var_226&3)]:var_226->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_226); /* is_ok on <var_226:IndexedIterator[nullable MProperty]>*/
-}
-if (var227){
-} else {
-goto BREAK_label228;
-}
-{
-var229 = ((val*(*)(val* self))((((long)var_226&3)?class_info[((long)var_226&3)]:var_226->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_226); /* item on <var_226:IndexedIterator[nullable MProperty]>*/
-}
-var_e230 = var229;
-if (var_e230 == NULL) {
-var231 = 1; /* is null */
-} else {
-var231 = 0; /* arg is null but recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#== (var_e230,((val*)NULL)) on <var_e230:nullable MProperty> */
-var_other = ((val*)NULL);
-{
-{ /* Inline kernel#Object#is_same_instance (var_e230,var_other) on <var_e230:nullable MProperty(MProperty)> */
-var236 = var_e230 == var_other;
-var234 = var236;
-goto RET_LABEL235;
-RET_LABEL235:(void)0;
-}
-}
-var232 = var234;
-goto RET_LABEL233;
-RET_LABEL233:(void)0;
-}
-var231 = var232;
-}
-if (var231){
-{
-{ /* Inline kernel#Int#+ (var_holes,1l) on <var_holes:Int> */
-/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
-/* <1l:Int> isa OTHER */
-var239 = 1; /* easy <1l:Int> isa OTHER*/
-if (unlikely(!var239)) {
-var_class_name242 = type_core__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name242);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
-fatal_exit(1);
-}
-var243 = var_holes + 1l;
-var237 = var243;
-goto RET_LABEL238;
-RET_LABEL238:(void)0;
-}
-}
-var_holes = var237;
-} else {
-}
-{
-((void(*)(val* self))((((long)var_226&3)?class_info[((long)var_226&3)]:var_226->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_226); /* next on <var_226:IndexedIterator[nullable MProperty]>*/
-}
-}
-BREAK_label228: (void)0;
-{
-((void(*)(val* self))((((long)var_226&3)?class_info[((long)var_226&3)]:var_226->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_226); /* finish on <var_226:IndexedIterator[nullable MProperty]>*/
-}
-{
-((void(*)(val* self))((((long)var_207&3)?class_info[((long)var_207&3)]:var_207->class)->vft[COLOR_core__abstract_collection__MapIterator__next]))(var_207); /* next on <var_207:MapIterator[MClass, Array[nullable MProperty]]>*/
-}
-}
-BREAK_label209: (void)0;
-{
-{ /* Inline abstract_collection#MapIterator#finish (var_207) on <var_207:MapIterator[MClass, Array[nullable MProperty]]> */
-RET_LABEL244:(void)0;
-}
-}
-var245 = glob_sys;
-if (unlikely(varonce246==NULL)) {
-var247 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
-if (likely(varonce248!=NULL)) {
-var249 = varonce248;
-} else {
-var250 = "\t";
-var251 = core__flat___NativeString___to_s_full(var250, 1l, 1l);
-var249 = var251;
-varonce248 = var249;
-}
-((struct instance_core__NativeArray*)var247)->values[0]=var249;
-if (likely(varonce252!=NULL)) {
-var253 = varonce252;
-} else {
-var254 = "\t";
-var255 = core__flat___NativeString___to_s_full(var254, 1l, 1l);
-var253 = var255;
-varonce252 = var253;
-}
-((struct instance_core__NativeArray*)var247)->values[2]=var253;
-} else {
-var247 = varonce246;
-varonce246 = NULL;
-}
-var256 = core__flat___Int___core__abstract_text__Object__to_s(var_total);
-((struct instance_core__NativeArray*)var247)->values[1]=var256;
-var257 = core__flat___Int___core__abstract_text__Object__to_s(var_holes);
-((struct instance_core__NativeArray*)var247)->values[3]=var257;
-{
-var258 = ((val*(*)(val* self))(var247->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var247); /* native_to_s on <var247:NativeArray[String]>*/
-}
-varonce246 = var247;
-{
-core__file___Sys___print(var245, var258); /* Direct call file#Sys#print on <var245: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 /* : NativeString */;
-val* var44 /* : String */;
-static val* varonce45;
-val* var46 /* : String */;
-char* var47 /* : NativeString */;
-val* var48 /* : String */;
-static val* varonce49;
-val* var50 /* : String */;
-char* var51 /* : NativeString */;
-val* var52 /* : String */;
-val* var53 /* : String */;
-val* var54 /* : String */;
-val* var55 /* : String */;
-static val* varonce56;
-val* var57 /* : String */;
-char* var58 /* : NativeString */;
-val* var59 /* : String */;
-val* var60 /* : RuntimeVariable */;
-val* var_cond /* var cond: RuntimeVariable */;
-val* var62 /* : NativeArray[String] */;
-static val* varonce61;
-static val* varonce63;
-val* var64 /* : String */;
-char* var65 /* : NativeString */;
-val* var66 /* : String */;
-static val* varonce67;
-val* var68 /* : String */;
-char* var69 /* : NativeString */;
-val* var70 /* : String */;
-val* var71 /* : String */;
-val* var72 /* : String */;
-static val* varonce73;
-val* var74 /* : String */;
-char* var75 /* : NativeString */;
-val* var76 /* : String */;
-static val* varonce77;
-val* var78 /* : String */;
-char* var79 /* : NativeString */;
-val* var80 /* : String */;
-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)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1133);
-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:SeparateCompiler(SeparateErasureCompiler)> */
-var12 = var6->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var6:SeparateCompiler(SeparateErasureCompiler)> */
-if (unlikely(var12 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
-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)) {
-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)) {
-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)) {
-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)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 660);
-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)) {
-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(5l, &type_core__NativeArray__core__String);
-if (likely(varonce41!=NULL)) {
-var42 = varonce41;
-} else {
-var43 = "/* Erasure cast for return ";
-var44 = core__flat___NativeString___to_s_full(var43, 27l, 27l);
-var42 = var44;
-varonce41 = var42;
-}
-((struct instance_core__NativeArray*)var40)->values[0]=var42;
-if (likely(varonce45!=NULL)) {
-var46 = varonce45;
-} else {
-var47 = " isa ";
-var48 = core__flat___NativeString___to_s_full(var47, 5l, 5l);
-var46 = var48;
-varonce45 = var46;
-}
-((struct instance_core__NativeArray*)var40)->values[2]=var46;
-if (likely(varonce49!=NULL)) {
-var50 = varonce49;
-} else {
-var51 = " */";
-var52 = core__flat___NativeString___to_s_full(var51, 3l, 3l);
-var50 = var52;
-varonce49 = var50;
-}
-((struct instance_core__NativeArray*)var40)->values[4]=var50;
-} else {
-var40 = varonce;
-varonce = NULL;
-}
-{
-var53 = ((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]=var53;
-{
-var54 = ((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]=var54;
-{
-var55 = ((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, var55); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
-}
-if (likely(varonce56!=NULL)) {
-var57 = varonce56;
-} else {
-var58 = "erasure";
-var59 = core__flat___NativeString___to_s_full(var58, 7l, 7l);
-var57 = var59;
-varonce56 = var57;
-}
-{
-var60 = nitc___nitc__SeparateErasureCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__type_test(self, var_res, var_mtype, var57);
-}
-var_cond = var60;
-if (unlikely(varonce61==NULL)) {
-var62 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
-if (likely(varonce63!=NULL)) {
-var64 = varonce63;
-} else {
-var65 = "if (!";
-var66 = core__flat___NativeString___to_s_full(var65, 5l, 5l);
-var64 = var66;
-varonce63 = var64;
-}
-((struct instance_core__NativeArray*)var62)->values[0]=var64;
-if (likely(varonce67!=NULL)) {
-var68 = varonce67;
-} else {
-var69 = ") {";
-var70 = core__flat___NativeString___to_s_full(var69, 3l, 3l);
-var68 = var70;
-varonce67 = var68;
-}
-((struct instance_core__NativeArray*)var62)->values[2]=var68;
-} else {
-var62 = varonce61;
-varonce61 = NULL;
-}
-{
-var71 = ((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*)var62)->values[1]=var71;
-{
-var72 = ((val*(*)(val* self))(var62->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var62); /* native_to_s on <var62:NativeArray[String]>*/
-}
-varonce61 = var62;
-{
-nitc___nitc__AbstractCompilerVisitor___add(self, var72); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateErasureCompilerVisitor>*/
-}
-if (likely(varonce73!=NULL)) {
-var74 = varonce73;
-} else {
-var75 = "Cast failed";
-var76 = core__flat___NativeString___to_s_full(var75, 11l, 11l);
-var74 = var76;
-varonce73 = var74;
-}
-{
-nitc___nitc__AbstractCompilerVisitor___add_abort(self, var74); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <self:SeparateErasureCompilerVisitor>*/
-}
-if (likely(varonce77!=NULL)) {
-var78 = varonce77;
-} else {
-var79 = "}";
-var80 = core__flat___NativeString___to_s_full(var79, 1l, 1l);
-var78 = var80;
-varonce77 = var78;
-}
-{
-nitc___nitc__AbstractCompilerVisitor___add(self, var78); /* 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 /* : NativeString */;
-val* var5 /* : String */;
-val* var6 /* : MClass */;
-val* var8 /* : MClass */;
-val* var9 /* : String */;
-val* var10 /* : String */;
-val* var12 /* : NativeArray[String] */;
-static val* varonce11;
-static val* varonce13;
-val* var14 /* : String */;
-char* var15 /* : NativeString */;
-val* var16 /* : String */;
-static val* varonce17;
-val* var18 /* : String */;
-char* var19 /* : NativeString */;
-val* var20 /* : String */;
-val* var21 /* : MClass */;
-val* var23 /* : MClass */;
-val* var24 /* : String */;
-val* var25 /* : String */;
-val* var26 /* : RuntimeVariable */;
-var_mtype = p0;
-if (unlikely(varonce==NULL)) {
-var1 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
-if (likely(varonce2!=NULL)) {
-var3 = varonce2;
-} else {
-var4 = "NEW_";
-var5 = core__flat___NativeString___to_s_full(var4, 4l, 4l);
-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> */
-var8 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:MClassType> */
-if (unlikely(var8 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
-fatal_exit(1);
-}
-var6 = var8;
-RET_LABEL7:(void)0;
-}
-}
-{
-var9 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var6);
-}
-((struct instance_core__NativeArray*)var1)->values[1]=var9;
-{
-var10 = ((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, var10); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateErasureCompilerVisitor>*/
-}
-if (unlikely(varonce11==NULL)) {
-var12 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
-if (likely(varonce13!=NULL)) {
-var14 = varonce13;
-} else {
-var15 = "NEW_";
-var16 = core__flat___NativeString___to_s_full(var15, 4l, 4l);
-var14 = var16;
-varonce13 = var14;
-}
-((struct instance_core__NativeArray*)var12)->values[0]=var14;
-if (likely(varonce17!=NULL)) {
-var18 = varonce17;
-} else {
-var19 = "()";
-var20 = core__flat___NativeString___to_s_full(var19, 2l, 2l);
-var18 = var20;
-varonce17 = var18;
-}
-((struct instance_core__NativeArray*)var12)->values[2]=var18;
-} else {
-var12 = varonce11;
-varonce11 = NULL;
-}
-{
-{ /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
-var23 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:MClassType> */
-if (unlikely(var23 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
-fatal_exit(1);
-}
-var21 = var23;
-RET_LABEL22:(void)0;
-}
-}
-{
-var24 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var21);
-}
-((struct instance_core__NativeArray*)var12)->values[1]=var24;
-{
-var25 = ((val*(*)(val* self))(var12->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var12); /* native_to_s on <var12:NativeArray[String]>*/
-}
-varonce11 = var12;
-{
-var26 = nitc___nitc__AbstractCompilerVisitor___new_expr(self, var25, var_mtype);
-}
-var = var26;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}