Override/Implement: Drop 'impl' modifier for non-impl class members

#KT-18469 Fixed
This commit is contained in:
Alexey Sedunov
2017-08-15 18:33:33 +03:00
parent 6f8503a178
commit 8b64a4c8ea
6 changed files with 33 additions and 0 deletions
@@ -110,6 +110,10 @@ fun OverrideMemberChooserObject.generateMember(targetClass: KtClassOrObject, cop
else -> error("Unknown member to override: $descriptor")
}
if (!targetClass.hasModifier(KtTokens.IMPL_KEYWORD)) {
newMember.removeModifier(KtTokens.IMPL_KEYWORD)
}
if (copyDoc) {
val superDeclaration = DescriptorToSourceUtilsIde.getAnyDeclaration(project, descriptor)?.navigationElement
val kDoc = when (superDeclaration) {
@@ -0,0 +1,3 @@
header abstract class Bar {
abstract fun foo()
}
@@ -0,0 +1,3 @@
header abstract class Bar {
abstract fun foo()
}
@@ -0,0 +1,8 @@
// "Implement members" "true"
// DISABLE-ERRORS
abstract impl class Bar {
abstract impl fun foo()
}
class <caret>X : Bar()
@@ -0,0 +1,12 @@
// "Implement members" "true"
// DISABLE-ERRORS
abstract impl class Bar {
abstract impl fun foo()
}
class X : Bar() {
override fun foo() {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
}
@@ -156,4 +156,7 @@ class QuickFixMultiModuleTest : AbstractQuickFixMultiModuleTest() {
@Test
fun testImplementMembersInHeaderClass() = doMultiPlatformTest(impls = *arrayOf())
@Test
fun testImplementMembersInImplClassNonImplInheritor() = doMultiPlatformTest()
}