diff --git a/libraries/stdlib/common/src/kotlin/JvmAnnotationsH.kt b/libraries/stdlib/common/src/kotlin/JvmAnnotationsH.kt index 2008daca49d..a51356b3200 100644 --- a/libraries/stdlib/common/src/kotlin/JvmAnnotationsH.kt +++ b/libraries/stdlib/common/src/kotlin/JvmAnnotationsH.kt @@ -101,7 +101,17 @@ public expect annotation class JvmSuppressWildcards(val suppress: Boolean = true @OptionalExpectation public expect annotation class JvmWildcard() - +/** + * Specifies that given value class is inline class. + * + * Adding and removing the annotation is binary incompatible change, since inline classes' methods and functions with inline classes + * in their signature are mangled. + */ +@Target(CLASS) +@MustBeDocumented +@SinceKotlin("1.5") +@OptionalExpectation +public expect annotation class JvmInline() /** * Marks the JVM backing field of the annotated property as `volatile`, meaning that writes to this field diff --git a/libraries/stdlib/jvm/runtime/kotlin/jvm/annotations/JvmPlatformAnnotations.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/annotations/JvmPlatformAnnotations.kt index 218b16eeb58..a6b653496ab 100644 --- a/libraries/stdlib/jvm/runtime/kotlin/jvm/annotations/JvmPlatformAnnotations.kt +++ b/libraries/stdlib/jvm/runtime/kotlin/jvm/annotations/JvmPlatformAnnotations.kt @@ -132,4 +132,16 @@ public actual annotation class JvmSuppressWildcards(actual val suppress: Boolean @Target(AnnotationTarget.TYPE) @Retention(AnnotationRetention.BINARY) @MustBeDocumented -public actual annotation class JvmWildcard \ No newline at end of file +public actual annotation class JvmWildcard + +/** + * Specifies that given value class is inline class. + * + * Adding and removing the annotation is binary incompatible change, since inline classes' methods and functions with inline classes + * in their signature are mangled. + */ +@Target(AnnotationTarget.CLASS) +@Retention(AnnotationRetention.BINARY) +@MustBeDocumented +@SinceKotlin("1.5") +public actual annotation class JvmInline \ 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 0a747cae399..97eb0e92f0c 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 @@ -3237,6 +3237,9 @@ public abstract interface annotation class kotlin/jvm/JvmDefaultWithoutCompatibi public abstract interface annotation class kotlin/jvm/JvmField : java/lang/annotation/Annotation { } +public abstract interface annotation class kotlin/jvm/JvmInline : java/lang/annotation/Annotation { +} + public abstract interface annotation class kotlin/jvm/JvmMultifileClass : java/lang/annotation/Annotation { }