FE 1.0: allow OptIn marker on override if base class is marked

#KT-49002 Fixed
This commit is contained in:
Mikhail Glukhikh
2021-09-21 17:27:09 +03:00
committed by TeamCityServer
parent a76aee9b69
commit 056f74a23b
4 changed files with 82 additions and 3 deletions
@@ -115,6 +115,13 @@ class ExperimentalMarkerDeclarationAnnotationChecker(private val module: ModuleD
if (overridden.annotations.any { it.fqName == experimentalFqName }) {
return true
}
var containingDeclaration = overridden.containingDeclaration
while (containingDeclaration is ClassDescriptor) {
if (containingDeclaration.annotations.any { it.fqName == experimentalFqName }) {
return true
}
containingDeclaration = containingDeclaration.containingDeclaration
}
if (overridden.kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE &&
overridden.hasExperimentalOverriddenDescriptors(experimentalFqName)
) {