From 39c6d75fdd7d98c6d037bfe1ad97a07441e409ff Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Fri, 24 Jun 2016 18:08:58 +0300 Subject: [PATCH] Override/Implement Members: Implement Members: Fix base member detection when abstract and non-abstract members with matching signatures are inherited from an interface #KT-11115 Fixed (cherry picked from commit a3a2e57) GitOrigin-RevId: bbb925540148d4e12afc0f8e107e68a185448c92 --- .../idea/codeInsight/OverrideImplementTest.kt | 4 ++++ .../abstractAndNonAbstractInheritedFromInterface.kt | 11 +++++++++++ ...actAndNonAbstractInheritedFromInterface.kt.after | 13 +++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 plugins/kotlin/idea/tests/testData/codeInsight/overrideImplement/abstractAndNonAbstractInheritedFromInterface.kt create mode 100644 plugins/kotlin/idea/tests/testData/codeInsight/overrideImplement/abstractAndNonAbstractInheritedFromInterface.kt.after diff --git a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementTest.kt b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementTest.kt index 4556ebac3374..4178cd2ee581 100644 --- a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementTest.kt +++ b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementTest.kt @@ -247,4 +247,8 @@ class OverrideImplementTest : AbstractOverrideImplementTest() { fun testPlatformTypes() { doOverrideDirectoryTest("foo") } + + fun testAbstractAndNonAbstractInheritedFromInterface() { + doImplementFileTest("getFoo") + } } diff --git a/plugins/kotlin/idea/tests/testData/codeInsight/overrideImplement/abstractAndNonAbstractInheritedFromInterface.kt b/plugins/kotlin/idea/tests/testData/codeInsight/overrideImplement/abstractAndNonAbstractInheritedFromInterface.kt new file mode 100644 index 000000000000..084a486e8556 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/codeInsight/overrideImplement/abstractAndNonAbstractInheritedFromInterface.kt @@ -0,0 +1,11 @@ +interface T { + fun getFoo(): String = "" +} + +interface U { + fun getFoo(): String +} + +class C1 : T, U { + +} \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/codeInsight/overrideImplement/abstractAndNonAbstractInheritedFromInterface.kt.after b/plugins/kotlin/idea/tests/testData/codeInsight/overrideImplement/abstractAndNonAbstractInheritedFromInterface.kt.after new file mode 100644 index 000000000000..8296de3a8759 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/codeInsight/overrideImplement/abstractAndNonAbstractInheritedFromInterface.kt.after @@ -0,0 +1,13 @@ +interface T { + fun getFoo(): String = "" +} + +interface U { + fun getFoo(): String +} + +class C1 : T, U { + override fun getFoo(): String { + TODO("not implemented") //To change body of created functions use File | Settings | File Templates. + } +} \ No newline at end of file