// FIR_IDENTICAL @file:OptIn(ExperimentalSubclassOptIn::class) @RequiresOptIn annotation class ApiMarker @SubclassOptInRequired(ApiMarker::class) interface InterfaceOptInApi // no opt-in: diagnostic reported interface InterfaceOptInApiInheritorA: InterfaceOptInApi // opt-in present: no diagnostic, opt-in isn't propagated @OptIn(ApiMarker::class) interface InterfaceOptInApiInheritorB: InterfaceOptInApi // inheritance opt-in required: no diagnostic, opt-in is propagated @SubclassOptInRequired(ApiMarker::class) interface InterfaceOptInApiInheritorC: InterfaceOptInApi // full opt-in required: no diagnostic, stricter opt-in is propagated @ApiMarker interface InterfaceOptInApiInheritorD: InterfaceOptInApi interface InterfaceOptInApiInheritorE: InterfaceOptInApiInheritorB // inheritance opt-in isn't propagated interface InterfaceOptInApiInheritorF: InterfaceOptInApiInheritorC // inheritance opt-in is propagated interface InterfaceOptInApiInheritorG: InterfaceOptInApiInheritorD // inheritance opt-in is propagated fun useSiteTestInterfaces( o: InterfaceOptInApi, // usage opt-in isn't required b: InterfaceOptInApiInheritorB, // usage opt-in isn't required c: InterfaceOptInApiInheritorC, // usage opt-in isn't required d: InterfaceOptInApiInheritorD, // usage opt-in is required e: InterfaceOptInApiInheritorE // usage opt-in isn't required ) {}