diff --git a/compiler/frontend/src/jet/Ranges.jet b/compiler/frontend/src/jet/Ranges.jet index 5ff54b14f7d..516ad722bfb 100644 --- a/compiler/frontend/src/jet/Ranges.jet +++ b/compiler/frontend/src/jet/Ranges.jet @@ -1,10 +1,12 @@ package jet public trait Range> { - public fun contains(item : T) : Boolean + public val start: T + public val end: T + public fun contains(item : T) : Boolean } -public class IntRange(public val start : Int, public val end : Int) : Range, IntIterable { +public class IntRange(public override val start : Int, public override val end : Int) : Range, IntIterable { public override fun iterator () : IntIterator public override fun contains (elem: Int) : Boolean @@ -14,7 +16,7 @@ public class IntRange(public val start : Int, public val end : Int) : Range } } -public class LongRange(public val start : Long, public val end : Long) : Range, LongIterable { +public class LongRange(public override val start : Long, public override val end : Long) : Range, LongIterable { public override fun iterator () : LongIterator public override fun contains (elem: Long) : Boolean @@ -24,7 +26,7 @@ public class LongRange(public val start : Long, public val end : Long) : Range, ByteIterable { +public class ByteRange(public override val start : Byte, public override val end : Byte) : Range, ByteIterable { public override fun iterator () : ByteIterator public override fun contains (elem: Byte) : Boolean @@ -34,7 +36,7 @@ public class ByteRange(public val start : Byte, public val end : Byte) : Range, ShortIterable { +public class ShortRange(public override val start : Short, public override val end : Short) : Range, ShortIterable { public override fun iterator () : ShortIterator public override fun contains (elem: Short) : Boolean @@ -44,7 +46,7 @@ public class ShortRange(public val start : Short, public val end : Short) : Rang } } -public class CharRange(public val start : Char, public val end : Char) : Range, CharIterable { +public class CharRange(public override val start : Char, public override val end : Char) : Range, CharIterable { public override fun iterator () : CharIterator public override fun contains (elem: Char) : Boolean @@ -54,7 +56,7 @@ public class CharRange(public val start : Char, public val end : Char) : Range { +public class FloatRange(public override val start : Float, public override val end : Float) : Range { public override fun contains (elem: Float) : Boolean public class object { @@ -62,7 +64,7 @@ public class FloatRange(public val start : Float, public val end : Float) : Rang } } -public class DoubleRange(public val start : Double, public val end : Double) : Range { +public class DoubleRange(public override val start : Double, public override val end : Double) : Range { public override fun contains (elem: Double) : Boolean public class object { diff --git a/compiler/testData/codegen/box/controlStructures/kt299.kt b/compiler/testData/codegen/box/controlStructures/kt299.kt index eaf27e80197..677ca49025a 100644 --- a/compiler/testData/codegen/box/controlStructures/kt299.kt +++ b/compiler/testData/codegen/box/controlStructures/kt299.kt @@ -1,4 +1,8 @@ class MyRange1() : Range { + override val start: Int + get() = 0 + override val end: Int + get() = 0 override fun contains(item: Int) = true } diff --git a/runtime/src/jet/ByteRange.java b/runtime/src/jet/ByteRange.java index 068e2959b7c..6b75f0fb143 100644 --- a/runtime/src/jet/ByteRange.java +++ b/runtime/src/jet/ByteRange.java @@ -64,11 +64,13 @@ public final class ByteRange implements Range, ByteIterable { return result; } - public byte getStart() { + @Override + public Byte getStart() { return start; } - public byte getEnd() { + @Override + public Byte getEnd() { return end; } diff --git a/runtime/src/jet/CharRange.java b/runtime/src/jet/CharRange.java index 935782ea7cf..e92f1f760df 100644 --- a/runtime/src/jet/CharRange.java +++ b/runtime/src/jet/CharRange.java @@ -64,11 +64,13 @@ public final class CharRange implements Range, CharIterable { return result; } - public char getStart() { + @Override + public Character getStart() { return start; } - public char getEnd() { + @Override + public Character getEnd() { return end; } diff --git a/runtime/src/jet/DoubleRange.java b/runtime/src/jet/DoubleRange.java index b430cd9bcf6..75ed2328c79 100644 --- a/runtime/src/jet/DoubleRange.java +++ b/runtime/src/jet/DoubleRange.java @@ -65,11 +65,13 @@ public final class DoubleRange implements Range { return result; } - public double getStart() { + @Override + public Double getStart() { return start; } - public double getEnd() { + @Override + public Double getEnd() { return end; } } diff --git a/runtime/src/jet/FloatRange.java b/runtime/src/jet/FloatRange.java index 0f0be3babed..d803f307737 100644 --- a/runtime/src/jet/FloatRange.java +++ b/runtime/src/jet/FloatRange.java @@ -61,11 +61,13 @@ public final class FloatRange implements Range { return result; } - public float getStart() { + @Override + public Float getStart() { return start; } - public float getEnd() { + @Override + public Float getEnd() { return end; } } diff --git a/runtime/src/jet/IntRange.java b/runtime/src/jet/IntRange.java index 13a945a4969..dd4c9470e67 100644 --- a/runtime/src/jet/IntRange.java +++ b/runtime/src/jet/IntRange.java @@ -64,11 +64,13 @@ public final class IntRange implements Range, IntIterable { return result; } - public int getStart() { + @Override + public Integer getStart() { return start; } - public int getEnd() { + @Override + public Integer getEnd() { return end; } diff --git a/runtime/src/jet/LongRange.java b/runtime/src/jet/LongRange.java index ce671c04ef8..d52e048c513 100644 --- a/runtime/src/jet/LongRange.java +++ b/runtime/src/jet/LongRange.java @@ -64,11 +64,13 @@ public final class LongRange implements Range, LongIterable { return result; } - public long getStart() { + @Override + public Long getStart() { return start; } - public long getEnd() { + @Override + public Long getEnd() { return end; } diff --git a/runtime/src/jet/Range.java b/runtime/src/jet/Range.java index 8dec9130b06..863540d8da5 100644 --- a/runtime/src/jet/Range.java +++ b/runtime/src/jet/Range.java @@ -20,5 +20,7 @@ import org.jetbrains.jet.rt.annotation.AssertInvisibleInResolver; @AssertInvisibleInResolver public interface Range> { + T getStart(); + T getEnd(); boolean contains(T item); } diff --git a/runtime/src/jet/ShortRange.java b/runtime/src/jet/ShortRange.java index 6ecc2f5c810..e634f70665a 100644 --- a/runtime/src/jet/ShortRange.java +++ b/runtime/src/jet/ShortRange.java @@ -64,11 +64,13 @@ public final class ShortRange implements Range, ShortIterable { return result; } - public short getStart() { + @Override + public Short getStart() { return start; } - public short getEnd() { + @Override + public Short getEnd() { return end; }