mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IG: remove a little duplication
This commit is contained in:
+17
-34
@@ -124,7 +124,7 @@ public class TryFinallyCanBeTryWithResourcesInspection extends BaseInspection {
|
||||
newTryStatementText.append(initializer.getText());
|
||||
}
|
||||
else {
|
||||
final int index = findInitialization(tryBlockChildren, variable, hasInitializer);
|
||||
final int index = findInitialization(tryBlockChildren, variable, false);
|
||||
if (index < 0) {
|
||||
return;
|
||||
}
|
||||
@@ -253,26 +253,11 @@ public class TryFinallyCanBeTryWithResourcesInspection extends BaseInspection {
|
||||
if (rhs == null) {
|
||||
return false;
|
||||
}
|
||||
final PsiElement variable;
|
||||
if (PsiType.NULL.equals(rhs.getType())) {
|
||||
if (!(lhs instanceof PsiReferenceExpression)) {
|
||||
return false;
|
||||
}
|
||||
final PsiReferenceExpression referenceExpression = (PsiReferenceExpression)lhs;
|
||||
variable = referenceExpression.resolve();
|
||||
if (!(variable instanceof PsiLocalVariable)) {
|
||||
return false;
|
||||
}
|
||||
if (resolveLocalVariable(lhs) == null) return false;
|
||||
}
|
||||
else if (PsiType.NULL.equals(lhs.getType())) {
|
||||
if (!(rhs instanceof PsiReferenceExpression)) {
|
||||
return false;
|
||||
}
|
||||
final PsiReferenceExpression referenceExpression = (PsiReferenceExpression)rhs;
|
||||
variable = referenceExpression.resolve();
|
||||
if (!(variable instanceof PsiLocalVariable)) {
|
||||
return false;
|
||||
}
|
||||
if (resolveLocalVariable(rhs) == null) return false;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
@@ -408,28 +393,17 @@ public class TryFinallyCanBeTryWithResourcesInspection extends BaseInspection {
|
||||
}
|
||||
final PsiElement variable;
|
||||
if (PsiType.NULL.equals(rhs.getType())) {
|
||||
if (!(lhs instanceof PsiReferenceExpression)) {
|
||||
return null;
|
||||
}
|
||||
final PsiReferenceExpression referenceExpression = (PsiReferenceExpression)lhs;
|
||||
variable = referenceExpression.resolve();
|
||||
if (!(variable instanceof PsiLocalVariable)) {
|
||||
return null;
|
||||
}
|
||||
variable = resolveLocalVariable(lhs);
|
||||
}
|
||||
else if (PsiType.NULL.equals(lhs.getType())) {
|
||||
if (!(rhs instanceof PsiReferenceExpression)) {
|
||||
return null;
|
||||
}
|
||||
final PsiReferenceExpression referenceExpression = (PsiReferenceExpression)rhs;
|
||||
variable = referenceExpression.resolve();
|
||||
if (!(variable instanceof PsiLocalVariable)) {
|
||||
return null;
|
||||
}
|
||||
variable = resolveLocalVariable(rhs);
|
||||
}
|
||||
else {
|
||||
return null;
|
||||
}
|
||||
if (variable == null) {
|
||||
return null;
|
||||
}
|
||||
final PsiStatement thenBranch = ifStatement.getThenBranch();
|
||||
final PsiLocalVariable resourceVariable;
|
||||
if (thenBranch instanceof PsiExpressionStatement) {
|
||||
@@ -577,4 +551,13 @@ public class TryFinallyCanBeTryWithResourcesInspection extends BaseInspection {
|
||||
return used;
|
||||
}
|
||||
}
|
||||
|
||||
private static PsiLocalVariable resolveLocalVariable(PsiExpression expression) {
|
||||
if (!(expression instanceof PsiReferenceExpression)) {
|
||||
return null;
|
||||
}
|
||||
final PsiReferenceExpression referenceExpression = (PsiReferenceExpression)expression;
|
||||
final PsiElement target = referenceExpression.resolve();
|
||||
return !(target instanceof PsiLocalVariable) ? null : (PsiLocalVariable)target;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user