blob: a32f81a0ecbf8e098bd2e635261e62d2aa466ea1 [file]
// RUN_PIPELINE_TILL: BACKEND
// FIR_IDENTICAL
// OPT_IN: kotlin.RequiresOptIn
// FILE: api.kt
package api
@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
@Target(AnnotationTarget.FUNCTION)
@Retention(AnnotationRetention.BINARY)
annotation class E1
@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
@Target(AnnotationTarget.FUNCTION)
@Retention(AnnotationRetention.BINARY)
annotation class E2
@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
@Target(AnnotationTarget.FUNCTION)
@Retention(AnnotationRetention.BINARY)
annotation class E3
@E1
fun e1() {}
@E2
fun e2() {}
@E3
fun e3() {}
// FILE: usage.kt
package usage
import api.*
@OptIn(E1::class, E2::class, E3::class)
fun use1() {
e1()
e2()
e3()
}
@OptIn(E1::class, E3::class)
fun use2() {
e1()
@OptIn(E2::class) e2()
e3()
}
@OptIn(E1::class, E2::class)
fun use3() {
e1()
e2()
<!OPT_IN_USAGE!>e3<!>()
}
/* GENERATED_FIR_TAGS: annotationDeclaration, classReference, functionDeclaration */