diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/declarations/SplitPropertyDeclarationIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/declarations/SplitPropertyDeclarationIntention.kt index 7ebe2b9f434..95c736fa6e6 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/declarations/SplitPropertyDeclarationIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/declarations/SplitPropertyDeclarationIntention.kt @@ -11,12 +11,14 @@ import com.intellij.openapi.util.TextRange import org.jetbrains.kotlin.idea.intentions.SelfTargetingRangeIntention import org.jetbrains.kotlin.idea.intentions.splitPropertyDeclaration import org.jetbrains.kotlin.psi.KtProperty +import org.jetbrains.kotlin.psi.KtWhenEntry +import org.jetbrains.kotlin.psi.KtWhenExpression import org.jetbrains.kotlin.psi.psiUtil.startOffset class SplitPropertyDeclarationIntention : SelfTargetingRangeIntention(KtProperty::class.java, "Split property declaration"), LowPriorityAction { override fun applicabilityRange(element: KtProperty): TextRange? { - if (!element.isLocal) return null + if (!element.isLocal || element.parent is KtWhenExpression) return null val initializer = element.initializer ?: return null return TextRange(element.startOffset, initializer.startOffset) } diff --git a/idea/testData/intentions/declarations/split/whenSubject.kt b/idea/testData/intentions/declarations/split/whenSubject.kt new file mode 100644 index 00000000000..66a41f200fe --- /dev/null +++ b/idea/testData/intentions/declarations/split/whenSubject.kt @@ -0,0 +1,13 @@ +// IS_APPLICABLE: false +enum class Type { + HYDRO, + PYRO +} + +fun select(t: Type): Int { + return when (val i = t.ordinal) { + 0 -> 1 + 1 -> 42 + else -> i + } +} \ 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 19f6e74437e..aa2d0c5c06e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -8100,6 +8100,11 @@ public class IntentionTestGenerated extends AbstractIntentionTest { public void testSimpleInitWithType2() throws Exception { runTest("idea/testData/intentions/declarations/split/simpleInitWithType2.kt"); } + + @TestMetadata("whenSubject.kt") + public void testWhenSubject() throws Exception { + runTest("idea/testData/intentions/declarations/split/whenSubject.kt"); + } } }