env GO111MODULE=on # 'go list all' should fail with a reasonable error message ! go list all stderr '^package m\n\timports m/a from m.go\n\timports m/b from a.go\n\timports m/a from b.go: import cycle not allowed' # 'go list -e' should not print to stderr, but should mark all three # packages (m, m/a, and m/b) as Incomplete. go list -e -json all ! stderr . stdout -count=3 '"Incomplete": true,' -- go.mod -- module m require ( m/a v0.0.0 m/b v0.0.0 ) replace ( m/a => ./a m/b => ./b ) -- m.go -- package m import ( _ "m/a" _ "m/b" ) -- a/go.mod -- module m/a -- a/a.go -- package a import _ "m/b" -- b/go.mod -- module m/b -- b/b.go -- package b import _ "m/a"