diff --git a/gopls/internal/golang/inlay_hint.go b/gopls/internal/golang/inlay_hint.go index 245a9822b08..60830c51997 100644 --- a/gopls/internal/golang/inlay_hint.go +++ b/gopls/internal/golang/inlay_hint.go @@ -139,7 +139,11 @@ func parameterNames(node ast.Node, m *protocol.Mapper, tf *token.File, info *typ if !ok { return nil } - signature, ok := typeparams.CoreType(info.TypeOf(callExpr.Fun)).(*types.Signature) + t := info.TypeOf(callExpr.Fun) + if t == nil { + return nil + } + signature, ok := typeparams.CoreType(t).(*types.Signature) if !ok { return nil } diff --git a/gopls/internal/test/marker/testdata/inlayhints/issue67142.txt b/gopls/internal/test/marker/testdata/inlayhints/issue67142.txt new file mode 100644 index 00000000000..18e98e81acb --- /dev/null +++ b/gopls/internal/test/marker/testdata/inlayhints/issue67142.txt @@ -0,0 +1,36 @@ +Regression test for golang/go#67142. + +-- flags -- +-ignore_extra_diags +-min_go=go1.21 + +-- settings.json -- +{ + "hints": { + "assignVariableTypes": true, + "compositeLiteralFields": true, + "compositeLiteralTypes": true, + "constantValues": true, + "functionTypeParameters": true, + "parameterNames": true, + "rangeVariabletypes": true + } +} + +-- go.mod -- +module w + +go 1.21.9 + +-- p.go -- +//@inlayhints(out) +package p + +var _ = rand.Float64() + +-- @out -- +//@inlayhints(out) +package p + +var _ = rand.Float64() +