| # Regression test for https://golang.org/issue/37438. |
| # |
| # If a path exists at the requested version, but does not exist at the |
| # version of the module that is already required and does not exist at |
| # the version that would be selected by 'go mod tidy', then |
| # 'go get foo@requested' should resolve the requested version, |
| # not error out on the (unrelated) latest one. |
| |
| go get -d example.net/a/p@v0.2.0 |
| |
| -- go.mod -- |
| module example |
| |
| go 1.15 |
| |
| require example.net/a v0.1.0 |
| |
| replace ( |
| example.net/a v0.1.0 => ./a1 |
| example.net/a v0.2.0 => ./a2 |
| example.net/a v0.3.0 => ./a1 |
| ) |
| |
| -- a1/go.mod -- |
| module example.net/a |
| |
| go 1.15 |
| -- a1/README -- |
| package example.net/a/p does not exist at this version. |
| |
| -- a2/go.mod -- |
| module example.net/a |
| |
| go 1.15 |
| -- a2/p/p.go -- |
| // Package p exists only at v0.2.0. |
| package p |