From 912c69aaa341b5456dcfb3f72df6be289d523c6c Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Thu, 25 Jan 2018 18:04:59 +0300 Subject: [PATCH] Suppress expect-actual mismatch for relaxed array extensions Due to KT-21937 --- .../stdlib/common/src/generated/_Arrays.kt | 7 ++++ .../stdlib/js/src/generated/_ArraysJs.kt | 12 +++--- .../kotlin-stdlib-gen/src/templates/Arrays.kt | 42 +++++++++++++++++++ 3 files changed, 56 insertions(+), 5 deletions(-) diff --git a/libraries/stdlib/common/src/generated/_Arrays.kt b/libraries/stdlib/common/src/generated/_Arrays.kt index 9f9a6fb7f6b..55a5cadec6f 100644 --- a/libraries/stdlib/common/src/generated/_Arrays.kt +++ b/libraries/stdlib/common/src/generated/_Arrays.kt @@ -5570,6 +5570,7 @@ public expect fun CharArray.contentToString(): String /** * Returns new array which is a copy of the original array. */ +@Suppress("NO_ACTUAL_FOR_EXPECT") public expect fun Array.copyOf(): Array /** @@ -5655,11 +5656,13 @@ public expect fun CharArray.copyOf(newSize: Int): CharArray /** * Returns new array which is a copy of the original array, resized to the given [newSize]. */ +@Suppress("NO_ACTUAL_FOR_EXPECT") public expect fun Array.copyOf(newSize: Int): Array /** * Returns new array which is a copy of range of original array. */ +@Suppress("NO_ACTUAL_FOR_EXPECT") public expect fun Array.copyOfRange(fromIndex: Int, toIndex: Int): Array /** @@ -5957,6 +5960,7 @@ public val CharArray.lastIndex: Int /** * Returns an array containing all elements of the original array and then the given [element]. */ +@Suppress("NO_ACTUAL_FOR_EXPECT") public expect operator fun Array.plus(element: T): Array /** @@ -6002,6 +6006,7 @@ public expect operator fun CharArray.plus(element: Char): CharArray /** * Returns an array containing all elements of the original array and then all elements of the given [elements] collection. */ +@Suppress("NO_ACTUAL_FOR_EXPECT") public expect operator fun Array.plus(elements: Collection): Array /** @@ -6047,6 +6052,7 @@ public expect operator fun CharArray.plus(elements: Collection): CharArray /** * Returns an array containing all elements of the original array and then all elements of the given [elements] array. */ +@Suppress("NO_ACTUAL_FOR_EXPECT") public expect operator fun Array.plus(elements: Array): Array /** @@ -6092,6 +6098,7 @@ public expect operator fun CharArray.plus(elements: CharArray): CharArray /** * Returns an array containing all elements of the original array and then the given [element]. */ +@Suppress("NO_ACTUAL_FOR_EXPECT") public expect fun Array.plusElement(element: T): Array /** diff --git a/libraries/stdlib/js/src/generated/_ArraysJs.kt b/libraries/stdlib/js/src/generated/_ArraysJs.kt index 694da1d0a47..500c0625a36 100644 --- a/libraries/stdlib/js/src/generated/_ArraysJs.kt +++ b/libraries/stdlib/js/src/generated/_ArraysJs.kt @@ -415,7 +415,7 @@ public actual fun CharArray.contentToString(): String { /** * Returns new array which is a copy of the original array. */ -@Suppress("NOTHING_TO_INLINE") +@Suppress("ACTUAL_WITHOUT_EXPECT", "NOTHING_TO_INLINE") public actual inline fun Array.copyOf(): Array { return this.asDynamic().slice() } @@ -540,6 +540,7 @@ public actual fun CharArray.copyOf(newSize: Int): CharArray { /** * Returns new array which is a copy of the original array, resized to the given [newSize]. */ +@Suppress("ACTUAL_WITHOUT_EXPECT") public actual fun Array.copyOf(newSize: Int): Array { return arrayCopyResize(this, newSize, null) } @@ -547,7 +548,7 @@ public actual fun Array.copyOf(newSize: Int): Array { /** * Returns new array which is a copy of range of original array. */ -@Suppress("NOTHING_TO_INLINE") +@Suppress("ACTUAL_WITHOUT_EXPECT", "NOTHING_TO_INLINE") public actual inline fun Array.copyOfRange(fromIndex: Int, toIndex: Int): Array { return this.asDynamic().slice(fromIndex, toIndex) } @@ -616,7 +617,7 @@ public actual fun CharArray.copyOfRange(fromIndex: Int, toIndex: Int): CharArray /** * Returns an array containing all elements of the original array and then the given [element]. */ -@Suppress("NOTHING_TO_INLINE") +@Suppress("ACTUAL_WITHOUT_EXPECT", "NOTHING_TO_INLINE") public actual inline operator fun Array.plus(element: T): Array { return this.asDynamic().concat(arrayOf(element)) } @@ -688,6 +689,7 @@ public actual inline operator fun CharArray.plus(element: Char): CharArray { /** * Returns an array containing all elements of the original array and then all elements of the given [elements] collection. */ +@Suppress("ACTUAL_WITHOUT_EXPECT") public actual operator fun Array.plus(elements: Collection): Array { return arrayPlusCollection(this, elements) } @@ -751,7 +753,7 @@ public actual operator fun CharArray.plus(elements: Collection): CharArray /** * Returns an array containing all elements of the original array and then all elements of the given [elements] array. */ -@Suppress("NOTHING_TO_INLINE") +@Suppress("ACTUAL_WITHOUT_EXPECT", "NOTHING_TO_INLINE") public actual inline operator fun Array.plus(elements: Array): Array { return this.asDynamic().concat(elements) } @@ -823,7 +825,7 @@ public actual inline operator fun CharArray.plus(elements: CharArray): CharArray /** * Returns an array containing all elements of the original array and then the given [element]. */ -@Suppress("NOTHING_TO_INLINE") +@Suppress("ACTUAL_WITHOUT_EXPECT", "NOTHING_TO_INLINE") public actual inline fun Array.plusElement(element: T): Array { return this.asDynamic().concat(arrayOf(element)) } diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt index 41883b718ca..8cc4aeecb3e 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt @@ -249,6 +249,7 @@ object ArrayOps : TemplateGroupBase() { on(Platform.JS) { family = ArraysOfObjects inline(suppressWarning = true) + suppress("ACTUAL_WITHOUT_EXPECT") // TODO: KT-21937 returns("Array") body { """ @@ -256,6 +257,11 @@ object ArrayOps : TemplateGroupBase() { """ } } + on(Platform.Common) { + specialFor(InvariantArraysOfObjects) { + suppress("NO_ACTUAL_FOR_EXPECT") // TODO: KT-21937 + } + } } val f_plus = fn("plus(element: T)") { @@ -280,6 +286,7 @@ object ArrayOps : TemplateGroupBase() { inline(suppressWarning = true) specialFor(InvariantArraysOfObjects) { family = ArraysOfObjects + suppress("ACTUAL_WITHOUT_EXPECT") // TODO: KT-21937 returns("Array") } @@ -290,6 +297,11 @@ object ArrayOps : TemplateGroupBase() { "return plus(${primitive.name.toLowerCase()}ArrayOf(element))" } } + on(Platform.Common) { + specialFor(InvariantArraysOfObjects) { + suppress("NO_ACTUAL_FOR_EXPECT") // TODO: KT-21937 + } + } } @@ -315,6 +327,7 @@ object ArrayOps : TemplateGroupBase() { // annotations(Platform.JS, """@Suppress("NOTHING_TO_INLINE")""") specialFor(InvariantArraysOfObjects) { family = ArraysOfObjects + suppress("ACTUAL_WITHOUT_EXPECT") // TODO: KT-21937 returns("Array") } when (primitive) { @@ -324,6 +337,11 @@ object ArrayOps : TemplateGroupBase() { body { "return fillFromCollection(this.copyOf(size + elements.size), this.size, elements)" } } } + on(Platform.Common) { + specialFor(InvariantArraysOfObjects) { + suppress("NO_ACTUAL_FOR_EXPECT") // TODO: KT-21937 + } + } } val f_plus_array = fn("plus(elements: SELF)") { @@ -352,6 +370,7 @@ object ArrayOps : TemplateGroupBase() { inline(suppressWarning = true) specialFor(InvariantArraysOfObjects) { family = ArraysOfObjects + suppress("ACTUAL_WITHOUT_EXPECT") // TODO: KT-21937 returns("Array") body { """return this.asDynamic().concat(elements)""" } } @@ -359,6 +378,11 @@ object ArrayOps : TemplateGroupBase() { body { """return primitiveArrayConcat(this, elements)""" } } } + on(Platform.Common) { + specialFor(InvariantArraysOfObjects) { + suppress("NO_ACTUAL_FOR_EXPECT") // TODO: KT-21937 + } + } } @@ -371,6 +395,7 @@ object ArrayOps : TemplateGroupBase() { on(Platform.JS) { specialFor(InvariantArraysOfObjects) { family = ArraysOfObjects + suppress("ACTUAL_WITHOUT_EXPECT") // TODO: KT-21937 returns("Array") } when(primitive) { @@ -386,6 +411,11 @@ object ArrayOps : TemplateGroupBase() { inlineOnly() body { "return java.util.Arrays.copyOfRange(this, fromIndex, toIndex)" } } + on(Platform.Common) { + specialFor(InvariantArraysOfObjects) { + suppress("NO_ACTUAL_FOR_EXPECT") // TODO: KT-21937 + } + } } val f_copyOf = fn("copyOf()") { @@ -402,6 +432,7 @@ object ArrayOps : TemplateGroupBase() { specialFor(InvariantArraysOfObjects) { family = ArraysOfObjects returns("Array") + suppress("ACTUAL_WITHOUT_EXPECT") // TODO: KT-21937 } when (primitive) { null -> { @@ -416,6 +447,11 @@ object ArrayOps : TemplateGroupBase() { } } } + on(Platform.Common) { + specialFor(InvariantArraysOfObjects) { + suppress("NO_ACTUAL_FOR_EXPECT") // TODO: KT-21937 + } + } } val f_copyOf_newSize = fn("copyOf(newSize: Int)") { @@ -443,6 +479,7 @@ object ArrayOps : TemplateGroupBase() { returns("Array") on(Platform.JS) { family = ArraysOfObjects + suppress("ACTUAL_WITHOUT_EXPECT") // TODO: KT-21937 body { "return arrayCopyResize(this, newSize, null)" } } } @@ -452,6 +489,11 @@ object ArrayOps : TemplateGroupBase() { "return java.util.Arrays.copyOf(this, newSize)" } } + on(Platform.Common) { + specialFor(InvariantArraysOfObjects) { + suppress("NO_ACTUAL_FOR_EXPECT") // TODO: KT-21937 + } + } } val f_sort = fn("sort()") {