X-Git-Url: http://nitlanguage.org diff --git a/c_src/range.sep.1.c b/c_src/range.sep.1.c index d48edcb..266a030 100644 --- a/c_src/range.sep.1.c +++ b/c_src/range.sep.1.c @@ -4,9 +4,10 @@ val* range__Range__first(val* self) { val* var /* : Discrete */; val* var1 /* : Discrete */; var1 = self->attrs[COLOR_range__Range___first].val; /* _first on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _first", "lib/standard/collection/range.nit", 22); -exit(1); +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _first"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -16,19 +17,85 @@ return var; val* VIRTUAL_range__Range__first(val* self) { val* var /* : nullable Object */; val* var1 /* : Discrete */; -var1 = range__Range__first(self); +val* var3 /* : Discrete */; +{ /* Inline range#Range#first (self) on */ +var3 = self->attrs[COLOR_range__Range___first].val; /* _first on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _first"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } +/* method range#Range#first= for (self: Range[Discrete], Discrete) */ +void range__Range__first_61d(val* self, val* p0) { +short int var /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +/* Covariant cast for argument 0 (first) isa Range#0 */ +/* isa Range#0 */ +type_struct = self->type->resolution_table->types[COLOR_range__Range_FT0]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var = 0; +} else { +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`", "Range#0", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22); +show_backtrace(1); +} +self->attrs[COLOR_range__Range___first].val = p0; /* _first on */ +RET_LABEL:; +} +/* method range#Range#first= for (self: Object, Discrete) */ +void VIRTUAL_range__Range__first_61d(val* self, val* p0) { +short int var /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +{ /* Inline range#Range#first= (self,p0) on */ +/* Covariant cast for argument 0 (first) isa Range#0 */ +/* isa Range#0 */ +type_struct = self->type->resolution_table->types[COLOR_range__Range_FT0]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var = 0; +} else { +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`", "Range#0", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22); +show_backtrace(1); +} +self->attrs[COLOR_range__Range___first].val = p0; /* _first on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} /* method range#Range#last for (self: Range[Discrete]): Discrete */ val* range__Range__last(val* self) { val* var /* : Discrete */; val* var1 /* : Discrete */; var1 = self->attrs[COLOR_range__Range___last].val; /* _last on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _last", "lib/standard/collection/range.nit", 24); -exit(1); +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _last"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 24); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -38,19 +105,85 @@ return var; val* VIRTUAL_range__Range__last(val* self) { val* var /* : Discrete */; val* var1 /* : Discrete */; -var1 = range__Range__last(self); +val* var3 /* : Discrete */; +{ /* Inline range#Range#last (self) on */ +var3 = self->attrs[COLOR_range__Range___last].val; /* _last on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _last"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 24); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } +/* method range#Range#last= for (self: Range[Discrete], Discrete) */ +void range__Range__last_61d(val* self, val* p0) { +short int var /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +/* Covariant cast for argument 0 (last) isa Range#0 */ +/* isa Range#0 */ +type_struct = self->type->resolution_table->types[COLOR_range__Range_FT0]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var = 0; +} else { +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`", "Range#0", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 24); +show_backtrace(1); +} +self->attrs[COLOR_range__Range___last].val = p0; /* _last on */ +RET_LABEL:; +} +/* method range#Range#last= for (self: Object, Discrete) */ +void VIRTUAL_range__Range__last_61d(val* self, val* p0) { +short int var /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +{ /* Inline range#Range#last= (self,p0) on */ +/* Covariant cast for argument 0 (last) isa Range#0 */ +/* isa Range#0 */ +type_struct = self->type->resolution_table->types[COLOR_range__Range_FT0]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var = 0; +} else { +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`", "Range#0", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 24); +show_backtrace(1); +} +self->attrs[COLOR_range__Range___last].val = p0; /* _last on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} /* method range#Range#after for (self: Range[Discrete]): Discrete */ val* range__Range__after(val* self) { val* var /* : Discrete */; val* var1 /* : Discrete */; var1 = self->attrs[COLOR_range__Range___after].val; /* _after on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _after", "lib/standard/collection/range.nit", 27); -exit(1); +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _after"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 27); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -60,154 +193,93 @@ return var; val* VIRTUAL_range__Range__after(val* self) { val* var /* : Discrete */; val* var1 /* : Discrete */; -var1 = range__Range__after(self); +val* var3 /* : Discrete */; +{ /* Inline range#Range#after (self) on */ +var3 = self->attrs[COLOR_range__Range___after].val; /* _after on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _after"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 27); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } -/* method range#Range#has for (self: Range[Discrete], Discrete): Bool */ -short int range__Range__has(val* self, val* p0) { +/* method range#Range#after= for (self: Range[Discrete], Discrete) */ +void range__Range__after_61d(val* self, val* p0) { short int var /* : Bool */; -short int var1 /* : Bool */; int cltype; int idtype; const struct type* type_struct; -val* var_item /* var item: Discrete */; -short int var2 /* : Bool */; -val* var3 /* : Discrete */; -short int var4 /* : Bool */; -short int var_ /* var : Bool */; -val* var5 /* : Discrete */; -short int var6 /* : Bool */; -/* Covariant cast for argument 0 (item) isa Collection#0 */ -/* isa Collection#0 */ -type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Collection_FT0]; +const char* var_class_name; +/* Covariant cast for argument 0 (after) isa Range#0 */ +/* isa Range#0 */ +type_struct = self->type->resolution_table->types[COLOR_range__Range_FT0]; cltype = type_struct->color; idtype = type_struct->id; if(cltype >= p0->type->table_size) { -var1 = 0; +var = 0; } else { -var1 = p0->type->type_table[cltype] == idtype; -} -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 30); -exit(1); +var = p0->type->type_table[cltype] == idtype; } -var_item = p0; -var3 = self->attrs[COLOR_range__Range___first].val; /* _first on */ -if (var3 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _first", "lib/standard/collection/range.nit", 30); -exit(1); -} -var4 = ((short int (*)(val*, val*))(var_item->class->vft[COLOR_kernel__Comparable___62d_61d]))(var_item, var3) /* >= on */; -var_ = var4; -if (var4){ -var5 = self->attrs[COLOR_range__Range___last].val; /* _last on */ -if (var5 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _last", "lib/standard/collection/range.nit", 30); -exit(1); -} -var6 = ((short int (*)(val*, val*))(var_item->class->vft[COLOR_kernel__Comparable___60d_61d]))(var_item, var5) /* <= on */; -var2 = var6; -} else { -var2 = var_; +if (unlikely(!var)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 27); +show_backtrace(1); } -var = var2; -goto RET_LABEL; +self->attrs[COLOR_range__Range___after].val = p0; /* _after on */ RET_LABEL:; -return var; } -/* method range#Range#has for (self: Object, nullable Object): Bool */ -short int VIRTUAL_range__Range__has(val* self, val* p0) { +/* method range#Range#after= for (self: Object, Discrete) */ +void VIRTUAL_range__Range__after_61d(val* self, val* p0) { short int var /* : Bool */; -short int var1 /* : Bool */; -var1 = range__Range__has(self, p0); -var = var1; -RET_LABEL:; -return var; -} -/* method range#Range#has_only for (self: Range[Discrete], Discrete): Bool */ -short int range__Range__has_only(val* self, val* p0) { -short int var /* : Bool */; -short int var1 /* : Bool */; int cltype; int idtype; const struct type* type_struct; -val* var_item /* var item: Discrete */; -short int var2 /* : Bool */; -short int var3 /* : Bool */; -val* var4 /* : Discrete */; -short int var5 /* : Bool */; -short int var_ /* var : Bool */; -val* var6 /* : Discrete */; -short int var7 /* : Bool */; -short int var_8 /* var : Bool */; -short int var9 /* : Bool */; -/* Covariant cast for argument 0 (item) isa Collection#0 */ -/* isa Collection#0 */ -type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Collection_FT0]; +const char* var_class_name; +{ /* Inline range#Range#after= (self,p0) on */ +/* Covariant cast for argument 0 (after) isa Range#0 */ +/* isa Range#0 */ +type_struct = self->type->resolution_table->types[COLOR_range__Range_FT0]; cltype = type_struct->color; idtype = type_struct->id; if(cltype >= p0->type->table_size) { -var1 = 0; +var = 0; } else { -var1 = p0->type->type_table[cltype] == idtype; +var = p0->type->type_table[cltype] == idtype; } -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 32); -exit(1); +if (unlikely(!var)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 27); +show_backtrace(1); } -var_item = p0; -var4 = self->attrs[COLOR_range__Range___first].val; /* _first on */ -if (var4 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _first", "lib/standard/collection/range.nit", 32); -exit(1); -} -var5 = ((short int (*)(val*, val*))(var4->class->vft[COLOR_kernel__Object___61d_61d]))(var4, var_item) /* == on */; -var_ = var5; -if (var5){ -var6 = self->attrs[COLOR_range__Range___last].val; /* _last on */ -if (var6 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _last", "lib/standard/collection/range.nit", 32); -exit(1); -} -var7 = ((short int (*)(val*, val*))(var_item->class->vft[COLOR_kernel__Object___61d_61d]))(var_item, var6) /* == on */; -var3 = var7; -} else { -var3 = var_; +self->attrs[COLOR_range__Range___after].val = p0; /* _after on */ +RET_LABEL1:(void)0; } -var_8 = var3; -if (var3){ -var2 = var_8; -} else { -var9 = ((short int (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__is_empty]))(self) /* is_empty on */; -var2 = var9; -} -var = var2; -goto RET_LABEL; RET_LABEL:; -return var; } -/* method range#Range#has_only for (self: Object, nullable Object): Bool */ -short int VIRTUAL_range__Range__has_only(val* self, val* p0) { +/* method range#Range#has for (self: Range[Discrete], Discrete): Bool */ +short int range__Range__has(val* self, val* p0) { short int var /* : Bool */; short int var1 /* : Bool */; -var1 = range__Range__has_only(self, p0); -var = var1; -RET_LABEL:; -return var; -} -/* method range#Range#count for (self: Range[Discrete], Discrete): Int */ -long range__Range__count(val* self, val* p0) { -long var /* : Int */; -short int var1 /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; val* var_item /* var item: Discrete */; short int var2 /* : Bool */; -long var3 /* : Int */; -long var4 /* : Int */; +val* var3 /* : Discrete */; +val* var5 /* : Discrete */; +short int var6 /* : Bool */; +short int var_ /* var : Bool */; +val* var7 /* : Discrete */; +val* var9 /* : Discrete */; +short int var10 /* : Bool */; /* Covariant cast for argument 0 (item) isa Collection#0 */ /* isa Collection#0 */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Collection_FT0]; @@ -218,29 +290,59 @@ var1 = 0; } else { var1 = p0->type->type_table[cltype] == idtype; } -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 34); -exit(1); +if (unlikely(!var1)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 30); +show_backtrace(1); } var_item = p0; -var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_abstract_collection__Collection__has]))(self, var_item) /* has on */; -if (var2){ -var3 = 1; -var = var3; -goto RET_LABEL; +{ +{ /* Inline range#Range#first (self) on */ +var5 = self->attrs[COLOR_range__Range___first].val; /* _first on */ +if (unlikely(var5 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _first"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22); +show_backtrace(1); +} +var3 = var5; +RET_LABEL4:(void)0; +} +} +{ +var6 = ((short int (*)(val*, val*))(var_item->class->vft[COLOR_kernel__Comparable___62d_61d]))(var_item, var3) /* >= on */; +} +var_ = var6; +if (var6){ +{ +{ /* Inline range#Range#last (self) on */ +var9 = self->attrs[COLOR_range__Range___last].val; /* _last on */ +if (unlikely(var9 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _last"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 24); +show_backtrace(1); +} +var7 = var9; +RET_LABEL8:(void)0; +} +} +{ +var10 = ((short int (*)(val*, val*))(var_item->class->vft[COLOR_kernel__Comparable___60d_61d]))(var_item, var7) /* <= on */; +} +var2 = var10; } else { -var4 = 0; -var = var4; -goto RET_LABEL; +var2 = var_; } +var = var2; +goto RET_LABEL; RET_LABEL:; return var; } -/* method range#Range#count for (self: Object, nullable Object): Int */ -long VIRTUAL_range__Range__count(val* self, val* p0) { -long var /* : Int */; -long var1 /* : Int */; -var1 = range__Range__count(self, p0); +/* method range#Range#has for (self: Object, nullable Object): Bool */ +short int VIRTUAL_range__Range__has(val* self, val* p0) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = range__Range__has(self, p0); var = var1; RET_LABEL:; return var; @@ -250,8 +352,9 @@ val* range__Range__iterator(val* self) { val* var /* : Iterator[Discrete] */; val* var1 /* : IteratorRange[Discrete] */; var1 = NEW_range__IteratorRange(self->type->resolution_table->types[COLOR_range__IteratorRangerange__Range_FT0]); -((void (*)(val*, val*))(var1->class->vft[COLOR_range__IteratorRange__init]))(var1, self) /* init on */; -CHECK_NEW_range__IteratorRange(var1); +{ +range__IteratorRange__init(var1, self); /* Direct call range#IteratorRange#init on */ +} var = var1; goto RET_LABEL; RET_LABEL:; @@ -266,105 +369,75 @@ var = var1; RET_LABEL:; return var; } -/* method range#Range#iterate for (self: Range[Discrete]) */ -void range__Range__iterate(val* self) { -val* var /* : Discrete */; -val* var_c /* var c: Discrete */; -val* var1 /* : Discrete */; -val* var_l /* var l: Discrete */; -short int var2 /* : Bool */; -val* var3 /* : Discrete */; -short int var4 /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -var = self->attrs[COLOR_range__Range___first].val; /* _first on */ -if (var == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _first", "lib/standard/collection/range.nit", 48); -exit(1); -} -var_c = var; -var1 = self->attrs[COLOR_range__Range___last].val; /* _last on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _last", "lib/standard/collection/range.nit", 49); -exit(1); -} -var_l = var1; -for(;;) { -var2 = ((short int (*)(val*, val*))(var_c->class->vft[COLOR_kernel__Comparable___60d_61d]))(var_c, var_l) /* <= on */; -if (!var2) break; -printf("NOT YET IMPLEMENTED AClosureCallExpr:lib/standard/collection/range.nit:51,4--10\n"); -var3 = ((val* (*)(val*))(var_c->class->vft[COLOR_kernel__Discrete__succ]))(var_c) /* succ on */; -/* isa Range#0 */ -type_struct = self->type->resolution_table->types[COLOR_range__Range_FT0]; -cltype = type_struct->color; -idtype = type_struct->id; -if(cltype >= var3->type->table_size) { -var4 = 0; -} else { -var4 = var3->type->type_table[cltype] == idtype; -} -if (!var4) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 52); -exit(1); -} -var_c = var3; -CONTINUE_label: (void)0; -} -BREAK_label: (void)0; -RET_LABEL:; -} -/* method range#Range#iterate for (self: Object) */ -void VIRTUAL_range__Range__iterate(val* self) { -range__Range__iterate(self); -RET_LABEL:; -} /* method range#Range#length for (self: Range[Discrete]): Int */ long range__Range__length(val* self) { long var /* : Int */; val* var1 /* : Discrete */; -val* var2 /* : Discrete */; -long var3 /* : Int */; +val* var3 /* : Discrete */; +val* var4 /* : Discrete */; +val* var6 /* : Discrete */; +long var7 /* : Int */; long var_nb /* var nb: Int */; -long var4 /* : Int */; -short int var5 /* : Bool */; -short int var7 /* : Bool */; +long var8 /* : Int */; +short int var9 /* : Bool */; +short int var11 /* : Bool */; int cltype; int idtype; -short int var8 /* : Bool */; -long var9 /* : Int */; -var1 = self->attrs[COLOR_range__Range___first].val; /* _first on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _first", "lib/standard/collection/range.nit", 58); -exit(1); -} -var2 = self->attrs[COLOR_range__Range___after].val; /* _after on */ -if (var2 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _after", "lib/standard/collection/range.nit", 58); -exit(1); -} -var3 = ((long (*)(val*, val*))(var1->class->vft[COLOR_kernel__Discrete__distance]))(var1, var2) /* distance on */; -var_nb = var3; -var4 = 0; -{ /* Inline kernel#Int#> (var_nb,var4) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var7 = 1; /* easy isa OTHER*/ -if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259); -exit(1); -} -var8 = var_nb > var4; -var5 = var8; -goto RET_LABEL6; -RET_LABEL6:(void)0; -} -if (var5){ +const char* var_class_name; +short int var12 /* : Bool */; +long var13 /* : Int */; +{ +{ /* Inline range#Range#first (self) on */ +var3 = self->attrs[COLOR_range__Range___first].val; /* _first on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _first"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} +} +{ +{ /* Inline range#Range#after (self) on */ +var6 = self->attrs[COLOR_range__Range___after].val; /* _after on */ +if (unlikely(var6 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _after"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 27); +show_backtrace(1); +} +var4 = var6; +RET_LABEL5:(void)0; +} +} +{ +var7 = ((long (*)(val*, val*))(var1->class->vft[COLOR_kernel__Discrete__distance]))(var1, var4) /* distance on */; +} +var_nb = var7; +var8 = 0; +{ +{ /* Inline kernel#Int#> (var_nb,var8) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var11 = 1; /* easy isa OTHER*/ +if (unlikely(!var11)) { +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); +show_backtrace(1); +} +var12 = var_nb > var8; +var9 = var12; +goto RET_LABEL10; +RET_LABEL10:(void)0; +} +} +if (var9){ var = var_nb; goto RET_LABEL; } else { -var9 = 0; -var = var9; +var13 = 0; +var = var13; goto RET_LABEL; } RET_LABEL:; @@ -383,20 +456,38 @@ return var; short int range__Range__is_empty(val* self) { short int var /* : Bool */; val* var1 /* : Discrete */; -val* var2 /* : Discrete */; -short int var3 /* : Bool */; -var1 = self->attrs[COLOR_range__Range___first].val; /* _first on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _first", "lib/standard/collection/range.nit", 66); -exit(1); +val* var3 /* : Discrete */; +val* var4 /* : Discrete */; +val* var6 /* : Discrete */; +short int var7 /* : Bool */; +{ +{ /* Inline range#Range#first (self) on */ +var3 = self->attrs[COLOR_range__Range___first].val; /* _first on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _first"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} +} +{ +{ /* Inline range#Range#after (self) on */ +var6 = self->attrs[COLOR_range__Range___after].val; /* _after on */ +if (unlikely(var6 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _after"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 27); +show_backtrace(1); } -var2 = self->attrs[COLOR_range__Range___after].val; /* _after on */ -if (var2 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _after", "lib/standard/collection/range.nit", 66); -exit(1); +var4 = var6; +RET_LABEL5:(void)0; } -var3 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_kernel__Comparable___62d_61d]))(var1, var2) /* >= on */; -var = var3; +} +{ +var7 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_kernel__Comparable___62d_61d]))(var1, var4) /* >= on */; +} +var = var7; goto RET_LABEL; RET_LABEL:; return var; @@ -416,17 +507,36 @@ short int var /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; short int var1 /* : Bool */; int cltype2; int idtype3; const struct type* type_struct4; +const char* var_class_name5; val* var_from /* var from: Discrete */; val* var_to /* var to: Discrete */; -val* var5 /* : Discrete */; -short int var6 /* : Bool */; -int cltype7; -int idtype8; -const struct type* type_struct9; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +const struct type* type_struct10; +const char* var_class_name11; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +const struct type* type_struct16; +const char* var_class_name17; +long var18 /* : Int */; +val* var19 /* : Discrete */; +short int var20 /* : Bool */; +int cltype21; +int idtype22; +const struct type* type_struct23; +const char* var_class_name24; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +const struct type* type_struct29; +const char* var_class_name30; /* Covariant cast for argument 0 (from) isa Range#0 */ /* isa Range#0 */ type_struct = self->type->resolution_table->types[COLOR_range__Range_FT0]; @@ -437,9 +547,11 @@ var = 0; } else { var = p0->type->type_table[cltype] == idtype; } -if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 68); -exit(1); +if (unlikely(!var)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 57); +show_backtrace(1); } /* Covariant cast for argument 1 (to) isa Range#0 */ /* isa Range#0 */ @@ -451,34 +563,104 @@ var1 = 0; } else { var1 = p1->type->type_table[cltype2] == idtype3; } -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 68); -exit(1); +if (unlikely(!var1)) { +var_class_name5 = p1 == NULL ? "null" : p1->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name5); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 57); +show_backtrace(1); } var_from = p0; var_to = p1; +{ +{ /* Inline range#Range#first= (self,var_from) on */ +/* Covariant cast for argument 0 (first) isa Range#0 */ +/* isa Range#0 */ +type_struct10 = self->type->resolution_table->types[COLOR_range__Range_FT0]; +cltype8 = type_struct10->color; +idtype9 = type_struct10->id; +if(cltype8 >= var_from->type->table_size) { +var7 = 0; +} else { +var7 = var_from->type->type_table[cltype8] == idtype9; +} +if (unlikely(!var7)) { +var_class_name11 = var_from == NULL ? "null" : var_from->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name11); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22); +show_backtrace(1); +} self->attrs[COLOR_range__Range___first].val = var_from; /* _first on */ +RET_LABEL6:(void)0; +} +} +{ +{ /* Inline range#Range#last= (self,var_to) on */ +/* Covariant cast for argument 0 (last) isa Range#0 */ +/* isa Range#0 */ +type_struct16 = self->type->resolution_table->types[COLOR_range__Range_FT0]; +cltype14 = type_struct16->color; +idtype15 = type_struct16->id; +if(cltype14 >= var_to->type->table_size) { +var13 = 0; +} else { +var13 = var_to->type->type_table[cltype14] == idtype15; +} +if (unlikely(!var13)) { +var_class_name17 = var_to == NULL ? "null" : var_to->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name17); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 24); +show_backtrace(1); +} self->attrs[COLOR_range__Range___last].val = var_to; /* _last on */ -var5 = ((val* (*)(val*))(var_to->class->vft[COLOR_kernel__Discrete__succ]))(var_to) /* succ on */; -/* isa Range#0 */ -type_struct9 = self->type->resolution_table->types[COLOR_range__Range_FT0]; -cltype7 = type_struct9->color; -idtype8 = type_struct9->id; -if(cltype7 >= var5->type->table_size) { -var6 = 0; +RET_LABEL12:(void)0; +} +} +var18 = 1; +{ +var19 = ((val* (*)(val*, long))(var_to->class->vft[COLOR_kernel__Discrete__successor]))(var_to, var18) /* successor on */; +} +/* isa Range#0 */ +type_struct23 = self->type->resolution_table->types[COLOR_range__Range_FT0]; +cltype21 = type_struct23->color; +idtype22 = type_struct23->id; +if(cltype21 >= var19->type->table_size) { +var20 = 0; +} else { +var20 = var19->type->type_table[cltype21] == idtype22; +} +if (unlikely(!var20)) { +var_class_name24 = var19 == NULL ? "null" : var19->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name24); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 63); +show_backtrace(1); +} +{ +{ /* Inline range#Range#after= (self,var19) on */ +/* Covariant cast for argument 0 (after) isa Range#0 */ +/* isa Range#0 */ +type_struct29 = self->type->resolution_table->types[COLOR_range__Range_FT0]; +cltype27 = type_struct29->color; +idtype28 = type_struct29->id; +if(cltype27 >= var19->type->table_size) { +var26 = 0; } else { -var6 = var5->type->type_table[cltype7] == idtype8; +var26 = var19->type->type_table[cltype27] == idtype28; +} +if (unlikely(!var26)) { +var_class_name30 = var19 == NULL ? "null" : var19->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name30); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 27); +show_backtrace(1); +} +self->attrs[COLOR_range__Range___after].val = var19; /* _after on */ +RET_LABEL25:(void)0; } -if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 74); -exit(1); } -self->attrs[COLOR_range__Range___after].val = var5; /* _after on */ RET_LABEL:; } /* method range#Range#init for (self: Object, Discrete, Discrete) */ void VIRTUAL_range__Range__init(val* self, val* p0, val* p1) { -range__Range__init(self, p0, p1); +range__Range__init(self, p0, p1); /* Direct call range#Range#init on */ RET_LABEL:; } /* method range#Range#without_last for (self: Range[Discrete], Discrete, Discrete) */ @@ -487,17 +669,36 @@ short int var /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; short int var1 /* : Bool */; int cltype2; int idtype3; const struct type* type_struct4; +const char* var_class_name5; val* var_from /* var from: Discrete */; val* var_to /* var to: Discrete */; -val* var5 /* : Discrete */; -short int var6 /* : Bool */; -int cltype7; -int idtype8; -const struct type* type_struct9; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +const struct type* type_struct10; +const char* var_class_name11; +long var12 /* : Int */; +val* var13 /* : Discrete */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +const struct type* type_struct17; +const char* var_class_name18; +short int var20 /* : Bool */; +int cltype21; +int idtype22; +const struct type* type_struct23; +const char* var_class_name24; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +const struct type* type_struct29; +const char* var_class_name30; /* Covariant cast for argument 0 (from) isa Range#0 */ /* isa Range#0 */ type_struct = self->type->resolution_table->types[COLOR_range__Range_FT0]; @@ -508,9 +709,11 @@ var = 0; } else { var = p0->type->type_table[cltype] == idtype; } -if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 77); -exit(1); +if (unlikely(!var)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 66); +show_backtrace(1); } /* Covariant cast for argument 1 (to) isa Range#0 */ /* isa Range#0 */ @@ -522,34 +725,104 @@ var1 = 0; } else { var1 = p1->type->type_table[cltype2] == idtype3; } -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 77); -exit(1); +if (unlikely(!var1)) { +var_class_name5 = p1 == NULL ? "null" : p1->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name5); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 66); +show_backtrace(1); } var_from = p0; var_to = p1; +{ +{ /* Inline range#Range#first= (self,var_from) on */ +/* Covariant cast for argument 0 (first) isa Range#0 */ +/* isa Range#0 */ +type_struct10 = self->type->resolution_table->types[COLOR_range__Range_FT0]; +cltype8 = type_struct10->color; +idtype9 = type_struct10->id; +if(cltype8 >= var_from->type->table_size) { +var7 = 0; +} else { +var7 = var_from->type->type_table[cltype8] == idtype9; +} +if (unlikely(!var7)) { +var_class_name11 = var_from == NULL ? "null" : var_from->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name11); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22); +show_backtrace(1); +} self->attrs[COLOR_range__Range___first].val = var_from; /* _first on */ -var5 = ((val* (*)(val*))(var_to->class->vft[COLOR_kernel__Discrete__prec]))(var_to) /* prec on */; -/* isa Range#0 */ -type_struct9 = self->type->resolution_table->types[COLOR_range__Range_FT0]; -cltype7 = type_struct9->color; -idtype8 = type_struct9->id; -if(cltype7 >= var5->type->table_size) { -var6 = 0; +RET_LABEL6:(void)0; +} +} +var12 = 1; +{ +var13 = ((val* (*)(val*, long))(var_to->class->vft[COLOR_kernel__Discrete__predecessor]))(var_to, var12) /* predecessor on */; +} +/* isa Range#0 */ +type_struct17 = self->type->resolution_table->types[COLOR_range__Range_FT0]; +cltype15 = type_struct17->color; +idtype16 = type_struct17->id; +if(cltype15 >= var13->type->table_size) { +var14 = 0; +} else { +var14 = var13->type->type_table[cltype15] == idtype16; +} +if (unlikely(!var14)) { +var_class_name18 = var13 == NULL ? "null" : var13->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name18); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 71); +show_backtrace(1); +} +{ +{ /* Inline range#Range#last= (self,var13) on */ +/* Covariant cast for argument 0 (last) isa Range#0 */ +/* isa Range#0 */ +type_struct23 = self->type->resolution_table->types[COLOR_range__Range_FT0]; +cltype21 = type_struct23->color; +idtype22 = type_struct23->id; +if(cltype21 >= var13->type->table_size) { +var20 = 0; } else { -var6 = var5->type->type_table[cltype7] == idtype8; +var20 = var13->type->type_table[cltype21] == idtype22; +} +if (unlikely(!var20)) { +var_class_name24 = var13 == NULL ? "null" : var13->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name24); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 24); +show_backtrace(1); +} +self->attrs[COLOR_range__Range___last].val = var13; /* _last on */ +RET_LABEL19:(void)0; +} +} +{ +{ /* Inline range#Range#after= (self,var_to) on */ +/* Covariant cast for argument 0 (after) isa Range#0 */ +/* isa Range#0 */ +type_struct29 = self->type->resolution_table->types[COLOR_range__Range_FT0]; +cltype27 = type_struct29->color; +idtype28 = type_struct29->id; +if(cltype27 >= var_to->type->table_size) { +var26 = 0; +} else { +var26 = var_to->type->type_table[cltype27] == idtype28; } -if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 82); -exit(1); +if (unlikely(!var26)) { +var_class_name30 = var_to == NULL ? "null" : var_to->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range#0", var_class_name30); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 27); +show_backtrace(1); } -self->attrs[COLOR_range__Range___last].val = var5; /* _last on */ self->attrs[COLOR_range__Range___after].val = var_to; /* _after on */ +RET_LABEL25:(void)0; +} +} RET_LABEL:; } /* method range#Range#without_last for (self: Object, Discrete, Discrete) */ void VIRTUAL_range__Range__without_last(val* self, val* p0, val* p1) { -range__Range__without_last(self, p0, p1); +range__Range__without_last(self, p0, p1); /* Direct call range#Range#without_last on */ RET_LABEL:; } /* method range#IteratorRange#item for (self: IteratorRange[Discrete]): Discrete */ @@ -557,11 +830,13 @@ val* range__IteratorRange__item(val* self) { val* var /* : Discrete */; val* var1 /* : Discrete */; var1 = self->attrs[COLOR_range__IteratorRange___item].val; /* _item on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _item", "lib/standard/collection/range.nit", 91); -exit(1); +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _item"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 81); +show_backtrace(1); } var = var1; +goto RET_LABEL; RET_LABEL:; return var; } @@ -580,20 +855,36 @@ short int var /* : Bool */; val* var1 /* : Discrete */; val* var2 /* : Range[Discrete] */; val* var3 /* : Discrete */; -short int var4 /* : Bool */; +val* var5 /* : Discrete */; +short int var6 /* : Bool */; var1 = self->attrs[COLOR_range__IteratorRange___item].val; /* _item on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _item", "lib/standard/collection/range.nit", 93); -exit(1); +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _item"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 83); +show_backtrace(1); } var2 = self->attrs[COLOR_range__IteratorRange___range].val; /* _range on */ -if (var2 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _range", "lib/standard/collection/range.nit", 93); -exit(1); +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _range"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 83); +show_backtrace(1); +} +{ +{ /* Inline range#Range#after (var2) on */ +var5 = var2->attrs[COLOR_range__Range___after].val; /* _after on */ +if (unlikely(var5 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _after"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 27); +show_backtrace(1); +} +var3 = var5; +RET_LABEL4:(void)0; +} } -var3 = ((val* (*)(val*))(var2->class->vft[COLOR_range__Range__after]))(var2) /* after on */; -var4 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_kernel__Comparable___60d]))(var1, var3) /* < on */; -var = var4; +{ +var6 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_kernel__Comparable___60d]))(var1, var3) /* < on */; +} +var = var6; goto RET_LABEL; RET_LABEL:; return var; @@ -610,36 +901,44 @@ return var; /* method range#IteratorRange#next for (self: IteratorRange[Discrete]) */ void range__IteratorRange__next(val* self) { val* var /* : Discrete */; -val* var1 /* : Discrete */; -short int var2 /* : Bool */; +long var1 /* : Int */; +val* var2 /* : Discrete */; +short int var3 /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; var = self->attrs[COLOR_range__IteratorRange___item].val; /* _item on */ -if (var == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _item", "lib/standard/collection/range.nit", 95); -exit(1); +if (unlikely(var == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _item"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 85); +show_backtrace(1); +} +var1 = 1; +{ +var2 = ((val* (*)(val*, long))(var->class->vft[COLOR_kernel__Discrete__successor]))(var, var1) /* successor on */; } -var1 = ((val* (*)(val*))(var->class->vft[COLOR_kernel__Discrete__succ]))(var) /* succ on */; -/* isa IteratorRange#0 */ +/* isa IteratorRange#0 */ type_struct = self->type->resolution_table->types[COLOR_range__IteratorRange_FT0]; cltype = type_struct->color; idtype = type_struct->id; -if(cltype >= var1->type->table_size) { -var2 = 0; +if(cltype >= var2->type->table_size) { +var3 = 0; } else { -var2 = var1->type->type_table[cltype] == idtype; +var3 = var2->type->type_table[cltype] == idtype; } -if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 95); -exit(1); +if (unlikely(!var3)) { +var_class_name = var2 == NULL ? "null" : var2->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "IteratorRange#0", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 85); +show_backtrace(1); } -self->attrs[COLOR_range__IteratorRange___item].val = var1; /* _item on */ +self->attrs[COLOR_range__IteratorRange___item].val = var2; /* _item on */ RET_LABEL:; } /* method range#IteratorRange#next for (self: Object) */ void VIRTUAL_range__IteratorRange__next(val* self) { -range__IteratorRange__next(self); +range__IteratorRange__next(self); /* Direct call range#IteratorRange#next on */ RET_LABEL:; } /* method range#IteratorRange#init for (self: IteratorRange[Discrete], Range[Discrete]) */ @@ -648,8 +947,10 @@ short int var /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; val* var_r /* var r: Range[Discrete] */; -val* var1 /* : nullable Object */; +val* var1 /* : Discrete */; +val* var3 /* : Discrete */; /* Covariant cast for argument 0 (r) isa Range[IteratorRange#0] */ /* isa Range[IteratorRange#0] */ type_struct = self->type->resolution_table->types[COLOR_range__Rangerange__IteratorRange_FT0]; @@ -660,64 +961,31 @@ var = 0; } else { var = p0->type->type_table[cltype] == idtype; } -if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 97); -exit(1); +if (unlikely(!var)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Range[IteratorRange#0]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 87); +show_backtrace(1); } var_r = p0; self->attrs[COLOR_range__IteratorRange___range].val = var_r; /* _range on */ -var1 = ((val* (*)(val*))(var_r->class->vft[COLOR_abstract_collection__Collection__first]))(var_r) /* first on */; -self->attrs[COLOR_range__IteratorRange___item].val = var1; /* _item on */ -RET_LABEL:; +{ +{ /* Inline range#Range#first (var_r) on */ +var3 = var_r->attrs[COLOR_range__Range___first].val; /* _first on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _first"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/range.nit", 22); +show_backtrace(1); } -/* method range#IteratorRange#init for (self: Object, Range[Discrete]) */ -void VIRTUAL_range__IteratorRange__init(val* self, val* p0) { -range__IteratorRange__init(self, p0); -RET_LABEL:; +var1 = var3; +RET_LABEL2:(void)0; } -/* method range#Discrete#times for (self: Discrete): Range[Discrete] */ -val* range__Discrete__times(val* self) { -val* var /* : Range[Discrete] */; -val* var1 /* : Range[Discrete] */; -long var2 /* : Int */; -short int var3 /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -long var4 /* : Int */; -val* var5 /* : Discrete */; -val* var6 /* : Discrete */; -var1 = NEW_range__Range(self->type->resolution_table->types[COLOR_range__Rangekernel__Comparable_VTOTHER]); -var2 = 0; -/* isa OTHER */ -type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; -cltype = type_struct->color; -idtype = type_struct->id; -if(cltype >= (&type_kernel__Int)->table_size) { -var3 = 0; -} else { -var3 = (&type_kernel__Int)->type_table[cltype] == idtype; -} -if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/range.nit", 109); -exit(1); } -var4 = 1; -var5 = ((val* (*)(val*, long))(self->class->vft[COLOR_kernel__Discrete___45d]))(self, var4) /* - on */; -var6 = BOX_kernel__Int(var2); /* autobox from Int to Discrete */ -((void (*)(val*, val*, val*))(var1->class->vft[COLOR_range__Range__init]))(var1, var6, var5) /* init on */; -CHECK_NEW_range__Range(var1); -var = var1; -goto RET_LABEL; +self->attrs[COLOR_range__IteratorRange___item].val = var1; /* _item on */ RET_LABEL:; -return var; } -/* method range#Discrete#times for (self: Object): Range[Discrete] */ -val* VIRTUAL_range__Discrete__times(val* self) { -val* var /* : Range[Discrete] */; -val* var1 /* : Range[Discrete] */; -var1 = range__Discrete__times(self); -var = var1; +/* method range#IteratorRange#init for (self: Object, Range[Discrete]) */ +void VIRTUAL_range__IteratorRange__init(val* self, val* p0) { +range__IteratorRange__init(self, p0); /* Direct call range#IteratorRange#init on */ RET_LABEL:; -return var; }