internal/memoize: show key type in panics
gopls uses a lot of keys that are just strings, which print without any
type information. Include the type of the key explicitly.
Updates golang/go#41415.
Change-Id: I01cfc685184e7b44c1f562b6536f173da5ae4830
Reviewed-on: https://go-review.googlesource.com/c/tools/+/255357
Trust: Heschi Kreinick <heschi@google.com>
Reviewed-by: Robert Findley <rfindley@google.com>
diff --git a/internal/memoize/memoize.go b/internal/memoize/memoize.go
index c10dc8e..3c7d3c1 100644
--- a/internal/memoize/memoize.go
+++ b/internal/memoize/memoize.go
@@ -228,7 +228,7 @@
h.mu.Lock()
defer h.mu.Unlock()
if h.state == stateDestroyed {
- panic(fmt.Sprintf("inheriting destroyed handle %#v into generation %v", h.key, g.name))
+ panic(fmt.Sprintf("inheriting destroyed handle %#v (type %T) into generation %v", h.key, h.key, g.name))
}
h.generations[g] = struct{}{}
}
@@ -280,7 +280,7 @@
return h.value, nil
case stateDestroyed:
h.mu.Unlock()
- err := fmt.Errorf("Get on destroyed entry %#v in generation %v", h.key, g.name)
+ err := fmt.Errorf("Get on destroyed entry %#v (type %T) in generation %v", h.key, h.key, g.name)
if *panicOnDestroyed {
panic(err)
}