public static <T> T getCachedValue(final @NotNull PsiElement context, final @NotNull CachedValueProvider<T> provider) {
    return getCachedValue(context, getKeyForClass(provider.getClass(), globalKeyForProvider), provider);
  }
public static <T> T getCachedValue(final @NotNull PsiElement context, final @NotNull CachedValueProvider<T> provider)