diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertPropertyToFunctionIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertPropertyToFunctionIntention.kt index 4149f1f0e52..342a94c3eac 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertPropertyToFunctionIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertPropertyToFunctionIntention.kt @@ -37,6 +37,7 @@ import org.jetbrains.kotlin.idea.runSynchronouslyWithProgress import org.jetbrains.kotlin.idea.util.application.executeWriteCommand import org.jetbrains.kotlin.idea.util.application.progressIndicatorNullable import org.jetbrains.kotlin.idea.util.application.runReadAction +import org.jetbrains.kotlin.idea.util.hasJvmFieldAnnotation import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.psi.KtCallableReferenceExpression @@ -192,7 +193,11 @@ class ConvertPropertyToFunctionIntention : SelfTargetingIntention(Kt override fun isApplicableTo(element: KtProperty, caretOffset: Int): Boolean { val identifier = element.nameIdentifier ?: return false if (!identifier.textRange.containsOffset(caretOffset)) return false - return element.delegate == null && !element.isVar && !element.isLocal && (element.initializer == null || element.getter == null) + return element.delegate == null + && !element.isVar + && !element.isLocal + && (element.initializer == null || element.getter == null) + && !element.hasJvmFieldAnnotation() } override fun applyTo(element: KtProperty, editor: Editor?) { diff --git a/idea/testData/intentions/convertPropertyToFunction/jvmField.kt b/idea/testData/intentions/convertPropertyToFunction/jvmField.kt new file mode 100644 index 00000000000..081b8538d11 --- /dev/null +++ b/idea/testData/intentions/convertPropertyToFunction/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/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index 7db4b1db6c3..fdcd18fe0c3 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -6139,6 +6139,11 @@ public class IntentionTestGenerated extends AbstractIntentionTest { runTest("idea/testData/intentions/convertPropertyToFunction/javaUsages.kt"); } + @TestMetadata("jvmField.kt") + public void testJvmField() throws Exception { + runTest("idea/testData/intentions/convertPropertyToFunction/jvmField.kt"); + } + @TestMetadata("otherRefs.kt") public void testOtherRefs() throws Exception { runTest("idea/testData/intentions/convertPropertyToFunction/otherRefs.kt");