40 lines
677 B
Kotlin
Vendored
40 lines
677 B
Kotlin
Vendored
// FIR_IDENTICAL
|
|
// !OPT_IN: kotlin.RequiresOptIn
|
|
|
|
@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
|
|
@Retention(AnnotationRetention.BINARY)
|
|
annotation class E1
|
|
|
|
@RequiresOptIn(level = RequiresOptIn.Level.WARNING)
|
|
@Retention(AnnotationRetention.BINARY)
|
|
annotation class E3
|
|
|
|
interface Base1 {
|
|
@E1
|
|
fun foo()
|
|
}
|
|
|
|
interface Base2 {
|
|
fun foo()
|
|
}
|
|
|
|
interface Base3 {
|
|
@E3
|
|
fun foo()
|
|
}
|
|
|
|
class DerivedA : Base1, Base2, Base3 {
|
|
override fun <!OPT_IN_OVERRIDE, OPT_IN_OVERRIDE!>foo<!>() {}
|
|
}
|
|
|
|
class DerivedB : Base1, Base3 {
|
|
@E3
|
|
override fun <!OPT_IN_OVERRIDE!>foo<!>() {}
|
|
}
|
|
|
|
class DerivedC : Base1, Base2, Base3 {
|
|
@E1
|
|
@E3
|
|
override fun foo() {}
|
|
}
|