FIR IDE: quickfix to make class abstract if member not implemented

This commit is contained in:
Tianyu Geng
2021-04-09 19:34:45 -07:00
committed by TeamCityServer
parent 6e3009b82e
commit 06ba143afe
7 changed files with 48 additions and 0 deletions
@@ -54,6 +54,14 @@ class MainKtQuickFixRegistrar : KtQuickFixRegistrar() {
RemoveModifierFix.removeNonRedundantModifier,
ChangeVariableMutabilityFix.CONST_VAL_FACTORY
)
registerPsiQuickFixes(
KtFirDiagnostic.AbstractMemberNotImplemented::class,
AddModifierFix.addAbstractModifier
)
registerPsiQuickFixes(
KtFirDiagnostic.AbstractClassMemberNotImplemented::class,
AddModifierFix.addAbstractModifier
)
}
private val propertyInitialization = KtQuickFixesListBuilder.registerPsiQuickFix {
@@ -436,6 +436,16 @@ public class HighLevelQuickFixTestGenerated extends AbstractHighLevelQuickFixTes
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
}
@TestMetadata("abstractClassMemberNotImplemented.kt")
public void testAbstractClassMemberNotImplemented() throws Exception {
runTest("idea/testData/quickfix/modifiers/abstractClassMemberNotImplemented.kt");
}
@TestMetadata("abstractMemberNotImplemented.kt")
public void testAbstractMemberNotImplemented() throws Exception {
runTest("idea/testData/quickfix/modifiers/abstractMemberNotImplemented.kt");
}
@TestMetadata("abstractModifierInEnum.kt")
public void testAbstractModifierInEnum() throws Exception {
runTest("idea/testData/quickfix/modifiers/abstractModifierInEnum.kt");
@@ -0,0 +1,7 @@
// "Make 'Foo' 'abstract'" "true"
abstract class Bar {
abstract val i: Int
}
class <caret>Foo : Bar() {}
@@ -0,0 +1,7 @@
// "Make 'Foo' 'abstract'" "true"
abstract class Bar {
abstract val i: Int
}
abstract class <caret>Foo : Bar() {}
@@ -0,0 +1,3 @@
// "Make 'Foo' 'abstract'" "true"
class <caret>Foo : List<String> {}
@@ -0,0 +1,3 @@
// "Make 'Foo' 'abstract'" "true"
abstract class <caret>Foo : List<String> {}
@@ -9119,6 +9119,16 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
}
@TestMetadata("abstractClassMemberNotImplemented.kt")
public void testAbstractClassMemberNotImplemented() throws Exception {
runTest("idea/testData/quickfix/modifiers/abstractClassMemberNotImplemented.kt");
}
@TestMetadata("abstractMemberNotImplemented.kt")
public void testAbstractMemberNotImplemented() throws Exception {
runTest("idea/testData/quickfix/modifiers/abstractMemberNotImplemented.kt");
}
@TestMetadata("abstractModifierInEnum.kt")
public void testAbstractModifierInEnum() throws Exception {
runTest("idea/testData/quickfix/modifiers/abstractModifierInEnum.kt");