From 381a8fd55f9aaee82ec1b121641dbd8242cb3be0 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Tue, 19 Sep 2023 14:54:59 +0200 Subject: [PATCH] [stdlib] Explicit visibility and return types: JS Stepping test line number changes are due to changes in coroutineInternalJS.kt --- .../nestedSuspendUninterceptedWithDeepLambdaCall.kt | 4 ++-- libraries/stdlib/js/builtins/Enum.kt | 10 +++++----- libraries/stdlib/js/builtins/String.kt | 2 +- libraries/stdlib/js/runtime/coroutineInternalJS.kt | 2 +- libraries/stdlib/js/src/kotlin/AutoCloseableJs.kt | 2 +- libraries/stdlib/js/src/kotlin/ItemArrayLike.kt | 4 ++-- .../coroutines/cancellation/CancellationException.kt | 8 ++++---- .../kotlin/coroutines/js/internal/EmptyContinuation.kt | 2 +- libraries/stdlib/js/src/kotlin/json.kt | 4 ++-- libraries/stdlib/js/src/kotlin/promise.kt | 6 +++--- libraries/stdlib/js/src/kotlin/reflect/JsClass.kt | 8 ++++---- libraries/stdlib/js/src/kotlin/text/CharCategoryJS.kt | 2 +- .../js/src/kotlin/text/CharacterCodingExceptionJs.kt | 2 +- libraries/stdlib/js/src/kotlin/text/regex.kt | 9 +++++---- 14 files changed, 33 insertions(+), 32 deletions(-) diff --git a/compiler/testData/debug/localVariables/suspend/nestedSuspendUninterceptedWithDeepLambdaCall.kt b/compiler/testData/debug/localVariables/suspend/nestedSuspendUninterceptedWithDeepLambdaCall.kt index fb7c4c3c437..c9513050dd2 100644 --- a/compiler/testData/debug/localVariables/suspend/nestedSuspendUninterceptedWithDeepLambdaCall.kt +++ b/compiler/testData/debug/localVariables/suspend/nestedSuspendUninterceptedWithDeepLambdaCall.kt @@ -101,8 +101,8 @@ suspend fun box() { // test.kt:34 doResume: b=2:number // test.kt:35 doResume: b=2:number, e=5:number // test.kt:7 id: obj=5:number -// test.kt:44 doResume: b=2:number, e=5:number -// test.kt:44 doResume: b=2:number, e=5:number +// test.kt:45 doResume: b=2:number, e=5:number +// test.kt:45 doResume: b=2:number, e=5:number // test.kt:45 doResume: b=2:number, e=5:number // test.kt:33 doResume: b=2:number, e=5:number // test.kt:37 doResume: b=2:number, e=5:number, result=Unit diff --git a/libraries/stdlib/js/builtins/Enum.kt b/libraries/stdlib/js/builtins/Enum.kt index 4741b7cf499..b80861fcc88 100644 --- a/libraries/stdlib/js/builtins/Enum.kt +++ b/libraries/stdlib/js/builtins/Enum.kt @@ -7,15 +7,15 @@ package kotlin import kotlin.js.* -abstract class Enum>(@kotlin.internal.IntrinsicConstEvaluation val name: String, val ordinal: Int) : Comparable { +public abstract class Enum>(@kotlin.internal.IntrinsicConstEvaluation public val name: String, public val ordinal: Int) : Comparable { - final override fun compareTo(other: E) = ordinal.compareTo(other.ordinal) + final override fun compareTo(other: E): Int = ordinal.compareTo(other.ordinal) - final override fun equals(other: Any?) = this === other + final override fun equals(other: Any?): Boolean = this === other final override fun hashCode(): Int = identityHashCode(this) - override fun toString() = name + override fun toString(): String = name - companion object + public companion object } \ No newline at end of file diff --git a/libraries/stdlib/js/builtins/String.kt b/libraries/stdlib/js/builtins/String.kt index 46249fa0fa9..eb5997acad1 100644 --- a/libraries/stdlib/js/builtins/String.kt +++ b/libraries/stdlib/js/builtins/String.kt @@ -12,7 +12,7 @@ package kotlin * implemented as instances of this class. */ public class String : Comparable, CharSequence { - companion object {} + public companion object {} /** * Returns a string obtained by concatenating this string with the string representation of the given [other] object. diff --git a/libraries/stdlib/js/runtime/coroutineInternalJS.kt b/libraries/stdlib/js/runtime/coroutineInternalJS.kt index e9ada77bd9c..e8d5f8471cd 100644 --- a/libraries/stdlib/js/runtime/coroutineInternalJS.kt +++ b/libraries/stdlib/js/runtime/coroutineInternalJS.kt @@ -23,7 +23,7 @@ internal suspend fun returnIfSuspended(argument: Any?): T { internal fun interceptContinuationIfNeeded( context: CoroutineContext, continuation: Continuation -) = context[ContinuationInterceptor]?.interceptContinuation(continuation) ?: continuation +): Continuation = context[ContinuationInterceptor]?.interceptContinuation(continuation) ?: continuation @SinceKotlin("1.2") diff --git a/libraries/stdlib/js/src/kotlin/AutoCloseableJs.kt b/libraries/stdlib/js/src/kotlin/AutoCloseableJs.kt index 527aff81eaf..694410e8887 100644 --- a/libraries/stdlib/js/src/kotlin/AutoCloseableJs.kt +++ b/libraries/stdlib/js/src/kotlin/AutoCloseableJs.kt @@ -35,7 +35,7 @@ public actual inline fun T.use(block: (T) -> R): R { @ExperimentalStdlibApi @SinceKotlin("1.8") @PublishedApi -internal fun AutoCloseable?.closeFinally(cause: Throwable?) = when { +internal fun AutoCloseable?.closeFinally(cause: Throwable?): Unit = when { this == null -> {} cause == null -> close() else -> diff --git a/libraries/stdlib/js/src/kotlin/ItemArrayLike.kt b/libraries/stdlib/js/src/kotlin/ItemArrayLike.kt index 10b90c41f4c..c07f5781551 100644 --- a/libraries/stdlib/js/src/kotlin/ItemArrayLike.kt +++ b/libraries/stdlib/js/src/kotlin/ItemArrayLike.kt @@ -6,8 +6,8 @@ package org.w3c.dom public external interface ItemArrayLike { - val length: Int - fun item(index: Int): T? + public val length: Int + public fun item(index: Int): T? } /** diff --git a/libraries/stdlib/js/src/kotlin/coroutines/cancellation/CancellationException.kt b/libraries/stdlib/js/src/kotlin/coroutines/cancellation/CancellationException.kt index 4f4de5417ca..85bc2a5797b 100644 --- a/libraries/stdlib/js/src/kotlin/coroutines/cancellation/CancellationException.kt +++ b/libraries/stdlib/js/src/kotlin/coroutines/cancellation/CancellationException.kt @@ -7,8 +7,8 @@ package kotlin.coroutines.cancellation @SinceKotlin("1.4") public actual open class CancellationException : IllegalStateException { - actual constructor() : super() - actual constructor(message: String?) : super(message) - constructor(message: String?, cause: Throwable?) : super(message, cause) - constructor(cause: Throwable?) : super(cause) + public actual constructor() : super() + public actual constructor(message: String?) : super(message) + public constructor(message: String?, cause: Throwable?) : super(message, cause) + public constructor(cause: Throwable?) : super(cause) } \ No newline at end of file diff --git a/libraries/stdlib/js/src/kotlin/coroutines/js/internal/EmptyContinuation.kt b/libraries/stdlib/js/src/kotlin/coroutines/js/internal/EmptyContinuation.kt index b7220280a06..04aacf90fbe 100644 --- a/libraries/stdlib/js/src/kotlin/coroutines/js/internal/EmptyContinuation.kt +++ b/libraries/stdlib/js/src/kotlin/coroutines/js/internal/EmptyContinuation.kt @@ -10,6 +10,6 @@ import kotlin.coroutines.EmptyCoroutineContext @PublishedApi @SinceKotlin("1.3") -internal val EmptyContinuation = Continuation(EmptyCoroutineContext) { result -> +internal val EmptyContinuation: Continuation = Continuation(EmptyCoroutineContext) { result -> result.getOrThrow() } \ No newline at end of file diff --git a/libraries/stdlib/js/src/kotlin/json.kt b/libraries/stdlib/js/src/kotlin/json.kt index 283129b5335..bd3b751094a 100644 --- a/libraries/stdlib/js/src/kotlin/json.kt +++ b/libraries/stdlib/js/src/kotlin/json.kt @@ -24,7 +24,7 @@ public external interface Json { * } * ``` */ - operator fun get(propertyName: String): Any? + public operator fun get(propertyName: String): Any? /** * Calls of the function will be translated to an assignment of [value] to the receiver indexed (with square brackets/index operation) with [propertyName]. @@ -46,7 +46,7 @@ public external interface Json { * } * ``` */ - operator fun set(propertyName: String, value: Any?): Unit + public operator fun set(propertyName: String, value: Any?): Unit } /** diff --git a/libraries/stdlib/js/src/kotlin/promise.kt b/libraries/stdlib/js/src/kotlin/promise.kt index e9d086364a5..105fbe65c0b 100644 --- a/libraries/stdlib/js/src/kotlin/promise.kt +++ b/libraries/stdlib/js/src/kotlin/promise.kt @@ -22,7 +22,7 @@ public open external class Promise(executor: (resolve: (T) -> Unit, rejec public open fun finally(onFinally: () -> Unit): Promise - companion object { + public companion object { public fun all(promise: Array>): Promise> public fun race(promise: Array>): Promise @@ -35,13 +35,13 @@ public open external class Promise(executor: (resolve: (T) -> Unit, rejec } // It's workaround for KT-19672 since we can fix it properly until KT-11265 isn't fixed. -inline fun Promise>.then( +public inline fun Promise>.then( noinline onFulfilled: ((T) -> S)? ): Promise { return this.unsafeCast>().then(onFulfilled) } -inline fun Promise>.then( +public inline fun Promise>.then( noinline onFulfilled: ((T) -> S)?, noinline onRejected: ((Throwable) -> S)? ): Promise { diff --git a/libraries/stdlib/js/src/kotlin/reflect/JsClass.kt b/libraries/stdlib/js/src/kotlin/reflect/JsClass.kt index 8dadbfe6817..dbccacf05d3 100644 --- a/libraries/stdlib/js/src/kotlin/reflect/JsClass.kt +++ b/libraries/stdlib/js/src/kotlin/reflect/JsClass.kt @@ -12,21 +12,21 @@ import kotlin.reflect.js.internal.KClassImpl /** * Represents the constructor of a class. Instances of `JsClass` can be passed to JavaScript APIs that expect a constructor reference. */ -external interface JsClass { +public external interface JsClass { /** * Returns the unqualified name of the class represented by this instance. */ - val name: String + public val name: String } /** * Obtains a constructor reference for the given `KClass`. */ -val KClass.js: JsClass +public val KClass.js: JsClass get() = (this as KClassImpl).jClass /** * Obtains a `KClass` instance for the given constructor reference. */ -val JsClass.kotlin: KClass +public val JsClass.kotlin: KClass get() = getKClass(this) diff --git a/libraries/stdlib/js/src/kotlin/text/CharCategoryJS.kt b/libraries/stdlib/js/src/kotlin/text/CharCategoryJS.kt index 5e904f14145..b6ba1bcafed 100644 --- a/libraries/stdlib/js/src/kotlin/text/CharCategoryJS.kt +++ b/libraries/stdlib/js/src/kotlin/text/CharCategoryJS.kt @@ -162,7 +162,7 @@ public actual enum class CharCategory(internal val value: Int, public actual val */ public actual operator fun contains(char: Char): Boolean = char.getCategoryValue() == this.value - companion object { + public companion object { internal fun valueOf(category: Int): CharCategory = when (category) { in 0..16 -> entries[category] diff --git a/libraries/stdlib/js/src/kotlin/text/CharacterCodingExceptionJs.kt b/libraries/stdlib/js/src/kotlin/text/CharacterCodingExceptionJs.kt index 8e57b9ed585..1eea4ac306a 100644 --- a/libraries/stdlib/js/src/kotlin/text/CharacterCodingExceptionJs.kt +++ b/libraries/stdlib/js/src/kotlin/text/CharacterCodingExceptionJs.kt @@ -10,5 +10,5 @@ package kotlin.text */ @SinceKotlin("1.4") public actual open class CharacterCodingException(message: String?) : Exception(message) { - actual constructor() : this(null) + public actual constructor() : this(null) } diff --git a/libraries/stdlib/js/src/kotlin/text/regex.kt b/libraries/stdlib/js/src/kotlin/text/regex.kt index 1c1da983cd7..b62b1b6e97e 100644 --- a/libraries/stdlib/js/src/kotlin/text/regex.kt +++ b/libraries/stdlib/js/src/kotlin/text/regex.kt @@ -10,9 +10,10 @@ import kotlin.js.RegExp /** * Provides enumeration values to use to set regular expression options. */ -public actual enum class RegexOption(val value: String) { +public actual enum class RegexOption(public val value: String) { /** Enables case-insensitive matching. */ IGNORE_CASE("i"), + /** Enables multiline mode. * * In multiline mode the expressions `^` and `$` match just after or just before, @@ -28,7 +29,7 @@ private fun Iterable.toFlags(prepend: String): String = joinToStrin * * @param value The value of captured group. */ -public actual data class MatchGroup(actual val value: String) +public actual data class MatchGroup(public actual val value: String) /** @@ -62,7 +63,7 @@ public actual operator fun MatchGroupCollection.get(name: String): MatchGroup? { * @constructor Creates a regular expression from the specified [pattern] string and the specified set of [options]. */ @Suppress("NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS") // Counterpart for @Suppress("ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS") -public actual class Regex actual constructor(pattern: String, options: Set) { +public actual class Regex public actual constructor(pattern: String, options: Set) { /** Creates a regular expression from the specified [pattern] string and the specified single [option]. */ public actual constructor(pattern: String, option: RegexOption) : this(pattern, setOf(option)) @@ -314,7 +315,7 @@ public actual class Regex actual constructor(pattern: String, options: Set