From ff1bf673badf3b640d5633f8259979efe95ce7d2 Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Fri, 9 Oct 2015 11:59:34 +0300 Subject: [PATCH] Java 8 override restrictions: interface can't implement a method of 'Any' - update Range and related classes --- core/builtins/src/kotlin/Range.kt | 2 -- core/builtins/src/kotlin/Ranges.kt | 14 ++++++++++++++ .../jetbrains/kotlin/generators/builtins/ranges.kt | 4 ++++ libraries/stdlib/src/kotlin/util/Ranges.kt | 2 ++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/core/builtins/src/kotlin/Range.kt b/core/builtins/src/kotlin/Range.kt index a1dd9f360b6..29d1213371a 100644 --- a/core/builtins/src/kotlin/Range.kt +++ b/core/builtins/src/kotlin/Range.kt @@ -40,6 +40,4 @@ public interface Range> { * Checks if the range is empty. */ public fun isEmpty(): Boolean = start > end - - override fun toString(): String = "$start..$end" } diff --git a/core/builtins/src/kotlin/Ranges.kt b/core/builtins/src/kotlin/Ranges.kt index bda8c7e6551..1d2c16818ce 100644 --- a/core/builtins/src/kotlin/Ranges.kt +++ b/core/builtins/src/kotlin/Ranges.kt @@ -38,6 +38,8 @@ public class ByteRange(override val start: Byte, override val end: Byte) : Range override fun hashCode(): Int = if (isEmpty()) -1 else (31 * start.toInt() + end.toInt()) + override fun toString(): String = "$start..$end" + companion object { /** An empty range of values of type Byte. */ public val EMPTY: ByteRange = ByteRange(1, 0) @@ -64,6 +66,8 @@ public class CharRange(override val start: Char, override val end: Char) : Range override fun hashCode(): Int = if (isEmpty()) -1 else (31 * start.toInt() + end.toInt()) + override fun toString(): String = "$start..$end" + companion object { /** An empty range of values of type Char. */ public val EMPTY: CharRange = CharRange(1.toChar(), 0.toChar()) @@ -90,6 +94,8 @@ public class ShortRange(override val start: Short, override val end: Short) : Ra override fun hashCode(): Int = if (isEmpty()) -1 else (31 * start.toInt() + end.toInt()) + override fun toString(): String = "$start..$end" + companion object { /** An empty range of values of type Short. */ public val EMPTY: ShortRange = ShortRange(1, 0) @@ -116,6 +122,8 @@ public class IntRange(override val start: Int, override val end: Int) : Range, P override fun hashCode(): Int $hashCode + override fun toString(): String = $toString + companion object { /** An empty range of values of type $t. */ public val EMPTY: $range = $range($emptyBounds) diff --git a/libraries/stdlib/src/kotlin/util/Ranges.kt b/libraries/stdlib/src/kotlin/util/Ranges.kt index 70c12184d7d..df955f6c5d5 100644 --- a/libraries/stdlib/src/kotlin/util/Ranges.kt +++ b/libraries/stdlib/src/kotlin/util/Ranges.kt @@ -21,6 +21,8 @@ public class ComparableRange> ( override fun hashCode(): Int { return if (isEmpty()) -1 else 31 * start.hashCode() + end.hashCode() } + + override fun toString(): String = "$start..$end" } /**