# Test that "go list" succeeds when given a directory in a replacement
# module within the module cache.
# Verifies golang.org/issue/29548

# Populate go.sum and download dependencies.
go get

# Ensure v1.5.2 is also in the cache so we can list it.
go mod download rsc.io/quote@v1.5.2

! go list $GOPATH/pkg/mod/rsc.io/quote@v1.5.2
stderr '^directory ..[/\\]pkg[/\\]mod[/\\]rsc.io[/\\]quote@v1.5.2 outside main module or its selected dependencies$'

go list $GOPATH/pkg/mod/rsc.io/quote@v1.5.1
stdout 'rsc.io/quote'

-- go.mod --
module example.com/quoter

require rsc.io/quote v1.5.2

replace rsc.io/quote => rsc.io/quote v1.5.1

-- use.go --
package use

import _ "rsc.io/quote"
