Add positioning strategy DECLARATION_NAME for DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE.
This commit is contained in:
@@ -245,7 +245,9 @@ public interface Errors {
|
|||||||
DiagnosticFactory0<KtSuperTypeEntry> SUPERTYPE_NOT_INITIALIZED = DiagnosticFactory0.create(ERROR);
|
DiagnosticFactory0<KtSuperTypeEntry> SUPERTYPE_NOT_INITIALIZED = DiagnosticFactory0.create(ERROR);
|
||||||
|
|
||||||
DiagnosticFactory0<KtTypeReference> DELEGATION_NOT_TO_INTERFACE = DiagnosticFactory0.create(ERROR);
|
DiagnosticFactory0<KtTypeReference> DELEGATION_NOT_TO_INTERFACE = DiagnosticFactory0.create(ERROR);
|
||||||
DiagnosticFactory2<KtDeclaration, CallableMemberDescriptor, List<CallableMemberDescriptor>> DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE = DiagnosticFactory2.create(WARNING);
|
DiagnosticFactory2<KtClassOrObject, CallableMemberDescriptor, List<CallableMemberDescriptor>> DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE =
|
||||||
|
DiagnosticFactory2.create(WARNING, DECLARATION_NAME);
|
||||||
|
|
||||||
DiagnosticFactory0<KtTypeReference> SUPERTYPE_NOT_A_CLASS_OR_INTERFACE = DiagnosticFactory0.create(ERROR);
|
DiagnosticFactory0<KtTypeReference> SUPERTYPE_NOT_A_CLASS_OR_INTERFACE = DiagnosticFactory0.create(ERROR);
|
||||||
DiagnosticFactory0<KtTypeReference> SUPERTYPE_IS_EXTENSION_FUNCTION_TYPE = DiagnosticFactory0.create(ERROR);
|
DiagnosticFactory0<KtTypeReference> SUPERTYPE_IS_EXTENSION_FUNCTION_TYPE = DiagnosticFactory0.create(ERROR);
|
||||||
DiagnosticFactory0<KtTypeReference> SUPERTYPE_IS_SUSPEND_FUNCTION_TYPE = DiagnosticFactory0.create(ERROR);
|
DiagnosticFactory0<KtTypeReference> SUPERTYPE_IS_SUSPEND_FUNCTION_TYPE = DiagnosticFactory0.create(ERROR);
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ class DelegationChecker : DeclarationChecker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun checkDescriptor(
|
private fun checkDescriptor(
|
||||||
classDeclaration: KtDeclaration,
|
classDeclaration: KtClassOrObject,
|
||||||
delegatedDescriptor: CallableMemberDescriptor,
|
delegatedDescriptor: CallableMemberDescriptor,
|
||||||
delegatedToDescriptor: CallableMemberDescriptor,
|
delegatedToDescriptor: CallableMemberDescriptor,
|
||||||
diagnosticHolder: DiagnosticSink
|
diagnosticHolder: DiagnosticSink
|
||||||
|
|||||||
+2
-2
@@ -6,7 +6,7 @@ open class IDerived1 : IBase1 {
|
|||||||
override fun foo(): String = "1"
|
override fun foo(): String = "1"
|
||||||
}
|
}
|
||||||
|
|
||||||
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!><!RETURN_TYPE_MISMATCH_BY_DELEGATION!>class Broken1<!>(val b: IBase1) : IBase1 by b, IDerived1()<!>
|
<!RETURN_TYPE_MISMATCH_BY_DELEGATION, DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>class Broken1<!>(val b: IBase1) : IBase1 by b, IDerived1()
|
||||||
|
|
||||||
interface IBase2 {
|
interface IBase2 {
|
||||||
val foo: Any
|
val foo: Any
|
||||||
@@ -16,4 +16,4 @@ open class IDerived2 : IBase2 {
|
|||||||
override val foo: String = "2"
|
override val foo: String = "2"
|
||||||
}
|
}
|
||||||
|
|
||||||
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!><!PROPERTY_TYPE_MISMATCH_BY_DELEGATION!>class Broken2<!>(val b: IBase2) : IBase2 by b, IDerived2()<!>
|
<!PROPERTY_TYPE_MISMATCH_BY_DELEGATION, DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>class Broken2<!>(val b: IBase2) : IBase2 by b, IDerived2()
|
||||||
|
|||||||
+1
-1
@@ -10,4 +10,4 @@ abstract class Middle : Base {
|
|||||||
|
|
||||||
abstract class MyClass : Middle()
|
abstract class MyClass : Middle()
|
||||||
|
|
||||||
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>class A : MyClass(), Base by Delegate()<!>
|
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>class A<!> : MyClass(), Base by Delegate()
|
||||||
|
|||||||
Vendored
+2
-2
@@ -22,6 +22,6 @@ public abstract class MyClass : Base1, Base2 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE, DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!><!MANY_IMPL_MEMBER_NOT_IMPLEMENTED!>class A<!> : MyClass(), Base1 by Delegate1(), <!SUPERTYPE_APPEARS_TWICE!>Base1<!> by <!TYPE_MISMATCH!>Delegate2()<!> {
|
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED, DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE, DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>class A<!> : MyClass(), Base1 by Delegate1(), <!SUPERTYPE_APPEARS_TWICE!>Base1<!> by <!TYPE_MISMATCH!>Delegate2()<!> {
|
||||||
|
|
||||||
}<!>
|
}
|
||||||
+2
-2
@@ -14,6 +14,6 @@ public abstract class MyClass : Base {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>class A : MyClass(), Base by Delegate() {
|
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>class A<!> : MyClass(), Base by Delegate() {
|
||||||
override fun getValue() = "Delegate"
|
override fun getValue() = "Delegate"
|
||||||
}<!>
|
}
|
||||||
+2
-2
@@ -16,6 +16,6 @@ public abstract class MyClass : Base {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>class A : MyClass(), Base by Delegate() {
|
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>class A<!> : MyClass(), Base by Delegate() {
|
||||||
override fun getValue() = "Delegate"
|
override fun getValue() = "Delegate"
|
||||||
}<!>
|
}
|
||||||
+1
-1
@@ -10,4 +10,4 @@ interface B {
|
|||||||
|
|
||||||
class <!CONFLICTING_JVM_DECLARATIONS!>C(f: A<String>)<!>: A<String> by f, B
|
class <!CONFLICTING_JVM_DECLARATIONS!>C(f: A<String>)<!>: A<String> by f, B
|
||||||
|
|
||||||
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>class D(f: A<Int>): A<Int> by f, B<!>
|
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>class D<!>(f: A<Int>): A<Int> by f, B
|
||||||
Reference in New Issue
Block a user