protected @NotNull NavigationGutterIconRenderer createGutterIconRenderer(@NotNull NotNullLazyValue<? extends List<SmartPsiElementPointer<?>>> pointers,
                                                                           @NotNull Computable<? extends PsiElementListCellRenderer<?>> renderer,
                                                                           boolean empty,
                                                                           @Nullable GutterIconNavigationHandler<PsiElement> navigationHandler) {
    if (myLazy) {
      return createLazyGutterIconRenderer(pointers, renderer, empty, navigationHandler);
    }
    return new MyNavigationGutterIconRenderer(this, myAlignment, myIcon, myTooltipText, pointers, renderer, empty, navigationHandler);
  }
protected @NotNull NavigationGutterIconRenderer createGutterIconRenderer(@NotNull NotNullLazyValue<? extends List<SmartPsiElementPointer<?>>> pointers,
                                                                           @NotNull Computable<? extends PsiElementListCellRenderer<?>> renderer,
                                                                           boolean empty,
                                                                           @Nullable GutterIconNavigationHandler<PsiElement> navigationHandler)