stdlib: annotate all functions, calls to which are generated by compiler, with @PublishedApi
diff --git a/libraries/stdlib/jvm/src/kotlin/coroutines/jvm/internal/ContinuationImpl.kt b/libraries/stdlib/jvm/src/kotlin/coroutines/jvm/internal/ContinuationImpl.kt index 0caec2b..1ed6150 100644 --- a/libraries/stdlib/jvm/src/kotlin/coroutines/jvm/internal/ContinuationImpl.kt +++ b/libraries/stdlib/jvm/src/kotlin/coroutines/jvm/internal/ContinuationImpl.kt
@@ -12,6 +12,7 @@ import kotlin.jvm.internal.Reflection @SinceKotlin("1.3") +@PublishedApi internal abstract class BaseContinuationImpl( // This is `public val` so that it is private on JVM and cannot be modified by untrusted code, yet // it has a public getter (since even untrusted code is allowed to inspect its call stack). @@ -77,6 +78,7 @@ } @SinceKotlin("1.3") +@PublishedApi // State machines for named restricted suspend functions extend from this class internal abstract class RestrictedContinuationImpl( completion: Continuation<Any?>? @@ -94,6 +96,7 @@ } @SinceKotlin("1.3") +@PublishedApi // State machines for named suspend functions extend from this class internal abstract class ContinuationImpl( completion: Continuation<Any?>?, @@ -133,10 +136,12 @@ } @SinceKotlin("1.3") +@PublishedApi // To distinguish suspend function types from ordinary function types all suspend function types shall implement this interface internal interface SuspendFunction @SinceKotlin("1.3") +@PublishedApi // Restricted suspension lambdas inherit from this class internal abstract class RestrictedSuspendLambda( public override val arity: Int, @@ -152,6 +157,7 @@ } @SinceKotlin("1.3") +@PublishedApi // Suspension lambdas inherit from this class internal abstract class SuspendLambda( public override val arity: Int,
diff --git a/libraries/stdlib/jvm/src/kotlin/coroutines/jvm/internal/DebugMetadata.kt b/libraries/stdlib/jvm/src/kotlin/coroutines/jvm/internal/DebugMetadata.kt index 7855d20..dd68967 100644 --- a/libraries/stdlib/jvm/src/kotlin/coroutines/jvm/internal/DebugMetadata.kt +++ b/libraries/stdlib/jvm/src/kotlin/coroutines/jvm/internal/DebugMetadata.kt
@@ -9,6 +9,7 @@ @Target(AnnotationTarget.CLASS) @SinceKotlin("1.3") +@PublishedApi internal annotation class DebugMetadata( @get:JvmName("v") val version: Int = 1, @@ -38,6 +39,7 @@ */ @SinceKotlin("1.3") @JvmName("getStackTraceElement") +@PublishedApi internal fun BaseContinuationImpl.getStackTraceElementImpl(): StackTraceElement? { val debugMetadata = getDebugMetadataAnnotation() ?: return null checkDebugMetadataVersion(COROUTINES_DEBUG_METADATA_VERSION, debugMetadata.version) @@ -117,6 +119,7 @@ */ @SinceKotlin("1.3") @JvmName("getSpilledVariableFieldMapping") +@PublishedApi internal fun BaseContinuationImpl.getSpilledVariableFieldMapping(): Array<String>? { val debugMetadata = getDebugMetadataAnnotation() ?: return null checkDebugMetadataVersion(COROUTINES_DEBUG_METADATA_VERSION, debugMetadata.version)
diff --git a/libraries/stdlib/jvm/src/kotlin/coroutines/jvm/internal/DebugProbes.kt b/libraries/stdlib/jvm/src/kotlin/coroutines/jvm/internal/DebugProbes.kt index dd79ab1..0925add 100644 --- a/libraries/stdlib/jvm/src/kotlin/coroutines/jvm/internal/DebugProbes.kt +++ b/libraries/stdlib/jvm/src/kotlin/coroutines/jvm/internal/DebugProbes.kt
@@ -77,6 +77,7 @@ */ @SinceKotlin("1.3") @Suppress("UNUSED_PARAMETER") +@PublishedApi internal fun probeCoroutineSuspended(frame: Continuation<*>) { /** implementation of this function is replaced by debugger */ }
diff --git a/libraries/stdlib/jvm/src/kotlin/coroutines/jvm/internal/RunSuspend.kt b/libraries/stdlib/jvm/src/kotlin/coroutines/jvm/internal/RunSuspend.kt index 2b04110..6c6ba50 100644 --- a/libraries/stdlib/jvm/src/kotlin/coroutines/jvm/internal/RunSuspend.kt +++ b/libraries/stdlib/jvm/src/kotlin/coroutines/jvm/internal/RunSuspend.kt
@@ -14,6 +14,7 @@ * Wrapper for `suspend fun main` and `@Test suspend fun testXXX` functions. */ @SinceKotlin("1.3") +@PublishedApi internal fun runSuspend(block: suspend () -> Unit) { val run = RunSuspend() block.startCoroutine(run)
diff --git a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt index ea0bc56..ab6b293 100644 --- a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt +++ b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt
@@ -3096,6 +3096,19 @@ public static final fun wrapWithContinuationImpl (Lkotlin/jvm/functions/Function3;Ljava/lang/Object;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } +public abstract class kotlin/coroutines/jvm/internal/BaseContinuationImpl : java/io/Serializable, kotlin/coroutines/Continuation, kotlin/coroutines/jvm/internal/CoroutineStackFrame { + public fun <init> (Lkotlin/coroutines/Continuation;)V + public fun create (Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation; + public fun create (Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation; + public fun getCallerFrame ()Lkotlin/coroutines/jvm/internal/CoroutineStackFrame; + public final fun getCompletion ()Lkotlin/coroutines/Continuation; + public fun getStackTraceElement ()Ljava/lang/StackTraceElement; + protected abstract fun invokeSuspend (Ljava/lang/Object;)Ljava/lang/Object; + protected fun releaseIntercepted ()V + public final fun resumeWith (Ljava/lang/Object;)V + public fun toString ()Ljava/lang/String; +} + public final class kotlin/coroutines/jvm/internal/Boxing { public static final fun boxBoolean (Z)Ljava/lang/Boolean; public static final fun boxByte (B)Ljava/lang/Byte; @@ -3107,15 +3120,69 @@ public static final fun boxShort (S)Ljava/lang/Short; } +public abstract class kotlin/coroutines/jvm/internal/ContinuationImpl : kotlin/coroutines/jvm/internal/BaseContinuationImpl { + public fun <init> (Lkotlin/coroutines/Continuation;)V + public fun <init> (Lkotlin/coroutines/Continuation;Lkotlin/coroutines/CoroutineContext;)V + public fun getContext ()Lkotlin/coroutines/CoroutineContext; + public final fun intercepted ()Lkotlin/coroutines/Continuation; + protected fun releaseIntercepted ()V +} + public abstract interface class kotlin/coroutines/jvm/internal/CoroutineStackFrame { public abstract fun getCallerFrame ()Lkotlin/coroutines/jvm/internal/CoroutineStackFrame; public abstract fun getStackTraceElement ()Ljava/lang/StackTraceElement; } +public abstract interface annotation class kotlin/coroutines/jvm/internal/DebugMetadata : java/lang/annotation/Annotation { + public abstract fun c ()Ljava/lang/String; + public abstract fun f ()Ljava/lang/String; + public abstract fun i ()[I + public abstract fun l ()[I + public abstract fun m ()Ljava/lang/String; + public abstract fun n ()[Ljava/lang/String; + public abstract fun s ()[Ljava/lang/String; + public abstract fun v ()I +} + +public final class kotlin/coroutines/jvm/internal/DebugMetadataKt { + public static final fun getSpilledVariableFieldMapping (Lkotlin/coroutines/jvm/internal/BaseContinuationImpl;)[Ljava/lang/String; + public static final fun getStackTraceElement (Lkotlin/coroutines/jvm/internal/BaseContinuationImpl;)Ljava/lang/StackTraceElement; +} + +public final class kotlin/coroutines/jvm/internal/DebugProbesKt { + public static final fun probeCoroutineSuspended (Lkotlin/coroutines/Continuation;)V +} + +public abstract class kotlin/coroutines/jvm/internal/RestrictedContinuationImpl : kotlin/coroutines/jvm/internal/BaseContinuationImpl { + public fun <init> (Lkotlin/coroutines/Continuation;)V + public fun getContext ()Lkotlin/coroutines/CoroutineContext; +} + +public abstract class kotlin/coroutines/jvm/internal/RestrictedSuspendLambda : kotlin/coroutines/jvm/internal/RestrictedContinuationImpl, kotlin/coroutines/jvm/internal/SuspendFunction, kotlin/jvm/internal/FunctionBase { + public fun <init> (I)V + public fun <init> (ILkotlin/coroutines/Continuation;)V + public fun getArity ()I + public fun toString ()Ljava/lang/String; +} + +public final class kotlin/coroutines/jvm/internal/RunSuspendKt { + public static final fun runSuspend (Lkotlin/jvm/functions/Function1;)V +} + public final class kotlin/coroutines/jvm/internal/SpillingKt { public static final fun nullOutSpilledVariable (Ljava/lang/Object;)Ljava/lang/Object; } +public abstract interface class kotlin/coroutines/jvm/internal/SuspendFunction { +} + +public abstract class kotlin/coroutines/jvm/internal/SuspendLambda : kotlin/coroutines/jvm/internal/ContinuationImpl, kotlin/coroutines/jvm/internal/SuspendFunction, kotlin/jvm/internal/FunctionBase { + public fun <init> (I)V + public fun <init> (ILkotlin/coroutines/Continuation;)V + public fun getArity ()I + public fun toString ()Ljava/lang/String; +} + public abstract interface class kotlin/enums/EnumEntries : java/util/List, kotlin/jvm/internal/markers/KMappedMarker { }