Do not suggest "Make overridden member open" for already open ones
So #KT-18148 Fixed
This commit is contained in:
committed by
Mikhail Glukhikh
parent
cbccf932a7
commit
0dced8d29c
@@ -57,7 +57,8 @@ class MakeOverriddenMemberOpenFix(declaration: KtDeclaration) : KotlinQuickFixAc
|
||||
for (overriddenDescriptor in getAllDeclaredNonOverridableOverriddenDescriptors(descriptor)) {
|
||||
assert(overriddenDescriptor.kind == DECLARATION) { "Can only be applied to declarations." }
|
||||
val overriddenMember = DescriptorToSourceUtils.descriptorToDeclaration(overriddenDescriptor)
|
||||
if (overriddenMember == null || !overriddenMember.canRefactor() || overriddenMember !is KtCallableDeclaration) {
|
||||
if (overriddenMember == null || !overriddenMember.canRefactor() || overriddenMember !is KtCallableDeclaration ||
|
||||
overriddenMember.modifierList?.hasModifier(OPEN_KEYWORD) == true) {
|
||||
return false
|
||||
}
|
||||
val containingDeclarationName = overriddenDescriptor.containingDeclaration.name.asString()
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
// "Make A.foo open" "false"
|
||||
// ACTION: Convert to expression body
|
||||
// ERROR: 'foo' in 'A' is final and cannot be overridden
|
||||
// ERROR: This type is final, so it cannot be inherited from
|
||||
class A() {
|
||||
open fun foo() {}
|
||||
}
|
||||
|
||||
class B : A() {
|
||||
override<caret> fun foo() { }
|
||||
}
|
||||
@@ -7505,6 +7505,12 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("overridingOpenMethodInFinalClass.kt")
|
||||
public void testOverridingOpenMethodInFinalClass() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/override/overridingOpenMethodInFinalClass.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("parameterNameChangedAmbiguousRename.kt")
|
||||
public void testParameterNameChangedAmbiguousRename() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/override/parameterNameChangedAmbiguousRename.kt");
|
||||
|
||||
Reference in New Issue
Block a user