diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideMethodsHandler.java b/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideMethodsHandler.java index 9819bf857b6..ce7aaa0a879 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideMethodsHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideMethodsHandler.java @@ -40,7 +40,7 @@ public class OverrideMethodsHandler extends OverrideImplementMethodsHandler { for (DeclarationDescriptor member : descriptor.getDefaultType().getMemberScope().getAllDescriptors()) { if (member instanceof CallableMemberDescriptor) { CallableMemberDescriptor callable = (CallableMemberDescriptor) member; - if (callable.getKind().isReal()) { + if (callable.getKind() == CallableMemberDescriptor.Kind.DECLARATION) { superMethods.removeAll(callable.getOverriddenDescriptors()); } } diff --git a/idea/testData/codeInsight/overrideImplement/delegatedMembers.kt b/idea/testData/codeInsight/overrideImplement/delegatedMembers.kt new file mode 100644 index 00000000000..e807763e8f5 --- /dev/null +++ b/idea/testData/codeInsight/overrideImplement/delegatedMembers.kt @@ -0,0 +1,10 @@ +trait T { + fun foo() + fun bar() +} + +class C(t :T) : T by t { + +} + +// KT-5103 \ No newline at end of file diff --git a/idea/testData/codeInsight/overrideImplement/delegatedMembers.kt.after b/idea/testData/codeInsight/overrideImplement/delegatedMembers.kt.after new file mode 100644 index 00000000000..78e4b805562 --- /dev/null +++ b/idea/testData/codeInsight/overrideImplement/delegatedMembers.kt.after @@ -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.equals(other) + } + override fun foo() { + throw UnsupportedOperationException() + } + override fun hashCode(): Int { + return super.hashCode() + } + override fun toString(): String { + return super.toString() + } +} + +// KT-5103 \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementTest.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementTest.java index 418f1711ae3..e04c6f2f4c9 100644 --- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/OverrideImplementTest.java @@ -107,6 +107,10 @@ public final class OverrideImplementTest extends AbstractOverrideImplementTest { doMultiOverrideFileTest(); } + public void testDelegatedMembers() { + doMultiOverrideFileTest(); + } + public void testOverrideExplicitFunction() { doOverrideFileTest(); }