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 <josharian@gmail.com>
Reviewed-by: Rob Pike <r@golang.org>
This commit is contained in:
Ian Lance Taylor 2017-08-02 12:06:58 -07:00
parent a8730cd93a
commit 664cd26c89
3 changed files with 28 additions and 2 deletions

View File

@ -349,8 +349,9 @@ func doPackage(directory string, names []string, basePkg *Package) *Package {
pkg.files = files pkg.files = files
// Type check the package. // Type check the package.
err := pkg.check(fs, astFiles) err := pkg.check(fs, astFiles)
if err != nil && *verbose { if err != nil {
warnf("%s", err) // Note that we only report this error when *verbose.
Println(err)
} }
// Check. // Check.

13
src/cmd/vet/testdata/cgo/cgo3.go vendored Normal file
View File

@ -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() {
}

View File

@ -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)
}
}