From fddb0d54e992eac271a4e852def1c5091c9ad1fb Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 18 Jan 2022 13:51:12 -0500 Subject: internal/lsp/analysis/noresultvalues: update for CL 379116 error message change CL 379116 changes the format of the error this checker is looking for. Update it to handle both the old and new form. Change-Id: I91668e4fcbe203a9028d07b780fd17e9758fc838 Reviewed-on: https://go-review.googlesource.com/c/tools/+/379174 Trust: Russ Cox Run-TryBot: Russ Cox gopls-CI: kokoro Reviewed-by: Robert Findley TryBot-Result: Gopher Robot --- internal/lsp/analysis/noresultvalues/noresultvalues.go | 9 ++++++--- internal/lsp/analysis/noresultvalues/testdata/src/a/a.go | 4 ++-- internal/lsp/analysis/noresultvalues/testdata/src/a/a.go.golden | 4 ++-- .../lsp/analysis/noresultvalues/testdata/src/typeparams/a.go | 2 +- .../analysis/noresultvalues/testdata/src/typeparams/a.go.golden | 2 +- 5 files changed, 12 insertions(+), 9 deletions(-) (limited to 'internal/lsp/analysis/noresultvalues') diff --git a/internal/lsp/analysis/noresultvalues/noresultvalues.go b/internal/lsp/analysis/noresultvalues/noresultvalues.go index 0e6b26f8b..b9f21f313 100644 --- a/internal/lsp/analysis/noresultvalues/noresultvalues.go +++ b/internal/lsp/analysis/noresultvalues/noresultvalues.go @@ -10,6 +10,7 @@ import ( "bytes" "go/ast" "go/format" + "strings" "golang.org/x/tools/go/analysis" "golang.org/x/tools/go/analysis/passes/inspect" @@ -17,10 +18,11 @@ import ( "golang.org/x/tools/internal/analysisinternal" ) -const Doc = `suggested fixes for "no result values expected" +const Doc = `suggested fixes for unexpected return values This checker provides suggested fixes for type errors of the -type "no result values expected". For example: +type "no result values expected" or "too many return values". +For example: func z() { return nil } will turn into func z() { return } @@ -83,5 +85,6 @@ func run(pass *analysis.Pass) (interface{}, error) { } func FixesError(msg string) bool { - return msg == "no result values expected" + return msg == "no result values expected" || + strings.HasPrefix(msg, "too many return values") && strings.Contains(msg, "want ()") } diff --git a/internal/lsp/analysis/noresultvalues/testdata/src/a/a.go b/internal/lsp/analysis/noresultvalues/testdata/src/a/a.go index 30265a42f..3daa7f7c7 100644 --- a/internal/lsp/analysis/noresultvalues/testdata/src/a/a.go +++ b/internal/lsp/analysis/noresultvalues/testdata/src/a/a.go @@ -4,6 +4,6 @@ package noresultvalues -func x() { return nil } // want "no result values expected" +func x() { return nil } // want `no result values expected|too many return values` -func y() { return nil, "hello" } // want "no result values expected" +func y() { return nil, "hello" } // want `no result values expected|too many return values` diff --git a/internal/lsp/analysis/noresultvalues/testdata/src/a/a.go.golden b/internal/lsp/analysis/noresultvalues/testdata/src/a/a.go.golden index 6b29cefa3..5e93aa413 100644 --- a/internal/lsp/analysis/noresultvalues/testdata/src/a/a.go.golden +++ b/internal/lsp/analysis/noresultvalues/testdata/src/a/a.go.golden @@ -4,6 +4,6 @@ package noresultvalues -func x() { return } // want "no result values expected" +func x() { return } // want `no result values expected|too many return values` -func y() { return } // want "no result values expected" +func y() { return } // want `no result values expected|too many return values` diff --git a/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/a.go b/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/a.go index d1b298010..f8aa43665 100644 --- a/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/a.go +++ b/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/a.go @@ -2,5 +2,5 @@ package noresult func hello[T any]() { var z T - return z // want "no result values expected" + return z // want `no result values expected|too many return values` } diff --git a/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/a.go.golden b/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/a.go.golden index c5f56a927..963e3f4e1 100644 --- a/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/a.go.golden +++ b/internal/lsp/analysis/noresultvalues/testdata/src/typeparams/a.go.golden @@ -2,5 +2,5 @@ package noresult func hello[T any]() { var z T - return // want "no result values expected" + return // want `no result values expected|too many return values` } -- cgit v1.2.3