diff --git a/core/builtins/src/kotlin/internal/InternalAnnotations.kt b/core/builtins/src/kotlin/internal/InternalAnnotations.kt index 09daa9dfda7..53670550e32 100644 --- a/core/builtins/src/kotlin/internal/InternalAnnotations.kt +++ b/core/builtins/src/kotlin/internal/InternalAnnotations.kt @@ -33,3 +33,12 @@ internal annotation class PureReifiable @Target(AnnotationTarget.FUNCTION) @Retention(AnnotationRetention.BINARY) internal annotation class PlatformDependent + +/** + * When applied to a function or property, enables a compiler optimization that evaluates that function or property + * at compile-time and replaces calls to it with the computed result. + */ +@Target(AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY) +@Retention(AnnotationRetention.BINARY) +@SinceKotlin("1.7") +public annotation class IntrinsicConstEvaluation diff --git a/libraries/stdlib/api/js-v1/kotlin.internal.kt b/libraries/stdlib/api/js-v1/kotlin.internal.kt new file mode 100644 index 00000000000..fb5242d793d --- /dev/null +++ b/libraries/stdlib/api/js-v1/kotlin.internal.kt @@ -0,0 +1,13 @@ +@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY}) +@kotlin.annotation.Retention(value = AnnotationRetention.BINARY) +@kotlin.SinceKotlin(version = "1.7") +public final annotation class IntrinsicConstEvaluation : kotlin.Annotation { + public constructor IntrinsicConstEvaluation() +} +/*∆*/ +/*∆*/ @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY}) +/*∆*/ @kotlin.annotation.Retention(value = AnnotationRetention.BINARY) +/*∆*/ @kotlin.SinceKotlin(version = "1.7") +/*∆*/ public final annotation class IntrinsicConstEvaluation : kotlin.Annotation { +/*∆*/ public constructor IntrinsicConstEvaluation() +/*∆*/ } \ No newline at end of file diff --git a/libraries/stdlib/api/js/kotlin.internal.kt b/libraries/stdlib/api/js/kotlin.internal.kt new file mode 100644 index 00000000000..0fda240c2dd --- /dev/null +++ b/libraries/stdlib/api/js/kotlin.internal.kt @@ -0,0 +1,6 @@ +@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY}) +@kotlin.annotation.Retention(value = AnnotationRetention.BINARY) +@kotlin.SinceKotlin(version = "1.7") +public final annotation class IntrinsicConstEvaluation : kotlin.Annotation { + public constructor IntrinsicConstEvaluation() +} \ No newline at end of file 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 dbce67666b7..7a5f6c73b88 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 @@ -3150,6 +3150,9 @@ public abstract interface class kotlin/coroutines/jvm/internal/CoroutineStackFra public abstract interface annotation class kotlin/experimental/ExperimentalTypeInference : java/lang/annotation/Annotation { } +public abstract interface annotation class kotlin/internal/IntrinsicConstEvaluation : java/lang/annotation/Annotation { +} + public final class kotlin/internal/PlatformImplementationsKt { public static final fun apiVersionIsAtLeast (III)Z }