code: func NewClient(ctx context.Context, src TokenSource) *http.Client {
  	if src == nil {
  		c, err := internal.ContextClient(ctx)
  		if err != nil {
  			return &http.Client{Transport: internal.ErrorTransport{err}}
  		}
  		return c
  	}
  	return &http.Client{
  		Transport: &Transport{
  			Base:   internal.ContextTransport(ctx),
  			Source: ReuseTokenSource(nil, src),
  		},
  	}
  }
docs: // NewClient creates an *http.Client from a Context and TokenSource.
  // The returned client is not valid beyond the lifetime of the context.
  //
  // As a special case, if src is nil, a non-OAuth2 client is returned
  // using the provided context. This exists to support related OAuth2
  // packages.