FIR IDE: Add quickfix for PRIVATE_SETTER_FOR_(OPEN|ABSTRACT)_PROPERTY

This commit is contained in:
Tianyu Geng
2021-02-18 14:00:13 -08:00
committed by Ilya Kirillov
parent 77559e8299
commit bca393bd5c
15 changed files with 107 additions and 18 deletions
@@ -30,12 +30,20 @@ class MainKtQuickFixRegistrar : KtQuickFixRegistrar() {
AddModifierFix.addAbstractToContainingClass,
RemoveModifierFix.removeAbstractModifier
)
registerPsiQuickFixes(
KtFirDiagnostic.NonFinalMemberInFinalClass::class,
AddModifierFix.addOpenToContainingClass,
RemoveModifierFix.removeOpenModifier
)
registerPsiQuickFixes(
KtFirDiagnostic.PrivateSetterForOpenProperty::class,
AddModifierFix.addFinalToProperty,
RemoveModifierFix.removePrivateModifier
)
registerPsiQuickFixes(
KtFirDiagnostic.PrivateSetterForAbstractProperty::class,
RemoveModifierFix.removePrivateModifier
)
}
private val overrides = KtQuickFixesListBuilder.registerPsiQuickFix {
@@ -253,6 +253,11 @@ public class HighLevelQuickFixTestGenerated extends AbstractHighLevelQuickFixTes
runTest("idea/testData/quickfix/modifiers/abstractModifierInEnum.kt");
}
@TestMetadata("abstractVarWithPrivateSetter.kt")
public void testAbstractVarWithPrivateSetter() throws Exception {
runTest("idea/testData/quickfix/modifiers/abstractVarWithPrivateSetter.kt");
}
@TestMetadata("addLateinit.kt")
public void testAddLateinit() throws Exception {
runTest("idea/testData/quickfix/modifiers/addLateinit.kt");
@@ -397,9 +402,14 @@ public class HighLevelQuickFixTestGenerated extends AbstractHighLevelQuickFixTes
runTest("idea/testData/quickfix/modifiers/openObject.kt");
}
@TestMetadata("openVarWithPrivateSetter.kt")
public void testOpenVarWithPrivateSetter() throws Exception {
runTest("idea/testData/quickfix/modifiers/openVarWithPrivateSetter.kt");
@TestMetadata("openVarWithPrivateSetter1.kt")
public void testOpenVarWithPrivateSetter1() throws Exception {
runTest("idea/testData/quickfix/modifiers/openVarWithPrivateSetter1.kt");
}
@TestMetadata("openVarWithPrivateSetter2.kt")
public void testOpenVarWithPrivateSetter2() throws Exception {
runTest("idea/testData/quickfix/modifiers/openVarWithPrivateSetter2.kt");
}
@TestMetadata("operatorModifier.kt")
@@ -427,9 +437,14 @@ public class HighLevelQuickFixTestGenerated extends AbstractHighLevelQuickFixTes
runTest("idea/testData/quickfix/modifiers/operatorModifierInherited.kt");
}
@TestMetadata("overrideWithPrivateSetter.kt")
public void testOverrideWithPrivateSetter() throws Exception {
runTest("idea/testData/quickfix/modifiers/overrideWithPrivateSetter.kt");
@TestMetadata("overrideWithPrivateSetter1.kt")
public void testOverrideWithPrivateSetter1() throws Exception {
runTest("idea/testData/quickfix/modifiers/overrideWithPrivateSetter1.kt");
}
@TestMetadata("overrideWithPrivateSetter2.kt")
public void testOverrideWithPrivateSetter2() throws Exception {
runTest("idea/testData/quickfix/modifiers/overrideWithPrivateSetter2.kt");
}
@TestMetadata("packageMemberCannotBeProtected.kt")
@@ -111,6 +111,8 @@ open class AddModifierFix(
AddModifierFix.createFactory(KtTokens.ABSTRACT_KEYWORD, KtClassOrObject::class.java)
val addOpenToContainingClass: QuickFixesPsiBasedFactory<PsiElement> =
AddModifierFix.createFactory(KtTokens.OPEN_KEYWORD, KtClassOrObject::class.java)
val addFinalToProperty: QuickFixesPsiBasedFactory<PsiElement> =
AddModifierFix.createFactory(KtTokens.FINAL_KEYWORD, KtProperty::class.java)
private val modalityModifiers: Set<KtModifierKeywordToken> =
setOf(KtTokens.ABSTRACT_KEYWORD, KtTokens.OPEN_KEYWORD, KtTokens.FINAL_KEYWORD)
@@ -60,7 +60,8 @@ class RemoveModifierFix(
modifier = KtTokens.OPEN_KEYWORD,
isRedundant = true
)
val removeOpenModifier = createRemoveModifierFromListOwnerPsiBasedFactory(KtTokens.OPEN_KEYWORD)
val removeOpenModifier: QuickFixesPsiBasedFactory<PsiElement> = createRemoveModifierFromListOwnerPsiBasedFactory(KtTokens.OPEN_KEYWORD)
val removePrivateModifier: QuickFixesPsiBasedFactory<PsiElement> = createRemoveModifierFromListOwnerPsiBasedFactory(KtTokens.PRIVATE_KEYWORD)
@Deprecated(
"For binary compatibility",
@@ -0,0 +1,6 @@
// "Remove 'private' modifier" "true"
abstract class My {
abstract var foo: Int
<caret>private set
}
/* FIR_COMPARISON */
@@ -0,0 +1,6 @@
// "Remove 'private' modifier" "true"
abstract class My {
abstract var foo: Int
set
}
/* FIR_COMPARISON */
@@ -2,4 +2,5 @@
open class My {
open var foo = 42
<caret>private set
}
}
/* FIR_COMPARISON */
@@ -2,4 +2,5 @@
open class My {
var foo = 42
<caret>private set
}
}
/* FIR_COMPARISON */
@@ -0,0 +1,6 @@
// "Remove 'private' modifier" "true"
open class My {
open var foo = 42
<caret>private set
}
/* FIR_COMPARISON */
@@ -0,0 +1,6 @@
// "Remove 'private' modifier" "true"
open class My {
open var foo = 42
<caret>set
}
/* FIR_COMPARISON */
@@ -6,4 +6,5 @@ interface Foo {
open class FooImpl : Foo {
override var bar: String = ""
<caret>private set
}
}
/* FIR_COMPARISON */
@@ -6,4 +6,5 @@ interface Foo {
open class FooImpl : Foo {
final override var bar: String = ""
<caret>private set
}
}
/* FIR_COMPARISON */
@@ -0,0 +1,10 @@
// "Remove 'private' modifier" "true"
interface Foo {
val bar: String
}
open class FooImpl : Foo {
override var bar: String = ""
<caret>private set
}
/* FIR_COMPARISON */
@@ -0,0 +1,10 @@
// "Remove 'private' modifier" "true"
interface Foo {
val bar: String
}
open class FooImpl : Foo {
override var bar: String = ""
<caret>set
}
/* FIR_COMPARISON */
@@ -9218,6 +9218,11 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
runTest("idea/testData/quickfix/modifiers/abstractModifierInEnum.kt");
}
@TestMetadata("abstractVarWithPrivateSetter.kt")
public void testAbstractVarWithPrivateSetter() throws Exception {
runTest("idea/testData/quickfix/modifiers/abstractVarWithPrivateSetter.kt");
}
@TestMetadata("addLateinit.kt")
public void testAddLateinit() throws Exception {
runTest("idea/testData/quickfix/modifiers/addLateinit.kt");
@@ -9362,9 +9367,14 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
runTest("idea/testData/quickfix/modifiers/openObject.kt");
}
@TestMetadata("openVarWithPrivateSetter.kt")
public void testOpenVarWithPrivateSetter() throws Exception {
runTest("idea/testData/quickfix/modifiers/openVarWithPrivateSetter.kt");
@TestMetadata("openVarWithPrivateSetter1.kt")
public void testOpenVarWithPrivateSetter1() throws Exception {
runTest("idea/testData/quickfix/modifiers/openVarWithPrivateSetter1.kt");
}
@TestMetadata("openVarWithPrivateSetter2.kt")
public void testOpenVarWithPrivateSetter2() throws Exception {
runTest("idea/testData/quickfix/modifiers/openVarWithPrivateSetter2.kt");
}
@TestMetadata("operatorModifier.kt")
@@ -9392,9 +9402,14 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
runTest("idea/testData/quickfix/modifiers/operatorModifierInherited.kt");
}
@TestMetadata("overrideWithPrivateSetter.kt")
public void testOverrideWithPrivateSetter() throws Exception {
runTest("idea/testData/quickfix/modifiers/overrideWithPrivateSetter.kt");
@TestMetadata("overrideWithPrivateSetter1.kt")
public void testOverrideWithPrivateSetter1() throws Exception {
runTest("idea/testData/quickfix/modifiers/overrideWithPrivateSetter1.kt");
}
@TestMetadata("overrideWithPrivateSetter2.kt")
public void testOverrideWithPrivateSetter2() throws Exception {
runTest("idea/testData/quickfix/modifiers/overrideWithPrivateSetter2.kt");
}
@TestMetadata("packageMemberCannotBeProtected.kt")