code: @Override
    public <T> Provider<T> provider(InjectionPoint<T> ip)
    {
      Objects.requireNonNull(ip);
  
      Provider<T> provider = lookupProvider(ip);
  
      if (provider != null) {
        return provider;
      }
  
      provider = autoProvider(ip);
  
      if (provider != null) {
        return provider;
      }
  
      return new ProviderNull(ip.key(), -10000, new InjectScopeSingleton());
    }
docs: Creates an instance provider for a given InjectionPoint, such as a
  method or field.