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