diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/AddAccessorIntentions.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/AddAccessorIntentions.kt index a530764a6c1..b80641753b8 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/AddAccessorIntentions.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/AddAccessorIntentions.kt @@ -22,7 +22,10 @@ import com.intellij.openapi.util.TextRange import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny import org.jetbrains.kotlin.idea.refactoring.isAbstract +import org.jetbrains.kotlin.idea.util.findAnnotation +import org.jetbrains.kotlin.idea.util.hasJvmFieldAnnotation import org.jetbrains.kotlin.lexer.KtTokens +import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.KtProperty import org.jetbrains.kotlin.psi.KtPsiFactory @@ -34,7 +37,8 @@ abstract class AbstractAddAccessorsIntention( override fun applicabilityRange(element: KtProperty): TextRange? { if (element.isLocal || element.isAbstract() || element.hasDelegate() || element.hasModifier(KtTokens.LATEINIT_KEYWORD) || - element.hasModifier(KtTokens.CONST_KEYWORD) + element.hasModifier(KtTokens.CONST_KEYWORD) || + element.hasJvmFieldAnnotation() ) { return null } diff --git a/idea/testData/intentions/addPropertyAccessors/both/jvmField.kt b/idea/testData/intentions/addPropertyAccessors/both/jvmField.kt new file mode 100644 index 00000000000..9ecf25bc08f --- /dev/null +++ b/idea/testData/intentions/addPropertyAccessors/both/jvmField.kt @@ -0,0 +1,6 @@ +// IS_APPLICABLE: false +// WITH_RUNTIME +class Test { + @JvmField + var foo = 1 +} \ No newline at end of file diff --git a/idea/testData/intentions/addPropertyAccessors/getter/jvmField.kt b/idea/testData/intentions/addPropertyAccessors/getter/jvmField.kt new file mode 100644 index 00000000000..0f0bb512d28 --- /dev/null +++ b/idea/testData/intentions/addPropertyAccessors/getter/jvmField.kt @@ -0,0 +1,6 @@ +// IS_APPLICABLE: false +// WITH_RUNTIME +class Test { + @JvmField + val foo = 1 +} \ No newline at end of file diff --git a/idea/testData/intentions/addPropertyAccessors/setter/jvmField.kt b/idea/testData/intentions/addPropertyAccessors/setter/jvmField.kt new file mode 100644 index 00000000000..9ecf25bc08f --- /dev/null +++ b/idea/testData/intentions/addPropertyAccessors/setter/jvmField.kt @@ -0,0 +1,6 @@ +// IS_APPLICABLE: false +// WITH_RUNTIME +class Test { + @JvmField + var foo = 1 +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index 8a4212adc4e..e1df1873854 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -1485,6 +1485,11 @@ public class IntentionTestGenerated extends AbstractIntentionTest { runTest("idea/testData/intentions/addPropertyAccessors/both/hasSetter.kt"); } + @TestMetadata("jvmField.kt") + public void testJvmField() throws Exception { + runTest("idea/testData/intentions/addPropertyAccessors/both/jvmField.kt"); + } + @TestMetadata("lateinit.kt") public void testLateinit() throws Exception { runTest("idea/testData/intentions/addPropertyAccessors/both/lateinit.kt"); @@ -1558,6 +1563,11 @@ public class IntentionTestGenerated extends AbstractIntentionTest { runTest("idea/testData/intentions/addPropertyAccessors/getter/header.kt"); } + @TestMetadata("jvmField.kt") + public void testJvmField() throws Exception { + runTest("idea/testData/intentions/addPropertyAccessors/getter/jvmField.kt"); + } + @TestMetadata("lateinit.kt") public void testLateinit() throws Exception { runTest("idea/testData/intentions/addPropertyAccessors/getter/lateinit.kt"); @@ -1626,6 +1636,11 @@ public class IntentionTestGenerated extends AbstractIntentionTest { runTest("idea/testData/intentions/addPropertyAccessors/setter/hasSetter.kt"); } + @TestMetadata("jvmField.kt") + public void testJvmField() throws Exception { + runTest("idea/testData/intentions/addPropertyAccessors/setter/jvmField.kt"); + } + @TestMetadata("lateinit.kt") public void testLateinit() throws Exception { runTest("idea/testData/intentions/addPropertyAccessors/setter/lateinit.kt");