]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: reject 'go list -m MOD@patch' when no existing version of MOD is required
authorBryan C. Mills <bcmills@google.com>
Thu, 4 Mar 2021 15:39:32 +0000 (10:39 -0500)
committerBryan C. Mills <bcmills@google.com>
Thu, 4 Mar 2021 16:33:06 +0000 (16:33 +0000)
Noticed while debugging failing tests for #36460.

Fixes #44788

Change-Id: Ic2cf511d871b29284f7372920f6f7d452825dd63
Reviewed-on: https://go-review.googlesource.com/c/go/+/298651
Trust: Bryan C. Mills <bcmills@google.com>
Run-TryBot: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Jay Conrod <jayconrod@google.com>
TryBot-Result: Go Bot <gobot@golang.org>

src/cmd/go/internal/modload/list.go
src/cmd/go/internal/modload/query.go
src/cmd/go/internal/modload/query_test.go
src/cmd/go/testdata/script/mod_prefer_compatible.txt

index de16c2f78677e11ea1c00ba07508fa72513e43b0..6dba6bea224ace9b58fd7090a0403017dc848a12 100644 (file)
@@ -78,7 +78,7 @@ func listModules(ctx context.Context, args []string, listVersions, listRetracted
                if i := strings.Index(arg, "@"); i >= 0 {
                        path := arg[:i]
                        vers := arg[i+1:]
-                       var current string
+                       current := "none"
                        for _, m := range buildList {
                                if m.Path == path {
                                        current = m.Version
index 8affd179bb2e9c0b1d51fec1b3b2bd80e2254017..a8012c792a9cc93f2722ec412d5c2449079968ff 100644 (file)
@@ -330,7 +330,7 @@ func newQueryMatcher(path string, query, current string, allowed AllowedFunc) (*
                }
 
        case query == "patch":
-               if current == "none" {
+               if current == "" || current == "none" {
                        return nil, &NoPatchBaseError{path}
                }
                if current == "" {
index e225a0e71e7eb2ec34b549cb9e37d7b1e9821c46..6e39df45a7effa02bc271f3ad07512d186dfad55 100644 (file)
@@ -122,7 +122,7 @@ var queryTests = []struct {
        {path: queryRepo, query: "upgrade", allow: "NOMATCH", err: `no matching versions for query "upgrade"`},
        {path: queryRepo, query: "upgrade", current: "v1.9.9", allow: "NOMATCH", err: `vcs-test.golang.org/git/querytest.git@v1.9.9: disallowed module version`},
        {path: queryRepo, query: "upgrade", current: "v1.99.99", err: `vcs-test.golang.org/git/querytest.git@v1.99.99: invalid version: unknown revision v1.99.99`},
-       {path: queryRepo, query: "patch", current: "", vers: "v1.9.9"},
+       {path: queryRepo, query: "patch", current: "", err: `can't query version "patch" of module vcs-test.golang.org/git/querytest.git: no existing version is required`},
        {path: queryRepo, query: "patch", current: "v0.1.0", vers: "v0.1.2"},
        {path: queryRepo, query: "patch", current: "v1.9.0", vers: "v1.9.9"},
        {path: queryRepo, query: "patch", current: "v1.9.10-pre1", vers: "v1.9.10-pre1"},
index aa6260f63c82ee1b7a8d0c7e3c1c1dd3ccaa4acd..1b408c3e9e925d02cf6ea590bc721fb4880b2f7a 100644 (file)
@@ -23,8 +23,8 @@ stdout '^github.com/russross/blackfriday v1\.'
 go list -m github.com/russross/blackfriday@upgrade
 stdout '^github.com/russross/blackfriday v1\.'
 
-go list -m github.com/russross/blackfriday@patch
-stdout '^github.com/russross/blackfriday v1\.'
+go list -m github.com/russross/blackfriday@patch
+stderr '^go list -m: github.com/russross/blackfriday@patch: can''t query version "patch" of module github.com/russross/blackfriday: no existing version is required$'
 
 # If we're fetching directly from version control, ignored +incompatible
 # versions should also be omitted by 'go list'.