blob: 981d6f08a9a0e1887fd03725aaf5b44db4ce310e [file] [log] [blame]
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"