Skip to content

x/tools/gopls: crash when renaming in a package using builtins with type parameters #52940

Closed
@dalianzhu

Description

@dalianzhu

gopls version: v0.8.3 (go1.18)
gopls flags:
update flags: proxy
extension version: 0.33.0
go version: 1.18
environment: Visual Studio Code linux
initialization error: undefined
issue timestamp: Tue, 17 May 2022 09:09:54 GMT
restart history:
Mon, 16 May 2022 05:09:54 GMT: activation (enabled: true)
Tue, 17 May 2022 08:52:58 GMT: manual (enabled: true)
Tue, 17 May 2022 09:03:47 GMT: manual (enabled: true)
Tue, 17 May 2022 09:09:14 GMT: manual (enabled: true)

ATTENTION: PLEASE PROVIDE THE DETAILS REQUESTED BELOW.

Describe what you observed.

panic: interface conversion: types.Type is *types.Interface, not *types.Slice

goroutine 28167 [running]:
golang.org/x/tools/refactor/satisfy.(*Finder).builtin(0xcea600%3F, 0xc0083cf440%3F, 0xc00a874ea0%3F, {0xc00a874f20%3F, 0x2, 0x2}, {0x1053748, 0xc021741380})
	  find.go:221  0x32f
golang.org/x/tools/refactor/satisfy.(*Finder).expr(0xc028780570, {0x1055968%3F, 0xc00b41cdc0%3F})
	  find.go:442  0xe72
golang.org/x/tools/refactor/satisfy.(*Finder).stmt(0xc028780570, {0x10557e8%3F, 0xc00b41ce00%3F})
	  find.go:522  0xd5b
golang.org/x/tools/refactor/satisfy.(*Finder).stmt(0xc028780570, {0x1055908%3F, 0xc00b21b2c0%3F})
	  find.go:572  0xbc5
golang.org/x/tools/refactor/satisfy.(*Finder).stmt(0xc028780570, {0x1055c98%3F, 0xc00b41cec0%3F})
	  find.go:580  0xafe
golang.org/x/tools/refactor/satisfy.(*Finder).stmt(0xc028780570, {0x1055908%3F, 0xc00b21b410%3F})
	  find.go:572  0xbc5
golang.org/x/tools/refactor/satisfy.(*Finder).stmt(0xc028780570, {0x1055e78%3F, 0xc00b12fa40%3F})
	  find.go:686  0x7f7
golang.org/x/tools/refactor/satisfy.(*Finder).stmt(0xc028780570, {0x1055908%3F, 0xc00b21b500%3F})
	  find.go:572  0xbc5
golang.org/x/tools/refactor/satisfy.(*Finder).Find(0xc028780570, 0xc0148581e0%3F, {0xc0228bdc00, 0x13, 0x1%3F})
	  find.go:111  0x1c5
golang.org/x/tools/internal/lsp/source.(*renamer).satisfy(0xc01ebd1ea0)
	  rename_check.go:800  0xdc
golang.org/x/tools/internal/lsp/source.(*renamer).checkMethod(0xc01ebd1ea0, 0xc02e2a2af0)
	  rename_check.go:718  0x2d4
golang.org/x/tools/internal/lsp/source.(*renamer).check(0xc01ebd1ea0, {0x105dbc8, 0xc02e2a2af0%3F})
	  rename_check.go:46  0x16b
golang.org/x/tools/internal/lsp/source.Rename({0x1057048%3F, 0xc018efe1c0%3F}, {0x105fb00, 0xc049e80ea0}, {0x1057390, 0xc0492c0420}, {0x49299638%3F, 0xc0%3F}, {0xc0278fa736, 0xa})
	  rename.go:148  0x945
golang.org/x/tools/internal/lsp.(*Server).rename(0xc96240%3F, {0x1057048, 0xc018efe1c0}, 0xc018fd6100)
	  rename.go:20  0x10d
golang.org/x/tools/internal/lsp.(*Server).Rename(0xc019b74000%3F, {0x1057048%3F, 0xc018efe1c0%3F}, 0xc96240%3F)
	  server_gen.go:224  0x25
golang.org/x/tools/internal/lsp/protocol.serverDispatch({0x1057048, 0xc018efe1c0}, {0x1063670, 0xc000494000}, 0xc028780000, {0x10572e8, 0xc018efe040})
	  tsserver.go:592  0xbba
golang.org/x/tools/internal/lsp/protocol.ServerHandler.func1({0x1057048, 0xc018efe1c0}, 0xc028780000, {0x10572e8, 0xc018efe040})
	  protocol.go:154  0x90
golang.org/x/tools/internal/lsp/lsprpc.handshaker.func1({0x1057048, 0xc018efe1c0}, 0xc028780000, {0x10572e8%3F, 0xc018efe040%3F})
	  lsprpc.go:512  0xa43
golang.org/x/tools/internal/jsonrpc2.MustReplyHandler.func1({0x1057048, 0xc018efe1c0}, 0xc02c686de0, {0x10572e8%3F, 0xc018efe040%3F})
	  handler.go:35  0xf6
golang.org/x/tools/internal/jsonrpc2.AsyncHandler.func1.2()
	  handler.go:103  0xa3
created by golang.org/x/tools/internal/jsonrpc2.AsyncHandler.func1
	  handler.go:100  0x20a
[Error - 5:09:36 PM] 

OPTIONAL: If you would like to share more information, you can attach your complete gopls logs.

NOTE: THESE MAY CONTAIN SENSITIVE INFORMATION ABOUT YOUR CODEBASE.
DO NOT SHARE LOGS IF YOU ARE WORKING IN A PRIVATE REPOSITORY.

<OPTIONAL: ATTACH LOGS HERE>

Metadata

Metadata

Assignees

Labels

FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.gopls/genericsIssues related to gopls' support for generics

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions