FIR: implement OPT_IN_MARKER_ON_WRONG_TARGET

This commit is contained in:
Mikhail Glukhikh
2021-09-02 18:16:22 +03:00
committed by TeamCityServer
parent 8bb16d8e7a
commit 3045a5e920
13 changed files with 153 additions and 47 deletions
@@ -949,6 +949,25 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.OPT_IN_MARKER_ON_WRONG_TARGET) { firDiagnostic ->
OptInMarkerOnWrongTargetImpl(
firDiagnostic.a,
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.OPT_IN_MARKER_ON_OVERRIDE) { firDiagnostic ->
OptInMarkerOnOverrideImpl(
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.OPT_IN_MARKER_ON_OVERRIDE_WARNING) { firDiagnostic ->
OptInMarkerOnOverrideWarningImpl(
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.EXPOSED_TYPEALIAS_EXPANDED_TYPE) { firDiagnostic ->
ExposedTypealiasExpandedTypeImpl(
firDiagnostic.a,
@@ -682,6 +682,19 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = OptInMarkerWithWrongRetention::class
}
abstract class OptInMarkerOnWrongTarget : KtFirDiagnostic<KtAnnotationEntry>() {
override val diagnosticClass get() = OptInMarkerOnWrongTarget::class
abstract val target: String
}
abstract class OptInMarkerOnOverride : KtFirDiagnostic<KtAnnotationEntry>() {
override val diagnosticClass get() = OptInMarkerOnOverride::class
}
abstract class OptInMarkerOnOverrideWarning : KtFirDiagnostic<KtAnnotationEntry>() {
override val diagnosticClass get() = OptInMarkerOnOverrideWarning::class
}
abstract class ExposedTypealiasExpandedType : KtFirDiagnostic<KtNamedDeclaration>() {
override val diagnosticClass get() = ExposedTypealiasExpandedType::class
abstract val elementVisibility: EffectiveVisibility
@@ -819,6 +819,22 @@ internal class OptInMarkerWithWrongRetentionImpl(
override val token: ValidityToken,
) : KtFirDiagnostic.OptInMarkerWithWrongRetention(), KtAbstractFirDiagnostic<KtAnnotationEntry>
internal class OptInMarkerOnWrongTargetImpl(
override val target: String,
override val firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.OptInMarkerOnWrongTarget(), KtAbstractFirDiagnostic<KtAnnotationEntry>
internal class OptInMarkerOnOverrideImpl(
override val firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.OptInMarkerOnOverride(), KtAbstractFirDiagnostic<KtAnnotationEntry>
internal class OptInMarkerOnOverrideWarningImpl(
override val firDiagnostic: FirPsiDiagnostic,
override val token: ValidityToken,
) : KtFirDiagnostic.OptInMarkerOnOverrideWarning(), KtAbstractFirDiagnostic<KtAnnotationEntry>
internal class ExposedTypealiasExpandedTypeImpl(
override val elementVisibility: EffectiveVisibility,
override val restrictingDeclaration: KtSymbol,