private <T> CachedValue<T> freshCachedValue(UserDataHolder dh, Key<CachedValue<T>> key, CachedValueProvider<T> provider, boolean trackValue) {
    CachedValueLeakChecker.checkProviderDoesNotLeakPSI(provider, key, dh);
    CachedValue<T> value = myFactory.createCachedValue(dh, provider, trackValue);
    assert ((CachedValueBase<?>)value).isFromMyProject(myProject);
    return value;
  }
private <T> CachedValue<T> freshCachedValue(UserDataHolder dh, Key<CachedValue<T>> key, CachedValueProvider<T> provider, boolean trackValue)