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 val iteratorStart : Int
|
||||||
|
|
||||||
public fun minus() : IntRange
|
|
||||||
|
|
||||||
public fun step(step: Int) : IntIterator
|
public fun step(step: Int) : IntIterator
|
||||||
|
|
||||||
public val isReversed : Boolean
|
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 val end : Long
|
||||||
|
|
||||||
public fun minus() : LongRange
|
|
||||||
|
|
||||||
public fun step(step: Long) : LongIterator
|
public fun step(step: Long) : LongIterator
|
||||||
|
|
||||||
public val isReversed : Boolean
|
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 val iteratorStart : Byte
|
||||||
|
|
||||||
public fun minus() : ByteRange
|
|
||||||
|
|
||||||
public fun step(step: Int) : ByteIterator
|
public fun step(step: Int) : ByteIterator
|
||||||
|
|
||||||
public val isReversed : Boolean
|
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 val end : Short
|
||||||
|
|
||||||
public fun minus() : ShortRange
|
|
||||||
|
|
||||||
public fun step(step: Int) : ShortIterator
|
public fun step(step: Int) : ShortIterator
|
||||||
|
|
||||||
public val isReversed : Boolean
|
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 val end : Char
|
||||||
|
|
||||||
public fun minus() : CharRange
|
|
||||||
|
|
||||||
public fun step(step: Int) : CharIterator
|
public fun step(step: Int) : CharIterator
|
||||||
|
|
||||||
public val isReversed : Boolean
|
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 val end : Float
|
||||||
|
|
||||||
public fun minus() : FloatRange
|
|
||||||
|
|
||||||
public fun step(step: Float) : FloatIterator
|
public fun step(step: Float) : FloatIterator
|
||||||
|
|
||||||
public val isReversed : Boolean
|
public val isReversed : Boolean
|
||||||
@@ -125,8 +113,6 @@ public class DoubleRange(public val start : Double, public val size : Double) :
|
|||||||
|
|
||||||
public val end : Double
|
public val end : Double
|
||||||
|
|
||||||
public fun minus() : DoubleRange
|
|
||||||
|
|
||||||
public fun step(step: Double) : DoubleIterator
|
public fun step(step: Double) : DoubleIterator
|
||||||
|
|
||||||
public val isReversed : Boolean
|
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 final val isReversed: jet.Boolean
|
||||||
public open override /*1*/ fun iterator(): jet.ByteIterator
|
public open override /*1*/ fun iterator(): jet.ByteIterator
|
||||||
public final val iteratorStart: jet.Byte
|
public final val iteratorStart: jet.Byte
|
||||||
public final fun minus(): jet.ByteRange
|
|
||||||
public final val size: jet.Int
|
public final val size: jet.Int
|
||||||
public final val start: jet.Byte
|
public final val start: jet.Byte
|
||||||
public final fun step(/*0*/ step: jet.Int): jet.ByteIterator
|
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 final val isReversed: jet.Boolean
|
||||||
public open override /*1*/ fun iterator(): jet.CharIterator
|
public open override /*1*/ fun iterator(): jet.CharIterator
|
||||||
public final val iteratorStart: jet.Char
|
public final val iteratorStart: jet.Char
|
||||||
public final fun minus(): jet.CharRange
|
|
||||||
public final val size: jet.Int
|
public final val size: jet.Int
|
||||||
public final val start: jet.Char
|
public final val start: jet.Char
|
||||||
public final fun step(/*0*/ step: jet.Int): jet.CharIterator
|
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 open override /*1*/ fun contains(/*0*/ elem: jet.Double): jet.Boolean
|
||||||
public final val end: jet.Double
|
public final val end: jet.Double
|
||||||
public final val isReversed: jet.Boolean
|
public final val isReversed: jet.Boolean
|
||||||
public final fun minus(): jet.DoubleRange
|
|
||||||
public final val size: jet.Double
|
public final val size: jet.Double
|
||||||
public final val start: jet.Double
|
public final val start: jet.Double
|
||||||
public final fun step(/*0*/ step: jet.Double): jet.DoubleIterator
|
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 open override /*1*/ fun contains(/*0*/ elem: jet.Float): jet.Boolean
|
||||||
public final val end: jet.Float
|
public final val end: jet.Float
|
||||||
public final val isReversed: jet.Boolean
|
public final val isReversed: jet.Boolean
|
||||||
public final fun minus(): jet.FloatRange
|
|
||||||
public final val size: jet.Float
|
public final val size: jet.Float
|
||||||
public final val start: jet.Float
|
public final val start: jet.Float
|
||||||
public final fun step(/*0*/ step: jet.Float): jet.FloatIterator
|
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 final val isReversed: jet.Boolean
|
||||||
public open override /*1*/ fun iterator(): jet.IntIterator
|
public open override /*1*/ fun iterator(): jet.IntIterator
|
||||||
public final val iteratorStart: jet.Int
|
public final val iteratorStart: jet.Int
|
||||||
public final fun minus(): jet.IntRange
|
|
||||||
public final val size: jet.Int
|
public final val size: jet.Int
|
||||||
public final val start: jet.Int
|
public final val start: jet.Int
|
||||||
public final fun step(/*0*/ step: jet.Int): jet.IntIterator
|
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 final val isReversed: jet.Boolean
|
||||||
public open override /*1*/ fun iterator(): jet.LongIterator
|
public open override /*1*/ fun iterator(): jet.LongIterator
|
||||||
public final val iteratorStart: jet.Long
|
public final val iteratorStart: jet.Long
|
||||||
public final fun minus(): jet.LongRange
|
|
||||||
public final val size: jet.Long
|
public final val size: jet.Long
|
||||||
public final val start: jet.Long
|
public final val start: jet.Long
|
||||||
public final fun step(/*0*/ step: jet.Long): jet.LongIterator
|
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 final val isReversed: jet.Boolean
|
||||||
public open override /*1*/ fun iterator(): jet.ShortIterator
|
public open override /*1*/ fun iterator(): jet.ShortIterator
|
||||||
public final val iteratorStart: jet.Short
|
public final val iteratorStart: jet.Short
|
||||||
public final fun minus(): jet.ShortRange
|
|
||||||
public final val size: jet.Int
|
public final val size: jet.Int
|
||||||
public final val start: jet.Short
|
public final val start: jet.Short
|
||||||
public final fun step(/*0*/ step: jet.Int): jet.ShortIterator
|
public final fun step(/*0*/ step: jet.Int): jet.ShortIterator
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ fun box() : String {
|
|||||||
cnt++
|
cnt++
|
||||||
}
|
}
|
||||||
|
|
||||||
for (n in -(1..5))
|
for (n in (1..5).reversed)
|
||||||
cnt++
|
cnt++
|
||||||
|
|
||||||
return if(cnt == 9) "OK" else cnt.toString()
|
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))
|
assertTrue(range.contains(9))
|
||||||
assertFalse(range.contains(10))
|
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);
|
return new MyIterator(start, count, step);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ByteRange minus() {
|
|
||||||
return new ByteRange(getEnd(), -count);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ByteIterator iterator() {
|
public ByteIterator iterator() {
|
||||||
return new MyIterator(start, count, 1);
|
return new MyIterator(start, count, 1);
|
||||||
|
|||||||
@@ -86,10 +86,6 @@ public final class CharRange implements Range<Character>, CharIterable {
|
|||||||
return count < 0 ? -count : count;
|
return count < 0 ? -count : count;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CharRange minus() {
|
|
||||||
return new CharRange(getEnd(), -count);
|
|
||||||
}
|
|
||||||
|
|
||||||
public CharIterator step(int step) {
|
public CharIterator step(int step) {
|
||||||
if (step < 0)
|
if (step < 0)
|
||||||
return new MyIterator(getEnd(), -count, -step);
|
return new MyIterator(getEnd(), -count, -step);
|
||||||
|
|||||||
@@ -87,10 +87,6 @@ public final class DoubleRange implements Range<Double> {
|
|||||||
return size < 0 ? -size : size;
|
return size < 0 ? -size : size;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DoubleRange minus() {
|
|
||||||
return new DoubleRange(getEnd(), -size);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static DoubleRange count(int length) {
|
public static DoubleRange count(int length) {
|
||||||
return new DoubleRange(0, length);
|
return new DoubleRange(0, length);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,10 +83,6 @@ public final class FloatRange implements Range<Float> {
|
|||||||
return size < 0 ? -size : size;
|
return size < 0 ? -size : size;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FloatRange minus() {
|
|
||||||
return new FloatRange(getEnd(), -size);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static FloatRange count(int length) {
|
public static FloatRange count(int length) {
|
||||||
return new FloatRange(0, length);
|
return new FloatRange(0, length);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,10 +102,6 @@ public final class IntRange implements Range<Integer>, IntIterable {
|
|||||||
return count < 0 ? -count : count;
|
return count < 0 ? -count : count;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IntRange minus() {
|
|
||||||
return new IntRange(getEnd(), -count);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IntIterator iterator() {
|
public IntIterator iterator() {
|
||||||
return new MyIterator(start, count, 1);
|
return new MyIterator(start, count, 1);
|
||||||
|
|||||||
@@ -93,10 +93,6 @@ public final class LongRange implements Range<Long>, LongIterable {
|
|||||||
return count < 0 ? -count : count;
|
return count < 0 ? -count : count;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LongRange minus() {
|
|
||||||
return new LongRange(getEnd(), -count);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public LongIterator iterator() {
|
public LongIterator iterator() {
|
||||||
return new MyIterator(start, count, 1);
|
return new MyIterator(start, count, 1);
|
||||||
|
|||||||
@@ -93,10 +93,6 @@ public final class ShortRange implements Range<Short>, ShortIterable {
|
|||||||
return count < 0 ? -count : count;
|
return count < 0 ? -count : count;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ShortRange minus() {
|
|
||||||
return new ShortRange(getEnd(), -count);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ShortIterator iterator() {
|
public ShortIterator iterator() {
|
||||||
return new MyIterator(start, count, 1);
|
return new MyIterator(start, count, 1);
|
||||||
|
|||||||
Reference in New Issue
Block a user