Subclassed ranges from sequence.
This commit is contained in:
@@ -6,71 +6,85 @@ public trait Range<in T : Comparable<T>> {
|
||||
public fun contains(item : T) : Boolean
|
||||
}
|
||||
|
||||
public class IntRange(public override val start : Int, public override val end : Int) : Range<Int>, IntIterable {
|
||||
public class IntRange(public override val start : Int, public override val end : Int) : Range<Int>, NumberSequence<Int>, IntIterable {
|
||||
public override fun iterator () : IntIterator
|
||||
|
||||
public override fun contains (elem: Int) : Boolean
|
||||
|
||||
public override val increment: Int
|
||||
|
||||
public class object {
|
||||
public val EMPTY: IntRange
|
||||
}
|
||||
}
|
||||
|
||||
public class LongRange(public override val start : Long, public override val end : Long) : Range<Long>, LongIterable {
|
||||
public class LongRange(public override val start : Long, public override val end : Long) : Range<Long>, NumberSequence<Long>, LongIterable {
|
||||
public override fun iterator () : LongIterator
|
||||
|
||||
public override fun contains (elem: Long) : Boolean
|
||||
|
||||
public override val increment: Long
|
||||
|
||||
public class object {
|
||||
public val EMPTY: LongRange
|
||||
}
|
||||
}
|
||||
|
||||
public class ByteRange(public override val start : Byte, public override val end : Byte) : Range<Byte>, ByteIterable {
|
||||
public class ByteRange(public override val start : Byte, public override val end : Byte) : Range<Byte>, NumberSequence<Byte>, ByteIterable {
|
||||
public override fun iterator () : ByteIterator
|
||||
|
||||
public override fun contains (elem: Byte) : Boolean
|
||||
|
||||
public override val increment: Int
|
||||
|
||||
public class object {
|
||||
public val EMPTY: ByteRange
|
||||
}
|
||||
}
|
||||
|
||||
public class ShortRange(public override val start : Short, public override val end : Short) : Range<Short>, ShortIterable {
|
||||
public class ShortRange(public override val start : Short, public override val end : Short) : Range<Short>, NumberSequence<Short>, ShortIterable {
|
||||
public override fun iterator () : ShortIterator
|
||||
|
||||
public override fun contains (elem: Short) : Boolean
|
||||
|
||||
public override val increment: Int
|
||||
|
||||
public class object {
|
||||
public val EMPTY: ShortRange
|
||||
}
|
||||
}
|
||||
|
||||
public class CharRange(public override val start : Char, public override val end : Char) : Range<Char>, CharIterable {
|
||||
public class CharRange(public override val start : Char, public override val end : Char) : Range<Char>, NumberSequence<Char>, CharIterable {
|
||||
public override fun iterator () : CharIterator
|
||||
|
||||
public override fun contains (elem: Char) : Boolean
|
||||
|
||||
public override val increment: Int
|
||||
|
||||
public class object {
|
||||
public val EMPTY: CharRange
|
||||
}
|
||||
}
|
||||
|
||||
public class FloatRange(public override val start : Float, public override val end : Float) : Range<Float>, FloatIterable {
|
||||
public class FloatRange(public override val start : Float, public override val end : Float) : Range<Float>, NumberSequence<Float>, FloatIterable {
|
||||
public override fun iterator () : FloatIterator
|
||||
|
||||
public override fun contains (elem: Float) : Boolean
|
||||
|
||||
public override val increment: Float
|
||||
|
||||
public class object {
|
||||
public val EMPTY: FloatRange
|
||||
}
|
||||
}
|
||||
|
||||
public class DoubleRange(public override val start : Double, public override val end : Double) : Range<Double>, DoubleIterable {
|
||||
public class DoubleRange(public override val start : Double, public override val end : Double) : Range<Double>, NumberSequence<Double>, DoubleIterable {
|
||||
public override fun iterator () : DoubleIterator
|
||||
|
||||
public override fun contains (elem: Double) : Boolean
|
||||
|
||||
public override val increment: Double
|
||||
|
||||
public class object {
|
||||
public val EMPTY: DoubleRange
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ package jet;
|
||||
import org.jetbrains.jet.rt.annotation.AssertInvisibleInResolver;
|
||||
|
||||
@AssertInvisibleInResolver
|
||||
public final class ByteRange implements Range<Byte>, ByteIterable {
|
||||
public final class ByteRange implements Range<Byte>, NumberSequence<Byte>, ByteIterable {
|
||||
private final byte start;
|
||||
private final byte end;
|
||||
|
||||
@@ -74,6 +74,11 @@ public final class ByteRange implements Range<Byte>, ByteIterable {
|
||||
return end;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getIncrement() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ByteIterator iterator() {
|
||||
return new ByteSequenceIterator(getStart(), getEnd(), 1);
|
||||
|
||||
@@ -19,7 +19,7 @@ package jet;
|
||||
import org.jetbrains.jet.rt.annotation.AssertInvisibleInResolver;
|
||||
|
||||
@AssertInvisibleInResolver
|
||||
public final class CharRange implements Range<Character>, CharIterable {
|
||||
public final class CharRange implements Range<Character>, NumberSequence<Character>, CharIterable {
|
||||
private final char start;
|
||||
private final char end;
|
||||
|
||||
@@ -74,6 +74,11 @@ public final class CharRange implements Range<Character>, CharIterable {
|
||||
return end;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getIncrement() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CharIterator iterator() {
|
||||
return new CharacterSequenceIterator(getStart(), getEnd(), 1);
|
||||
|
||||
@@ -19,7 +19,7 @@ package jet;
|
||||
import org.jetbrains.jet.rt.annotation.AssertInvisibleInResolver;
|
||||
|
||||
@AssertInvisibleInResolver
|
||||
public final class DoubleRange implements Range<Double>, DoubleIterable {
|
||||
public final class DoubleRange implements Range<Double>, NumberSequence<Double>, DoubleIterable {
|
||||
private final double start;
|
||||
private final double end;
|
||||
|
||||
@@ -75,6 +75,11 @@ public final class DoubleRange implements Range<Double>, DoubleIterable {
|
||||
return end;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getIncrement() {
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DoubleIterator iterator() {
|
||||
return new DoubleSequenceIterator(getStart(), getEnd(), 1);
|
||||
|
||||
@@ -19,7 +19,7 @@ package jet;
|
||||
import org.jetbrains.jet.rt.annotation.AssertInvisibleInResolver;
|
||||
|
||||
@AssertInvisibleInResolver
|
||||
public final class FloatRange implements Range<Float>, FloatIterable {
|
||||
public final class FloatRange implements Range<Float>, NumberSequence<Float>, FloatIterable {
|
||||
private final float start;
|
||||
private final float end;
|
||||
|
||||
@@ -71,6 +71,11 @@ public final class FloatRange implements Range<Float>, FloatIterable {
|
||||
return end;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Float getIncrement() {
|
||||
return 1.0f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FloatIterator iterator() {
|
||||
return new FloatSequenceIterator(getStart(), getEnd(), 1);
|
||||
|
||||
@@ -19,7 +19,7 @@ package jet;
|
||||
import org.jetbrains.jet.rt.annotation.AssertInvisibleInResolver;
|
||||
|
||||
@AssertInvisibleInResolver
|
||||
public final class IntRange implements Range<Integer>, IntIterable {
|
||||
public final class IntRange implements Range<Integer>, NumberSequence<Integer>, IntIterable {
|
||||
private final int start;
|
||||
private final int end;
|
||||
|
||||
@@ -74,6 +74,11 @@ public final class IntRange implements Range<Integer>, IntIterable {
|
||||
return end;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getIncrement() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IntIterator iterator() {
|
||||
return new IntSequenceIterator(getStart(), getEnd(), 1);
|
||||
|
||||
@@ -19,7 +19,7 @@ package jet;
|
||||
import org.jetbrains.jet.rt.annotation.AssertInvisibleInResolver;
|
||||
|
||||
@AssertInvisibleInResolver
|
||||
public final class LongRange implements Range<Long>, LongIterable {
|
||||
public final class LongRange implements Range<Long>, NumberSequence<Long>, LongIterable {
|
||||
private final long start;
|
||||
private final long end;
|
||||
|
||||
@@ -74,6 +74,11 @@ public final class LongRange implements Range<Long>, LongIterable {
|
||||
return end;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long getIncrement() {
|
||||
return 1L;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LongIterator iterator() {
|
||||
return new LongSequenceIterator(getStart(), getEnd(), 1);
|
||||
|
||||
@@ -19,7 +19,7 @@ package jet;
|
||||
import org.jetbrains.jet.rt.annotation.AssertInvisibleInResolver;
|
||||
|
||||
@AssertInvisibleInResolver
|
||||
public final class ShortRange implements Range<Short>, ShortIterable {
|
||||
public final class ShortRange implements Range<Short>, NumberSequence<Short>, ShortIterable {
|
||||
private final short start;
|
||||
private final short end;
|
||||
|
||||
@@ -74,6 +74,11 @@ public final class ShortRange implements Range<Short>, ShortIterable {
|
||||
return end;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getIncrement() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ShortIterator iterator() {
|
||||
return new ShortSequenceIterator(getStart(), getEnd(), 1);
|
||||
|
||||
Reference in New Issue
Block a user