From d67cc468d8948684134c311beba8f41c7d0ee721 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 27 Apr 2012 10:58:27 +0400 Subject: [PATCH] KT-1862 Wrong MANY_IMPL_MEMBERS_NOT_IMPLEMENTED when trait extends class #KT-1862 Fixed --- .../jetbrains/jet/lang/resolve/OverrideResolver.java | 3 ++- .../testData/diagnostics/tests/override/kt1862.jet | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/diagnostics/tests/override/kt1862.jet diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java index 08cb15fde3d..b8f1dadd699 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverrideResolver.java @@ -317,7 +317,8 @@ public class OverrideResolver { } else { List nonAbstractManyImpl = Lists.newArrayList(); - for (CallableMemberDescriptor overridden : overriddenDeclarations) { + Set filteredOverriddenDeclarations = OverridingUtil.filterOverrides(Sets.newHashSet(overriddenDeclarations)); + for (CallableMemberDescriptor overridden : filteredOverriddenDeclarations) { if (overridden.getModality() != Modality.ABSTRACT) { nonAbstractManyImpl.add(overridden); } diff --git a/compiler/testData/diagnostics/tests/override/kt1862.jet b/compiler/testData/diagnostics/tests/override/kt1862.jet new file mode 100644 index 00000000000..4694754c909 --- /dev/null +++ b/compiler/testData/diagnostics/tests/override/kt1862.jet @@ -0,0 +1,11 @@ +open class Aaa() { + open fun foo() = 1 +} + +open class Bbb() : Aaa() { + override fun foo() = 2 +} + +trait Ccc : Aaa + +class Ddd() : Bbb(), Ccc \ No newline at end of file