+/* method separate_compiler#SeparateCompilerVisitor#autobox for (self: SeparateCompilerVisitor, RuntimeVariable, MType): RuntimeVariable */
+val* separate_compiler__SeparateCompilerVisitor__autobox(val* self, val* p0, val* p1) {
+val* var /* : RuntimeVariable */;
+val* var_value /* var value: RuntimeVariable */;
+val* var_mtype /* var mtype: MType */;
+val* var1 /* : MType */;
+short int var2 /* : Bool */;
+short int var3 /* : Bool */;
+val* var4 /* : MType */;
+val* var5 /* : String */;
+static val* varonce;
+val* var6 /* : String */;
+char* var7 /* : NativeString */;
+long var8 /* : Int */;
+val* var9 /* : String */;
+short int var10 /* : Bool */;
+short int var_ /* var : Bool */;
+val* var11 /* : String */;
+static val* varonce12;
+val* var13 /* : String */;
+char* var14 /* : NativeString */;
+long var15 /* : Int */;
+val* var16 /* : String */;
+short int var17 /* : Bool */;
+val* var18 /* : MType */;
+val* var19 /* : String */;
+static val* varonce20;
+val* var21 /* : String */;
+char* var22 /* : NativeString */;
+long var23 /* : Int */;
+val* var24 /* : String */;
+short int var25 /* : Bool */;
+static val* varonce26;
+val* var27 /* : String */;
+char* var28 /* : NativeString */;
+long var29 /* : Int */;
+val* var30 /* : String */;
+val* var31 /* : String */;
+static val* varonce32;
+val* var33 /* : String */;
+char* var34 /* : NativeString */;
+long var35 /* : Int */;
+val* var36 /* : String */;
+static val* varonce37;
+val* var38 /* : String */;
+char* var39 /* : NativeString */;
+long var40 /* : Int */;
+val* var41 /* : String */;
+val* var42 /* : MType */;
+static val* varonce43;
+val* var44 /* : String */;
+char* var45 /* : NativeString */;
+long var46 /* : Int */;
+val* var47 /* : String */;
+static val* varonce48;
+val* var49 /* : String */;
+char* var50 /* : NativeString */;
+long var51 /* : Int */;
+val* var52 /* : String */;
+val* var53 /* : Array[Object] */;
+long var54 /* : Int */;
+val* var55 /* : NativeArray[Object] */;
+val* var56 /* : String */;
+val* var57 /* : RuntimeVariable */;
+val* var58 /* : String */;
+static val* varonce59;
+val* var60 /* : String */;
+char* var61 /* : NativeString */;
+long var62 /* : Int */;
+val* var63 /* : String */;
+short int var64 /* : Bool */;
+val* var65 /* : MType */;
+short int var66 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+val* var_valtype /* var valtype: MClassType */;
+val* var67 /* : RuntimeVariable */;
+val* var_res /* var res: RuntimeVariable */;
+short int var68 /* : Bool */;
+val* var69 /* : AbstractCompiler */;
+val* var70 /* : nullable RapidTypeAnalysis */;
+val* var71 /* : null */;
+short int var72 /* : Bool */;
+short int var_73 /* var : Bool */;
+val* var74 /* : AbstractCompiler */;
+val* var75 /* : nullable RapidTypeAnalysis */;
+val* var76 /* : HashSet[MClassType] */;
+short int var77 /* : Bool */;
+short int var78 /* : Bool */;
+static val* varonce79;
+val* var80 /* : String */;
+char* var81 /* : NativeString */;
+long var82 /* : Int */;
+val* var83 /* : String */;
+val* var84 /* : MType */;
+static val* varonce85;
+val* var86 /* : String */;
+char* var87 /* : NativeString */;
+long var88 /* : Int */;
+val* var89 /* : String */;
+static val* varonce90;
+val* var91 /* : String */;
+char* var92 /* : NativeString */;
+long var93 /* : Int */;
+val* var94 /* : String */;
+val* var95 /* : MType */;
+static val* varonce96;
+val* var97 /* : String */;
+char* var98 /* : NativeString */;
+long var99 /* : Int */;
+val* var100 /* : String */;
+val* var101 /* : Array[Object] */;
+long var102 /* : Int */;
+val* var103 /* : NativeArray[Object] */;
+val* var104 /* : String */;
+static val* varonce105;
+val* var106 /* : String */;
+char* var107 /* : NativeString */;
+long var108 /* : Int */;
+val* var109 /* : String */;
+static val* varonce110;
+val* var111 /* : String */;
+char* var112 /* : NativeString */;
+long var113 /* : Int */;
+val* var114 /* : String */;
+val* var115 /* : String */;
+val* var116 /* : Array[Object] */;
+long var117 /* : Int */;
+val* var118 /* : NativeArray[Object] */;
+val* var119 /* : String */;
+static val* varonce120;
+val* var121 /* : String */;
+char* var122 /* : NativeString */;
+long var123 /* : Int */;
+val* var124 /* : String */;
+val* var125 /* : String */;
+static val* varonce126;
+val* var127 /* : String */;
+char* var128 /* : NativeString */;
+long var129 /* : Int */;
+val* var130 /* : String */;
+static val* varonce131;
+val* var132 /* : String */;
+char* var133 /* : NativeString */;
+long var134 /* : Int */;
+val* var135 /* : String */;
+val* var136 /* : MType */;
+static val* varonce137;
+val* var138 /* : String */;
+char* var139 /* : NativeString */;
+long var140 /* : Int */;
+val* var141 /* : String */;
+static val* varonce142;
+val* var143 /* : String */;
+char* var144 /* : NativeString */;
+long var145 /* : Int */;
+val* var146 /* : String */;
+val* var147 /* : Array[Object] */;
+long var148 /* : Int */;
+val* var149 /* : NativeArray[Object] */;
+val* var150 /* : String */;
+short int var151 /* : Bool */;
+val* var152 /* : MType */;
+val* var153 /* : String */;
+static val* varonce154;
+val* var155 /* : String */;
+char* var156 /* : NativeString */;
+long var157 /* : Int */;
+val* var158 /* : String */;
+short int var159 /* : Bool */;
+short int var_160 /* var : Bool */;
+val* var161 /* : String */;
+static val* varonce162;
+val* var163 /* : String */;
+char* var164 /* : NativeString */;
+long var165 /* : Int */;
+val* var166 /* : String */;
+short int var167 /* : Bool */;
+val* var168 /* : RuntimeVariable */;
+val* var_res169 /* var res: RuntimeVariable */;
+static val* varonce170;
+val* var171 /* : String */;
+char* var172 /* : NativeString */;
+long var173 /* : Int */;
+val* var174 /* : String */;
+static val* varonce175;
+val* var176 /* : String */;
+char* var177 /* : NativeString */;
+long var178 /* : Int */;
+val* var179 /* : String */;
+val* var180 /* : MType */;
+static val* varonce181;
+val* var182 /* : String */;
+char* var183 /* : NativeString */;
+long var184 /* : Int */;
+val* var185 /* : String */;
+static val* varonce186;
+val* var187 /* : String */;
+char* var188 /* : NativeString */;
+long var189 /* : Int */;
+val* var190 /* : String */;
+val* var191 /* : Array[Object] */;
+long var192 /* : Int */;
+val* var193 /* : NativeArray[Object] */;
+val* var194 /* : String */;
+static val* varonce195;
+val* var196 /* : String */;
+char* var197 /* : NativeString */;
+long var198 /* : Int */;
+val* var199 /* : String */;
+val* var200 /* : MType */;
+static val* varonce201;
+val* var202 /* : String */;
+char* var203 /* : NativeString */;
+long var204 /* : Int */;
+val* var205 /* : String */;
+static val* varonce206;
+val* var207 /* : String */;
+char* var208 /* : NativeString */;
+long var209 /* : Int */;
+val* var210 /* : String */;
+val* var211 /* : Array[Object] */;
+long var212 /* : Int */;
+val* var213 /* : NativeArray[Object] */;
+val* var214 /* : String */;
+var_value = p0;
+var_mtype = p1;
+var1 = ((val* (*)(val*))(var_value->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_value) /* mtype on <var_value:RuntimeVariable>*/;
+var2 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_kernel__Object___61d_61d]))(var1, var_mtype) /* == on <var1:MType>*/;
+if (var2){
+var = var_value;
+goto RET_LABEL;
+} else {
+var4 = ((val* (*)(val*))(var_value->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_value) /* mtype on <var_value:RuntimeVariable>*/;
+var5 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_compiler__MType__ctype]))(var4) /* ctype on <var4:MType>*/;
+if (varonce) {
+var6 = varonce;
+} else {
+var7 = "val*";
+var8 = 4;
+var9 = string__NativeString__to_s_with_length(var7, var8);
+var6 = var9;
+varonce = var6;
+}
+var10 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var6) /* == on <var5:String>*/;
+var_ = var10;
+if (var10){
+var11 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_abstract_compiler__MType__ctype]))(var_mtype) /* ctype on <var_mtype:MType>*/;
+if (varonce12) {
+var13 = varonce12;
+} else {
+var14 = "val*";
+var15 = 4;
+var16 = string__NativeString__to_s_with_length(var14, var15);
+var13 = var16;
+varonce12 = var13;
+}
+var17 = ((short int (*)(val*, val*))(var11->class->vft[COLOR_kernel__Object___61d_61d]))(var11, var13) /* == on <var11:String>*/;
+var3 = var17;
+} else {
+var3 = var_;
+}
+if (var3){
+var = var_value;
+goto RET_LABEL;
+} else {
+var18 = ((val* (*)(val*))(var_value->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_value) /* mtype on <var_value:RuntimeVariable>*/;
+var19 = ((val* (*)(val*))(var18->class->vft[COLOR_abstract_compiler__MType__ctype]))(var18) /* ctype on <var18:MType>*/;
+if (varonce20) {
+var21 = varonce20;
+} else {
+var22 = "val*";
+var23 = 4;
+var24 = string__NativeString__to_s_with_length(var22, var23);
+var21 = var24;
+varonce20 = var21;
+}
+var25 = ((short int (*)(val*, val*))(var19->class->vft[COLOR_kernel__Object___61d_61d]))(var19, var21) /* == on <var19:String>*/;
+if (var25){
+if (varonce26) {
+var27 = varonce26;
+} else {
+var28 = "((struct instance_";
+var29 = 18;
+var30 = string__NativeString__to_s_with_length(var28, var29);
+var27 = var30;
+varonce26 = var27;
+}
+var31 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_separate_compiler__MType__c_instance_name]))(var_mtype) /* c_instance_name on <var_mtype:MType>*/;
+if (varonce32) {
+var33 = varonce32;
+} else {
+var34 = "*)";
+var35 = 2;
+var36 = string__NativeString__to_s_with_length(var34, var35);
+var33 = var36;
+varonce32 = var33;
+}
+if (varonce37) {
+var38 = varonce37;
+} else {
+var39 = ")->value; /* autounbox from ";
+var40 = 28;
+var41 = string__NativeString__to_s_with_length(var39, var40);
+var38 = var41;
+varonce37 = var38;
+}
+var42 = ((val* (*)(val*))(var_value->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_value) /* mtype on <var_value:RuntimeVariable>*/;
+if (varonce43) {
+var44 = varonce43;
+} else {
+var45 = " to ";
+var46 = 4;
+var47 = string__NativeString__to_s_with_length(var45, var46);
+var44 = var47;
+varonce43 = var44;
+}
+if (varonce48) {
+var49 = varonce48;
+} else {
+var50 = " */";
+var51 = 3;
+var52 = string__NativeString__to_s_with_length(var50, var51);
+var49 = var52;
+varonce48 = var49;
+}
+var53 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var53 = array_instance Array[Object] */
+var54 = 9;
+var55 = NEW_array__NativeArray(var54, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var55)->values[0] = (val*) var27;
+((struct instance_array__NativeArray*)var55)->values[1] = (val*) var31;
+((struct instance_array__NativeArray*)var55)->values[2] = (val*) var33;
+((struct instance_array__NativeArray*)var55)->values[3] = (val*) var_value;
+((struct instance_array__NativeArray*)var55)->values[4] = (val*) var38;
+((struct instance_array__NativeArray*)var55)->values[5] = (val*) var42;
+((struct instance_array__NativeArray*)var55)->values[6] = (val*) var44;
+((struct instance_array__NativeArray*)var55)->values[7] = (val*) var_mtype;
+((struct instance_array__NativeArray*)var55)->values[8] = (val*) var49;
+((void (*)(val*, val*, long))(var53->class->vft[COLOR_array__Array__with_native]))(var53, var55, var54) /* with_native on <var53:Array[Object]>*/;
+}
+var56 = ((val* (*)(val*))(var53->class->vft[COLOR_string__Object__to_s]))(var53) /* to_s on <var53:Array[Object]>*/;
+var57 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(self, var56, var_mtype) /* new_expr on <self:SeparateCompilerVisitor>*/;
+var = var57;
+goto RET_LABEL;
+} else {
+var58 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_abstract_compiler__MType__ctype]))(var_mtype) /* ctype on <var_mtype:MType>*/;
+if (varonce59) {
+var60 = varonce59;
+} else {
+var61 = "val*";
+var62 = 4;
+var63 = string__NativeString__to_s_with_length(var61, var62);
+var60 = var63;
+varonce59 = var60;
+}
+var64 = ((short int (*)(val*, val*))(var58->class->vft[COLOR_kernel__Object___61d_61d]))(var58, var60) /* == on <var58:String>*/;
+if (var64){
+var65 = ((val* (*)(val*))(var_value->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_value) /* mtype on <var_value:RuntimeVariable>*/;
+/* <var65:MType> isa MClassType */
+cltype = type_model__MClassType.color;
+idtype = type_model__MClassType.id;
+if(cltype >= var65->type->table_size) {
+var66 = 0;
+} else {
+var66 = var65->type->type_table[cltype] == idtype;
+}
+if (!var66) {
+var_class_name = var65 == NULL ? "null" : var65->type->name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 958);
+show_backtrace(1);
+}
+var_valtype = var65;
+var67 = ((val* (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(self, var_mtype) /* new_var on <self:SeparateCompilerVisitor>*/;
+var_res = var67;
+var69 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler]))(self) /* compiler on <self:SeparateCompilerVisitor>*/;
+var70 = ((val* (*)(val*))(var69->class->vft[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis]))(var69) /* runtime_type_analysis on <var69:AbstractCompiler(SeparateCompiler)>*/;
+var71 = NULL;
+if (var70 == NULL) {
+var72 = 0; /* is null */
+} else {
+var72 = 1; /* arg is null and recv is not */
+}
+var_73 = var72;
+if (var72){
+var74 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler]))(self) /* compiler on <self:SeparateCompilerVisitor>*/;
+var75 = ((val* (*)(val*))(var74->class->vft[COLOR_separate_compiler__SeparateCompiler__runtime_type_analysis]))(var74) /* runtime_type_analysis on <var74:AbstractCompiler(SeparateCompiler)>*/;
+if (var75 == NULL) {
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 960);
+show_backtrace(1);
+} else {
+var76 = ((val* (*)(val*))(var75->class->vft[COLOR_rapid_type_analysis__RapidTypeAnalysis__live_types]))(var75) /* live_types on <var75:nullable RapidTypeAnalysis>*/;
+}
+var77 = ((short int (*)(val*, val*))(var76->class->vft[COLOR_abstract_collection__Collection__has]))(var76, var_valtype) /* has on <var76:HashSet[MClassType]>*/;
+var78 = !var77;
+var68 = var78;
+} else {
+var68 = var_73;
+}
+if (var68){
+if (varonce79) {
+var80 = varonce79;
+} else {
+var81 = "/*no autobox from ";
+var82 = 18;
+var83 = string__NativeString__to_s_with_length(var81, var82);
+var80 = var83;
+varonce79 = var80;
+}
+var84 = ((val* (*)(val*))(var_value->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_value) /* mtype on <var_value:RuntimeVariable>*/;
+if (varonce85) {
+var86 = varonce85;
+} else {
+var87 = " to ";
+var88 = 4;
+var89 = string__NativeString__to_s_with_length(var87, var88);
+var86 = var89;
+varonce85 = var86;
+}
+if (varonce90) {
+var91 = varonce90;
+} else {
+var92 = ": ";
+var93 = 2;
+var94 = string__NativeString__to_s_with_length(var92, var93);
+var91 = var94;
+varonce90 = var91;
+}
+var95 = ((val* (*)(val*))(var_value->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_value) /* mtype on <var_value:RuntimeVariable>*/;
+if (varonce96) {
+var97 = varonce96;
+} else {
+var98 = " is not live! */";
+var99 = 16;
+var100 = string__NativeString__to_s_with_length(var98, var99);
+var97 = var100;
+varonce96 = var97;
+}
+var101 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var101 = array_instance Array[Object] */
+var102 = 7;
+var103 = NEW_array__NativeArray(var102, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var103)->values[0] = (val*) var80;
+((struct instance_array__NativeArray*)var103)->values[1] = (val*) var84;
+((struct instance_array__NativeArray*)var103)->values[2] = (val*) var86;
+((struct instance_array__NativeArray*)var103)->values[3] = (val*) var_mtype;
+((struct instance_array__NativeArray*)var103)->values[4] = (val*) var91;
+((struct instance_array__NativeArray*)var103)->values[5] = (val*) var95;
+((struct instance_array__NativeArray*)var103)->values[6] = (val*) var97;
+((void (*)(val*, val*, long))(var101->class->vft[COLOR_array__Array__with_native]))(var101, var103, var102) /* with_native on <var101:Array[Object]>*/;
+}
+var104 = ((val* (*)(val*))(var101->class->vft[COLOR_string__Object__to_s]))(var101) /* to_s on <var101:Array[Object]>*/;
+((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var104) /* add on <self:SeparateCompilerVisitor>*/;
+if (varonce105) {
+var106 = varonce105;
+} else {
+var107 = "printf(\"Dead code executed!\\n\"); show_backtrace(1);";
+var108 = 51;
+var109 = string__NativeString__to_s_with_length(var107, var108);
+var106 = var109;
+varonce105 = var106;
+}
+((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var106) /* add on <self:SeparateCompilerVisitor>*/;
+var = var_res;
+goto RET_LABEL;
+} else {
+}
+if (varonce110) {
+var111 = varonce110;
+} else {
+var112 = "BOX_";
+var113 = 4;
+var114 = string__NativeString__to_s_with_length(var112, var113);
+var111 = var114;
+varonce110 = var111;
+}
+var115 = ((val* (*)(val*))(var_valtype->class->vft[COLOR_abstract_compiler__MType__c_name]))(var_valtype) /* c_name on <var_valtype:MClassType>*/;
+var116 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var116 = array_instance Array[Object] */
+var117 = 2;
+var118 = NEW_array__NativeArray(var117, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var118)->values[0] = (val*) var111;
+((struct instance_array__NativeArray*)var118)->values[1] = (val*) var115;
+((void (*)(val*, val*, long))(var116->class->vft[COLOR_array__Array__with_native]))(var116, var118, var117) /* with_native on <var116:Array[Object]>*/;
+}
+var119 = ((val* (*)(val*))(var116->class->vft[COLOR_string__Object__to_s]))(var116) /* to_s on <var116:Array[Object]>*/;
+((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration]))(self, var119) /* require_declaration on <self:SeparateCompilerVisitor>*/;
+if (varonce120) {
+var121 = varonce120;
+} else {
+var122 = " = BOX_";
+var123 = 7;
+var124 = string__NativeString__to_s_with_length(var122, var123);
+var121 = var124;
+varonce120 = var121;
+}
+var125 = ((val* (*)(val*))(var_valtype->class->vft[COLOR_abstract_compiler__MType__c_name]))(var_valtype) /* c_name on <var_valtype:MClassType>*/;
+if (varonce126) {
+var127 = varonce126;
+} else {
+var128 = "(";
+var129 = 1;
+var130 = string__NativeString__to_s_with_length(var128, var129);
+var127 = var130;
+varonce126 = var127;
+}
+if (varonce131) {
+var132 = varonce131;
+} else {
+var133 = "); /* autobox from ";
+var134 = 19;
+var135 = string__NativeString__to_s_with_length(var133, var134);
+var132 = var135;
+varonce131 = var132;
+}
+var136 = ((val* (*)(val*))(var_value->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_value) /* mtype on <var_value:RuntimeVariable>*/;
+if (varonce137) {
+var138 = varonce137;
+} else {
+var139 = " to ";
+var140 = 4;
+var141 = string__NativeString__to_s_with_length(var139, var140);
+var138 = var141;
+varonce137 = var138;
+}
+if (varonce142) {
+var143 = varonce142;
+} else {
+var144 = " */";
+var145 = 3;
+var146 = string__NativeString__to_s_with_length(var144, var145);
+var143 = var146;
+varonce142 = var143;
+}
+var147 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var147 = array_instance Array[Object] */
+var148 = 10;
+var149 = NEW_array__NativeArray(var148, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var149)->values[0] = (val*) var_res;
+((struct instance_array__NativeArray*)var149)->values[1] = (val*) var121;
+((struct instance_array__NativeArray*)var149)->values[2] = (val*) var125;
+((struct instance_array__NativeArray*)var149)->values[3] = (val*) var127;
+((struct instance_array__NativeArray*)var149)->values[4] = (val*) var_value;
+((struct instance_array__NativeArray*)var149)->values[5] = (val*) var132;
+((struct instance_array__NativeArray*)var149)->values[6] = (val*) var136;
+((struct instance_array__NativeArray*)var149)->values[7] = (val*) var138;
+((struct instance_array__NativeArray*)var149)->values[8] = (val*) var_mtype;
+((struct instance_array__NativeArray*)var149)->values[9] = (val*) var143;
+((void (*)(val*, val*, long))(var147->class->vft[COLOR_array__Array__with_native]))(var147, var149, var148) /* with_native on <var147:Array[Object]>*/;
+}
+var150 = ((val* (*)(val*))(var147->class->vft[COLOR_string__Object__to_s]))(var147) /* to_s on <var147:Array[Object]>*/;
+((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var150) /* add on <self:SeparateCompilerVisitor>*/;
+var = var_res;
+goto RET_LABEL;
+} else {
+var152 = ((val* (*)(val*))(var_value->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_value) /* mtype on <var_value:RuntimeVariable>*/;
+var153 = ((val* (*)(val*))(var152->class->vft[COLOR_nitni_base__MType__cname_blind]))(var152) /* cname_blind on <var152:MType>*/;
+if (varonce154) {
+var155 = varonce154;
+} else {
+var156 = "void*";
+var157 = 5;
+var158 = string__NativeString__to_s_with_length(var156, var157);
+var155 = var158;
+varonce154 = var155;
+}
+var159 = ((short int (*)(val*, val*))(var153->class->vft[COLOR_kernel__Object___61d_61d]))(var153, var155) /* == on <var153:String>*/;
+var_160 = var159;
+if (var159){
+var161 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_nitni_base__MType__cname_blind]))(var_mtype) /* cname_blind on <var_mtype:MType>*/;
+if (varonce162) {
+var163 = varonce162;
+} else {
+var164 = "void*";
+var165 = 5;
+var166 = string__NativeString__to_s_with_length(var164, var165);
+var163 = var166;
+varonce162 = var163;
+}
+var167 = ((short int (*)(val*, val*))(var161->class->vft[COLOR_kernel__Object___61d_61d]))(var161, var163) /* == on <var161:String>*/;
+var151 = var167;
+} else {
+var151 = var_160;
+}
+if (var151){
+var = var_value;
+goto RET_LABEL;
+} else {
+var168 = ((val* (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(self, var_mtype) /* new_var on <self:SeparateCompilerVisitor>*/;
+var_res169 = var168;
+if (varonce170) {
+var171 = varonce170;
+} else {
+var172 = "/* ";
+var173 = 3;
+var174 = string__NativeString__to_s_with_length(var172, var173);
+var171 = var174;
+varonce170 = var171;
+}
+if (varonce175) {
+var176 = varonce175;
+} else {
+var177 = " left unintialized (cannot convert ";
+var178 = 35;
+var179 = string__NativeString__to_s_with_length(var177, var178);
+var176 = var179;
+varonce175 = var176;
+}
+var180 = ((val* (*)(val*))(var_value->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_value) /* mtype on <var_value:RuntimeVariable>*/;
+if (varonce181) {
+var182 = varonce181;
+} else {
+var183 = " to ";
+var184 = 4;
+var185 = string__NativeString__to_s_with_length(var183, var184);
+var182 = var185;
+varonce181 = var182;
+}
+if (varonce186) {
+var187 = varonce186;
+} else {
+var188 = ") */";
+var189 = 4;
+var190 = string__NativeString__to_s_with_length(var188, var189);
+var187 = var190;
+varonce186 = var187;
+}
+var191 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var191 = array_instance Array[Object] */
+var192 = 7;
+var193 = NEW_array__NativeArray(var192, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var193)->values[0] = (val*) var171;
+((struct instance_array__NativeArray*)var193)->values[1] = (val*) var_res169;
+((struct instance_array__NativeArray*)var193)->values[2] = (val*) var176;
+((struct instance_array__NativeArray*)var193)->values[3] = (val*) var180;
+((struct instance_array__NativeArray*)var193)->values[4] = (val*) var182;
+((struct instance_array__NativeArray*)var193)->values[5] = (val*) var_mtype;
+((struct instance_array__NativeArray*)var193)->values[6] = (val*) var187;
+((void (*)(val*, val*, long))(var191->class->vft[COLOR_array__Array__with_native]))(var191, var193, var192) /* with_native on <var191:Array[Object]>*/;
+}
+var194 = ((val* (*)(val*))(var191->class->vft[COLOR_string__Object__to_s]))(var191) /* to_s on <var191:Array[Object]>*/;
+((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var194) /* add on <self:SeparateCompilerVisitor>*/;
+if (varonce195) {
+var196 = varonce195;
+} else {
+var197 = "printf(\"Cast error: Cannot cast %s to %s.\\n\", \"";
+var198 = 47;
+var199 = string__NativeString__to_s_with_length(var197, var198);
+var196 = var199;
+varonce195 = var196;
+}
+var200 = ((val* (*)(val*))(var_value->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_value) /* mtype on <var_value:RuntimeVariable>*/;
+if (varonce201) {
+var202 = varonce201;
+} else {
+var203 = "\", \"";
+var204 = 4;
+var205 = string__NativeString__to_s_with_length(var203, var204);
+var202 = var205;
+varonce201 = var202;
+}
+if (varonce206) {
+var207 = varonce206;
+} else {
+var208 = "\"); show_backtrace(1);";
+var209 = 22;
+var210 = string__NativeString__to_s_with_length(var208, var209);
+var207 = var210;
+varonce206 = var207;
+}
+var211 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var211 = array_instance Array[Object] */
+var212 = 5;
+var213 = NEW_array__NativeArray(var212, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var213)->values[0] = (val*) var196;
+((struct instance_array__NativeArray*)var213)->values[1] = (val*) var200;
+((struct instance_array__NativeArray*)var213)->values[2] = (val*) var202;
+((struct instance_array__NativeArray*)var213)->values[3] = (val*) var_mtype;
+((struct instance_array__NativeArray*)var213)->values[4] = (val*) var207;
+((void (*)(val*, val*, long))(var211->class->vft[COLOR_array__Array__with_native]))(var211, var213, var212) /* with_native on <var211:Array[Object]>*/;
+}
+var214 = ((val* (*)(val*))(var211->class->vft[COLOR_string__Object__to_s]))(var211) /* to_s on <var211:Array[Object]>*/;
+((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var214) /* add on <self:SeparateCompilerVisitor>*/;
+var = var_res169;
+goto RET_LABEL;
+}
+}
+}
+}
+}
+RET_LABEL:;
+return var;
+}
+/* method separate_compiler#SeparateCompilerVisitor#autobox for (self: Object, RuntimeVariable, MType): RuntimeVariable */
+val* VIRTUAL_separate_compiler__SeparateCompilerVisitor__autobox(val* self, val* p0, val* p1) {
+val* var /* : RuntimeVariable */;
+val* var1 /* : RuntimeVariable */;
+var1 = separate_compiler__SeparateCompilerVisitor__autobox(self, p0, p1);
+var = var1;
+RET_LABEL:;
+return var;
+}