@Override
    public void visitPolyadicExpression(@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);
    }
@Override
    public void visitPolyadicExpression(@NotNull PsiPolyadicExpression expression)