mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IntroduceVariable scope fixed
This commit is contained in:
+11
-5
@@ -43,18 +43,24 @@ public class IntroduceVariableAction extends BaseRunRefactoringAction<IntroduceV
|
||||
if (element == null) {
|
||||
return false;
|
||||
}
|
||||
final PsiStatement statement = PsiTreeUtil.getParentOfType(element, PsiStatement.class, false);
|
||||
|
||||
if (statement == null || !(statement instanceof PsiExpressionStatement)) {
|
||||
final PsiExpression expression = getExpression(element);
|
||||
if (expression == null || !(expression.getParent() instanceof PsiExpressionStatement)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final PsiExpressionStatement expressionStatement = (PsiExpressionStatement)statement;
|
||||
final PsiExpression expression = expressionStatement.getExpression();
|
||||
|
||||
return expression.getType() != PsiType.VOID && !(expression instanceof PsiAssignmentExpression);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static PsiExpression getExpression(@NotNull PsiElement element) {
|
||||
PsiExpression expression = PsiTreeUtil.getParentOfType(element, PsiExpression.class, false);
|
||||
while (expression != null && expression instanceof PsiReferenceExpression) {
|
||||
expression = PsiTreeUtil.getParentOfType(expression, PsiExpression.class, true);
|
||||
}
|
||||
return expression;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
protected static PsiElement getElement(Editor editor, @NotNull PsiFile file) {
|
||||
if (!file.getManager().isInProject(file)) return null;
|
||||
|
||||
Reference in New Issue
Block a user