# This is a test that if one of the main modules replaces the other # the vendor consistency checks still pass. The replacement is ignored # because it is of a main module, but it is still recorded in # vendor/modules.txt. go work vendor go list all # make sure the consistency checks pass ! stderr . # Removing the replace causes consistency checks to fail cp a_go_mod_no_replace a/go.mod ! go list all # consistency checks fail stderr 'example.com/b@v0.0.0: is marked as replaced in vendor/modules.txt, but not replaced in the workspace' -- a_go_mod_no_replace -- module example.com/a go 1.21 require example.com/b v0.0.0 -- go.work -- go 1.21 use ( a b ) -- a/go.mod -- module example.com/a go 1.21 require example.com/b v0.0.0 replace example.com/b => ../b -- a/a.go -- package a import _ "example.com/b" -- b/go.mod -- module example.com/b go 1.21 -- b/b.go -- package b