KT-2579 Rename Range.minus() to reversed and make it extension
#KT-2579 fixed
This commit is contained in:
@@ -13,8 +13,6 @@ public class IntRange(public val start : Int, public val size : Int) : Range<Int
|
||||
|
||||
public val iteratorStart : Int
|
||||
|
||||
public fun minus() : IntRange
|
||||
|
||||
public fun step(step: Int) : IntIterator
|
||||
|
||||
public val isReversed : Boolean
|
||||
@@ -33,8 +31,6 @@ public class LongRange(public val start : Long, public val size : Long) : Range<
|
||||
|
||||
public val end : Long
|
||||
|
||||
public fun minus() : LongRange
|
||||
|
||||
public fun step(step: Long) : LongIterator
|
||||
|
||||
public val isReversed : Boolean
|
||||
@@ -53,8 +49,6 @@ public class ByteRange(public val start : Byte, public val size : Int) : Range<B
|
||||
|
||||
public val iteratorStart : Byte
|
||||
|
||||
public fun minus() : ByteRange
|
||||
|
||||
public fun step(step: Int) : ByteIterator
|
||||
|
||||
public val isReversed : Boolean
|
||||
@@ -73,8 +67,6 @@ public class ShortRange(public val start : Short, public val size : Int) : Range
|
||||
|
||||
public val end : Short
|
||||
|
||||
public fun minus() : ShortRange
|
||||
|
||||
public fun step(step: Int) : ShortIterator
|
||||
|
||||
public val isReversed : Boolean
|
||||
@@ -93,8 +85,6 @@ public class CharRange(public val start : Char, public val size : Int) : Range<C
|
||||
|
||||
public val end : Char
|
||||
|
||||
public fun minus() : CharRange
|
||||
|
||||
public fun step(step: Int) : CharIterator
|
||||
|
||||
public val isReversed : Boolean
|
||||
@@ -109,8 +99,6 @@ public class FloatRange(public val start : Float, public val size : Float) : Ran
|
||||
|
||||
public val end : Float
|
||||
|
||||
public fun minus() : FloatRange
|
||||
|
||||
public fun step(step: Float) : FloatIterator
|
||||
|
||||
public val isReversed : Boolean
|
||||
@@ -125,8 +113,6 @@ public class DoubleRange(public val start : Double, public val size : Double) :
|
||||
|
||||
public val end : Double
|
||||
|
||||
public fun minus() : DoubleRange
|
||||
|
||||
public fun step(step: Double) : DoubleIterator
|
||||
|
||||
public val isReversed : Boolean
|
||||
|
||||
@@ -126,7 +126,6 @@ public final class jet.ByteRange : jet.Range<jet.Byte>, jet.ByteIterable {
|
||||
public final val isReversed: jet.Boolean
|
||||
public open override /*1*/ fun iterator(): jet.ByteIterator
|
||||
public final val iteratorStart: jet.Byte
|
||||
public final fun minus(): jet.ByteRange
|
||||
public final val size: jet.Int
|
||||
public final val start: jet.Byte
|
||||
public final fun step(/*0*/ step: jet.Int): jet.ByteIterator
|
||||
@@ -220,7 +219,6 @@ public final class jet.CharRange : jet.Range<jet.Char>, jet.CharIterable {
|
||||
public final val isReversed: jet.Boolean
|
||||
public open override /*1*/ fun iterator(): jet.CharIterator
|
||||
public final val iteratorStart: jet.Char
|
||||
public final fun minus(): jet.CharRange
|
||||
public final val size: jet.Int
|
||||
public final val start: jet.Char
|
||||
public final fun step(/*0*/ step: jet.Int): jet.CharIterator
|
||||
@@ -323,7 +321,6 @@ public final class jet.DoubleRange : jet.Range<jet.Double> {
|
||||
public open override /*1*/ fun contains(/*0*/ elem: jet.Double): jet.Boolean
|
||||
public final val end: jet.Double
|
||||
public final val isReversed: jet.Boolean
|
||||
public final fun minus(): jet.DoubleRange
|
||||
public final val size: jet.Double
|
||||
public final val start: jet.Double
|
||||
public final fun step(/*0*/ step: jet.Double): jet.DoubleIterator
|
||||
@@ -511,7 +508,6 @@ public final class jet.FloatRange : jet.Range<jet.Float> {
|
||||
public open override /*1*/ fun contains(/*0*/ elem: jet.Float): jet.Boolean
|
||||
public final val end: jet.Float
|
||||
public final val isReversed: jet.Boolean
|
||||
public final fun minus(): jet.FloatRange
|
||||
public final val size: jet.Float
|
||||
public final val start: jet.Float
|
||||
public final fun step(/*0*/ step: jet.Float): jet.FloatIterator
|
||||
@@ -712,7 +708,6 @@ public final class jet.IntRange : jet.Range<jet.Int>, jet.IntIterable {
|
||||
public final val isReversed: jet.Boolean
|
||||
public open override /*1*/ fun iterator(): jet.IntIterator
|
||||
public final val iteratorStart: jet.Int
|
||||
public final fun minus(): jet.IntRange
|
||||
public final val size: jet.Int
|
||||
public final val start: jet.Int
|
||||
public final fun step(/*0*/ step: jet.Int): jet.IntIterator
|
||||
@@ -824,7 +819,6 @@ public final class jet.LongRange : jet.Range<jet.Long>, jet.LongIterable {
|
||||
public final val isReversed: jet.Boolean
|
||||
public open override /*1*/ fun iterator(): jet.LongIterator
|
||||
public final val iteratorStart: jet.Long
|
||||
public final fun minus(): jet.LongRange
|
||||
public final val size: jet.Long
|
||||
public final val start: jet.Long
|
||||
public final fun step(/*0*/ step: jet.Long): jet.LongIterator
|
||||
@@ -940,7 +934,6 @@ public final class jet.ShortRange : jet.Range<jet.Short>, jet.ShortIterable {
|
||||
public final val isReversed: jet.Boolean
|
||||
public open override /*1*/ fun iterator(): jet.ShortIterator
|
||||
public final val iteratorStart: jet.Short
|
||||
public final fun minus(): jet.ShortRange
|
||||
public final val size: jet.Int
|
||||
public final val start: jet.Short
|
||||
public final fun step(/*0*/ step: jet.Int): jet.ShortIterator
|
||||
|
||||
@@ -4,7 +4,7 @@ fun box() : String {
|
||||
cnt++
|
||||
}
|
||||
|
||||
for (n in -(1..5))
|
||||
for (n in (1..5).reversed)
|
||||
cnt++
|
||||
|
||||
return if(cnt == 9) "OK" else cnt.toString()
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package kotlin
|
||||
|
||||
public val CharRange.reversed: CharRange
|
||||
get() = CharRange(end, if (start < end) -size else size)
|
||||
|
||||
public val ByteRange.reversed: ByteRange
|
||||
get() = ByteRange(end, if (start < end) -size else size)
|
||||
|
||||
public val ShortRange.reversed: ShortRange
|
||||
get() = ShortRange(end, if (start < end) -size else size)
|
||||
|
||||
public val IntRange.reversed: IntRange
|
||||
get() = IntRange(end, if (start < end) -size else size)
|
||||
|
||||
public val FloatRange.reversed: FloatRange
|
||||
get() = FloatRange(end, if (start < end) -size else size)
|
||||
|
||||
public val LongRange.reversed: LongRange
|
||||
get() = LongRange(end, if (start < end) -size else size)
|
||||
|
||||
public val DoubleRange.reversed: DoubleRange
|
||||
get() = DoubleRange(end, if (start < end) -size else size)
|
||||
|
||||
@@ -23,4 +23,23 @@ class RangeTest {
|
||||
assertTrue(range.contains(9))
|
||||
assertFalse(range.contains(10))
|
||||
}
|
||||
|
||||
test fun reversedRanges() {
|
||||
val intRange = 0..9
|
||||
val reversedIntRange = intRange.reversed
|
||||
assertEquals(10, reversedIntRange.size)
|
||||
assertEquals(9, reversedIntRange.start)
|
||||
assertEquals(0, reversedIntRange.end)
|
||||
assertEquals(intRange, reversedIntRange.reversed)
|
||||
|
||||
val doubleRange = 0.0..9.0
|
||||
val reversedDoubleRange = doubleRange.reversed
|
||||
assertEquals(9.0, reversedDoubleRange.size)
|
||||
assertEquals(9.0, reversedDoubleRange.start)
|
||||
assertEquals(0.0, reversedDoubleRange.end)
|
||||
assertEquals(doubleRange, reversedDoubleRange.reversed)
|
||||
|
||||
assertEquals(IntRange.EMPTY, IntRange.EMPTY.reversed)
|
||||
assertEquals(FloatRange.EMPTY, FloatRange.EMPTY.reversed)
|
||||
}
|
||||
}
|
||||
@@ -93,10 +93,6 @@ public final class ByteRange implements Range<Byte>, ByteIterable {
|
||||
return new MyIterator(start, count, step);
|
||||
}
|
||||
|
||||
public ByteRange minus() {
|
||||
return new ByteRange(getEnd(), -count);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ByteIterator iterator() {
|
||||
return new MyIterator(start, count, 1);
|
||||
|
||||
@@ -86,10 +86,6 @@ public final class CharRange implements Range<Character>, CharIterable {
|
||||
return count < 0 ? -count : count;
|
||||
}
|
||||
|
||||
public CharRange minus() {
|
||||
return new CharRange(getEnd(), -count);
|
||||
}
|
||||
|
||||
public CharIterator step(int step) {
|
||||
if (step < 0)
|
||||
return new MyIterator(getEnd(), -count, -step);
|
||||
|
||||
@@ -87,10 +87,6 @@ public final class DoubleRange implements Range<Double> {
|
||||
return size < 0 ? -size : size;
|
||||
}
|
||||
|
||||
public DoubleRange minus() {
|
||||
return new DoubleRange(getEnd(), -size);
|
||||
}
|
||||
|
||||
public static DoubleRange count(int length) {
|
||||
return new DoubleRange(0, length);
|
||||
}
|
||||
|
||||
@@ -83,10 +83,6 @@ public final class FloatRange implements Range<Float> {
|
||||
return size < 0 ? -size : size;
|
||||
}
|
||||
|
||||
public FloatRange minus() {
|
||||
return new FloatRange(getEnd(), -size);
|
||||
}
|
||||
|
||||
public static FloatRange count(int length) {
|
||||
return new FloatRange(0, length);
|
||||
}
|
||||
|
||||
@@ -102,10 +102,6 @@ public final class IntRange implements Range<Integer>, IntIterable {
|
||||
return count < 0 ? -count : count;
|
||||
}
|
||||
|
||||
public IntRange minus() {
|
||||
return new IntRange(getEnd(), -count);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IntIterator iterator() {
|
||||
return new MyIterator(start, count, 1);
|
||||
|
||||
@@ -93,10 +93,6 @@ public final class LongRange implements Range<Long>, LongIterable {
|
||||
return count < 0 ? -count : count;
|
||||
}
|
||||
|
||||
public LongRange minus() {
|
||||
return new LongRange(getEnd(), -count);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LongIterator iterator() {
|
||||
return new MyIterator(start, count, 1);
|
||||
|
||||
@@ -93,10 +93,6 @@ public final class ShortRange implements Range<Short>, ShortIterable {
|
||||
return count < 0 ? -count : count;
|
||||
}
|
||||
|
||||
public ShortRange minus() {
|
||||
return new ShortRange(getEnd(), -count);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ShortIterator iterator() {
|
||||
return new MyIterator(start, count, 1);
|
||||
|
||||
Reference in New Issue
Block a user