]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: PackageVetx in vet.cfg should list only immediate dependencies.
authorFedor Korotkiy <dartslon@gmail.com>
Thu, 28 Feb 2019 12:35:30 +0000 (15:35 +0300)
committerBryan C. Mills <bcmills@google.com>
Tue, 16 Apr 2019 16:05:30 +0000 (16:05 +0000)
Updates #30296

Change-Id: Ifea1a4c82c1c5b31fdc2e96fdbb1274748c8f50e
Reviewed-on: https://go-review.googlesource.com/c/go/+/164459
Reviewed-by: Bryan C. Mills <bcmills@google.com>
src/cmd/go/internal/work/action.go
src/cmd/go/testdata/script/vet_deps.txt [new file with mode: 0644]

index 052811d34a1c677d16a5947880895d5d2546be35..0232c45ebe0c1517b45bc1d448efdcc2f7c6065c 100644 (file)
@@ -423,7 +423,7 @@ func (b *Builder) vetAction(mode, depMode BuildMode, p *load.Package) *Action {
                } else {
                        deps = []*Action{a1, aFmt}
                }
-               for _, p1 := range load.PackageList(p.Internal.Imports) {
+               for _, p1 := range p.Internal.Imports {
                        deps = append(deps, b.vetAction(mode, depMode, p1))
                }
 
diff --git a/src/cmd/go/testdata/script/vet_deps.txt b/src/cmd/go/testdata/script/vet_deps.txt
new file mode 100644 (file)
index 0000000..b2a8f16
--- /dev/null
@@ -0,0 +1,34 @@
+env GO111MODULE=off
+
+# Issue 30296. Verify that "go vet" uses only immediate dependencies.
+
+# First run fills the cache.
+go vet a
+
+go vet -x a
+! stderr 'transitive'
+
+-- a/a.go --
+package a
+
+import "b"
+
+func F() {
+       b.F()
+}
+
+-- b/b.go --
+package b
+
+import "transitive"
+
+func F() {
+       transitive.F()
+}
+
+-- transitive/c.go --
+package transitive
+
+func F() {
+}
+