Added start and end property to generic range.

This commit is contained in:
Evgeny Gerashchenko
2013-01-23 23:59:01 +04:00
parent 0e0c048074
commit 9fa3e47b65
10 changed files with 44 additions and 22 deletions
+10 -8
View File
@@ -1,10 +1,12 @@
package jet
public trait Range<in T : Comparable<T>> {
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<Int>, IntIterable {
public class IntRange(public override val start : Int, public override val end : Int) : Range<Int>, 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<Int>
}
}
public class LongRange(public val start : Long, public val end : Long) : Range<Long>, LongIterable {
public class LongRange(public override val start : Long, public override val end : Long) : Range<Long>, 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<L
}
}
public class ByteRange(public val start : Byte, public val end : Byte) : Range<Byte>, ByteIterable {
public class ByteRange(public override val start : Byte, public override val end : Byte) : Range<Byte>, 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<B
}
}
public class ShortRange(public val start : Short, public val end : Short) : Range<Short>, ShortIterable {
public class ShortRange(public override val start : Short, public override val end : Short) : Range<Short>, 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<Char>, CharIterable {
public class CharRange(public override val start : Char, public override val end : Char) : Range<Char>, 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<C
}
}
public class FloatRange(public val start : Float, public val end : Float) : Range<Float> {
public class FloatRange(public override val start : Float, public override val end : Float) : Range<Float> {
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<Double> {
public class DoubleRange(public override val start : Double, public override val end : Double) : Range<Double> {
public override fun contains (elem: Double) : Boolean
public class object {
@@ -1,4 +1,8 @@
class MyRange1() : Range<Int> {
override val start: Int
get() = 0
override val end: Int
get() = 0
override fun contains(item: Int) = true
}
+4 -2
View File
@@ -64,11 +64,13 @@ public final class ByteRange implements Range<Byte>, ByteIterable {
return result;
}
public byte getStart() {
@Override
public Byte getStart() {
return start;
}
public byte getEnd() {
@Override
public Byte getEnd() {
return end;
}
+4 -2
View File
@@ -64,11 +64,13 @@ public final class CharRange implements Range<Character>, CharIterable {
return result;
}
public char getStart() {
@Override
public Character getStart() {
return start;
}
public char getEnd() {
@Override
public Character getEnd() {
return end;
}
+4 -2
View File
@@ -65,11 +65,13 @@ public final class DoubleRange implements Range<Double> {
return result;
}
public double getStart() {
@Override
public Double getStart() {
return start;
}
public double getEnd() {
@Override
public Double getEnd() {
return end;
}
}
+4 -2
View File
@@ -61,11 +61,13 @@ public final class FloatRange implements Range<Float> {
return result;
}
public float getStart() {
@Override
public Float getStart() {
return start;
}
public float getEnd() {
@Override
public Float getEnd() {
return end;
}
}
+4 -2
View File
@@ -64,11 +64,13 @@ public final class IntRange implements Range<Integer>, IntIterable {
return result;
}
public int getStart() {
@Override
public Integer getStart() {
return start;
}
public int getEnd() {
@Override
public Integer getEnd() {
return end;
}
+4 -2
View File
@@ -64,11 +64,13 @@ public final class LongRange implements Range<Long>, LongIterable {
return result;
}
public long getStart() {
@Override
public Long getStart() {
return start;
}
public long getEnd() {
@Override
public Long getEnd() {
return end;
}
+2
View File
@@ -20,5 +20,7 @@ import org.jetbrains.jet.rt.annotation.AssertInvisibleInResolver;
@AssertInvisibleInResolver
public interface Range<T extends Comparable<T>> {
T getStart();
T getEnd();
boolean contains(T item);
}
+4 -2
View File
@@ -64,11 +64,13 @@ public final class ShortRange implements Range<Short>, ShortIterable {
return result;
}
public short getStart() {
@Override
public Short getStart() {
return start;
}
public short getEnd() {
@Override
public Short getEnd() {
return end;
}