public static @Nullable PsiType inferType(@NotNull PsiElement element, @NotNull Computable<? extends PsiType> computable) {
    List<? extends PsiElement> stack = ourGuard.currentStack();
    if (stack.size() > 7) { //don't end up walking the whole project PSI
      ourGuard.prohibitResultCaching(stack.get(0));
      return null;
    }

    return ourGuard.doPreventingRecursion(element, true, computable);
  }
public static @Nullable PsiType inferType(@NotNull PsiElement element, @NotNull Computable<? extends PsiType> computable)