[FIR] Implement deprecation for implementing var by inherited val
#KT-56779 Fixed
This commit is contained in:
committed by
Space Team
parent
941446ea39
commit
df03f0df0a
+18
@@ -2571,6 +2571,24 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.VAR_IMPLEMENTED_BY_INHERITED_VAL.errorFactory) { firDiagnostic ->
|
||||
VarImplementedByInheritedValErrorImpl(
|
||||
firSymbolBuilder.classifierBuilder.buildClassLikeSymbol(firDiagnostic.a),
|
||||
firSymbolBuilder.callableBuilder.buildCallableSymbol(firDiagnostic.b),
|
||||
firSymbolBuilder.callableBuilder.buildCallableSymbol(firDiagnostic.c),
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.VAR_IMPLEMENTED_BY_INHERITED_VAL.warningFactory) { firDiagnostic ->
|
||||
VarImplementedByInheritedValWarningImpl(
|
||||
firSymbolBuilder.classifierBuilder.buildClassLikeSymbol(firDiagnostic.a),
|
||||
firSymbolBuilder.callableBuilder.buildCallableSymbol(firDiagnostic.b),
|
||||
firSymbolBuilder.callableBuilder.buildCallableSymbol(firDiagnostic.c),
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.NON_FINAL_MEMBER_IN_FINAL_CLASS) { firDiagnostic ->
|
||||
NonFinalMemberInFinalClassImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
|
||||
+14
@@ -1829,6 +1829,20 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
abstract val overriddenDeclaration: KtCallableSymbol
|
||||
}
|
||||
|
||||
abstract class VarImplementedByInheritedValError : KtFirDiagnostic<KtNamedDeclaration>() {
|
||||
override val diagnosticClass get() = VarImplementedByInheritedValError::class
|
||||
abstract val classOrObject: KtClassLikeSymbol
|
||||
abstract val overridingDeclaration: KtCallableSymbol
|
||||
abstract val overriddenDeclaration: KtCallableSymbol
|
||||
}
|
||||
|
||||
abstract class VarImplementedByInheritedValWarning : KtFirDiagnostic<KtNamedDeclaration>() {
|
||||
override val diagnosticClass get() = VarImplementedByInheritedValWarning::class
|
||||
abstract val classOrObject: KtClassLikeSymbol
|
||||
abstract val overridingDeclaration: KtCallableSymbol
|
||||
abstract val overriddenDeclaration: KtCallableSymbol
|
||||
}
|
||||
|
||||
abstract class NonFinalMemberInFinalClass : KtFirDiagnostic<KtNamedDeclaration>() {
|
||||
override val diagnosticClass get() = NonFinalMemberInFinalClass::class
|
||||
}
|
||||
|
||||
+16
@@ -2193,6 +2193,22 @@ internal class VarOverriddenByValImpl(
|
||||
override val token: KtLifetimeToken,
|
||||
) : KtFirDiagnostic.VarOverriddenByVal(), KtAbstractFirDiagnostic<KtNamedDeclaration>
|
||||
|
||||
internal class VarImplementedByInheritedValErrorImpl(
|
||||
override val classOrObject: KtClassLikeSymbol,
|
||||
override val overridingDeclaration: KtCallableSymbol,
|
||||
override val overriddenDeclaration: KtCallableSymbol,
|
||||
override val firDiagnostic: KtPsiDiagnostic,
|
||||
override val token: KtLifetimeToken,
|
||||
) : KtFirDiagnostic.VarImplementedByInheritedValError(), KtAbstractFirDiagnostic<KtNamedDeclaration>
|
||||
|
||||
internal class VarImplementedByInheritedValWarningImpl(
|
||||
override val classOrObject: KtClassLikeSymbol,
|
||||
override val overridingDeclaration: KtCallableSymbol,
|
||||
override val overriddenDeclaration: KtCallableSymbol,
|
||||
override val firDiagnostic: KtPsiDiagnostic,
|
||||
override val token: KtLifetimeToken,
|
||||
) : KtFirDiagnostic.VarImplementedByInheritedValWarning(), KtAbstractFirDiagnostic<KtNamedDeclaration>
|
||||
|
||||
internal class NonFinalMemberInFinalClassImpl(
|
||||
override val firDiagnostic: KtPsiDiagnostic,
|
||||
override val token: KtLifetimeToken,
|
||||
|
||||
+12
@@ -23756,6 +23756,18 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
|
||||
runTest("compiler/testData/diagnostics/tests/override/ToAbstractMembersFromSuper-kt1996.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("varImplementedByInheritedVal.kt")
|
||||
public void testVarImplementedByInheritedVal() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/varImplementedByInheritedVal.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("varImplementedByInheritedValError.kt")
|
||||
public void testVarImplementedByInheritedValError() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/varImplementedByInheritedValError.kt");
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/override/clashesOnInheritance")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
|
||||
+12
@@ -23756,6 +23756,18 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
|
||||
runTest("compiler/testData/diagnostics/tests/override/ToAbstractMembersFromSuper-kt1996.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("varImplementedByInheritedVal.kt")
|
||||
public void testVarImplementedByInheritedVal() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/varImplementedByInheritedVal.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("varImplementedByInheritedValError.kt")
|
||||
public void testVarImplementedByInheritedValError() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/override/varImplementedByInheritedValError.kt");
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/override/clashesOnInheritance")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
|
||||
Reference in New Issue
Block a user