X-Git-Url: http://nitlanguage.org diff --git a/c_src/nit__local_var_init.sep.1.c b/c_src/nit__local_var_init.sep.1.c index 25991d3..977d309 100644 --- a/c_src/nit__local_var_init.sep.1.c +++ b/c_src/nit__local_var_init.sep.1.c @@ -7,7 +7,7 @@ var1 = self->attrs[COLOR_nit__local_var_init__ToolContext___local_var_init_phase if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _local_var_init_phase"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 24); -show_backtrace(1); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -24,8 +24,8 @@ var_npropdef = p0; var2 = self->attrs[COLOR_nit__phase__Phase___toolcontext].val; /* _toolcontext on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 201); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__phase, 200); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; @@ -44,10 +44,10 @@ val* var_v /* var v: LocalVarInitVisitor */; var_toolcontext = p0; var = NEW_nit__local_var_init__LocalVarInitVisitor(&type_nit__local_var_init__LocalVarInitVisitor); { -((void (*)(val* self, val* p0))(var->class->vft[COLOR_nit__local_var_init__LocalVarInitVisitor__toolcontext_61d]))(var, var_toolcontext) /* toolcontext= on */; +((void(*)(val* self, val* p0))(var->class->vft[COLOR_nit__local_var_init__LocalVarInitVisitor__toolcontext_61d]))(var, var_toolcontext); /* toolcontext= on */ } { -((void (*)(val* self))(var->class->vft[COLOR_standard__kernel__Object__init]))(var) /* init on */; +((void(*)(val* self))(var->class->vft[COLOR_standard__kernel__Object__init]))(var); /* init on */ } var_v = var; { @@ -63,7 +63,7 @@ var1 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___toolcontext] if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 46); -show_backtrace(1); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -82,7 +82,7 @@ var1 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___maybe_unset_ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _maybe_unset_vars"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 48); -show_backtrace(1); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -92,54 +92,52 @@ return var; void nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___mark_is_unset(val* self, val* p0, val* p1) { val* var_node /* var node: AExpr */; val* var_variable /* var variable: nullable Variable */; -val* var /* : null */; +short int var /* : Bool */; short int var1 /* : Bool */; -short int var2 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var3 /* : Bool */; short int var4 /* : Bool */; -short int var5 /* : Bool */; -val* var6 /* : Set[Variable] */; -val* var8 /* : Set[Variable] */; +val* var5 /* : Set[Variable] */; +val* var7 /* : Set[Variable] */; var_node = p0; var_variable = p1; -var = NULL; if (var_variable == NULL) { -var1 = 0; /* is null */ +var = 0; /* is null */ } else { -var1 = 1; /* arg is null and recv is not */ +var = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_variable,var) on */ -var_other = var; +{ /* Inline kernel#Object#!= (var_variable,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var4 = ((short int (*)(val* self, val* p0))(var_variable->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_variable, var_other) /* == on */; +var3 = ((short int(*)(val* self, val* p0))(var_variable->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_variable, var_other); /* == on */ } -var5 = !var4; -var2 = var5; -goto RET_LABEL3; -RET_LABEL3:(void)0; +var4 = !var3; +var1 = var4; +goto RET_LABEL2; +RET_LABEL2:(void)0; } -var1 = var2; +var = var1; } -if (unlikely(!var1)) { +if (unlikely(!var)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 53); -show_backtrace(1); +fatal_exit(1); } { { /* Inline local_var_init#LocalVarInitVisitor#maybe_unset_vars (self) on */ -var8 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___maybe_unset_vars].val; /* _maybe_unset_vars on */ -if (unlikely(var8 == NULL)) { +var7 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___maybe_unset_vars].val; /* _maybe_unset_vars on */ +if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _maybe_unset_vars"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 48); -show_backtrace(1); +fatal_exit(1); } -var6 = var8; -RET_LABEL7:(void)0; +var5 = var7; +RET_LABEL6:(void)0; } } { -((void (*)(val* self, val* p0))(var6->class->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(var6, var_variable) /* add on */; +((void(*)(val* self, val* p0))((((long)var5&3)?class_info[((long)var5&3)]:var5->class)->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(var5, var_variable); /* add on */ } RET_LABEL:; } @@ -147,94 +145,92 @@ RET_LABEL:; void nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___mark_is_set(val* self, val* p0, val* p1) { val* var_node /* var node: AExpr */; val* var_variable /* var variable: nullable Variable */; -val* var /* : null */; +short int var /* : Bool */; short int var1 /* : Bool */; -short int var2 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var3 /* : Bool */; short int var4 /* : Bool */; -short int var5 /* : Bool */; -val* var6 /* : Set[Variable] */; -val* var8 /* : Set[Variable] */; +val* var5 /* : Set[Variable] */; +val* var7 /* : Set[Variable] */; +short int var8 /* : Bool */; short int var9 /* : Bool */; -short int var10 /* : Bool */; -val* var11 /* : nullable FlowContext */; -val* var13 /* : nullable FlowContext */; +val* var10 /* : nullable FlowContext */; +val* var12 /* : nullable FlowContext */; val* var_flow /* var flow: FlowContext */; -val* var14 /* : Set[Variable] */; -val* var16 /* : Set[Variable] */; +val* var13 /* : Set[Variable] */; +val* var15 /* : Set[Variable] */; var_node = p0; var_variable = p1; -var = NULL; if (var_variable == NULL) { -var1 = 0; /* is null */ +var = 0; /* is null */ } else { -var1 = 1; /* arg is null and recv is not */ +var = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_variable,var) on */ -var_other = var; +{ /* Inline kernel#Object#!= (var_variable,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var4 = ((short int (*)(val* self, val* p0))(var_variable->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_variable, var_other) /* == on */; +var3 = ((short int(*)(val* self, val* p0))(var_variable->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_variable, var_other); /* == on */ } -var5 = !var4; -var2 = var5; -goto RET_LABEL3; -RET_LABEL3:(void)0; +var4 = !var3; +var1 = var4; +goto RET_LABEL2; +RET_LABEL2:(void)0; } -var1 = var2; +var = var1; } -if (unlikely(!var1)) { +if (unlikely(!var)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 59); -show_backtrace(1); +fatal_exit(1); } { { /* Inline local_var_init#LocalVarInitVisitor#maybe_unset_vars (self) on */ -var8 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___maybe_unset_vars].val; /* _maybe_unset_vars on */ -if (unlikely(var8 == NULL)) { +var7 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___maybe_unset_vars].val; /* _maybe_unset_vars on */ +if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _maybe_unset_vars"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 48); -show_backtrace(1); +fatal_exit(1); } -var6 = var8; -RET_LABEL7:(void)0; +var5 = var7; +RET_LABEL6:(void)0; } } { -var9 = ((short int (*)(val* self, val* p0))(var6->class->vft[COLOR_standard__abstract_collection__Collection__has]))(var6, var_variable) /* has on */; +var8 = ((short int(*)(val* self, val* p0))((((long)var5&3)?class_info[((long)var5&3)]:var5->class)->vft[COLOR_standard__abstract_collection__Collection__has]))(var5, var_variable); /* has on */ } -var10 = !var9; -if (var10){ +var9 = !var8; +if (var9){ goto RET_LABEL; } else { } { { /* Inline flow#AExpr#after_flow_context (var_node) on */ -var13 = var_node->attrs[COLOR_nit__flow__AExpr___after_flow_context].val; /* _after_flow_context on */ -var11 = var13; -RET_LABEL12:(void)0; +var12 = var_node->attrs[COLOR_nit__flow__AExpr___after_flow_context].val; /* _after_flow_context on */ +var10 = var12; +RET_LABEL11:(void)0; } } -if (unlikely(var11 == NULL)) { +if (unlikely(var10 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 62); -show_backtrace(1); +fatal_exit(1); } -var_flow = var11; +var_flow = var10; { { /* Inline local_var_init#FlowContext#set_vars (var_flow) on */ -var16 = var_flow->attrs[COLOR_nit__local_var_init__FlowContext___set_vars].val; /* _set_vars on */ -if (unlikely(var16 == NULL)) { +var15 = var_flow->attrs[COLOR_nit__local_var_init__FlowContext___set_vars].val; /* _set_vars on */ +if (unlikely(var15 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _set_vars"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 86); -show_backtrace(1); +fatal_exit(1); } -var14 = var16; -RET_LABEL15:(void)0; +var13 = var15; +RET_LABEL14:(void)0; } } { -((void (*)(val* self, val* p0))(var14->class->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(var14, var_variable) /* add on */; +((void(*)(val* self, val* p0))((((long)var13&3)?class_info[((long)var13&3)]:var13->class)->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(var13, var_variable); /* add on */ } RET_LABEL:; } @@ -242,168 +238,165 @@ RET_LABEL:; void nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___check_is_set(val* self, val* p0, val* p1) { val* var_node /* var node: AExpr */; val* var_variable /* var variable: nullable Variable */; -val* var /* : null */; +short int var /* : Bool */; short int var1 /* : Bool */; -short int var2 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var3 /* : Bool */; short int var4 /* : Bool */; -short int var5 /* : Bool */; -val* var6 /* : Set[Variable] */; -val* var8 /* : Set[Variable] */; +val* var5 /* : Set[Variable] */; +val* var7 /* : Set[Variable] */; +short int var8 /* : Bool */; short int var9 /* : Bool */; -short int var10 /* : Bool */; -val* var11 /* : nullable FlowContext */; -val* var13 /* : nullable FlowContext */; +val* var10 /* : nullable FlowContext */; +val* var12 /* : nullable FlowContext */; val* var_flow /* var flow: FlowContext */; +short int var13 /* : Bool */; short int var14 /* : Bool */; -short int var15 /* : Bool */; -val* var16 /* : ToolContext */; -val* var18 /* : ToolContext */; -val* var19 /* : Location */; +val* var15 /* : ToolContext */; +val* var17 /* : ToolContext */; +val* var18 /* : Location */; +val* var19 /* : NativeArray[String] */; static val* varonce; -val* var20 /* : String */; -char* var21 /* : NativeString */; -long var22 /* : Int */; +static val* varonce20; +val* var21 /* : String */; +char* var22 /* : NativeString */; val* var23 /* : FlatString */; static val* varonce24; val* var25 /* : String */; char* var26 /* : NativeString */; -long var27 /* : Int */; -val* var28 /* : FlatString */; -val* var29 /* : Array[Object] */; -long var30 /* : Int */; -val* var31 /* : NativeArray[Object] */; -val* var32 /* : String */; +val* var27 /* : FlatString */; +val* var28 /* : String */; +val* var29 /* : String */; +val* var30 /* : Message */; +val* var31 /* : Set[Variable] */; val* var33 /* : Set[Variable] */; -val* var35 /* : Set[Variable] */; var_node = p0; var_variable = p1; -var = NULL; if (var_variable == NULL) { -var1 = 0; /* is null */ +var = 0; /* is null */ } else { -var1 = 1; /* arg is null and recv is not */ +var = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_variable,var) on */ -var_other = var; +{ /* Inline kernel#Object#!= (var_variable,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var4 = ((short int (*)(val* self, val* p0))(var_variable->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_variable, var_other) /* == on */; +var3 = ((short int(*)(val* self, val* p0))(var_variable->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_variable, var_other); /* == on */ } -var5 = !var4; -var2 = var5; -goto RET_LABEL3; -RET_LABEL3:(void)0; +var4 = !var3; +var1 = var4; +goto RET_LABEL2; +RET_LABEL2:(void)0; } -var1 = var2; +var = var1; } -if (unlikely(!var1)) { +if (unlikely(!var)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 68); -show_backtrace(1); +fatal_exit(1); } { { /* Inline local_var_init#LocalVarInitVisitor#maybe_unset_vars (self) on */ -var8 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___maybe_unset_vars].val; /* _maybe_unset_vars on */ -if (unlikely(var8 == NULL)) { +var7 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___maybe_unset_vars].val; /* _maybe_unset_vars on */ +if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _maybe_unset_vars"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 48); -show_backtrace(1); +fatal_exit(1); } -var6 = var8; -RET_LABEL7:(void)0; +var5 = var7; +RET_LABEL6:(void)0; } } { -var9 = ((short int (*)(val* self, val* p0))(var6->class->vft[COLOR_standard__abstract_collection__Collection__has]))(var6, var_variable) /* has on */; +var8 = ((short int(*)(val* self, val* p0))((((long)var5&3)?class_info[((long)var5&3)]:var5->class)->vft[COLOR_standard__abstract_collection__Collection__has]))(var5, var_variable); /* has on */ } -var10 = !var9; -if (var10){ +var9 = !var8; +if (var9){ goto RET_LABEL; } else { } { { /* Inline flow#AExpr#after_flow_context (var_node) on */ -var13 = var_node->attrs[COLOR_nit__flow__AExpr___after_flow_context].val; /* _after_flow_context on */ -var11 = var13; -RET_LABEL12:(void)0; +var12 = var_node->attrs[COLOR_nit__flow__AExpr___after_flow_context].val; /* _after_flow_context on */ +var10 = var12; +RET_LABEL11:(void)0; } } -if (unlikely(var11 == NULL)) { +if (unlikely(var10 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 71); -show_backtrace(1); +fatal_exit(1); } -var_flow = var11; +var_flow = var10; { -var14 = nit__local_var_init___FlowContext___is_variable_set(var_flow, var_variable); +var13 = nit__local_var_init___FlowContext___is_variable_set(var_flow, var_variable); } -var15 = !var14; -if (var15){ +var14 = !var13; +if (var14){ { { /* Inline local_var_init#LocalVarInitVisitor#toolcontext (self) on */ -var18 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___toolcontext].val; /* _toolcontext on */ -if (unlikely(var18 == NULL)) { +var17 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___toolcontext].val; /* _toolcontext on */ +if (unlikely(var17 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 46); -show_backtrace(1); +fatal_exit(1); } -var16 = var18; -RET_LABEL17:(void)0; +var15 = var17; +RET_LABEL16:(void)0; } } { -var19 = nit___nit__ANode___hot_location(var_node); +var18 = nit___nit__ANode___hot_location(var_node); } -if (varonce) { -var20 = varonce; +if (unlikely(varonce==NULL)) { +var19 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce20!=NULL)) { +var21 = varonce20; } else { -var21 = "Error: variable \'"; -var22 = 17; -var23 = standard___standard__NativeString___to_s_with_length(var21, var22); -var20 = var23; -varonce = var20; +var22 = "Error: possibly unset variable `"; +var23 = standard___standard__NativeString___to_s_with_length(var22, 32l); +var21 = var23; +varonce20 = var21; } -if (varonce24) { +((struct instance_standard__NativeArray*)var19)->values[0]=var21; +if (likely(varonce24!=NULL)) { var25 = varonce24; } else { -var26 = "\' is possibly unset."; -var27 = 20; -var28 = standard___standard__NativeString___to_s_with_length(var26, var27); -var25 = var28; +var26 = "`."; +var27 = standard___standard__NativeString___to_s_with_length(var26, 2l); +var25 = var27; varonce24 = var25; } -var29 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var29 = array_instance Array[Object] */ -var30 = 3; -var31 = NEW_standard__NativeArray(var30, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var31)->values[0] = (val*) var20; -((struct instance_standard__NativeArray*)var31)->values[1] = (val*) var_variable; -((struct instance_standard__NativeArray*)var31)->values[2] = (val*) var25; -{ -((void (*)(val* self, val* p0, long p1))(var29->class->vft[COLOR_standard__array__Array__with_native]))(var29, var31, var30) /* with_native on */; +((struct instance_standard__NativeArray*)var19)->values[2]=var25; +} else { +var19 = varonce; +varonce = NULL; } +{ +var28 = ((val*(*)(val* self))(var_variable->class->vft[COLOR_standard__string__Object__to_s]))(var_variable); /* to_s on */ } +((struct instance_standard__NativeArray*)var19)->values[1]=var28; { -var32 = ((val* (*)(val* self))(var29->class->vft[COLOR_standard__string__Object__to_s]))(var29) /* to_s on */; +var29 = ((val*(*)(val* self))(var19->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var19); /* native_to_s on */ } +varonce = var19; { -nit___nit__ToolContext___error(var16, var19, var32); /* Direct call toolcontext#ToolContext#error on */ +var30 = nit___nit__ToolContext___error(var15, var18, var29); } { { /* Inline local_var_init#LocalVarInitVisitor#maybe_unset_vars (self) on */ -var35 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___maybe_unset_vars].val; /* _maybe_unset_vars on */ -if (unlikely(var35 == NULL)) { +var33 = self->attrs[COLOR_nit__local_var_init__LocalVarInitVisitor___maybe_unset_vars].val; /* _maybe_unset_vars on */ +if (unlikely(var33 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _maybe_unset_vars"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 48); -show_backtrace(1); +fatal_exit(1); } -var33 = var35; -RET_LABEL34:(void)0; +var31 = var33; +RET_LABEL32:(void)0; } } { -((void (*)(val* self, val* p0))(var33->class->vft[COLOR_standard__abstract_collection__RemovableCollection__remove]))(var33, var_variable) /* remove on */; +((void(*)(val* self, val* p0))((((long)var31&3)?class_info[((long)var31&3)]:var31->class)->vft[COLOR_standard__abstract_collection__RemovableCollection__remove]))(var31, var_variable); /* remove on */ } } else { } @@ -414,14 +407,14 @@ void nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___nit__parse val* var_n /* var n: ANode */; var_n = p0; { -((void (*)(val* self, val* p0))(var_n->class->vft[COLOR_nit__local_var_init__ANode__accept_local_var_visitor]))(var_n, self) /* accept_local_var_visitor on */; +((void(*)(val* self, val* p0))(var_n->class->vft[COLOR_nit__local_var_init__ANode__accept_local_var_visitor]))(var_n, self); /* accept_local_var_visitor on */ } RET_LABEL:; } /* method local_var_init#LocalVarInitVisitor#init for (self: LocalVarInitVisitor) */ void nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___standard__kernel__Object__init(val* self) { { -((void (*)(val* self))(self->class->vft[COLOR_nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___standard__kernel__Object__init]))(self) /* init on */; +((void(*)(val* self))(self->class->vft[COLOR_nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___standard__kernel__Object__init]))(self); /* init on */ } RET_LABEL:; } @@ -433,7 +426,7 @@ var1 = self->attrs[COLOR_nit__local_var_init__FlowContext___set_vars].val; /* _s if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _set_vars"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 86); -show_backtrace(1); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -446,37 +439,31 @@ val* var_variable /* var variable: Variable */; val* var1 /* : Set[Variable] */; val* var3 /* : Set[Variable] */; short int var4 /* : Bool */; -short int var5 /* : Bool */; -val* var6 /* : Array[FlowContext] */; -val* var8 /* : Array[FlowContext] */; +val* var5 /* : Array[FlowContext] */; +val* var7 /* : Array[FlowContext] */; val* var_previous /* var previous: Array[FlowContext] */; -long var9 /* : Int */; -long var11 /* : Int */; -long var12 /* : Int */; +long var8 /* : Int */; +long var10 /* : Int */; +short int var11 /* : Bool */; short int var13 /* : Bool */; -short int var15 /* : Bool */; -short int var16 /* : Bool */; -long var17 /* : Int */; -long var19 /* : Int */; -long var20 /* : Int */; +long var14 /* : Int */; +long var16 /* : Int */; +short int var17 /* : Bool */; +short int var19 /* : Bool */; +val* var20 /* : nullable Object */; short int var21 /* : Bool */; -short int var23 /* : Bool */; -val* var24 /* : nullable Object */; -short int var25 /* : Bool */; -val* var26 /* : Array[FlowContext] */; -val* var28 /* : Array[FlowContext] */; +val* var22 /* : Array[FlowContext] */; +val* var24 /* : Array[FlowContext] */; val* var_ /* var : Array[FlowContext] */; -val* var29 /* : ArrayIterator[nullable Object] */; -val* var_30 /* var : ArrayIterator[FlowContext] */; -short int var31 /* : Bool */; -val* var32 /* : nullable Object */; +val* var25 /* : ArrayIterator[nullable Object] */; +val* var_26 /* var : ArrayIterator[FlowContext] */; +short int var27 /* : Bool */; +val* var28 /* : nullable Object */; val* var_p /* var p: FlowContext */; -short int var33 /* : Bool */; -short int var34 /* : Bool */; -short int var35 /* : Bool */; -val* var37 /* : Set[Variable] */; -val* var39 /* : Set[Variable] */; -short int var40 /* : Bool */; +short int var29 /* : Bool */; +short int var30 /* : Bool */; +val* var31 /* : Set[Variable] */; +val* var33 /* : Set[Variable] */; var_variable = p0; { { /* Inline local_var_init#FlowContext#set_vars (self) on */ @@ -484,121 +471,116 @@ var3 = self->attrs[COLOR_nit__local_var_init__FlowContext___set_vars].val; /* _s if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _set_vars"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 86); -show_backtrace(1); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; } } { -var4 = ((short int (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__abstract_collection__Collection__has]))(var1, var_variable) /* has on */; +var4 = ((short int(*)(val* self, val* p0))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_standard__abstract_collection__Collection__has]))(var1, var_variable); /* has on */ } if (var4){ -var5 = 1; -var = var5; +var = 1; goto RET_LABEL; } else { } { { /* Inline flow#FlowContext#previous (self) on */ -var8 = self->attrs[COLOR_nit__flow__FlowContext___previous].val; /* _previous on */ -if (unlikely(var8 == NULL)) { +var7 = self->attrs[COLOR_nit__flow__FlowContext___previous].val; /* _previous on */ +if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow, 188); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow, 189); +fatal_exit(1); } -var6 = var8; -RET_LABEL7:(void)0; +var5 = var7; +RET_LABEL6:(void)0; } } -var_previous = var6; +var_previous = var5; { { /* Inline array#AbstractArrayRead#length (var_previous) on */ -var11 = var_previous->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var9 = var11; -RET_LABEL10:(void)0; +var10 = var_previous->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var8 = var10; +RET_LABEL9:(void)0; } } -var12 = 0; { -{ /* Inline kernel#Int#== (var9,var12) on */ -var15 = var9 == var12; -var13 = var15; -goto RET_LABEL14; -RET_LABEL14:(void)0; +{ /* Inline kernel#Int#== (var8,0l) on */ +var13 = var8 == 0l; +var11 = var13; +goto RET_LABEL12; +RET_LABEL12:(void)0; } } -if (var13){ -var16 = 0; -var = var16; +if (var11){ +var = 0; goto RET_LABEL; } else { } { { /* Inline array#AbstractArrayRead#length (var_previous) on */ -var19 = var_previous->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var17 = var19; -RET_LABEL18:(void)0; +var16 = var_previous->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var14 = var16; +RET_LABEL15:(void)0; } } -var20 = 1; { -{ /* Inline kernel#Int#== (var17,var20) on */ -var23 = var17 == var20; -var21 = var23; -goto RET_LABEL22; -RET_LABEL22:(void)0; +{ /* Inline kernel#Int#== (var14,1l) on */ +var19 = var14 == 1l; +var17 = var19; +goto RET_LABEL18; +RET_LABEL18:(void)0; } } -if (var21){ +if (var17){ { -var24 = standard___standard__SequenceRead___Collection__first(var_previous); +var20 = standard___standard__SequenceRead___Collection__first(var_previous); } { -var25 = nit__local_var_init___FlowContext___is_variable_set(var24, var_variable); +var21 = nit__local_var_init___FlowContext___is_variable_set(var20, var_variable); } -var = var25; +var = var21; goto RET_LABEL; } else { } { { /* Inline flow#FlowContext#previous (self) on */ -var28 = self->attrs[COLOR_nit__flow__FlowContext___previous].val; /* _previous on */ -if (unlikely(var28 == NULL)) { +var24 = self->attrs[COLOR_nit__flow__FlowContext___previous].val; /* _previous on */ +if (unlikely(var24 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow, 188); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow, 189); +fatal_exit(1); } -var26 = var28; -RET_LABEL27:(void)0; +var22 = var24; +RET_LABEL23:(void)0; } } -var_ = var26; +var_ = var22; { -var29 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); +var25 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); } -var_30 = var29; +var_26 = var25; for(;;) { { -var31 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_30); +var27 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_26); } -if (var31){ +if (var27){ { -var32 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_30); +var28 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_26); } -var_p = var32; +var_p = var28; { -var33 = nit__local_var_init___FlowContext___is_variable_set(var_p, var_variable); +var29 = nit__local_var_init___FlowContext___is_variable_set(var_p, var_variable); } -var34 = !var33; -if (var34){ -var35 = 0; -var = var35; +var30 = !var29; +if (var30){ +var = 0; goto RET_LABEL; } else { } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_30); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_26); /* Direct call array#ArrayIterator#next on */ } } else { goto BREAK_label; @@ -606,27 +588,24 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_30) on */ -RET_LABEL36:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_26); /* Direct call array#ArrayIterator#finish on */ } { { /* Inline local_var_init#FlowContext#set_vars (self) on */ -var39 = self->attrs[COLOR_nit__local_var_init__FlowContext___set_vars].val; /* _set_vars on */ -if (unlikely(var39 == NULL)) { +var33 = self->attrs[COLOR_nit__local_var_init__FlowContext___set_vars].val; /* _set_vars on */ +if (unlikely(var33 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _set_vars"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__local_var_init, 86); -show_backtrace(1); +fatal_exit(1); } -var37 = var39; -RET_LABEL38:(void)0; +var31 = var33; +RET_LABEL32:(void)0; } } { -((void (*)(val* self, val* p0))(var37->class->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(var37, var_variable) /* add on */; +((void(*)(val* self, val* p0))((((long)var31&3)?class_info[((long)var31&3)]:var31->class)->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(var31, var_variable); /* add on */ } -var40 = 1; -var = var40; +var = 1; goto RET_LABEL; RET_LABEL:; return var; @@ -636,7 +615,7 @@ void nit__local_var_init___ANode___accept_local_var_visitor(val* self, val* p0) val* var_v /* var v: LocalVarInitVisitor */; var_v = p0; { -((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__parser_nodes__ANode__visit_all]))(self, var_v) /* visit_all on */; +((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__parser_nodes__ANode__visit_all]))(self, var_v); /* visit_all on */ } RET_LABEL:; } @@ -645,17 +624,16 @@ void nit__local_var_init___AVardeclExpr___ANode__accept_local_var_visitor(val* s val* var_v /* var v: LocalVarInitVisitor */; val* var /* : nullable AExpr */; val* var2 /* : nullable AExpr */; -val* var3 /* : null */; +short int var3 /* : Bool */; short int var4 /* : Bool */; -short int var5 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var7 /* : Bool */; -short int var9 /* : Bool */; -val* var10 /* : nullable Variable */; -val* var12 /* : nullable Variable */; +short int var6 /* : Bool */; +short int var8 /* : Bool */; +val* var9 /* : nullable Variable */; +val* var11 /* : nullable Variable */; var_v = p0; { -((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__local_var_init___AVardeclExpr___ANode__accept_local_var_visitor]))(self, p0) /* accept_local_var_visitor on */; +((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__local_var_init___AVardeclExpr___ANode__accept_local_var_visitor]))(self, p0); /* accept_local_var_visitor on */ } { { /* Inline parser_nodes#AVardeclExpr#n_expr (self) on */ @@ -664,39 +642,38 @@ var = var2; RET_LABEL1:(void)0; } } -var3 = NULL; if (var == NULL) { -var4 = 1; /* is null */ +var3 = 1; /* is null */ } else { -var4 = 0; /* arg is null but recv is not */ +var3 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var,var3) on */ -var_other = var3; +{ /* Inline kernel#Object#== (var,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var,var_other) on */ -var9 = var == var_other; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +var8 = var == var_other; +var6 = var8; +goto RET_LABEL7; +RET_LABEL7:(void)0; } } -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; +var4 = var6; +goto RET_LABEL5; +RET_LABEL5:(void)0; } -var4 = var5; +var3 = var4; } -if (var4){ +if (var3){ { { /* Inline scope#AVardeclExpr#variable (self) on */ -var12 = self->attrs[COLOR_nit__scope__AVardeclExpr___variable].val; /* _variable on */ -var10 = var12; -RET_LABEL11:(void)0; +var11 = self->attrs[COLOR_nit__scope__AVardeclExpr___variable].val; /* _variable on */ +var9 = var11; +RET_LABEL10:(void)0; } } { -nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___mark_is_unset(var_v, self, var10); /* Direct call local_var_init#LocalVarInitVisitor#mark_is_unset on */ +nit__local_var_init___nit__local_var_init__LocalVarInitVisitor___mark_is_unset(var_v, self, var9); /* Direct call local_var_init#LocalVarInitVisitor#mark_is_unset on */ } } else { } @@ -709,7 +686,7 @@ val* var /* : nullable Variable */; val* var2 /* : nullable Variable */; var_v = p0; { -((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__local_var_init___AVarExpr___ANode__accept_local_var_visitor]))(self, p0) /* accept_local_var_visitor on */; +((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__local_var_init___AVarExpr___ANode__accept_local_var_visitor]))(self, p0); /* accept_local_var_visitor on */ } { { /* Inline scope#AVarFormExpr#variable (self) on */ @@ -730,7 +707,7 @@ val* var /* : nullable Variable */; val* var2 /* : nullable Variable */; var_v = p0; { -((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__local_var_init___AVarAssignExpr___ANode__accept_local_var_visitor]))(self, p0) /* accept_local_var_visitor on */; +((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__local_var_init___AVarAssignExpr___ANode__accept_local_var_visitor]))(self, p0); /* accept_local_var_visitor on */ } { { /* Inline scope#AVarFormExpr#variable (self) on */ @@ -751,7 +728,7 @@ val* var /* : nullable Variable */; val* var2 /* : nullable Variable */; var_v = p0; { -((void (*)(val* self, val* p0))(self->class->vft[COLOR_nit__local_var_init___AVarReassignExpr___ANode__accept_local_var_visitor]))(self, p0) /* accept_local_var_visitor on */; +((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__local_var_init___AVarReassignExpr___ANode__accept_local_var_visitor]))(self, p0); /* accept_local_var_visitor on */ } { { /* Inline scope#AVarFormExpr#variable (self) on */