void (@NotNull PsiPolyadicExpression expression) { super.visitPolyadicExpression(expression); final IElementType tokenType = expression.getOperationTokenType(); if (!tokenType.equals(JavaTokenType.ANDAND) && !tokenType.equals(JavaTokenType.OROR)) return; PsiElement parent = PsiUtil.skipParenthesizedExprUp(expression.getParent()); if (parent instanceof PsiIfStatement) return; if (parent instanceof PsiBinaryExpression parentExpression) { if (tokenType.equals(parentExpression.getOperationTokenType())) return; } final Set<PsiExpression> conditions = new LinkedHashSet<>(); collectConditionsForExpression(expression, conditions, tokenType); if (conditions.size() < 2) return; findDuplicatesAccordingToSideEffects(conditions); }