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