KT-5103 No delegated members in Override/Implement

#KT-5103 Fixed
This commit is contained in:
Nikolay Krasko
2014-10-06 14:46:39 +04:00
parent a0404b11b0
commit 03d1c64d27
4 changed files with 40 additions and 1 deletions
@@ -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());
}
}
@@ -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();
}
public void testDelegatedMembers() {
doMultiOverrideFileTest();
}
public void testOverrideExplicitFunction() {
doOverrideFileTest();
}