2/2 Implement deprecation for use-site '@get:' target

^KT-15470 Fixed
Review: https://jetbrains.team/p/kt/reviews/9250
This commit is contained in:
Nikita Bobko
2023-03-16 19:12:37 +01:00
parent 8cf5216555
commit 48ed6c4cc7
24 changed files with 218 additions and 29 deletions
@@ -925,6 +925,13 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.INAPPLICABLE_TARGET_ON_PROPERTY_WARNING) { firDiagnostic ->
InapplicableTargetOnPropertyWarningImpl(
firDiagnostic.a,
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirErrors.INAPPLICABLE_TARGET_PROPERTY_IMMUTABLE) { firDiagnostic ->
InapplicableTargetPropertyImmutableImpl(
firDiagnostic.a,
@@ -672,6 +672,11 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
abstract val useSiteDescription: String
}
abstract class InapplicableTargetOnPropertyWarning : KtFirDiagnostic<KtAnnotationEntry>() {
override val diagnosticClass get() = InapplicableTargetOnPropertyWarning::class
abstract val useSiteDescription: String
}
abstract class InapplicableTargetPropertyImmutable : KtFirDiagnostic<KtAnnotationEntry>() {
override val diagnosticClass get() = InapplicableTargetPropertyImmutable::class
abstract val useSiteDescription: String
@@ -804,6 +804,12 @@ internal class InapplicableTargetOnPropertyImpl(
override val token: KtLifetimeToken,
) : KtFirDiagnostic.InapplicableTargetOnProperty(), KtAbstractFirDiagnostic<KtAnnotationEntry>
internal class InapplicableTargetOnPropertyWarningImpl(
override val useSiteDescription: String,
override val firDiagnostic: KtPsiDiagnostic,
override val token: KtLifetimeToken,
) : KtFirDiagnostic.InapplicableTargetOnPropertyWarning(), KtAbstractFirDiagnostic<KtAnnotationEntry>
internal class InapplicableTargetPropertyImmutableImpl(
override val useSiteDescription: String,
override val firDiagnostic: KtPsiDiagnostic,
@@ -2667,6 +2667,18 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag
runTest("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/ParamAnnotations.kt");
}
@Test
@TestMetadata("prohibitUseSiteGetTargetAnnotationsOff.kt")
public void testProhibitUseSiteGetTargetAnnotationsOff() throws Exception {
runTest("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/prohibitUseSiteGetTargetAnnotationsOff.kt");
}
@Test
@TestMetadata("prohibitUseSiteGetTargetAnnotationsOn.kt")
public void testProhibitUseSiteGetTargetAnnotationsOn() throws Exception {
runTest("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/prohibitUseSiteGetTargetAnnotationsOn.kt");
}
@Test
@TestMetadata("PropertyAnnotations.kt")
public void testPropertyAnnotations() throws Exception {