diff --git a/java/java-impl/src/com/intellij/codeInspection/streamMigration/StreamApiMigrationInspection.java b/java/java-impl/src/com/intellij/codeInspection/streamMigration/StreamApiMigrationInspection.java index a5392f535750..8d4c2c6f95b5 100644 --- a/java/java-impl/src/com/intellij/codeInspection/streamMigration/StreamApiMigrationInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/streamMigration/StreamApiMigrationInspection.java @@ -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;