Protect SubclassOptInRequired with opt-in marker
This commit is contained in:
committed by
teamcity
parent
76aaecbdf0
commit
66e710704a
@@ -1649,6 +1649,13 @@ public final annotation class ExperimentalStdlibApi : kotlin.Annotation {
|
|||||||
/*∆*/ public constructor ExperimentalStdlibApi()
|
/*∆*/ public constructor ExperimentalStdlibApi()
|
||||||
/*∆*/ }
|
/*∆*/ }
|
||||||
/*∆*/
|
/*∆*/
|
||||||
|
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS})
|
||||||
|
@kotlin.annotation.Retention(value = AnnotationRetention.BINARY)
|
||||||
|
@kotlin.SinceKotlin(version = "1.8")
|
||||||
|
public final annotation class ExperimentalSubclassOptIn : kotlin.Annotation {
|
||||||
|
public constructor ExperimentalSubclassOptIn()
|
||||||
|
}
|
||||||
|
|
||||||
@kotlin.RequiresOptIn(level = Level.WARNING)
|
@kotlin.RequiresOptIn(level = Level.WARNING)
|
||||||
@kotlin.annotation.MustBeDocumented
|
@kotlin.annotation.MustBeDocumented
|
||||||
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.PROPERTY, AnnotationTarget.FIELD, AnnotationTarget.LOCAL_VARIABLE, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.TYPEALIAS})
|
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.PROPERTY, AnnotationTarget.FIELD, AnnotationTarget.LOCAL_VARIABLE, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.TYPEALIAS})
|
||||||
@@ -2758,6 +2765,7 @@ public final class String : kotlin.Comparable<kotlin.String>, kotlin.CharSequenc
|
|||||||
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS})
|
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS})
|
||||||
@kotlin.annotation.Retention(value = AnnotationRetention.BINARY)
|
@kotlin.annotation.Retention(value = AnnotationRetention.BINARY)
|
||||||
@kotlin.SinceKotlin(version = "1.8")
|
@kotlin.SinceKotlin(version = "1.8")
|
||||||
|
@kotlin.ExperimentalSubclassOptIn
|
||||||
public final annotation class SubclassOptInRequired : kotlin.Annotation {
|
public final annotation class SubclassOptInRequired : kotlin.Annotation {
|
||||||
public constructor SubclassOptInRequired(markerClass: kotlin.reflect.KClass<out kotlin.Annotation>)
|
public constructor SubclassOptInRequired(markerClass: kotlin.reflect.KClass<out kotlin.Annotation>)
|
||||||
|
|
||||||
|
|||||||
@@ -1485,6 +1485,13 @@ public final annotation class ExperimentalStdlibApi : kotlin.Annotation {
|
|||||||
public constructor ExperimentalStdlibApi()
|
public constructor ExperimentalStdlibApi()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS})
|
||||||
|
@kotlin.annotation.Retention(value = AnnotationRetention.BINARY)
|
||||||
|
@kotlin.SinceKotlin(version = "1.8")
|
||||||
|
public final annotation class ExperimentalSubclassOptIn : kotlin.Annotation {
|
||||||
|
public constructor ExperimentalSubclassOptIn()
|
||||||
|
}
|
||||||
|
|
||||||
@kotlin.RequiresOptIn(level = Level.WARNING)
|
@kotlin.RequiresOptIn(level = Level.WARNING)
|
||||||
@kotlin.annotation.MustBeDocumented
|
@kotlin.annotation.MustBeDocumented
|
||||||
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.PROPERTY, AnnotationTarget.FIELD, AnnotationTarget.LOCAL_VARIABLE, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.TYPEALIAS})
|
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.PROPERTY, AnnotationTarget.FIELD, AnnotationTarget.LOCAL_VARIABLE, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.TYPEALIAS})
|
||||||
@@ -2392,6 +2399,7 @@ public final class String : kotlin.Comparable<kotlin.String>, kotlin.CharSequenc
|
|||||||
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS})
|
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS})
|
||||||
@kotlin.annotation.Retention(value = AnnotationRetention.BINARY)
|
@kotlin.annotation.Retention(value = AnnotationRetention.BINARY)
|
||||||
@kotlin.SinceKotlin(version = "1.8")
|
@kotlin.SinceKotlin(version = "1.8")
|
||||||
|
@kotlin.ExperimentalSubclassOptIn
|
||||||
public final annotation class SubclassOptInRequired : kotlin.Annotation {
|
public final annotation class SubclassOptInRequired : kotlin.Annotation {
|
||||||
public constructor SubclassOptInRequired(markerClass: kotlin.reflect.KClass<out kotlin.Annotation>)
|
public constructor SubclassOptInRequired(markerClass: kotlin.reflect.KClass<out kotlin.Annotation>)
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,7 @@
|
|||||||
|
|
||||||
package kotlin
|
package kotlin
|
||||||
|
|
||||||
import kotlin.annotation.AnnotationRetention.BINARY
|
import kotlin.annotation.AnnotationRetention.*
|
||||||
import kotlin.annotation.AnnotationRetention.SOURCE
|
|
||||||
import kotlin.annotation.AnnotationTarget.*
|
import kotlin.annotation.AnnotationTarget.*
|
||||||
import kotlin.internal.RequireKotlin
|
import kotlin.internal.RequireKotlin
|
||||||
import kotlin.internal.RequireKotlinVersionKind
|
import kotlin.internal.RequireKotlinVersionKind
|
||||||
@@ -57,7 +56,15 @@ public annotation class OptIn(
|
|||||||
)
|
)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Forbids creation of subclasses/sub-interfaces from the annotated class/interface without explicit OptIn.
|
* Opt-in marker annotation which allows to use [SubclassOptInRequired].
|
||||||
|
*/
|
||||||
|
@Target(CLASS)
|
||||||
|
@Retention(BINARY)
|
||||||
|
@SinceKotlin("1.8")
|
||||||
|
public annotation class ExperimentalSubclassOptIn
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Forbids creation of subclasses/sub-interfaces from the annotated class/interface without explicit [OptIn].
|
||||||
*
|
*
|
||||||
* This annotation is devoted to specific case when we want subclassing to be experimental.
|
* This annotation is devoted to specific case when we want subclassing to be experimental.
|
||||||
* In this case we annotated the base class or interface with [SubclassOptInRequired].
|
* In this case we annotated the base class or interface with [SubclassOptInRequired].
|
||||||
@@ -76,6 +83,7 @@ public annotation class OptIn(
|
|||||||
@Target(CLASS)
|
@Target(CLASS)
|
||||||
@Retention(BINARY)
|
@Retention(BINARY)
|
||||||
@SinceKotlin("1.8")
|
@SinceKotlin("1.8")
|
||||||
|
@ExperimentalSubclassOptIn
|
||||||
public annotation class SubclassOptInRequired(
|
public annotation class SubclassOptInRequired(
|
||||||
val markerClass: KClass<out Annotation>
|
val markerClass: KClass<out Annotation>
|
||||||
)
|
)
|
||||||
|
|||||||
+3
@@ -66,6 +66,9 @@ public abstract interface annotation class kotlin/ExperimentalMultiplatform : ja
|
|||||||
public abstract interface annotation class kotlin/ExperimentalStdlibApi : java/lang/annotation/Annotation {
|
public abstract interface annotation class kotlin/ExperimentalStdlibApi : java/lang/annotation/Annotation {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract interface annotation class kotlin/ExperimentalSubclassOptIn : java/lang/annotation/Annotation {
|
||||||
|
}
|
||||||
|
|
||||||
public abstract interface annotation class kotlin/ExperimentalUnsignedTypes : java/lang/annotation/Annotation {
|
public abstract interface annotation class kotlin/ExperimentalUnsignedTypes : java/lang/annotation/Annotation {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user