[FIR] Check only for visibility modifiers for NON_PRIVATE_OR_PROTECTED_CONSTRUCTOR_IN_SEALED error

^KT-58033 Fixed
This commit is contained in:
Dmitriy Novozhilov
2023-04-18 17:17:00 +03:00
committed by Space Team
parent 8314812ef9
commit 6544220b3e
6 changed files with 32 additions and 2 deletions
@@ -39,7 +39,8 @@ object FirConstructorAllowedChecker : FirConstructorChecker() {
ClassKind.CLASS -> if (containingClass is FirRegularClass && containingClass.modality == Modality.SEALED) {
val modifierList = source.getModifierList() ?: return
val hasIllegalModifier = modifierList.modifiers.any {
it.token != KtTokens.PROTECTED_KEYWORD && it.token != KtTokens.PRIVATE_KEYWORD
val token = it.token
token in KtTokens.VISIBILITY_MODIFIERS && token != KtTokens.PROTECTED_KEYWORD && token != KtTokens.PRIVATE_KEYWORD
}
if (hasIllegalModifier) {
reporter.reportOn(source, FirErrors.NON_PRIVATE_OR_PROTECTED_CONSTRUCTOR_IN_SEALED, context)