code: func (i *ignore) Match(path string) Match {
  	// ensure we have the absolute path for the given file
  	_path, _err := filepath.Abs(path)
  	if _err != nil {
  		i._errors(NewError(_err, Position{}))
  		return nil
  	}
  
  	// is the path a file or a directory?
  	_info, _err := os.Stat(_path)
  	if _err != nil {
  		i._errors(NewError(_err, Position{}))
  		return nil
  	}
  	_isdir := _info.IsDir()
  
  	// attempt to match the absolute path
  	return i.Absolute(_path, _isdir)
  }
docs: // Match attempts to match the path against this GitIgnore, and will
  // return its Match if successful. Match will invoke the GitIgnore error
  // handler (if defined) if it is not possible to determine the absolute
  // path of the given path, or if its not possible to determine if the
  // path represents a file or a directory. If an error occurs, Match
  // returns nil and the error handler (if defined via New, NewWithErrors
  // or NewWithCache) will be invoked.