introduce code block parameter: extract from code block

This commit is contained in:
Anna Kozlova
2014-12-10 16:37:46 +01:00
parent 380a115d70
commit 3d1f3bf386
6 changed files with 43 additions and 3 deletions
@@ -1036,7 +1036,9 @@ public abstract class IntroduceVariableBase extends IntroduceHandlerBase {
text = start + refText + (suffix != null ? suffix : "") + end;
}
final PsiElementFactory factory = JavaPsiFacade.getInstance(project).getElementFactory();
return parent instanceof PsiStatement || parent instanceof PsiCodeBlock ? factory.createStatementFromText(text, parent) : factory.createExpressionFromText(text, parent);
return parent instanceof PsiStatement ? factory.createStatementFromText(text, parent) :
parent instanceof PsiCodeBlock ? factory.createCodeBlockFromText(text, parent)
: factory.createExpressionFromText(text, parent);
}
private boolean parentStatementNotFound(final Project project, Editor editor) {
@@ -10,7 +10,7 @@ class Test {
});
}
void foo(int i, Consumer<Integer> anObject){
void foo(int i, Consumer<Integer> anObject) {
anObject.accept(i);
@@ -0,0 +1,20 @@
import java.util.function.Consumer;
class Test {
void bar() {
foo(1, new Consumer<Integer>() {
public void accept(Integer i) {
System.out.println(i);
System.out.println(i);
}
});
}
void foo(int i, Consumer<Integer> anObject) {
if (i > 0) {
anObject.accept(i);
}
}
}
@@ -8,7 +8,7 @@ class Test {
});
}
void foo(Runnable anObject){
void foo(Runnable anObject) {
anObject.run();
@@ -0,0 +1,14 @@
class Test {
void bar() {
foo(1);
}
void foo(int i) {
if (i > 0) {
<selection>
System.out.println(i);
System.out.println(i);
</selection>
}
}
}
@@ -33,6 +33,10 @@ public class IntroduceFunctionalParameterTest extends LightRefactoringTestCase
doTest(null);
}
public void testIntConsumerFromIfStatement() throws Exception {
doTest(null);
}
@NotNull
@Override
protected String getTestDataPath() {