c_src: update with new intern methods
[nit.git] / c_src / nitni_base.sep.1.c
diff --git a/c_src/nitni_base.sep.1.c b/c_src/nitni_base.sep.1.c
new file mode 100644 (file)
index 0000000..2fe7d17
--- /dev/null
@@ -0,0 +1,1800 @@
+#include "nitni_base.sep.0.h"
+/* method nitni_base#MMethod#short_cname for (self: MMethod): String */
+val* nitni_base__MMethod__short_cname(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+val* var_nit_name /* var nit_name: String */;
+static val* varonce;
+val* var2 /* : String */;
+char* var3 /* : NativeString */;
+long var4 /* : Int */;
+val* var5 /* : String */;
+short int var6 /* : Bool */;
+static val* varonce7;
+val* var8 /* : String */;
+char* var9 /* : NativeString */;
+long var10 /* : Int */;
+val* var11 /* : String */;
+static val* varonce12;
+val* var13 /* : String */;
+char* var14 /* : NativeString */;
+long var15 /* : Int */;
+val* var16 /* : String */;
+short int var17 /* : Bool */;
+static val* varonce18;
+val* var19 /* : String */;
+char* var20 /* : NativeString */;
+long var21 /* : Int */;
+val* var22 /* : String */;
+static val* varonce23;
+val* var24 /* : String */;
+char* var25 /* : NativeString */;
+long var26 /* : Int */;
+val* var27 /* : String */;
+short int var28 /* : Bool */;
+static val* varonce29;
+val* var30 /* : String */;
+char* var31 /* : NativeString */;
+long var32 /* : Int */;
+val* var33 /* : String */;
+static val* varonce34;
+val* var35 /* : String */;
+char* var36 /* : NativeString */;
+long var37 /* : Int */;
+val* var38 /* : String */;
+short int var39 /* : Bool */;
+static val* varonce40;
+val* var41 /* : String */;
+char* var42 /* : NativeString */;
+long var43 /* : Int */;
+val* var44 /* : String */;
+static val* varonce45;
+val* var46 /* : String */;
+char* var47 /* : NativeString */;
+long var48 /* : Int */;
+val* var49 /* : String */;
+short int var50 /* : Bool */;
+static val* varonce51;
+val* var52 /* : String */;
+char* var53 /* : NativeString */;
+long var54 /* : Int */;
+val* var55 /* : String */;
+static val* varonce56;
+val* var57 /* : String */;
+char* var58 /* : NativeString */;
+long var59 /* : Int */;
+val* var60 /* : String */;
+short int var61 /* : Bool */;
+static val* varonce62;
+val* var63 /* : String */;
+char* var64 /* : NativeString */;
+long var65 /* : Int */;
+val* var66 /* : String */;
+static val* varonce67;
+val* var68 /* : String */;
+char* var69 /* : NativeString */;
+long var70 /* : Int */;
+val* var71 /* : String */;
+short int var72 /* : Bool */;
+static val* varonce73;
+val* var74 /* : String */;
+char* var75 /* : NativeString */;
+long var76 /* : Int */;
+val* var77 /* : String */;
+static val* varonce78;
+val* var79 /* : String */;
+char* var80 /* : NativeString */;
+long var81 /* : Int */;
+val* var82 /* : String */;
+short int var83 /* : Bool */;
+static val* varonce84;
+val* var85 /* : String */;
+char* var86 /* : NativeString */;
+long var87 /* : Int */;
+val* var88 /* : String */;
+static val* varonce89;
+val* var90 /* : String */;
+char* var91 /* : NativeString */;
+long var92 /* : Int */;
+val* var93 /* : String */;
+short int var94 /* : Bool */;
+static val* varonce95;
+val* var96 /* : String */;
+char* var97 /* : NativeString */;
+long var98 /* : Int */;
+val* var99 /* : String */;
+static val* varonce100;
+val* var101 /* : String */;
+char* var102 /* : NativeString */;
+long var103 /* : Int */;
+val* var104 /* : String */;
+short int var105 /* : Bool */;
+static val* varonce106;
+val* var107 /* : String */;
+char* var108 /* : NativeString */;
+long var109 /* : Int */;
+val* var110 /* : String */;
+static val* varonce111;
+val* var112 /* : String */;
+char* var113 /* : NativeString */;
+long var114 /* : Int */;
+val* var115 /* : String */;
+short int var116 /* : Bool */;
+static val* varonce117;
+val* var118 /* : String */;
+char* var119 /* : NativeString */;
+long var120 /* : Int */;
+val* var121 /* : String */;
+static val* varonce122;
+val* var123 /* : String */;
+char* var124 /* : NativeString */;
+long var125 /* : Int */;
+val* var126 /* : String */;
+short int var127 /* : Bool */;
+static val* varonce128;
+val* var129 /* : String */;
+char* var130 /* : NativeString */;
+long var131 /* : Int */;
+val* var132 /* : String */;
+static val* varonce133;
+val* var134 /* : String */;
+char* var135 /* : NativeString */;
+long var136 /* : Int */;
+val* var137 /* : String */;
+short int var138 /* : Bool */;
+static val* varonce139;
+val* var140 /* : String */;
+char* var141 /* : NativeString */;
+long var142 /* : Int */;
+val* var143 /* : String */;
+static val* varonce144;
+val* var145 /* : String */;
+char* var146 /* : NativeString */;
+long var147 /* : Int */;
+val* var148 /* : String */;
+short int var149 /* : Bool */;
+static val* varonce150;
+val* var151 /* : String */;
+char* var152 /* : NativeString */;
+long var153 /* : Int */;
+val* var154 /* : String */;
+static val* varonce155;
+val* var156 /* : String */;
+char* var157 /* : NativeString */;
+long var158 /* : Int */;
+val* var159 /* : String */;
+short int var160 /* : Bool */;
+static val* varonce161;
+val* var162 /* : String */;
+char* var163 /* : NativeString */;
+long var164 /* : Int */;
+val* var165 /* : String */;
+static val* varonce166;
+val* var167 /* : String */;
+char* var168 /* : NativeString */;
+long var169 /* : Int */;
+val* var170 /* : String */;
+short int var171 /* : Bool */;
+static val* varonce172;
+val* var173 /* : String */;
+char* var174 /* : NativeString */;
+long var175 /* : Int */;
+val* var176 /* : String */;
+val* var177 /* : nullable Object */;
+char var178 /* : Char */;
+short int var179 /* : Bool */;
+short int var181 /* : Bool */;
+char var182 /* : Char */;
+val* var183 /* : Array[Object] */;
+long var184 /* : Int */;
+val* var_ /* var : Array[Object] */;
+static val* varonce185;
+val* var186 /* : String */;
+char* var187 /* : NativeString */;
+long var188 /* : Int */;
+val* var189 /* : String */;
+long var190 /* : Int */;
+long var191 /* : Int */;
+long var192 /* : Int */;
+long var193 /* : Int */;
+long var195 /* : Int */;
+val* var196 /* : String */;
+static val* varonce197;
+val* var198 /* : String */;
+char* var199 /* : NativeString */;
+long var200 /* : Int */;
+val* var201 /* : String */;
+val* var202 /* : String */;
+var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__name]))(self) /* name on <self:MMethod>*/;
+var_nit_name = var1;
+if (varonce) {
+var2 = varonce;
+} else {
+var3 = "+";
+var4 = 1;
+var5 = string__NativeString__to_s_with_length(var3, var4);
+var2 = var5;
+varonce = var2;
+}
+var6 = ((short int (*)(val*, val*))(var_nit_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_nit_name, var2) /* == on <var_nit_name:String>*/;
+if (var6){
+if (varonce7) {
+var8 = varonce7;
+} else {
+var9 = "_plus";
+var10 = 5;
+var11 = string__NativeString__to_s_with_length(var9, var10);
+var8 = var11;
+varonce7 = var8;
+}
+var = var8;
+goto RET_LABEL;
+} else {
+}
+if (varonce12) {
+var13 = varonce12;
+} else {
+var14 = "-";
+var15 = 1;
+var16 = string__NativeString__to_s_with_length(var14, var15);
+var13 = var16;
+varonce12 = var13;
+}
+var17 = ((short int (*)(val*, val*))(var_nit_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_nit_name, var13) /* == on <var_nit_name:String>*/;
+if (var17){
+if (varonce18) {
+var19 = varonce18;
+} else {
+var20 = "_minus";
+var21 = 6;
+var22 = string__NativeString__to_s_with_length(var20, var21);
+var19 = var22;
+varonce18 = var19;
+}
+var = var19;
+goto RET_LABEL;
+} else {
+}
+if (varonce23) {
+var24 = varonce23;
+} else {
+var25 = "*";
+var26 = 1;
+var27 = string__NativeString__to_s_with_length(var25, var26);
+var24 = var27;
+varonce23 = var24;
+}
+var28 = ((short int (*)(val*, val*))(var_nit_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_nit_name, var24) /* == on <var_nit_name:String>*/;
+if (var28){
+if (varonce29) {
+var30 = varonce29;
+} else {
+var31 = "_star";
+var32 = 5;
+var33 = string__NativeString__to_s_with_length(var31, var32);
+var30 = var33;
+varonce29 = var30;
+}
+var = var30;
+goto RET_LABEL;
+} else {
+}
+if (varonce34) {
+var35 = varonce34;
+} else {
+var36 = "/";
+var37 = 1;
+var38 = string__NativeString__to_s_with_length(var36, var37);
+var35 = var38;
+varonce34 = var35;
+}
+var39 = ((short int (*)(val*, val*))(var_nit_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_nit_name, var35) /* == on <var_nit_name:String>*/;
+if (var39){
+if (varonce40) {
+var41 = varonce40;
+} else {
+var42 = "_slash";
+var43 = 6;
+var44 = string__NativeString__to_s_with_length(var42, var43);
+var41 = var44;
+varonce40 = var41;
+}
+var = var41;
+goto RET_LABEL;
+} else {
+}
+if (varonce45) {
+var46 = varonce45;
+} else {
+var47 = "%";
+var48 = 1;
+var49 = string__NativeString__to_s_with_length(var47, var48);
+var46 = var49;
+varonce45 = var46;
+}
+var50 = ((short int (*)(val*, val*))(var_nit_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_nit_name, var46) /* == on <var_nit_name:String>*/;
+if (var50){
+if (varonce51) {
+var52 = varonce51;
+} else {
+var53 = "_percent";
+var54 = 8;
+var55 = string__NativeString__to_s_with_length(var53, var54);
+var52 = var55;
+varonce51 = var52;
+}
+var = var52;
+goto RET_LABEL;
+} else {
+}
+if (varonce56) {
+var57 = varonce56;
+} else {
+var58 = "[]";
+var59 = 2;
+var60 = string__NativeString__to_s_with_length(var58, var59);
+var57 = var60;
+varonce56 = var57;
+}
+var61 = ((short int (*)(val*, val*))(var_nit_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_nit_name, var57) /* == on <var_nit_name:String>*/;
+if (var61){
+if (varonce62) {
+var63 = varonce62;
+} else {
+var64 = "_index";
+var65 = 6;
+var66 = string__NativeString__to_s_with_length(var64, var65);
+var63 = var66;
+varonce62 = var63;
+}
+var = var63;
+goto RET_LABEL;
+} else {
+}
+if (varonce67) {
+var68 = varonce67;
+} else {
+var69 = "[]=";
+var70 = 3;
+var71 = string__NativeString__to_s_with_length(var69, var70);
+var68 = var71;
+varonce67 = var68;
+}
+var72 = ((short int (*)(val*, val*))(var_nit_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_nit_name, var68) /* == on <var_nit_name:String>*/;
+if (var72){
+if (varonce73) {
+var74 = varonce73;
+} else {
+var75 = "_index_assign";
+var76 = 13;
+var77 = string__NativeString__to_s_with_length(var75, var76);
+var74 = var77;
+varonce73 = var74;
+}
+var = var74;
+goto RET_LABEL;
+} else {
+}
+if (varonce78) {
+var79 = varonce78;
+} else {
+var80 = "==";
+var81 = 2;
+var82 = string__NativeString__to_s_with_length(var80, var81);
+var79 = var82;
+varonce78 = var79;
+}
+var83 = ((short int (*)(val*, val*))(var_nit_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_nit_name, var79) /* == on <var_nit_name:String>*/;
+if (var83){
+if (varonce84) {
+var85 = varonce84;
+} else {
+var86 = "_equal";
+var87 = 6;
+var88 = string__NativeString__to_s_with_length(var86, var87);
+var85 = var88;
+varonce84 = var85;
+}
+var = var85;
+goto RET_LABEL;
+} else {
+}
+if (varonce89) {
+var90 = varonce89;
+} else {
+var91 = "<";
+var92 = 1;
+var93 = string__NativeString__to_s_with_length(var91, var92);
+var90 = var93;
+varonce89 = var90;
+}
+var94 = ((short int (*)(val*, val*))(var_nit_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_nit_name, var90) /* == on <var_nit_name:String>*/;
+if (var94){
+if (varonce95) {
+var96 = varonce95;
+} else {
+var97 = "_less";
+var98 = 5;
+var99 = string__NativeString__to_s_with_length(var97, var98);
+var96 = var99;
+varonce95 = var96;
+}
+var = var96;
+goto RET_LABEL;
+} else {
+}
+if (varonce100) {
+var101 = varonce100;
+} else {
+var102 = ">";
+var103 = 1;
+var104 = string__NativeString__to_s_with_length(var102, var103);
+var101 = var104;
+varonce100 = var101;
+}
+var105 = ((short int (*)(val*, val*))(var_nit_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_nit_name, var101) /* == on <var_nit_name:String>*/;
+if (var105){
+if (varonce106) {
+var107 = varonce106;
+} else {
+var108 = "_geater";
+var109 = 7;
+var110 = string__NativeString__to_s_with_length(var108, var109);
+var107 = var110;
+varonce106 = var107;
+}
+var = var107;
+goto RET_LABEL;
+} else {
+}
+if (varonce111) {
+var112 = varonce111;
+} else {
+var113 = "<=";
+var114 = 2;
+var115 = string__NativeString__to_s_with_length(var113, var114);
+var112 = var115;
+varonce111 = var112;
+}
+var116 = ((short int (*)(val*, val*))(var_nit_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_nit_name, var112) /* == on <var_nit_name:String>*/;
+if (var116){
+if (varonce117) {
+var118 = varonce117;
+} else {
+var119 = "_less_or_equal";
+var120 = 14;
+var121 = string__NativeString__to_s_with_length(var119, var120);
+var118 = var121;
+varonce117 = var118;
+}
+var = var118;
+goto RET_LABEL;
+} else {
+}
+if (varonce122) {
+var123 = varonce122;
+} else {
+var124 = ">=";
+var125 = 2;
+var126 = string__NativeString__to_s_with_length(var124, var125);
+var123 = var126;
+varonce122 = var123;
+}
+var127 = ((short int (*)(val*, val*))(var_nit_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_nit_name, var123) /* == on <var_nit_name:String>*/;
+if (var127){
+if (varonce128) {
+var129 = varonce128;
+} else {
+var130 = "_greater_or_equal";
+var131 = 17;
+var132 = string__NativeString__to_s_with_length(var130, var131);
+var129 = var132;
+varonce128 = var129;
+}
+var = var129;
+goto RET_LABEL;
+} else {
+}
+if (varonce133) {
+var134 = varonce133;
+} else {
+var135 = "!=";
+var136 = 2;
+var137 = string__NativeString__to_s_with_length(var135, var136);
+var134 = var137;
+varonce133 = var134;
+}
+var138 = ((short int (*)(val*, val*))(var_nit_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_nit_name, var134) /* == on <var_nit_name:String>*/;
+if (var138){
+if (varonce139) {
+var140 = varonce139;
+} else {
+var141 = "_not_equal";
+var142 = 10;
+var143 = string__NativeString__to_s_with_length(var141, var142);
+var140 = var143;
+varonce139 = var140;
+}
+var = var140;
+goto RET_LABEL;
+} else {
+}
+if (varonce144) {
+var145 = varonce144;
+} else {
+var146 = "<<";
+var147 = 2;
+var148 = string__NativeString__to_s_with_length(var146, var147);
+var145 = var148;
+varonce144 = var145;
+}
+var149 = ((short int (*)(val*, val*))(var_nit_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_nit_name, var145) /* == on <var_nit_name:String>*/;
+if (var149){
+if (varonce150) {
+var151 = varonce150;
+} else {
+var152 = "_left";
+var153 = 5;
+var154 = string__NativeString__to_s_with_length(var152, var153);
+var151 = var154;
+varonce150 = var151;
+}
+var = var151;
+goto RET_LABEL;
+} else {
+}
+if (varonce155) {
+var156 = varonce155;
+} else {
+var157 = ">>";
+var158 = 2;
+var159 = string__NativeString__to_s_with_length(var157, var158);
+var156 = var159;
+varonce155 = var156;
+}
+var160 = ((short int (*)(val*, val*))(var_nit_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_nit_name, var156) /* == on <var_nit_name:String>*/;
+if (var160){
+if (varonce161) {
+var162 = varonce161;
+} else {
+var163 = "_right";
+var164 = 6;
+var165 = string__NativeString__to_s_with_length(var163, var164);
+var162 = var165;
+varonce161 = var162;
+}
+var = var162;
+goto RET_LABEL;
+} else {
+}
+if (varonce166) {
+var167 = varonce166;
+} else {
+var168 = "<=>";
+var169 = 3;
+var170 = string__NativeString__to_s_with_length(var168, var169);
+var167 = var170;
+varonce166 = var167;
+}
+var171 = ((short int (*)(val*, val*))(var_nit_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_nit_name, var167) /* == on <var_nit_name:String>*/;
+if (var171){
+if (varonce172) {
+var173 = varonce172;
+} else {
+var174 = "_starship";
+var175 = 9;
+var176 = string__NativeString__to_s_with_length(var174, var175);
+var173 = var176;
+varonce172 = var173;
+}
+var = var173;
+goto RET_LABEL;
+} else {
+}
+var177 = ((val* (*)(val*))(var_nit_name->class->vft[COLOR_abstract_collection__SequenceRead__last]))(var_nit_name) /* last on <var_nit_name:String>*/;
+var178 = '=';
+{ /* Inline kernel#Char#== (var177,var178) */
+var181 = (var177 != NULL) && (var177->class == &class_kernel__Char);
+if (var181) {
+var182 = ((struct instance_kernel__Char*)var177)->value; /* autounbox from nullable Object to Char */;
+var181 = (var182 == var178);
+}
+var179 = var181;
+goto RET_LABEL180;
+RET_LABEL180:(void)0;
+}
+if (var179){
+var183 = NEW_array__Array(&type_array__Arraykernel__Object);
+var184 = 3;
+((void (*)(val*, long))(var183->class->vft[COLOR_array__Array__with_capacity]))(var183, var184) /* with_capacity on <var183:Array[Object]>*/;
+var_ = var183;
+if (varonce185) {
+var186 = varonce185;
+} else {
+var187 = "";
+var188 = 0;
+var189 = string__NativeString__to_s_with_length(var187, var188);
+var186 = var189;
+varonce185 = var186;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var186) /* add on <var_:Array[Object]>*/;
+var190 = 0;
+var191 = ((long (*)(val*))(var_nit_name->class->vft[COLOR_abstract_collection__Collection__length]))(var_nit_name) /* length on <var_nit_name:String>*/;
+var192 = 1;
+{ /* Inline kernel#Int#- (var191,var192) */
+var195 = var191 - var192;
+var193 = var195;
+goto RET_LABEL194;
+RET_LABEL194:(void)0;
+}
+var196 = ((val* (*)(val*, long, long))(var_nit_name->class->vft[COLOR_string__AbstractString__substring]))(var_nit_name, var190, var193) /* substring on <var_nit_name:String>*/;
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var196) /* add on <var_:Array[Object]>*/;
+if (varonce197) {
+var198 = varonce197;
+} else {
+var199 = "__assign";
+var200 = 8;
+var201 = string__NativeString__to_s_with_length(var199, var200);
+var198 = var201;
+varonce197 = var198;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var198) /* add on <var_:Array[Object]>*/;
+var202 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
+var = var202;
+goto RET_LABEL;
+} else {
+}
+var = var_nit_name;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MMethod#short_cname for (self: Object): String */
+val* VIRTUAL_nitni_base__MMethod__short_cname(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = nitni_base__MMethod__short_cname(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#AModule#cname for (self: AModule): String */
+val* nitni_base__AModule__cname(val* self) {
+val* var /* : String */;
+val* var1 /* : nullable MModule */;
+val* var2 /* : String */;
+var1 = ((val* (*)(val*))(self->class->vft[COLOR_modelbuilder__AModule__mmodule]))(self) /* mmodule on <self:AModule>*/;
+if (var1 == NULL) {
+fprintf(stderr, "Runtime error: %s", "Receiver is null");
+fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_base.nit", 55);
+show_backtrace(1);
+} else {
+var2 = ((val* (*)(val*))(var1->class->vft[COLOR_mmodule__MModule__name]))(var1) /* name on <var1:nullable MModule>*/;
+}
+var = var2;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#AModule#cname for (self: Object): String */
+val* VIRTUAL_nitni_base__AModule__cname(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = nitni_base__AModule__cname(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MMethodDef#cname for (self: MMethodDef): String */
+val* nitni_base__MMethodDef__cname(val* self) {
+val* var /* : String */;
+val* var1 /* : Array[Object] */;
+long var2 /* : Int */;
+val* var_ /* var : Array[Object] */;
+static val* varonce;
+val* var3 /* : String */;
+char* var4 /* : NativeString */;
+long var5 /* : Int */;
+val* var6 /* : String */;
+val* var7 /* : MClassDef */;
+val* var8 /* : MClass */;
+val* var9 /* : String */;
+static val* varonce10;
+val* var11 /* : String */;
+char* var12 /* : NativeString */;
+long var13 /* : Int */;
+val* var14 /* : String */;
+val* var15 /* : MProperty */;
+val* var16 /* : String */;
+static val* varonce17;
+val* var18 /* : String */;
+char* var19 /* : NativeString */;
+long var20 /* : Int */;
+val* var21 /* : String */;
+val* var22 /* : String */;
+var1 = NEW_array__Array(&type_array__Arraykernel__Object);
+var2 = 5;
+((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on <var1:Array[Object]>*/;
+var_ = var1;
+if (varonce) {
+var3 = varonce;
+} else {
+var4 = "";
+var5 = 0;
+var6 = string__NativeString__to_s_with_length(var4, var5);
+var3 = var6;
+varonce = var3;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var3) /* add on <var_:Array[Object]>*/;
+var7 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDef__mclassdef]))(self) /* mclassdef on <self:MMethodDef>*/;
+var8 = ((val* (*)(val*))(var7->class->vft[COLOR_model__MClassDef__mclass]))(var7) /* mclass on <var7:MClassDef>*/;
+var9 = ((val* (*)(val*))(var8->class->vft[COLOR_model__MClass__name]))(var8) /* name on <var8:MClass>*/;
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var9) /* add on <var_:Array[Object]>*/;
+if (varonce10) {
+var11 = varonce10;
+} else {
+var12 = "_";
+var13 = 1;
+var14 = string__NativeString__to_s_with_length(var12, var13);
+var11 = var14;
+varonce10 = var11;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var11) /* add on <var_:Array[Object]>*/;
+var15 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDef__mproperty]))(self) /* mproperty on <self:MMethodDef>*/;
+var16 = ((val* (*)(val*))(var15->class->vft[COLOR_nitni_base__MMethod__short_cname]))(var15) /* short_cname on <var15:MProperty(MMethod)>*/;
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var16) /* add on <var_:Array[Object]>*/;
+if (varonce17) {
+var18 = varonce17;
+} else {
+var19 = "";
+var20 = 0;
+var21 = string__NativeString__to_s_with_length(var19, var20);
+var18 = var21;
+varonce17 = var18;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var18) /* add on <var_:Array[Object]>*/;
+var22 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
+var = var22;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MMethodDef#cname for (self: Object): String */
+val* VIRTUAL_nitni_base__MMethodDef__cname(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = nitni_base__MMethodDef__cname(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MType#cname for (self: MType): String */
+val* nitni_base__MType__cname(val* self) {
+val* var /* : String */;
+const char* var_class_name;
+var_class_name = self == NULL ? "null" : self->type->name;
+fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "cname", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_base.nit", 65);
+show_backtrace(1);
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MType#cname for (self: Object): String */
+val* VIRTUAL_nitni_base__MType__cname(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = nitni_base__MType__cname(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MType#cname_blind for (self: MType): String */
+val* nitni_base__MType__cname_blind(val* self) {
+val* var /* : String */;
+const char* var_class_name;
+var_class_name = self == NULL ? "null" : self->type->name;
+fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "cname_blind", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_base.nit", 70);
+show_backtrace(1);
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MType#cname_blind for (self: Object): String */
+val* VIRTUAL_nitni_base__MType__cname_blind(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = nitni_base__MType__cname_blind(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MType#mangled_cname for (self: MType): String */
+val* nitni_base__MType__mangled_cname(val* self) {
+val* var /* : String */;
+const char* var_class_name;
+var_class_name = self == NULL ? "null" : self->type->name;
+fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "mangled_cname", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_base.nit", 74);
+show_backtrace(1);
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MType#mangled_cname for (self: Object): String */
+val* VIRTUAL_nitni_base__MType__mangled_cname(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = nitni_base__MType__mangled_cname(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MType#is_cprimitive for (self: MType): Bool */
+short int nitni_base__MType__is_cprimitive(val* self) {
+short int var /* : Bool */;
+const char* var_class_name;
+var_class_name = self == NULL ? "null" : self->type->name;
+fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "is_cprimitive", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_base.nit", 79);
+show_backtrace(1);
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MType#is_cprimitive for (self: Object): Bool */
+short int VIRTUAL_nitni_base__MType__is_cprimitive(val* self) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+var1 = nitni_base__MType__is_cprimitive(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MClassType#cname for (self: MClassType): String */
+val* nitni_base__MClassType__cname(val* self) {
+val* var /* : String */;
+val* var1 /* : MClass */;
+val* var2 /* : String */;
+val* var_name /* var name: String */;
+static val* varonce;
+val* var3 /* : String */;
+char* var4 /* : NativeString */;
+long var5 /* : Int */;
+val* var6 /* : String */;
+short int var7 /* : Bool */;
+static val* varonce8;
+val* var9 /* : String */;
+char* var10 /* : NativeString */;
+long var11 /* : Int */;
+val* var12 /* : String */;
+static val* varonce13;
+val* var14 /* : String */;
+char* var15 /* : NativeString */;
+long var16 /* : Int */;
+val* var17 /* : String */;
+short int var18 /* : Bool */;
+static val* varonce19;
+val* var20 /* : String */;
+char* var21 /* : NativeString */;
+long var22 /* : Int */;
+val* var23 /* : String */;
+static val* varonce24;
+val* var25 /* : String */;
+char* var26 /* : NativeString */;
+long var27 /* : Int */;
+val* var28 /* : String */;
+short int var29 /* : Bool */;
+static val* varonce30;
+val* var31 /* : String */;
+char* var32 /* : NativeString */;
+long var33 /* : Int */;
+val* var34 /* : String */;
+static val* varonce35;
+val* var36 /* : String */;
+char* var37 /* : NativeString */;
+long var38 /* : Int */;
+val* var39 /* : String */;
+short int var40 /* : Bool */;
+static val* varonce41;
+val* var42 /* : String */;
+char* var43 /* : NativeString */;
+long var44 /* : Int */;
+val* var45 /* : String */;
+static val* varonce46;
+val* var47 /* : String */;
+char* var48 /* : NativeString */;
+long var49 /* : Int */;
+val* var50 /* : String */;
+short int var51 /* : Bool */;
+static val* varonce52;
+val* var53 /* : String */;
+char* var54 /* : NativeString */;
+long var55 /* : Int */;
+val* var56 /* : String */;
+val* var57 /* : MClass */;
+val* var58 /* : MClassKind */;
+val* var59 /* : MClassKind */;
+short int var60 /* : Bool */;
+val* var61 /* : MClass */;
+val* var62 /* : nullable String */;
+val* var_ctype /* var ctype: nullable String */;
+val* var63 /* : null */;
+short int var64 /* : Bool */;
+val* var65 /* : String */;
+var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
+var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MClass__name]))(var1) /* name on <var1:MClass>*/;
+var_name = var2;
+if (varonce) {
+var3 = varonce;
+} else {
+var4 = "Bool";
+var5 = 4;
+var6 = string__NativeString__to_s_with_length(var4, var5);
+var3 = var6;
+varonce = var3;
+}
+var7 = ((short int (*)(val*, val*))(var_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_name, var3) /* == on <var_name:String>*/;
+if (var7){
+if (varonce8) {
+var9 = varonce8;
+} else {
+var10 = "int";
+var11 = 3;
+var12 = string__NativeString__to_s_with_length(var10, var11);
+var9 = var12;
+varonce8 = var9;
+}
+var = var9;
+goto RET_LABEL;
+} else {
+}
+if (varonce13) {
+var14 = varonce13;
+} else {
+var15 = "Char";
+var16 = 4;
+var17 = string__NativeString__to_s_with_length(var15, var16);
+var14 = var17;
+varonce13 = var14;
+}
+var18 = ((short int (*)(val*, val*))(var_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_name, var14) /* == on <var_name:String>*/;
+if (var18){
+if (varonce19) {
+var20 = varonce19;
+} else {
+var21 = "char";
+var22 = 4;
+var23 = string__NativeString__to_s_with_length(var21, var22);
+var20 = var23;
+varonce19 = var20;
+}
+var = var20;
+goto RET_LABEL;
+} else {
+}
+if (varonce24) {
+var25 = varonce24;
+} else {
+var26 = "Float";
+var27 = 5;
+var28 = string__NativeString__to_s_with_length(var26, var27);
+var25 = var28;
+varonce24 = var25;
+}
+var29 = ((short int (*)(val*, val*))(var_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_name, var25) /* == on <var_name:String>*/;
+if (var29){
+if (varonce30) {
+var31 = varonce30;
+} else {
+var32 = "double";
+var33 = 6;
+var34 = string__NativeString__to_s_with_length(var32, var33);
+var31 = var34;
+varonce30 = var31;
+}
+var = var31;
+goto RET_LABEL;
+} else {
+}
+if (varonce35) {
+var36 = varonce35;
+} else {
+var37 = "Int";
+var38 = 3;
+var39 = string__NativeString__to_s_with_length(var37, var38);
+var36 = var39;
+varonce35 = var36;
+}
+var40 = ((short int (*)(val*, val*))(var_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_name, var36) /* == on <var_name:String>*/;
+if (var40){
+if (varonce41) {
+var42 = varonce41;
+} else {
+var43 = "int";
+var44 = 3;
+var45 = string__NativeString__to_s_with_length(var43, var44);
+var42 = var45;
+varonce41 = var42;
+}
+var = var42;
+goto RET_LABEL;
+} else {
+}
+if (varonce46) {
+var47 = varonce46;
+} else {
+var48 = "NativeString";
+var49 = 12;
+var50 = string__NativeString__to_s_with_length(var48, var49);
+var47 = var50;
+varonce46 = var47;
+}
+var51 = ((short int (*)(val*, val*))(var_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_name, var47) /* == on <var_name:String>*/;
+if (var51){
+if (varonce52) {
+var53 = varonce52;
+} else {
+var54 = "char*";
+var55 = 5;
+var56 = string__NativeString__to_s_with_length(var54, var55);
+var53 = var56;
+varonce52 = var53;
+}
+var = var53;
+goto RET_LABEL;
+} else {
+}
+var57 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
+var58 = ((val* (*)(val*))(var57->class->vft[COLOR_model__MClass__kind]))(var57) /* kind on <var57:MClass>*/;
+var59 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__extern_kind]))(self) /* extern_kind on <self:MClassType>*/;
+var60 = ((short int (*)(val*, val*))(var58->class->vft[COLOR_kernel__Object___61d_61d]))(var58, var59) /* == on <var58:MClassKind>*/;
+if (var60){
+var61 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
+var62 = ((val* (*)(val*))(var61->class->vft[COLOR_nitni_base__MClass__ctype]))(var61) /* ctype on <var61:MClass>*/;
+var_ctype = var62;
+var63 = NULL;
+if (var_ctype == NULL) {
+var64 = 0; /* is null */
+} else {
+var64 = 1; /* arg is null and recv is not */
+}
+if (!var64) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_base.nit", 96);
+show_backtrace(1);
+}
+var = var_ctype;
+goto RET_LABEL;
+} else {
+}
+var65 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_base__MType__mangled_cname]))(self) /* mangled_cname on <self:MClassType>*/;
+var = var65;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MClassType#cname for (self: Object): String */
+val* VIRTUAL_nitni_base__MClassType__cname(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = nitni_base__MClassType__cname(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MClassType#cname_blind for (self: MClassType): String */
+val* nitni_base__MClassType__cname_blind(val* self) {
+val* var /* : String */;
+val* var1 /* : MClass */;
+val* var2 /* : String */;
+val* var_name /* var name: String */;
+static val* varonce;
+val* var3 /* : String */;
+char* var4 /* : NativeString */;
+long var5 /* : Int */;
+val* var6 /* : String */;
+short int var7 /* : Bool */;
+static val* varonce8;
+val* var9 /* : String */;
+char* var10 /* : NativeString */;
+long var11 /* : Int */;
+val* var12 /* : String */;
+static val* varonce13;
+val* var14 /* : String */;
+char* var15 /* : NativeString */;
+long var16 /* : Int */;
+val* var17 /* : String */;
+short int var18 /* : Bool */;
+static val* varonce19;
+val* var20 /* : String */;
+char* var21 /* : NativeString */;
+long var22 /* : Int */;
+val* var23 /* : String */;
+static val* varonce24;
+val* var25 /* : String */;
+char* var26 /* : NativeString */;
+long var27 /* : Int */;
+val* var28 /* : String */;
+short int var29 /* : Bool */;
+static val* varonce30;
+val* var31 /* : String */;
+char* var32 /* : NativeString */;
+long var33 /* : Int */;
+val* var34 /* : String */;
+static val* varonce35;
+val* var36 /* : String */;
+char* var37 /* : NativeString */;
+long var38 /* : Int */;
+val* var39 /* : String */;
+short int var40 /* : Bool */;
+static val* varonce41;
+val* var42 /* : String */;
+char* var43 /* : NativeString */;
+long var44 /* : Int */;
+val* var45 /* : String */;
+static val* varonce46;
+val* var47 /* : String */;
+char* var48 /* : NativeString */;
+long var49 /* : Int */;
+val* var50 /* : String */;
+short int var51 /* : Bool */;
+static val* varonce52;
+val* var53 /* : String */;
+char* var54 /* : NativeString */;
+long var55 /* : Int */;
+val* var56 /* : String */;
+val* var57 /* : MClass */;
+val* var58 /* : MClassKind */;
+val* var59 /* : MClassKind */;
+short int var60 /* : Bool */;
+static val* varonce61;
+val* var62 /* : String */;
+char* var63 /* : NativeString */;
+long var64 /* : Int */;
+val* var65 /* : String */;
+static val* varonce66;
+val* var67 /* : String */;
+char* var68 /* : NativeString */;
+long var69 /* : Int */;
+val* var70 /* : String */;
+var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
+var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MClass__name]))(var1) /* name on <var1:MClass>*/;
+var_name = var2;
+if (varonce) {
+var3 = varonce;
+} else {
+var4 = "Bool";
+var5 = 4;
+var6 = string__NativeString__to_s_with_length(var4, var5);
+var3 = var6;
+varonce = var3;
+}
+var7 = ((short int (*)(val*, val*))(var_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_name, var3) /* == on <var_name:String>*/;
+if (var7){
+if (varonce8) {
+var9 = varonce8;
+} else {
+var10 = "int";
+var11 = 3;
+var12 = string__NativeString__to_s_with_length(var10, var11);
+var9 = var12;
+varonce8 = var9;
+}
+var = var9;
+goto RET_LABEL;
+} else {
+}
+if (varonce13) {
+var14 = varonce13;
+} else {
+var15 = "Char";
+var16 = 4;
+var17 = string__NativeString__to_s_with_length(var15, var16);
+var14 = var17;
+varonce13 = var14;
+}
+var18 = ((short int (*)(val*, val*))(var_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_name, var14) /* == on <var_name:String>*/;
+if (var18){
+if (varonce19) {
+var20 = varonce19;
+} else {
+var21 = "char";
+var22 = 4;
+var23 = string__NativeString__to_s_with_length(var21, var22);
+var20 = var23;
+varonce19 = var20;
+}
+var = var20;
+goto RET_LABEL;
+} else {
+}
+if (varonce24) {
+var25 = varonce24;
+} else {
+var26 = "Float";
+var27 = 5;
+var28 = string__NativeString__to_s_with_length(var26, var27);
+var25 = var28;
+varonce24 = var25;
+}
+var29 = ((short int (*)(val*, val*))(var_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_name, var25) /* == on <var_name:String>*/;
+if (var29){
+if (varonce30) {
+var31 = varonce30;
+} else {
+var32 = "double";
+var33 = 6;
+var34 = string__NativeString__to_s_with_length(var32, var33);
+var31 = var34;
+varonce30 = var31;
+}
+var = var31;
+goto RET_LABEL;
+} else {
+}
+if (varonce35) {
+var36 = varonce35;
+} else {
+var37 = "Int";
+var38 = 3;
+var39 = string__NativeString__to_s_with_length(var37, var38);
+var36 = var39;
+varonce35 = var36;
+}
+var40 = ((short int (*)(val*, val*))(var_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_name, var36) /* == on <var_name:String>*/;
+if (var40){
+if (varonce41) {
+var42 = varonce41;
+} else {
+var43 = "int";
+var44 = 3;
+var45 = string__NativeString__to_s_with_length(var43, var44);
+var42 = var45;
+varonce41 = var42;
+}
+var = var42;
+goto RET_LABEL;
+} else {
+}
+if (varonce46) {
+var47 = varonce46;
+} else {
+var48 = "NativeString";
+var49 = 12;
+var50 = string__NativeString__to_s_with_length(var48, var49);
+var47 = var50;
+varonce46 = var47;
+}
+var51 = ((short int (*)(val*, val*))(var_name->class->vft[COLOR_kernel__Object___61d_61d]))(var_name, var47) /* == on <var_name:String>*/;
+if (var51){
+if (varonce52) {
+var53 = varonce52;
+} else {
+var54 = "char*";
+var55 = 5;
+var56 = string__NativeString__to_s_with_length(var54, var55);
+var53 = var56;
+varonce52 = var53;
+}
+var = var53;
+goto RET_LABEL;
+} else {
+}
+var57 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
+var58 = ((val* (*)(val*))(var57->class->vft[COLOR_model__MClass__kind]))(var57) /* kind on <var57:MClass>*/;
+var59 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__extern_kind]))(self) /* extern_kind on <self:MClassType>*/;
+var60 = ((short int (*)(val*, val*))(var58->class->vft[COLOR_kernel__Object___61d_61d]))(var58, var59) /* == on <var58:MClassKind>*/;
+if (var60){
+if (varonce61) {
+var62 = varonce61;
+} else {
+var63 = "void*";
+var64 = 5;
+var65 = string__NativeString__to_s_with_length(var63, var64);
+var62 = var65;
+varonce61 = var62;
+}
+var = var62;
+goto RET_LABEL;
+} else {
+}
+if (varonce66) {
+var67 = varonce66;
+} else {
+var68 = "struct nitni_instance *";
+var69 = 23;
+var70 = string__NativeString__to_s_with_length(var68, var69);
+var67 = var70;
+varonce66 = var67;
+}
+var = var67;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MClassType#cname_blind for (self: Object): String */
+val* VIRTUAL_nitni_base__MClassType__cname_blind(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = nitni_base__MClassType__cname_blind(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MClassType#mangled_cname for (self: MClassType): String */
+val* nitni_base__MClassType__mangled_cname(val* self) {
+val* var /* : String */;
+val* var1 /* : MClass */;
+val* var2 /* : String */;
+var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
+var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MClass__name]))(var1) /* name on <var1:MClass>*/;
+var = var2;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MClassType#mangled_cname for (self: Object): String */
+val* VIRTUAL_nitni_base__MClassType__mangled_cname(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = nitni_base__MClassType__mangled_cname(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MClassType#is_cprimitive for (self: MClassType): Bool */
+short int nitni_base__MClassType__is_cprimitive(val* self) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+val* var2 /* : MClass */;
+val* var3 /* : MClassKind */;
+val* var4 /* : MClassKind */;
+short int var5 /* : Bool */;
+short int var_ /* var : Bool */;
+static val* varonce;
+static int varonce_guard;
+val* var6 /* : Array[String] */;
+val* var7 /* : Array[String] */;
+long var8 /* : Int */;
+val* var_9 /* var : Array[String] */;
+static val* varonce10;
+val* var11 /* : String */;
+char* var12 /* : NativeString */;
+long var13 /* : Int */;
+val* var14 /* : String */;
+static val* varonce15;
+val* var16 /* : String */;
+char* var17 /* : NativeString */;
+long var18 /* : Int */;
+val* var19 /* : String */;
+static val* varonce20;
+val* var21 /* : String */;
+char* var22 /* : NativeString */;
+long var23 /* : Int */;
+val* var24 /* : String */;
+static val* varonce25;
+val* var26 /* : String */;
+char* var27 /* : NativeString */;
+long var28 /* : Int */;
+val* var29 /* : String */;
+static val* varonce30;
+val* var31 /* : String */;
+char* var32 /* : NativeString */;
+long var33 /* : Int */;
+val* var34 /* : String */;
+val* var35 /* : MClass */;
+val* var36 /* : String */;
+short int var37 /* : Bool */;
+var2 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
+var3 = ((val* (*)(val*))(var2->class->vft[COLOR_model__MClass__kind]))(var2) /* kind on <var2:MClass>*/;
+var4 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__extern_kind]))(self) /* extern_kind on <self:MClassType>*/;
+var5 = ((short int (*)(val*, val*))(var3->class->vft[COLOR_kernel__Object___61d_61d]))(var3, var4) /* == on <var3:MClassKind>*/;
+var_ = var5;
+if (var5){
+var1 = var_;
+} else {
+if (varonce_guard) {
+var6 = varonce;
+} else {
+var7 = NEW_array__Array(&type_array__Arraystring__String);
+var8 = 5;
+((void (*)(val*, long))(var7->class->vft[COLOR_array__Array__with_capacity]))(var7, var8) /* with_capacity on <var7:Array[String]>*/;
+var_9 = var7;
+if (varonce10) {
+var11 = varonce10;
+} else {
+var12 = "Bool";
+var13 = 4;
+var14 = string__NativeString__to_s_with_length(var12, var13);
+var11 = var14;
+varonce10 = var11;
+}
+((void (*)(val*, val*))(var_9->class->vft[COLOR_abstract_collection__Sequence__push]))(var_9, var11) /* push on <var_9:Array[String]>*/;
+if (varonce15) {
+var16 = varonce15;
+} else {
+var17 = "Char";
+var18 = 4;
+var19 = string__NativeString__to_s_with_length(var17, var18);
+var16 = var19;
+varonce15 = var16;
+}
+((void (*)(val*, val*))(var_9->class->vft[COLOR_abstract_collection__Sequence__push]))(var_9, var16) /* push on <var_9:Array[String]>*/;
+if (varonce20) {
+var21 = varonce20;
+} else {
+var22 = "Float";
+var23 = 5;
+var24 = string__NativeString__to_s_with_length(var22, var23);
+var21 = var24;
+varonce20 = var21;
+}
+((void (*)(val*, val*))(var_9->class->vft[COLOR_abstract_collection__Sequence__push]))(var_9, var21) /* push on <var_9:Array[String]>*/;
+if (varonce25) {
+var26 = varonce25;
+} else {
+var27 = "Int";
+var28 = 3;
+var29 = string__NativeString__to_s_with_length(var27, var28);
+var26 = var29;
+varonce25 = var26;
+}
+((void (*)(val*, val*))(var_9->class->vft[COLOR_abstract_collection__Sequence__push]))(var_9, var26) /* push on <var_9:Array[String]>*/;
+if (varonce30) {
+var31 = varonce30;
+} else {
+var32 = "NativeString";
+var33 = 12;
+var34 = string__NativeString__to_s_with_length(var32, var33);
+var31 = var34;
+varonce30 = var31;
+}
+((void (*)(val*, val*))(var_9->class->vft[COLOR_abstract_collection__Sequence__push]))(var_9, var31) /* push on <var_9:Array[String]>*/;
+var6 = var_9;
+varonce = var6;
+varonce_guard = 1;
+}
+var35 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
+var36 = ((val* (*)(val*))(var35->class->vft[COLOR_model__MClass__name]))(var35) /* name on <var35:MClass>*/;
+var37 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__Collection__has]))(var6, var36) /* has on <var6:Array[String]>*/;
+var1 = var37;
+}
+var = var1;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MClassType#is_cprimitive for (self: Object): Bool */
+short int VIRTUAL_nitni_base__MClassType__is_cprimitive(val* self) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+var1 = nitni_base__MClassType__is_cprimitive(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MNullableType#cname for (self: MNullableType): String */
+val* nitni_base__MNullableType__cname(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_base__MType__mangled_cname]))(self) /* mangled_cname on <self:MNullableType>*/;
+var = var1;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MNullableType#cname for (self: Object): String */
+val* VIRTUAL_nitni_base__MNullableType__cname(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = nitni_base__MNullableType__cname(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MNullableType#cname_blind for (self: MNullableType): String */
+val* nitni_base__MNullableType__cname_blind(val* self) {
+val* var /* : String */;
+static val* varonce;
+val* var1 /* : String */;
+char* var2 /* : NativeString */;
+long var3 /* : Int */;
+val* var4 /* : String */;
+if (varonce) {
+var1 = varonce;
+} else {
+var2 = "struct nitni_instance *";
+var3 = 23;
+var4 = string__NativeString__to_s_with_length(var2, var3);
+var1 = var4;
+varonce = var1;
+}
+var = var1;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MNullableType#cname_blind for (self: Object): String */
+val* VIRTUAL_nitni_base__MNullableType__cname_blind(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = nitni_base__MNullableType__cname_blind(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MNullableType#mangled_cname for (self: MNullableType): String */
+val* nitni_base__MNullableType__mangled_cname(val* self) {
+val* var /* : String */;
+val* var1 /* : Array[Object] */;
+long var2 /* : Int */;
+val* var_ /* var : Array[Object] */;
+static val* varonce;
+val* var3 /* : String */;
+char* var4 /* : NativeString */;
+long var5 /* : Int */;
+val* var6 /* : String */;
+val* var7 /* : MType */;
+val* var8 /* : String */;
+static val* varonce9;
+val* var10 /* : String */;
+char* var11 /* : NativeString */;
+long var12 /* : Int */;
+val* var13 /* : String */;
+val* var14 /* : String */;
+var1 = NEW_array__Array(&type_array__Arraykernel__Object);
+var2 = 3;
+((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on <var1:Array[Object]>*/;
+var_ = var1;
+if (varonce) {
+var3 = varonce;
+} else {
+var4 = "nullable_";
+var5 = 9;
+var6 = string__NativeString__to_s_with_length(var4, var5);
+var3 = var6;
+varonce = var3;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var3) /* add on <var_:Array[Object]>*/;
+var7 = ((val* (*)(val*))(self->class->vft[COLOR_model__MNullableType__mtype]))(self) /* mtype on <self:MNullableType>*/;
+var8 = ((val* (*)(val*))(var7->class->vft[COLOR_nitni_base__MType__mangled_cname]))(var7) /* mangled_cname on <var7:MType>*/;
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var8) /* add on <var_:Array[Object]>*/;
+if (varonce9) {
+var10 = varonce9;
+} else {
+var11 = "";
+var12 = 0;
+var13 = string__NativeString__to_s_with_length(var11, var12);
+var10 = var13;
+varonce9 = var10;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var10) /* add on <var_:Array[Object]>*/;
+var14 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
+var = var14;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MNullableType#mangled_cname for (self: Object): String */
+val* VIRTUAL_nitni_base__MNullableType__mangled_cname(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = nitni_base__MNullableType__mangled_cname(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MNullableType#is_cprimitive for (self: MNullableType): Bool */
+short int nitni_base__MNullableType__is_cprimitive(val* self) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+var1 = 0;
+var = var1;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MNullableType#is_cprimitive for (self: Object): Bool */
+short int VIRTUAL_nitni_base__MNullableType__is_cprimitive(val* self) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+var1 = nitni_base__MNullableType__is_cprimitive(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MVirtualType#mangled_cname for (self: MVirtualType): String */
+val* nitni_base__MVirtualType__mangled_cname(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__to_s]))(self) /* to_s on <self:MVirtualType>*/;
+var = var1;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MVirtualType#mangled_cname for (self: Object): String */
+val* VIRTUAL_nitni_base__MVirtualType__mangled_cname(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = nitni_base__MVirtualType__mangled_cname(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MGenericType#cname for (self: MGenericType): String */
+val* nitni_base__MGenericType__cname(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_base__MType__mangled_cname]))(self) /* mangled_cname on <self:MGenericType>*/;
+var = var1;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MGenericType#cname for (self: Object): String */
+val* VIRTUAL_nitni_base__MGenericType__cname(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = nitni_base__MGenericType__cname(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MGenericType#mangled_cname for (self: MGenericType): String */
+val* nitni_base__MGenericType__mangled_cname(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+val* var_base /* var base: String */;
+val* var2 /* : Array[String] */;
+val* var_params /* var params: Array[String] */;
+val* var3 /* : Array[MType] */;
+val* var4 /* : Iterator[nullable Object] */;
+short int var5 /* : Bool */;
+val* var6 /* : nullable Object */;
+val* var_arg /* var arg: MType */;
+val* var7 /* : String */;
+val* var8 /* : Array[Object] */;
+long var9 /* : Int */;
+val* var_ /* var : Array[Object] */;
+static val* varonce;
+val* var10 /* : String */;
+char* var11 /* : NativeString */;
+long var12 /* : Int */;
+val* var13 /* : String */;
+static val* varonce14;
+val* var15 /* : String */;
+char* var16 /* : NativeString */;
+long var17 /* : Int */;
+val* var18 /* : String */;
+static val* varonce19;
+val* var20 /* : String */;
+char* var21 /* : NativeString */;
+long var22 /* : Int */;
+val* var23 /* : String */;
+val* var24 /* : String */;
+static val* varonce25;
+val* var26 /* : String */;
+char* var27 /* : NativeString */;
+long var28 /* : Int */;
+val* var29 /* : String */;
+val* var30 /* : String */;
+var1 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_base__MGenericType__mangled_cname]))(self) /* mangled_cname on <self:MGenericType>*/;
+var_base = var1;
+var2 = NEW_array__Array(&type_array__Arraystring__String);
+((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[String]>*/;
+var_params = var2;
+var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__arguments]))(self) /* arguments on <self:MGenericType>*/;
+var4 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection__iterator]))(var3) /* iterator on <var3:Array[MType]>*/;
+for(;;) {
+var5 = ((short int (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var4) /* is_ok on <var4:Iterator[nullable Object]>*/;
+if(!var5) break;
+var6 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__item]))(var4) /* item on <var4:Iterator[nullable Object]>*/;
+var_arg = var6;
+var7 = ((val* (*)(val*))(var_arg->class->vft[COLOR_nitni_base__MType__mangled_cname]))(var_arg) /* mangled_cname on <var_arg:MType>*/;
+((void (*)(val*, val*))(var_params->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_params, var7) /* add on <var_params:Array[String]>*/;
+CONTINUE_label: (void)0;
+((void (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__next]))(var4) /* next on <var4:Iterator[nullable Object]>*/;
+}
+BREAK_label: (void)0;
+var8 = NEW_array__Array(&type_array__Arraykernel__Object);
+var9 = 5;
+((void (*)(val*, long))(var8->class->vft[COLOR_array__Array__with_capacity]))(var8, var9) /* with_capacity on <var8:Array[Object]>*/;
+var_ = var8;
+if (varonce) {
+var10 = varonce;
+} else {
+var11 = "";
+var12 = 0;
+var13 = string__NativeString__to_s_with_length(var11, var12);
+var10 = var13;
+varonce = var10;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var10) /* add on <var_:Array[Object]>*/;
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_base) /* add on <var_:Array[Object]>*/;
+if (varonce14) {
+var15 = varonce14;
+} else {
+var16 = "_of_";
+var17 = 4;
+var18 = string__NativeString__to_s_with_length(var16, var17);
+var15 = var18;
+varonce14 = var15;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var15) /* add on <var_:Array[Object]>*/;
+if (varonce19) {
+var20 = varonce19;
+} else {
+var21 = "_";
+var22 = 1;
+var23 = string__NativeString__to_s_with_length(var21, var22);
+var20 = var23;
+varonce19 = var20;
+}
+var24 = ((val* (*)(val*, val*))(var_params->class->vft[COLOR_string__Collection__join]))(var_params, var20) /* join on <var_params:Array[String]>*/;
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var24) /* add on <var_:Array[Object]>*/;
+if (varonce25) {
+var26 = varonce25;
+} else {
+var27 = "";
+var28 = 0;
+var29 = string__NativeString__to_s_with_length(var27, var28);
+var26 = var29;
+varonce25 = var26;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var26) /* add on <var_:Array[Object]>*/;
+var30 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
+var = var30;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MGenericType#mangled_cname for (self: Object): String */
+val* VIRTUAL_nitni_base__MGenericType__mangled_cname(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = nitni_base__MGenericType__mangled_cname(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MClass#ctype for (self: MClass): nullable String */
+val* nitni_base__MClass__ctype(val* self) {
+val* var /* : nullable String */;
+val* var1 /* : MClassKind */;
+val* var2 /* : MClassKind */;
+short int var3 /* : Bool */;
+static val* varonce;
+val* var4 /* : String */;
+char* var5 /* : NativeString */;
+long var6 /* : Int */;
+val* var7 /* : String */;
+var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClass__kind]))(self) /* kind on <self:MClass>*/;
+var2 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__extern_kind]))(self) /* extern_kind on <self:MClass>*/;
+var3 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_kernel__Object___61d_61d]))(var1, var2) /* == on <var1:MClassKind>*/;
+if (!var3) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_base.nit", 146);
+show_backtrace(1);
+}
+if (varonce) {
+var4 = varonce;
+} else {
+var5 = "void*";
+var6 = 5;
+var7 = string__NativeString__to_s_with_length(var5, var6);
+var4 = var7;
+varonce = var4;
+}
+var = var4;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method nitni_base#MClass#ctype for (self: Object): nullable String */
+val* VIRTUAL_nitni_base__MClass__ctype(val* self) {
+val* var /* : nullable String */;
+val* var1 /* : nullable String */;
+var1 = nitni_base__MClass__ctype(self);
+var = var1;
+RET_LABEL:;
+return var;
+}