From 664cd26c89ec59cb6b686a9b3887ace7a76b0047 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 2 Aug 2017 12:06:58 -0700 Subject: [PATCH] cmd/vet: don't exit with failure on type checking error The vet tool only reports a type checking error when invoked with -v. Don't let that by itself cause vet to exit with an error exit status. Updates #21188 Change-Id: I172c13d46c35d49e229e96e833683d8c82a77de7 Reviewed-on: https://go-review.googlesource.com/52851 Reviewed-by: Josh Bleecher Snyder Reviewed-by: Rob Pike --- src/cmd/vet/main.go | 5 +++-- src/cmd/vet/testdata/cgo/cgo3.go | 13 +++++++++++++ src/cmd/vet/vet_test.go | 12 ++++++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 src/cmd/vet/testdata/cgo/cgo3.go diff --git a/src/cmd/vet/main.go b/src/cmd/vet/main.go index 77376c90ed..34c5297b89 100644 --- a/src/cmd/vet/main.go +++ b/src/cmd/vet/main.go @@ -349,8 +349,9 @@ func doPackage(directory string, names []string, basePkg *Package) *Package { pkg.files = files // Type check the package. err := pkg.check(fs, astFiles) - if err != nil && *verbose { - warnf("%s", err) + if err != nil { + // Note that we only report this error when *verbose. + Println(err) } // Check. diff --git a/src/cmd/vet/testdata/cgo/cgo3.go b/src/cmd/vet/testdata/cgo/cgo3.go new file mode 100644 index 0000000000..0b1518e1f9 --- /dev/null +++ b/src/cmd/vet/testdata/cgo/cgo3.go @@ -0,0 +1,13 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Used by TestVetVerbose to test that vet -v doesn't fail because it +// can't find "C". + +package testdata + +import "C" + +func F() { +} diff --git a/src/cmd/vet/vet_test.go b/src/cmd/vet/vet_test.go index b3d5c663a7..8db8ff4d20 100644 --- a/src/cmd/vet/vet_test.go +++ b/src/cmd/vet/vet_test.go @@ -205,3 +205,15 @@ func TestTags(t *testing.T) { }) } } + +// Issue #21188. +func TestVetVerbose(t *testing.T) { + t.Parallel() + Build(t) + cmd := exec.Command("./"+binary, "-v", "-all", "testdata/cgo/cgo3.go") + out, err := cmd.CombinedOutput() + if err != nil { + t.Logf("%s", out) + t.Error(err) + } +} -- 2.50.0