# If a patch of a module requires a higher version of itself,
# it should be reported as its own conflict.
#
# This case is weird and unlikely to occur often at all, but it should not
# spuriously succeed.
# (It used to print v0.1.1 but then silently upgrade to v0.2.0.)

! go get example.net/a@patch
stderr '^go get: example.net/a@patch \(v0.1.1\) requires example.net/a@v0.2.0, not example.net/a@patch \(v0.1.1\)$'  # TODO: A mention of b v0.1.0 would be nice.

-- go.mod --
module example

go 1.16

require example.net/a v0.1.0

replace (
	example.net/a v0.1.0 => ./a10
	example.net/a v0.1.1 => ./a11
	example.net/a v0.2.0 => ./a20
	example.net/b v0.1.0 => ./b10
)
-- example.go --
package example

import _ "example.net/a"

-- a10/go.mod --
module example.net/a

go 1.16
-- a10/a.go --
package a

-- a11/go.mod --
module example.net/a

go 1.16

require example.net/b v0.1.0
-- a11/a.go --
package a

import _ "example.net/b"

-- a20/go.mod --
module example.net/a

go 1.16
-- a20/a.go --
package a


-- b10/go.mod --
module example.net/b

go 1.16

require example.net/a v0.2.0
-- b10/b.go --
package b

import _ "example.net/a"
