mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[kotlin] Add quickfix for VOLATILE_ON_VALUE to change property to 'var'
^KTIJ-29263 Fixed closes https://github.com/JetBrains/intellij-community/pull/2732 GitOrigin-RevId: 256660744ba207d04cbbf2ab769a7e8697184450
This commit is contained in:
committed by
intellij-monorepo-bot
parent
9414c123b8
commit
231999e1da
+1
@@ -168,6 +168,7 @@ class KotlinK2QuickFixRegistrar : KotlinQuickFixRegistrar() {
|
||||
KtFirDiagnostic.MustBeInitializedOrFinalOrAbstractWarning::class,
|
||||
ChangeVariableMutabilityFix.MUST_BE_INITIALIZED_FACTORY
|
||||
)
|
||||
registerPsiQuickFixes(KtFirDiagnostic.VolatileOnValue::class, ChangeVariableMutabilityFix.VOLATILE_ON_VALUE_FACTORY)
|
||||
}
|
||||
|
||||
private val expressions = KtQuickFixesListBuilder.registerPsiQuickFix {
|
||||
|
||||
+10
@@ -2908,6 +2908,16 @@ public abstract class HighLevelQuickFixTestGenerated extends AbstractHighLevelQu
|
||||
public void testVarAnnotationParameter() throws Exception {
|
||||
runTest("../../../idea/tests/testData/quickfix/variables/changeMutability/varAnnotationParameter.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("volatileOnValue.kt")
|
||||
public void testVolatileOnValue() throws Exception {
|
||||
runTest("../../../idea/tests/testData/quickfix/variables/changeMutability/volatileOnValue.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("volatileOnValueLocal.kt")
|
||||
public void testVolatileOnValueLocal() throws Exception {
|
||||
runTest("../../../idea/tests/testData/quickfix/variables/changeMutability/volatileOnValueLocal.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
|
||||
+8
@@ -109,5 +109,13 @@ class ChangeVariableMutabilityFix(
|
||||
if (getter.hasBlockBody() && property.typeReference == null) return@quickFixesPsiBasedFactory emptyList()
|
||||
listOf(ChangeVariableMutabilityFix(property, makeVar = false))
|
||||
}
|
||||
|
||||
val VOLATILE_ON_VALUE_FACTORY: QuickFixesPsiBasedFactory<KtAnnotationEntry> =
|
||||
quickFixesPsiBasedFactory { annotationEntry: KtAnnotationEntry ->
|
||||
val modifierList = annotationEntry.parent as? KtDeclarationModifierList ?: return@quickFixesPsiBasedFactory emptyList()
|
||||
val property = modifierList.parent as? KtProperty ?: return@quickFixesPsiBasedFactory emptyList()
|
||||
if (!property.isWritable || property.isLocal) return@quickFixesPsiBasedFactory emptyList()
|
||||
listOf(ChangeVariableMutabilityFix(property, makeVar = true))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -799,5 +799,7 @@ class QuickFixRegistrar : QuickFixContributor {
|
||||
NON_DATA_CLASS_JVM_RECORD.registerFactory(AddModifierFixFE10.createFactory(DATA_KEYWORD))
|
||||
|
||||
RETURN_IN_FUNCTION_WITH_EXPRESSION_BODY.registerFactory(ConvertToBlockBodyFixFactory)
|
||||
|
||||
VOLATILE_ON_VALUE.registerFactory(ChangeVariableMutabilityFix.VOLATILE_ON_VALUE_FACTORY)
|
||||
}
|
||||
}
|
||||
|
||||
+10
@@ -17640,6 +17640,16 @@ public abstract class K1QuickFixTestGenerated extends AbstractK1QuickFixTest {
|
||||
public void testVarAnnotationParameter() throws Exception {
|
||||
runTest("testData/quickfix/variables/changeMutability/varAnnotationParameter.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("volatileOnValue.kt")
|
||||
public void testVolatileOnValue() throws Exception {
|
||||
runTest("testData/quickfix/variables/changeMutability/volatileOnValue.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("volatileOnValueLocal.kt")
|
||||
public void testVolatileOnValueLocal() throws Exception {
|
||||
runTest("testData/quickfix/variables/changeMutability/volatileOnValueLocal.kt");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
// "Change to 'var'" "true"
|
||||
// WITH_STDLIB
|
||||
class Foo {
|
||||
<caret>@Volatile
|
||||
val bar: String = ""
|
||||
}
|
||||
|
||||
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.codeinsights.impl.base.quickFix.ChangeVariableMutabilityFix
|
||||
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.codeinsights.impl.base.quickFix.ChangeVariableMutabilityFix
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
// "Change to 'var'" "true"
|
||||
// WITH_STDLIB
|
||||
class Foo {
|
||||
@Volatile
|
||||
var bar: String = ""
|
||||
}
|
||||
|
||||
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.codeinsights.impl.base.quickFix.ChangeVariableMutabilityFix
|
||||
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.codeinsights.impl.base.quickFix.ChangeVariableMutabilityFix
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
// "Change to 'var'" "false"
|
||||
// ERROR: This annotation is not applicable to target 'local variable'
|
||||
// WITH_STDLIB
|
||||
class Foo {
|
||||
fun foo() {
|
||||
<caret>@Volatile
|
||||
val bar: String = ""
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user