diff options
Diffstat (limited to 'src/cmd/go/internal/modload/load.go')
-rw-r--r-- | src/cmd/go/internal/modload/load.go | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/cmd/go/internal/modload/load.go b/src/cmd/go/internal/modload/load.go index e85a33dd50..7f1a88ffe7 100644 --- a/src/cmd/go/internal/modload/load.go +++ b/src/cmd/go/internal/modload/load.go @@ -605,11 +605,13 @@ func resolveLocalPackage(ctx context.Context, dir string, rs *Requirements) (str pkg := pathInModuleCache(ctx, absDir, rs) if pkg == "" { - scope := "main module or its selected dependencies" if inWorkspaceMode() { - scope = "modules listed in go.work or their selected dependencies" + if mr := findModuleRoot(absDir); mr != "" { + return "", fmt.Errorf("directory %s is contained in a module that is not one of the workspace modules listed in go.work. You can add the module to the workspace using go work use %s", base.ShortPath(absDir), base.ShortPath(mr)) + } + return "", fmt.Errorf("directory %s outside modules listed in go.work or their selected dependencies", base.ShortPath(absDir)) } - return "", fmt.Errorf("directory %s outside %s", base.ShortPath(absDir), scope) + return "", fmt.Errorf("directory %s outside main module or its selected dependencies", base.ShortPath(absDir)) } return pkg, nil } |