diff --git a/idea/idea-fir/src/org/jetbrains/kotlin/idea/quickfix/MainKtQuickFixRegistrar.kt b/idea/idea-fir/src/org/jetbrains/kotlin/idea/quickfix/MainKtQuickFixRegistrar.kt index ac9c6f3285d..bccc0933a66 100644 --- a/idea/idea-fir/src/org/jetbrains/kotlin/idea/quickfix/MainKtQuickFixRegistrar.kt +++ b/idea/idea-fir/src/org/jetbrains/kotlin/idea/quickfix/MainKtQuickFixRegistrar.kt @@ -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 { diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/idea/quickfix/HighLevelQuickFixTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/idea/quickfix/HighLevelQuickFixTestGenerated.java index 9292515229d..da6d6dae053 100644 --- a/idea/idea-fir/tests/org/jetbrains/kotlin/idea/quickfix/HighLevelQuickFixTestGenerated.java +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/idea/quickfix/HighLevelQuickFixTestGenerated.java @@ -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"); diff --git a/idea/testData/quickfix/modifiers/abstractClassMemberNotImplemented.kt b/idea/testData/quickfix/modifiers/abstractClassMemberNotImplemented.kt new file mode 100644 index 00000000000..064c156ec80 --- /dev/null +++ b/idea/testData/quickfix/modifiers/abstractClassMemberNotImplemented.kt @@ -0,0 +1,7 @@ +// "Make 'Foo' 'abstract'" "true" + +abstract class Bar { + abstract val i: Int +} + +class Foo : Bar() {} \ No newline at end of file diff --git a/idea/testData/quickfix/modifiers/abstractClassMemberNotImplemented.kt.after b/idea/testData/quickfix/modifiers/abstractClassMemberNotImplemented.kt.after new file mode 100644 index 00000000000..251e19a8fc0 --- /dev/null +++ b/idea/testData/quickfix/modifiers/abstractClassMemberNotImplemented.kt.after @@ -0,0 +1,7 @@ +// "Make 'Foo' 'abstract'" "true" + +abstract class Bar { + abstract val i: Int +} + +abstract class Foo : Bar() {} \ No newline at end of file diff --git a/idea/testData/quickfix/modifiers/abstractMemberNotImplemented.kt b/idea/testData/quickfix/modifiers/abstractMemberNotImplemented.kt new file mode 100644 index 00000000000..541261e85b4 --- /dev/null +++ b/idea/testData/quickfix/modifiers/abstractMemberNotImplemented.kt @@ -0,0 +1,3 @@ +// "Make 'Foo' 'abstract'" "true" + +class Foo : List {} \ No newline at end of file diff --git a/idea/testData/quickfix/modifiers/abstractMemberNotImplemented.kt.after b/idea/testData/quickfix/modifiers/abstractMemberNotImplemented.kt.after new file mode 100644 index 00000000000..a20ab0ceb99 --- /dev/null +++ b/idea/testData/quickfix/modifiers/abstractMemberNotImplemented.kt.after @@ -0,0 +1,3 @@ +// "Make 'Foo' 'abstract'" "true" + +abstract class Foo : List {} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index bc40f126c50..c3a46c8e632 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -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");