From bf4be122398fcfea7a2f27b5b813c619358dca64 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Sat, 8 Sep 2018 06:29:50 +0300 Subject: [PATCH] Stdlib: review and suppress warnings --- .../kotlin/coroutines/experimental/intrinsics/Intrinsics.kt | 1 + .../jvm/src/kotlin/coroutines/jvm/internal/DebugProbes.kt | 2 ++ .../jvm/src/kotlin/coroutines/jvm/internal/RunSuspend.kt | 4 ++-- .../coroutines/src/kotlin/coroutines/intrinsics/Intrinsics.kt | 1 + libraries/stdlib/js/runtime/arrayUtils.kt | 2 ++ libraries/stdlib/js/src/kotlin/collections/ArrayList.kt | 2 ++ libraries/stdlib/jvm/src/kotlin/collections/CollectionsJVM.kt | 1 + libraries/stdlib/src/kotlin/random/Random.kt | 2 ++ .../stdlib/test/coroutines/CoroutinesReferenceValuesTest.kt | 1 + 9 files changed, 14 insertions(+), 2 deletions(-) diff --git a/libraries/stdlib/coroutines-experimental/src/kotlin/coroutines/experimental/intrinsics/Intrinsics.kt b/libraries/stdlib/coroutines-experimental/src/kotlin/coroutines/experimental/intrinsics/Intrinsics.kt index 0a752f8d31a..07ef5b4ad39 100644 --- a/libraries/stdlib/coroutines-experimental/src/kotlin/coroutines/experimental/intrinsics/Intrinsics.kt +++ b/libraries/stdlib/coroutines-experimental/src/kotlin/coroutines/experimental/intrinsics/Intrinsics.kt @@ -41,6 +41,7 @@ public suspend inline fun suspendCoroutineOrReturn(crossinline block: (Conti */ @SinceKotlin("1.2") @kotlin.internal.InlineOnly +@Suppress("UNUSED_PARAMETER", "RedundantSuspendModifier") public suspend inline fun suspendCoroutineUninterceptedOrReturn(crossinline block: (Continuation) -> Any?): T = throw NotImplementedError("Implementation of suspendCoroutineUninterceptedOrReturn is intrinsic") diff --git a/libraries/stdlib/coroutines/jvm/src/kotlin/coroutines/jvm/internal/DebugProbes.kt b/libraries/stdlib/coroutines/jvm/src/kotlin/coroutines/jvm/internal/DebugProbes.kt index 2ba6d1903c8..21a5f27eb35 100644 --- a/libraries/stdlib/coroutines/jvm/src/kotlin/coroutines/jvm/internal/DebugProbes.kt +++ b/libraries/stdlib/coroutines/jvm/src/kotlin/coroutines/jvm/internal/DebugProbes.kt @@ -54,6 +54,7 @@ internal fun probeCoroutineCreated(completion: Continuation): Continuatio * parameter in this function is `Continuation<*>`. See [probeCoroutineCreated] for details. */ @SinceKotlin("1.3") +@Suppress("UNUSED_PARAMETER") internal fun probeCoroutineResumed(frame: Continuation<*>) { /** implementation of this function is replaced by debugger */ } @@ -69,6 +70,7 @@ internal fun probeCoroutineResumed(frame: Continuation<*>) { * parameter in this function is `Continuation<*>`. See [probeCoroutineCreated] for details. */ @SinceKotlin("1.3") +@Suppress("UNUSED_PARAMETER") internal fun probeCoroutineSuspended(frame: Continuation<*>) { /** implementation of this function is replaced by debugger */ } diff --git a/libraries/stdlib/coroutines/jvm/src/kotlin/coroutines/jvm/internal/RunSuspend.kt b/libraries/stdlib/coroutines/jvm/src/kotlin/coroutines/jvm/internal/RunSuspend.kt index 7e6986fb00c..a9ecd0f9355 100644 --- a/libraries/stdlib/coroutines/jvm/src/kotlin/coroutines/jvm/internal/RunSuspend.kt +++ b/libraries/stdlib/coroutines/jvm/src/kotlin/coroutines/jvm/internal/RunSuspend.kt @@ -28,13 +28,13 @@ private class RunSuspend : Continuation { override fun resumeWith(result: Result) = synchronized(this) { this.result = result - (this as Object).notifyAll() + @Suppress("PLATFORM_CLASS_MAPPED_TO_KOTLIN") (this as Object).notifyAll() } fun await() = synchronized(this) { while (true) { when (val result = this.result) { - null -> (this as Object).wait() + null -> @Suppress("PLATFORM_CLASS_MAPPED_TO_KOTLIN") (this as Object).wait() else -> { result.getOrThrow() // throw up failure return diff --git a/libraries/stdlib/coroutines/src/kotlin/coroutines/intrinsics/Intrinsics.kt b/libraries/stdlib/coroutines/src/kotlin/coroutines/intrinsics/Intrinsics.kt index d2db2241900..dfbba6305c9 100644 --- a/libraries/stdlib/coroutines/src/kotlin/coroutines/intrinsics/Intrinsics.kt +++ b/libraries/stdlib/coroutines/src/kotlin/coroutines/intrinsics/Intrinsics.kt @@ -36,6 +36,7 @@ import kotlin.internal.InlineOnly */ @SinceKotlin("1.3") @InlineOnly +@Suppress("UNUSED_PARAMETER", "RedundantSuspendModifier") public suspend inline fun suspendCoroutineUninterceptedOrReturn(crossinline block: (Continuation) -> Any?): T = throw NotImplementedError("Implementation of suspendCoroutineUninterceptedOrReturn is intrinsic") diff --git a/libraries/stdlib/js/runtime/arrayUtils.kt b/libraries/stdlib/js/runtime/arrayUtils.kt index 1aa2035e650..af751a7cd2a 100644 --- a/libraries/stdlib/js/runtime/arrayUtils.kt +++ b/libraries/stdlib/js/runtime/arrayUtils.kt @@ -51,6 +51,7 @@ fun charArray(size: Int, init: dynamic): Array { inline fun charArrayWithFun(size: Int, init: (Int) -> Char): Array { val array = charArray(size, null) for (i in 0..array.size - 1) { + @Suppress("UNUSED_VARIABLE") // used in js block val value = init(i) js("array[i] = value;") } @@ -61,6 +62,7 @@ inline fun charArrayWithFun(size: Int, init: (Int) -> Char): Array { inline fun untypedCharArrayWithFun(size: Int, init: (Int) -> Char): Array { val array = Array(size) for (i in 0..array.size - 1) { + @Suppress("UNUSED_VARIABLE") // used in js block val value = init(i) js("array[i] = value;") } diff --git a/libraries/stdlib/js/src/kotlin/collections/ArrayList.kt b/libraries/stdlib/js/src/kotlin/collections/ArrayList.kt index b67d9965293..711eb561ad7 100644 --- a/libraries/stdlib/js/src/kotlin/collections/ArrayList.kt +++ b/libraries/stdlib/js/src/kotlin/collections/ArrayList.kt @@ -38,9 +38,11 @@ public actual open class ArrayList internal constructor(private var array: Ar public actual fun ensureCapacity(minCapacity: Int) {} actual override val size: Int get() = array.size + @Suppress("UNCHECKED_CAST") actual override fun get(index: Int): E = array[rangeCheck(index)] as E actual override fun set(index: Int, element: E): E { rangeCheck(index) + @Suppress("UNCHECKED_CAST") return array[index].apply { array[index] = element } as E } diff --git a/libraries/stdlib/jvm/src/kotlin/collections/CollectionsJVM.kt b/libraries/stdlib/jvm/src/kotlin/collections/CollectionsJVM.kt index 632f5e770ce..961f31e05ea 100644 --- a/libraries/stdlib/jvm/src/kotlin/collections/CollectionsJVM.kt +++ b/libraries/stdlib/jvm/src/kotlin/collections/CollectionsJVM.kt @@ -34,6 +34,7 @@ internal actual inline fun copyToArrayImpl(collection: Collection<*>): Array copyToArrayImpl(collection: Collection<*>, array: Array): Array = kotlin.jvm.internal.collectionToArray(collection, array as Array) as Array diff --git a/libraries/stdlib/src/kotlin/random/Random.kt b/libraries/stdlib/src/kotlin/random/Random.kt index 7d72e045485..264c3e3dee6 100644 --- a/libraries/stdlib/src/kotlin/random/Random.kt +++ b/libraries/stdlib/src/kotlin/random/Random.kt @@ -472,8 +472,10 @@ internal fun Int.takeUpperBits(bitCount: Int): Int = this.ushr(32 - bitCount) and (-bitCount).shr(31) internal fun checkRangeBounds(from: Int, until: Int) = require(until > from) { boundsErrorMessage(from, until) } +@ExperimentalUnsignedTypes internal fun checkUIntRangeBounds(from: UInt, until: UInt) = require(until > from) { boundsErrorMessage(from, until) } internal fun checkRangeBounds(from: Long, until: Long) = require(until > from) { boundsErrorMessage(from, until) } +@ExperimentalUnsignedTypes internal fun checkULongRangeBounds(from: ULong, until: ULong) = require(until > from) { boundsErrorMessage(from, until) } internal fun checkRangeBounds(from: Double, until: Double) = require(until > from) { boundsErrorMessage(from, until) } diff --git a/libraries/stdlib/test/coroutines/CoroutinesReferenceValuesTest.kt b/libraries/stdlib/test/coroutines/CoroutinesReferenceValuesTest.kt index 2790d0fb152..ee8f2edd6d7 100644 --- a/libraries/stdlib/test/coroutines/CoroutinesReferenceValuesTest.kt +++ b/libraries/stdlib/test/coroutines/CoroutinesReferenceValuesTest.kt @@ -45,6 +45,7 @@ class CoroutinesReferenceValuesTest { bad.startCoroutine(object : Continuation { override val context: CoroutineContext = EmptyCoroutineContext + @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE") override fun resumeWith(result_: Result) { assertTrue(result == null) result = result_.getOrThrow()