Skip to content

Commit 5584a50

Browse files
demiurg906Space
authored and
Space
committed
[FE 1.0] Don't report OVERRIDE_DEPRECATION on default accessors of deprecated properties
^KT-51893 Fixed
1 parent a3ed332 commit 5584a50

File tree

7 files changed

+100
-0
lines changed

7 files changed

+100
-0
lines changed

analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/DeprecationInheritanceChecker.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,18 @@ package org.jetbrains.kotlin.resolve.checkers
77

88
import org.jetbrains.kotlin.config.LanguageFeature.StopPropagatingDeprecationThroughOverrides
99
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
10+
import org.jetbrains.kotlin.descriptors.PropertyAccessorDescriptor
1011
import org.jetbrains.kotlin.diagnostics.Errors
1112
import org.jetbrains.kotlin.psi.KtDeclaration
1213
import org.jetbrains.kotlin.psi.KtNamedDeclaration
14+
import org.jetbrains.kotlin.psi.KtProperty
1315

1416
object DeprecationInheritanceChecker : DeclarationChecker {
1517
override fun check(declaration: KtDeclaration, descriptor: DeclarationDescriptor, context: DeclarationCheckerContext) {
1618
if (declaration !is KtNamedDeclaration) return
19+
if (declaration is KtProperty && descriptor is PropertyAccessorDescriptor && descriptor.isDefault) {
20+
return
21+
}
1722
val deprecationResolver = context.deprecationResolver
1823
if (!deprecationResolver.areDeprecationsInheritedFromOverriden(descriptor)) return
1924
val (deprecations, message) = if (context.languageVersionSettings.supportsFeature(StopPropagatingDeprecationThroughOverrides)) {
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
// FIR_IDENTICAL
2+
// ISSUE: KT-51893
3+
4+
interface A {
5+
@Deprecated("")
6+
val a: String
7+
8+
@Deprecated("")
9+
val b: String
10+
11+
@Deprecated("")
12+
var c: String
13+
14+
@Deprecated("")
15+
var d: String
16+
17+
@Deprecated("")
18+
var e: String
19+
20+
@Deprecated("")
21+
var h: String
22+
}
23+
24+
object B : A {
25+
override val <!OVERRIDE_DEPRECATION!>a<!>: String = ""
26+
27+
override val <!OVERRIDE_DEPRECATION!>b<!>: String
28+
get() = ""
29+
30+
override var <!OVERRIDE_DEPRECATION!>c<!>: String = ""
31+
32+
override var <!OVERRIDE_DEPRECATION!>d<!>: String = ""
33+
get() = field
34+
35+
override var <!OVERRIDE_DEPRECATION!>e<!>: String = ""
36+
set(value) {
37+
field = value
38+
}
39+
40+
override var <!OVERRIDE_DEPRECATION!>h<!>: String = ""
41+
get() = field
42+
set(value) {
43+
field = value
44+
}
45+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package
2+
3+
public interface A {
4+
@kotlin.Deprecated(message = "") public abstract val a: kotlin.String
5+
@kotlin.Deprecated(message = "") public abstract val b: kotlin.String
6+
@kotlin.Deprecated(message = "") public abstract var c: kotlin.String
7+
@kotlin.Deprecated(message = "") public abstract var d: kotlin.String
8+
@kotlin.Deprecated(message = "") public abstract var e: kotlin.String
9+
@kotlin.Deprecated(message = "") public abstract var h: kotlin.String
10+
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
11+
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
12+
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
13+
}
14+
15+
public object B : A {
16+
private constructor B()
17+
public open override /*1*/ val a: kotlin.String = ""
18+
public open override /*1*/ val b: kotlin.String
19+
public open override /*1*/ var c: kotlin.String
20+
public open override /*1*/ var d: kotlin.String
21+
public open override /*1*/ var e: kotlin.String
22+
public open override /*1*/ var h: kotlin.String
23+
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
24+
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
25+
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
26+
}

compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)