core/src/com/google/inject/internal/InjectorImpl.java
private <T> BindingImpl<Provider<T>> createProviderBinding(Key<Provider<T>> key, Errors errors)
      throws ErrorsException {
    Key<T> providedKey = getProvidedKey(key, errors);
    BindingImpl<T> delegate = getBindingOrThrow(providedKey, errors, JitLimitation.NO_JIT);
    return new ProviderBindingImpl<T>(this, key, delegate);
  }
private <T> BindingImpl<Provider<T>> createProviderBinding(Key<Provider<T>> key, Errors errors)
      throws ErrorsException {
    Key<T> providedKey = getProvidedKey(key, errors);
    BindingImpl<T> delegate = getBindingOrThrow(providedKey, errors, JitLimitation.NO_JIT);
    return new ProviderBindingImpl<T>(this, key, delegate);
  }
private < T > BindingImpl < Provider < T > > createProviderBinding ( Key < Provider < T > > key , Errors errors ) throws ErrorsException { Key < T > providedKey = getProvidedKey ( key , errors ) ; BindingImpl < T > delegate = getBindingOrThrow ( providedKey , errors , JitLimitation . NO_JIT ) ; return new ProviderBindingImpl < T > ( this , key , delegate ) ; }
Creates a synthetic binding to {@code Provider<T>}, i.e. a binding to the provider from {@code
Binding<T>}.
Creates a synthetic binding to {