private boolean eliminateExpression(@NotNull PsiPolyadicExpression expression,
                                      @Nullable IElementType tokenBefore,
                                      boolean isNegated,
                                      @NotNull StringBuilder sb) {
    if (EliminateUtils.isMultiplicative(expression.getOperationTokenType())) {
      return eliminateMultiplicativeExpression(expression, tokenBefore, EliminateUtils.isNegated(expression, isNegated), sb);
    }
    for (PsiExpression operand : expression.getOperands()) {
      IElementType tokenType = EliminateUtils.getOperandTokenType(expression, operand, tokenBefore);
      if (operand != myOperand) {
        if (!EliminateUtils.processPrefixed(operand, isNegated, (op, isOpNegated) -> eliminateOperand(op, tokenType, isOpNegated, sb))) {
          return false;
        }
        continue;
      }
      if (!eliminateInnerExpression(operand, tokenType, sb)) return false;
    }
    return true;
  }
private boolean eliminateExpression(@NotNull PsiPolyadicExpression expression,
                                      @Nullable IElementType tokenBefore,
                                      boolean isNegated,
                                      @NotNull StringBuilder sb)