RequiresOptIn

Common
JVM
JS
Native
1.3
@Target([AnnotationTarget.ANNOTATION_CLASS]) annotation class RequiresOptIn
(source)

Signals that the annotated annotation class is a marker of an API that requires an explicit opt-in.

Call sites of any declaration annotated with that marker should opt in to the API either by using OptIn, or by being annotated with that marker themselves, effectively causing further propagation of the opt-in requirement.

This class requires opt-in itself and can only be used with the compiler argument -Xopt-in=kotlin.RequiresOptIn.

Types

Common
JVM
JS
Native
1.0

Level

Severity of the diagnostic that should be reported on usages which did not explicitly opted into the API either by using OptIn or by being annotated with the corresponding marker annotation.

enum class Level

Constructors

Common
JVM
JS
Native
1.0

<init>

Signals that the annotated annotation class is a marker of an API that requires an explicit opt-in.

RequiresOptIn(
    message: String = "",
    level: Level = Level.ERROR)

Properties

Common
JVM
JS
Native
1.0

level

specifies how usages of API without an explicit opt-in are reported in code.

val level: Level
Common
JVM
JS
Native
1.0

message

message to be reported on usages of API without an explicit opt-in, or empty string for the default message. The default message is: "This declaration is experimental and its usage should be marked with 'Marker' or '@OptIn(Marker::class)'", where Marker is the opt-in requirement marker.

val message: String