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;
|
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;
|
return parent;
|
||||||
}
|
}
|
||||||
if (parent instanceof JetDeclarationWithBody && ((JetDeclarationWithBody) parent).getBodyExpression() == place) {
|
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);
|
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")
|
@TestMetadata("WhenParts.kt")
|
||||||
public void testWhenParts() throws Exception {
|
public void testWhenParts() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/refactoring/introduceVariable/WhenParts.kt");
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/refactoring/introduceVariable/WhenParts.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user