From 888f8cc5482475ec5a16fa02ff4050454932c8b5 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Wed, 7 Oct 2015 19:48:33 +0300 Subject: [PATCH] Adjust stdlib to `contains*` transformation --- js/js.libraries/src/core/javautil.kt | 4 ++-- js/js.libraries/src/core/regex.kt | 4 ++-- libraries/stdlib/src/generated/_Arrays.kt | 16 ++++++++-------- libraries/stdlib/src/kotlin/collections/JUtil.kt | 4 ++-- libraries/stdlib/src/kotlin/collections/Sets.kt | 4 ++-- libraries/stdlib/src/kotlin/dom/Dom.kt | 1 - .../stdlib/src/kotlin/text/regex/RegexJVM.kt | 4 ++-- .../src/templates/SpecialJVM.kt | 2 +- 8 files changed, 19 insertions(+), 20 deletions(-) diff --git a/js/js.libraries/src/core/javautil.kt b/js/js.libraries/src/core/javautil.kt index e0e9f117620..90b79cd8c41 100644 --- a/js/js.libraries/src/core/javautil.kt +++ b/js/js.libraries/src/core/javautil.kt @@ -14,14 +14,14 @@ public interface Comparator { @library public abstract class AbstractCollection() : MutableCollection { override fun isEmpty(): Boolean = noImpl - override fun contains(o: Any?): Boolean = noImpl + override fun contains(o: E): Boolean = noImpl override fun iterator(): MutableIterator = noImpl override fun add(e: E): Boolean = noImpl override fun remove(o: Any?): Boolean = noImpl override fun addAll(c: Collection): Boolean = noImpl - override fun containsAll(c: Collection): Boolean = noImpl + override fun containsAll(c: Collection): Boolean = noImpl override fun removeAll(c: Collection): Boolean = noImpl override fun retainAll(c: Collection): Boolean = noImpl diff --git a/js/js.libraries/src/core/regex.kt b/js/js.libraries/src/core/regex.kt index 99e324fcd79..264ecb11d8b 100644 --- a/js/js.libraries/src/core/regex.kt +++ b/js/js.libraries/src/core/regex.kt @@ -180,8 +180,8 @@ private fun RegExp.findNext(input: String, from: Int): MatchResult? { override val size: Int get() = match.size() override fun isEmpty(): Boolean = size() == 0 - override fun contains(o: Any?): Boolean = this.any { it == o } - override fun containsAll(c: Collection): Boolean = c.all({contains(it)}) + override fun contains(o: MatchGroup?): Boolean = this.any { it == o } + override fun containsAll(c: Collection): Boolean = c.all({contains(it)}) override fun iterator(): Iterator = indices.asSequence().map { this[it] }.iterator() diff --git a/libraries/stdlib/src/generated/_Arrays.kt b/libraries/stdlib/src/generated/_Arrays.kt index f56c43e0cda..781bf373e1c 100644 --- a/libraries/stdlib/src/generated/_Arrays.kt +++ b/libraries/stdlib/src/generated/_Arrays.kt @@ -10176,7 +10176,7 @@ public fun BooleanArray.asList(): List { return object : AbstractList(), RandomAccess { override val size: Int get() = this@asList.size() override fun isEmpty(): Boolean = this@asList.isEmpty() - override fun contains(o: Any?): Boolean = this@asList.contains(o as Boolean) + override fun contains(o: Boolean): Boolean = this@asList.contains(o) override fun iterator(): MutableIterator = this@asList.iterator() as MutableIterator override fun get(index: Int): Boolean = this@asList[index] override fun indexOf(o: Any?): Int = this@asList.indexOf(o as Boolean) @@ -10192,7 +10192,7 @@ public fun ByteArray.asList(): List { return object : AbstractList(), RandomAccess { override val size: Int get() = this@asList.size() override fun isEmpty(): Boolean = this@asList.isEmpty() - override fun contains(o: Any?): Boolean = this@asList.contains(o as Byte) + override fun contains(o: Byte): Boolean = this@asList.contains(o) override fun iterator(): MutableIterator = this@asList.iterator() as MutableIterator override fun get(index: Int): Byte = this@asList[index] override fun indexOf(o: Any?): Int = this@asList.indexOf(o as Byte) @@ -10208,7 +10208,7 @@ public fun CharArray.asList(): List { return object : AbstractList(), RandomAccess { override val size: Int get() = this@asList.size() override fun isEmpty(): Boolean = this@asList.isEmpty() - override fun contains(o: Any?): Boolean = this@asList.contains(o as Char) + override fun contains(o: Char): Boolean = this@asList.contains(o) override fun iterator(): MutableIterator = this@asList.iterator() as MutableIterator override fun get(index: Int): Char = this@asList[index] override fun indexOf(o: Any?): Int = this@asList.indexOf(o as Char) @@ -10224,7 +10224,7 @@ public fun DoubleArray.asList(): List { return object : AbstractList(), RandomAccess { override val size: Int get() = this@asList.size() override fun isEmpty(): Boolean = this@asList.isEmpty() - override fun contains(o: Any?): Boolean = this@asList.contains(o as Double) + override fun contains(o: Double): Boolean = this@asList.contains(o) override fun iterator(): MutableIterator = this@asList.iterator() as MutableIterator override fun get(index: Int): Double = this@asList[index] override fun indexOf(o: Any?): Int = this@asList.indexOf(o as Double) @@ -10240,7 +10240,7 @@ public fun FloatArray.asList(): List { return object : AbstractList(), RandomAccess { override val size: Int get() = this@asList.size() override fun isEmpty(): Boolean = this@asList.isEmpty() - override fun contains(o: Any?): Boolean = this@asList.contains(o as Float) + override fun contains(o: Float): Boolean = this@asList.contains(o) override fun iterator(): MutableIterator = this@asList.iterator() as MutableIterator override fun get(index: Int): Float = this@asList[index] override fun indexOf(o: Any?): Int = this@asList.indexOf(o as Float) @@ -10256,7 +10256,7 @@ public fun IntArray.asList(): List { return object : AbstractList(), RandomAccess { override val size: Int get() = this@asList.size() override fun isEmpty(): Boolean = this@asList.isEmpty() - override fun contains(o: Any?): Boolean = this@asList.contains(o as Int) + override fun contains(o: Int): Boolean = this@asList.contains(o) override fun iterator(): MutableIterator = this@asList.iterator() as MutableIterator override fun get(index: Int): Int = this@asList[index] override fun indexOf(o: Any?): Int = this@asList.indexOf(o as Int) @@ -10272,7 +10272,7 @@ public fun LongArray.asList(): List { return object : AbstractList(), RandomAccess { override val size: Int get() = this@asList.size() override fun isEmpty(): Boolean = this@asList.isEmpty() - override fun contains(o: Any?): Boolean = this@asList.contains(o as Long) + override fun contains(o: Long): Boolean = this@asList.contains(o) override fun iterator(): MutableIterator = this@asList.iterator() as MutableIterator override fun get(index: Int): Long = this@asList[index] override fun indexOf(o: Any?): Int = this@asList.indexOf(o as Long) @@ -10288,7 +10288,7 @@ public fun ShortArray.asList(): List { return object : AbstractList(), RandomAccess { override val size: Int get() = this@asList.size() override fun isEmpty(): Boolean = this@asList.isEmpty() - override fun contains(o: Any?): Boolean = this@asList.contains(o as Short) + override fun contains(o: Short): Boolean = this@asList.contains(o) override fun iterator(): MutableIterator = this@asList.iterator() as MutableIterator override fun get(index: Int): Short = this@asList[index] override fun indexOf(o: Any?): Int = this@asList.indexOf(o as Short) diff --git a/libraries/stdlib/src/kotlin/collections/JUtil.kt b/libraries/stdlib/src/kotlin/collections/JUtil.kt index 25feb204991..555e1f41560 100644 --- a/libraries/stdlib/src/kotlin/collections/JUtil.kt +++ b/libraries/stdlib/src/kotlin/collections/JUtil.kt @@ -22,8 +22,8 @@ internal object EmptyList : List, Serializable { override val size: Int get() = 0 override fun isEmpty(): Boolean = true - override fun contains(o: Any?): Boolean = false - override fun containsAll(c: Collection): Boolean = c.isEmpty() + override fun contains(o: Nothing): Boolean = false + override fun containsAll(c: Collection): Boolean = c.isEmpty() override fun get(index: Int): Nothing = throw IndexOutOfBoundsException("Index $index is out of bound of empty list.") override fun indexOf(o: Any?): Int = -1 diff --git a/libraries/stdlib/src/kotlin/collections/Sets.kt b/libraries/stdlib/src/kotlin/collections/Sets.kt index 032732dbb8f..2e5c5c24dc8 100644 --- a/libraries/stdlib/src/kotlin/collections/Sets.kt +++ b/libraries/stdlib/src/kotlin/collections/Sets.kt @@ -14,8 +14,8 @@ internal object EmptySet : Set, Serializable { override val size: Int get() = 0 override fun isEmpty(): Boolean = true - override fun contains(o: Any?): Boolean = false - override fun containsAll(c: Collection): Boolean = c.isEmpty() + override fun contains(o: Nothing): Boolean = false + override fun containsAll(c: Collection): Boolean = c.isEmpty() override fun iterator(): Iterator = EmptyIterator diff --git a/libraries/stdlib/src/kotlin/dom/Dom.kt b/libraries/stdlib/src/kotlin/dom/Dom.kt index 8508b23afa0..99f78f3c39b 100644 --- a/libraries/stdlib/src/kotlin/dom/Dom.kt +++ b/libraries/stdlib/src/kotlin/dom/Dom.kt @@ -232,7 +232,6 @@ private class ElementListAsList(private val nodeList: NodeList) : AbstractList): Boolean = c.all({contains(it)}) + override fun contains(o: MatchGroup?): Boolean = this.any({ it == o }) + override fun containsAll(c: Collection): Boolean = c.all({contains(it)}) override fun iterator(): Iterator = indices.asSequence().map { this[it] }.iterator() override fun get(index: Int): MatchGroup? { diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/SpecialJVM.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/SpecialJVM.kt index 583e23c8dfb..efc18322432 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/SpecialJVM.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/SpecialJVM.kt @@ -230,7 +230,7 @@ fun specialJVM(): List { return object : AbstractList(), RandomAccess { override val size: Int get() = this@asList.size() override fun isEmpty(): Boolean = this@asList.isEmpty() - override fun contains(o: Any?): Boolean = this@asList.contains(o as T) + override fun contains(o: T): Boolean = this@asList.contains(o) override fun iterator(): MutableIterator = this@asList.iterator() as MutableIterator override fun get(index: Int): T = this@asList[index] override fun indexOf(o: Any?): Int = this@asList.indexOf(o as T)