Introduce Variable: Fix extraction of expression from when-entry condition
#KT-8444 Fixed
This commit is contained in:
+3
-1
@@ -558,7 +558,9 @@ public class KotlinIntroduceVariableHandler extends KotlinIntroduceHandlerBase {
|
||||
return parent;
|
||||
}
|
||||
}
|
||||
if (parent instanceof JetBlockExpression || parent instanceof JetWhenEntry || parent instanceof JetClassInitializer) {
|
||||
if (parent instanceof JetBlockExpression
|
||||
|| (parent instanceof JetWhenEntry && place == ((JetWhenEntry) parent).getExpression())
|
||||
|| parent instanceof JetClassInitializer) {
|
||||
return parent;
|
||||
}
|
||||
if (parent instanceof JetDeclarationWithBody && ((JetDeclarationWithBody) parent).getBodyExpression() == place) {
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
fun f(x : Int) {
|
||||
val y = if (x < 0) 1 else when {
|
||||
<selection>x - 1</selection> < 1 -> 2
|
||||
else -> 3
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fun f(x : Int) {
|
||||
val y = if (x < 0) 1 else {
|
||||
val i = x - 1
|
||||
when {
|
||||
i < 1 -> 2
|
||||
else -> 3
|
||||
}
|
||||
}
|
||||
}
|
||||
+6
@@ -331,6 +331,12 @@ public class JetExtractionTestGenerated extends AbstractJetExtractionTest {
|
||||
doIntroduceVariableTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("WhenEntryCondition.kt")
|
||||
public void testWhenEntryCondition() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/refactoring/introduceVariable/WhenEntryCondition.kt");
|
||||
doIntroduceVariableTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("WhenParts.kt")
|
||||
public void testWhenParts() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/refactoring/introduceVariable/WhenParts.kt");
|
||||
|
||||
Reference in New Issue
Block a user