diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/overrideImplement/OverrideMembersHandler.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/overrideImplement/OverrideMembersHandler.kt index 3e49935b45b..a0c46a6081e 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/overrideImplement/OverrideMembersHandler.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/overrideImplement/OverrideMembersHandler.kt @@ -28,7 +28,7 @@ public class OverrideMembersHandler : OverrideImplementMembersHandler() { if (member is CallableMemberDescriptor && (member.kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE || member.kind == CallableMemberDescriptor.Kind.DELEGATION)) { val overridden = member.overriddenDescriptors - if (overridden.any { it.modality == Modality.FINAL || it.visibility.normalize() == Visibilities.PRIVATE }) continue + if (overridden.any { it.modality == Modality.FINAL || Visibilities.isPrivate(it.visibility.normalize()) }) continue class Data( val realSuper: CallableMemberDescriptor, diff --git a/idea/testData/codeInsight/overrideImplement/privateToThis.kt b/idea/testData/codeInsight/overrideImplement/privateToThis.kt new file mode 100644 index 00000000000..420fb1b144c --- /dev/null +++ b/idea/testData/codeInsight/overrideImplement/privateToThis.kt @@ -0,0 +1,7 @@ +open class A { + private open fun foo(t: T) {} +} + +class B : A() { + +} \ No newline at end of file diff --git a/idea/testData/codeInsight/overrideImplement/privateToThis.kt.after b/idea/testData/codeInsight/overrideImplement/privateToThis.kt.after new file mode 100644 index 00000000000..bba7fbcbd31 --- /dev/null +++ b/idea/testData/codeInsight/overrideImplement/privateToThis.kt.after @@ -0,0 +1,17 @@ +open class A { + private open fun foo(t: T) {} +} + +class B : A() { + override fun equals(other: Any?): Boolean { + return super.equals(other) + } + + override fun hashCode(): Int { + return super.hashCode() + } + + override fun toString(): String { + return super.toString() + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementTest.kt b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementTest.kt index 14a1d2e4b1f..d99c8e40f49 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementTest.kt @@ -152,6 +152,10 @@ public class OverrideImplementTest : AbstractOverrideImplementTest() { doMultiOverrideDirectoryTest() } + public fun testPrivateToThis() { + doMultiOverrideFileTest() + } + public fun testInheritVisibilities() { doMultiOverrideFileTest() }