code: private <T> Provider<T> lookupProvider(InjectionPoint<T> ip)
    {
      Key<T> key = ip.key();
  
      BindingInject<T> bean = findBean(key);
  
      if (bean != null) {
        return bean.provider(ip);
      }
  
      BindingAmp<T> provider = findBinding(key);
  
      if (provider != null) {
        return provider.provider(ip);
      }
  
      provider = findObjectBinding(key);
  
      if (provider != null) {
        return provider.provider(ip);
      }
  
  
      return null;
    }
docs: Create a provider for an injection point.