@Override
    protected void applyFix(@NotNull Project project, @NotNull PsiElement startElement, @NotNull ModPsiUpdater updater) {
      final PsiPolyadicExpression expression = (PsiPolyadicExpression)startElement;

      final PsiExpression[] operands = expression.getOperands();
      if (operands.length < 2) {
        return;
      }

      final PsiExpression exprToCast;
      if (operands.length > 2 || expression.getOperationTokenType() == JavaTokenType.LTLT) {
        exprToCast = operands[0];
      }
      else {
        exprToCast = Arrays.stream(operands)
          .map(operand -> PsiUtil.deparenthesizeExpression(operand))
          .filter(operand -> isIntegerLiteral(operand) ||
                             operand instanceof PsiPrefixExpression prefixExpr && isIntegerLiteral(prefixExpr.getOperand()))
          .findFirst()
          .orElse(operands[0]);
      }

      addCast(exprToCast);
    }
@Override
    protected void applyFix(@NotNull Project project, @NotNull PsiElement startElement, @NotNull ModPsiUpdater updater)