Value classes: Add @JvmInline annotation to stdlib

This commit is contained in:
Ilmir Usmanov
2020-11-10 03:39:03 +01:00
parent a7100134a0
commit aabe709079
3 changed files with 27 additions and 2 deletions
@@ -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
@@ -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
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
@@ -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 {
}