@Override
  protected @Nullable Presentation getPresentation(@NotNull ActionContext context, @NotNull PsiStatement statement) {
    PsiExpression expression = myExpressionPtr.getElement();
    if (expression == null) return null;
    List<PsiExpression> sideEffects = SideEffectChecker.extractSideEffectExpressions(expression);
    String message = getMessage(expression, sideEffects);
    if (!myAlwaysAvailable &&
        // "Remove unnecessary parentheses" action is already present which will do the same
        sideEffects.size() == 1 && statement instanceof PsiExpressionStatement &&
        sideEffects.get(0) == PsiUtil.skipParenthesizedExprDown(expression)) {
      return null;
    }
    return Presentation.of(message).withPriority(PriorityAction.Priority.LOW)
      .withHighlighting(ContainerUtil.map2Array(sideEffects, TextRange.EMPTY_ARRAY, effect -> effect.getTextRange()));
  }
@Override
  protected @Nullable Presentation getPresentation(@NotNull ActionContext context, @NotNull PsiStatement statement)