# When we attempt to resolve an import that doesn't exist, we should not save
# hashes for downloaded modules.
# Verifies golang.org/issue/36260.
# TODO(golang.org/issue/26603): use 'go mod tidy -e' when implemented.
go list -e -mod=mod -tags=ignore ./noexist
! exists go.sum

# When an import is resolved successfully, we should only save hashes for
# the module that provides the package, not for other modules looked up.
# Verifies golang.org/issue/31580.
go get -d ./exist
grep '^example.com/join v1.1.0 h1:' go.sum
! grep '^example.com/join/subpkg' go.sum
cp go.sum go.list.sum
go mod tidy
cmp go.sum go.list.sum

-- go.mod --
module m

go 1.15

-- noexist/use.go --
// ignore tags prevents errors in 'go mod tidy'
// +build ignore

package use

import _ "example.com/join/subpkg/noexist"

-- exist/use.go --
package use

import _ "example.com/join/subpkg"
