golang / vscode-go

Go extension for Visual Studio Code
https://marketplace.visualstudio.com/items?itemName=golang.Go
Other
3.86k stars 744 forks source link

gopls: type checker crash with v0.15.0+ #3219

Closed kikihakiem closed 7 months ago

kikihakiem commented 7 months ago

gopls version: v0.15.1/go1.21.0 gopls flags: update flags: proxy extension version: 0.41.1 environment: Visual Studio Code darwin initialization error: undefined issue timestamp: Sat, 02 Mar 2024 18:06:16 GMT restart history: Sat, 02 Mar 2024 18:06:08 GMT: activation (enabled: true)

ATTENTION: PLEASE PROVIDE THE DETAILS REQUESTED BELOW.

Describe what you observed.

gopls crashed a few seconds after opening a project with go.work in VS Code. No issue when I open a normal Go project (without go.work).

Please attach the stack trace from the crash. A window with the error message should have popped up in the lower half of your screen. Please copy the stack trace and error messages from that window and paste it in this issue.

Output/stacktrace ``` [Info - 1:06:08 AM] 2024/03/03 01:06:08 go info for /Users/backendengineer/workspace/reference/jetstream-transport (view type GoWorkView) (root dir /Users/backendengineer/workspace/reference/jetstream-transport) (go version go version go1.21.6 darwin/arm64) (build flags: [-tags=unit,integration]) (go env: {GOOS:darwin GOARCH:arm64 GOCACHE:/Users/backendengineer/Library/Caches/go-build GOMODCACHE:/Users/backendengineer/sdk/go1.21.6/pkg/mod GOPATH:/Users/backendengineer/sdk/go1.21.6 GOPRIVATE: GOFLAGS: GO111MODULE: GoVersion:21 GoVersionOutput:go version go1.21.6 darwin/arm64 GOWORK: GOPACKAGESDRIVER:}) (env overlay: map[]) [Info - 1:06:08 AM] 2024/03/03 01:06:08 go/packages.Load #1 snapshot=0 directory=file:///Users/backendengineer/workspace/reference/jetstream-transport query=[/Users/backendengineer/workspace/reference/jetstream-transport/core/... /Users/backendengineer/workspace/reference/jetstream-transport/example/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/http/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/jetstream/... builtin] packages=15 [Info - 1:06:08 AM] 2024/03/03 01:06:08 go/packages.Load #1: updating metadata for 245 packages panic: runtime error: index out of range [4] with length 4 [recovered] panic: runtime error: index out of range [4] with length 4 goroutine 2822 [running]: go/types.(*Checker).handleBailout(0x140022db680, 0x14005229838) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:336 +0x9c panic({0x1058241c0?, 0x1400451c708?}) /Users/backendengineer/sdk/go1.21.0/src/runtime/panic.go:914 +0x218 go/types.(*Checker).arguments(0x140022db680, 0x140050c0140, 0x14003580500, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0}, {0x140020b8cc0?, ...}, ...) /Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:648 +0x11ac go/types.(*Checker).callExpr(0x140022db680, 0x14000a8f400, 0x140050c0140) /Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:302 +0x6a4 go/types.(*Checker).exprInternal(0x140022db680, {0x0, 0x0}, 0x14000a8f400, {0x105889848, 0x140050c0140?}, {0x0?, 0x0?}) /Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1359 +0x12dc go/types.(*Checker).rawExpr(0x140022db680, {0x0, 0x0}, 0x14000a8f400, {0x105889848?, 0x140050c0140?}, {0x0?, 0x0?}, 0x0) /Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:965 +0x134 go/types.(*Checker).multiExpr(0x3?, {0x105889848?, 0x140050c0140}, 0x0) /Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1517 +0x68 go/types.(*Checker).initVars(0x105750ea0?, {0x1400433c710?, 0x1, 0x1}, {0x140050b6b50?, 0x1, 0x1}, {0x0, 0x0}) /Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:398 +0x100 go/types.(*Checker).shortVarDecl(0x140022db680, {0x105883b40, 0x1400451c6f0}, {0x140050b6840, 0x1, 0x140050a9dd0?}, {0x140050b6b50?, 0x1, 0x1}) /Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:546 +0x8ac go/types.(*Checker).stmt(0x140022db680, 0x0, {0x1058899f8?, 0x140050c0180?}) /Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:476 +0xb70 go/types.(*Checker).stmtList(0x14003d9e300?, 0x0, {0x14004ec0680?, 0x0?, 0x14003a8b5a8?}) /Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:124 +0x88 go/types.(*Checker).funcBody(0x140022db680, 0x14003d2e5a0, {0x140022dd800?, 0x1400007ec80?}, 0x140050f3ec0, 0x140050be300, {0x0, 0x0}) /Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:44 +0x244 go/types.(*Checker).funcDecl.func1() /Users/backendengineer/sdk/go1.21.0/src/go/types/decl.go:826 +0x44 go/types.(*Checker).processDelayed(0x140022db680, 0x0) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:439 +0x12c go/types.(*Checker).checkFiles(0x140022db680, {0x140050f48e0, 0x4, 0x4}) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:383 +0x1fc go/types.(*Checker).Files(...) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:341 golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).checkPackage(0x140034616e0, {0x10588b168, 0x140026b42a0}, 0x14002dde240) /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/gopls@v0.15.1/internal/cache/check.go:1522 +0x850 golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).handleSyntaxPackage(0x140034616e0, {0x10588b168?, 0x140026b42a0}, 0x1050fd930?, {0x14000846e40, 0x5f}) /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/gopls@v0.15.1/internal/cache/check.go:553 +0x55c golang.org/x/tools/gopls/internal/cache.(*Snapshot).forEachPackageInternal.func2() /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/gopls@v0.15.1/internal/cache/check.go:404 +0x34 golang.org/x/sync/errgroup.(*Group).Go.func1() /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/sync@v0.6.0/errgroup/errgroup.go:78 +0x58 created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 2487 /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/sync@v0.6.0/errgroup/errgroup.go:75 +0x98 [Info - 1:06:09 AM] true [Info - 1:06:09 AM] 2024/03/03 01:06:09 go info for /Users/backendengineer/workspace/reference/jetstream-transport (view type GoWorkView) (root dir /Users/backendengineer/workspace/reference/jetstream-transport) (go version go version go1.21.6 darwin/arm64) (build flags: [-tags=unit,integration]) (go env: {GOOS:darwin GOARCH:arm64 GOCACHE:/Users/backendengineer/Library/Caches/go-build GOMODCACHE:/Users/backendengineer/sdk/go1.21.6/pkg/mod GOPATH:/Users/backendengineer/sdk/go1.21.6 GOPRIVATE: GOFLAGS: GO111MODULE: GoVersion:21 GoVersionOutput:go version go1.21.6 darwin/arm64 GOWORK: GOPACKAGESDRIVER:}) (env overlay: map[]) [Info - 1:06:09 AM] 2024/03/03 01:06:09 go/packages.Load #1 snapshot=0 directory=file:///Users/backendengineer/workspace/reference/jetstream-transport query=[/Users/backendengineer/workspace/reference/jetstream-transport/core/... /Users/backendengineer/workspace/reference/jetstream-transport/example/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/http/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/jetstream/... builtin] packages=15 [Info - 1:06:09 AM] 2024/03/03 01:06:09 go/packages.Load #1: updating metadata for 245 packages [Error - 1:06:10 AM] Request textDocument/semanticTokens/range failed. Message: semantictokens are disabled Code: 0 panic: runtime error: index out of range [4] with length 4 [recovered] panic: runtime error: index out of range [4] with length 4 goroutine 2889 [running]: go/types.(*Checker).handleBailout(0x14001f0a1e0, 0x14002541838) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:336 +0x9c panic({0x1012801c0?, 0x14002ada000?}) /Users/backendengineer/sdk/go1.21.0/src/runtime/panic.go:914 +0x218 go/types.(*Checker).arguments(0x14001f0a1e0, 0x1400020e540, 0x140021a9780, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0}, {0x14002a9f230?, ...}, ...) /Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:648 +0x11ac go/types.(*Checker).callExpr(0x14001f0a1e0, 0x140021e4540, 0x1400020e540) /Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:302 +0x6a4 go/types.(*Checker).exprInternal(0x14001f0a1e0, {0x0, 0x0}, 0x140021e4540, {0x1012e5848, 0x1400020e540?}, {0x0?, 0x0?}) /Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1359 +0x12dc go/types.(*Checker).rawExpr(0x14001f0a1e0, {0x0, 0x0}, 0x140021e4540, {0x1012e5848?, 0x1400020e540?}, {0x0?, 0x0?}, 0x0) /Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:965 +0x134 go/types.(*Checker).multiExpr(0x3?, {0x1012e5848?, 0x1400020e540}, 0x0) /Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1517 +0x68 go/types.(*Checker).initVars(0x1011acea0?, {0x14002a9c2f0?, 0x1, 0x1}, {0x140005d40f0?, 0x1, 0x1}, {0x0, 0x0}) /Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:398 +0x100 go/types.(*Checker).shortVarDecl(0x14001f0a1e0, {0x1012dfb40, 0x14002ae5fe0}, {0x14002481d80, 0x1, 0x140023883f0?}, {0x140005d40f0?, 0x1, 0x1}) /Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:546 +0x8ac go/types.(*Checker).stmt(0x14001f0a1e0, 0x0, {0x1012e59f8?, 0x1400020e5c0?}) /Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:476 +0xb70 go/types.(*Checker).stmtList(0x140027fe240?, 0x0, {0x14004221900?, 0x0?, 0x140008c75a8?}) /Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:124 +0x88 go/types.(*Checker).funcBody(0x14001f0a1e0, 0x140028d09c0, {0x14002d103a8?, 0x1400007ec80?}, 0x140020f2e00, 0x14002388b10, {0x0, 0x0}) /Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:44 +0x244 go/types.(*Checker).funcDecl.func1() /Users/backendengineer/sdk/go1.21.0/src/go/types/decl.go:826 +0x44 go/types.(*Checker).processDelayed(0x14001f0a1e0, 0x0) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:439 +0x12c go/types.(*Checker).checkFiles(0x14001f0a1e0, {0x14001e44ee0, 0x4, 0x4}) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:383 +0x1fc go/types.(*Checker).Files(...) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:341 golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).checkPackage(0x1400235de00, {0x1012e7168, 0x140025219e0}, 0x140036730e0) /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/gopls@v0.15.1/internal/cache/check.go:1522 +0x850 golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).handleSyntaxPackage(0x1400235de00, {0x1012e7168?, 0x140025219e0}, 0x14000592b60?, {0x1400066e4e0, 0x5f}) /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/gopls@v0.15.1/internal/cache/check.go:553 +0x55c golang.org/x/tools/gopls/internal/cache.(*Snapshot).forEachPackageInternal.func2() /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/gopls@v0.15.1/internal/cache/check.go:404 +0x34 golang.org/x/sync/errgroup.(*Group).Go.func1() /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/sync@v0.6.0/errgroup/errgroup.go:78 +0x58 created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 2569 /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/sync@v0.6.0/errgroup/errgroup.go:75 +0x98 [Info - 1:06:11 AM] true [Info - 1:06:11 AM] 2024/03/03 01:06:11 go info for /Users/backendengineer/workspace/reference/jetstream-transport (view type GoWorkView) (root dir /Users/backendengineer/workspace/reference/jetstream-transport) (go version go version go1.21.6 darwin/arm64) (build flags: [-tags=unit,integration]) (go env: {GOOS:darwin GOARCH:arm64 GOCACHE:/Users/backendengineer/Library/Caches/go-build GOMODCACHE:/Users/backendengineer/sdk/go1.21.6/pkg/mod GOPATH:/Users/backendengineer/sdk/go1.21.6 GOPRIVATE: GOFLAGS: GO111MODULE: GoVersion:21 GoVersionOutput:go version go1.21.6 darwin/arm64 GOWORK: GOPACKAGESDRIVER:}) (env overlay: map[]) [Info - 1:06:11 AM] 2024/03/03 01:06:11 go/packages.Load #1 snapshot=0 directory=file:///Users/backendengineer/workspace/reference/jetstream-transport query=[/Users/backendengineer/workspace/reference/jetstream-transport/core/... /Users/backendengineer/workspace/reference/jetstream-transport/example/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/http/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/jetstream/... builtin] packages=15 [Info - 1:06:11 AM] 2024/03/03 01:06:11 go/packages.Load #1: updating metadata for 245 packages [Error - 1:06:11 AM] Request textDocument/semanticTokens/range failed. Message: semantictokens are disabled Code: 0 [Error - 1:06:11 AM] Request textDocument/semanticTokens/full failed. Message: semantictokens are disabled Code: 0 panic: runtime error: index out of range [4] with length 4 [recovered] panic: runtime error: index out of range [4] with length 4 goroutine 2800 [running]: go/types.(*Checker).handleBailout(0x14000144960, 0x1400424f838) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:336 +0x9c panic({0x1057d41c0?, 0x14003e7f3e0?}) /Users/backendengineer/sdk/go1.21.0/src/runtime/panic.go:914 +0x218 go/types.(*Checker).arguments(0x14000144960, 0x140020e0900, 0x1400216c780, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0}, {0x140043c6180?, ...}, ...) /Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:648 +0x11ac go/types.(*Checker).callExpr(0x14000144960, 0x14002173b40, 0x140020e0900) /Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:302 +0x6a4 go/types.(*Checker).exprInternal(0x14000144960, {0x0, 0x0}, 0x14002173b40, {0x105839848, 0x140020e0900?}, {0x0?, 0x0?}) /Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1359 +0x12dc go/types.(*Checker).rawExpr(0x14000144960, {0x0, 0x0}, 0x14002173b40, {0x105839848?, 0x140020e0900?}, {0x0?, 0x0?}, 0x0) /Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:965 +0x134 go/types.(*Checker).multiExpr(0x3?, {0x105839848?, 0x140020e0900}, 0x0) /Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1517 +0x68 go/types.(*Checker).initVars(0x105700ea0?, {0x140043a6570?, 0x1, 0x1}, {0x14003e6ab50?, 0x1, 0x1}, {0x0, 0x0}) /Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:398 +0x100 go/types.(*Checker).shortVarDecl(0x14000144960, {0x105833b40, 0x14003e7f3c8}, {0x14003e6a840, 0x1, 0x14003e636b0?}, {0x14003e6ab50?, 0x1, 0x1}) /Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:546 +0x8ac go/types.(*Checker).stmt(0x14000144960, 0x0, {0x1058399f8?, 0x140020e0940?}) /Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:476 +0xb70 go/types.(*Checker).stmtList(0x14002ca7a40?, 0x0, {0x14003e11280?, 0x0?, 0x14003e8b5a8?}) /Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:124 +0x88 go/types.(*Checker).funcBody(0x14000144960, 0x14002ca47e0, {0x1400301fdb8?, 0x14000118c30?}, 0x14002109840, 0x14003e63bc0, {0x0, 0x0}) /Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:44 +0x244 go/types.(*Checker).funcDecl.func1() /Users/backendengineer/sdk/go1.21.0/src/go/types/decl.go:826 +0x44 go/types.(*Checker).processDelayed(0x14000144960, 0x0) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:439 +0x12c go/types.(*Checker).checkFiles(0x14000144960, {0x1400421eac0, 0x4, 0x4}) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:383 +0x1fc go/types.(*Checker).Files(...) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:341 golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).checkPackage(0x14001f92300, {0x10583b168, 0x14002d44840}, 0x1400233d0e0) /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/gopls@v0.15.1/internal/cache/check.go:1522 +0x850 golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).handleSyntaxPackage(0x14001f92300, {0x10583b168?, 0x14002d44840}, 0x1050ad930?, {0x140006eb200, 0x5f}) /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/gopls@v0.15.1/internal/cache/check.go:553 +0x55c golang.org/x/tools/gopls/internal/cache.(*Snapshot).forEachPackageInternal.func2() /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/gopls@v0.15.1/internal/cache/check.go:404 +0x34 golang.org/x/sync/errgroup.(*Group).Go.func1() /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/sync@v0.6.0/errgroup/errgroup.go:78 +0x58 created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 2529 /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/sync@v0.6.0/errgroup/errgroup.go:75 +0x98 [Info - 1:06:12 AM] true [Info - 1:06:12 AM] 2024/03/03 01:06:12 go info for /Users/backendengineer/workspace/reference/jetstream-transport (view type GoWorkView) (root dir /Users/backendengineer/workspace/reference/jetstream-transport) (go version go version go1.21.6 darwin/arm64) (build flags: [-tags=unit,integration]) (go env: {GOOS:darwin GOARCH:arm64 GOCACHE:/Users/backendengineer/Library/Caches/go-build GOMODCACHE:/Users/backendengineer/sdk/go1.21.6/pkg/mod GOPATH:/Users/backendengineer/sdk/go1.21.6 GOPRIVATE: GOFLAGS: GO111MODULE: GoVersion:21 GoVersionOutput:go version go1.21.6 darwin/arm64 GOWORK: GOPACKAGESDRIVER:}) (env overlay: map[]) [Info - 1:06:12 AM] 2024/03/03 01:06:12 go/packages.Load #1 snapshot=0 directory=file:///Users/backendengineer/workspace/reference/jetstream-transport query=[/Users/backendengineer/workspace/reference/jetstream-transport/core/... /Users/backendengineer/workspace/reference/jetstream-transport/example/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/http/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/jetstream/... builtin] packages=15 [Info - 1:06:12 AM] 2024/03/03 01:06:12 go/packages.Load #1: updating metadata for 245 packages [Error - 1:06:12 AM] Request textDocument/semanticTokens/range failed. Message: semantictokens are disabled Code: 0 [Error - 1:06:12 AM] Request textDocument/semanticTokens/full failed. Message: semantictokens are disabled Code: 0 panic: runtime error: index out of range [4] with length 4 [recovered] panic: runtime error: index out of range [4] with length 4 goroutine 3483 [running]: go/types.(*Checker).handleBailout(0x140030b43c0, 0x1400516f838) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:336 +0x9c panic({0x101b841c0?, 0x14005172fc0?}) /Users/backendengineer/sdk/go1.21.0/src/runtime/panic.go:914 +0x218 go/types.(*Checker).arguments(0x140030b43c0, 0x1400206cec0, 0x1400214d340, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0}, {0x1400579b080?, ...}, ...) /Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:648 +0x11ac go/types.(*Checker).callExpr(0x140030b43c0, 0x14002166840, 0x1400206cec0) /Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:302 +0x6a4 go/types.(*Checker).exprInternal(0x140030b43c0, {0x0, 0x0}, 0x14002166840, {0x101be9848, 0x1400206cec0?}, {0x0?, 0x0?}) /Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1359 +0x12dc go/types.(*Checker).rawExpr(0x140030b43c0, {0x0, 0x0}, 0x14002166840, {0x101be9848?, 0x1400206cec0?}, {0x0?, 0x0?}, 0x0) /Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:965 +0x134 go/types.(*Checker).multiExpr(0x12928fa48?, {0x101be9848?, 0x1400206cec0}, 0x0) /Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1517 +0x68 go/types.(*Checker).initVars(0x101ab0ea0?, {0x14004e7d7f0?, 0x1, 0x1}, {0x14004140960?, 0x1, 0x1}, {0x0, 0x0}) /Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:398 +0x100 go/types.(*Checker).shortVarDecl(0x140030b43c0, {0x101be3b40, 0x14005172fa8}, {0x14004140650, 0x1, 0x1400413e690?}, {0x14004140960?, 0x1, 0x1}) /Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:546 +0x8ac go/types.(*Checker).stmt(0x140030b43c0, 0x0, {0x101be99f8?, 0x1400206cf00?}) /Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:476 +0xb70 go/types.(*Checker).stmtList(0x140051460c0?, 0x0, {0x14000398900?, 0x0?, 0x140042555a8?}) /Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:124 +0x88 go/types.(*Checker).funcBody(0x140030b43c0, 0x1400513e300, {0x14004110318?, 0x1400007ec80?}, 0x140020b3340, 0x1400413eba0, {0x0, 0x0}) /Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:44 +0x244 go/types.(*Checker).funcDecl.func1() /Users/backendengineer/sdk/go1.21.0/src/go/types/decl.go:826 +0x44 go/types.(*Checker).processDelayed(0x140030b43c0, 0x0) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:439 +0x12c go/types.(*Checker).checkFiles(0x140030b43c0, {0x1400458a9e0, 0x4, 0x4}) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:383 +0x1fc go/types.(*Checker).Files(...) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:341 golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).checkPackage(0x1400283fe00, {0x101beb168, 0x140013dfaa0}, 0x1400212b9e0) /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/gopls@v0.15.1/internal/cache/check.go:1522 +0x850 golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).handleSyntaxPackage(0x1400283fe00, {0x101beb168?, 0x140013dfaa0}, 0x1012963dc?, {0x1400070d1a0, 0x5f}) /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/gopls@v0.15.1/internal/cache/check.go:553 +0x55c golang.org/x/tools/gopls/internal/cache.(*Snapshot).forEachPackageInternal.func2() /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/gopls@v0.15.1/internal/cache/check.go:404 +0x34 golang.org/x/sync/errgroup.(*Group).Go.func1() /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/sync@v0.6.0/errgroup/errgroup.go:78 +0x58 created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 3177 /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/sync@v0.6.0/errgroup/errgroup.go:75 +0x98 [Info - 1:06:14 AM] true [Info - 1:06:14 AM] 2024/03/03 01:06:14 go info for /Users/backendengineer/workspace/reference/jetstream-transport (view type GoWorkView) (root dir /Users/backendengineer/workspace/reference/jetstream-transport) (go version go version go1.21.6 darwin/arm64) (build flags: [-tags=unit,integration]) (go env: {GOOS:darwin GOARCH:arm64 GOCACHE:/Users/backendengineer/Library/Caches/go-build GOMODCACHE:/Users/backendengineer/sdk/go1.21.6/pkg/mod GOPATH:/Users/backendengineer/sdk/go1.21.6 GOPRIVATE: GOFLAGS: GO111MODULE: GoVersion:21 GoVersionOutput:go version go1.21.6 darwin/arm64 GOWORK: GOPACKAGESDRIVER:}) (env overlay: map[]) [Info - 1:06:14 AM] 2024/03/03 01:06:14 go/packages.Load #1 snapshot=0 directory=file:///Users/backendengineer/workspace/reference/jetstream-transport query=[/Users/backendengineer/workspace/reference/jetstream-transport/core/... /Users/backendengineer/workspace/reference/jetstream-transport/example/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/http/... /Users/backendengineer/workspace/reference/jetstream-transport/transport/jetstream/... builtin] packages=15 [Info - 1:06:14 AM] 2024/03/03 01:06:14 go/packages.Load #1: updating metadata for 245 packages [Error - 1:06:14 AM] Request textDocument/semanticTokens/range failed. Message: semantictokens are disabled Code: 0 [Error - 1:06:15 AM] Request textDocument/semanticTokens/full failed. Message: semantictokens are disabled Code: 0 panic: runtime error: index out of range [4] with length 4 [recovered] panic: runtime error: index out of range [4] with length 4 goroutine 3835 [running]: go/types.(*Checker).handleBailout(0x140026aa780, 0x14004a35838) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:336 +0x9c panic({0x10563c1c0?, 0x14004be00c0?}) /Users/backendengineer/sdk/go1.21.0/src/runtime/panic.go:914 +0x218 go/types.(*Checker).arguments(0x140026aa780, 0x14001f47640, 0x14001fb1740, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0}, {0x14004bdc3c0?, ...}, ...) /Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:648 +0x11ac go/types.(*Checker).callExpr(0x140026aa780, 0x14001fba680, 0x14001f47640) /Users/backendengineer/sdk/go1.21.0/src/go/types/call.go:302 +0x6a4 go/types.(*Checker).exprInternal(0x140026aa780, {0x0, 0x0}, 0x14001fba680, {0x1056a1848, 0x14001f47640?}, {0x0?, 0x0?}) /Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1359 +0x12dc go/types.(*Checker).rawExpr(0x140026aa780, {0x0, 0x0}, 0x14001fba680, {0x1056a1848?, 0x14001f47640?}, {0x0?, 0x0?}, 0x0) /Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:965 +0x134 go/types.(*Checker).multiExpr(0x3?, {0x1056a1848?, 0x14001f47640}, 0x0) /Users/backendengineer/sdk/go1.21.0/src/go/types/expr.go:1517 +0x68 go/types.(*Checker).initVars(0x105568ea0?, {0x14004117610?, 0x1, 0x1}, {0x14003eb41b0?, 0x1, 0x1}, {0x0, 0x0}) /Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:398 +0x100 go/types.(*Checker).shortVarDecl(0x140026aa780, {0x10569bb40, 0x14004be00a8}, {0x14003e71ea0, 0x1, 0x14003eab5f0?}, {0x14003eb41b0?, 0x1, 0x1}) /Users/backendengineer/sdk/go1.21.0/src/go/types/assignments.go:546 +0x8ac go/types.(*Checker).stmt(0x140026aa780, 0x0, {0x1056a19f8?, 0x14001f47680?}) /Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:476 +0xb70 go/types.(*Checker).stmtList(0x140041152c0?, 0x0, {0x140009e2a00?, 0x0?, 0x14003b9b5a8?}) /Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:124 +0x88 go/types.(*Checker).funcBody(0x140026aa780, 0x14004111500, {0x140046af7b8?, 0x1400007ec80?}, 0x14001f6ea00, 0x14003eabb00, {0x0, 0x0}) /Users/backendengineer/sdk/go1.21.0/src/go/types/stmt.go:44 +0x244 go/types.(*Checker).funcDecl.func1() /Users/backendengineer/sdk/go1.21.0/src/go/types/decl.go:826 +0x44 go/types.(*Checker).processDelayed(0x140026aa780, 0x0) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:439 +0x12c go/types.(*Checker).checkFiles(0x140026aa780, {0x14002be9020, 0x4, 0x4}) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:383 +0x1fc go/types.(*Checker).Files(...) /Users/backendengineer/sdk/go1.21.0/src/go/types/check.go:341 golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).checkPackage(0x140030c4480, {0x1056a3168, 0x14001970000}, 0x140026e7680) /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/gopls@v0.15.1/internal/cache/check.go:1522 +0x850 golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).handleSyntaxPackage(0x140030c4480, {0x1056a3168?, 0x14001970000}, 0x104f15930?, {0x140006df0e0, 0x5f}) /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/gopls@v0.15.1/internal/cache/check.go:553 +0x55c golang.org/x/tools/gopls/internal/cache.(*Snapshot).forEachPackageInternal.func2() /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/tools/gopls@v0.15.1/internal/cache/check.go:404 +0x34 golang.org/x/sync/errgroup.(*Group).Go.func1() /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/sync@v0.6.0/errgroup/errgroup.go:78 +0x58 created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 3588 /Users/backendengineer/sdk/go1.21.6/pkg/mod/golang.org/x/sync@v0.6.0/errgroup/errgroup.go:75 +0x98 [Error - 1:06:16 AM] ```

Failed to auto-collect gopls trace: incomplete panic trace.

gopls stats -anon gopls stats -anon failed after running for 389ms

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.

findleyr commented 7 months ago

Thanks very much for the report. If this is reproducible, we should be able to fix.

I'll look into this more during work hours tomorrow, but could you try installing gopls@v0.14.2 to see if the issue disappears? That will isolate the regression to gopls@v0.15.0+

go install golang.org/x/tools/gopls@v0.14.2

Thanks.

kikihakiem commented 7 months ago

Thank you for following up my report. Yes, I can confirm gopls v0.14.2 works properly.

adonovan commented 7 months ago

This is a dup of golang/go#61931, fixed by https://go.dev/cl/519456.

Rebuilding gopls with go1.22 should fix the problem.