[short] skip

env GO111MODULE=on

# 'go get' outside a module prints an error.
! go get example.com/cmd/a
stderr '^go: go.mod file not found in current directory or any parent directory.$'
stderr '^\t''go get'' is no longer supported outside a module.$'

cp go.mod.orig go.mod

# 'go get' inside a module with a non-main package does not print a message.
# This will stop building in the future, but it's the command we want to use.
go get rsc.io/quote
! stderr deprecated
! stderr 'no longer installs'
cp go.mod.orig go.mod

# 'go get' inside a module with an executable does not print a message.
# In 1.16 and 1.17, 'go get' did print a message in this case suggesting the
# use of -d. In 1.18, -d is a no-op, and we'd like to begin discouraging
# its use.
go get example.com/cmd/a
! stderr deprecated
! stderr 'no longer installs'
cp go.mod.orig go.mod

# 'go get' should not print a warning for a main package inside the main module.
# The intent is most likely to update the dependencies of that package.
# 'go install' would be used otherwise.
go get m
! stderr .
cp go.mod.orig go.mod

-- go.mod.orig --
module m

go 1.17
-- main.go --
package main

func main() {}
