KT-5103 No delegated members in Override/Implement
#KT-5103 Fixed
This commit is contained in:
@@ -40,7 +40,7 @@ public class OverrideMethodsHandler extends OverrideImplementMethodsHandler {
|
|||||||
for (DeclarationDescriptor member : descriptor.getDefaultType().getMemberScope().getAllDescriptors()) {
|
for (DeclarationDescriptor member : descriptor.getDefaultType().getMemberScope().getAllDescriptors()) {
|
||||||
if (member instanceof CallableMemberDescriptor) {
|
if (member instanceof CallableMemberDescriptor) {
|
||||||
CallableMemberDescriptor callable = (CallableMemberDescriptor) member;
|
CallableMemberDescriptor callable = (CallableMemberDescriptor) member;
|
||||||
if (callable.getKind().isReal()) {
|
if (callable.getKind() == CallableMemberDescriptor.Kind.DECLARATION) {
|
||||||
superMethods.removeAll(callable.getOverriddenDescriptors());
|
superMethods.removeAll(callable.getOverriddenDescriptors());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
trait T {
|
||||||
|
fun foo()
|
||||||
|
fun bar()
|
||||||
|
}
|
||||||
|
|
||||||
|
class C(t :T) : T by t {
|
||||||
|
<caret>
|
||||||
|
}
|
||||||
|
|
||||||
|
// KT-5103
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
trait T {
|
||||||
|
fun foo()
|
||||||
|
fun bar()
|
||||||
|
}
|
||||||
|
|
||||||
|
class C(t :T) : T by t {
|
||||||
|
|
||||||
|
override fun bar() {
|
||||||
|
throw UnsupportedOperationException()
|
||||||
|
}
|
||||||
|
override fun equals(other: Any?): Boolean {
|
||||||
|
return super<T>.equals(other)
|
||||||
|
}
|
||||||
|
override fun foo() {
|
||||||
|
throw UnsupportedOperationException()
|
||||||
|
}
|
||||||
|
override fun hashCode(): Int {
|
||||||
|
return super<T>.hashCode()
|
||||||
|
}
|
||||||
|
override fun toString(): String {
|
||||||
|
return super<T>.toString()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// KT-5103
|
||||||
@@ -107,6 +107,10 @@ public final class OverrideImplementTest extends AbstractOverrideImplementTest {
|
|||||||
doMultiOverrideFileTest();
|
doMultiOverrideFileTest();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testDelegatedMembers() {
|
||||||
|
doMultiOverrideFileTest();
|
||||||
|
}
|
||||||
|
|
||||||
public void testOverrideExplicitFunction() {
|
public void testOverrideExplicitFunction() {
|
||||||
doOverrideFileTest();
|
doOverrideFileTest();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user