[FIR] Implement WRONG_MODIFIER_CONTAINING_DECLARATION, DEPRECATED_MODIFIER_CONTAINING_DECLARATION

This commit is contained in:
Ivan Kochurkin
2021-08-04 22:24:51 +03:00
committed by TeamCityServer
parent cd6384eb20
commit 2c1c24c042
52 changed files with 167 additions and 223 deletions
@@ -1083,6 +1083,22 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.WRONG_MODIFIER_CONTAINING_DECLARATION) { firDiagnostic ->
WrongModifierContainingDeclarationImpl(
firDiagnostic.a,
firDiagnostic.b,
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.DEPRECATED_MODIFIER_CONTAINING_DECLARATION) { firDiagnostic ->
DeprecatedModifierContainingDeclarationImpl(
firDiagnostic.a,
firDiagnostic.b,
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.INLINE_CLASS_NOT_TOP_LEVEL) { firDiagnostic ->
InlineClassNotTopLevelImpl(
firDiagnostic as FirPsiDiagnostic,
@@ -783,6 +783,18 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
abstract val functionSymbol: KtFunctionLikeSymbol
}
abstract class WrongModifierContainingDeclaration : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = WrongModifierContainingDeclaration::class
abstract val modifier: String
abstract val target: String
}
abstract class DeprecatedModifierContainingDeclaration : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = DeprecatedModifierContainingDeclaration::class
abstract val modifier: String
abstract val target: String
}
abstract class InlineClassNotTopLevel : KtFirDiagnostic<KtDeclaration>() {
override val diagnosticClass get() = InlineClassNotTopLevel::class
}
@@ -1243,6 +1243,24 @@ internal class InfixModifierRequiredImpl(
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class WrongModifierContainingDeclarationImpl(
override val modifier: String,
override val target: String,
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.WrongModifierContainingDeclaration(), KtAbstractFirDiagnostic<PsiElement> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class DeprecatedModifierContainingDeclarationImpl(
override val modifier: String,
override val target: String,
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.DeprecatedModifierContainingDeclaration(), KtAbstractFirDiagnostic<PsiElement> {
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
}
internal class InlineClassNotTopLevelImpl(
firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,