Skip to content

Commit b96d32b

Browse files
author
Bryan C. Mills
committed
cmd/go/internal/modload: track which packages are in 'all' during loading
If the user requests the 'all' pattern in addition to explicit roots outside of 'all', we should not load the transitive dependencies of those explicit roots as if they were *in* 'all'. Without the '-test' flag, we should not load test dependencies of any package outside of 'all'. Even *with* the '-test' flag, we should only load test dependencies of the requested roots, not test dependencies of other packages that happen to be imported by those roots. More precise tracking of membership in 'all' will be important when we implement lazy loading, because membership in 'all' determines which module dependencies we will record in the main module's go.mod file. This change also reduces reliance on global state, factors out the loading process into several smaller functions, and sets us up to reuse the 'go mod vendor' version of the 'all' pattern for lazy loading. For #36460 Fixes #40799 Change-Id: I5ca21c86a860daee1316f732cea131a331d8ddf9 Reviewed-on: https://go-review.googlesource.com/c/go/+/240505 Run-TryBot: Bryan C. Mills <[email protected]> TryBot-Result: Gobot Gobot <[email protected]> Reviewed-by: Jay Conrod <[email protected]> Reviewed-by: Michael Matloob <[email protected]>
1 parent 2556eb7 commit b96d32b

File tree

2 files changed

+525
-206
lines changed

2 files changed

+525
-206
lines changed

0 commit comments

Comments
 (0)