X-Git-Url: http://nitlanguage.org diff --git a/c_src/coloring.sep.1.c b/c_src/coloring.sep.1.c index 8a3d1b7..d8723db 100644 --- a/c_src/coloring.sep.1.c +++ b/c_src/coloring.sep.1.c @@ -6,7 +6,7 @@ val* var1 /* : HashSet[Object] */; var1 = self->attrs[COLOR_coloring__POSetConflictGraph___core].val; /* _core on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 22); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 22); show_backtrace(1); } var = var1; @@ -22,7 +22,7 @@ val* var3 /* : HashSet[Object] */; var3 = self->attrs[COLOR_coloring__POSetConflictGraph___core].val; /* _core on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 22); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 22); show_backtrace(1); } var1 = var3; @@ -39,7 +39,7 @@ val* var1 /* : HashSet[Object] */; var1 = self->attrs[COLOR_coloring__POSetConflictGraph___border].val; /* _border on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 28); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 28); show_backtrace(1); } var = var1; @@ -55,7 +55,7 @@ val* var3 /* : HashSet[Object] */; var3 = self->attrs[COLOR_coloring__POSetConflictGraph___border].val; /* _border on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 28); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 28); show_backtrace(1); } var1 = var3; @@ -72,7 +72,7 @@ val* var1 /* : HashSet[Object] */; var1 = self->attrs[COLOR_coloring__POSetConflictGraph___crown].val; /* _crown on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 34); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 34); show_backtrace(1); } var = var1; @@ -88,7 +88,7 @@ val* var3 /* : HashSet[Object] */; var3 = self->attrs[COLOR_coloring__POSetConflictGraph___crown].val; /* _crown on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 34); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 34); show_backtrace(1); } var1 = var3; @@ -105,7 +105,7 @@ val* var1 /* : HashMap[Object, Set[Object]] */; var1 = self->attrs[COLOR_coloring__POSetConflictGraph___conflicts].val; /* _conflicts on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40); show_backtrace(1); } var = var1; @@ -121,7 +121,7 @@ val* var3 /* : HashMap[Object, Set[Object]] */; var3 = self->attrs[COLOR_coloring__POSetConflictGraph___conflicts].val; /* _conflicts on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40); show_backtrace(1); } var1 = var3; @@ -138,7 +138,7 @@ val* var1 /* : POSet[Object] */; var1 = self->attrs[COLOR_coloring__POSetConflictGraph___poset].val; /* _poset on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 48); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48); show_backtrace(1); } var = var1; @@ -154,7 +154,7 @@ val* var3 /* : POSet[Object] */; var3 = self->attrs[COLOR_coloring__POSetConflictGraph___poset].val; /* _poset on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 48); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48); show_backtrace(1); } var1 = var3; @@ -171,8 +171,8 @@ int cltype; int idtype; const struct type* type_struct; const char* var_class_name; -/* Covariant cast for argument 0 (poset) isa POSet[POSetConflictGraph#0] */ -/* isa POSet[POSetConflictGraph#0] */ +/* Covariant cast for argument 0 (poset) isa POSet[E] */ +/* isa POSet[E] */ type_struct = self->type->resolution_table->types[COLOR_poset__POSetcoloring__POSetConflictGraph_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -183,8 +183,8 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetConflictGraph#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 48); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48); show_backtrace(1); } self->attrs[COLOR_coloring__POSetConflictGraph___poset].val = p0; /* _poset on */ @@ -198,8 +198,8 @@ int idtype; const struct type* type_struct; const char* var_class_name; { /* Inline coloring#POSetConflictGraph#poset= (self,p0) on */ -/* Covariant cast for argument 0 (poset) isa POSet[POSetConflictGraph#0] */ -/* isa POSet[POSetConflictGraph#0] */ +/* Covariant cast for argument 0 (poset) isa POSet[E] */ +/* isa POSet[E] */ type_struct = self->type->resolution_table->types[COLOR_poset__POSetcoloring__POSetConflictGraph_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -210,8 +210,8 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetConflictGraph#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 48); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48); show_backtrace(1); } self->attrs[COLOR_coloring__POSetConflictGraph___poset].val = p0; /* _poset on */ @@ -232,8 +232,8 @@ int cltype3; int idtype4; const struct type* type_struct5; const char* var_class_name6; -/* Covariant cast for argument 0 (poset) isa POSet[POSetConflictGraph#0] */ -/* isa POSet[POSetConflictGraph#0] */ +/* Covariant cast for argument 0 (poset) isa POSet[E] */ +/* isa POSet[E] */ type_struct = self->type->resolution_table->types[COLOR_poset__POSetcoloring__POSetConflictGraph_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -244,15 +244,15 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetConflictGraph#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 50); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 50); show_backtrace(1); } var_poset = p0; { { /* Inline coloring#POSetConflictGraph#poset= (self,var_poset) on */ -/* Covariant cast for argument 0 (poset) isa POSet[POSetConflictGraph#0] */ -/* isa POSet[POSetConflictGraph#0] */ +/* Covariant cast for argument 0 (poset) isa POSet[E] */ +/* isa POSet[E] */ type_struct5 = self->type->resolution_table->types[COLOR_poset__POSetcoloring__POSetConflictGraph_FT0]; cltype3 = type_struct5->color; idtype4 = type_struct5->id; @@ -263,8 +263,8 @@ var2 = var_poset->type->type_table[cltype3] == idtype4; } if (unlikely(!var2)) { var_class_name6 = var_poset == NULL ? "null" : var_poset->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetConflictGraph#0]", var_class_name6); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 48); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name6); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48); show_backtrace(1); } self->attrs[COLOR_coloring__POSetConflictGraph___poset].val = var_poset; /* _poset on */ @@ -296,34 +296,36 @@ val* var /* : HashSet[Object] */; val* var2 /* : HashSet[Object] */; val* var3 /* : POSet[Object] */; val* var5 /* : POSet[Object] */; +val* var_ /* var : POSet[Object] */; val* var6 /* : Iterator[Object] */; -short int var7 /* : Bool */; -val* var8 /* : nullable Object */; +val* var_7 /* var : Iterator[Object] */; +short int var8 /* : Bool */; +val* var9 /* : nullable Object */; val* var_e /* var e: Object */; -val* var9 /* : POSet[Object] */; -val* var11 /* : POSet[Object] */; -val* var12 /* : POSetElement[Object] */; -val* var13 /* : Collection[Object] */; -long var14 /* : Int */; +val* var10 /* : POSet[Object] */; +val* var12 /* : POSet[Object] */; +val* var13 /* : POSetElement[Object] */; +val* var14 /* : Collection[Object] */; long var15 /* : Int */; -short int var16 /* : Bool */; -short int var18 /* : Bool */; +long var16 /* : Int */; +short int var17 /* : Bool */; +short int var19 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var19 /* : Bool */; -val* var20 /* : HashSet[Object] */; -val* var22 /* : HashSet[Object] */; -val* var23 /* : POSet[Object] */; -val* var25 /* : POSet[Object] */; -val* var26 /* : POSetElement[Object] */; -val* var27 /* : Collection[Object] */; +short int var20 /* : Bool */; +val* var21 /* : HashSet[Object] */; +val* var23 /* : HashSet[Object] */; +val* var24 /* : POSet[Object] */; +val* var26 /* : POSet[Object] */; +val* var27 /* : POSetElement[Object] */; +val* var28 /* : Collection[Object] */; { { /* Inline coloring#POSetConflictGraph#core (self) on */ var2 = self->attrs[COLOR_coloring__POSetConflictGraph___core].val; /* _core on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 22); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 22); show_backtrace(1); } var = var2; @@ -338,106 +340,115 @@ hash_collection__HashSet__clear(var); /* Direct call hash_collection#HashSet#cle var5 = self->attrs[COLOR_coloring__POSetConflictGraph___poset].val; /* _poset on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 48); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48); show_backtrace(1); } var3 = var5; RET_LABEL4:(void)0; } } +var_ = var3; { -var6 = poset__POSet__iterator(var3); +var6 = poset__POSet__iterator(var_); } +var_7 = var6; for(;;) { { -var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on */; +var8 = ((short int (*)(val*))(var_7->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_7) /* is_ok on */; } -if(!var7) break; +if (var8){ { -var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on */; +var9 = ((val* (*)(val*))(var_7->class->vft[COLOR_abstract_collection__Iterator__item]))(var_7) /* item on */; } -var_e = var8; +var_e = var9; { { /* Inline coloring#POSetConflictGraph#poset (self) on */ -var11 = self->attrs[COLOR_coloring__POSetConflictGraph___poset].val; /* _poset on */ -if (unlikely(var11 == NULL)) { +var12 = self->attrs[COLOR_coloring__POSetConflictGraph___poset].val; /* _poset on */ +if (unlikely(var12 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 48); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48); show_backtrace(1); } -var9 = var11; -RET_LABEL10:(void)0; +var10 = var12; +RET_LABEL11:(void)0; } } { -var12 = poset__POSet___91d_93d(var9, var_e); +var13 = poset__POSet___91d_93d(var10, var_e); } { -var13 = poset__POSetElement__direct_greaters(var12); +var14 = poset__POSetElement__direct_greaters(var13); } { -var14 = ((long (*)(val*))(var13->class->vft[COLOR_abstract_collection__Collection__length]))(var13) /* length on */; +var15 = ((long (*)(val*))(var14->class->vft[COLOR_abstract_collection__Collection__length]))(var14) /* length on */; } -var15 = 1; +var16 = 1; { -{ /* Inline kernel#Int#> (var14,var15) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var18 = 1; /* easy isa OTHER*/ -if (unlikely(!var18)) { +{ /* Inline kernel#Int#> (var15,var16) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var19 = 1; /* easy isa OTHER*/ +if (unlikely(!var19)) { var_class_name = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); show_backtrace(1); } -var19 = var14 > var15; -var16 = var19; -goto RET_LABEL17; -RET_LABEL17:(void)0; +var20 = var15 > var16; +var17 = var20; +goto RET_LABEL18; +RET_LABEL18:(void)0; } } -if (var16){ +if (var17){ { { /* Inline coloring#POSetConflictGraph#core (self) on */ -var22 = self->attrs[COLOR_coloring__POSetConflictGraph___core].val; /* _core on */ -if (unlikely(var22 == NULL)) { +var23 = self->attrs[COLOR_coloring__POSetConflictGraph___core].val; /* _core on */ +if (unlikely(var23 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 22); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 22); show_backtrace(1); } -var20 = var22; -RET_LABEL21:(void)0; +var21 = var23; +RET_LABEL22:(void)0; } } { { /* Inline coloring#POSetConflictGraph#poset (self) on */ -var25 = self->attrs[COLOR_coloring__POSetConflictGraph___poset].val; /* _poset on */ -if (unlikely(var25 == NULL)) { +var26 = self->attrs[COLOR_coloring__POSetConflictGraph___poset].val; /* _poset on */ +if (unlikely(var26 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 48); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48); show_backtrace(1); } -var23 = var25; -RET_LABEL24:(void)0; +var24 = var26; +RET_LABEL25:(void)0; } } { -var26 = poset__POSet___91d_93d(var23, var_e); +var27 = poset__POSet___91d_93d(var24, var_e); } { -var27 = poset__POSetElement__greaters(var26); +var28 = poset__POSetElement__greaters(var27); } { -abstract_collection__SimpleCollection__add_all(var20, var27); /* Direct call abstract_collection#SimpleCollection#add_all on */ +abstract_collection__SimpleCollection__add_all(var21, var28); /* Direct call abstract_collection#SimpleCollection#add_all on */ } } else { } -CONTINUE_label: (void)0; { -((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on */; +((void (*)(val*))(var_7->class->vft[COLOR_abstract_collection__Iterator__next]))(var_7) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_7) on */ +RET_LABEL29:(void)0; +} +} RET_LABEL:; } /* method coloring#POSetConflictGraph#extract_core for (self: Object) */ @@ -451,28 +462,32 @@ val* var /* : HashSet[Object] */; val* var2 /* : HashSet[Object] */; val* var3 /* : HashSet[Object] */; val* var5 /* : HashSet[Object] */; +val* var_ /* var : HashSet[Object] */; val* var6 /* : Iterator[Object] */; -short int var7 /* : Bool */; -val* var8 /* : nullable Object */; +val* var_7 /* var : Iterator[Object] */; +short int var8 /* : Bool */; +val* var9 /* : nullable Object */; val* var_e /* var e: Object */; -short int var9 /* : Bool */; short int var10 /* : Bool */; -val* var11 /* : HashSet[Object] */; -val* var13 /* : HashSet[Object] */; +short int var11 /* : Bool */; +val* var12 /* : HashSet[Object] */; val* var14 /* : HashSet[Object] */; -val* var16 /* : HashSet[Object] */; -val* var17 /* : Iterator[Object] */; -short int var18 /* : Bool */; -val* var19 /* : nullable Object */; -val* var_e20 /* var e: Object */; -val* var21 /* : HashSet[Object] */; -val* var23 /* : HashSet[Object] */; +val* var17 /* : HashSet[Object] */; +val* var19 /* : HashSet[Object] */; +val* var_20 /* var : HashSet[Object] */; +val* var21 /* : Iterator[Object] */; +val* var_22 /* var : Iterator[Object] */; +short int var23 /* : Bool */; +val* var24 /* : nullable Object */; +val* var_e25 /* var e: Object */; +val* var26 /* : HashSet[Object] */; +val* var28 /* : HashSet[Object] */; { { /* Inline coloring#POSetConflictGraph#border (self) on */ var2 = self->attrs[COLOR_coloring__POSetConflictGraph___border].val; /* _border on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 28); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 28); show_backtrace(1); } var = var2; @@ -487,99 +502,118 @@ hash_collection__HashSet__clear(var); /* Direct call hash_collection#HashSet#cle var5 = self->attrs[COLOR_coloring__POSetConflictGraph___core].val; /* _core on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 22); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 22); show_backtrace(1); } var3 = var5; RET_LABEL4:(void)0; } } +var_ = var3; { -var6 = hash_collection__HashSet__iterator(var3); +var6 = hash_collection__HashSet__iterator(var_); } +var_7 = var6; for(;;) { { -var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on */; +var8 = ((short int (*)(val*))(var_7->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_7) /* is_ok on */; } -if(!var7) break; +if (var8){ { -var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on */; +var9 = ((val* (*)(val*))(var_7->class->vft[COLOR_abstract_collection__Iterator__item]))(var_7) /* item on */; } -var_e = var8; +var_e = var9; { -var9 = coloring__POSetConflictGraph__is_border(self, var_e); +var10 = coloring__POSetConflictGraph__is_border(self, var_e); } -var10 = !var9; -if (var10){ -goto CONTINUE_label; +var11 = !var10; +if (var11){ +goto BREAK_label; } else { } { { /* Inline coloring#POSetConflictGraph#border (self) on */ -var13 = self->attrs[COLOR_coloring__POSetConflictGraph___border].val; /* _border on */ -if (unlikely(var13 == NULL)) { +var14 = self->attrs[COLOR_coloring__POSetConflictGraph___border].val; /* _border on */ +if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 28); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 28); show_backtrace(1); } -var11 = var13; -RET_LABEL12:(void)0; +var12 = var14; +RET_LABEL13:(void)0; } } { -hash_collection__HashSet__add(var11, var_e); /* Direct call hash_collection#HashSet#add on */ +hash_collection__HashSet__add(var12, var_e); /* Direct call hash_collection#HashSet#add on */ +} +BREAK_label: (void)0; +{ +((void (*)(val*))(var_7->class->vft[COLOR_abstract_collection__Iterator__next]))(var_7) /* next on */; +} +} else { +goto BREAK_label15; +} } -CONTINUE_label: (void)0; +BREAK_label15: (void)0; { -((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on */; +{ /* Inline abstract_collection#Iterator#finish (var_7) on */ +RET_LABEL16:(void)0; } } -BREAK_label: (void)0; { { /* Inline coloring#POSetConflictGraph#border (self) on */ -var16 = self->attrs[COLOR_coloring__POSetConflictGraph___border].val; /* _border on */ -if (unlikely(var16 == NULL)) { +var19 = self->attrs[COLOR_coloring__POSetConflictGraph___border].val; /* _border on */ +if (unlikely(var19 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 28); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 28); show_backtrace(1); } -var14 = var16; -RET_LABEL15:(void)0; +var17 = var19; +RET_LABEL18:(void)0; } } +var_20 = var17; { -var17 = hash_collection__HashSet__iterator(var14); +var21 = hash_collection__HashSet__iterator(var_20); } +var_22 = var21; for(;;) { { -var18 = ((short int (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var17) /* is_ok on */; +var23 = ((short int (*)(val*))(var_22->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_22) /* is_ok on */; } -if(!var18) break; +if (var23){ { -var19 = ((val* (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__item]))(var17) /* item on */; +var24 = ((val* (*)(val*))(var_22->class->vft[COLOR_abstract_collection__Iterator__item]))(var_22) /* item on */; } -var_e20 = var19; +var_e25 = var24; { { /* Inline coloring#POSetConflictGraph#core (self) on */ -var23 = self->attrs[COLOR_coloring__POSetConflictGraph___core].val; /* _core on */ -if (unlikely(var23 == NULL)) { +var28 = self->attrs[COLOR_coloring__POSetConflictGraph___core].val; /* _core on */ +if (unlikely(var28 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 22); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 22); show_backtrace(1); } -var21 = var23; -RET_LABEL22:(void)0; +var26 = var28; +RET_LABEL27:(void)0; } } { -hash_collection__HashSet__remove(var21, var_e20); /* Direct call hash_collection#HashSet#remove on */ +hash_collection__HashSet__remove(var26, var_e25); /* Direct call hash_collection#HashSet#remove on */ +} +{ +((void (*)(val*))(var_22->class->vft[COLOR_abstract_collection__Iterator__next]))(var_22) /* next on */; } -CONTINUE_label24: (void)0; +} else { +goto BREAK_label29; +} +} +BREAK_label29: (void)0; { -((void (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__next]))(var17) /* next on */; +{ /* Inline abstract_collection#Iterator#finish (var_22) on */ +RET_LABEL30:(void)0; } } -BREAK_label24: (void)0; RET_LABEL:; } /* method coloring#POSetConflictGraph#extract_border for (self: Object) */ @@ -600,17 +634,19 @@ val* var2 /* : POSet[Object] */; val* var4 /* : POSet[Object] */; val* var5 /* : POSetElement[Object] */; val* var6 /* : Collection[Object] */; +val* var_ /* var : Collection[Object] */; val* var7 /* : Iterator[nullable Object] */; -short int var8 /* : Bool */; -val* var9 /* : nullable Object */; +val* var_8 /* var : Iterator[Object] */; +short int var9 /* : Bool */; +val* var10 /* : nullable Object */; val* var_child /* var child: Object */; -val* var10 /* : HashSet[Object] */; -val* var12 /* : HashSet[Object] */; -short int var13 /* : Bool */; +val* var11 /* : HashSet[Object] */; +val* var13 /* : HashSet[Object] */; short int var14 /* : Bool */; short int var15 /* : Bool */; -/* Covariant cast for argument 0 (e) isa POSetConflictGraph#0 */ -/* isa POSetConflictGraph#0 */ +short int var17 /* : Bool */; +/* Covariant cast for argument 0 (e) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_coloring__POSetConflictGraph_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -621,8 +657,8 @@ var1 = p0->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 79); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 79); show_backtrace(1); } var_e = p0; @@ -631,7 +667,7 @@ var_e = p0; var4 = self->attrs[COLOR_coloring__POSetConflictGraph___poset].val; /* _poset on */ if (unlikely(var4 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 48); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48); show_backtrace(1); } var2 = var4; @@ -644,47 +680,56 @@ var5 = poset__POSet___91d_93d(var2, var_e); { var6 = poset__POSetElement__direct_smallers(var5); } +var_ = var6; { -var7 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Collection__iterator]))(var6) /* iterator on */; +var7 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_8 = var7; for(;;) { { -var8 = ((short int (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var7) /* is_ok on */; +var9 = ((short int (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_8) /* is_ok on */; } -if(!var8) break; +if (var9){ { -var9 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__item]))(var7) /* item on */; +var10 = ((val* (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Iterator__item]))(var_8) /* item on */; } -var_child = var9; +var_child = var10; { { /* Inline coloring#POSetConflictGraph#core (self) on */ -var12 = self->attrs[COLOR_coloring__POSetConflictGraph___core].val; /* _core on */ -if (unlikely(var12 == NULL)) { +var13 = self->attrs[COLOR_coloring__POSetConflictGraph___core].val; /* _core on */ +if (unlikely(var13 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 22); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 22); show_backtrace(1); } -var10 = var12; -RET_LABEL11:(void)0; +var11 = var13; +RET_LABEL12:(void)0; } } { -var13 = hash_collection__HashSet__has(var10, var_child); +var14 = hash_collection__HashSet__has(var11, var_child); } -if (var13){ -var14 = 0; -var = var14; +if (var14){ +var15 = 0; +var = var15; goto RET_LABEL; } else { } -CONTINUE_label: (void)0; { -((void (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__next]))(var7) /* next on */; +((void (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Iterator__next]))(var_8) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; -var15 = 1; -var = var15; +{ +{ /* Inline abstract_collection#Iterator#finish (var_8) on */ +RET_LABEL16:(void)0; +} +} +var17 = 1; +var = var17; goto RET_LABEL; RET_LABEL:; return var; @@ -704,28 +749,30 @@ val* var /* : HashSet[Object] */; val* var2 /* : HashSet[Object] */; val* var3 /* : POSet[Object] */; val* var5 /* : POSet[Object] */; +val* var_ /* var : POSet[Object] */; val* var6 /* : Iterator[Object] */; -short int var7 /* : Bool */; -val* var8 /* : nullable Object */; +val* var_7 /* var : Iterator[Object] */; +short int var8 /* : Bool */; +val* var9 /* : nullable Object */; val* var_e /* var e: Object */; -short int var9 /* : Bool */; -val* var10 /* : HashSet[Object] */; -val* var12 /* : HashSet[Object] */; -short int var13 /* : Bool */; +short int var10 /* : Bool */; +val* var11 /* : HashSet[Object] */; +val* var13 /* : HashSet[Object] */; short int var14 /* : Bool */; -short int var_ /* var : Bool */; -val* var15 /* : HashSet[Object] */; +short int var15 /* : Bool */; +short int var_16 /* var : Bool */; val* var17 /* : HashSet[Object] */; -short int var18 /* : Bool */; -short int var19 /* : Bool */; -val* var20 /* : HashSet[Object] */; +val* var19 /* : HashSet[Object] */; +short int var20 /* : Bool */; +short int var21 /* : Bool */; val* var22 /* : HashSet[Object] */; +val* var24 /* : HashSet[Object] */; { { /* Inline coloring#POSetConflictGraph#crown (self) on */ var2 = self->attrs[COLOR_coloring__POSetConflictGraph___crown].val; /* _crown on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 34); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 34); show_backtrace(1); } var = var2; @@ -740,87 +787,96 @@ hash_collection__HashSet__clear(var); /* Direct call hash_collection#HashSet#cle var5 = self->attrs[COLOR_coloring__POSetConflictGraph___poset].val; /* _poset on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 48); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48); show_backtrace(1); } var3 = var5; RET_LABEL4:(void)0; } } +var_ = var3; { -var6 = poset__POSet__iterator(var3); +var6 = poset__POSet__iterator(var_); } +var_7 = var6; for(;;) { { -var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on */; +var8 = ((short int (*)(val*))(var_7->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_7) /* is_ok on */; } -if(!var7) break; +if (var8){ { -var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on */; +var9 = ((val* (*)(val*))(var_7->class->vft[COLOR_abstract_collection__Iterator__item]))(var_7) /* item on */; } -var_e = var8; +var_e = var9; { { /* Inline coloring#POSetConflictGraph#core (self) on */ -var12 = self->attrs[COLOR_coloring__POSetConflictGraph___core].val; /* _core on */ -if (unlikely(var12 == NULL)) { +var13 = self->attrs[COLOR_coloring__POSetConflictGraph___core].val; /* _core on */ +if (unlikely(var13 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 22); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 22); show_backtrace(1); } -var10 = var12; -RET_LABEL11:(void)0; +var11 = var13; +RET_LABEL12:(void)0; } } { -var13 = hash_collection__HashSet__has(var10, var_e); +var14 = hash_collection__HashSet__has(var11, var_e); } -var14 = !var13; -var_ = var14; -if (var14){ +var15 = !var14; +var_16 = var15; +if (var15){ { { /* Inline coloring#POSetConflictGraph#border (self) on */ -var17 = self->attrs[COLOR_coloring__POSetConflictGraph___border].val; /* _border on */ -if (unlikely(var17 == NULL)) { +var19 = self->attrs[COLOR_coloring__POSetConflictGraph___border].val; /* _border on */ +if (unlikely(var19 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 28); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 28); show_backtrace(1); } -var15 = var17; -RET_LABEL16:(void)0; +var17 = var19; +RET_LABEL18:(void)0; } } { -var18 = hash_collection__HashSet__has(var15, var_e); +var20 = hash_collection__HashSet__has(var17, var_e); } -var19 = !var18; -var9 = var19; +var21 = !var20; +var10 = var21; } else { -var9 = var_; +var10 = var_16; } -if (var9){ +if (var10){ { { /* Inline coloring#POSetConflictGraph#crown (self) on */ -var22 = self->attrs[COLOR_coloring__POSetConflictGraph___crown].val; /* _crown on */ -if (unlikely(var22 == NULL)) { +var24 = self->attrs[COLOR_coloring__POSetConflictGraph___crown].val; /* _crown on */ +if (unlikely(var24 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 34); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 34); show_backtrace(1); } -var20 = var22; -RET_LABEL21:(void)0; +var22 = var24; +RET_LABEL23:(void)0; } } { -hash_collection__HashSet__add(var20, var_e); /* Direct call hash_collection#HashSet#add on */ +hash_collection__HashSet__add(var22, var_e); /* Direct call hash_collection#HashSet#add on */ } } else { } -CONTINUE_label: (void)0; { -((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on */; +((void (*)(val*))(var_7->class->vft[COLOR_abstract_collection__Iterator__next]))(var_7) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_7) on */ +RET_LABEL25:(void)0; +} +} RET_LABEL:; } /* method coloring#POSetConflictGraph#extract_crown for (self: Object) */ @@ -834,20 +890,22 @@ val* var /* : HashMap[Object, Set[Object]] */; val* var2 /* : HashMap[Object, Set[Object]] */; val* var3 /* : HashSet[Object] */; val* var5 /* : HashSet[Object] */; +val* var_ /* var : HashSet[Object] */; val* var6 /* : Iterator[Object] */; -short int var7 /* : Bool */; -val* var8 /* : nullable Object */; +val* var_7 /* var : Iterator[Object] */; +short int var8 /* : Bool */; +val* var9 /* : nullable Object */; val* var_e /* var e: Object */; -val* var9 /* : POSet[Object] */; -val* var11 /* : POSet[Object] */; -val* var12 /* : POSetElement[Object] */; -val* var13 /* : Collection[Object] */; +val* var10 /* : POSet[Object] */; +val* var12 /* : POSet[Object] */; +val* var13 /* : POSetElement[Object] */; +val* var14 /* : Collection[Object] */; { { /* Inline coloring#POSetConflictGraph#conflicts (self) on */ var2 = self->attrs[COLOR_coloring__POSetConflictGraph___conflicts].val; /* _conflicts on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40); show_backtrace(1); } var = var2; @@ -862,52 +920,61 @@ hash_collection__HashMap__clear(var); /* Direct call hash_collection#HashMap#cle var5 = self->attrs[COLOR_coloring__POSetConflictGraph___border].val; /* _border on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 28); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 28); show_backtrace(1); } var3 = var5; RET_LABEL4:(void)0; } } +var_ = var3; { -var6 = hash_collection__HashSet__iterator(var3); +var6 = hash_collection__HashSet__iterator(var_); } +var_7 = var6; for(;;) { { -var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on */; +var8 = ((short int (*)(val*))(var_7->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_7) /* is_ok on */; } -if(!var7) break; +if (var8){ { -var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on */; +var9 = ((val* (*)(val*))(var_7->class->vft[COLOR_abstract_collection__Iterator__item]))(var_7) /* item on */; } -var_e = var8; +var_e = var9; { { /* Inline coloring#POSetConflictGraph#poset (self) on */ -var11 = self->attrs[COLOR_coloring__POSetConflictGraph___poset].val; /* _poset on */ -if (unlikely(var11 == NULL)) { +var12 = self->attrs[COLOR_coloring__POSetConflictGraph___poset].val; /* _poset on */ +if (unlikely(var12 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 48); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 48); show_backtrace(1); } -var9 = var11; -RET_LABEL10:(void)0; +var10 = var12; +RET_LABEL11:(void)0; } } { -var12 = poset__POSet___91d_93d(var9, var_e); +var13 = poset__POSet___91d_93d(var10, var_e); } { -var13 = poset__POSetElement__greaters(var12); +var14 = poset__POSetElement__greaters(var13); } { -coloring__POSetConflictGraph__add_conflicts(self, var13); /* Direct call coloring#POSetConflictGraph#add_conflicts on */ +coloring__POSetConflictGraph__add_conflicts(self, var14); /* Direct call coloring#POSetConflictGraph#add_conflicts on */ } -CONTINUE_label: (void)0; { -((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on */; +((void (*)(val*))(var_7->class->vft[COLOR_abstract_collection__Iterator__next]))(var_7) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_7) on */ +RET_LABEL15:(void)0; +} +} RET_LABEL:; } /* method coloring#POSetConflictGraph#compute_conflicts for (self: Object) */ @@ -949,8 +1016,8 @@ val* var27 /* : nullable Object */; val* var28 /* : HashMap[Object, Set[Object]] */; val* var30 /* : HashMap[Object, Set[Object]] */; val* var31 /* : nullable Object */; -/* Covariant cast for argument 0 (e) isa POSetConflictGraph#0 */ -/* isa POSetConflictGraph#0 */ +/* Covariant cast for argument 0 (e) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_coloring__POSetConflictGraph_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -961,12 +1028,12 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 101); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 101); show_backtrace(1); } -/* Covariant cast for argument 1 (o) isa POSetConflictGraph#0 */ -/* isa POSetConflictGraph#0 */ +/* Covariant cast for argument 1 (o) isa E */ +/* isa E */ type_struct4 = self->type->resolution_table->types[COLOR_coloring__POSetConflictGraph_FT0]; cltype2 = type_struct4->color; idtype3 = type_struct4->id; @@ -977,8 +1044,8 @@ var1 = p1->type->type_table[cltype2] == idtype3; } if (unlikely(!var1)) { var_class_name5 = p1 == NULL ? "null" : p1->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph#0", var_class_name5); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 101); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name5); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 101); show_backtrace(1); } var_e = p0; @@ -988,7 +1055,7 @@ var_o = p1; var8 = self->attrs[COLOR_coloring__POSetConflictGraph___conflicts].val; /* _conflicts on */ if (unlikely(var8 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40); show_backtrace(1); } var6 = var8; @@ -1005,7 +1072,7 @@ if (var10){ var13 = self->attrs[COLOR_coloring__POSetConflictGraph___conflicts].val; /* _conflicts on */ if (unlikely(var13 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40); show_backtrace(1); } var11 = var13; @@ -1014,7 +1081,7 @@ RET_LABEL12:(void)0; } var14 = NEW_hash_collection__HashSet(self->type->resolution_table->types[COLOR_hash_collection__HashSetcoloring__POSetConflictGraph_FT0]); { -hash_collection__HashSet__init(var14); /* Direct call hash_collection#HashSet#init on */ +((void (*)(val*))(var14->class->vft[COLOR_kernel__Object__init]))(var14) /* init on */; } { hash_collection__HashMap___91d_93d_61d(var11, var_e, var14); /* Direct call hash_collection#HashMap#[]= on */ @@ -1026,7 +1093,7 @@ hash_collection__HashMap___91d_93d_61d(var11, var_e, var14); /* Direct call hash var17 = self->attrs[COLOR_coloring__POSetConflictGraph___conflicts].val; /* _conflicts on */ if (unlikely(var17 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40); show_backtrace(1); } var15 = var17; @@ -1043,7 +1110,7 @@ if (var19){ var22 = self->attrs[COLOR_coloring__POSetConflictGraph___conflicts].val; /* _conflicts on */ if (unlikely(var22 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40); show_backtrace(1); } var20 = var22; @@ -1052,7 +1119,7 @@ RET_LABEL21:(void)0; } var23 = NEW_hash_collection__HashSet(self->type->resolution_table->types[COLOR_hash_collection__HashSetcoloring__POSetConflictGraph_FT0]); { -hash_collection__HashSet__init(var23); /* Direct call hash_collection#HashSet#init on */ +((void (*)(val*))(var23->class->vft[COLOR_kernel__Object__init]))(var23) /* init on */; } { hash_collection__HashMap___91d_93d_61d(var20, var_o, var23); /* Direct call hash_collection#HashMap#[]= on */ @@ -1064,7 +1131,7 @@ hash_collection__HashMap___91d_93d_61d(var20, var_o, var23); /* Direct call hash var26 = self->attrs[COLOR_coloring__POSetConflictGraph___conflicts].val; /* _conflicts on */ if (unlikely(var26 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40); show_backtrace(1); } var24 = var26; @@ -1082,7 +1149,7 @@ var27 = hash_collection__HashMap___91d_93d(var24, var_e); var30 = self->attrs[COLOR_coloring__POSetConflictGraph___conflicts].val; /* _conflicts on */ if (unlikely(var30 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40); show_backtrace(1); } var28 = var30; @@ -1110,16 +1177,20 @@ int idtype; const struct type* type_struct; const char* var_class_name; val* var_es /* var es: Collection[Object] */; +val* var_ /* var : Collection[Object] */; val* var1 /* : Iterator[nullable Object] */; -short int var2 /* : Bool */; -val* var3 /* : nullable Object */; +val* var_2 /* var : Iterator[Object] */; +short int var3 /* : Bool */; +val* var4 /* : nullable Object */; val* var_e1 /* var e1: Object */; -val* var4 /* : Iterator[nullable Object] */; -short int var5 /* : Bool */; -val* var6 /* : nullable Object */; +val* var_5 /* var : Collection[Object] */; +val* var6 /* : Iterator[nullable Object] */; +val* var_7 /* var : Iterator[Object] */; +short int var8 /* : Bool */; +val* var9 /* : nullable Object */; val* var_e2 /* var e2: Object */; -/* Covariant cast for argument 0 (es) isa Collection[POSetConflictGraph#0] */ -/* isa Collection[POSetConflictGraph#0] */ +/* Covariant cast for argument 0 (es) isa Collection[E] */ +/* isa Collection[E] */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Collectioncoloring__POSetConflictGraph_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -1130,50 +1201,68 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[POSetConflictGraph#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 108); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 108); show_backtrace(1); } var_es = p0; +var_ = var_es; { -var1 = ((val* (*)(val*))(var_es->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_es) /* iterator on */; +var1 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_2 = var1; for(;;) { { -var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var1) /* is_ok on */; +var3 = ((short int (*)(val*))(var_2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_2) /* is_ok on */; } -if(!var2) break; +if (var3){ { -var3 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__item]))(var1) /* item on */; +var4 = ((val* (*)(val*))(var_2->class->vft[COLOR_abstract_collection__Iterator__item]))(var_2) /* item on */; } -var_e1 = var3; +var_e1 = var4; +var_5 = var_es; { -var4 = ((val* (*)(val*))(var_es->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_es) /* iterator on */; +var6 = ((val* (*)(val*))(var_5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_5) /* iterator on */; } +var_7 = var6; for(;;) { { -var5 = ((short int (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var4) /* is_ok on */; +var8 = ((short int (*)(val*))(var_7->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_7) /* is_ok on */; } -if(!var5) break; +if (var8){ { -var6 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__item]))(var4) /* item on */; +var9 = ((val* (*)(val*))(var_7->class->vft[COLOR_abstract_collection__Iterator__item]))(var_7) /* item on */; } -var_e2 = var6; +var_e2 = var9; { coloring__POSetConflictGraph__add_conflict(self, var_e1, var_e2); /* Direct call coloring#POSetConflictGraph#add_conflict on */ } -CONTINUE_label: (void)0; { -((void (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__next]))(var4) /* next on */; +((void (*)(val*))(var_7->class->vft[COLOR_abstract_collection__Iterator__next]))(var_7) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; -CONTINUE_label7: (void)0; { -((void (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__next]))(var1) /* next on */; +{ /* Inline abstract_collection#Iterator#finish (var_7) on */ +RET_LABEL10:(void)0; +} +} +{ +((void (*)(val*))(var_2->class->vft[COLOR_abstract_collection__Iterator__next]))(var_2) /* next on */; +} +} else { +goto BREAK_label11; +} +} +BREAK_label11: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_2) on */ +RET_LABEL12:(void)0; } } -BREAK_label7: (void)0; RET_LABEL:; } /* method coloring#POSetConflictGraph#add_conflicts for (self: Object, Collection[Object]) */ @@ -1233,7 +1322,7 @@ RET_LABEL2:(void)0; } if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 162); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 162); show_backtrace(1); } { @@ -1241,7 +1330,7 @@ show_backtrace(1); var6 = self->attrs[COLOR_coloring__POSetColorer___ids_cache].val; /* _ids_cache on */ if (unlikely(var6 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 165); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 165); show_backtrace(1); } var4 = var6; @@ -1269,7 +1358,7 @@ val* var1 /* : HashMap[Object, Int] */; var1 = self->attrs[COLOR_coloring__POSetColorer___ids_cache].val; /* _ids_cache on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 165); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 165); show_backtrace(1); } var = var1; @@ -1285,7 +1374,7 @@ val* var3 /* : HashMap[Object, Int] */; var3 = self->attrs[COLOR_coloring__POSetColorer___ids_cache].val; /* _ids_cache on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 165); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 165); show_backtrace(1); } var1 = var3; @@ -1311,7 +1400,7 @@ RET_LABEL2:(void)0; } if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 170); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 170); show_backtrace(1); } { @@ -1319,7 +1408,7 @@ show_backtrace(1); var6 = self->attrs[COLOR_coloring__POSetColorer___colors_cache].val; /* _colors_cache on */ if (unlikely(var6 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173); show_backtrace(1); } var4 = var6; @@ -1347,7 +1436,7 @@ val* var1 /* : HashMap[Object, Int] */; var1 = self->attrs[COLOR_coloring__POSetColorer___colors_cache].val; /* _colors_cache on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173); show_backtrace(1); } var = var1; @@ -1363,7 +1452,7 @@ val* var3 /* : HashMap[Object, Int] */; var3 = self->attrs[COLOR_coloring__POSetColorer___colors_cache].val; /* _colors_cache on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173); show_backtrace(1); } var1 = var3; @@ -1380,7 +1469,7 @@ val* var1 /* : POSet[Object] */; var1 = self->attrs[COLOR_coloring__POSetColorer___poset_cache].val; /* _poset_cache on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180); show_backtrace(1); } var = var1; @@ -1396,7 +1485,7 @@ val* var3 /* : POSet[Object] */; var3 = self->attrs[COLOR_coloring__POSetColorer___poset_cache].val; /* _poset_cache on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180); show_backtrace(1); } var1 = var3; @@ -1413,8 +1502,8 @@ int cltype; int idtype; const struct type* type_struct; const char* var_class_name; -/* Covariant cast for argument 0 (poset_cache) isa POSet[POSetColorer#0] */ -/* isa POSet[POSetColorer#0] */ +/* Covariant cast for argument 0 (poset_cache) isa POSet[E] */ +/* isa POSet[E] */ type_struct = self->type->resolution_table->types[COLOR_poset__POSetcoloring__POSetColorer_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -1425,8 +1514,8 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetColorer#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180); show_backtrace(1); } self->attrs[COLOR_coloring__POSetColorer___poset_cache].val = p0; /* _poset_cache on */ @@ -1440,8 +1529,8 @@ int idtype; const struct type* type_struct; const char* var_class_name; { /* Inline coloring#POSetColorer#poset_cache= (self,p0) on */ -/* Covariant cast for argument 0 (poset_cache) isa POSet[POSetColorer#0] */ -/* isa POSet[POSetColorer#0] */ +/* Covariant cast for argument 0 (poset_cache) isa POSet[E] */ +/* isa POSet[E] */ type_struct = self->type->resolution_table->types[COLOR_poset__POSetcoloring__POSetColorer_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -1452,8 +1541,8 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetColorer#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180); show_backtrace(1); } self->attrs[COLOR_coloring__POSetColorer___poset_cache].val = p0; /* _poset_cache on */ @@ -1477,7 +1566,7 @@ RET_LABEL2:(void)0; } if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 184); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 184); show_backtrace(1); } { @@ -1485,7 +1574,7 @@ show_backtrace(1); var6 = self->attrs[COLOR_coloring__POSetColorer___conflicts_cache].val; /* _conflicts_cache on */ if (unlikely(var6 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 187); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 187); show_backtrace(1); } var4 = var6; @@ -1513,7 +1602,7 @@ val* var1 /* : Map[Object, Set[Object]] */; var1 = self->attrs[COLOR_coloring__POSetColorer___conflicts_cache].val; /* _conflicts_cache on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 187); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 187); show_backtrace(1); } var = var1; @@ -1529,7 +1618,7 @@ val* var3 /* : Map[Object, Set[Object]] */; var3 = self->attrs[COLOR_coloring__POSetColorer___conflicts_cache].val; /* _conflicts_cache on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 187); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 187); show_backtrace(1); } var1 = var3; @@ -1546,8 +1635,8 @@ int cltype; int idtype; const struct type* type_struct; const char* var_class_name; -/* Covariant cast for argument 0 (conflicts_cache) isa Map[POSetColorer#0, Set[POSetColorer#0]] */ -/* isa Map[POSetColorer#0, Set[POSetColorer#0]] */ +/* Covariant cast for argument 0 (conflicts_cache) isa Map[E, Set[E]] */ +/* isa Map[E, Set[E]] */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Mapcoloring__POSetColorer_FT0abstract_collection__Setcoloring__POSetColorer_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -1558,8 +1647,8 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetColorer#0, Set[POSetColorer#0]]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 187); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[E, Set[E]]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 187); show_backtrace(1); } self->attrs[COLOR_coloring__POSetColorer___conflicts_cache].val = p0; /* _conflicts_cache on */ @@ -1573,8 +1662,8 @@ int idtype; const struct type* type_struct; const char* var_class_name; { /* Inline coloring#POSetColorer#conflicts_cache= (self,p0) on */ -/* Covariant cast for argument 0 (conflicts_cache) isa Map[POSetColorer#0, Set[POSetColorer#0]] */ -/* isa Map[POSetColorer#0, Set[POSetColorer#0]] */ +/* Covariant cast for argument 0 (conflicts_cache) isa Map[E, Set[E]] */ +/* isa Map[E, Set[E]] */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Mapcoloring__POSetColorer_FT0abstract_collection__Setcoloring__POSetColorer_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -1585,8 +1674,8 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetColorer#0, Set[POSetColorer#0]]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 187); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[E, Set[E]]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 187); show_backtrace(1); } self->attrs[COLOR_coloring__POSetColorer___conflicts_cache].val = p0; /* _conflicts_cache on */ @@ -1601,7 +1690,7 @@ val* var1 /* : POSetConflictGraph[Object] */; var1 = self->attrs[COLOR_coloring__POSetColorer___graph].val; /* _graph on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189); show_backtrace(1); } var = var1; @@ -1617,7 +1706,7 @@ val* var3 /* : POSetConflictGraph[Object] */; var3 = self->attrs[COLOR_coloring__POSetColorer___graph].val; /* _graph on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189); show_backtrace(1); } var1 = var3; @@ -1634,8 +1723,8 @@ int cltype; int idtype; const struct type* type_struct; const char* var_class_name; -/* Covariant cast for argument 0 (graph) isa POSetConflictGraph[POSetColorer#0] */ -/* isa POSetConflictGraph[POSetColorer#0] */ +/* Covariant cast for argument 0 (graph) isa POSetConflictGraph[E] */ +/* isa POSetConflictGraph[E] */ type_struct = self->type->resolution_table->types[COLOR_coloring__POSetConflictGraphcoloring__POSetColorer_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -1646,8 +1735,8 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[POSetColorer#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189); show_backtrace(1); } self->attrs[COLOR_coloring__POSetColorer___graph].val = p0; /* _graph on */ @@ -1661,8 +1750,8 @@ int idtype; const struct type* type_struct; const char* var_class_name; { /* Inline coloring#POSetColorer#graph= (self,p0) on */ -/* Covariant cast for argument 0 (graph) isa POSetConflictGraph[POSetColorer#0] */ -/* isa POSetConflictGraph[POSetColorer#0] */ +/* Covariant cast for argument 0 (graph) isa POSetConflictGraph[E] */ +/* isa POSetConflictGraph[E] */ type_struct = self->type->resolution_table->types[COLOR_coloring__POSetConflictGraphcoloring__POSetColorer_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -1673,8 +1762,8 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[POSetColorer#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189); show_backtrace(1); } self->attrs[COLOR_coloring__POSetColorer___graph].val = p0; /* _graph on */ @@ -1682,17 +1771,6 @@ RET_LABEL1:(void)0; } RET_LABEL:; } -/* method coloring#POSetColorer#init for (self: POSetColorer[Object]) */ -void coloring__POSetColorer__init(val* self) { -RET_LABEL:; -} -/* method coloring#POSetColorer#init for (self: Object) */ -void VIRTUAL_coloring__POSetColorer__init(val* self) { -{ /* Inline coloring#POSetColorer#init (self) on */ -RET_LABEL1:(void)0; -} -RET_LABEL:; -} /* method coloring#POSetColorer#colorize for (self: POSetColorer[Object], POSet[Object]) */ void coloring__POSetColorer__colorize(val* self, val* p0) { short int var /* : Bool */; @@ -1722,8 +1800,8 @@ int idtype23; const struct type* type_struct24; const char* var_class_name25; short int var26 /* : Bool */; -/* Covariant cast for argument 0 (poset) isa POSet[POSetColorer#0] */ -/* isa POSet[POSetColorer#0] */ +/* Covariant cast for argument 0 (poset) isa POSet[E] */ +/* isa POSet[E] */ type_struct = self->type->resolution_table->types[COLOR_poset__POSetcoloring__POSetColorer_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -1734,15 +1812,15 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetColorer#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 193); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 191); show_backtrace(1); } var_poset = p0; { { /* Inline coloring#POSetColorer#poset_cache= (self,var_poset) on */ -/* Covariant cast for argument 0 (poset_cache) isa POSet[POSetColorer#0] */ -/* isa POSet[POSetColorer#0] */ +/* Covariant cast for argument 0 (poset_cache) isa POSet[E] */ +/* isa POSet[E] */ type_struct5 = self->type->resolution_table->types[COLOR_poset__POSetcoloring__POSetColorer_FT0]; cltype3 = type_struct5->color; idtype4 = type_struct5->id; @@ -1753,8 +1831,8 @@ var2 = var_poset->type->type_table[cltype3] == idtype4; } if (unlikely(!var2)) { var_class_name6 = var_poset == NULL ? "null" : var_poset->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetColorer#0]", var_class_name6); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[E]", var_class_name6); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180); show_backtrace(1); } self->attrs[COLOR_coloring__POSetColorer___poset_cache].val = var_poset; /* _poset_cache on */ @@ -1767,8 +1845,8 @@ coloring__POSetConflictGraph__init(var7, var_poset); /* Direct call coloring#POS } { { /* Inline coloring#POSetColorer#graph= (self,var7) on */ -/* Covariant cast for argument 0 (graph) isa POSetConflictGraph[POSetColorer#0] */ -/* isa POSetConflictGraph[POSetColorer#0] */ +/* Covariant cast for argument 0 (graph) isa POSetConflictGraph[E] */ +/* isa POSetConflictGraph[E] */ type_struct12 = self->type->resolution_table->types[COLOR_coloring__POSetConflictGraphcoloring__POSetColorer_FT0]; cltype10 = type_struct12->color; idtype11 = type_struct12->id; @@ -1779,8 +1857,8 @@ var9 = var7->type->type_table[cltype10] == idtype11; } if (unlikely(!var9)) { var_class_name13 = var7 == NULL ? "null" : var7->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[POSetColorer#0]", var_class_name13); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetConflictGraph[E]", var_class_name13); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189); show_backtrace(1); } self->attrs[COLOR_coloring__POSetColorer___graph].val = var7; /* _graph on */ @@ -1798,7 +1876,7 @@ coloring__POSetColorer__compute_colors(self); /* Direct call coloring#POSetColor var16 = self->attrs[COLOR_coloring__POSetColorer___graph].val; /* _graph on */ if (unlikely(var16 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189); show_backtrace(1); } var14 = var16; @@ -1810,7 +1888,7 @@ RET_LABEL15:(void)0; var19 = var14->attrs[COLOR_coloring__POSetConflictGraph___conflicts].val; /* _conflicts on */ if (unlikely(var19 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40); show_backtrace(1); } var17 = var19; @@ -1819,8 +1897,8 @@ RET_LABEL18:(void)0; } { { /* Inline coloring#POSetColorer#conflicts_cache= (self,var17) on */ -/* Covariant cast for argument 0 (conflicts_cache) isa Map[POSetColorer#0, Set[POSetColorer#0]] */ -/* isa Map[POSetColorer#0, Set[POSetColorer#0]] */ +/* Covariant cast for argument 0 (conflicts_cache) isa Map[E, Set[E]] */ +/* isa Map[E, Set[E]] */ type_struct24 = self->type->resolution_table->types[COLOR_abstract_collection__Mapcoloring__POSetColorer_FT0abstract_collection__Setcoloring__POSetColorer_FT0]; cltype22 = type_struct24->color; idtype23 = type_struct24->id; @@ -1831,8 +1909,8 @@ var21 = var17->type->type_table[cltype22] == idtype23; } if (unlikely(!var21)) { var_class_name25 = var17 == NULL ? "null" : var17->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetColorer#0, Set[POSetColorer#0]]", var_class_name25); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 187); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[E, Set[E]]", var_class_name25); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 187); show_backtrace(1); } self->attrs[COLOR_coloring__POSetColorer___conflicts_cache].val = var17; /* _conflicts_cache on */ @@ -1865,22 +1943,24 @@ val* var_elements /* var elements: HashSet[Object] */; val* var8 /* : POSet[Object] */; val* var10 /* : POSet[Object] */; val* var11 /* : Array[Object] */; +val* var_ /* var : Array[Object] */; val* var12 /* : ArrayIterator[nullable Object] */; -short int var13 /* : Bool */; -val* var14 /* : nullable Object */; +val* var_13 /* var : ArrayIterator[Object] */; +short int var14 /* : Bool */; +val* var15 /* : nullable Object */; val* var_e /* var e: Object */; -val* var15 /* : HashMap[Object, Int] */; -val* var17 /* : HashMap[Object, Int] */; +val* var16 /* : HashMap[Object, Int] */; val* var18 /* : HashMap[Object, Int] */; -val* var20 /* : HashMap[Object, Int] */; -long var21 /* : Int */; -val* var22 /* : nullable Object */; +val* var19 /* : HashMap[Object, Int] */; +val* var21 /* : HashMap[Object, Int] */; +long var22 /* : Int */; +val* var23 /* : nullable Object */; { { /* Inline coloring#POSetColorer#ids_cache (self) on */ var2 = self->attrs[COLOR_coloring__POSetColorer___ids_cache].val; /* _ids_cache on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 165); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 165); show_backtrace(1); } var = var2; @@ -1896,7 +1976,7 @@ var3 = NEW_hash_collection__HashSet(self->type->resolution_table->types[COLOR_ha var6 = self->attrs[COLOR_coloring__POSetColorer___poset_cache].val; /* _poset_cache on */ if (unlikely(var6 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180); show_backtrace(1); } var4 = var6; @@ -1915,7 +1995,7 @@ var_elements = var3; var10 = self->attrs[COLOR_coloring__POSetColorer___poset_cache].val; /* _poset_cache on */ if (unlikely(var10 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180); show_backtrace(1); } var8 = var10; @@ -1925,55 +2005,64 @@ RET_LABEL9:(void)0; { var11 = poset__POSet__linearize(var8, var_elements); } +var_ = var11; { -var12 = array__AbstractArrayRead__iterator(var11); +var12 = array__AbstractArrayRead__iterator(var_); } +var_13 = var12; for(;;) { { -var13 = array__ArrayIterator__is_ok(var12); +var14 = array__ArrayIterator__is_ok(var_13); } -if(!var13) break; +if (var14){ { -var14 = array__ArrayIterator__item(var12); +var15 = array__ArrayIterator__item(var_13); } -var_e = var14; +var_e = var15; { { /* Inline coloring#POSetColorer#ids_cache (self) on */ -var17 = self->attrs[COLOR_coloring__POSetColorer___ids_cache].val; /* _ids_cache on */ -if (unlikely(var17 == NULL)) { +var18 = self->attrs[COLOR_coloring__POSetColorer___ids_cache].val; /* _ids_cache on */ +if (unlikely(var18 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 165); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 165); show_backtrace(1); } -var15 = var17; -RET_LABEL16:(void)0; +var16 = var18; +RET_LABEL17:(void)0; } } { { /* Inline coloring#POSetColorer#ids_cache (self) on */ -var20 = self->attrs[COLOR_coloring__POSetColorer___ids_cache].val; /* _ids_cache on */ -if (unlikely(var20 == NULL)) { +var21 = self->attrs[COLOR_coloring__POSetColorer___ids_cache].val; /* _ids_cache on */ +if (unlikely(var21 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ids_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 165); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 165); show_backtrace(1); } -var18 = var20; -RET_LABEL19:(void)0; +var19 = var21; +RET_LABEL20:(void)0; } } { -var21 = hash_collection__HashMap__length(var18); +var22 = hash_collection__HashMap__length(var19); } { -var22 = BOX_kernel__Int(var21); /* autobox from Int to nullable Object */ -hash_collection__HashMap___91d_93d_61d(var15, var_e, var22); /* Direct call hash_collection#HashMap#[]= on */ +var23 = BOX_kernel__Int(var22); /* autobox from Int to nullable Object */ +hash_collection__HashMap___91d_93d_61d(var16, var_e, var23); /* Direct call hash_collection#HashMap#[]= on */ } -CONTINUE_label: (void)0; { -array__ArrayIterator__next(var12); /* Direct call array#ArrayIterator#next on */ +array__ArrayIterator__next(var_13); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_13) on */ +RET_LABEL24:(void)0; +} +} RET_LABEL:; } /* method coloring#POSetColorer#allocate_ids for (self: Object) */ @@ -1998,7 +2087,7 @@ val* var14 /* : HashSet[Object] */; var2 = self->attrs[COLOR_coloring__POSetColorer___colors_cache].val; /* _colors_cache on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173); show_backtrace(1); } var = var2; @@ -2016,7 +2105,7 @@ coloring__POSetColorer__colorize_core(self); /* Direct call coloring#POSetColore var5 = self->attrs[COLOR_coloring__POSetColorer___graph].val; /* _graph on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189); show_backtrace(1); } var3 = var5; @@ -2028,7 +2117,7 @@ RET_LABEL4:(void)0; var8 = var3->attrs[COLOR_coloring__POSetConflictGraph___border].val; /* _border on */ if (unlikely(var8 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _border"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 28); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 28); show_backtrace(1); } var6 = var8; @@ -2043,7 +2132,7 @@ coloring__POSetColorer__colorize_set(self, var6); /* Direct call coloring#POSetC var11 = self->attrs[COLOR_coloring__POSetColorer___graph].val; /* _graph on */ if (unlikely(var11 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189); show_backtrace(1); } var9 = var11; @@ -2055,7 +2144,7 @@ RET_LABEL10:(void)0; var14 = var9->attrs[COLOR_coloring__POSetConflictGraph___crown].val; /* _crown on */ if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _crown"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 34); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 34); show_backtrace(1); } var12 = var14; @@ -2081,36 +2170,38 @@ val* var5 /* : POSetConflictGraph[Object] */; val* var6 /* : HashSet[Object] */; val* var8 /* : HashSet[Object] */; val* var9 /* : Array[Object] */; +val* var_ /* var : Array[Object] */; val* var10 /* : ArrayIterator[nullable Object] */; -short int var11 /* : Bool */; -val* var12 /* : nullable Object */; +val* var_11 /* var : ArrayIterator[Object] */; +short int var12 /* : Bool */; +val* var13 /* : nullable Object */; val* var_e /* var e: Object */; -long var13 /* : Int */; +long var14 /* : Int */; long var_color /* var color: Int */; -val* var14 /* : POSetConflictGraph[Object] */; -val* var16 /* : POSetConflictGraph[Object] */; -val* var17 /* : HashMap[Object, Set[Object]] */; -val* var19 /* : HashMap[Object, Set[Object]] */; -val* var20 /* : nullable Object */; +val* var15 /* : POSetConflictGraph[Object] */; +val* var17 /* : POSetConflictGraph[Object] */; +val* var18 /* : HashMap[Object, Set[Object]] */; +val* var20 /* : HashMap[Object, Set[Object]] */; +val* var21 /* : nullable Object */; val* var_conflicts /* var conflicts: Set[Object] */; -short int var21 /* : Bool */; short int var22 /* : Bool */; -long var23 /* : Int */; +short int var23 /* : Bool */; long var24 /* : Int */; -short int var26 /* : Bool */; +long var25 /* : Int */; +short int var27 /* : Bool */; int cltype; int idtype; const char* var_class_name; -long var27 /* : Int */; -val* var28 /* : HashMap[Object, Int] */; -val* var30 /* : HashMap[Object, Int] */; -val* var31 /* : nullable Object */; +long var28 /* : Int */; +val* var29 /* : HashMap[Object, Int] */; +val* var31 /* : HashMap[Object, Int] */; +val* var32 /* : nullable Object */; { { /* Inline coloring#POSetColorer#poset_cache (self) on */ var2 = self->attrs[COLOR_coloring__POSetColorer___poset_cache].val; /* _poset_cache on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180); show_backtrace(1); } var = var2; @@ -2122,7 +2213,7 @@ RET_LABEL1:(void)0; var5 = self->attrs[COLOR_coloring__POSetColorer___graph].val; /* _graph on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189); show_backtrace(1); } var3 = var5; @@ -2134,7 +2225,7 @@ RET_LABEL4:(void)0; var8 = var3->attrs[COLOR_coloring__POSetConflictGraph___core].val; /* _core on */ if (unlikely(var8 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _core"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 22); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 22); show_backtrace(1); } var6 = var8; @@ -2144,100 +2235,111 @@ RET_LABEL7:(void)0; { var9 = poset__POSet__linearize(var, var6); } +var_ = var9; { -var10 = array__AbstractArrayRead__iterator(var9); +var10 = array__AbstractArrayRead__iterator(var_); } +var_11 = var10; for(;;) { { -var11 = array__ArrayIterator__is_ok(var10); +var12 = array__ArrayIterator__is_ok(var_11); } -if(!var11) break; +if (var12){ { -var12 = array__ArrayIterator__item(var10); +var13 = array__ArrayIterator__item(var_11); } -var_e = var12; +var_e = var13; { -var13 = coloring__POSetColorer__min_color(self, var_e); +var14 = coloring__POSetColorer__min_color(self, var_e); } -var_color = var13; +var_color = var14; { { /* Inline coloring#POSetColorer#graph (self) on */ -var16 = self->attrs[COLOR_coloring__POSetColorer___graph].val; /* _graph on */ -if (unlikely(var16 == NULL)) { +var17 = self->attrs[COLOR_coloring__POSetColorer___graph].val; /* _graph on */ +if (unlikely(var17 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _graph"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 189); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 189); show_backtrace(1); } -var14 = var16; -RET_LABEL15:(void)0; +var15 = var17; +RET_LABEL16:(void)0; } } { -{ /* Inline coloring#POSetConflictGraph#conflicts (var14) on */ -var19 = var14->attrs[COLOR_coloring__POSetConflictGraph___conflicts].val; /* _conflicts on */ -if (unlikely(var19 == NULL)) { +{ /* Inline coloring#POSetConflictGraph#conflicts (var15) on */ +var20 = var15->attrs[COLOR_coloring__POSetConflictGraph___conflicts].val; /* _conflicts on */ +if (unlikely(var20 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 40); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 40); show_backtrace(1); } -var17 = var19; -RET_LABEL18:(void)0; +var18 = var20; +RET_LABEL19:(void)0; } } { -var20 = hash_collection__HashMap___91d_93d(var17, var_e); +var21 = hash_collection__HashMap___91d_93d(var18, var_e); } -var_conflicts = var20; +var_conflicts = var21; for(;;) { { -var21 = coloring__POSetColorer__is_color_free(self, var_color, var_conflicts); +var22 = coloring__POSetColorer__is_color_free(self, var_color, var_conflicts); } -var22 = !var21; -if (!var22) break; -var23 = 1; +var23 = !var22; +if (var23){ +var24 = 1; { -{ /* Inline kernel#Int#+ (var_color,var23) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var26 = 1; /* easy isa OTHER*/ -if (unlikely(!var26)) { +{ /* Inline kernel#Int#+ (var_color,var24) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var27 = 1; /* easy isa OTHER*/ +if (unlikely(!var27)) { var_class_name = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var27 = var_color + var23; -var24 = var27; -goto RET_LABEL25; -RET_LABEL25:(void)0; +var28 = var_color + var24; +var25 = var28; +goto RET_LABEL26; +RET_LABEL26:(void)0; } } -var_color = var24; -CONTINUE_label: (void)0; +var_color = var25; +} else { +goto BREAK_label; +} } BREAK_label: (void)0; { { /* Inline coloring#POSetColorer#colors_cache (self) on */ -var30 = self->attrs[COLOR_coloring__POSetColorer___colors_cache].val; /* _colors_cache on */ -if (unlikely(var30 == NULL)) { +var31 = self->attrs[COLOR_coloring__POSetColorer___colors_cache].val; /* _colors_cache on */ +if (unlikely(var31 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173); show_backtrace(1); } -var28 = var30; -RET_LABEL29:(void)0; +var29 = var31; +RET_LABEL30:(void)0; } } { -var31 = BOX_kernel__Int(var_color); /* autobox from Int to nullable Object */ -hash_collection__HashMap___91d_93d_61d(var28, var_e, var31); /* Direct call hash_collection#HashMap#[]= on */ +var32 = BOX_kernel__Int(var_color); /* autobox from Int to nullable Object */ +hash_collection__HashMap___91d_93d_61d(var29, var_e, var32); /* Direct call hash_collection#HashMap#[]= on */ } -CONTINUE_label32: (void)0; { -array__ArrayIterator__next(var10); /* Direct call array#ArrayIterator#next on */ +array__ArrayIterator__next(var_11); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label33; +} +} +BREAK_label33: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_11) on */ +RET_LABEL34:(void)0; } } -BREAK_label32: (void)0; RET_LABEL:; } /* method coloring#POSetColorer#colorize_core for (self: Object) */ @@ -2256,16 +2358,18 @@ val* var_set /* var set: Set[Object] */; val* var1 /* : POSet[Object] */; val* var3 /* : POSet[Object] */; val* var4 /* : Array[Object] */; +val* var_ /* var : Array[Object] */; val* var5 /* : ArrayIterator[nullable Object] */; -short int var6 /* : Bool */; -val* var7 /* : nullable Object */; +val* var_6 /* var : ArrayIterator[Object] */; +short int var7 /* : Bool */; +val* var8 /* : nullable Object */; val* var_e /* var e: Object */; -val* var8 /* : HashMap[Object, Int] */; -val* var10 /* : HashMap[Object, Int] */; -long var11 /* : Int */; -val* var12 /* : nullable Object */; -/* Covariant cast for argument 0 (set) isa Set[POSetColorer#0] */ -/* isa Set[POSetColorer#0] */ +val* var9 /* : HashMap[Object, Int] */; +val* var11 /* : HashMap[Object, Int] */; +long var12 /* : Int */; +val* var13 /* : nullable Object */; +/* Covariant cast for argument 0 (set) isa Set[E] */ +/* isa Set[E] */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Setcoloring__POSetColorer_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -2276,8 +2380,8 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[POSetColorer#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 233); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Set[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 231); show_backtrace(1); } var_set = p0; @@ -2286,7 +2390,7 @@ var_set = p0; var3 = self->attrs[COLOR_coloring__POSetColorer___poset_cache].val; /* _poset_cache on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180); show_backtrace(1); } var1 = var3; @@ -2296,43 +2400,52 @@ RET_LABEL2:(void)0; { var4 = poset__POSet__linearize(var1, var_set); } +var_ = var4; { -var5 = array__AbstractArrayRead__iterator(var4); +var5 = array__AbstractArrayRead__iterator(var_); } +var_6 = var5; for(;;) { { -var6 = array__ArrayIterator__is_ok(var5); +var7 = array__ArrayIterator__is_ok(var_6); } -if(!var6) break; +if (var7){ { -var7 = array__ArrayIterator__item(var5); +var8 = array__ArrayIterator__item(var_6); } -var_e = var7; +var_e = var8; { { /* Inline coloring#POSetColorer#colors_cache (self) on */ -var10 = self->attrs[COLOR_coloring__POSetColorer___colors_cache].val; /* _colors_cache on */ -if (unlikely(var10 == NULL)) { +var11 = self->attrs[COLOR_coloring__POSetColorer___colors_cache].val; /* _colors_cache on */ +if (unlikely(var11 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173); show_backtrace(1); } -var8 = var10; -RET_LABEL9:(void)0; +var9 = var11; +RET_LABEL10:(void)0; } } { -var11 = coloring__POSetColorer__min_color(self, var_e); +var12 = coloring__POSetColorer__min_color(self, var_e); } { -var12 = BOX_kernel__Int(var11); /* autobox from Int to nullable Object */ -hash_collection__HashMap___91d_93d_61d(var8, var_e, var12); /* Direct call hash_collection#HashMap#[]= on */ +var13 = BOX_kernel__Int(var12); /* autobox from Int to nullable Object */ +hash_collection__HashMap___91d_93d_61d(var9, var_e, var13); /* Direct call hash_collection#HashMap#[]= on */ } -CONTINUE_label: (void)0; { -array__ArrayIterator__next(var5); /* Direct call array#ArrayIterator#next on */ +array__ArrayIterator__next(var_6); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_6) on */ +RET_LABEL14:(void)0; +} +} RET_LABEL:; } /* method coloring#POSetColorer#colorize_set for (self: Object, Set[Object]) */ @@ -2357,34 +2470,36 @@ val* var6 /* : POSet[Object] */; val* var8 /* : POSet[Object] */; val* var9 /* : POSetElement[Object] */; val* var10 /* : Collection[Object] */; +val* var_ /* var : Collection[Object] */; val* var11 /* : Iterator[nullable Object] */; -short int var12 /* : Bool */; -val* var13 /* : nullable Object */; +val* var_12 /* var : Iterator[Object] */; +short int var13 /* : Bool */; +val* var14 /* : nullable Object */; val* var_p /* var p: Object */; -val* var14 /* : HashMap[Object, Int] */; -val* var16 /* : HashMap[Object, Int] */; -short int var17 /* : Bool */; +val* var15 /* : HashMap[Object, Int] */; +val* var17 /* : HashMap[Object, Int] */; short int var18 /* : Bool */; -val* var19 /* : HashMap[Object, Int] */; -val* var21 /* : HashMap[Object, Int] */; -val* var22 /* : nullable Object */; -long var23 /* : Int */; +short int var19 /* : Bool */; +val* var20 /* : HashMap[Object, Int] */; +val* var22 /* : HashMap[Object, Int] */; +val* var23 /* : nullable Object */; +long var24 /* : Int */; long var_color /* var color: Int */; -short int var24 /* : Bool */; -short int var26 /* : Bool */; -int cltype27; -int idtype28; -const char* var_class_name29; -short int var30 /* : Bool */; -long var31 /* : Int */; -long var32 /* : Int */; -short int var34 /* : Bool */; -int cltype35; -int idtype36; -const char* var_class_name37; -long var38 /* : Int */; -/* Covariant cast for argument 0 (e) isa POSetColorer#0 */ -/* isa POSetColorer#0 */ +short int var25 /* : Bool */; +short int var27 /* : Bool */; +int cltype28; +int idtype29; +const char* var_class_name30; +short int var31 /* : Bool */; +long var34 /* : Int */; +long var35 /* : Int */; +short int var37 /* : Bool */; +int cltype38; +int idtype39; +const char* var_class_name40; +long var41 /* : Int */; +/* Covariant cast for argument 0 (e) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_coloring__POSetColorer_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -2395,8 +2510,8 @@ var1 = p0->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetColorer#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 238); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 236); show_backtrace(1); } var_e = p0; @@ -2415,7 +2530,7 @@ var_max_color = var3; var8 = self->attrs[COLOR_coloring__POSetColorer___poset_cache].val; /* _poset_cache on */ if (unlikely(var8 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 180); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 180); show_backtrace(1); } var6 = var8; @@ -2428,101 +2543,111 @@ var9 = poset__POSet___91d_93d(var6, var_e); { var10 = poset__POSetElement__direct_greaters(var9); } +var_ = var10; { -var11 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Collection__iterator]))(var10) /* iterator on */; +var11 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_12 = var11; for(;;) { { -var12 = ((short int (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var11) /* is_ok on */; +var13 = ((short int (*)(val*))(var_12->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_12) /* is_ok on */; } -if(!var12) break; +if (var13){ { -var13 = ((val* (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__item]))(var11) /* item on */; +var14 = ((val* (*)(val*))(var_12->class->vft[COLOR_abstract_collection__Iterator__item]))(var_12) /* item on */; } -var_p = var13; +var_p = var14; { { /* Inline coloring#POSetColorer#colors_cache (self) on */ -var16 = self->attrs[COLOR_coloring__POSetColorer___colors_cache].val; /* _colors_cache on */ -if (unlikely(var16 == NULL)) { +var17 = self->attrs[COLOR_coloring__POSetColorer___colors_cache].val; /* _colors_cache on */ +if (unlikely(var17 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173); show_backtrace(1); } -var14 = var16; -RET_LABEL15:(void)0; +var15 = var17; +RET_LABEL16:(void)0; } } { -var17 = abstract_collection__MapRead__has_key(var14, var_p); +var18 = abstract_collection__MapRead__has_key(var15, var_p); } -var18 = !var17; -if (var18){ -goto CONTINUE_label; +var19 = !var18; +if (var19){ +goto BREAK_label; } else { } { { /* Inline coloring#POSetColorer#colors_cache (self) on */ -var21 = self->attrs[COLOR_coloring__POSetColorer___colors_cache].val; /* _colors_cache on */ -if (unlikely(var21 == NULL)) { +var22 = self->attrs[COLOR_coloring__POSetColorer___colors_cache].val; /* _colors_cache on */ +if (unlikely(var22 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173); show_backtrace(1); } -var19 = var21; -RET_LABEL20:(void)0; +var20 = var22; +RET_LABEL21:(void)0; } } { -var22 = hash_collection__HashMap___91d_93d(var19, var_p); +var23 = hash_collection__HashMap___91d_93d(var20, var_p); } -var23 = ((struct instance_kernel__Int*)var22)->value; /* autounbox from nullable Object to Int */; -var_color = var23; +var24 = ((struct instance_kernel__Int*)var23)->value; /* autounbox from nullable Object to Int */; +var_color = var24; { { /* Inline kernel#Int#> (var_color,var_max_color) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var26 = 1; /* easy isa OTHER*/ -if (unlikely(!var26)) { -var_class_name29 = type_kernel__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327); +var27 = 1; /* easy isa OTHER*/ +if (unlikely(!var27)) { +var_class_name30 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); show_backtrace(1); } -var30 = var_color > var_max_color; -var24 = var30; -goto RET_LABEL25; -RET_LABEL25:(void)0; +var31 = var_color > var_max_color; +var25 = var31; +goto RET_LABEL26; +RET_LABEL26:(void)0; } } -if (var24){ +if (var25){ var_max_color = var_color; } else { } -CONTINUE_label: (void)0; +BREAK_label: (void)0; { -((void (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__next]))(var11) /* next on */; +((void (*)(val*))(var_12->class->vft[COLOR_abstract_collection__Iterator__next]))(var_12) /* next on */; } +} else { +goto BREAK_label32; } -BREAK_label: (void)0; -var31 = 1; +} +BREAK_label32: (void)0; { -{ /* Inline kernel#Int#+ (var_max_color,var31) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var34 = 1; /* easy isa OTHER*/ -if (unlikely(!var34)) { -var_class_name37 = type_kernel__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328); +{ /* Inline abstract_collection#Iterator#finish (var_12) on */ +RET_LABEL33:(void)0; +} +} +var34 = 1; +{ +{ /* Inline kernel#Int#+ (var_max_color,var34) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var37 = 1; /* easy isa OTHER*/ +if (unlikely(!var37)) { +var_class_name40 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var38 = var_max_color + var31; -var32 = var38; -goto RET_LABEL33; -RET_LABEL33:(void)0; +var41 = var_max_color + var34; +var35 = var41; +goto RET_LABEL36; +RET_LABEL36:(void)0; } } -var = var32; +var = var35; goto RET_LABEL; RET_LABEL:; return var; @@ -2546,26 +2671,28 @@ const struct type* type_struct; const char* var_class_name; long var_color /* var color: Int */; val* var_set /* var set: Collection[Object] */; +val* var_ /* var : Collection[Object] */; val* var2 /* : Iterator[nullable Object] */; -short int var3 /* : Bool */; -val* var4 /* : nullable Object */; +val* var_3 /* var : Iterator[Object] */; +short int var4 /* : Bool */; +val* var5 /* : nullable Object */; val* var_e /* var e: Object */; -short int var5 /* : Bool */; -val* var6 /* : HashMap[Object, Int] */; -val* var8 /* : HashMap[Object, Int] */; -short int var9 /* : Bool */; -short int var_ /* var : Bool */; -val* var10 /* : HashMap[Object, Int] */; +short int var6 /* : Bool */; +val* var7 /* : HashMap[Object, Int] */; +val* var9 /* : HashMap[Object, Int] */; +short int var10 /* : Bool */; +short int var_11 /* var : Bool */; val* var12 /* : HashMap[Object, Int] */; -val* var13 /* : nullable Object */; -short int var14 /* : Bool */; -short int var15 /* : Bool */; +val* var14 /* : HashMap[Object, Int] */; +val* var15 /* : nullable Object */; +short int var16 /* : Bool */; short int var17 /* : Bool */; -long var18 /* : Int */; short int var19 /* : Bool */; -short int var20 /* : Bool */; -/* Covariant cast for argument 1 (set) isa Collection[POSetColorer#0] */ -/* isa Collection[POSetColorer#0] */ +long var20 /* : Int */; +short int var21 /* : Bool */; +short int var23 /* : Bool */; +/* Covariant cast for argument 1 (set) isa Collection[E] */ +/* isa Collection[E] */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Collectioncoloring__POSetColorer_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -2576,87 +2703,96 @@ var1 = p1->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p1 == NULL ? "null" : p1->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[POSetColorer#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 249); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 247); show_backtrace(1); } var_color = p0; var_set = p1; +var_ = var_set; { -var2 = ((val* (*)(val*))(var_set->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_set) /* iterator on */; +var2 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_3 = var2; for(;;) { { -var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on */; +var4 = ((short int (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_3) /* is_ok on */; } -if(!var3) break; +if (var4){ { -var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on */; +var5 = ((val* (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__item]))(var_3) /* item on */; } -var_e = var4; +var_e = var5; { { /* Inline coloring#POSetColorer#colors_cache (self) on */ -var8 = self->attrs[COLOR_coloring__POSetColorer___colors_cache].val; /* _colors_cache on */ -if (unlikely(var8 == NULL)) { +var9 = self->attrs[COLOR_coloring__POSetColorer___colors_cache].val; /* _colors_cache on */ +if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173); show_backtrace(1); } -var6 = var8; -RET_LABEL7:(void)0; +var7 = var9; +RET_LABEL8:(void)0; } } { -var9 = abstract_collection__MapRead__has_key(var6, var_e); +var10 = abstract_collection__MapRead__has_key(var7, var_e); } -var_ = var9; -if (var9){ +var_11 = var10; +if (var10){ { { /* Inline coloring#POSetColorer#colors_cache (self) on */ -var12 = self->attrs[COLOR_coloring__POSetColorer___colors_cache].val; /* _colors_cache on */ -if (unlikely(var12 == NULL)) { +var14 = self->attrs[COLOR_coloring__POSetColorer___colors_cache].val; /* _colors_cache on */ +if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors_cache"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 173); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 173); show_backtrace(1); } -var10 = var12; -RET_LABEL11:(void)0; +var12 = var14; +RET_LABEL13:(void)0; } } { -var13 = hash_collection__HashMap___91d_93d(var10, var_e); +var15 = hash_collection__HashMap___91d_93d(var12, var_e); } { -{ /* Inline kernel#Int#== (var13,var_color) on */ -var17 = (var13 != NULL) && (var13->class == &class_kernel__Int); -if (var17) { -var18 = ((struct instance_kernel__Int*)var13)->value; /* autounbox from nullable Object to Int */; -var17 = (var18 == var_color); +{ /* Inline kernel#Int#== (var15,var_color) on */ +var19 = (var15 != NULL) && (var15->class == &class_kernel__Int); +if (var19) { +var20 = ((struct instance_kernel__Int*)var15)->value; /* autounbox from nullable Object to Int */; +var19 = (var20 == var_color); } -var15 = var17; -goto RET_LABEL16; -RET_LABEL16:(void)0; +var17 = var19; +goto RET_LABEL18; +RET_LABEL18:(void)0; } -var14 = var15; +var16 = var17; } -var5 = var14; +var6 = var16; } else { -var5 = var_; +var6 = var_11; } -if (var5){ -var19 = 0; -var = var19; +if (var6){ +var21 = 0; +var = var21; goto RET_LABEL; } else { } -CONTINUE_label: (void)0; { -((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on */; +((void (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__next]))(var_3) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; -var20 = 1; -var = var20; +{ +{ /* Inline abstract_collection#Iterator#finish (var_3) on */ +RET_LABEL22:(void)0; +} +} +var23 = 1; +var = var23; goto RET_LABEL; RET_LABEL:; return var; @@ -2677,7 +2813,7 @@ val* var1 /* : HashMap[Object, Int] */; var1 = self->attrs[COLOR_coloring__BucketsColorer___colors].val; /* _colors on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 281); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 279); show_backtrace(1); } var = var1; @@ -2693,7 +2829,7 @@ val* var3 /* : HashMap[Object, Int] */; var3 = self->attrs[COLOR_coloring__BucketsColorer___colors].val; /* _colors on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 281); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 279); show_backtrace(1); } var1 = var3; @@ -2710,7 +2846,7 @@ val* var1 /* : HashMap[Object, Set[Object]] */; var1 = self->attrs[COLOR_coloring__BucketsColorer___conflicts].val; /* _conflicts on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280); show_backtrace(1); } var = var1; @@ -2726,7 +2862,7 @@ val* var3 /* : HashMap[Object, Set[Object]] */; var3 = self->attrs[COLOR_coloring__BucketsColorer___conflicts].val; /* _conflicts on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280); show_backtrace(1); } var1 = var3; @@ -2736,17 +2872,6 @@ var = var1; RET_LABEL:; return var; } -/* method coloring#BucketsColorer#init for (self: BucketsColorer[Object, Object]) */ -void coloring__BucketsColorer__init(val* self) { -RET_LABEL:; -} -/* method coloring#BucketsColorer#init for (self: Object) */ -void VIRTUAL_coloring__BucketsColorer__init(val* self) { -{ /* Inline coloring#BucketsColorer#init (self) on */ -RET_LABEL1:(void)0; -} -RET_LABEL:; -} /* method coloring#BucketsColorer#colorize for (self: BucketsColorer[Object, Object], Map[Object, Set[Object]]): Map[Object, Int] */ val* coloring__BucketsColorer__colorize(val* self, val* p0) { val* var /* : Map[Object, Int] */; @@ -2758,36 +2883,40 @@ const char* var_class_name; val* var_buckets /* var buckets: Map[Object, Set[Object]] */; long var2 /* : Int */; long var_min_color /* var min_color: Int */; +val* var_ /* var : Map[Object, Set[Object]] */; val* var3 /* : MapIterator[Object, nullable Object] */; -short int var4 /* : Bool */; -val* var5 /* : Object */; +val* var_4 /* var : MapIterator[Object, Set[Object]] */; +short int var5 /* : Bool */; +val* var6 /* : Object */; val* var_holder /* var holder: Object */; -val* var6 /* : nullable Object */; +val* var7 /* : nullable Object */; val* var_hbuckets /* var hbuckets: Set[Object] */; -val* var7 /* : Iterator[nullable Object] */; -short int var8 /* : Bool */; -val* var9 /* : nullable Object */; +val* var_8 /* var : Set[Object] */; +val* var9 /* : Iterator[nullable Object] */; +val* var_10 /* var : Iterator[Object] */; +short int var11 /* : Bool */; +val* var12 /* : nullable Object */; val* var_bucket /* var bucket: Object */; -val* var10 /* : HashMap[Object, Int] */; -val* var12 /* : HashMap[Object, Int] */; -short int var13 /* : Bool */; +val* var13 /* : HashMap[Object, Int] */; +val* var15 /* : HashMap[Object, Int] */; +short int var16 /* : Bool */; long var_color /* var color: Int */; -short int var14 /* : Bool */; -short int var15 /* : Bool */; -long var16 /* : Int */; -long var17 /* : Int */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -const char* var_class_name22; -long var23 /* : Int */; -val* var25 /* : HashMap[Object, Int] */; -val* var27 /* : HashMap[Object, Int] */; -val* var28 /* : nullable Object */; +short int var17 /* : Bool */; +short int var18 /* : Bool */; +long var19 /* : Int */; +long var20 /* : Int */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +const char* var_class_name25; +long var26 /* : Int */; +val* var28 /* : HashMap[Object, Int] */; val* var30 /* : HashMap[Object, Int] */; -val* var32 /* : HashMap[Object, Int] */; -/* Covariant cast for argument 0 (buckets) isa Map[BucketsColorer#0, Set[BucketsColorer#1]] */ -/* isa Map[BucketsColorer#0, Set[BucketsColorer#1]] */ +val* var31 /* : nullable Object */; +val* var36 /* : HashMap[Object, Int] */; +val* var38 /* : HashMap[Object, Int] */; +/* Covariant cast for argument 0 (buckets) isa Map[H, Set[E]] */ +/* isa Map[H, Set[E]] */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Mapcoloring__BucketsColorer_FT0abstract_collection__Setcoloring__BucketsColorer_FT1]; cltype = type_struct->color; idtype = type_struct->id; @@ -2798,8 +2927,8 @@ var1 = p0->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[BucketsColorer#0, Set[BucketsColorer#1]]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 286); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 282); show_backtrace(1); } var_buckets = p0; @@ -2808,124 +2937,145 @@ coloring__BucketsColorer__compute_conflicts(self, var_buckets); /* Direct call c } var2 = 0; var_min_color = var2; +var_ = var_buckets; { -var3 = ((val* (*)(val*))(var_buckets->class->vft[COLOR_abstract_collection__MapRead__iterator]))(var_buckets) /* iterator on */; +var3 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__MapRead__iterator]))(var_) /* iterator on */; } +var_4 = var3; for(;;) { { -var4 = ((short int (*)(val*))(var3->class->vft[COLOR_abstract_collection__MapIterator__is_ok]))(var3) /* is_ok on */; +var5 = ((short int (*)(val*))(var_4->class->vft[COLOR_abstract_collection__MapIterator__is_ok]))(var_4) /* is_ok on */; } -if(!var4) break; +if (var5){ { -var5 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__MapIterator__key]))(var3) /* key on */; +var6 = ((val* (*)(val*))(var_4->class->vft[COLOR_abstract_collection__MapIterator__key]))(var_4) /* key on */; } -var_holder = var5; +var_holder = var6; { -var6 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__MapIterator__item]))(var3) /* item on */; +var7 = ((val* (*)(val*))(var_4->class->vft[COLOR_abstract_collection__MapIterator__item]))(var_4) /* item on */; } -var_hbuckets = var6; +var_hbuckets = var7; +var_8 = var_hbuckets; { -var7 = ((val* (*)(val*))(var_hbuckets->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_hbuckets) /* iterator on */; +var9 = ((val* (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_8) /* iterator on */; } +var_10 = var9; for(;;) { { -var8 = ((short int (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var7) /* is_ok on */; +var11 = ((short int (*)(val*))(var_10->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_10) /* is_ok on */; } -if(!var8) break; +if (var11){ { -var9 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__item]))(var7) /* item on */; +var12 = ((val* (*)(val*))(var_10->class->vft[COLOR_abstract_collection__Iterator__item]))(var_10) /* item on */; } -var_bucket = var9; +var_bucket = var12; { { /* Inline coloring#BucketsColorer#colors (self) on */ -var12 = self->attrs[COLOR_coloring__BucketsColorer___colors].val; /* _colors on */ -if (unlikely(var12 == NULL)) { +var15 = self->attrs[COLOR_coloring__BucketsColorer___colors].val; /* _colors on */ +if (unlikely(var15 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 281); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 279); show_backtrace(1); } -var10 = var12; -RET_LABEL11:(void)0; +var13 = var15; +RET_LABEL14:(void)0; } } { -var13 = abstract_collection__MapRead__has_key(var10, var_bucket); +var16 = abstract_collection__MapRead__has_key(var13, var_bucket); } -if (var13){ -goto CONTINUE_label; +if (var16){ +goto BREAK_label; } else { } var_color = var_min_color; for(;;) { { -var14 = coloring__BucketsColorer__is_color_free(self, var_bucket, var_color); +var17 = coloring__BucketsColorer__is_color_free(self, var_bucket, var_color); } -var15 = !var14; -if (!var15) break; -var16 = 1; +var18 = !var17; +if (var18){ +var19 = 1; { -{ /* Inline kernel#Int#+ (var_color,var16) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var19 = 1; /* easy isa OTHER*/ -if (unlikely(!var19)) { -var_class_name22 = type_kernel__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328); +{ /* Inline kernel#Int#+ (var_color,var19) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var22 = 1; /* easy isa OTHER*/ +if (unlikely(!var22)) { +var_class_name25 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var23 = var_color + var16; -var17 = var23; -goto RET_LABEL18; -RET_LABEL18:(void)0; +var26 = var_color + var19; +var20 = var26; +goto RET_LABEL21; +RET_LABEL21:(void)0; } } -var_color = var17; -CONTINUE_label24: (void)0; +var_color = var20; +} else { +goto BREAK_label27; +} } -BREAK_label24: (void)0; +BREAK_label27: (void)0; { { /* Inline coloring#BucketsColorer#colors (self) on */ -var27 = self->attrs[COLOR_coloring__BucketsColorer___colors].val; /* _colors on */ -if (unlikely(var27 == NULL)) { +var30 = self->attrs[COLOR_coloring__BucketsColorer___colors].val; /* _colors on */ +if (unlikely(var30 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 281); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 279); show_backtrace(1); } -var25 = var27; -RET_LABEL26:(void)0; +var28 = var30; +RET_LABEL29:(void)0; } } { -var28 = BOX_kernel__Int(var_color); /* autobox from Int to nullable Object */ -hash_collection__HashMap___91d_93d_61d(var25, var_bucket, var28); /* Direct call hash_collection#HashMap#[]= on */ +var31 = BOX_kernel__Int(var_color); /* autobox from Int to nullable Object */ +hash_collection__HashMap___91d_93d_61d(var28, var_bucket, var31); /* Direct call hash_collection#HashMap#[]= on */ } var_color = var_min_color; -CONTINUE_label: (void)0; +BREAK_label: (void)0; { -((void (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__next]))(var7) /* next on */; +((void (*)(val*))(var_10->class->vft[COLOR_abstract_collection__Iterator__next]))(var_10) /* next on */; } +} else { +goto BREAK_label32; } -BREAK_label: (void)0; -CONTINUE_label29: (void)0; +} +BREAK_label32: (void)0; { -((void (*)(val*))(var3->class->vft[COLOR_abstract_collection__MapIterator__next]))(var3) /* next on */; +{ /* Inline abstract_collection#Iterator#finish (var_10) on */ +RET_LABEL33:(void)0; +} +} +{ +((void (*)(val*))(var_4->class->vft[COLOR_abstract_collection__MapIterator__next]))(var_4) /* next on */; +} +} else { +goto BREAK_label34; +} +} +BREAK_label34: (void)0; +{ +{ /* Inline abstract_collection#MapIterator#finish (var_4) on */ +RET_LABEL35:(void)0; } } -BREAK_label29: (void)0; { { /* Inline coloring#BucketsColorer#colors (self) on */ -var32 = self->attrs[COLOR_coloring__BucketsColorer___colors].val; /* _colors on */ -if (unlikely(var32 == NULL)) { +var38 = self->attrs[COLOR_coloring__BucketsColorer___colors].val; /* _colors on */ +if (unlikely(var38 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 281); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 279); show_backtrace(1); } -var30 = var32; -RET_LABEL31:(void)0; +var36 = var38; +RET_LABEL37:(void)0; } } -var = var30; +var = var36; goto RET_LABEL; RET_LABEL:; return var; @@ -2955,26 +3105,28 @@ short int var5 /* : Bool */; val* var6 /* : HashMap[Object, Set[Object]] */; val* var8 /* : HashMap[Object, Set[Object]] */; val* var9 /* : nullable Object */; +val* var_ /* var : Set[Object] */; val* var10 /* : Iterator[nullable Object] */; -short int var11 /* : Bool */; -val* var12 /* : nullable Object */; +val* var_11 /* var : Iterator[Object] */; +short int var12 /* : Bool */; +val* var13 /* : nullable Object */; val* var_other /* var other: Object */; -short int var13 /* : Bool */; -val* var14 /* : HashMap[Object, Int] */; -val* var16 /* : HashMap[Object, Int] */; -short int var17 /* : Bool */; -short int var_ /* var : Bool */; -val* var18 /* : HashMap[Object, Int] */; +short int var14 /* : Bool */; +val* var15 /* : HashMap[Object, Int] */; +val* var17 /* : HashMap[Object, Int] */; +short int var18 /* : Bool */; +short int var_19 /* var : Bool */; val* var20 /* : HashMap[Object, Int] */; -val* var21 /* : nullable Object */; -short int var22 /* : Bool */; -short int var23 /* : Bool */; +val* var22 /* : HashMap[Object, Int] */; +val* var23 /* : nullable Object */; +short int var24 /* : Bool */; short int var25 /* : Bool */; -long var26 /* : Int */; short int var27 /* : Bool */; -short int var28 /* : Bool */; -/* Covariant cast for argument 0 (bucket) isa BucketsColorer#1 */ -/* isa BucketsColorer#1 */ +long var28 /* : Int */; +short int var29 /* : Bool */; +short int var31 /* : Bool */; +/* Covariant cast for argument 0 (bucket) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_coloring__BucketsColorer_FT1]; cltype = type_struct->color; idtype = type_struct->id; @@ -2985,8 +3137,8 @@ var1 = p0->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "BucketsColorer#1", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 304); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 300); show_backtrace(1); } var_bucket = p0; @@ -2996,7 +3148,7 @@ var_color = p1; var4 = self->attrs[COLOR_coloring__BucketsColorer___conflicts].val; /* _conflicts on */ if (unlikely(var4 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280); show_backtrace(1); } var2 = var4; @@ -3012,7 +3164,7 @@ if (var5){ var8 = self->attrs[COLOR_coloring__BucketsColorer___conflicts].val; /* _conflicts on */ if (unlikely(var8 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280); show_backtrace(1); } var6 = var8; @@ -3022,83 +3174,92 @@ RET_LABEL7:(void)0; { var9 = hash_collection__HashMap___91d_93d(var6, var_bucket); } +var_ = var9; { -var10 = ((val* (*)(val*))(var9->class->vft[COLOR_abstract_collection__Collection__iterator]))(var9) /* iterator on */; +var10 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_11 = var10; for(;;) { { -var11 = ((short int (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var10) /* is_ok on */; +var12 = ((short int (*)(val*))(var_11->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_11) /* is_ok on */; } -if(!var11) break; +if (var12){ { -var12 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__item]))(var10) /* item on */; +var13 = ((val* (*)(val*))(var_11->class->vft[COLOR_abstract_collection__Iterator__item]))(var_11) /* item on */; } -var_other = var12; +var_other = var13; { { /* Inline coloring#BucketsColorer#colors (self) on */ -var16 = self->attrs[COLOR_coloring__BucketsColorer___colors].val; /* _colors on */ -if (unlikely(var16 == NULL)) { +var17 = self->attrs[COLOR_coloring__BucketsColorer___colors].val; /* _colors on */ +if (unlikely(var17 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 281); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 279); show_backtrace(1); } -var14 = var16; -RET_LABEL15:(void)0; +var15 = var17; +RET_LABEL16:(void)0; } } { -var17 = abstract_collection__MapRead__has_key(var14, var_other); +var18 = abstract_collection__MapRead__has_key(var15, var_other); } -var_ = var17; -if (var17){ +var_19 = var18; +if (var18){ { { /* Inline coloring#BucketsColorer#colors (self) on */ -var20 = self->attrs[COLOR_coloring__BucketsColorer___colors].val; /* _colors on */ -if (unlikely(var20 == NULL)) { +var22 = self->attrs[COLOR_coloring__BucketsColorer___colors].val; /* _colors on */ +if (unlikely(var22 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 281); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 279); show_backtrace(1); } -var18 = var20; -RET_LABEL19:(void)0; +var20 = var22; +RET_LABEL21:(void)0; } } { -var21 = hash_collection__HashMap___91d_93d(var18, var_other); +var23 = hash_collection__HashMap___91d_93d(var20, var_other); } { -{ /* Inline kernel#Int#== (var21,var_color) on */ -var25 = (var21 != NULL) && (var21->class == &class_kernel__Int); -if (var25) { -var26 = ((struct instance_kernel__Int*)var21)->value; /* autounbox from nullable Object to Int */; -var25 = (var26 == var_color); +{ /* Inline kernel#Int#== (var23,var_color) on */ +var27 = (var23 != NULL) && (var23->class == &class_kernel__Int); +if (var27) { +var28 = ((struct instance_kernel__Int*)var23)->value; /* autounbox from nullable Object to Int */; +var27 = (var28 == var_color); } -var23 = var25; -goto RET_LABEL24; -RET_LABEL24:(void)0; +var25 = var27; +goto RET_LABEL26; +RET_LABEL26:(void)0; } -var22 = var23; +var24 = var25; } -var13 = var22; +var14 = var24; } else { -var13 = var_; +var14 = var_19; } -if (var13){ -var27 = 0; -var = var27; +if (var14){ +var29 = 0; +var = var29; goto RET_LABEL; } else { } -CONTINUE_label: (void)0; { -((void (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__next]))(var10) /* next on */; +((void (*)(val*))(var_11->class->vft[COLOR_abstract_collection__Iterator__next]))(var_11) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_11) on */ +RET_LABEL30:(void)0; +} +} } else { } -var28 = 1; -var = var28; +var31 = 1; +var = var31; goto RET_LABEL; RET_LABEL:; return var; @@ -3122,44 +3283,50 @@ const char* var_class_name; val* var_buckets /* var buckets: Map[Object, Set[Object]] */; val* var1 /* : HashMap[Object, Set[Object]] */; val* var3 /* : HashMap[Object, Set[Object]] */; +val* var_ /* var : Map[Object, Set[Object]] */; val* var4 /* : MapIterator[Object, nullable Object] */; -short int var5 /* : Bool */; -val* var6 /* : Object */; +val* var_5 /* var : MapIterator[Object, Set[Object]] */; +short int var6 /* : Bool */; +val* var7 /* : Object */; val* var_holder /* var holder: Object */; -val* var7 /* : nullable Object */; +val* var8 /* : nullable Object */; val* var_hbuckets /* var hbuckets: Set[Object] */; -val* var8 /* : Iterator[nullable Object] */; -short int var9 /* : Bool */; -val* var10 /* : nullable Object */; -val* var_bucket /* var bucket: Object */; -val* var11 /* : HashMap[Object, Set[Object]] */; -val* var13 /* : HashMap[Object, Set[Object]] */; -short int var14 /* : Bool */; -short int var15 /* : Bool */; +val* var_9 /* var : Set[Object] */; +val* var10 /* : Iterator[nullable Object] */; +val* var_11 /* var : Iterator[Object] */; +short int var12 /* : Bool */; +val* var13 /* : nullable Object */; +val* var_bucket /* var bucket: Object */; +val* var14 /* : HashMap[Object, Set[Object]] */; val* var16 /* : HashMap[Object, Set[Object]] */; -val* var18 /* : HashMap[Object, Set[Object]] */; -val* var19 /* : HashSet[Object] */; -val* var20 /* : Iterator[nullable Object] */; -short int var21 /* : Bool */; -val* var22 /* : nullable Object */; +short int var17 /* : Bool */; +short int var18 /* : Bool */; +val* var19 /* : HashMap[Object, Set[Object]] */; +val* var21 /* : HashMap[Object, Set[Object]] */; +val* var22 /* : HashSet[Object] */; +val* var_23 /* var : Set[Object] */; +val* var24 /* : Iterator[nullable Object] */; +val* var_25 /* var : Iterator[Object] */; +short int var26 /* : Bool */; +val* var27 /* : nullable Object */; val* var_obucket /* var obucket: Object */; -short int var23 /* : Bool */; -short int var24 /* : Bool */; -val* var25 /* : HashMap[Object, Set[Object]] */; -val* var27 /* : HashMap[Object, Set[Object]] */; short int var28 /* : Bool */; short int var29 /* : Bool */; val* var30 /* : HashMap[Object, Set[Object]] */; val* var32 /* : HashMap[Object, Set[Object]] */; -val* var33 /* : HashSet[Object] */; -val* var34 /* : HashMap[Object, Set[Object]] */; -val* var36 /* : HashMap[Object, Set[Object]] */; -val* var37 /* : nullable Object */; -val* var38 /* : HashMap[Object, Set[Object]] */; -val* var40 /* : HashMap[Object, Set[Object]] */; -val* var41 /* : nullable Object */; -/* Covariant cast for argument 0 (buckets) isa Map[BucketsColorer#0, Set[BucketsColorer#1]] */ -/* isa Map[BucketsColorer#0, Set[BucketsColorer#1]] */ +short int var33 /* : Bool */; +short int var34 /* : Bool */; +val* var35 /* : HashMap[Object, Set[Object]] */; +val* var37 /* : HashMap[Object, Set[Object]] */; +val* var38 /* : HashSet[Object] */; +val* var39 /* : HashMap[Object, Set[Object]] */; +val* var41 /* : HashMap[Object, Set[Object]] */; +val* var42 /* : nullable Object */; +val* var43 /* : HashMap[Object, Set[Object]] */; +val* var45 /* : HashMap[Object, Set[Object]] */; +val* var46 /* : nullable Object */; +/* Covariant cast for argument 0 (buckets) isa Map[H, Set[E]] */ +/* isa Map[H, Set[E]] */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Mapcoloring__BucketsColorer_FT0abstract_collection__Setcoloring__BucketsColorer_FT1]; cltype = type_struct->color; idtype = type_struct->id; @@ -3170,8 +3337,8 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[BucketsColorer#0, Set[BucketsColorer#1]]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 313); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 309); show_backtrace(1); } var_buckets = p0; @@ -3180,7 +3347,7 @@ var_buckets = p0; var3 = self->attrs[COLOR_coloring__BucketsColorer___conflicts].val; /* _conflicts on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280); show_backtrace(1); } var1 = var3; @@ -3190,184 +3357,212 @@ RET_LABEL2:(void)0; { hash_collection__HashMap__clear(var1); /* Direct call hash_collection#HashMap#clear on */ } +var_ = var_buckets; { -var4 = ((val* (*)(val*))(var_buckets->class->vft[COLOR_abstract_collection__MapRead__iterator]))(var_buckets) /* iterator on */; +var4 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__MapRead__iterator]))(var_) /* iterator on */; } +var_5 = var4; for(;;) { { -var5 = ((short int (*)(val*))(var4->class->vft[COLOR_abstract_collection__MapIterator__is_ok]))(var4) /* is_ok on */; +var6 = ((short int (*)(val*))(var_5->class->vft[COLOR_abstract_collection__MapIterator__is_ok]))(var_5) /* is_ok on */; } -if(!var5) break; +if (var6){ { -var6 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__MapIterator__key]))(var4) /* key on */; +var7 = ((val* (*)(val*))(var_5->class->vft[COLOR_abstract_collection__MapIterator__key]))(var_5) /* key on */; } -var_holder = var6; +var_holder = var7; { -var7 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__MapIterator__item]))(var4) /* item on */; +var8 = ((val* (*)(val*))(var_5->class->vft[COLOR_abstract_collection__MapIterator__item]))(var_5) /* item on */; } -var_hbuckets = var7; +var_hbuckets = var8; +var_9 = var_hbuckets; { -var8 = ((val* (*)(val*))(var_hbuckets->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_hbuckets) /* iterator on */; +var10 = ((val* (*)(val*))(var_9->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_9) /* iterator on */; } +var_11 = var10; for(;;) { { -var9 = ((short int (*)(val*))(var8->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var8) /* is_ok on */; +var12 = ((short int (*)(val*))(var_11->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_11) /* is_ok on */; } -if(!var9) break; +if (var12){ { -var10 = ((val* (*)(val*))(var8->class->vft[COLOR_abstract_collection__Iterator__item]))(var8) /* item on */; +var13 = ((val* (*)(val*))(var_11->class->vft[COLOR_abstract_collection__Iterator__item]))(var_11) /* item on */; } -var_bucket = var10; +var_bucket = var13; { { /* Inline coloring#BucketsColorer#conflicts (self) on */ -var13 = self->attrs[COLOR_coloring__BucketsColorer___conflicts].val; /* _conflicts on */ -if (unlikely(var13 == NULL)) { +var16 = self->attrs[COLOR_coloring__BucketsColorer___conflicts].val; /* _conflicts on */ +if (unlikely(var16 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280); show_backtrace(1); } -var11 = var13; -RET_LABEL12:(void)0; +var14 = var16; +RET_LABEL15:(void)0; } } { -var14 = abstract_collection__MapRead__has_key(var11, var_bucket); +var17 = abstract_collection__MapRead__has_key(var14, var_bucket); } -var15 = !var14; -if (var15){ +var18 = !var17; +if (var18){ { { /* Inline coloring#BucketsColorer#conflicts (self) on */ -var18 = self->attrs[COLOR_coloring__BucketsColorer___conflicts].val; /* _conflicts on */ -if (unlikely(var18 == NULL)) { +var21 = self->attrs[COLOR_coloring__BucketsColorer___conflicts].val; /* _conflicts on */ +if (unlikely(var21 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280); show_backtrace(1); } -var16 = var18; -RET_LABEL17:(void)0; +var19 = var21; +RET_LABEL20:(void)0; } } -var19 = NEW_hash_collection__HashSet(self->type->resolution_table->types[COLOR_hash_collection__HashSetcoloring__BucketsColorer_FT1]); +var22 = NEW_hash_collection__HashSet(self->type->resolution_table->types[COLOR_hash_collection__HashSetcoloring__BucketsColorer_FT1]); { -hash_collection__HashSet__init(var19); /* Direct call hash_collection#HashSet#init on */ +((void (*)(val*))(var22->class->vft[COLOR_kernel__Object__init]))(var22) /* init on */; } { -hash_collection__HashMap___91d_93d_61d(var16, var_bucket, var19); /* Direct call hash_collection#HashMap#[]= on */ +hash_collection__HashMap___91d_93d_61d(var19, var_bucket, var22); /* Direct call hash_collection#HashMap#[]= on */ } } else { } +var_23 = var_hbuckets; { -var20 = ((val* (*)(val*))(var_hbuckets->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_hbuckets) /* iterator on */; +var24 = ((val* (*)(val*))(var_23->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_23) /* iterator on */; } +var_25 = var24; for(;;) { { -var21 = ((short int (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var20) /* is_ok on */; +var26 = ((short int (*)(val*))(var_25->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_25) /* is_ok on */; } -if(!var21) break; +if (var26){ { -var22 = ((val* (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__item]))(var20) /* item on */; +var27 = ((val* (*)(val*))(var_25->class->vft[COLOR_abstract_collection__Iterator__item]))(var_25) /* item on */; } -var_obucket = var22; +var_obucket = var27; { -var24 = ((short int (*)(val*, val*))(var_obucket->class->vft[COLOR_kernel__Object___61d_61d]))(var_obucket, var_bucket) /* == on */; -var23 = var24; +var29 = ((short int (*)(val*, val*))(var_obucket->class->vft[COLOR_kernel__Object___61d_61d]))(var_obucket, var_bucket) /* == on */; +var28 = var29; } -if (var23){ -goto CONTINUE_label; +if (var28){ +goto BREAK_label; } else { } { { /* Inline coloring#BucketsColorer#conflicts (self) on */ -var27 = self->attrs[COLOR_coloring__BucketsColorer___conflicts].val; /* _conflicts on */ -if (unlikely(var27 == NULL)) { +var32 = self->attrs[COLOR_coloring__BucketsColorer___conflicts].val; /* _conflicts on */ +if (unlikely(var32 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280); show_backtrace(1); } -var25 = var27; -RET_LABEL26:(void)0; +var30 = var32; +RET_LABEL31:(void)0; } } { -var28 = abstract_collection__MapRead__has_key(var25, var_obucket); +var33 = abstract_collection__MapRead__has_key(var30, var_obucket); } -var29 = !var28; -if (var29){ +var34 = !var33; +if (var34){ { { /* Inline coloring#BucketsColorer#conflicts (self) on */ -var32 = self->attrs[COLOR_coloring__BucketsColorer___conflicts].val; /* _conflicts on */ -if (unlikely(var32 == NULL)) { +var37 = self->attrs[COLOR_coloring__BucketsColorer___conflicts].val; /* _conflicts on */ +if (unlikely(var37 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280); show_backtrace(1); } -var30 = var32; -RET_LABEL31:(void)0; +var35 = var37; +RET_LABEL36:(void)0; } } -var33 = NEW_hash_collection__HashSet(self->type->resolution_table->types[COLOR_hash_collection__HashSetcoloring__BucketsColorer_FT1]); +var38 = NEW_hash_collection__HashSet(self->type->resolution_table->types[COLOR_hash_collection__HashSetcoloring__BucketsColorer_FT1]); { -hash_collection__HashSet__init(var33); /* Direct call hash_collection#HashSet#init on */ +((void (*)(val*))(var38->class->vft[COLOR_kernel__Object__init]))(var38) /* init on */; } { -hash_collection__HashMap___91d_93d_61d(var30, var_obucket, var33); /* Direct call hash_collection#HashMap#[]= on */ +hash_collection__HashMap___91d_93d_61d(var35, var_obucket, var38); /* Direct call hash_collection#HashMap#[]= on */ } } else { } { { /* Inline coloring#BucketsColorer#conflicts (self) on */ -var36 = self->attrs[COLOR_coloring__BucketsColorer___conflicts].val; /* _conflicts on */ -if (unlikely(var36 == NULL)) { +var41 = self->attrs[COLOR_coloring__BucketsColorer___conflicts].val; /* _conflicts on */ +if (unlikely(var41 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280); show_backtrace(1); } -var34 = var36; -RET_LABEL35:(void)0; +var39 = var41; +RET_LABEL40:(void)0; } } { -var37 = hash_collection__HashMap___91d_93d(var34, var_bucket); +var42 = hash_collection__HashMap___91d_93d(var39, var_bucket); } { -((void (*)(val*, val*))(var37->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var37, var_obucket) /* add on */; +((void (*)(val*, val*))(var42->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var42, var_obucket) /* add on */; } { { /* Inline coloring#BucketsColorer#conflicts (self) on */ -var40 = self->attrs[COLOR_coloring__BucketsColorer___conflicts].val; /* _conflicts on */ -if (unlikely(var40 == NULL)) { +var45 = self->attrs[COLOR_coloring__BucketsColorer___conflicts].val; /* _conflicts on */ +if (unlikely(var45 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 282); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 280); show_backtrace(1); } -var38 = var40; -RET_LABEL39:(void)0; +var43 = var45; +RET_LABEL44:(void)0; +} } +{ +var46 = hash_collection__HashMap___91d_93d(var43, var_obucket); } { -var41 = hash_collection__HashMap___91d_93d(var38, var_obucket); +((void (*)(val*, val*))(var46->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var46, var_bucket) /* add on */; } +BREAK_label: (void)0; { -((void (*)(val*, val*))(var41->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var41, var_bucket) /* add on */; +((void (*)(val*))(var_25->class->vft[COLOR_abstract_collection__Iterator__next]))(var_25) /* next on */; +} +} else { +goto BREAK_label47; +} } -CONTINUE_label: (void)0; +BREAK_label47: (void)0; { -((void (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__next]))(var20) /* next on */; +{ /* Inline abstract_collection#Iterator#finish (var_25) on */ +RET_LABEL48:(void)0; } } -BREAK_label: (void)0; -CONTINUE_label42: (void)0; { -((void (*)(val*))(var8->class->vft[COLOR_abstract_collection__Iterator__next]))(var8) /* next on */; +((void (*)(val*))(var_11->class->vft[COLOR_abstract_collection__Iterator__next]))(var_11) /* next on */; +} +} else { +goto BREAK_label49; +} +} +BREAK_label49: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_11) on */ +RET_LABEL50:(void)0; } } -BREAK_label42: (void)0; -CONTINUE_label43: (void)0; { -((void (*)(val*))(var4->class->vft[COLOR_abstract_collection__MapIterator__next]))(var4) /* next on */; +((void (*)(val*))(var_5->class->vft[COLOR_abstract_collection__MapIterator__next]))(var_5) /* next on */; +} +} else { +goto BREAK_label51; +} +} +BREAK_label51: (void)0; +{ +{ /* Inline abstract_collection#MapIterator#finish (var_5) on */ +RET_LABEL52:(void)0; } } -BREAK_label43: (void)0; RET_LABEL:; } /* method coloring#BucketsColorer#compute_conflicts for (self: Object, Map[Object, Set[Object]]) */ @@ -3382,7 +3577,7 @@ val* var1 /* : HashMap[Object, Int] */; var1 = self->attrs[COLOR_coloring__POSetBucketsColorer___colors].val; /* _colors on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330); show_backtrace(1); } var = var1; @@ -3398,7 +3593,7 @@ val* var3 /* : HashMap[Object, Int] */; var3 = self->attrs[COLOR_coloring__POSetBucketsColorer___colors].val; /* _colors on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330); show_backtrace(1); } var1 = var3; @@ -3415,7 +3610,7 @@ val* var1 /* : POSet[Object] */; var1 = self->attrs[COLOR_coloring__POSetBucketsColorer___poset].val; /* _poset on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 335); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 331); show_backtrace(1); } var = var1; @@ -3431,7 +3626,7 @@ val* var3 /* : POSet[Object] */; var3 = self->attrs[COLOR_coloring__POSetBucketsColorer___poset].val; /* _poset on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 335); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 331); show_backtrace(1); } var1 = var3; @@ -3448,8 +3643,8 @@ int cltype; int idtype; const struct type* type_struct; const char* var_class_name; -/* Covariant cast for argument 0 (poset) isa POSet[POSetBucketsColorer#0] */ -/* isa POSet[POSetBucketsColorer#0] */ +/* Covariant cast for argument 0 (poset) isa POSet[H] */ +/* isa POSet[H] */ type_struct = self->type->resolution_table->types[COLOR_poset__POSetcoloring__POSetBucketsColorer_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -3460,8 +3655,8 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetBucketsColorer#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 335); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[H]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 331); show_backtrace(1); } self->attrs[COLOR_coloring__POSetBucketsColorer___poset].val = p0; /* _poset on */ @@ -3475,8 +3670,8 @@ int idtype; const struct type* type_struct; const char* var_class_name; { /* Inline coloring#POSetBucketsColorer#poset= (self,p0) on */ -/* Covariant cast for argument 0 (poset) isa POSet[POSetBucketsColorer#0] */ -/* isa POSet[POSetBucketsColorer#0] */ +/* Covariant cast for argument 0 (poset) isa POSet[H] */ +/* isa POSet[H] */ type_struct = self->type->resolution_table->types[COLOR_poset__POSetcoloring__POSetBucketsColorer_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -3487,8 +3682,8 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetBucketsColorer#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 335); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[H]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 331); show_backtrace(1); } self->attrs[COLOR_coloring__POSetBucketsColorer___poset].val = p0; /* _poset on */ @@ -3503,7 +3698,7 @@ val* var1 /* : Map[Object, Set[Object]] */; var1 = self->attrs[COLOR_coloring__POSetBucketsColorer___conflicts].val; /* _conflicts on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 336); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 332); show_backtrace(1); } var = var1; @@ -3519,7 +3714,7 @@ val* var3 /* : Map[Object, Set[Object]] */; var3 = self->attrs[COLOR_coloring__POSetBucketsColorer___conflicts].val; /* _conflicts on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 336); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 332); show_backtrace(1); } var1 = var3; @@ -3536,8 +3731,8 @@ int cltype; int idtype; const struct type* type_struct; const char* var_class_name; -/* Covariant cast for argument 0 (conflicts) isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]] */ -/* isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]] */ +/* Covariant cast for argument 0 (conflicts) isa Map[H, Set[H]] */ +/* isa Map[H, Set[H]] */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -3548,8 +3743,8 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 336); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[H]]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 332); show_backtrace(1); } self->attrs[COLOR_coloring__POSetBucketsColorer___conflicts].val = p0; /* _conflicts on */ @@ -3563,8 +3758,8 @@ int idtype; const struct type* type_struct; const char* var_class_name; { /* Inline coloring#POSetBucketsColorer#conflicts= (self,p0) on */ -/* Covariant cast for argument 0 (conflicts) isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]] */ -/* isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]] */ +/* Covariant cast for argument 0 (conflicts) isa Map[H, Set[H]] */ +/* isa Map[H, Set[H]] */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -3575,8 +3770,8 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 336); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[H]]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 332); show_backtrace(1); } self->attrs[COLOR_coloring__POSetBucketsColorer___conflicts].val = p0; /* _conflicts on */ @@ -3608,8 +3803,8 @@ int cltype14; int idtype15; const struct type* type_struct16; const char* var_class_name17; -/* Covariant cast for argument 0 (poset) isa POSet[POSetBucketsColorer#0] */ -/* isa POSet[POSetBucketsColorer#0] */ +/* Covariant cast for argument 0 (poset) isa POSet[H] */ +/* isa POSet[H] */ type_struct = self->type->resolution_table->types[COLOR_poset__POSetcoloring__POSetBucketsColorer_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -3620,12 +3815,12 @@ var = p0->type->type_table[cltype] == idtype; } if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetBucketsColorer#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 338); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[H]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 334); show_backtrace(1); } -/* Covariant cast for argument 1 (conflicts) isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]] */ -/* isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]] */ +/* Covariant cast for argument 1 (conflicts) isa Map[H, Set[H]] */ +/* isa Map[H, Set[H]] */ type_struct4 = self->type->resolution_table->types[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT0]; cltype2 = type_struct4->color; idtype3 = type_struct4->id; @@ -3636,16 +3831,16 @@ var1 = p1->type->type_table[cltype2] == idtype3; } if (unlikely(!var1)) { var_class_name5 = p1 == NULL ? "null" : p1->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]]", var_class_name5); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 338); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[H]]", var_class_name5); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 334); show_backtrace(1); } var_poset = p0; var_conflicts = p1; { { /* Inline coloring#POSetBucketsColorer#poset= (self,var_poset) on */ -/* Covariant cast for argument 0 (poset) isa POSet[POSetBucketsColorer#0] */ -/* isa POSet[POSetBucketsColorer#0] */ +/* Covariant cast for argument 0 (poset) isa POSet[H] */ +/* isa POSet[H] */ type_struct10 = self->type->resolution_table->types[COLOR_poset__POSetcoloring__POSetBucketsColorer_FT0]; cltype8 = type_struct10->color; idtype9 = type_struct10->id; @@ -3656,8 +3851,8 @@ var7 = var_poset->type->type_table[cltype8] == idtype9; } if (unlikely(!var7)) { var_class_name11 = var_poset == NULL ? "null" : var_poset->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[POSetBucketsColorer#0]", var_class_name11); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 335); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSet[H]", var_class_name11); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 331); show_backtrace(1); } self->attrs[COLOR_coloring__POSetBucketsColorer___poset].val = var_poset; /* _poset on */ @@ -3666,8 +3861,8 @@ RET_LABEL6:(void)0; } { { /* Inline coloring#POSetBucketsColorer#conflicts= (self,var_conflicts) on */ -/* Covariant cast for argument 0 (conflicts) isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]] */ -/* isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]] */ +/* Covariant cast for argument 0 (conflicts) isa Map[H, Set[H]] */ +/* isa Map[H, Set[H]] */ type_struct16 = self->type->resolution_table->types[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT0]; cltype14 = type_struct16->color; idtype15 = type_struct16->id; @@ -3678,8 +3873,8 @@ var13 = var_conflicts->type->type_table[cltype14] == idtype15; } if (unlikely(!var13)) { var_class_name17 = var_conflicts == NULL ? "null" : var_conflicts->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]]", var_class_name17); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 336); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[H]]", var_class_name17); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 332); show_backtrace(1); } self->attrs[COLOR_coloring__POSetBucketsColorer___conflicts].val = var_conflicts; /* _conflicts on */ @@ -3708,47 +3903,51 @@ val* var5 /* : POSet[Object] */; val* var7 /* : POSet[Object] */; val* var8 /* : Collection[Object] */; val* var9 /* : Array[Object] */; +val* var_ /* var : Array[Object] */; val* var10 /* : ArrayIterator[nullable Object] */; -short int var11 /* : Bool */; -val* var12 /* : nullable Object */; +val* var_11 /* var : ArrayIterator[Object] */; +short int var12 /* : Bool */; +val* var13 /* : nullable Object */; val* var_h /* var h: Object */; -val* var13 /* : POSet[Object] */; -val* var15 /* : POSet[Object] */; -val* var16 /* : POSetElement[Object] */; -val* var17 /* : Collection[Object] */; -long var18 /* : Int */; +val* var14 /* : POSet[Object] */; +val* var16 /* : POSet[Object] */; +val* var17 /* : POSetElement[Object] */; +val* var18 /* : Collection[Object] */; +long var19 /* : Int */; long var_color /* var color: Int */; -val* var19 /* : nullable Object */; -val* var20 /* : Iterator[nullable Object] */; -short int var21 /* : Bool */; -val* var22 /* : nullable Object */; +val* var20 /* : nullable Object */; +val* var_21 /* var : Set[Object] */; +val* var22 /* : Iterator[nullable Object] */; +val* var_23 /* var : Iterator[Object] */; +short int var24 /* : Bool */; +val* var25 /* : nullable Object */; val* var_bucket /* var bucket: Object */; -val* var23 /* : HashMap[Object, Int] */; -val* var25 /* : HashMap[Object, Int] */; -short int var26 /* : Bool */; -short int var27 /* : Bool */; -short int var28 /* : Bool */; -long var29 /* : Int */; -long var30 /* : Int */; -short int var32 /* : Bool */; -int cltype33; -int idtype34; -const char* var_class_name35; -long var36 /* : Int */; -val* var38 /* : HashMap[Object, Int] */; -val* var40 /* : HashMap[Object, Int] */; -val* var41 /* : nullable Object */; -long var42 /* : Int */; -long var43 /* : Int */; -short int var45 /* : Bool */; -int cltype46; -int idtype47; -const char* var_class_name48; -long var49 /* : Int */; -val* var51 /* : HashMap[Object, Int] */; -val* var53 /* : HashMap[Object, Int] */; -/* Covariant cast for argument 0 (buckets) isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]] */ -/* isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]] */ +val* var26 /* : HashMap[Object, Int] */; +val* var28 /* : HashMap[Object, Int] */; +short int var29 /* : Bool */; +short int var30 /* : Bool */; +short int var31 /* : Bool */; +long var32 /* : Int */; +long var33 /* : Int */; +short int var35 /* : Bool */; +int cltype36; +int idtype37; +const char* var_class_name38; +long var39 /* : Int */; +val* var41 /* : HashMap[Object, Int] */; +val* var43 /* : HashMap[Object, Int] */; +val* var44 /* : nullable Object */; +long var45 /* : Int */; +long var46 /* : Int */; +short int var48 /* : Bool */; +int cltype49; +int idtype50; +const char* var_class_name51; +long var52 /* : Int */; +val* var57 /* : HashMap[Object, Int] */; +val* var59 /* : HashMap[Object, Int] */; +/* Covariant cast for argument 0 (buckets) isa Map[H, Set[E]] */ +/* isa Map[H, Set[E]] */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT1]; cltype = type_struct->color; idtype = type_struct->id; @@ -3759,8 +3958,8 @@ var1 = p0->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 343); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 339); show_backtrace(1); } var_buckets = p0; @@ -3769,7 +3968,7 @@ var_buckets = p0; var4 = self->attrs[COLOR_coloring__POSetBucketsColorer___colors].val; /* _colors on */ if (unlikely(var4 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330); show_backtrace(1); } var2 = var4; @@ -3784,7 +3983,7 @@ hash_collection__HashMap__clear(var2); /* Direct call hash_collection#HashMap#cl var7 = self->attrs[COLOR_coloring__POSetBucketsColorer___poset].val; /* _poset on */ if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 335); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 331); show_backtrace(1); } var5 = var7; @@ -3797,162 +3996,183 @@ var8 = ((val* (*)(val*))(var_buckets->class->vft[COLOR_abstract_collection__MapR { var9 = poset__POSet__linearize(var5, var8); } +var_ = var9; { -var10 = array__AbstractArrayRead__iterator(var9); +var10 = array__AbstractArrayRead__iterator(var_); } +var_11 = var10; for(;;) { { -var11 = array__ArrayIterator__is_ok(var10); +var12 = array__ArrayIterator__is_ok(var_11); } -if(!var11) break; +if (var12){ { -var12 = array__ArrayIterator__item(var10); +var13 = array__ArrayIterator__item(var_11); } -var_h = var12; +var_h = var13; { { /* Inline coloring#POSetBucketsColorer#poset (self) on */ -var15 = self->attrs[COLOR_coloring__POSetBucketsColorer___poset].val; /* _poset on */ -if (unlikely(var15 == NULL)) { +var16 = self->attrs[COLOR_coloring__POSetBucketsColorer___poset].val; /* _poset on */ +if (unlikely(var16 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 335); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 331); show_backtrace(1); } -var13 = var15; -RET_LABEL14:(void)0; +var14 = var16; +RET_LABEL15:(void)0; } } { -var16 = poset__POSet___91d_93d(var13, var_h); +var17 = poset__POSet___91d_93d(var14, var_h); } { -var17 = poset__POSetElement__direct_greaters(var16); +var18 = poset__POSetElement__direct_greaters(var17); } { -var18 = coloring__POSetBucketsColorer__min_color(self, var17, var_buckets); +var19 = coloring__POSetBucketsColorer__min_color(self, var18, var_buckets); } -var_color = var18; +var_color = var19; { -var19 = ((val* (*)(val*, val*))(var_buckets->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var_buckets, var_h) /* [] on */; +var20 = ((val* (*)(val*, val*))(var_buckets->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var_buckets, var_h) /* [] on */; } +var_21 = var20; { -var20 = ((val* (*)(val*))(var19->class->vft[COLOR_abstract_collection__Collection__iterator]))(var19) /* iterator on */; +var22 = ((val* (*)(val*))(var_21->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_21) /* iterator on */; } +var_23 = var22; for(;;) { { -var21 = ((short int (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var20) /* is_ok on */; +var24 = ((short int (*)(val*))(var_23->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_23) /* is_ok on */; } -if(!var21) break; +if (var24){ { -var22 = ((val* (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__item]))(var20) /* item on */; +var25 = ((val* (*)(val*))(var_23->class->vft[COLOR_abstract_collection__Iterator__item]))(var_23) /* item on */; } -var_bucket = var22; +var_bucket = var25; { { /* Inline coloring#POSetBucketsColorer#colors (self) on */ -var25 = self->attrs[COLOR_coloring__POSetBucketsColorer___colors].val; /* _colors on */ -if (unlikely(var25 == NULL)) { +var28 = self->attrs[COLOR_coloring__POSetBucketsColorer___colors].val; /* _colors on */ +if (unlikely(var28 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330); show_backtrace(1); } -var23 = var25; -RET_LABEL24:(void)0; +var26 = var28; +RET_LABEL27:(void)0; } } { -var26 = abstract_collection__MapRead__has_key(var23, var_bucket); +var29 = abstract_collection__MapRead__has_key(var26, var_bucket); } -if (var26){ -goto CONTINUE_label; +if (var29){ +goto BREAK_label; } else { } for(;;) { { -var27 = coloring__POSetBucketsColorer__is_color_free(self, var_color, var_h, var_buckets); +var30 = coloring__POSetBucketsColorer__is_color_free(self, var_color, var_h, var_buckets); } -var28 = !var27; -if (!var28) break; -var29 = 1; +var31 = !var30; +if (var31){ +var32 = 1; { -{ /* Inline kernel#Int#+ (var_color,var29) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var32 = 1; /* easy isa OTHER*/ -if (unlikely(!var32)) { -var_class_name35 = type_kernel__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328); +{ /* Inline kernel#Int#+ (var_color,var32) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var35 = 1; /* easy isa OTHER*/ +if (unlikely(!var35)) { +var_class_name38 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name38); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var36 = var_color + var29; -var30 = var36; -goto RET_LABEL31; -RET_LABEL31:(void)0; +var39 = var_color + var32; +var33 = var39; +goto RET_LABEL34; +RET_LABEL34:(void)0; +} } +var_color = var33; +} else { +goto BREAK_label40; } -var_color = var30; -CONTINUE_label37: (void)0; } -BREAK_label37: (void)0; +BREAK_label40: (void)0; { { /* Inline coloring#POSetBucketsColorer#colors (self) on */ -var40 = self->attrs[COLOR_coloring__POSetBucketsColorer___colors].val; /* _colors on */ -if (unlikely(var40 == NULL)) { +var43 = self->attrs[COLOR_coloring__POSetBucketsColorer___colors].val; /* _colors on */ +if (unlikely(var43 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330); show_backtrace(1); } -var38 = var40; -RET_LABEL39:(void)0; +var41 = var43; +RET_LABEL42:(void)0; } } { -var41 = BOX_kernel__Int(var_color); /* autobox from Int to nullable Object */ -hash_collection__HashMap___91d_93d_61d(var38, var_bucket, var41); /* Direct call hash_collection#HashMap#[]= on */ +var44 = BOX_kernel__Int(var_color); /* autobox from Int to nullable Object */ +hash_collection__HashMap___91d_93d_61d(var41, var_bucket, var44); /* Direct call hash_collection#HashMap#[]= on */ } -var42 = 1; +var45 = 1; { -{ /* Inline kernel#Int#+ (var_color,var42) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var45 = 1; /* easy isa OTHER*/ -if (unlikely(!var45)) { -var_class_name48 = type_kernel__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328); +{ /* Inline kernel#Int#+ (var_color,var45) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var48 = 1; /* easy isa OTHER*/ +if (unlikely(!var48)) { +var_class_name51 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name51); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var49 = var_color + var42; -var43 = var49; -goto RET_LABEL44; -RET_LABEL44:(void)0; +var52 = var_color + var45; +var46 = var52; +goto RET_LABEL47; +RET_LABEL47:(void)0; +} +} +var_color = var46; +BREAK_label: (void)0; +{ +((void (*)(val*))(var_23->class->vft[COLOR_abstract_collection__Iterator__next]))(var_23) /* next on */; +} +} else { +goto BREAK_label53; } } -var_color = var43; -CONTINUE_label: (void)0; +BREAK_label53: (void)0; { -((void (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__next]))(var20) /* next on */; +{ /* Inline abstract_collection#Iterator#finish (var_23) on */ +RET_LABEL54:(void)0; } } -BREAK_label: (void)0; -CONTINUE_label50: (void)0; { -array__ArrayIterator__next(var10); /* Direct call array#ArrayIterator#next on */ +array__ArrayIterator__next(var_11); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label55; +} +} +BREAK_label55: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_11) on */ +RET_LABEL56:(void)0; } } -BREAK_label50: (void)0; { { /* Inline coloring#POSetBucketsColorer#colors (self) on */ -var53 = self->attrs[COLOR_coloring__POSetBucketsColorer___colors].val; /* _colors on */ -if (unlikely(var53 == NULL)) { +var59 = self->attrs[COLOR_coloring__POSetBucketsColorer___colors].val; /* _colors on */ +if (unlikely(var59 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330); show_backtrace(1); } -var51 = var53; -RET_LABEL52:(void)0; +var57 = var59; +RET_LABEL58:(void)0; } } -var = var51; +var = var57; goto RET_LABEL; RET_LABEL:; return var; @@ -3985,27 +4205,29 @@ long var7 /* : Int */; long var8 /* : Int */; long var10 /* : Int */; long var_min /* var min: Int */; +val* var_ /* var : Collection[Object] */; val* var11 /* : Iterator[nullable Object] */; -short int var12 /* : Bool */; -val* var13 /* : nullable Object */; +val* var_12 /* var : Iterator[Object] */; +short int var13 /* : Bool */; +val* var14 /* : nullable Object */; val* var_holder /* var holder: Object */; -long var14 /* : Int */; +long var15 /* : Int */; long var_color /* var color: Int */; -short int var15 /* : Bool */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -const char* var_class_name20; -short int var21 /* : Bool */; -long var22 /* : Int */; -long var23 /* : Int */; -short int var25 /* : Bool */; -int cltype26; -int idtype27; -const char* var_class_name28; -long var29 /* : Int */; -/* Covariant cast for argument 0 (others) isa Collection[POSetBucketsColorer#0] */ -/* isa Collection[POSetBucketsColorer#0] */ +short int var16 /* : Bool */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +const char* var_class_name21; +short int var22 /* : Bool */; +long var24 /* : Int */; +long var25 /* : Int */; +short int var27 /* : Bool */; +int cltype28; +int idtype29; +const char* var_class_name30; +long var31 /* : Int */; +/* Covariant cast for argument 0 (others) isa Collection[H] */ +/* isa Collection[H] */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Collectioncoloring__POSetBucketsColorer_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -4016,12 +4238,12 @@ var1 = p0->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[POSetBucketsColorer#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 358); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[H]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 354); show_backtrace(1); } -/* Covariant cast for argument 1 (buckets) isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]] */ -/* isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]] */ +/* Covariant cast for argument 1 (buckets) isa Map[H, Set[E]] */ +/* isa Map[H, Set[E]] */ type_struct5 = self->type->resolution_table->types[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT1]; cltype3 = type_struct5->color; idtype4 = type_struct5->id; @@ -4032,8 +4254,8 @@ var2 = p1->type->type_table[cltype3] == idtype4; } if (unlikely(!var2)) { var_class_name6 = p1 == NULL ? "null" : p1->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]]", var_class_name6); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 358); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name6); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 354); show_backtrace(1); } var_others = p0; @@ -4048,68 +4270,77 @@ RET_LABEL9:(void)0; } } var_min = var8; +var_ = var_others; { -var11 = ((val* (*)(val*))(var_others->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_others) /* iterator on */; +var11 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_12 = var11; for(;;) { { -var12 = ((short int (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var11) /* is_ok on */; +var13 = ((short int (*)(val*))(var_12->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_12) /* is_ok on */; } -if(!var12) break; +if (var13){ { -var13 = ((val* (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__item]))(var11) /* item on */; +var14 = ((val* (*)(val*))(var_12->class->vft[COLOR_abstract_collection__Iterator__item]))(var_12) /* item on */; } -var_holder = var13; +var_holder = var14; { -var14 = coloring__POSetBucketsColorer__max_color(self, var_holder, var_buckets); +var15 = coloring__POSetBucketsColorer__max_color(self, var_holder, var_buckets); } -var_color = var14; +var_color = var15; { { /* Inline kernel#Int#> (var_color,var_min) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var17 = 1; /* easy isa OTHER*/ -if (unlikely(!var17)) { -var_class_name20 = type_kernel__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327); +var18 = 1; /* easy isa OTHER*/ +if (unlikely(!var18)) { +var_class_name21 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); show_backtrace(1); } -var21 = var_color > var_min; -var15 = var21; -goto RET_LABEL16; -RET_LABEL16:(void)0; +var22 = var_color > var_min; +var16 = var22; +goto RET_LABEL17; +RET_LABEL17:(void)0; } } -if (var15){ +if (var16){ var_min = var_color; } else { } -CONTINUE_label: (void)0; { -((void (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__next]))(var11) /* next on */; +((void (*)(val*))(var_12->class->vft[COLOR_abstract_collection__Iterator__next]))(var_12) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; -var22 = 1; { -{ /* Inline kernel#Int#+ (var_min,var22) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var25 = 1; /* easy isa OTHER*/ -if (unlikely(!var25)) { -var_class_name28 = type_kernel__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328); +{ /* Inline abstract_collection#Iterator#finish (var_12) on */ +RET_LABEL23:(void)0; +} +} +var24 = 1; +{ +{ /* Inline kernel#Int#+ (var_min,var24) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var27 = 1; /* easy isa OTHER*/ +if (unlikely(!var27)) { +var_class_name30 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var29 = var_min + var22; -var23 = var29; -goto RET_LABEL24; -RET_LABEL24:(void)0; +var31 = var_min + var24; +var25 = var31; +goto RET_LABEL26; +RET_LABEL26:(void)0; } } -var = var23; +var = var25; goto RET_LABEL; RET_LABEL:; return var; @@ -4143,27 +4374,29 @@ long var8 /* : Int */; long var10 /* : Int */; long var_max /* var max: Int */; val* var11 /* : nullable Object */; +val* var_ /* var : Set[Object] */; val* var12 /* : Iterator[nullable Object] */; -short int var13 /* : Bool */; -val* var14 /* : nullable Object */; +val* var_13 /* var : Iterator[Object] */; +short int var14 /* : Bool */; +val* var15 /* : nullable Object */; val* var_bucket /* var bucket: Object */; -val* var15 /* : HashMap[Object, Int] */; -val* var17 /* : HashMap[Object, Int] */; -short int var18 /* : Bool */; +val* var16 /* : HashMap[Object, Int] */; +val* var18 /* : HashMap[Object, Int] */; short int var19 /* : Bool */; -val* var20 /* : HashMap[Object, Int] */; -val* var22 /* : HashMap[Object, Int] */; -val* var23 /* : nullable Object */; -long var24 /* : Int */; +short int var20 /* : Bool */; +val* var21 /* : HashMap[Object, Int] */; +val* var23 /* : HashMap[Object, Int] */; +val* var24 /* : nullable Object */; +long var25 /* : Int */; long var_color /* var color: Int */; -short int var25 /* : Bool */; -short int var27 /* : Bool */; -int cltype28; -int idtype29; -const char* var_class_name30; -short int var31 /* : Bool */; -/* Covariant cast for argument 0 (holder) isa POSetBucketsColorer#0 */ -/* isa POSetBucketsColorer#0 */ +short int var26 /* : Bool */; +short int var28 /* : Bool */; +int cltype29; +int idtype30; +const char* var_class_name31; +short int var32 /* : Bool */; +/* Covariant cast for argument 0 (holder) isa H */ +/* isa H */ type_struct = self->type->resolution_table->types[COLOR_coloring__POSetBucketsColorer_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -4174,12 +4407,12 @@ var1 = p0->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetBucketsColorer#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 368); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "H", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 364); show_backtrace(1); } -/* Covariant cast for argument 1 (buckets) isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]] */ -/* isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]] */ +/* Covariant cast for argument 1 (buckets) isa Map[H, Set[E]] */ +/* isa Map[H, Set[E]] */ type_struct5 = self->type->resolution_table->types[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT1]; cltype3 = type_struct5->color; idtype4 = type_struct5->id; @@ -4190,8 +4423,8 @@ var2 = p1->type->type_table[cltype3] == idtype4; } if (unlikely(!var2)) { var_class_name6 = p1 == NULL ? "null" : p1->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]]", var_class_name6); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 368); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name6); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 364); show_backtrace(1); } var_holder = p0; @@ -4209,82 +4442,92 @@ var_max = var8; { var11 = ((val* (*)(val*, val*))(var_buckets->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var_buckets, var_holder) /* [] on */; } +var_ = var11; { -var12 = ((val* (*)(val*))(var11->class->vft[COLOR_abstract_collection__Collection__iterator]))(var11) /* iterator on */; +var12 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_13 = var12; for(;;) { { -var13 = ((short int (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var12) /* is_ok on */; +var14 = ((short int (*)(val*))(var_13->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_13) /* is_ok on */; } -if(!var13) break; +if (var14){ { -var14 = ((val* (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__item]))(var12) /* item on */; +var15 = ((val* (*)(val*))(var_13->class->vft[COLOR_abstract_collection__Iterator__item]))(var_13) /* item on */; } -var_bucket = var14; +var_bucket = var15; { { /* Inline coloring#POSetBucketsColorer#colors (self) on */ -var17 = self->attrs[COLOR_coloring__POSetBucketsColorer___colors].val; /* _colors on */ -if (unlikely(var17 == NULL)) { +var18 = self->attrs[COLOR_coloring__POSetBucketsColorer___colors].val; /* _colors on */ +if (unlikely(var18 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330); show_backtrace(1); } -var15 = var17; -RET_LABEL16:(void)0; +var16 = var18; +RET_LABEL17:(void)0; } } { -var18 = abstract_collection__MapRead__has_key(var15, var_bucket); +var19 = abstract_collection__MapRead__has_key(var16, var_bucket); } -var19 = !var18; -if (var19){ -goto CONTINUE_label; +var20 = !var19; +if (var20){ +goto BREAK_label; } else { } { { /* Inline coloring#POSetBucketsColorer#colors (self) on */ -var22 = self->attrs[COLOR_coloring__POSetBucketsColorer___colors].val; /* _colors on */ -if (unlikely(var22 == NULL)) { +var23 = self->attrs[COLOR_coloring__POSetBucketsColorer___colors].val; /* _colors on */ +if (unlikely(var23 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330); show_backtrace(1); } -var20 = var22; -RET_LABEL21:(void)0; +var21 = var23; +RET_LABEL22:(void)0; } } { -var23 = hash_collection__HashMap___91d_93d(var20, var_bucket); +var24 = hash_collection__HashMap___91d_93d(var21, var_bucket); } -var24 = ((struct instance_kernel__Int*)var23)->value; /* autounbox from nullable Object to Int */; -var_color = var24; +var25 = ((struct instance_kernel__Int*)var24)->value; /* autounbox from nullable Object to Int */; +var_color = var25; { { /* Inline kernel#Int#> (var_color,var_max) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var27 = 1; /* easy isa OTHER*/ -if (unlikely(!var27)) { -var_class_name30 = type_kernel__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327); +var28 = 1; /* easy isa OTHER*/ +if (unlikely(!var28)) { +var_class_name31 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); show_backtrace(1); } -var31 = var_color > var_max; -var25 = var31; -goto RET_LABEL26; -RET_LABEL26:(void)0; +var32 = var_color > var_max; +var26 = var32; +goto RET_LABEL27; +RET_LABEL27:(void)0; } } -if (var25){ +if (var26){ var_max = var_color; } else { } -CONTINUE_label: (void)0; +BREAK_label: (void)0; +{ +((void (*)(val*))(var_13->class->vft[COLOR_abstract_collection__Iterator__next]))(var_13) /* next on */; +} +} else { +goto BREAK_label33; +} +} +BREAK_label33: (void)0; { -((void (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__next]))(var12) /* next on */; +{ /* Inline abstract_collection#Iterator#finish (var_13) on */ +RET_LABEL34:(void)0; } } -BREAK_label: (void)0; var = var_max; goto RET_LABEL; RET_LABEL:; @@ -4323,30 +4566,34 @@ short int var12 /* : Bool */; val* var13 /* : Map[Object, Set[Object]] */; val* var15 /* : Map[Object, Set[Object]] */; val* var16 /* : nullable Object */; +val* var_ /* var : Set[Object] */; val* var17 /* : Iterator[nullable Object] */; -short int var18 /* : Bool */; -val* var19 /* : nullable Object */; -val* var_conflict /* var conflict: Object */; +val* var_18 /* var : Iterator[Object] */; +short int var19 /* : Bool */; val* var20 /* : nullable Object */; -val* var21 /* : Iterator[nullable Object] */; -short int var22 /* : Bool */; -val* var23 /* : nullable Object */; +val* var_conflict /* var conflict: Object */; +val* var21 /* : nullable Object */; +val* var_22 /* var : Set[Object] */; +val* var23 /* : Iterator[nullable Object] */; +val* var_24 /* var : Iterator[Object] */; +short int var25 /* : Bool */; +val* var26 /* : nullable Object */; val* var_bucket /* var bucket: Object */; -val* var24 /* : HashMap[Object, Int] */; -val* var26 /* : HashMap[Object, Int] */; -short int var27 /* : Bool */; -short int var28 /* : Bool */; +val* var27 /* : HashMap[Object, Int] */; val* var29 /* : HashMap[Object, Int] */; -val* var31 /* : HashMap[Object, Int] */; -val* var32 /* : nullable Object */; -short int var33 /* : Bool */; -short int var34 /* : Bool */; +short int var30 /* : Bool */; +short int var31 /* : Bool */; +val* var32 /* : HashMap[Object, Int] */; +val* var34 /* : HashMap[Object, Int] */; +val* var35 /* : nullable Object */; short int var36 /* : Bool */; -long var37 /* : Int */; -short int var38 /* : Bool */; -short int var40 /* : Bool */; -/* Covariant cast for argument 1 (holder) isa POSetBucketsColorer#0 */ -/* isa POSetBucketsColorer#0 */ +short int var37 /* : Bool */; +short int var39 /* : Bool */; +long var40 /* : Int */; +short int var41 /* : Bool */; +short int var46 /* : Bool */; +/* Covariant cast for argument 1 (holder) isa H */ +/* isa H */ type_struct = self->type->resolution_table->types[COLOR_coloring__POSetBucketsColorer_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -4357,12 +4604,12 @@ var1 = p1->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p1 == NULL ? "null" : p1->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "POSetBucketsColorer#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 379); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "H", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 375); show_backtrace(1); } -/* Covariant cast for argument 2 (buckets) isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]] */ -/* isa Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]] */ +/* Covariant cast for argument 2 (buckets) isa Map[H, Set[E]] */ +/* isa Map[H, Set[E]] */ type_struct5 = self->type->resolution_table->types[COLOR_abstract_collection__Mapcoloring__POSetBucketsColorer_FT0abstract_collection__Setcoloring__POSetBucketsColorer_FT1]; cltype3 = type_struct5->color; idtype4 = type_struct5->id; @@ -4373,8 +4620,8 @@ var2 = p2->type->type_table[cltype3] == idtype4; } if (unlikely(!var2)) { var_class_name6 = p2 == NULL ? "null" : p2->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]]", var_class_name6); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 379); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[H, Set[E]]", var_class_name6); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 375); show_backtrace(1); } var_color = p0; @@ -4385,7 +4632,7 @@ var_buckets = p2; var9 = self->attrs[COLOR_coloring__POSetBucketsColorer___conflicts].val; /* _conflicts on */ if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 336); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 332); show_backtrace(1); } var7 = var9; @@ -4407,7 +4654,7 @@ goto RET_LABEL; var15 = self->attrs[COLOR_coloring__POSetBucketsColorer___conflicts].val; /* _conflicts on */ if (unlikely(var15 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _conflicts"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 336); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 332); show_backtrace(1); } var13 = var15; @@ -4417,101 +4664,120 @@ RET_LABEL14:(void)0; { var16 = ((val* (*)(val*, val*))(var13->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var13, var_holder) /* [] on */; } +var_ = var16; { -var17 = ((val* (*)(val*))(var16->class->vft[COLOR_abstract_collection__Collection__iterator]))(var16) /* iterator on */; +var17 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_18 = var17; for(;;) { { -var18 = ((short int (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var17) /* is_ok on */; +var19 = ((short int (*)(val*))(var_18->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_18) /* is_ok on */; } -if(!var18) break; +if (var19){ { -var19 = ((val* (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__item]))(var17) /* item on */; +var20 = ((val* (*)(val*))(var_18->class->vft[COLOR_abstract_collection__Iterator__item]))(var_18) /* item on */; } -var_conflict = var19; +var_conflict = var20; { -var20 = ((val* (*)(val*, val*))(var_buckets->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var_buckets, var_conflict) /* [] on */; +var21 = ((val* (*)(val*, val*))(var_buckets->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var_buckets, var_conflict) /* [] on */; } +var_22 = var21; { -var21 = ((val* (*)(val*))(var20->class->vft[COLOR_abstract_collection__Collection__iterator]))(var20) /* iterator on */; +var23 = ((val* (*)(val*))(var_22->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_22) /* iterator on */; } +var_24 = var23; for(;;) { { -var22 = ((short int (*)(val*))(var21->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var21) /* is_ok on */; +var25 = ((short int (*)(val*))(var_24->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_24) /* is_ok on */; } -if(!var22) break; +if (var25){ { -var23 = ((val* (*)(val*))(var21->class->vft[COLOR_abstract_collection__Iterator__item]))(var21) /* item on */; +var26 = ((val* (*)(val*))(var_24->class->vft[COLOR_abstract_collection__Iterator__item]))(var_24) /* item on */; } -var_bucket = var23; +var_bucket = var26; { { /* Inline coloring#POSetBucketsColorer#colors (self) on */ -var26 = self->attrs[COLOR_coloring__POSetBucketsColorer___colors].val; /* _colors on */ -if (unlikely(var26 == NULL)) { +var29 = self->attrs[COLOR_coloring__POSetBucketsColorer___colors].val; /* _colors on */ +if (unlikely(var29 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330); show_backtrace(1); } -var24 = var26; -RET_LABEL25:(void)0; +var27 = var29; +RET_LABEL28:(void)0; } } { -var27 = abstract_collection__MapRead__has_key(var24, var_bucket); +var30 = abstract_collection__MapRead__has_key(var27, var_bucket); } -var28 = !var27; -if (var28){ -goto CONTINUE_label; +var31 = !var30; +if (var31){ +goto BREAK_label; } else { } { { /* Inline coloring#POSetBucketsColorer#colors (self) on */ -var31 = self->attrs[COLOR_coloring__POSetBucketsColorer___colors].val; /* _colors on */ -if (unlikely(var31 == NULL)) { +var34 = self->attrs[COLOR_coloring__POSetBucketsColorer___colors].val; /* _colors on */ +if (unlikely(var34 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _colors"); -PRINT_ERROR(" (%s:%d)\n", "src/coloring.nit", 334); +PRINT_ERROR(" (%s:%d)\n", "compiler/coloring.nit", 330); show_backtrace(1); } -var29 = var31; -RET_LABEL30:(void)0; +var32 = var34; +RET_LABEL33:(void)0; } } { -var32 = hash_collection__HashMap___91d_93d(var29, var_bucket); +var35 = hash_collection__HashMap___91d_93d(var32, var_bucket); } { -{ /* Inline kernel#Int#== (var32,var_color) on */ -var36 = (var32 != NULL) && (var32->class == &class_kernel__Int); -if (var36) { -var37 = ((struct instance_kernel__Int*)var32)->value; /* autounbox from nullable Object to Int */; -var36 = (var37 == var_color); +{ /* Inline kernel#Int#== (var35,var_color) on */ +var39 = (var35 != NULL) && (var35->class == &class_kernel__Int); +if (var39) { +var40 = ((struct instance_kernel__Int*)var35)->value; /* autounbox from nullable Object to Int */; +var39 = (var40 == var_color); } -var34 = var36; -goto RET_LABEL35; -RET_LABEL35:(void)0; +var37 = var39; +goto RET_LABEL38; +RET_LABEL38:(void)0; } -var33 = var34; +var36 = var37; } -if (var33){ -var38 = 0; -var = var38; +if (var36){ +var41 = 0; +var = var41; goto RET_LABEL; } else { } -CONTINUE_label: (void)0; +BREAK_label: (void)0; { -((void (*)(val*))(var21->class->vft[COLOR_abstract_collection__Iterator__next]))(var21) /* next on */; +((void (*)(val*))(var_24->class->vft[COLOR_abstract_collection__Iterator__next]))(var_24) /* next on */; } +} else { +goto BREAK_label42; } -BREAK_label: (void)0; -CONTINUE_label39: (void)0; +} +BREAK_label42: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_24) on */ +RET_LABEL43:(void)0; +} +} +{ +((void (*)(val*))(var_18->class->vft[COLOR_abstract_collection__Iterator__next]))(var_18) /* next on */; +} +} else { +goto BREAK_label44; +} +} +BREAK_label44: (void)0; { -((void (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__next]))(var17) /* next on */; +{ /* Inline abstract_collection#Iterator#finish (var_18) on */ +RET_LABEL45:(void)0; } } -BREAK_label39: (void)0; -var40 = 1; -var = var40; +var46 = 1; +var = var46; goto RET_LABEL; RET_LABEL:; return var;