]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/cmd/go/internal/modcmd/edit.go
cmd/go: handle '@' in local path when running 'go mod edit -replace'
[gostls13.git] / src / cmd / go / internal / modcmd / edit.go
index 96bd608c01cdf87f0edb1920e5536b20039ebd59..db131b088143bf1cae48723a0b4d75fd27da8adc 100644 (file)
@@ -315,6 +315,9 @@ func parsePath(flag, arg string) (path string) {
 // parsePathVersionOptional parses path[@version], using adj to
 // describe any errors.
 func parsePathVersionOptional(adj, arg string, allowDirPath bool) (path, version string, err error) {
+       if allowDirPath && modfile.IsDirectoryPath(arg) {
+               return arg, "", nil
+       }
        before, after, found := strings.Cut(arg, "@")
        if !found {
                path = arg
@@ -322,9 +325,7 @@ func parsePathVersionOptional(adj, arg string, allowDirPath bool) (path, version
                path, version = strings.TrimSpace(before), strings.TrimSpace(after)
        }
        if err := module.CheckImportPath(path); err != nil {
-               if !allowDirPath || !modfile.IsDirectoryPath(path) {
-                       return path, version, fmt.Errorf("invalid %s path: %v", adj, err)
-               }
+               return path, version, fmt.Errorf("invalid %s path: %v", adj, err)
        }
        if path != arg && !allowedVersionArg(version) {
                return path, version, fmt.Errorf("invalid %s version: %q", adj, version)