// FIR_DISABLE_LAZY_RESOLVE_CHECKS // FIR_IDENTICAL @RequiresOptIn annotation class Marker @SubclassOptInRequired(Marker::class) open class Base @Marker class DerivedFirst : Base() @OptIn(Marker::class) class DerivedSecond : Base() @SubclassOptInRequired(Marker::class) open class DerivedThird : Base() open class DerivedFourth : Base() class GrandDerivedThird : DerivedThird() // Question: should we have an error also here? class GrandDerivedFourth : DerivedFourth() @Marker open class Marked @SubclassOptInRequired(Marker::class) open class DerivedMarked : Marked() fun test() { val b = Base() val d1 = DerivedFirst() val d2 = DerivedSecond() val d3 = DerivedThird() val d4 = DerivedFourth() } fun test2(b: Base, g: Generic) { object : Base() {} } open class Generic class DerivedGeneric : Generic() @SubclassOptInRequired(Marker::class) interface BaseInterface interface DerivedInterface : BaseInterface class Delegated(val bi: BaseInterface) : BaseInterface by bi