revert foreach statement skip, make sure that place to check is inside a statement to prevent containing scope check instead

This commit is contained in:
Anna Kozlova
2014-11-28 11:28:32 +01:00
parent 8d21980d5e
commit 565f6ac4e7
2 changed files with 4 additions and 5 deletions
@@ -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();
@@ -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);