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