private static @NotNull <T> NotNullLazyValue<List<SmartPsiElementPointer<?>>> createPointersThunk(boolean lazy,
                                                                                                    final Project project,
                                                                                                    final NotNullFactory<? extends Collection<? extends T>> targets,
                                                                                                    final NotNullFunction<? super T, ? extends Collection<? extends PsiElement>> converter) {
    if (!lazy) {
      return NotNullLazyValue.createConstantValue(calcPsiTargets(project, targets.create(), converter));
    }

    return NotNullLazyValue.lazy(() -> calcPsiTargets(project, targets.create(), converter));
  }
private static @NotNull <T> NotNullLazyValue<List<SmartPsiElementPointer<?>>> createPointersThunk(boolean lazy,
                                                                                                    final Project project,
                                                                                                    final NotNullFactory<? extends Collection<? extends T>> targets,
                                                                                                    final NotNullFunction<? super T, ? extends Collection<? extends PsiElement>> converter)