mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
StreamApiMigrationInspection: support parentheses in while(((line) = readLine()) != null)
This commit is contained in:
+5
-2
@@ -948,7 +948,10 @@ public class StreamApiMigrationInspection extends AbstractBaseJavaLocalInspectio
|
||||
@Override
|
||||
boolean isWriteAllowed(PsiVariable variable, PsiExpression reference) {
|
||||
if (myVariable == variable) {
|
||||
if (reference.getParent() == PsiTreeUtil.getParentOfType(myExpression, PsiAssignmentExpression.class)) return true;
|
||||
if (PsiUtil.skipParenthesizedExprUp(reference.getParent()) ==
|
||||
PsiTreeUtil.getParentOfType(myExpression, PsiAssignmentExpression.class)) {
|
||||
return true;
|
||||
}
|
||||
PsiForStatement forStatement = PsiTreeUtil.getParentOfType(variable, PsiForStatement.class);
|
||||
if (forStatement != null && forStatement == PsiTreeUtil.getParentOfType(myVariable, PsiForStatement.class)) {
|
||||
return PsiTreeUtil.isAncestor(forStatement.getUpdate(), reference, false) ||
|
||||
@@ -985,7 +988,7 @@ public class StreamApiMigrationInspection extends AbstractBaseJavaLocalInspectio
|
||||
if (!BUFFERED_READER_READ_LINE.test(readerCall)) return null;
|
||||
PsiExpression reader = readerCall.getMethodExpression().getQualifierExpression();
|
||||
|
||||
PsiLocalVariable lineVar = ExpressionUtils.resolveLocalVariable(assignment.getLExpression());
|
||||
PsiLocalVariable lineVar = ExpressionUtils.resolveLocalVariable(PsiUtil.skipParenthesizedExprDown(assignment.getLExpression()));
|
||||
if (lineVar == null) return null;
|
||||
if (ReferencesSearch.search(lineVar).anyMatch(ref -> !PsiTreeUtil.isAncestor(loopStatement, ref.getElement(), true))) {
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user