# Ensure that replaces of the main module in workspace modules # are ignored, and replaces in the go.work file are disallowed. # This tests against an issue where requirements of the # main module were being ignored because the main module # was replaced in a transitive dependency with another # version. go list example.com/dep cp replace_main_module.go.work go.work ! go list example.com/dep stderr 'go: workspace module example.com/mainmoda is replaced at all versions in the go.work file. To fix, remove the replacement from the go.work file or specify the version at which to replace the module.' -- replace_main_module.go.work -- go 1.18 use ( ./mainmoda ./mainmodb ) replace example.com/mainmoda => ../mainmodareplacement -- go.work -- go 1.18 use ( ./mainmoda ./mainmodb ) -- mainmoda/go.mod -- module example.com/mainmoda go 1.18 require example.com/dep v1.0.0 replace example.com/dep => ../dep -- dep/go.mod -- module example.com/dep -- dep/dep.go -- package dep -- mainmodb/go.mod -- module example.com/mainmodb go 1.18 replace example.com/mainmoda => ../mainmodareplacement -- mainmodareplacement/go.mod -- module example.com/mainmoda go 1.18