From b033ad1b2b3016603d04915bcff95e43c77f48d4 Mon Sep 17 00:00:00 2001 From: Stanislav Erokhin Date: Thu, 26 Jan 2017 19:50:35 +0300 Subject: [PATCH] Add positioning strategy DECLARATION_NAME for DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE. --- .../frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java | 4 +++- .../jetbrains/kotlin/resolve/checkers/DelegationChecker.kt | 2 +- .../tests/delegation/covariantOverrides/fromClass.kt | 4 ++-- .../memberHidesSupertypeOverride/fakeOverrideInTheMiddle.kt | 2 +- .../memberHidesSupertypeOverride/severalDelegates.kt | 4 ++-- .../tests/delegation/memberHidesSupertypeOverride/simple.kt | 4 ++-- .../delegation/memberHidesSupertypeOverride/simple1.0.kt | 4 ++-- .../erasure/superTraitAndDelegationToTraitImpl.kt | 2 +- 8 files changed, 14 insertions(+), 12 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java index 2daabe5891b..6dabbda745c 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java @@ -245,7 +245,9 @@ public interface Errors { DiagnosticFactory0 SUPERTYPE_NOT_INITIALIZED = DiagnosticFactory0.create(ERROR); DiagnosticFactory0 DELEGATION_NOT_TO_INTERFACE = DiagnosticFactory0.create(ERROR); - DiagnosticFactory2> DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE = DiagnosticFactory2.create(WARNING); + DiagnosticFactory2> DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE = + DiagnosticFactory2.create(WARNING, DECLARATION_NAME); + DiagnosticFactory0 SUPERTYPE_NOT_A_CLASS_OR_INTERFACE = DiagnosticFactory0.create(ERROR); DiagnosticFactory0 SUPERTYPE_IS_EXTENSION_FUNCTION_TYPE = DiagnosticFactory0.create(ERROR); DiagnosticFactory0 SUPERTYPE_IS_SUSPEND_FUNCTION_TYPE = DiagnosticFactory0.create(ERROR); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/DelegationChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/DelegationChecker.kt index 1660d398f8a..1e2a540790e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/DelegationChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/DelegationChecker.kt @@ -55,7 +55,7 @@ class DelegationChecker : DeclarationChecker { } private fun checkDescriptor( - classDeclaration: KtDeclaration, + classDeclaration: KtClassOrObject, delegatedDescriptor: CallableMemberDescriptor, delegatedToDescriptor: CallableMemberDescriptor, diagnosticHolder: DiagnosticSink diff --git a/compiler/testData/diagnostics/tests/delegation/covariantOverrides/fromClass.kt b/compiler/testData/diagnostics/tests/delegation/covariantOverrides/fromClass.kt index ea8d4f5bbaf..f97ee93a280 100644 --- a/compiler/testData/diagnostics/tests/delegation/covariantOverrides/fromClass.kt +++ b/compiler/testData/diagnostics/tests/delegation/covariantOverrides/fromClass.kt @@ -6,7 +6,7 @@ open class IDerived1 : IBase1 { override fun foo(): String = "1" } -class Broken1(val b: IBase1) : IBase1 by b, IDerived1() +class Broken1(val b: IBase1) : IBase1 by b, IDerived1() interface IBase2 { val foo: Any @@ -16,4 +16,4 @@ open class IDerived2 : IBase2 { override val foo: String = "2" } -class Broken2(val b: IBase2) : IBase2 by b, IDerived2() +class Broken2(val b: IBase2) : IBase2 by b, IDerived2() diff --git a/compiler/testData/diagnostics/tests/delegation/memberHidesSupertypeOverride/fakeOverrideInTheMiddle.kt b/compiler/testData/diagnostics/tests/delegation/memberHidesSupertypeOverride/fakeOverrideInTheMiddle.kt index b8bad3002ce..1c55159a710 100644 --- a/compiler/testData/diagnostics/tests/delegation/memberHidesSupertypeOverride/fakeOverrideInTheMiddle.kt +++ b/compiler/testData/diagnostics/tests/delegation/memberHidesSupertypeOverride/fakeOverrideInTheMiddle.kt @@ -10,4 +10,4 @@ abstract class Middle : Base { abstract class MyClass : Middle() -class A : MyClass(), Base by Delegate() +class A : MyClass(), Base by Delegate() diff --git a/compiler/testData/diagnostics/tests/delegation/memberHidesSupertypeOverride/severalDelegates.kt b/compiler/testData/diagnostics/tests/delegation/memberHidesSupertypeOverride/severalDelegates.kt index 2fbe602018d..654daf60079 100644 --- a/compiler/testData/diagnostics/tests/delegation/memberHidesSupertypeOverride/severalDelegates.kt +++ b/compiler/testData/diagnostics/tests/delegation/memberHidesSupertypeOverride/severalDelegates.kt @@ -22,6 +22,6 @@ public abstract class MyClass : Base1, Base2 { } } -class A : MyClass(), Base1 by Delegate1(), Base1 by Delegate2() { +class A : MyClass(), Base1 by Delegate1(), Base1 by Delegate2() { -} \ No newline at end of file +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/delegation/memberHidesSupertypeOverride/simple.kt b/compiler/testData/diagnostics/tests/delegation/memberHidesSupertypeOverride/simple.kt index ff670ebf053..1dd53942cae 100644 --- a/compiler/testData/diagnostics/tests/delegation/memberHidesSupertypeOverride/simple.kt +++ b/compiler/testData/diagnostics/tests/delegation/memberHidesSupertypeOverride/simple.kt @@ -14,6 +14,6 @@ public abstract class MyClass : Base { } } -class A : MyClass(), Base by Delegate() { +class A : MyClass(), Base by Delegate() { override fun getValue() = "Delegate" -} \ No newline at end of file +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/delegation/memberHidesSupertypeOverride/simple1.0.kt b/compiler/testData/diagnostics/tests/delegation/memberHidesSupertypeOverride/simple1.0.kt index 1e72db76636..e8121bf56ba 100644 --- a/compiler/testData/diagnostics/tests/delegation/memberHidesSupertypeOverride/simple1.0.kt +++ b/compiler/testData/diagnostics/tests/delegation/memberHidesSupertypeOverride/simple1.0.kt @@ -16,6 +16,6 @@ public abstract class MyClass : Base { } } -class A : MyClass(), Base by Delegate() { +class A : MyClass(), Base by Delegate() { override fun getValue() = "Delegate" -} \ No newline at end of file +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/superTraitAndDelegationToTraitImpl.kt b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/superTraitAndDelegationToTraitImpl.kt index 252f2e813c4..bac555779d3 100644 --- a/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/superTraitAndDelegationToTraitImpl.kt +++ b/compiler/testData/diagnostics/tests/duplicateJvmSignature/erasure/superTraitAndDelegationToTraitImpl.kt @@ -10,4 +10,4 @@ interface B { class C(f: A): A by f, B -class D(f: A): A by f, B \ No newline at end of file +class D(f: A): A by f, B \ No newline at end of file