From 7a9cd52296f8e0f4a968833aa2bdd88970a7aa64 Mon Sep 17 00:00:00 2001 From: anna Date: Fri, 23 Apr 2010 20:39:03 +0400 Subject: [PATCH] introduce parameter on non-expressive line ( IDEA-26367 ) --- .../refactoring/introduceField/ElementToWorkOn.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/refactoring/introduceField/ElementToWorkOn.java b/java/java-impl/src/com/intellij/refactoring/introduceField/ElementToWorkOn.java index 26f2a212b204..128fd029fc89 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/ElementToWorkOn.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/ElementToWorkOn.java @@ -79,9 +79,16 @@ public class ElementToWorkOn { final int offset = editor.getCaretModel().getOffset(); final PsiElement[] statementsInRange = IntroduceVariableBase.findStatementsAtOffset(editor, file, offset); + if (statementsInRange.length == 1 && PsiUtil.hasErrorElementChild(statementsInRange[0])) { editor.getSelectionModel().selectLineAtCaret(); - } else { + final ElementToWorkOn elementToWorkOn = getElementToWorkOn(editor, file, refactoringName, helpId, project, localVar, expr); + if (elementToWorkOn == null || elementToWorkOn.getLocalVariable() == null && elementToWorkOn.getExpression() == null) { + editor.getSelectionModel().removeSelection(); + } + } + + if (!editor.getSelectionModel().hasSelection()){ final List expressions = IntroduceVariableBase.collectExpressions(file, editor, offset, statementsInRange); if (expressions.isEmpty()) { editor.getSelectionModel().selectLineAtCaret();