diff --git a/libraries/stdlib/api/js-v1/kotlin.kt b/libraries/stdlib/api/js-v1/kotlin.kt index 8a4c985dea3..dd541d6f8b8 100644 --- a/libraries/stdlib/api/js-v1/kotlin.kt +++ b/libraries/stdlib/api/js-v1/kotlin.kt @@ -155,6 +155,8 @@ public inline fun runCatching(block: () -> R): kotlin.Result @kotlin.SinceKotlin(version = "1.2") public inline fun suspend(noinline block: suspend () -> R): suspend () -> R +@kotlin.DeprecatedSinceKotlin(warningSince = "1.6") +@kotlin.Deprecated(message = "Synchronization on any object is not supported in Kotlin/JS", replaceWith = kotlin.ReplaceWith(expression = "run(block)", imports = {})) @kotlin.internal.InlineOnly public inline fun synchronized(lock: kotlin.Any, block: () -> R): R diff --git a/libraries/stdlib/api/js/kotlin.kt b/libraries/stdlib/api/js/kotlin.kt index 6bacf7ae323..c816fd01792 100644 --- a/libraries/stdlib/api/js/kotlin.kt +++ b/libraries/stdlib/api/js/kotlin.kt @@ -118,6 +118,8 @@ public inline fun runCatching(block: () -> R): kotlin.Result @kotlin.SinceKotlin(version = "1.2") public inline fun suspend(noinline block: suspend () -> R): suspend () -> R +@kotlin.DeprecatedSinceKotlin(warningSince = "1.6") +@kotlin.Deprecated(message = "Synchronization on any object is not supported in Kotlin/JS", replaceWith = kotlin.ReplaceWith(expression = "run(block)", imports = {})) @kotlin.internal.InlineOnly public inline fun synchronized(lock: kotlin.Any, block: () -> R): R diff --git a/libraries/stdlib/common/src/kotlin/KotlinH.kt b/libraries/stdlib/common/src/kotlin/KotlinH.kt index c53615b466a..6a15d527e4c 100644 --- a/libraries/stdlib/common/src/kotlin/KotlinH.kt +++ b/libraries/stdlib/common/src/kotlin/KotlinH.kt @@ -58,15 +58,6 @@ public expect fun Float.toRawBits(): Int public expect fun Float.Companion.fromBits(bits: Int): Float -// From concurrent.kt - -@Deprecated("Synchronization on any object is not supported on every platform and will be removed from the common standard library soon.", level = DeprecationLevel.ERROR) -@Suppress("NO_ACTUAL_FOR_EXPECT") -public expect inline fun synchronized(lock: Any, block: () -> R): R - - - - // from lazy.kt public expect fun lazy(initializer: () -> T): Lazy diff --git a/libraries/stdlib/js/src/kotlin/concurrent.kt b/libraries/stdlib/js/src/kotlin/concurrent.kt index e50939f02ac..6c265e09579 100644 --- a/libraries/stdlib/js/src/kotlin/concurrent.kt +++ b/libraries/stdlib/js/src/kotlin/concurrent.kt @@ -8,8 +8,11 @@ package kotlin import kotlin.contracts.* +@DeprecatedSinceKotlin(warningSince = "1.6") +@Deprecated("Synchronization on any object is not supported in Kotlin/JS", ReplaceWith("run(block)")) @kotlin.internal.InlineOnly -public actual inline fun synchronized(lock: Any, block: () -> R): R { +@Suppress("UNUSED_PARAMETER") +public inline fun synchronized(lock: Any, block: () -> R): R { contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) } diff --git a/libraries/stdlib/jvm/src/kotlin/util/Synchronized.kt b/libraries/stdlib/jvm/src/kotlin/util/Synchronized.kt index bcedeff760f..3dd2d8f343e 100644 --- a/libraries/stdlib/jvm/src/kotlin/util/Synchronized.kt +++ b/libraries/stdlib/jvm/src/kotlin/util/Synchronized.kt @@ -14,7 +14,7 @@ import kotlin.jvm.internal.unsafe.* * Executes the given function [block] while holding the monitor of the given object [lock]. */ @kotlin.internal.InlineOnly -public actual inline fun synchronized(lock: Any, block: () -> R): R { +public inline fun synchronized(lock: Any, block: () -> R): R { contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) } diff --git a/libraries/stdlib/wasm/src/kotlin/Kotlin.kt b/libraries/stdlib/wasm/src/kotlin/Kotlin.kt index 80a0335737b..8e810da01de 100644 --- a/libraries/stdlib/wasm/src/kotlin/Kotlin.kt +++ b/libraries/stdlib/wasm/src/kotlin/Kotlin.kt @@ -87,9 +87,6 @@ public actual fun Float.Companion.fromBits(bits: Int): Float = wasm_f32_reinterp //@Deprecated("Use Volatile annotation from kotlin.jvm package", ReplaceWith("kotlin.jvm.Volatile"), level = DeprecationLevel.WARNING) //public typealias Volatile = kotlin.jvm.Volatile -@Deprecated("Synchronization on any object is not supported on every platform and will be removed from the common standard library soon.") -public actual inline fun synchronized(lock: Any, block: () -> R): R = TODO("Wasm stdlib: Kotlin") -