gopls/internal/analysis/fillswitch: use qualified type names The message is now of the form "Add cases for pkg.Type" when the type is imported from another package. Fixes golang/go#68225 Change-Id: I310f5354d2fb519c1e85d37b313594ccd50353f0 Reviewed-on: https://go-review.googlesource.com/c/tools/+/597275 Auto-Submit: Alan Donovan <adonovan@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Robert Findley <rfindley@google.com>
diff --git a/gopls/internal/analysis/fillswitch/fillswitch.go b/gopls/internal/analysis/fillswitch/fillswitch.go index 12f116e..7b1a7e8 100644 --- a/gopls/internal/analysis/fillswitch/fillswitch.go +++ b/gopls/internal/analysis/fillswitch/fillswitch.go
@@ -12,6 +12,7 @@ "go/types" "golang.org/x/tools/go/analysis" + "golang.org/x/tools/internal/typesinternal" ) // Diagnose computes diagnostics for switch statements with missing cases @@ -125,7 +126,7 @@ } return &analysis.SuggestedFix{ - Message: fmt.Sprintf("Add cases for %s", namedType.Obj().Name()), + Message: "Add cases for " + types.TypeString(namedType, typesinternal.NameRelativeTo(pkg)), TextEdits: []analysis.TextEdit{{ Pos: stmt.End() - token.Pos(len("}")), End: stmt.End() - token.Pos(len("}")), @@ -176,7 +177,7 @@ addDefaultCase(&buf, namedType, stmt.Tag) return &analysis.SuggestedFix{ - Message: fmt.Sprintf("Add cases for %s", namedType.Obj().Name()), + Message: "Add cases for " + types.TypeString(namedType, typesinternal.NameRelativeTo(pkg)), TextEdits: []analysis.TextEdit{{ Pos: stmt.End() - token.Pos(len("}")), End: stmt.End() - token.Pos(len("}")),
diff --git a/gopls/internal/analysis/fillswitch/testdata/src/a/a.go b/gopls/internal/analysis/fillswitch/testdata/src/a/a.go index 06d01da..6fa33ec 100644 --- a/gopls/internal/analysis/fillswitch/testdata/src/a/a.go +++ b/gopls/internal/analysis/fillswitch/testdata/src/a/a.go
@@ -4,9 +4,7 @@ package fillswitch -import ( - data "b" -) +import altb "b" type typeA int @@ -36,9 +34,9 @@ case typeAThree: } - var b data.TypeB - switch b { // want `Add cases for TypeB` - case data.TypeBOne: + var b altb.TypeB + switch b { // want `Add cases for b.TypeB` + case altb.TypeBOne: } }
diff --git a/gopls/internal/analysis/fillswitch/testdata/src/b/b.go b/gopls/internal/analysis/fillswitch/testdata/src/b/b.go index f65f3a7..6e40a81 100644 --- a/gopls/internal/analysis/fillswitch/testdata/src/b/b.go +++ b/gopls/internal/analysis/fillswitch/testdata/src/b/b.go
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -package fillswitch +package b type TypeB int