Moved *Range.step() functions to stdlib.
This commit is contained in:
@@ -11,8 +11,6 @@ public class IntRange(public val start : Int, public val size : Int) : Range<Int
|
|||||||
|
|
||||||
public val end : Int
|
public val end : Int
|
||||||
|
|
||||||
public fun step(step: Int) : IntIterator
|
|
||||||
|
|
||||||
public class object {
|
public class object {
|
||||||
public val EMPTY: IntRange
|
public val EMPTY: IntRange
|
||||||
}
|
}
|
||||||
@@ -25,8 +23,6 @@ public class LongRange(public val start : Long, public val size : Long) : Range<
|
|||||||
|
|
||||||
public val end : Long
|
public val end : Long
|
||||||
|
|
||||||
public fun step(step: Long) : LongIterator
|
|
||||||
|
|
||||||
public class object {
|
public class object {
|
||||||
public val EMPTY: LongRange
|
public val EMPTY: LongRange
|
||||||
}
|
}
|
||||||
@@ -39,8 +35,6 @@ public class ByteRange(public val start : Byte, public val size : Int) : Range<B
|
|||||||
|
|
||||||
public val end : Byte
|
public val end : Byte
|
||||||
|
|
||||||
public fun step(step: Int) : ByteIterator
|
|
||||||
|
|
||||||
public class object {
|
public class object {
|
||||||
public val EMPTY: ByteRange
|
public val EMPTY: ByteRange
|
||||||
}
|
}
|
||||||
@@ -53,8 +47,6 @@ public class ShortRange(public val start : Short, public val size : Int) : Range
|
|||||||
|
|
||||||
public val end : Short
|
public val end : Short
|
||||||
|
|
||||||
public fun step(step: Int) : ShortIterator
|
|
||||||
|
|
||||||
public class object {
|
public class object {
|
||||||
public val EMPTY: ShortRange
|
public val EMPTY: ShortRange
|
||||||
}
|
}
|
||||||
@@ -67,8 +59,6 @@ public class CharRange(public val start : Char, public val size : Int) : Range<C
|
|||||||
|
|
||||||
public val end : Char
|
public val end : Char
|
||||||
|
|
||||||
public fun step(step: Int) : CharIterator
|
|
||||||
|
|
||||||
public class object {
|
public class object {
|
||||||
public val EMPTY: CharRange
|
public val EMPTY: CharRange
|
||||||
}
|
}
|
||||||
@@ -79,8 +69,6 @@ public class FloatRange(public val start : Float, public val size : Float) : Ran
|
|||||||
|
|
||||||
public val end : Float
|
public val end : Float
|
||||||
|
|
||||||
public fun step(step: Float) : FloatIterator
|
|
||||||
|
|
||||||
public class object {
|
public class object {
|
||||||
public val EMPTY: FloatRange
|
public val EMPTY: FloatRange
|
||||||
}
|
}
|
||||||
@@ -91,8 +79,6 @@ public class DoubleRange(public val start : Double, public val size : Double) :
|
|||||||
|
|
||||||
public val end : Double
|
public val end : Double
|
||||||
|
|
||||||
public fun step(step: Double) : DoubleIterator
|
|
||||||
|
|
||||||
public class object {
|
public class object {
|
||||||
public val EMPTY: DoubleRange
|
public val EMPTY: DoubleRange
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -320,6 +320,14 @@ public class StdlibTest extends CodegenTestCase {
|
|||||||
blackBoxFile("uptoDownto.kt");
|
blackBoxFile("uptoDownto.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testKt765 () {
|
||||||
|
blackBoxFile("regressions/kt765.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testKt925 () {
|
||||||
|
blackBoxFile("regressions/kt925.kt");
|
||||||
|
}
|
||||||
|
|
||||||
public void testKt930 () {
|
public void testKt930 () {
|
||||||
blackBoxFile("regressions/kt930.kt");
|
blackBoxFile("regressions/kt930.kt");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2837,11 +2837,6 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
|||||||
blackBoxFileByFullPath("compiler/testData/codegen/box/primitiveTypes/kt757.kt");
|
blackBoxFileByFullPath("compiler/testData/codegen/box/primitiveTypes/kt757.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("kt765.kt")
|
|
||||||
public void testKt765() throws Exception {
|
|
||||||
blackBoxFileByFullPath("compiler/testData/codegen/box/primitiveTypes/kt765.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("kt821.kt")
|
@TestMetadata("kt821.kt")
|
||||||
public void testKt821() throws Exception {
|
public void testKt821() throws Exception {
|
||||||
blackBoxFileByFullPath("compiler/testData/codegen/box/primitiveTypes/kt821.kt");
|
blackBoxFileByFullPath("compiler/testData/codegen/box/primitiveTypes/kt821.kt");
|
||||||
@@ -2867,11 +2862,6 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
|||||||
blackBoxFileByFullPath("compiler/testData/codegen/box/primitiveTypes/kt887.kt");
|
blackBoxFileByFullPath("compiler/testData/codegen/box/primitiveTypes/kt887.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("kt925.kt")
|
|
||||||
public void testKt925() throws Exception {
|
|
||||||
blackBoxFileByFullPath("compiler/testData/codegen/box/primitiveTypes/kt925.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("kt935.kt")
|
@TestMetadata("kt935.kt")
|
||||||
public void testKt935() throws Exception {
|
public void testKt935() throws Exception {
|
||||||
blackBoxFileByFullPath("compiler/testData/codegen/box/primitiveTypes/kt935.kt");
|
blackBoxFileByFullPath("compiler/testData/codegen/box/primitiveTypes/kt935.kt");
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ public fun FloatSequence.reversed(): FloatSequence {
|
|||||||
public fun LongSequence.reversed(): LongSequence {
|
public fun LongSequence.reversed(): LongSequence {
|
||||||
return LongSequence(end, start, -increment)
|
return LongSequence(end, start, -increment)
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun DoubleSequence.reversed(): DoubleSequence {
|
public fun DoubleSequence.reversed(): DoubleSequence {
|
||||||
return DoubleSequence(end, start, -increment)
|
return DoubleSequence(end, start, -increment)
|
||||||
}
|
}
|
||||||
@@ -57,3 +57,79 @@ public fun DoubleRange.reversed(): DoubleSequence {
|
|||||||
return DoubleSequence(end, start, -1.0)
|
return DoubleSequence(end, start, -1.0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public fun IntSequence.step(step: Int): IntSequence {
|
||||||
|
checkStepIsPositive(step > 0, step)
|
||||||
|
return IntSequence(start, end, if (increment > 0) step else -step)
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun CharacterSequence.step(step: Int): CharacterSequence {
|
||||||
|
checkStepIsPositive(step > 0, step)
|
||||||
|
return CharacterSequence(start, end, if (increment > 0) step else -step)
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun ByteSequence.step(step: Int): ByteSequence {
|
||||||
|
checkStepIsPositive(step > 0, step)
|
||||||
|
return ByteSequence(start, end, if (increment > 0) step else -step)
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun ShortSequence.step(step: Int): ShortSequence {
|
||||||
|
checkStepIsPositive(step > 0, step)
|
||||||
|
return ShortSequence(start, end, if (increment > 0) step else -step)
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun LongSequence.step(step: Long): LongSequence {
|
||||||
|
checkStepIsPositive(step > 0, step)
|
||||||
|
return LongSequence(start, end, if (increment > 0) step else -step)
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun FloatSequence.step(step: Float): FloatSequence {
|
||||||
|
checkStepIsPositive(step > 0, step)
|
||||||
|
return FloatSequence(start, end, if (increment > 0) step else -step)
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun DoubleSequence.step(step: Double): DoubleSequence {
|
||||||
|
checkStepIsPositive(step > 0, step)
|
||||||
|
return DoubleSequence(start, end, if (increment > 0) step else -step)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public fun IntRange.step(step: Int): IntSequence {
|
||||||
|
checkStepIsPositive(step > 0, step)
|
||||||
|
return IntSequence(start, end, step)
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun CharRange.step(step: Int): CharacterSequence {
|
||||||
|
checkStepIsPositive(step > 0, step)
|
||||||
|
return CharacterSequence(start, end, step)
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun ByteRange.step(step: Int): ByteSequence {
|
||||||
|
checkStepIsPositive(step > 0, step)
|
||||||
|
return ByteSequence(start, end, step)
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun ShortRange.step(step: Int): ShortSequence {
|
||||||
|
checkStepIsPositive(step > 0, step)
|
||||||
|
return ShortSequence(start, end, step)
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun LongRange.step(step: Long): LongSequence {
|
||||||
|
checkStepIsPositive(step > 0, step)
|
||||||
|
return LongSequence(start, end, step)
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun FloatRange.step(step: Float): FloatSequence {
|
||||||
|
checkStepIsPositive(step > 0, step)
|
||||||
|
return FloatSequence(start, end, step)
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun DoubleRange.step(step: Double): DoubleSequence {
|
||||||
|
checkStepIsPositive(step > 0, step)
|
||||||
|
return DoubleSequence(start, end, step)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private fun checkStepIsPositive(isPositive: Boolean, step: Number) {
|
||||||
|
if (!isPositive) throw IllegalArgumentException("Step must be positive, was: $step")
|
||||||
|
}
|
||||||
|
|||||||
@@ -79,13 +79,6 @@ public final class ByteRange implements Range<Byte>, ByteIterable {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ByteIterator step(int step) {
|
|
||||||
if (step < 0)
|
|
||||||
return new ByteSequenceIterator(getEnd(), getStart(), step);
|
|
||||||
else
|
|
||||||
return new ByteSequenceIterator(getStart(), getEnd(), step);
|
|
||||||
}
|
|
||||||
|
|
||||||
public byte getStart() {
|
public byte getStart() {
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,13 +79,6 @@ public final class CharRange implements Range<Character>, CharIterable {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CharIterator step(int step) {
|
|
||||||
if (step < 0)
|
|
||||||
return new CharacterSequenceIterator(getEnd(), getStart(), step);
|
|
||||||
else
|
|
||||||
return new CharacterSequenceIterator(getStart(), getEnd(), step);
|
|
||||||
}
|
|
||||||
|
|
||||||
public char getStart() {
|
public char getStart() {
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,13 +77,6 @@ public final class DoubleRange implements Range<Double> {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DoubleIterator step(double step) {
|
|
||||||
if (step < 0)
|
|
||||||
return new DoubleSequenceIterator(getEnd(), getStart(), step);
|
|
||||||
else
|
|
||||||
return new DoubleSequenceIterator(getStart(), getEnd(), step);
|
|
||||||
}
|
|
||||||
|
|
||||||
public double getStart() {
|
public double getStart() {
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,13 +73,6 @@ public final class FloatRange implements Range<Float> {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FloatIterator step(float step) {
|
|
||||||
if (step < 0)
|
|
||||||
return new FloatSequenceIterator(getEnd(), getStart(), step);
|
|
||||||
else
|
|
||||||
return new FloatSequenceIterator(getStart(), getEnd(), step);
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getStart() {
|
public float getStart() {
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,13 +79,6 @@ public final class IntRange implements Range<Integer>, IntIterable {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IntIterator step(int step) {
|
|
||||||
if (step < 0)
|
|
||||||
return new IntSequenceIterator(getEnd(), getStart(), step);
|
|
||||||
else
|
|
||||||
return new IntSequenceIterator(getStart(), getEnd(), step);
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getStart() {
|
public int getStart() {
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,13 +80,6 @@ public final class LongRange implements Range<Long>, LongIterable {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LongIterator step(long step) {
|
|
||||||
if (step < 0)
|
|
||||||
return new LongSequenceIterator(getEnd(), getStart(), step);
|
|
||||||
else
|
|
||||||
return new LongSequenceIterator(getStart(), getEnd(), step);
|
|
||||||
}
|
|
||||||
|
|
||||||
public long getStart() {
|
public long getStart() {
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,13 +79,6 @@ public final class ShortRange implements Range<Short>, ShortIterable {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ShortIterator step(int step) {
|
|
||||||
if (step < 0)
|
|
||||||
return new ShortSequenceIterator(getEnd(), getStart(), step);
|
|
||||||
else
|
|
||||||
return new ShortSequenceIterator(getStart(), getEnd(), step);
|
|
||||||
}
|
|
||||||
|
|
||||||
public short getStart() {
|
public short getStart() {
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user