From ac46f1e23d43c35de8fa55cb9687756b5905f6fa Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Wed, 12 Apr 2017 09:12:06 +0300 Subject: [PATCH] Cleanup warnings in stdlib-js --- js/js.libraries/src/builtins/arrayUtils.kt | 1 + js/js.libraries/src/core/annotationsJVM.kt | 2 +- js/js.libraries/src/core/builtins.kt | 2 ++ js/js.libraries/src/core/collections.kt | 1 + js/js.libraries/src/core/collections/ArrayList.kt | 4 ++-- .../src/core/collections/InternalStringMap.kt | 10 +++++----- js/js.libraries/src/core/collections/LinkedHashMap.kt | 1 + js/js.libraries/src/core/concurrent.kt | 2 +- js/js.libraries/src/core/console.kt | 1 + js/js.libraries/src/core/core.kt | 2 ++ js/js.libraries/src/core/coroutines.kt | 4 ++-- js/js.libraries/src/core/grouping.kt | 2 +- js/js.libraries/src/core/kotlin.kt | 2 ++ js/js.libraries/src/core/string.kt | 2 +- js/js.libraries/src/core/stringsCode.kt | 2 +- js/js.libraries/src/core/text.kt | 2 +- js/js.libraries/src/deprecated/jquery/common.kt | 1 + js/js.libraries/src/deprecated/jquery/ui.kt | 1 + js/js.libraries/src/dom/ItemArrayLike.kt | 4 ++-- 19 files changed, 29 insertions(+), 17 deletions(-) diff --git a/js/js.libraries/src/builtins/arrayUtils.kt b/js/js.libraries/src/builtins/arrayUtils.kt index 4042b4bdcfa..3b4ea7c2be9 100644 --- a/js/js.libraries/src/builtins/arrayUtils.kt +++ b/js/js.libraries/src/builtins/arrayUtils.kt @@ -44,6 +44,7 @@ fun booleanArray(size: Int, init: dynamic): Array { } @JsName("charArray") +@Suppress("UNUSED_PARAMETER") fun charArray(size: Int, init: dynamic): Array { val result = js("new Uint16Array(size)") result.`$type$` = "CharArray" diff --git a/js/js.libraries/src/core/annotationsJVM.kt b/js/js.libraries/src/core/annotationsJVM.kt index e9fc929142f..60a613347b9 100644 --- a/js/js.libraries/src/core/annotationsJVM.kt +++ b/js/js.libraries/src/core/annotationsJVM.kt @@ -23,7 +23,7 @@ package kotlin.jvm internal annotation class JvmOverloads @Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.FILE) -@Retention(AnnotationRetention.RUNTIME) +@Retention(AnnotationRetention.SOURCE) @MustBeDocumented internal annotation class JvmName(public val name: String) diff --git a/js/js.libraries/src/core/builtins.kt b/js/js.libraries/src/core/builtins.kt index 5d925b86c96..45ccc159164 100644 --- a/js/js.libraries/src/core/builtins.kt +++ b/js/js.libraries/src/core/builtins.kt @@ -173,6 +173,7 @@ internal inline fun concat(args: Array): T { */ @PublishedApi @JsName("arrayConcat") +@Suppress("UNUSED_PARAMETER") internal fun arrayConcat(a: T, b: T): T { return concat(js("arguments")) } @@ -186,6 +187,7 @@ internal fun arrayConcat(a: T, b: T): T { */ @PublishedApi @JsName("primitiveArrayConcat") +@Suppress("UNUSED_PARAMETER") internal fun primitiveArrayConcat(a: T, b: T): T { val args: Array = js("arguments") if (a is Array<*> && a.asDynamic().`$type$` === undefined) { diff --git a/js/js.libraries/src/core/collections.kt b/js/js.libraries/src/core/collections.kt index ecb4bae9fb5..9bfea76fe4a 100644 --- a/js/js.libraries/src/core/collections.kt +++ b/js/js.libraries/src/core/collections.kt @@ -58,6 +58,7 @@ internal fun copyToArrayImpl(collection: Collection<*>, array: Array): Ar } @library("arrayToString") +@Suppress("UNUSED_PARAMETER") internal fun arrayToString(array: Array<*>): String = definedExternally /** diff --git a/js/js.libraries/src/core/collections/ArrayList.kt b/js/js.libraries/src/core/collections/ArrayList.kt index 182d1a8b615..63bc17cc00a 100644 --- a/js/js.libraries/src/core/collections/ArrayList.kt +++ b/js/js.libraries/src/core/collections/ArrayList.kt @@ -29,7 +29,7 @@ public open class ArrayList internal constructor(private var array: Array internal constructor(private var array: Array(override val equality: EqualityComparator override operator fun get(key: K): V? { if (key !is String) return null val value = backingMap[key] - return if (value !== undefined) value as V else null + return if (value !== undefined) value.unsafeCast() else null } @@ -62,7 +62,7 @@ internal class InternalStringMap(override val equality: EqualityComparator } else { // valueMod++ - return oldValue as V + return oldValue.unsafeCast() } } @@ -73,7 +73,7 @@ internal class InternalStringMap(override val equality: EqualityComparator deleteProperty(backingMap, key) size-- // structureChanged(host) - return value as V + return value.unsafeCast() } else { // valueMod++ @@ -110,9 +110,9 @@ internal class InternalStringMap(override val equality: EqualityComparator private fun newMapEntry(key: K): MutableEntry = object : MutableEntry { override val key: K get() = key - override val value: V get() = this@InternalStringMap[key] as V + override val value: V get() = this@InternalStringMap[key].unsafeCast() - override fun setValue(newValue: V): V = this@InternalStringMap.put(key, newValue) as V + override fun setValue(newValue: V): V = this@InternalStringMap.put(key, newValue).unsafeCast() override fun hashCode(): Int = AbstractMap.entryHashCode(this) override fun toString(): String = AbstractMap.entryToString(this) diff --git a/js/js.libraries/src/core/collections/LinkedHashMap.kt b/js/js.libraries/src/core/collections/LinkedHashMap.kt index b9842a51ff9..6be99e0a0f0 100644 --- a/js/js.libraries/src/core/collections/LinkedHashMap.kt +++ b/js/js.libraries/src/core/collections/LinkedHashMap.kt @@ -174,6 +174,7 @@ public open class LinkedHashMap : HashMap, Map { } internal constructor(backingMap: HashMap) : super() { + @Suppress("UNCHECKED_CAST") // expected to work due to erasure map = backingMap as HashMap> } diff --git a/js/js.libraries/src/core/concurrent.kt b/js/js.libraries/src/core/concurrent.kt index 9d9e1592d17..9933719ae6b 100644 --- a/js/js.libraries/src/core/concurrent.kt +++ b/js/js.libraries/src/core/concurrent.kt @@ -36,4 +36,4 @@ public annotation class Volatile public annotation class Synchronized @kotlin.internal.InlineOnly -public inline fun synchronized(lock: Any, crossinline block: () -> R): R = block() +public inline fun synchronized(@Suppress("UNUSED_PARAMETER") lock: Any, crossinline block: () -> R): R = block() diff --git a/js/js.libraries/src/core/console.kt b/js/js.libraries/src/core/console.kt index 5b45cd41588..26ce742ff17 100644 --- a/js/js.libraries/src/core/console.kt +++ b/js/js.libraries/src/core/console.kt @@ -94,6 +94,7 @@ private var output = run { if (isNode) NodeJsOutput(js("process.stdout")) else BufferedOutputToConsoleLog() } +@kotlin.internal.InlineOnly private inline fun String(value: Any?): String = js("String")(value) /** Prints a newline to the standard output stream. */ diff --git a/js/js.libraries/src/core/core.kt b/js/js.libraries/src/core/core.kt index 08ca98e7ab6..843470d1b6c 100644 --- a/js/js.libraries/src/core/core.kt +++ b/js/js.libraries/src/core/core.kt @@ -73,9 +73,11 @@ public external fun js(code: String): dynamic * Function corresponding to JavaScript's `typeof` operator */ @kotlin.internal.InlineOnly +@Suppress("UNUSED_PARAMETER") public inline fun jsTypeOf(a: Any?): String = js("typeof a") @kotlin.internal.InlineOnly +@Suppress("UNUSED_PARAMETER") internal inline fun deleteProperty(obj: Any, property: Any) { js("delete obj[property]") } \ No newline at end of file diff --git a/js/js.libraries/src/core/coroutines.kt b/js/js.libraries/src/core/coroutines.kt index 8973f86a03f..4b4016400ef 100644 --- a/js/js.libraries/src/core/coroutines.kt +++ b/js/js.libraries/src/core/coroutines.kt @@ -29,8 +29,8 @@ internal abstract class CoroutineImpl(private val resultContinuation: Continuati val facade: Continuation = context[ContinuationInterceptor]?.interceptContinuation(this) ?: this - override fun resume(data: Any?) { - result = data + override fun resume(value: Any?) { + result = value doResumeWrapper() } diff --git a/js/js.libraries/src/core/grouping.kt b/js/js.libraries/src/core/grouping.kt index f28099c5af7..c5feb7a92a2 100644 --- a/js/js.libraries/src/core/grouping.kt +++ b/js/js.libraries/src/core/grouping.kt @@ -22,7 +22,7 @@ package kotlin.collections */ @SinceKotlin("1.1") public fun Grouping.eachCount(): Map = - fold(0) { acc, e -> acc + 1 } + fold(0) { acc, _ -> acc + 1 } /** /** diff --git a/js/js.libraries/src/core/kotlin.kt b/js/js.libraries/src/core/kotlin.kt index 9b51020519d..0527fda0519 100644 --- a/js/js.libraries/src/core/kotlin.kt +++ b/js/js.libraries/src/core/kotlin.kt @@ -14,6 +14,8 @@ * limitations under the License. */ +@file:Suppress("UNUSED_PARAMETER", "NOTHING_TO_INLINE") + package kotlin /** diff --git a/js/js.libraries/src/core/string.kt b/js/js.libraries/src/core/string.kt index e1339527a06..b7af96358fe 100644 --- a/js/js.libraries/src/core/string.kt +++ b/js/js.libraries/src/core/string.kt @@ -26,7 +26,7 @@ public inline fun String.substring(startIndex: Int, endIndex: Int): String = asD public inline fun String.concat(str: String): String = asDynamic().concat(str) @kotlin.internal.InlineOnly -public inline fun String.match(regex: String): Array = asDynamic().match(regex) +public inline fun String.match(regex: String): Array? = asDynamic().match(regex) //native public fun String.trim(): String //TODO: String.replace to implement effective trimLeading and trimTrailing diff --git a/js/js.libraries/src/core/stringsCode.kt b/js/js.libraries/src/core/stringsCode.kt index 07de8c7fed8..bf4804d1285 100644 --- a/js/js.libraries/src/core/stringsCode.kt +++ b/js/js.libraries/src/core/stringsCode.kt @@ -39,7 +39,7 @@ public fun String.endsWith(suffix: String, ignoreCase: Boolean = false): Boolean public inline fun String.matches(regex: String): Boolean { val result = this.match(regex) - return result != null && result.size > 0 + return result != null && result.size != 0 } public fun CharSequence.isBlank(): Boolean = length == 0 || (if (this is String) this else this.toString()).matches("^[\\s\\xA0]+$") diff --git a/js/js.libraries/src/core/text.kt b/js/js.libraries/src/core/text.kt index 32776d75542..9f2791bb9ad 100644 --- a/js/js.libraries/src/core/text.kt +++ b/js/js.libraries/src/core/text.kt @@ -24,7 +24,7 @@ public interface Appendable { } public class StringBuilder(content: String = "") : Appendable, CharSequence { - constructor(capacity: Int) : this() {} + constructor(@Suppress("UNUSED_PARAMETER") capacity: Int) : this() {} constructor(content: CharSequence) : this(content.toString()) {} diff --git a/js/js.libraries/src/deprecated/jquery/common.kt b/js/js.libraries/src/deprecated/jquery/common.kt index 24f9a952079..2fad8c2df2d 100644 --- a/js/js.libraries/src/deprecated/jquery/common.kt +++ b/js/js.libraries/src/deprecated/jquery/common.kt @@ -1,3 +1,4 @@ +@file: Suppress("DEPRECATION") package jquery import org.w3c.dom.Element diff --git a/js/js.libraries/src/deprecated/jquery/ui.kt b/js/js.libraries/src/deprecated/jquery/ui.kt index d68db4380ab..5a51db0c5f8 100644 --- a/js/js.libraries/src/deprecated/jquery/ui.kt +++ b/js/js.libraries/src/deprecated/jquery/ui.kt @@ -1,3 +1,4 @@ +@file: Suppress("DEPRECATION") package jquery.ui diff --git a/js/js.libraries/src/dom/ItemArrayLike.kt b/js/js.libraries/src/dom/ItemArrayLike.kt index 82ae7e21591..c063336002d 100644 --- a/js/js.libraries/src/dom/ItemArrayLike.kt +++ b/js/js.libraries/src/dom/ItemArrayLike.kt @@ -27,8 +27,8 @@ public external interface ItemArrayLike { public fun ItemArrayLike.asList(): List = object : AbstractList() { override val size: Int get() = this@asList.length - override fun get(index: Int): T = when { - index in 0..lastIndex -> this@asList.item(index) as T + override fun get(index: Int): T = when (index) { + in 0..lastIndex -> this@asList.item(index).unsafeCast() else -> throw IndexOutOfBoundsException("index $index is not in range [0..$lastIndex]") } } \ No newline at end of file