code: func Import(path string, mode build.ImportMode, installSuffix string, buildTags []string) (*PackageData, error) {
  	wd, err := os.Getwd()
  	if err != nil {
  		// Getwd may fail if we're in GOARCH=js mode. That's okay, handle
  		// it by falling back to empty working directory. It just means
  		// Import will not be able to resolve relative import paths.
  		wd = ""
  	}
  	bctx := NewBuildContext(installSuffix, buildTags)
  	return importWithSrcDir(*bctx, path, wd, mode, installSuffix)
  }
docs: // Import returns details about the Go package named by the import path. If the
  // path is a local import path naming a package that can be imported using
  // a standard import path, the returned package will set p.ImportPath to
  // that path.
  //
  // In the directory containing the package, .go and .inc.js files are
  // considered part of the package except for:
  //
  //    - .go files in package documentation
  //    - files starting with _ or . (likely editor temporary files)
  //    - files with build constraints not satisfied by the context
  //
  // If an error occurs, Import returns a non-nil error and a nil
  // *PackageData.