Skip to content

x/tools/gopls: types.Func.typ=nil panic in missingMethod with gopls@master built with go@master #59848

@timothy-king

Description

@timothy-king

gopls version: v0.0.0-20230404161500-4d205d81b5a0 (devel go1.21-ac571a388dc Mon Apr 3 20:17:02 2023 0000)
gopls flags:
update flags: proxy
extension version: 0.38.0
go version: devel 1.21-ac571a388dc
environment: Visual Studio Code darwin
initialization error: undefined
issue timestamp: Thu, 20 Apr 2023 19:39:00 GMT
restart history:
Wed, 19 Apr 2023 21:24:47 GMT: activation (enabled: true)

ATTENTION: PLEASE PROVIDE THE DETAILS REQUESTED BELOW.

Describe what you observed.

panic: interface conversion: types.Type is nil, not *types.Signature

goroutine 2426 [running]:
go/types.(*Checker).handleBailout(0xc0030341e0, 0xc002ded5c8)
	  check.go:299  0x88
panic({0x100983da0%3F, 0xc00336b020%3F})
	  panic.go:913  0x21f
go/types.(*Checker).funcString(0xc0030341e0, 0xc0010e8cc0, 0x0)
	  lookup.go:483  0x1df
go/types.(*Checker).missingMethod(0xc0030341e0, {0x100d03458%3F, 0xc003ad0ec0}, {0x100d03430, 0xc000706cb0}, 0x1, 0x100bf7d00, 0xc00303dfa0)
	  lookup.go:432  0x46b
go/types.(*Checker).implements(0xc0030341e0, {0x100d03458%3F, 0xc003ad0ec0}, {0x100d03430%3F, 0xc000706cb0}, 0x0, 0xc00303dfa0)
	  instantiate.go:246  0x55d
go/types.(*operand).assignableTo(0xc0027d3a00, 0xc0030341e0, {0x100d03430%3F, 0xc000706cb0%3F}, 0xc002debfa0)
	  operand.go:285  0x89c
go/types.(*Checker).assignment(0xc0030341e0, 0xc0027d3a00, {0x100d03430, 0xc000706cb0}, {0x100aab8c9, 0x16})
	  assignments.go:89  0x7cc
go/types.(*Checker).indexedElts(0x100d034a8%3F, {0xc003ad07a0, 0x1, 0xc002dec488%3F}, {0x100d03430, 0xc000706cb0}, 0xffffffffffffffff)
	  index.go:453  0x14d
go/types.(*Checker).exprInternal(0xc0030341e0, {0x0%3F, 0x0%3F}, 0xc0027d3800, {0x100d059a0, 0xc0027d2180%3F}, {0x0%3F, 0x0%3F})
	  expr.go:1520  0xacd
go/types.(*Checker).rawExpr(0xc0030341e0, {0x0, 0x0}, 0xc0027d3800, {0x100d059a0%3F, 0xc0027d2180%3F}, {0x0%3F, 0x0%3F}, 0x0)
	  expr.go:1254  0x1ac
go/types.(*Checker).expr(0xc0030341e0%3F, {0x0%3F, 0x0%3F}, 0xc00256b800%3F, {0x100d059a0%3F, 0xc0027d2180%3F})
	  expr.go:1787  0x45
go/types.(*Checker).exprInternal(0xc0030341e0, {0x0%3F, 0x0%3F}, 0xc0027d3800, {0x100d059a0, 0xc0027d2200%3F}, {0x0%3F, 0x0%3F})
	  expr.go:1435  0x2459
go/types.(*Checker).rawExpr(0xc0030341e0, {0x0, 0x0}, 0xc0027d3800, {0x100d059a0%3F, 0xc0027d2200%3F}, {0x0%3F, 0x0%3F}, 0x0)
	  expr.go:1254  0x1ac
go/types.(*Checker).expr(0x20%3F, {0x0%3F, 0x0%3F}, 0x129295c88%3F, {0x100d059a0%3F, 0xc0027d2200%3F})
	  expr.go:1787  0x45
go/types.(*Checker).unary(0xc0030341e0, 0xc0027d3800, 0xc002a187c0)
	  expr.go:163  0x45
go/types.(*Checker).exprInternal(0xc0030341e0, {0x0, 0x0}, 0xc0027d3800, {0x100d06030, 0xc002a187c0%3F}, {0x0%3F, 0x0%3F})
	  expr.go:1680  0x1605
go/types.(*Checker).rawExpr(0xc0030341e0, {0x0, 0x0}, 0xc0027d3800, {0x100d06030%3F, 0xc002a187c0%3F}, {0x0%3F, 0x0%3F}, 0x0)
	  expr.go:1254  0x1ac
go/types.(*Checker).expr(0x10000700b%3F, {0x0%3F, 0x0%3F}, 0x0%3F, {0x100d06030%3F, 0xc002a187c0%3F})
	  expr.go:1787  0x45
go/types.(*Checker).varDecl(0x10096d220%3F, 0xc0010e8a20, {0xc00086e758%3F, 0x1, 0x1}, {0x0, 0x0}, {0x100d06030, 0xc002a187c0})
	  decl.go:513  0x16c
go/types.(*Checker).objDecl(0xc0030341e0, {0x100d10198, 0xc0010e8a20}, 0x1%3F)
	  decl.go:194  0x95e
go/types.(*Checker).packageObjects(0xc0030341e0)
	  resolver.go:662  0x465
go/types.(*Checker).checkFiles(0xc0030341e0, {0xc002a19d00, 0x3, 0x4})
	  check.go:329  0x149
go/types.(*Checker).Files(...)
	  check.go:304
golang.org/x/tools/gopls/internal/lsp/cache.doTypeCheck({0x100d070a8, 0xc003539800}, 0xc0028c81e0, {{0xc00071a000, 0x3b}, {0xc00071a000, 0x3b}, {0xc000bfdec0, 0xc}, {0xc00375d2f0, ...}, ...})
	  check.go:1101  0x745
golang.org/x/tools/gopls/internal/lsp/cache.typeCheckImpl({0x100d070a8, 0xc003539650}, 0x1000100ad%3F, {{0xc00071a000, 0x3b}, {0xc00071a000, 0x3b}, {0xc000bfdec0, 0xc}, {0xc00375d2f0, ...}, ...})
	  check.go:968  0x205
golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).checkPackage(0xc002deded8%3F, {0x100d070a8, 0xc0028d2300}, 0xc0034c5420)
	  check.go:648  0x225
golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).handleSyntaxPackage(0xc0028c81e0, {0x100d070a8, 0xc0028d2300}, 0xc000cbb3e0%3F, {0xc00071a000, 0x3b})
	  check.go:532  0x425
golang.org/x/tools/gopls/internal/lsp/cache.(*snapshot).forEachPackageInternal.func2()
	  check.go:407  0x2b
golang.org/x/sync/errgroup.(*Group).Go.func1()
	  errgroup.go:75  0x5b
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1998
	  errgroup.go:72  0x96
[Error - 12:38:45 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

Labels

FrozenDueToAgeNeedsFixThe path to resolution is known, but the work has not been done.goplsIssues related to the Go language server, gopls.release-blocker

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions