From 6aabc1ca790df3e0b556593b27bc25d26b151751 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 22 Mar 2019 07:22:32 -0700 Subject: [PATCH] go/analysis/passes/tests: don't warn about missing method for each type MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Only warn if the method is missing for all types. Fixes golang/go#30971 Change-Id: I94169ad3266f68ca20378a8dc5538aed2541a773 Reviewed-on: https://go-review.googlesource.com/c/tools/+/168803 Run-TryBot: Ian Lance Taylor Reviewed-by: Daniel Martí TryBot-Result: Gobot Gobot --- go/analysis/passes/tests/testdata/src/b_x_test/b_test.go | 6 +++++- go/analysis/passes/tests/tests.go | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/go/analysis/passes/tests/testdata/src/b_x_test/b_test.go b/go/analysis/passes/tests/testdata/src/b_x_test/b_test.go index 6779195c..2fac000d 100644 --- a/go/analysis/passes/tests/testdata/src/b_x_test/b_test.go +++ b/go/analysis/passes/tests/testdata/src/b_x_test/b_test.go @@ -1,10 +1,14 @@ package b_x_test -import "b" +import ( + "a" + "b" +) func ExampleFoo_F() { var x b.Foo x.F() + a.Foo() } func ExampleFoo_G() { // want "ExampleFoo_G refers to unknown field or method: Foo.G" diff --git a/go/analysis/passes/tests/tests.go b/go/analysis/passes/tests/tests.go index 6b1e9f8d..9202b35f 100644 --- a/go/analysis/passes/tests/tests.go +++ b/go/analysis/passes/tests/tests.go @@ -153,9 +153,9 @@ func checkExample(pass *analysis.Pass, fn *ast.FuncDecl) { if obj, _, _ := types.LookupFieldOrMethod(obj.Type(), true, obj.Pkg(), mmbr); obj != nil { found = true } - if !found { - pass.Reportf(fn.Pos(), "%s refers to unknown field or method: %s.%s", fnName, ident, mmbr) - } + } + if !found { + pass.Reportf(fn.Pos(), "%s refers to unknown field or method: %s.%s", fnName, ident, mmbr) } } if len(elems) == 3 && !isExampleSuffix(elems[2]) {