| cp go.mod go.mod.orig |
| |
| |
| # 'go get' should fail, without updating go.mod, if the transitive dependencies |
| # of the requested package (by default, the package in the current directory) |
| # cannot be resolved. |
| |
| ! go get |
| stderr '^go: example.com/m imports\n\texample.com/badimport imports\n\texample.net/oops: cannot find module providing package example.net/oops$' |
| cmp go.mod.orig go.mod |
| |
| cd importsyntax |
| |
| |
| # A syntax error in a dependency prevents the compiler from needing that |
| # dependency's imports, so 'go get' should not report an error when those |
| # imports cannot be resolved: it has all of the dependencies that the compiler |
| # needs, and the user did not request to run the compiler. |
| |
| go get |
| cmp ../go.mod.syntax-d ../go.mod |
| |
| |
| -- go.mod -- |
| module example.com/m |
| |
| go 1.16 |
| |
| replace example.com/badimport v0.1.0 => ./badimport |
| -- go.mod.syntax-d -- |
| module example.com/m |
| |
| go 1.16 |
| |
| replace example.com/badimport v0.1.0 => ./badimport |
| |
| require example.com/badimport v0.1.0 |
| -- m.go -- |
| package m |
| |
| import _ "example.com/badimport" |
| -- importsyntax/importsyntax.go -- |
| package importsyntax |
| |
| import _ "example.com/badimport/syntaxerror" |
| -- badimport/go.mod -- |
| module example.com/badimport |
| |
| go 1.16 |
| -- badimport/badimport.go -- |
| package badimport |
| |
| import "example.net/oops" |
| -- badimport/syntaxerror/syntaxerror.go -- |
| pack-age syntaxerror // sic |
| |
| import "example.net/oops" |