+/* method abstract_compiler#AbstractCompilerVisitor#string_instance for (self: AbstractCompilerVisitor, String): RuntimeVariable */
+val* nit___nit__AbstractCompilerVisitor___string_instance(val* self, val* p0) {
+val* var /* : RuntimeVariable */;
+val* var_string /* var string: String */;
+val* var1 /* : MModule */;
+val* var2 /* : MClassType */;
+val* var_mtype /* var mtype: MClassType */;
+static val* varonce;
+val* var3 /* : String */;
+char* var4 /* : NativeString */;
+val* var5 /* : FlatString */;
+val* var6 /* : String */;
+val* var_name /* var name: String */;
+val* var8 /* : NativeArray[String] */;
+static val* varonce7;
+static val* varonce9;
+val* var10 /* : String */;
+char* var11 /* : NativeString */;
+val* var12 /* : FlatString */;
+static val* varonce13;
+val* var14 /* : String */;
+char* var15 /* : NativeString */;
+val* var16 /* : FlatString */;
+static val* varonce17;
+val* var18 /* : String */;
+char* var19 /* : NativeString */;
+val* var20 /* : FlatString */;
+val* var21 /* : String */;
+val* var22 /* : String */;
+val* var23 /* : RuntimeVariable */;
+val* var_res /* var res: RuntimeVariable */;
+val* var25 /* : NativeArray[String] */;
+static val* varonce24;
+static val* varonce26;
+val* var27 /* : String */;
+char* var28 /* : NativeString */;
+val* var29 /* : FlatString */;
+static val* varonce30;
+val* var31 /* : String */;
+char* var32 /* : NativeString */;
+val* var33 /* : FlatString */;
+val* var34 /* : String */;
+val* var36 /* : NativeArray[String] */;
+static val* varonce35;
+static val* varonce37;
+val* var38 /* : String */;
+char* var39 /* : NativeString */;
+val* var40 /* : FlatString */;
+static val* varonce41;
+val* var42 /* : String */;
+char* var43 /* : NativeString */;
+val* var44 /* : FlatString */;
+val* var45 /* : String */;
+val* var46 /* : String */;
+static val* varonce47;
+val* var48 /* : String */;
+char* var49 /* : NativeString */;
+val* var50 /* : FlatString */;
+val* var51 /* : MModule */;
+val* var52 /* : MClassType */;
+val* var_native_mtype /* var native_mtype: MClassType */;
+val* var53 /* : RuntimeVariable */;
+val* var_nat /* var nat: RuntimeVariable */;
+val* var55 /* : NativeArray[String] */;
+static val* varonce54;
+static val* varonce56;
+val* var57 /* : String */;
+char* var58 /* : NativeString */;
+val* var59 /* : FlatString */;
+static val* varonce60;
+val* var61 /* : String */;
+char* var62 /* : NativeString */;
+val* var63 /* : FlatString */;
+val* var64 /* : String */;
+val* var65 /* : String */;
+val* var66 /* : String */;
+long var67 /* : Int */;
+val* var68 /* : RuntimeVariable */;
+val* var_length /* var length: RuntimeVariable */;
+val* var70 /* : NativeArray[String] */;
+static val* varonce69;
+static val* varonce71;
+val* var72 /* : String */;
+char* var73 /* : NativeString */;
+val* var74 /* : FlatString */;
+static val* varonce75;
+val* var76 /* : String */;
+char* var77 /* : NativeString */;
+val* var78 /* : FlatString */;
+val* var79 /* : String */;
+static val* varonce80;
+val* var81 /* : String */;
+char* var82 /* : NativeString */;
+val* var83 /* : FlatString */;
+val* var84 /* : MMethod */;
+val* var85 /* : Array[RuntimeVariable] */;
+val* var_ /* var : Array[RuntimeVariable] */;
+val* var86 /* : nullable RuntimeVariable */;
+val* var87 /* : String */;
+val* var88 /* : String */;
+val* var90 /* : NativeArray[String] */;
+static val* varonce89;
+static val* varonce91;
+val* var92 /* : String */;
+char* var93 /* : NativeString */;
+val* var94 /* : FlatString */;
+static val* varonce95;
+val* var96 /* : String */;
+char* var97 /* : NativeString */;
+val* var98 /* : FlatString */;
+val* var99 /* : String */;
+val* var100 /* : String */;
+static val* varonce101;
+val* var102 /* : String */;
+char* var103 /* : NativeString */;
+val* var104 /* : FlatString */;
+var_string = p0;
+{
+var1 = nit___nit__AbstractCompilerVisitor___mmodule(self);
+}
+{
+var2 = nit__model___MModule___string_type(var1);
+}
+var_mtype = var2;
+if (likely(varonce!=NULL)) {
+var3 = varonce;
+} else {
+var4 = "varonce";
+var5 = standard___standard__NativeString___to_s_with_length(var4, 7l);
+var3 = var5;
+varonce = var3;
+}
+{
+var6 = nit___nit__AbstractCompilerVisitor___get_name(self, var3);
+}
+var_name = var6;
+if (unlikely(varonce7==NULL)) {
+var8 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String);
+if (likely(varonce9!=NULL)) {
+var10 = varonce9;
+} else {
+var11 = "static ";
+var12 = standard___standard__NativeString___to_s_with_length(var11, 7l);
+var10 = var12;
+varonce9 = var10;
+}
+((struct instance_standard__NativeArray*)var8)->values[0]=var10;
+if (likely(varonce13!=NULL)) {
+var14 = varonce13;
+} else {
+var15 = " ";
+var16 = standard___standard__NativeString___to_s_with_length(var15, 1l);
+var14 = var16;
+varonce13 = var14;
+}
+((struct instance_standard__NativeArray*)var8)->values[2]=var14;
+if (likely(varonce17!=NULL)) {
+var18 = varonce17;
+} else {
+var19 = ";";
+var20 = standard___standard__NativeString___to_s_with_length(var19, 1l);
+var18 = var20;
+varonce17 = var18;
+}
+((struct instance_standard__NativeArray*)var8)->values[4]=var18;
+} else {
+var8 = varonce7;
+varonce7 = NULL;
+}
+{
+var21 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype);
+}
+((struct instance_standard__NativeArray*)var8)->values[1]=var21;
+((struct instance_standard__NativeArray*)var8)->values[3]=var_name;
+{
+var22 = ((val*(*)(val* self))(var8->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var8); /* native_to_s on <var8:NativeArray[String]>*/
+}
+varonce7 = var8;
+{
+nit___nit__AbstractCompilerVisitor___add_decl(self, var22); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:AbstractCompilerVisitor>*/
+}
+{
+var23 = nit___nit__AbstractCompilerVisitor___new_var(self, var_mtype);
+}
+var_res = var23;
+if (unlikely(varonce24==NULL)) {
+var25 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
+if (likely(varonce26!=NULL)) {
+var27 = varonce26;
+} else {
+var28 = "if (likely(";
+var29 = standard___standard__NativeString___to_s_with_length(var28, 11l);
+var27 = var29;
+varonce26 = var27;
+}
+((struct instance_standard__NativeArray*)var25)->values[0]=var27;
+if (likely(varonce30!=NULL)) {
+var31 = varonce30;
+} else {
+var32 = "!=NULL)) {";
+var33 = standard___standard__NativeString___to_s_with_length(var32, 10l);
+var31 = var33;
+varonce30 = var31;
+}
+((struct instance_standard__NativeArray*)var25)->values[2]=var31;
+} else {
+var25 = varonce24;
+varonce24 = NULL;
+}
+((struct instance_standard__NativeArray*)var25)->values[1]=var_name;
+{
+var34 = ((val*(*)(val* self))(var25->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var25); /* native_to_s on <var25:NativeArray[String]>*/
+}
+varonce24 = var25;
+{
+nit___nit__AbstractCompilerVisitor___add(self, var34); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
+}
+if (unlikely(varonce35==NULL)) {
+var36 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String);
+if (likely(varonce37!=NULL)) {
+var38 = varonce37;
+} else {
+var39 = " = ";
+var40 = standard___standard__NativeString___to_s_with_length(var39, 3l);
+var38 = var40;
+varonce37 = var38;
+}
+((struct instance_standard__NativeArray*)var36)->values[1]=var38;
+if (likely(varonce41!=NULL)) {
+var42 = varonce41;
+} else {
+var43 = ";";
+var44 = standard___standard__NativeString___to_s_with_length(var43, 1l);
+var42 = var44;
+varonce41 = var42;
+}
+((struct instance_standard__NativeArray*)var36)->values[3]=var42;
+} else {
+var36 = varonce35;
+varonce35 = NULL;
+}
+{
+var45 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
+}
+((struct instance_standard__NativeArray*)var36)->values[0]=var45;
+((struct instance_standard__NativeArray*)var36)->values[2]=var_name;
+{
+var46 = ((val*(*)(val* self))(var36->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var36); /* native_to_s on <var36:NativeArray[String]>*/
+}
+varonce35 = var36;
+{
+nit___nit__AbstractCompilerVisitor___add(self, var46); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
+}
+if (likely(varonce47!=NULL)) {
+var48 = varonce47;
+} else {
+var49 = "} else {";
+var50 = standard___standard__NativeString___to_s_with_length(var49, 8l);
+var48 = var50;
+varonce47 = var48;
+}
+{
+nit___nit__AbstractCompilerVisitor___add(self, var48); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
+}
+{
+var51 = nit___nit__AbstractCompilerVisitor___mmodule(self);
+}
+{
+var52 = nit__model___MModule___native_string_type(var51);
+}
+var_native_mtype = var52;
+{
+var53 = nit___nit__AbstractCompilerVisitor___new_var(self, var_native_mtype);
+}
+var_nat = var53;
+if (unlikely(varonce54==NULL)) {
+var55 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String);
+if (likely(varonce56!=NULL)) {
+var57 = varonce56;
+} else {
+var58 = " = \"";
+var59 = standard___standard__NativeString___to_s_with_length(var58, 4l);
+var57 = var59;
+varonce56 = var57;
+}
+((struct instance_standard__NativeArray*)var55)->values[1]=var57;
+if (likely(varonce60!=NULL)) {
+var61 = varonce60;
+} else {
+var62 = "\";";
+var63 = standard___standard__NativeString___to_s_with_length(var62, 2l);
+var61 = var63;
+varonce60 = var61;
+}
+((struct instance_standard__NativeArray*)var55)->values[3]=var61;
+} else {
+var55 = varonce54;
+varonce54 = NULL;
+}
+{
+var64 = ((val*(*)(val* self))(var_nat->class->vft[COLOR_standard__string__Object__to_s]))(var_nat); /* to_s on <var_nat:RuntimeVariable>*/
+}
+((struct instance_standard__NativeArray*)var55)->values[0]=var64;
+{
+var65 = standard___standard__Text___escape_to_c(var_string);
+}
+((struct instance_standard__NativeArray*)var55)->values[2]=var65;
+{
+var66 = ((val*(*)(val* self))(var55->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var55); /* native_to_s on <var55:NativeArray[String]>*/
+}
+varonce54 = var55;
+{
+nit___nit__AbstractCompilerVisitor___add(self, var66); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
+}
+{
+var67 = ((long(*)(val* self))(var_string->class->vft[COLOR_standard__string__Text__length]))(var_string); /* length on <var_string:String>*/
+}
+{
+var68 = nit___nit__AbstractCompilerVisitor___int_instance(self, var67);
+}
+var_length = var68;
+if (unlikely(varonce69==NULL)) {
+var70 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String);
+if (likely(varonce71!=NULL)) {
+var72 = varonce71;
+} else {
+var73 = " = ";
+var74 = standard___standard__NativeString___to_s_with_length(var73, 3l);
+var72 = var74;
+varonce71 = var72;
+}
+((struct instance_standard__NativeArray*)var70)->values[1]=var72;
+if (likely(varonce75!=NULL)) {
+var76 = varonce75;
+} else {
+var77 = ";";
+var78 = standard___standard__NativeString___to_s_with_length(var77, 1l);
+var76 = var78;
+varonce75 = var76;
+}
+((struct instance_standard__NativeArray*)var70)->values[3]=var76;
+} else {
+var70 = varonce69;
+varonce69 = NULL;
+}
+{
+var79 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
+}
+((struct instance_standard__NativeArray*)var70)->values[0]=var79;
+if (likely(varonce80!=NULL)) {
+var81 = varonce80;
+} else {
+var82 = "to_s_with_length";
+var83 = standard___standard__NativeString___to_s_with_length(var82, 16l);
+var81 = var83;
+varonce80 = var81;
+}
+{
+var84 = nit___nit__AbstractCompilerVisitor___get_property(self, var81, var_native_mtype);
+}
+var85 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable);
+{
+standard___standard__Array___with_capacity(var85, 2l); /* Direct call array#Array#with_capacity on <var85:Array[RuntimeVariable]>*/
+}
+var_ = var85;
+{
+standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_nat); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
+}
+{
+standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_length); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
+}
+{
+var86 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__send(self, var84, var_);
+}
+if (unlikely(var86 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Cast failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1541);
+fatal_exit(1);
+}
+{
+var87 = ((val*(*)(val* self))(var86->class->vft[COLOR_standard__string__Object__to_s]))(var86); /* to_s on <var86:nullable RuntimeVariable(RuntimeVariable)>*/
+}
+((struct instance_standard__NativeArray*)var70)->values[2]=var87;
+{
+var88 = ((val*(*)(val* self))(var70->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var70); /* native_to_s on <var70:NativeArray[String]>*/
+}
+varonce69 = var70;
+{
+nit___nit__AbstractCompilerVisitor___add(self, var88); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
+}
+if (unlikely(varonce89==NULL)) {
+var90 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String);
+if (likely(varonce91!=NULL)) {
+var92 = varonce91;
+} else {
+var93 = " = ";
+var94 = standard___standard__NativeString___to_s_with_length(var93, 3l);
+var92 = var94;
+varonce91 = var92;
+}
+((struct instance_standard__NativeArray*)var90)->values[1]=var92;
+if (likely(varonce95!=NULL)) {
+var96 = varonce95;
+} else {
+var97 = ";";
+var98 = standard___standard__NativeString___to_s_with_length(var97, 1l);
+var96 = var98;
+varonce95 = var96;
+}
+((struct instance_standard__NativeArray*)var90)->values[3]=var96;
+} else {
+var90 = varonce89;
+varonce89 = NULL;
+}
+((struct instance_standard__NativeArray*)var90)->values[0]=var_name;
+{
+var99 = ((val*(*)(val* self))(var_res->class->vft[COLOR_standard__string__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
+}
+((struct instance_standard__NativeArray*)var90)->values[2]=var99;
+{
+var100 = ((val*(*)(val* self))(var90->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var90); /* native_to_s on <var90:NativeArray[String]>*/
+}
+varonce89 = var90;
+{
+nit___nit__AbstractCompilerVisitor___add(self, var100); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
+}
+if (likely(varonce101!=NULL)) {
+var102 = varonce101;
+} else {
+var103 = "}";
+var104 = standard___standard__NativeString___to_s_with_length(var103, 1l);
+var102 = var104;
+varonce101 = var102;
+}
+{
+nit___nit__AbstractCompilerVisitor___add(self, var102); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
+}
+var = var_res;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method abstract_compiler#AbstractCompilerVisitor#value_instance for (self: AbstractCompilerVisitor, Object): RuntimeVariable */
+val* nit___nit__AbstractCompilerVisitor___value_instance(val* self, val* p0) {
+val* var /* : RuntimeVariable */;
+val* var_object /* var object: Object */;
+short int var1 /* : Bool */;
+int cltype;
+int idtype;
+val* var2 /* : RuntimeVariable */;
+long var3 /* : Int */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+val* var7 /* : RuntimeVariable */;
+short int var8 /* : Bool */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+val* var12 /* : RuntimeVariable */;
+var_object = p0;
+/* <var_object:Object> isa Int */
+cltype = type_standard__Int.color;
+idtype = type_standard__Int.id;
+if(cltype >= (((long)var_object&3)?type_info[((long)var_object&3)]:var_object->type)->table_size) {
+var1 = 0;
+} else {
+var1 = (((long)var_object&3)?type_info[((long)var_object&3)]:var_object->type)->type_table[cltype] == idtype;
+}
+if (var1){
+{
+var3 = (long)(var_object)>>2;
+var2 = nit___nit__AbstractCompilerVisitor___int_instance(self, var3);
+}
+var = var2;
+goto RET_LABEL;
+} else {
+/* <var_object:Object> isa Bool */
+cltype5 = type_standard__Bool.color;
+idtype6 = type_standard__Bool.id;
+if(cltype5 >= (((long)var_object&3)?type_info[((long)var_object&3)]:var_object->type)->table_size) {
+var4 = 0;
+} else {
+var4 = (((long)var_object&3)?type_info[((long)var_object&3)]:var_object->type)->type_table[cltype5] == idtype6;
+}
+if (var4){
+{
+var8 = (short int)((long)(var_object)>>2);
+var7 = nit___nit__AbstractCompilerVisitor___bool_instance(self, var8);
+}
+var = var7;
+goto RET_LABEL;
+} else {
+/* <var_object:Object> isa String */
+cltype10 = type_standard__String.color;
+idtype11 = type_standard__String.id;
+if(cltype10 >= (((long)var_object&3)?type_info[((long)var_object&3)]:var_object->type)->table_size) {
+var9 = 0;
+} else {
+var9 = (((long)var_object&3)?type_info[((long)var_object&3)]:var_object->type)->type_table[cltype10] == idtype11;
+}
+if (var9){
+{
+var12 = nit___nit__AbstractCompilerVisitor___string_instance(self, var_object);
+}
+var = var12;
+goto RET_LABEL;
+} else {
+PRINT_ERROR("Runtime error: %s", "Aborted");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1556);
+fatal_exit(1);
+}
+}
+}
+RET_LABEL:;
+return var;
+}
+/* method abstract_compiler#AbstractCompilerVisitor#add for (self: AbstractCompilerVisitor, String) */
+void nit___nit__AbstractCompilerVisitor___add(val* self, val* p0) {
+val* var_s /* var s: String */;
+val* var /* : CodeWriter */;
+val* var2 /* : CodeWriter */;
+val* var3 /* : List[String] */;
+val* var5 /* : List[String] */;
+var_s = p0;
+{
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#writer (self) on <self:AbstractCompilerVisitor> */
+var2 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___writer].val; /* _writer on <self:AbstractCompilerVisitor> */
+if (unlikely(var2 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _writer");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1117);
+fatal_exit(1);
+}
+var = var2;
+RET_LABEL1:(void)0;
+}
+}
+{
+{ /* Inline abstract_compiler#CodeWriter#lines (var) on <var:CodeWriter> */
+var5 = var->attrs[COLOR_nit__abstract_compiler__CodeWriter___lines].val; /* _lines on <var:CodeWriter> */
+if (unlikely(var5 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lines");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1081);
+fatal_exit(1);
+}
+var3 = var5;
+RET_LABEL4:(void)0;
+}
+}
+{
+standard___standard__Sequence___SimpleCollection__add(var3, var_s); /* Direct call abstract_collection#Sequence#add on <var3:List[String]>*/
+}
+RET_LABEL:;
+}
+/* method abstract_compiler#AbstractCompilerVisitor#add_decl for (self: AbstractCompilerVisitor, String) */
+void nit___nit__AbstractCompilerVisitor___add_decl(val* self, val* p0) {
+val* var_s /* var s: String */;
+val* var /* : CodeWriter */;
+val* var2 /* : CodeWriter */;
+val* var3 /* : List[String] */;
+val* var5 /* : List[String] */;
+var_s = p0;
+{
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#writer (self) on <self:AbstractCompilerVisitor> */
+var2 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___writer].val; /* _writer on <self:AbstractCompilerVisitor> */
+if (unlikely(var2 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _writer");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1117);
+fatal_exit(1);
+}
+var = var2;
+RET_LABEL1:(void)0;
+}
+}
+{
+{ /* Inline abstract_compiler#CodeWriter#decl_lines (var) on <var:CodeWriter> */
+var5 = var->attrs[COLOR_nit__abstract_compiler__CodeWriter___decl_lines].val; /* _decl_lines on <var:CodeWriter> */
+if (unlikely(var5 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _decl_lines");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1082);
+fatal_exit(1);
+}
+var3 = var5;
+RET_LABEL4:(void)0;
+}
+}
+{
+standard___standard__Sequence___SimpleCollection__add(var3, var_s); /* Direct call abstract_collection#Sequence#add on <var3:List[String]>*/
+}
+RET_LABEL:;
+}
+/* method abstract_compiler#AbstractCompilerVisitor#require_declaration for (self: AbstractCompilerVisitor, String) */
+void nit___nit__AbstractCompilerVisitor___require_declaration(val* self, val* p0) {
+val* var_key /* var key: String */;
+val* var /* : CodeWriter */;
+val* var2 /* : CodeWriter */;
+val* var3 /* : CodeFile */;
+val* var5 /* : CodeFile */;
+val* var6 /* : HashSet[String] */;
+val* var8 /* : HashSet[String] */;
+val* var_reqs /* var reqs: HashSet[String] */;
+short int var9 /* : Bool */;
+val* var10 /* : nullable ANode */;
+val* var12 /* : nullable ANode */;
+val* var_node /* var node: nullable ANode */;
+short int var13 /* : Bool */;
+short int var14 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var16 /* : Bool */;
+short int var17 /* : Bool */;
+val* var18 /* : AbstractCompiler */;
+val* var20 /* : AbstractCompiler */;
+val* var21 /* : HashMap[String, ANode] */;
+val* var23 /* : HashMap[String, ANode] */;
+var_key = p0;
+{
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#writer (self) on <self:AbstractCompilerVisitor> */
+var2 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___writer].val; /* _writer on <self:AbstractCompilerVisitor> */
+if (unlikely(var2 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _writer");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1117);
+fatal_exit(1);
+}
+var = var2;
+RET_LABEL1:(void)0;
+}
+}
+{
+{ /* Inline abstract_compiler#CodeWriter#file (var) on <var:CodeWriter> */
+var5 = var->attrs[COLOR_nit__abstract_compiler__CodeWriter___file].val; /* _file on <var:CodeWriter> */
+if (unlikely(var5 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _file");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1080);
+fatal_exit(1);
+}
+var3 = var5;
+RET_LABEL4:(void)0;
+}
+}
+{
+{ /* Inline abstract_compiler#CodeFile#required_declarations (var3) on <var3:CodeFile> */
+var8 = var3->attrs[COLOR_nit__abstract_compiler__CodeFile___required_declarations].val; /* _required_declarations on <var3:CodeFile> */
+if (unlikely(var8 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _required_declarations");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1075);
+fatal_exit(1);
+}
+var6 = var8;
+RET_LABEL7:(void)0;
+}
+}
+var_reqs = var6;
+{
+var9 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var_reqs, var_key);
+}
+if (var9){
+goto RET_LABEL;
+} else {
+}
+{
+standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var_reqs, var_key); /* Direct call hash_collection#HashSet#add on <var_reqs:HashSet[String]>*/
+}
+{
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#current_node (self) on <self:AbstractCompilerVisitor> */
+var12 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
+var10 = var12;
+RET_LABEL11:(void)0;
+}
+}
+var_node = var10;
+if (var_node == NULL) {
+var13 = 0; /* is null */
+} else {
+var13 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ANode> */
+var_other = ((val*)NULL);
+{
+var16 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable ANode(ANode)>*/
+}
+var17 = !var16;
+var14 = var17;
+goto RET_LABEL15;
+RET_LABEL15:(void)0;
+}
+var13 = var14;
+}
+if (var13){
+{
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
+var20 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
+if (unlikely(var20 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102);
+fatal_exit(1);
+}
+var18 = var20;
+RET_LABEL19:(void)0;
+}
+}
+{
+{ /* Inline abstract_compiler#AbstractCompiler#requirers_of_declarations (var18) on <var18:AbstractCompiler> */
+var23 = var18->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___requirers_of_declarations].val; /* _requirers_of_declarations on <var18:AbstractCompiler> */
+if (unlikely(var23 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _requirers_of_declarations");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 587);
+fatal_exit(1);
+}
+var21 = var23;
+RET_LABEL22:(void)0;
+}
+}
+{
+standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var21, var_key, var_node); /* Direct call hash_collection#HashMap#[]= on <var21:HashMap[String, ANode]>*/
+}
+} else {
+}
+RET_LABEL:;
+}
+/* method abstract_compiler#AbstractCompilerVisitor#declare_once for (self: AbstractCompilerVisitor, String) */
+void nit___nit__AbstractCompilerVisitor___declare_once(val* self, val* p0) {
+val* var_s /* var s: String */;
+val* var /* : AbstractCompiler */;
+val* var2 /* : AbstractCompiler */;
+var_s = p0;
+{
+{ /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
+var2 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
+if (unlikely(var2 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1102);
+fatal_exit(1);
+}
+var = var2;
+RET_LABEL1:(void)0;
+}
+}
+{
+nit___nit__AbstractCompiler___provide_declaration(var, var_s, var_s); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <var:AbstractCompiler>*/
+}
+{
+nit___nit__AbstractCompilerVisitor___require_declaration(self, var_s); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:AbstractCompilerVisitor>*/
+}
+RET_LABEL:;
+}