diff --git a/codon/parser/visitors/typecheck/loops.cpp b/codon/parser/visitors/typecheck/loops.cpp index 5917baf8..1d837a9e 100644 --- a/codon/parser/visitors/typecheck/loops.cpp +++ b/codon/parser/visitors/typecheck/loops.cpp @@ -299,6 +299,18 @@ TypecheckVisitor::transformStaticLoopCall( } block.push_back(wrap(clone(stmt))); } + } else if (fn && startswith(fn->value, "std.internal.types.range.staticrange.0:1")) { + if (vars.size() != 1) + error("expected one item"); + auto ed = + fn->type->getFunc()->funcGenerics[0].type->getStatic()->evaluate().getInt(); + if (ed > MAX_STATIC_ITER) + E(Error::STATIC_RANGE_BOUNDS, fn, MAX_STATIC_ITER, ed); + for (int64_t i = 0; i < ed; i++) { + stmt->rhs = N(i); + stmt->type = NT(N("Static"), N("int")); + block.push_back(wrap(clone(stmt))); + } } else if (fn && startswith(fn->value, "std.internal.types.range.staticrange.0")) { if (vars.size() != 1) error("expected one item"); @@ -315,18 +327,6 @@ TypecheckVisitor::transformStaticLoopCall( stmt->type = NT(N("Static"), N("int")); block.push_back(wrap(clone(stmt))); } - } else if (fn && startswith(fn->value, "std.internal.types.range.staticrange.0:1")) { - if (vars.size() != 1) - error("expected one item"); - auto ed = - fn->type->getFunc()->funcGenerics[0].type->getStatic()->evaluate().getInt(); - if (ed > MAX_STATIC_ITER) - E(Error::STATIC_RANGE_BOUNDS, fn, MAX_STATIC_ITER, ed); - for (int64_t i = 0; i < ed; i++) { - stmt->rhs = N(i); - stmt->type = NT(N("Static"), N("int")); - block.push_back(wrap(clone(stmt))); - } } else if (fn && startswith(fn->value, "std.internal.static.fn_overloads.0")) { if (vars.size() != 1) error("expected one item"); diff --git a/stdlib/internal/types/range.codon b/stdlib/internal/types/range.codon index 26e4ccd3..fffd8ae2 100644 --- a/stdlib/internal/types/range.codon +++ b/stdlib/internal/types/range.codon @@ -95,7 +95,6 @@ class range: else: return f"range({self.start}, {self.stop}, {self.step})" -@overload def staticrange(start: Static[int], stop: Static[int], step: Static[int] = 1): return range(start, stop, step)