From 1eed2a5ab299807341af05eca2a829d95f08c6e8 Mon Sep 17 00:00:00 2001 From: Fedor Korotkiy Date: Thu, 28 Feb 2019 15:35:30 +0300 Subject: [PATCH] cmd/go: PackageVetx in vet.cfg should list only immediate dependencies. Updates #30296 Change-Id: Ifea1a4c82c1c5b31fdc2e96fdbb1274748c8f50e Reviewed-on: https://go-review.googlesource.com/c/go/+/164459 Reviewed-by: Bryan C. Mills --- src/cmd/go/internal/work/action.go | 2 +- src/cmd/go/testdata/script/vet_deps.txt | 34 +++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 src/cmd/go/testdata/script/vet_deps.txt diff --git a/src/cmd/go/internal/work/action.go b/src/cmd/go/internal/work/action.go index 052811d34a..0232c45ebe 100644 --- a/src/cmd/go/internal/work/action.go +++ b/src/cmd/go/internal/work/action.go @@ -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 index 0000000000..b2a8f168b3 --- /dev/null +++ b/src/cmd/go/testdata/script/vet_deps.txt @@ -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() { +} + -- 2.50.0