-/* method global_compiler#GlobalCompiler#generate_check_init_instance for (self: GlobalCompiler, MClassType) */
-void global_compiler__GlobalCompiler__generate_check_init_instance(val* self, val* p0) {
-val* var_mtype /* var mtype: MClassType */;
-val* var /* : ModelBuilder */;
-val* var1 /* : ToolContext */;
-val* var2 /* : OptionBool */;
-val* var3 /* : nullable Object */;
-short int var4 /* : Bool */;
-val* var5 /* : AbstractCompilerVisitor */;
-val* var_v /* var v: GlobalCompilerVisitor */;
-val* var6 /* : RuntimeVariable */;
-static val* varonce;
-val* var7 /* : String */;
-char* var8 /* : NativeString */;
-long var9 /* : Int */;
-val* var10 /* : String */;
-val* var_res /* var res: RuntimeVariable */;
-val* var11 /* : CodeWriter */;
-static val* varonce12;
-val* var13 /* : String */;
-char* var14 /* : NativeString */;
-long var15 /* : Int */;
-val* var16 /* : String */;
-val* var17 /* : String */;
-static val* varonce18;
-val* var19 /* : String */;
-char* var20 /* : NativeString */;
-long var21 /* : Int */;
-val* var22 /* : String */;
-val* var23 /* : String */;
-static val* varonce24;
-val* var25 /* : String */;
-char* var26 /* : NativeString */;
-long var27 /* : Int */;
-val* var28 /* : String */;
-val* var29 /* : Array[Object] */;
-long var30 /* : Int */;
-val* var31 /* : NativeArray[Object] */;
-val* var32 /* : String */;
-static val* varonce33;
-val* var34 /* : String */;
-char* var35 /* : NativeString */;
-long var36 /* : Int */;
-val* var37 /* : String */;
-static val* varonce38;
-val* var39 /* : String */;
-char* var40 /* : NativeString */;
-long var41 /* : Int */;
-val* var42 /* : String */;
-val* var43 /* : Array[Object] */;
-long var44 /* : Int */;
-val* var45 /* : NativeArray[Object] */;
-val* var46 /* : String */;
-static val* varonce47;
-val* var48 /* : String */;
-char* var49 /* : NativeString */;
-long var50 /* : Int */;
-val* var51 /* : String */;
-val* var52 /* : String */;
-static val* varonce53;
-val* var54 /* : String */;
-char* var55 /* : NativeString */;
-long var56 /* : Int */;
-val* var57 /* : String */;
-val* var58 /* : String */;
-static val* varonce59;
-val* var60 /* : String */;
-char* var61 /* : NativeString */;
-long var62 /* : Int */;
-val* var63 /* : String */;
-static val* varonce64;
-val* var65 /* : String */;
-char* var66 /* : NativeString */;
-long var67 /* : Int */;
-val* var68 /* : String */;
-val* var69 /* : Array[Object] */;
-long var70 /* : Int */;
-val* var71 /* : NativeArray[Object] */;
-val* var72 /* : String */;
-static val* varonce73;
-val* var74 /* : String */;
-char* var75 /* : NativeString */;
-long var76 /* : Int */;
-val* var77 /* : String */;
-var_mtype = p0;
-var = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__modelbuilder]))(self) /* modelbuilder on <self:GlobalCompiler>*/;
-var1 = ((val* (*)(val*))(var->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(var) /* toolcontext on <var:ModelBuilder>*/;
-var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_compiler__ToolContext__opt_no_check_initialization]))(var1) /* opt_no_check_initialization on <var1:ToolContext>*/;
-var3 = ((val* (*)(val*))(var2->class->vft[COLOR_opts__Option__value]))(var2) /* value on <var2:OptionBool>*/;
-var4 = ((struct instance_kernel__Bool*)var3)->value; /* autounbox from nullable Object to Bool */;
-if (var4){
-goto RET_LABEL;
-} else {
-}
-var5 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__new_visitor]))(self) /* new_visitor on <self:GlobalCompiler>*/;
-var_v = var5;
-var6 = NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__RuntimeVariable);
-if (varonce) {
-var7 = varonce;
-} else {
-var8 = "self";
-var9 = 4;
-var10 = string__NativeString__to_s_with_length(var8, var9);
-var7 = var10;
-varonce = var7;
-}
-((void (*)(val*, val*, val*, val*))(var6->class->vft[COLOR_abstract_compiler__RuntimeVariable__init]))(var6, var7, var_mtype, var_mtype) /* init on <var6:RuntimeVariable>*/;
-CHECK_NEW_abstract_compiler__RuntimeVariable(var6);
-var_res = var6;
-var11 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__header]))(self) /* header on <self:GlobalCompiler>*/;
-if (varonce12) {
-var13 = varonce12;
-} else {
-var14 = "void CHECK_NEW_";
-var15 = 15;
-var16 = string__NativeString__to_s_with_length(var14, var15);
-var13 = var16;
-varonce12 = var13;
-}
-var17 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_abstract_compiler__MType__c_name]))(var_mtype) /* c_name on <var_mtype:MClassType>*/;
-if (varonce18) {
-var19 = varonce18;
-} else {
-var20 = "(";
-var21 = 1;
-var22 = string__NativeString__to_s_with_length(var20, var21);
-var19 = var22;
-varonce18 = var19;
-}
-var23 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_abstract_compiler__MType__ctype]))(var_mtype) /* ctype on <var_mtype:MClassType>*/;
-if (varonce24) {
-var25 = varonce24;
-} else {
-var26 = ");";
-var27 = 2;
-var28 = string__NativeString__to_s_with_length(var26, var27);
-var25 = var28;
-varonce24 = var25;
-}
-var29 = NEW_array__Array(&type_array__Arraykernel__Object);
-{ /* var29 = array_instance Array[Object] */
-var30 = 5;
-var31 = NEW_array__NativeArray(var30, &type_array__NativeArraykernel__Object);
-((struct instance_array__NativeArray*)var31)->values[0] = (val*) var13;
-((struct instance_array__NativeArray*)var31)->values[1] = (val*) var17;
-((struct instance_array__NativeArray*)var31)->values[2] = (val*) var19;
-((struct instance_array__NativeArray*)var31)->values[3] = (val*) var23;
-((struct instance_array__NativeArray*)var31)->values[4] = (val*) var25;
-((void (*)(val*, val*, long))(var29->class->vft[COLOR_array__Array__with_native]))(var29, var31, var30) /* with_native on <var29:Array[Object]>*/;
-CHECK_NEW_array__Array(var29);
-}
-var32 = ((val* (*)(val*))(var29->class->vft[COLOR_string__Object__to_s]))(var29) /* to_s on <var29:Array[Object]>*/;
-((void (*)(val*, val*))(var11->class->vft[COLOR_abstract_compiler__CodeWriter__add_decl]))(var11, var32) /* add_decl on <var11:CodeWriter>*/;
-if (varonce33) {
-var34 = varonce33;
-} else {
-var35 = "/* allocate ";
-var36 = 12;
-var37 = string__NativeString__to_s_with_length(var35, var36);
-var34 = var37;
-varonce33 = var34;
-}
-if (varonce38) {
-var39 = varonce38;
-} else {
-var40 = " */";
-var41 = 3;
-var42 = string__NativeString__to_s_with_length(var40, var41);
-var39 = var42;
-varonce38 = var39;
-}
-var43 = NEW_array__Array(&type_array__Arraykernel__Object);
-{ /* var43 = array_instance Array[Object] */
-var44 = 3;
-var45 = NEW_array__NativeArray(var44, &type_array__NativeArraykernel__Object);
-((struct instance_array__NativeArray*)var45)->values[0] = (val*) var34;
-((struct instance_array__NativeArray*)var45)->values[1] = (val*) var_mtype;
-((struct instance_array__NativeArray*)var45)->values[2] = (val*) var39;
-((void (*)(val*, val*, long))(var43->class->vft[COLOR_array__Array__with_native]))(var43, var45, var44) /* with_native on <var43:Array[Object]>*/;
-CHECK_NEW_array__Array(var43);
-}
-var46 = ((val* (*)(val*))(var43->class->vft[COLOR_string__Object__to_s]))(var43) /* to_s on <var43:Array[Object]>*/;
-((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl]))(var_v, var46) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
-if (varonce47) {
-var48 = varonce47;
-} else {
-var49 = "void CHECK_NEW_";
-var50 = 15;
-var51 = string__NativeString__to_s_with_length(var49, var50);
-var48 = var51;
-varonce47 = var48;
-}
-var52 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_abstract_compiler__MType__c_name]))(var_mtype) /* c_name on <var_mtype:MClassType>*/;
-if (varonce53) {
-var54 = varonce53;
-} else {
-var55 = "(";
-var56 = 1;
-var57 = string__NativeString__to_s_with_length(var55, var56);
-var54 = var57;
-varonce53 = var54;
-}
-var58 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_abstract_compiler__MType__ctype]))(var_mtype) /* ctype on <var_mtype:MClassType>*/;
-if (varonce59) {
-var60 = varonce59;
-} else {
-var61 = " ";
-var62 = 1;
-var63 = string__NativeString__to_s_with_length(var61, var62);
-var60 = var63;
-varonce59 = var60;
-}
-if (varonce64) {
-var65 = varonce64;
-} else {
-var66 = ") {";
-var67 = 3;
-var68 = string__NativeString__to_s_with_length(var66, var67);
-var65 = var68;
-varonce64 = var65;
-}
-var69 = NEW_array__Array(&type_array__Arraykernel__Object);
-{ /* var69 = array_instance Array[Object] */
-var70 = 7;
-var71 = NEW_array__NativeArray(var70, &type_array__NativeArraykernel__Object);
-((struct instance_array__NativeArray*)var71)->values[0] = (val*) var48;
-((struct instance_array__NativeArray*)var71)->values[1] = (val*) var52;
-((struct instance_array__NativeArray*)var71)->values[2] = (val*) var54;
-((struct instance_array__NativeArray*)var71)->values[3] = (val*) var58;
-((struct instance_array__NativeArray*)var71)->values[4] = (val*) var60;
-((struct instance_array__NativeArray*)var71)->values[5] = (val*) var_res;
-((struct instance_array__NativeArray*)var71)->values[6] = (val*) var65;
-((void (*)(val*, val*, long))(var69->class->vft[COLOR_array__Array__with_native]))(var69, var71, var70) /* with_native on <var69:Array[Object]>*/;
-CHECK_NEW_array__Array(var69);
-}
-var72 = ((val* (*)(val*))(var69->class->vft[COLOR_string__Object__to_s]))(var69) /* to_s on <var69:Array[Object]>*/;
-((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl]))(var_v, var72) /* add_decl on <var_v:GlobalCompilerVisitor>*/;
-((void (*)(val*, val*, val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__generate_check_attr]))(self, var_v, var_res, var_mtype) /* generate_check_attr on <self:GlobalCompiler>*/;
-if (varonce73) {
-var74 = varonce73;
-} else {
-var75 = "}";
-var76 = 1;
-var77 = string__NativeString__to_s_with_length(var75, var76);
-var74 = var77;
-varonce73 = var74;
-}
-((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var74) /* add on <var_v:GlobalCompilerVisitor>*/;
-RET_LABEL:;
-}
-/* method global_compiler#GlobalCompiler#generate_check_init_instance for (self: Object, MClassType) */
-void VIRTUAL_global_compiler__GlobalCompiler__generate_check_init_instance(val* self, val* p0) {
-global_compiler__GlobalCompiler__generate_check_init_instance(self, p0);
-RET_LABEL:;
-}