From 565f6ac4e77380f802122ceb01c55359034812eb Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Fri, 28 Nov 2014 11:28:32 +0100 Subject: [PATCH] revert foreach statement skip, make sure that place to check is inside a statement to prevent containing scope check instead --- .../psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java | 3 --- .../refactoring/extractMethod/ExtractMethodProcessor.java | 6 ++++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java index fd641a836de6..4a0e654d3845 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/JavaCodeStyleManagerImpl.java @@ -893,9 +893,6 @@ public class JavaCodeStyleManagerImpl extends JavaCodeStyleManager { @Override public void visitClass(final PsiClass aClass) {} - @Override - public void visitForeachStatement(PsiForeachStatement statement) {} - @Override public void visitVariable(PsiVariable variable) { if (name1.equals(variable.getName())) { throw new CancelException(); diff --git a/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java b/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java index 7f24eb5155d8..50b028158593 100644 --- a/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java @@ -905,8 +905,10 @@ public class ExtractMethodProcessor implements MatchProvider { private String declareVariableAtMethodCallLocation(String name, PsiType type) { if (myControlFlowWrapper.getOutputVariables(false).length == 0) { - PsiElement lastStatement = myEnclosingBlockStatement != null ? myEnclosingBlockStatement : myElements[myElements.length - 1]; - name = JavaCodeStyleManager.getInstance(myProject).suggestUniqueVariableName(name, lastStatement, true); + PsiElement lastStatement = PsiTreeUtil.getNextSiblingOfType(myEnclosingBlockStatement != null ? myEnclosingBlockStatement : myElements[myElements.length - 1], PsiStatement.class); + if (lastStatement != null) { + name = JavaCodeStyleManager.getInstance(myProject).suggestUniqueVariableName(name, lastStatement, true); + } } PsiDeclarationStatement statement = myElementFactory.createVariableDeclarationStatement(name, type, myMethodCall); statement = (PsiDeclarationStatement)addToMethodCallLocation(statement);