diff --git a/compiler/frontend/src/jet/Ranges.jet b/compiler/frontend/src/jet/Ranges.jet index 516ad722bfb..d8cc3edb9d6 100644 --- a/compiler/frontend/src/jet/Ranges.jet +++ b/compiler/frontend/src/jet/Ranges.jet @@ -56,7 +56,9 @@ public class CharRange(public override val start : Char, public override val end } } -public class FloatRange(public override val start : Float, public override val end : Float) : Range { +public class FloatRange(public override val start : Float, public override val end : Float) : Range, FloatIterable { + public override fun iterator () : FloatIterator + public override fun contains (elem: Float) : Boolean public class object { @@ -64,7 +66,9 @@ public class FloatRange(public override val start : Float, public override val e } } -public class DoubleRange(public override val start : Double, public override val end : Double) : Range { +public class DoubleRange(public override val start : Double, public override val end : Double) : Range, DoubleIterable { + public override fun iterator () : DoubleIterator + public override fun contains (elem: Double) : Boolean public class object { diff --git a/runtime/src/jet/DoubleRange.java b/runtime/src/jet/DoubleRange.java index 75ed2328c79..9dcbe36a843 100644 --- a/runtime/src/jet/DoubleRange.java +++ b/runtime/src/jet/DoubleRange.java @@ -19,7 +19,7 @@ package jet; import org.jetbrains.jet.rt.annotation.AssertInvisibleInResolver; @AssertInvisibleInResolver -public final class DoubleRange implements Range { +public final class DoubleRange implements Range, DoubleIterable { private final double start; private final double end; @@ -74,4 +74,9 @@ public final class DoubleRange implements Range { public Double getEnd() { return end; } + + @Override + public DoubleIterator iterator() { + return new DoubleSequenceIterator(getStart(), getEnd(), 1); + } } diff --git a/runtime/src/jet/FloatRange.java b/runtime/src/jet/FloatRange.java index d803f307737..418bfe256a1 100644 --- a/runtime/src/jet/FloatRange.java +++ b/runtime/src/jet/FloatRange.java @@ -19,7 +19,7 @@ package jet; import org.jetbrains.jet.rt.annotation.AssertInvisibleInResolver; @AssertInvisibleInResolver -public final class FloatRange implements Range { +public final class FloatRange implements Range, FloatIterable { private final float start; private final float end; @@ -70,4 +70,9 @@ public final class FloatRange implements Range { public Float getEnd() { return end; } + + @Override + public FloatIterator iterator() { + return new FloatSequenceIterator(getStart(), getEnd(), 1); + } }