diff --git a/cmd/guru/describe.go b/cmd/guru/describe.go index f903f166..caf46164 100644 --- a/cmd/guru/describe.go +++ b/cmd/guru/describe.go @@ -324,6 +324,9 @@ func describeValue(qpos *queryPos, path []ast.Node) (*describeValueResult, error } t := qpos.info.TypeOf(expr) + if t == nil { + t = types.Typ[types.Invalid] + } constVal := qpos.info.Types[expr].Value return &describeValueResult{ diff --git a/cmd/guru/testdata/src/describe/main.go b/cmd/guru/testdata/src/describe/main.go index 4677d80b..d519db17 100644 --- a/cmd/guru/testdata/src/describe/main.go +++ b/cmd/guru/testdata/src/describe/main.go @@ -86,6 +86,8 @@ func main() { // @describe func-def-main "main" var _ int // @describe var-def-blank "_" var _ lib.Outer // @describe lib-outer "Outer" + + unknown() // @describe call-unknown "\\(" } type I interface { // @describe def-iface-I "I" diff --git a/cmd/guru/testdata/src/describe/main.golden b/cmd/guru/testdata/src/describe/main.golden index 925c980e..f7ffdcbb 100644 --- a/cmd/guru/testdata/src/describe/main.golden +++ b/cmd/guru/testdata/src/describe/main.golden @@ -197,6 +197,9 @@ Fields: inner.C bool inner.recursive.E bool +-------- @describe call-unknown -------- +function call (or conversion) of type invalid type + -------- @describe def-iface-I -------- definition of type I (size 16, align 8) Method set: