From: qiulaidongfeng <2645477756@qq.com> Date: Thu, 16 May 2024 22:44:16 +0000 (+0000) Subject: cmd/go: unexport loadImport X-Git-Tag: go1.23rc1~300 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=69105d79efeb4d369f6de4962b1d871c80a3db7d;p=gostls13.git cmd/go: unexport loadImport Complete a TODO. Change-Id: I39869df4d95a5a5f6019e281719b942fbf4ba7db GitHub-Last-Rev: c664b5332e4f0afc84ae9bf1f91c0664903ebb7e GitHub-Pull-Request: golang/go#67091 Reviewed-on: https://go-review.googlesource.com/c/go/+/581939 LUCI-TryBot-Result: Go LUCI Reviewed-by: Michael Matloob Reviewed-by: Dmitri Shuralyov --- diff --git a/src/cmd/go/internal/load/pkg.go b/src/cmd/go/internal/load/pkg.go index 4bf2f381dd..92b1ea8d67 100644 --- a/src/cmd/go/internal/load/pkg.go +++ b/src/cmd/go/internal/load/pkg.go @@ -655,20 +655,6 @@ const ( cmdlinePkgLiteral ) -// LoadImport scans the directory named by path, which must be an import path, -// but possibly a local import path (an absolute file system path or one beginning -// with ./ or ../). A local relative path is interpreted relative to srcDir. -// It returns a *Package describing the package found in that directory. -// LoadImport does not set tool flags and should only be used by -// this package, as part of a bigger load operation, and by GOPATH-based "go get". -// TODO(rsc): When GOPATH-based "go get" is removed, unexport this function. -// The returned PackageError, if any, describes why parent is not allowed -// to import the named package, with the error referring to importPos. -// The PackageError can only be non-nil when parent is not nil. -func LoadImport(ctx context.Context, opts PackageOpts, path, srcDir string, parent *Package, stk *ImportStack, importPos []token.Position, mode int) (*Package, *PackageError) { - return loadImport(ctx, opts, nil, path, srcDir, parent, stk, importPos, mode) -} - // LoadPackage does Load import, but without a parent package load contezt func LoadPackage(ctx context.Context, opts PackageOpts, path, srcDir string, stk *ImportStack, importPos []token.Position, mode int) *Package { p, err := loadImport(ctx, opts, nil, path, srcDir, nil, stk, importPos, mode) @@ -678,6 +664,15 @@ func LoadPackage(ctx context.Context, opts PackageOpts, path, srcDir string, stk return p } +// loadImport scans the directory named by path, which must be an import path, +// but possibly a local import path (an absolute file system path or one beginning +// with ./ or ../). A local relative path is interpreted relative to srcDir. +// It returns a *Package describing the package found in that directory. +// loadImport does not set tool flags and should only be used by +// this package, as part of a bigger load operation. +// The returned PackageError, if any, describes why parent is not allowed +// to import the named package, with the error referring to importPos. +// The PackageError can only be non-nil when parent is not nil. func loadImport(ctx context.Context, opts PackageOpts, pre *preload, path, srcDir string, parent *Package, stk *ImportStack, importPos []token.Position, mode int) (*Package, *PackageError) { ctx, span := trace.StartSpan(ctx, "modload.loadImport "+path) defer span.Done() @@ -1971,7 +1966,7 @@ func (p *Package) load(ctx context.Context, opts PackageOpts, path string, stk * if path == "C" { continue } - p1, err := LoadImport(ctx, opts, path, p.Dir, p, stk, p.Internal.Build.ImportPos[path], ResolveImport) + p1, err := loadImport(ctx, opts, nil, path, p.Dir, p, stk, p.Internal.Build.ImportPos[path], ResolveImport) if err != nil && p.Error == nil { p.Error = err p.Incomplete = true @@ -2696,7 +2691,7 @@ func TestPackageList(ctx context.Context, opts PackageOpts, roots []*Package) [] } walkTest := func(root *Package, path string) { var stk ImportStack - p1, err := LoadImport(ctx, opts, path, root.Dir, root, &stk, root.Internal.Build.TestImportPos[path], ResolveImport) + p1, err := loadImport(ctx, opts, nil, path, root.Dir, root, &stk, root.Internal.Build.TestImportPos[path], ResolveImport) if err != nil && root.Error == nil { // Assign error importing the package to the importer. root.Error = err @@ -2724,7 +2719,7 @@ func TestPackageList(ctx context.Context, opts PackageOpts, roots []*Package) [] // TODO(jayconrod): delete this function and set flags automatically // in LoadImport instead. func LoadImportWithFlags(path, srcDir string, parent *Package, stk *ImportStack, importPos []token.Position, mode int) (*Package, *PackageError) { - p, err := LoadImport(context.TODO(), PackageOpts{}, path, srcDir, parent, stk, importPos, mode) + p, err := loadImport(context.TODO(), PackageOpts{}, nil, path, srcDir, parent, stk, importPos, mode) setToolFlags(p) return p, err }