[FIR] Fix handling of WRONG_MODIFIER_TARGET
Implement DEPRECATED_MODIFIER, DEPRECATED_MODIFIER_FOR_TARGET, REDUNDANT_MODIFIER_FOR_TARGET
This commit is contained in:
committed by
TeamCityServer
parent
e85940a1ac
commit
cd6384eb20
+24
@@ -1014,6 +1014,14 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.DEPRECATED_MODIFIER) { firDiagnostic ->
|
||||
DeprecatedModifierImpl(
|
||||
firDiagnostic.a,
|
||||
firDiagnostic.b,
|
||||
firDiagnostic as FirPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.DEPRECATED_MODIFIER_PAIR) { firDiagnostic ->
|
||||
DeprecatedModifierPairImpl(
|
||||
firDiagnostic.a,
|
||||
@@ -1022,6 +1030,22 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.DEPRECATED_MODIFIER_FOR_TARGET) { firDiagnostic ->
|
||||
DeprecatedModifierForTargetImpl(
|
||||
firDiagnostic.a,
|
||||
firDiagnostic.b,
|
||||
firDiagnostic as FirPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.REDUNDANT_MODIFIER_FOR_TARGET) { firDiagnostic ->
|
||||
RedundantModifierForTargetImpl(
|
||||
firDiagnostic.a,
|
||||
firDiagnostic.b,
|
||||
firDiagnostic as FirPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.INCOMPATIBLE_MODIFIERS) { firDiagnostic ->
|
||||
IncompatibleModifiersImpl(
|
||||
firDiagnostic.a,
|
||||
|
||||
+21
-4
@@ -25,7 +25,6 @@ import org.jetbrains.kotlin.idea.frontend.api.symbols.KtVariableLikeSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtVariableSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.types.KtType
|
||||
import org.jetbrains.kotlin.lexer.KtKeywordToken
|
||||
import org.jetbrains.kotlin.lexer.KtModifierKeywordToken
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.KtAnnotationEntry
|
||||
@@ -733,16 +732,34 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
abstract val conflictingModifier: String
|
||||
}
|
||||
|
||||
abstract class DeprecatedModifier : KtFirDiagnostic<PsiElement>() {
|
||||
override val diagnosticClass get() = DeprecatedModifier::class
|
||||
abstract val deprecatedModifier: String
|
||||
abstract val actualModifier: String
|
||||
}
|
||||
|
||||
abstract class DeprecatedModifierPair : KtFirDiagnostic<PsiElement>() {
|
||||
override val diagnosticClass get() = DeprecatedModifierPair::class
|
||||
abstract val deprecatedModifier: String
|
||||
abstract val conflictingModifier: String
|
||||
}
|
||||
|
||||
abstract class DeprecatedModifierForTarget : KtFirDiagnostic<PsiElement>() {
|
||||
override val diagnosticClass get() = DeprecatedModifierForTarget::class
|
||||
abstract val deprecatedModifier: String
|
||||
abstract val target: String
|
||||
}
|
||||
|
||||
abstract class RedundantModifierForTarget : KtFirDiagnostic<PsiElement>() {
|
||||
override val diagnosticClass get() = RedundantModifierForTarget::class
|
||||
abstract val redundantModifier: String
|
||||
abstract val target: String
|
||||
}
|
||||
|
||||
abstract class IncompatibleModifiers : KtFirDiagnostic<PsiElement>() {
|
||||
override val diagnosticClass get() = IncompatibleModifiers::class
|
||||
abstract val modifier1: KtModifierKeywordToken
|
||||
abstract val modifier2: KtModifierKeywordToken
|
||||
abstract val modifier1: String
|
||||
abstract val modifier2: String
|
||||
}
|
||||
|
||||
abstract class RedundantOpenInInterface : KtFirDiagnostic<KtModifierListOwner>() {
|
||||
@@ -751,7 +768,7 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
|
||||
abstract class WrongModifierTarget : KtFirDiagnostic<PsiElement>() {
|
||||
override val diagnosticClass get() = WrongModifierTarget::class
|
||||
abstract val modifier: KtModifierKeywordToken
|
||||
abstract val modifier: String
|
||||
abstract val target: String
|
||||
}
|
||||
|
||||
|
||||
+28
-2
@@ -27,7 +27,6 @@ import org.jetbrains.kotlin.idea.frontend.api.symbols.KtVariableSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityToken
|
||||
import org.jetbrains.kotlin.idea.frontend.api.types.KtType
|
||||
import org.jetbrains.kotlin.lexer.KtKeywordToken
|
||||
import org.jetbrains.kotlin.lexer.KtModifierKeywordToken
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.KtAnnotationEntry
|
||||
@@ -1166,6 +1165,15 @@ internal class RedundantModifierImpl(
|
||||
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
|
||||
}
|
||||
|
||||
internal class DeprecatedModifierImpl(
|
||||
override val deprecatedModifier: String,
|
||||
override val actualModifier: String,
|
||||
firDiagnostic: FirPsiDiagnostic,
|
||||
override val token: ValidityToken,
|
||||
) : KtFirDiagnostic.DeprecatedModifier(), KtAbstractFirDiagnostic<PsiElement> {
|
||||
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
|
||||
}
|
||||
|
||||
internal class DeprecatedModifierPairImpl(
|
||||
override val deprecatedModifier: String,
|
||||
override val conflictingModifier: String,
|
||||
@@ -1175,6 +1183,24 @@ internal class DeprecatedModifierPairImpl(
|
||||
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
|
||||
}
|
||||
|
||||
internal class DeprecatedModifierForTargetImpl(
|
||||
override val deprecatedModifier: String,
|
||||
override val target: String,
|
||||
firDiagnostic: FirPsiDiagnostic,
|
||||
override val token: ValidityToken,
|
||||
) : KtFirDiagnostic.DeprecatedModifierForTarget(), KtAbstractFirDiagnostic<PsiElement> {
|
||||
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
|
||||
}
|
||||
|
||||
internal class RedundantModifierForTargetImpl(
|
||||
override val redundantModifier: String,
|
||||
override val target: String,
|
||||
firDiagnostic: FirPsiDiagnostic,
|
||||
override val token: ValidityToken,
|
||||
) : KtFirDiagnostic.RedundantModifierForTarget(), KtAbstractFirDiagnostic<PsiElement> {
|
||||
override val firDiagnostic: FirPsiDiagnostic by weakRef(firDiagnostic)
|
||||
}
|
||||
|
||||
internal class IncompatibleModifiersImpl(
|
||||
override val modifier1: String,
|
||||
override val modifier2: String,
|
||||
@@ -1192,7 +1218,7 @@ internal class RedundantOpenInInterfaceImpl(
|
||||
}
|
||||
|
||||
internal class WrongModifierTargetImpl(
|
||||
override val modifier: KtModifierKeywordToken,
|
||||
override val modifier: String,
|
||||
override val target: String,
|
||||
firDiagnostic: FirPsiDiagnostic,
|
||||
override val token: ValidityToken,
|
||||
|
||||
Reference in New Issue
Block a user