This test verifies the fix for the crash encountered in golang/go#44806.

-- go.mod --
module mod.test/symbol

go 1.18
-- symbol.go --
package symbol

//@workspacesymbol("m", m)

type T struct{}

// We should accept all valid receiver syntax when scanning symbols.
func (*(T)) m1() {}
func (*T) m2()   {}
func (T) m3()    {}
func ((T)) m4()    {}
func ((*T)) m5()   {}

-- @m --
symbol.go:8:13-15 T.m1 Method
symbol.go:9:11-13 T.m2 Method
symbol.go:10:10-12 T.m3 Method
symbol.go:11:12-14 T.m4 Method
symbol.go:12:13-15 T.m5 Method
symbol.go:5:6-7 symbol.T Struct
