From 72f7405e4a387002bf83040a6dda8e9857221c01 Mon Sep 17 00:00:00 2001 From: Tianyu Geng Date: Wed, 17 Mar 2021 10:57:31 -0700 Subject: [PATCH] FIR IDE: add quickfix to add abstract modifier for MUST_BE_INITIALIZED_OR_BE_ABSTRACT --- .../kotlin/idea/quickfix/MainKtQuickFixRegistrar.kt | 8 ++++++++ .../quickfix/abstract/mustBeInitializedOrBeAbstract.kt | 2 -- .../abstract/mustBeInitializedOrBeAbstract.kt.after | 2 -- .../abstract/mustBeInitializedOrBeAbstractInFinalClass.kt | 2 -- .../mustBeInitializedOrBeAbstractInFinalClass.kt.after | 2 -- .../abstract/mustBeInitializedOrBeAbstractInOpenClass.kt | 2 -- .../mustBeInitializedOrBeAbstractInOpenClass.kt.after | 2 -- 7 files changed, 8 insertions(+), 12 deletions(-) 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 da162ffb479..fc18fc20897 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 @@ -56,6 +56,13 @@ class MainKtQuickFixRegistrar : KtQuickFixRegistrar() { ) } + private val propertyInitialization = KtQuickFixesListBuilder.registerPsiQuickFix { + registerPsiQuickFixes( + KtFirDiagnostic.MustBeInitializedOrBeAbstract::class, + AddModifierFix.addAbstractModifier, + ) + } + private val overrides = KtQuickFixesListBuilder.registerPsiQuickFix { registerApplicator(ChangeTypeQuickFix.changeFunctionReturnTypeOnOverride) registerApplicator(ChangeTypeQuickFix.changePropertyReturnTypeOnOverride) @@ -76,6 +83,7 @@ class MainKtQuickFixRegistrar : KtQuickFixRegistrar() { override val list: KtQuickFixesList = KtQuickFixesList.createCombined( modifiers, + propertyInitialization, overrides, mutability, expressions, diff --git a/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstract.kt b/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstract.kt index 7086a2cf84c..1e580e0c92b 100644 --- a/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstract.kt +++ b/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstract.kt @@ -2,5 +2,3 @@ abstract class A() { var i : Int } - -/* IGNORE_FIR */ \ No newline at end of file diff --git a/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstract.kt.after b/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstract.kt.after index b7b7f592a97..4f5c47a4130 100644 --- a/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstract.kt.after +++ b/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstract.kt.after @@ -2,5 +2,3 @@ abstract class A() { abstract var i : Int } - -/* IGNORE_FIR */ \ No newline at end of file diff --git a/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInFinalClass.kt b/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInFinalClass.kt index 8dc4c132ab9..41e9d0c07e5 100644 --- a/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInFinalClass.kt +++ b/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInFinalClass.kt @@ -2,5 +2,3 @@ class A() { var i : Int } - -/* IGNORE_FIR */ \ No newline at end of file diff --git a/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInFinalClass.kt.after b/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInFinalClass.kt.after index b7b7f592a97..4f5c47a4130 100644 --- a/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInFinalClass.kt.after +++ b/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInFinalClass.kt.after @@ -2,5 +2,3 @@ abstract class A() { abstract var i : Int } - -/* IGNORE_FIR */ \ No newline at end of file diff --git a/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInOpenClass.kt b/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInOpenClass.kt index e3182c60c06..9e70f1c1528 100644 --- a/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInOpenClass.kt +++ b/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInOpenClass.kt @@ -2,5 +2,3 @@ open class A() { var i : Int } - -/* IGNORE_FIR */ \ No newline at end of file diff --git a/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInOpenClass.kt.after b/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInOpenClass.kt.after index b7b7f592a97..4f5c47a4130 100644 --- a/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInOpenClass.kt.after +++ b/idea/testData/quickfix/abstract/mustBeInitializedOrBeAbstractInOpenClass.kt.after @@ -2,5 +2,3 @@ abstract class A() { abstract var i : Int } - -/* IGNORE_FIR */ \ No newline at end of file