golang / vscode-go

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

gopls: automated issue report (crash) #3114

Closed szesch closed 9 months ago

szesch commented 9 months ago

gopls version: v0.14.2/go1.21.3 gopls flags: update flags: proxy extension version: 0.40.1 environment: Visual Studio Code linux initialization error: undefined issue timestamp: Fri, 05 Jan 2024 17:27:27 GMT restart history: Fri, 05 Jan 2024 17:26:59 GMT: activation (enabled: true)

Example code:

foo := &Foo{
    Client: NewClient[SomeType](
        WithA("something"),
    ),
}

If I go to pass a another With* function to NewClient, autocomplete will try to create WithB[]() which causes the gopls server to crash.

Here are example definitions of the functions mentioned above:

func NewClient[T any](opts ...func(*Client[T]) ClientInterface[T] {
    c := Client[T]{}

    for _, o := range opts {
        o(&c)
    }
    return c
}

func WithA[T any](s string) func(*Client[T]) {
    return func(c *Client[T]) {
        // do something here
    }
}

func WithB[T any](s string) func(*Client[T]) {
    return func(c *Client[T]) {
        // do something here
    }
}
[Info  - 12:26:59 PM] 2024/01/05 12:26:59 go/packages.Load #1: updating metadata for 275 packages

[Error - 12:26:59 PM] Request textDocument/semanticTokens/range failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 12:26:59 PM] Request textDocument/semanticTokens/full failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 12:27:00 PM] Request textDocument/semanticTokens/full failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 12:27:12 PM] Request textDocument/semanticTokens/range failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 12:27:12 PM] Request textDocument/semanticTokens/range failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 12:27:23 PM] Request textDocument/semanticTokens/range failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 12:27:24 PM] Request textDocument/semanticTokens/full failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 12:27:24 PM] Request textDocument/semanticTokens/range failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 12:27:24 PM] Request textDocument/semanticTokens/full failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 12:27:25 PM] Request textDocument/semanticTokens/full failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 12:27:25 PM] Request textDocument/semanticTokens/range failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 12:27:25 PM] 2024/01/05 12:27:25 imports fixes: AllImportsFixes: <redacted>.go:35:14: missing ',' before newline in argument list
    file="<redacted>.go"

[Error - 12:27:25 PM] Request textDocument/semanticTokens/range failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 12:27:26 PM] Request textDocument/semanticTokens/full failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 12:27:26 PM] Request textDocument/semanticTokens/range failed.
  Message: semantictokens are disabled
  Code: 0 
[Error - 12:27:26 PM] 2024/01/05 12:27:26 imports fixes: AllImportsFixes: <redacted>.go:35:17: missing ',' before newline in argument list
    file="<redacted>.go"

panic: instantiated ident not found [recovered]
    panic: instantiated ident not found

goroutine 19012 [running]:
go/types.(*Checker).handleBailout(0xc00a152000, 0xc00a171578)
    /usr/lib/go-1.21/src/go/types/check.go:336 +0x88
panic({0xdfc3c0?, 0x1221af0?})
    /usr/lib/go-1.21/src/runtime/panic.go:914 +0x21f
go/types.instantiatedIdent(...)
    /usr/lib/go-1.21/src/go/types/check.go:594
go/types.(*Checker).recordInstance(0x0?, {0x122a340?, 0xc009e9d400?}, {0xc00a15e5a0?, 0xc00a15e5a0?, 0x1?}, {0x1226fe8?, 0xc00a160700?})
    /usr/lib/go-1.21/src/go/types/check.go:570 +0x1de
go/types.(*Checker).instantiateSignature(0xc00a152000, 0x2e7ba, {0x122a340, 0xc009e9d400}, 0xc00a160680, {0xc00a15e5a0, 0x1, 0x1}, {0x0, 0x0, ...})
    /usr/lib/go-1.21/src/go/types/call.go:153 +0x2f9
go/types.(*Checker).arguments(0xc00a152000, 0xc009e9d4c0, 0xc00a1601c0, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0}, {0xc009f18e40, ...}, ...)
    /usr/lib/go-1.21/src/go/types/call.go:635 +0x15ea
go/types.(*Checker).callExpr(0xc00a152000, 0xc00a160040, 0xc009e9d4c0)
    /usr/lib/go-1.21/src/go/types/call.go:302 +0x86d
go/types.(*Checker).exprInternal(0xc00a152000, {0x0, 0x0}, 0xc00a160040, {0x122a340, 0xc009e9d4c0?}, {0x0?, 0x0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1359 +0x1809
go/types.(*Checker).rawExpr(0xc00a152000, {0x0, 0x0}, 0xc00a160040, {0x122a340?, 0xc009e9d4c0?}, {0x0?, 0x0?}, 0x0)
    /usr/lib/go-1.21/src/go/types/expr.go:965 +0x1a5
go/types.(*Checker).expr(0x1226f70?, {0x0?, 0x0?}, 0x38?, {0x122a340?, 0xc009e9d4c0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1498 +0x45
go/types.(*Checker).exprInternal(0xc00a152000, {0x0?, 0x0?}, 0xc00a160040, {0x122a2b0, 0xc009e9d500?}, {0x0?, 0x0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1146 +0x2d6f
go/types.(*Checker).rawExpr(0xc00a152000, {0x0, 0x0}, 0xc00a160040, {0x122a2b0?, 0xc009e9d500?}, {0x0?, 0x0?}, 0x0)
    /usr/lib/go-1.21/src/go/types/expr.go:965 +0x1a5
go/types.(*Checker).expr(0x2e737?, {0x0?, 0x0?}, 0x4?, {0x122a2b0?, 0xc009e9d500?})
    /usr/lib/go-1.21/src/go/types/expr.go:1498 +0x45
go/types.(*Checker).unary(0xc00a152000, 0xc00a160040, 0xc0024bd9c0)
    /usr/lib/go-1.21/src/go/types/expr.go:127 +0x49
go/types.(*Checker).exprInternal(0xc00a152000, {0x0, 0x0}, 0xc00a160040, {0x122a370, 0xc0024bd9c0?}, {0x0?, 0x0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1391 +0x1b94
go/types.(*Checker).rawExpr(0xc00a152000, {0x0, 0x0}, 0xc00a160040, {0x122a370?, 0xc0024bd9c0?}, {0x0?, 0x0?}, 0x0)
    /usr/lib/go-1.21/src/go/types/expr.go:965 +0x1a5
go/types.(*Checker).expr(0xc00042a3f0?, {0x0?, 0x0?}, 0xc009f15a40?, {0x122a370?, 0xc0024bd9c0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1498 +0x45
go/types.(*Checker).initVars(0xe43ae0?, {0xc008c36fb8?, 0x1, 0x0?}, {0xc009ceff40?, 0x0?, 0xc003baea20?}, {0x0?, 0x0})
    /usr/lib/go-1.21/src/go/types/assignments.go:371 +0x553
go/types.(*Checker).shortVarDecl(0xc00a152000, {0x1224700, 0xc0067818f0}, {0xc009cefed0, 0x1, 0xc00a15a430?}, {0xc009ceff40?, 0x1, 0x1})
    /usr/lib/go-1.21/src/go/types/assignments.go:546 +0xbce
go/types.(*Checker).stmt(0xc00a152000, 0x0, {0x122a460?, 0xc009e9d540?})
    /usr/lib/go-1.21/src/go/types/stmt.go:476 +0xee5
go/types.(*Checker).stmtList(0x3?, 0x0, {0xc009e9d600?, 0x31?, 0x121c978?})
    /usr/lib/go-1.21/src/go/types/stmt.go:124 +0x85
go/types.(*Checker).funcBody(0xc00a152000, 0xc003ec6240, {0xc00699e054?, 0xc0091535e0?}, 0xc009f1b800, 0xc009ebc570, {0x0, 0x0})
    /usr/lib/go-1.21/src/go/types/stmt.go:44 +0x345
go/types.(*Checker).funcDecl.func1()
    /usr/lib/go-1.21/src/go/types/decl.go:826 +0x39
go/types.(*Checker).processDelayed(0xc00a152000, 0x0)
    /usr/lib/go-1.21/src/go/types/check.go:439 +0x15c
go/types.(*Checker).checkFiles(0xc00a152000, {0xc008c36e90, 0x1, 0x1})
    /usr/lib/go-1.21/src/go/types/check.go:383 +0x245
go/types.(*Checker).Files(...)
    /usr/lib/go-1.21/src/go/types/check.go:341
golang.org/x/tools/gopls/internal/lsp/cache.doTypeCheck({0x122be88, 0xc00a14e480}, 0xc001a202a0, {{0xc0007a1200, 0x31}, {0xc0007a1200, 0x31}, {0xc00079d308, 0x4}, {0xc0093d50e0, ...}, ...})
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:1562 +0x8a5
golang.org/x/tools/gopls/internal/lsp/cache.typeCheckImpl({0x122be88, 0xc00a14e300}, 0xc0030433e0?, {{0xc0007a1200, 0x31}, {0xc0007a1200, 0x31}, {0xc00079d308, 0x4}, {0xc0093d50e0, ...}, ...})
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:1420 +0x205
golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).checkPackage(0xc009171ed8?, {0x122be88, 0xc009d893b0}, 0xc002658d80)
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:674 +0x245
golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).handleSyntaxPackage(0xc001a202a0, {0x122be88, 0xc009d893b0}, 0x6f672f6d6f632e65?, {0xc0007a1200, 0x31})
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:532 +0x42a
golang.org/x/tools/gopls/internal/lsp/cache.(*snapshot).forEachPackageInternal.func2()
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:394 +0x2b
golang.org/x/sync/errgroup.(*Group).Go.func1()
    /home/steve/code/go/pkg/mod/golang.org/x/sync@v0.4.0/errgroup/errgroup.go:75 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 17674
    /home/steve/code/go/pkg/mod/golang.org/x/sync@v0.4.0/errgroup/errgroup.go:72 +0x96
[Info  - 12:27:26 PM] 
true
[Info  - 12:27:26 PM] 2024/01/05 12:27:26 go info for <redacted>
(go dir <redacted>)
(go version go version go1.21.4 linux/amd64)
(valid build configuration = true)
(build flags: [])
(selected go env: [GO111MODULE=, GOCACHE=/home/steve/.cache/go-build, GOFLAGS=, GOMODCACHE=/home/steve/code/go/pkg/mod, GOPATH=/home/steve/code/go, GOPRIVATE=github.com/kong/*, GOROOT=/usr/lib/go-1.21, GOWORK=])

[Info  - 12:27:26 PM] 2024/01/05 12:27:26 go/packages.Load #1
    snapshot=0
    directory=file://<redacted>
    query=[<redacted>/... builtin]
    packages=13

[Info  - 12:27:26 PM] 2024/01/05 12:27:26 go/packages.Load #1: updating metadata for 275 packages

[Error - 12:27:26 PM] 2024/01/05 12:27:26 imports fixes: AllImportsFixes: <redacted>.go:35:31: expected operand, found ']' (and 1 more errors)
    file="<redacted>.go"

panic: instantiated ident not found [recovered]
    panic: instantiated ident not found

goroutine 2517 [running]:
go/types.(*Checker).handleBailout(0xc0002b8b40, 0xc00263d578)
    /usr/lib/go-1.21/src/go/types/check.go:336 +0x88
panic({0xdfc3c0?, 0x1221af0?})
    /usr/lib/go-1.21/src/runtime/panic.go:914 +0x21f
go/types.instantiatedIdent(...)
    /usr/lib/go-1.21/src/go/types/check.go:594
go/types.(*Checker).recordInstance(0x0?, {0x122a340?, 0xc002895ec0?}, {0xc00278b850?, 0xc00278b850?, 0x1?}, {0x1226fe8?, 0xc002069880?})
    /usr/lib/go-1.21/src/go/types/check.go:570 +0x1de
go/types.(*Checker).instantiateSignature(0xc0002b8b40, 0x3054, {0x122a340, 0xc002895ec0}, 0xc002069800, {0xc00278b850, 0x1, 0x1}, {0x0, 0x0, ...})
    /usr/lib/go-1.21/src/go/types/call.go:153 +0x2f9
go/types.(*Checker).arguments(0xc0002b8b40, 0xc002895f80, 0xc002069340, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0}, {0xc004217728, ...}, ...)
    /usr/lib/go-1.21/src/go/types/call.go:635 +0x15ea
go/types.(*Checker).callExpr(0xc0002b8b40, 0xc0020691c0, 0xc002895f80)
    /usr/lib/go-1.21/src/go/types/call.go:302 +0x86d
go/types.(*Checker).exprInternal(0xc0002b8b40, {0x0, 0x0}, 0xc0020691c0, {0x122a340, 0xc002895f80?}, {0x0?, 0x0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1359 +0x1809
go/types.(*Checker).rawExpr(0xc0002b8b40, {0x0, 0x0}, 0xc0020691c0, {0x122a340?, 0xc002895f80?}, {0x0?, 0x0?}, 0x0)
    /usr/lib/go-1.21/src/go/types/expr.go:965 +0x1a5
go/types.(*Checker).expr(0x1226f70?, {0x0?, 0x0?}, 0x38?, {0x122a340?, 0xc002895f80?})
    /usr/lib/go-1.21/src/go/types/expr.go:1498 +0x45
go/types.(*Checker).exprInternal(0xc0002b8b40, {0x0?, 0x0?}, 0xc0020691c0, {0x122a2b0, 0xc002895fc0?}, {0x0?, 0x0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1146 +0x2d6f
go/types.(*Checker).rawExpr(0xc0002b8b40, {0x0, 0x0}, 0xc0020691c0, {0x122a2b0?, 0xc002895fc0?}, {0x0?, 0x0?}, 0x0)
    /usr/lib/go-1.21/src/go/types/expr.go:965 +0x1a5
go/types.(*Checker).expr(0x2fd1?, {0x0?, 0x0?}, 0x7f13cc4e5ec8?, {0x122a2b0?, 0xc002895fc0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1498 +0x45
go/types.(*Checker).unary(0xc0002b8b40, 0xc0020691c0, 0xc00289caa0)
    /usr/lib/go-1.21/src/go/types/expr.go:127 +0x49
go/types.(*Checker).exprInternal(0xc0002b8b40, {0x0, 0x0}, 0xc0020691c0, {0x122a370, 0xc00289caa0?}, {0x0?, 0x0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1391 +0x1b94
go/types.(*Checker).rawExpr(0xc0002b8b40, {0x0, 0x0}, 0xc0020691c0, {0x122a370?, 0xc00289caa0?}, {0x0?, 0x0?}, 0x0)
    /usr/lib/go-1.21/src/go/types/expr.go:965 +0x1a5
go/types.(*Checker).expr(0xc0001f2460?, {0x0?, 0x0?}, 0xc00119c380?, {0x122a370?, 0xc00289caa0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1498 +0x45
go/types.(*Checker).initVars(0xe43ae0?, {0xc000aa7388?, 0x1, 0x0?}, {0xc0004d79a0?, 0x0?, 0xc0042b67e0?}, {0x0?, 0x0})
    /usr/lib/go-1.21/src/go/types/assignments.go:371 +0x553
go/types.(*Checker).shortVarDecl(0xc0002b8b40, {0x1224700, 0xc0003ba810}, {0xc0004d7930, 0x1, 0xc0019c8430?}, {0xc0004d79a0?, 0x1, 0x1})
    /usr/lib/go-1.21/src/go/types/assignments.go:546 +0xbce
go/types.(*Checker).stmt(0xc0002b8b40, 0x0, {0x122a460?, 0xc00289e000?})
    /usr/lib/go-1.21/src/go/types/stmt.go:476 +0xee5
go/types.(*Checker).stmtList(0x3?, 0x0, {0xc00289e0c0?, 0x31?, 0x121c978?})
    /usr/lib/go-1.21/src/go/types/stmt.go:124 +0x85
go/types.(*Checker).funcBody(0xc0002b8b40, 0xc0026631a0, {0xc000015804?, 0xc000119630?}, 0xc002068880, 0xc002899320, {0x0, 0x0})
    /usr/lib/go-1.21/src/go/types/stmt.go:44 +0x345
go/types.(*Checker).funcDecl.func1()
    /usr/lib/go-1.21/src/go/types/decl.go:826 +0x39
go/types.(*Checker).processDelayed(0xc0002b8b40, 0x0)
    /usr/lib/go-1.21/src/go/types/check.go:439 +0x15c
go/types.(*Checker).checkFiles(0xc0002b8b40, {0xc000aa7100, 0x1, 0x1})
    /usr/lib/go-1.21/src/go/types/check.go:383 +0x245
go/types.(*Checker).Files(...)
    /usr/lib/go-1.21/src/go/types/check.go:341
golang.org/x/tools/gopls/internal/lsp/cache.doTypeCheck({0x122be88, 0xc00313c0c0}, 0xc0037a9f80, {{0xc0007bb1c0, 0x31}, {0xc0007bb1c0, 0x31}, {0xc0007befc8, 0x4}, {0xc00255d810, ...}, ...})
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:1562 +0x8a5
golang.org/x/tools/gopls/internal/lsp/cache.typeCheckImpl({0x122be88, 0xc00156df20}, 0xc000112d80?, {{0xc0007bb1c0, 0x31}, {0xc0007bb1c0, 0x31}, {0xc0007befc8, 0x4}, {0xc00255d810, ...}, ...})
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:1420 +0x205
golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).checkPackage(0xc000f746d8?, {0x122be88, 0xc0024edc50}, 0xc0025266c0)
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:674 +0x245
golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).handleSyntaxPackage(0xc0037a9f80, {0x122be88, 0xc0024edc50}, 0x0?, {0xc0007bb1c0, 0x31})
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:532 +0x42a
golang.org/x/tools/gopls/internal/lsp/cache.(*snapshot).forEachPackageInternal.func2()
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:394 +0x2b
golang.org/x/sync/errgroup.(*Group).Go.func1()
    /home/steve/code/go/pkg/mod/golang.org/x/sync@v0.4.0/errgroup/errgroup.go:75 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 152
    /home/steve/code/go/pkg/mod/golang.org/x/sync@v0.4.0/errgroup/errgroup.go:72 +0x96
[Info  - 12:27:26 PM] 
true
[Info  - 12:27:26 PM] 2024/01/05 12:27:26 go info for <redacted>
(go dir <redacted>)
(go version go version go1.21.4 linux/amd64)
(valid build configuration = true)
(build flags: [])
(selected go env: [GO111MODULE=, GOCACHE=/home/steve/.cache/go-build, GOFLAGS=, GOMODCACHE=/home/steve/code/go/pkg/mod, GOPATH=/home/steve/code/go, GOPRIVATE=github.com/kong/*, GOROOT=/usr/lib/go-1.21, GOWORK=])

[Info  - 12:27:26 PM] 2024/01/05 12:27:26 go/packages.Load #1
    snapshot=0
    directory=file://<redacted>
    query=[<redacted>/... builtin]
    packages=13

[Info  - 12:27:26 PM] 2024/01/05 12:27:26 go/packages.Load #1: updating metadata for 275 packages

[Error - 12:27:27 PM] 2024/01/05 12:27:27 imports fixes: AllImportsFixes: <redacted>.go:35:31: expected operand, found ']' (and 1 more errors)
    file="<redacted>.go"

panic: instantiated ident not found [recovered]
    panic: instantiated ident not found

goroutine 2437 [running]:
go/types.(*Checker).handleBailout(0xc002e6a1e0, 0xc002975578)
    /usr/lib/go-1.21/src/go/types/check.go:336 +0x88
panic({0xdfc3c0?, 0x1221af0?})
    /usr/lib/go-1.21/src/runtime/panic.go:914 +0x21f
go/types.instantiatedIdent(...)
    /usr/lib/go-1.21/src/go/types/check.go:594
go/types.(*Checker).recordInstance(0x0?, {0x122a340?, 0xc002629340?}, {0xc00225b4e0?, 0xc00225b4e0?, 0x1?}, {0x1226fe8?, 0xc0021bfec0?})
    /usr/lib/go-1.21/src/go/types/check.go:570 +0x1de
go/types.(*Checker).instantiateSignature(0xc002e6a1e0, 0x3054, {0x122a340, 0xc002629340}, 0xc0021bfe40, {0xc00225b4e0, 0x1, 0x1}, {0x0, 0x0, ...})
    /usr/lib/go-1.21/src/go/types/call.go:153 +0x2f9
go/types.(*Checker).arguments(0xc002e6a1e0, 0xc002629400, 0xc0021bf980, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0}, {0xc000b09338, ...}, ...)
    /usr/lib/go-1.21/src/go/types/call.go:635 +0x15ea
go/types.(*Checker).callExpr(0xc002e6a1e0, 0xc0021bf800, 0xc002629400)
    /usr/lib/go-1.21/src/go/types/call.go:302 +0x86d
go/types.(*Checker).exprInternal(0xc002e6a1e0, {0x0, 0x0}, 0xc0021bf800, {0x122a340, 0xc002629400?}, {0x0?, 0x0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1359 +0x1809
go/types.(*Checker).rawExpr(0xc002e6a1e0, {0x0, 0x0}, 0xc0021bf800, {0x122a340?, 0xc002629400?}, {0x0?, 0x0?}, 0x0)
    /usr/lib/go-1.21/src/go/types/expr.go:965 +0x1a5
go/types.(*Checker).expr(0x1226f70?, {0x0?, 0x0?}, 0x38?, {0x122a340?, 0xc002629400?})
    /usr/lib/go-1.21/src/go/types/expr.go:1498 +0x45
go/types.(*Checker).exprInternal(0xc002e6a1e0, {0x0?, 0x0?}, 0xc0021bf800, {0x122a2b0, 0xc002629440?}, {0x0?, 0x0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1146 +0x2d6f
go/types.(*Checker).rawExpr(0xc002e6a1e0, {0x0, 0x0}, 0xc0021bf800, {0x122a2b0?, 0xc002629440?}, {0x0?, 0x0?}, 0x0)
    /usr/lib/go-1.21/src/go/types/expr.go:965 +0x1a5
go/types.(*Checker).expr(0x2fd1?, {0x0?, 0x0?}, 0x514c82?, {0x122a2b0?, 0xc002629440?})
    /usr/lib/go-1.21/src/go/types/expr.go:1498 +0x45
go/types.(*Checker).unary(0xc002e6a1e0, 0xc0021bf800, 0xc00262afe0)
    /usr/lib/go-1.21/src/go/types/expr.go:127 +0x49
go/types.(*Checker).exprInternal(0xc002e6a1e0, {0x0, 0x0}, 0xc0021bf800, {0x122a370, 0xc00262afe0?}, {0x0?, 0x0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1391 +0x1b94
go/types.(*Checker).rawExpr(0xc002e6a1e0, {0x0, 0x0}, 0xc0021bf800, {0x122a370?, 0xc00262afe0?}, {0x0?, 0x0?}, 0x0)
    /usr/lib/go-1.21/src/go/types/expr.go:965 +0x1a5
go/types.(*Checker).expr(0xc0005e9340?, {0x0?, 0x0?}, 0xc00167f080?, {0x122a370?, 0xc00262afe0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1498 +0x45
go/types.(*Checker).initVars(0xe43ae0?, {0xc0046503e8?, 0x1, 0x0?}, {0xc0026265d0?, 0x0?, 0xc003702ea0?}, {0x0?, 0x0})
    /usr/lib/go-1.21/src/go/types/assignments.go:371 +0x553
go/types.(*Checker).shortVarDecl(0xc002e6a1e0, {0x1224700, 0xc003c16b40}, {0xc002626560, 0x1, 0xc000578430?}, {0xc0026265d0?, 0x1, 0x1})
    /usr/lib/go-1.21/src/go/types/assignments.go:546 +0xbce
go/types.(*Checker).stmt(0xc002e6a1e0, 0x0, {0x122a460?, 0xc002629480?})
    /usr/lib/go-1.21/src/go/types/stmt.go:476 +0xee5
go/types.(*Checker).stmtList(0x3?, 0x0, {0xc002629540?, 0x31?, 0x121c978?})
    /usr/lib/go-1.21/src/go/types/stmt.go:124 +0x85
go/types.(*Checker).funcBody(0xc002e6a1e0, 0xc000392b40, {0xc00061b284?, 0xc002e351d0?}, 0xc0021befc0, 0xc00260fd10, {0x0, 0x0})
    /usr/lib/go-1.21/src/go/types/stmt.go:44 +0x345
go/types.(*Checker).funcDecl.func1()
    /usr/lib/go-1.21/src/go/types/decl.go:826 +0x39
go/types.(*Checker).processDelayed(0xc002e6a1e0, 0x0)
    /usr/lib/go-1.21/src/go/types/check.go:439 +0x15c
go/types.(*Checker).checkFiles(0xc002e6a1e0, {0xc0046502c0, 0x1, 0x1})
    /usr/lib/go-1.21/src/go/types/check.go:383 +0x245
go/types.(*Checker).Files(...)
    /usr/lib/go-1.21/src/go/types/check.go:341
golang.org/x/tools/gopls/internal/lsp/cache.doTypeCheck({0x122be88, 0xc001ca4750}, 0xc002d2f260, {{0xc00066f240, 0x31}, {0xc00066f240, 0x31}, {0xc000672f38, 0x4}, {0xc00253dbf0, ...}, ...})
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:1562 +0x8a5
golang.org/x/tools/gopls/internal/lsp/cache.typeCheckImpl({0x122be88, 0xc001ca43c0}, 0xc00051c060?, {{0xc00066f240, 0x31}, {0xc00066f240, 0x31}, {0xc000672f38, 0x4}, {0xc00253dbf0, ...}, ...})
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:1420 +0x205
golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).checkPackage(0xc000017ed8?, {0x122be88, 0xc000cb3b30}, 0xc00250d200)
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:674 +0x245
golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).handleSyntaxPackage(0xc002d2f260, {0x122be88, 0xc000cb3b30}, 0xc00247a840?, {0xc00066f240, 0x31})
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:532 +0x42a
golang.org/x/tools/gopls/internal/lsp/cache.(*snapshot).forEachPackageInternal.func2()
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:394 +0x2b
golang.org/x/sync/errgroup.(*Group).Go.func1()
    /home/steve/code/go/pkg/mod/golang.org/x/sync@v0.4.0/errgroup/errgroup.go:75 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 135
    /home/steve/code/go/pkg/mod/golang.org/x/sync@v0.4.0/errgroup/errgroup.go:72 +0x96
[Info  - 12:27:27 PM] 
true
[Info  - 12:27:27 PM] 2024/01/05 12:27:27 go info for <redacted>
(go dir <redacted>)
(go version go version go1.21.4 linux/amd64)
(valid build configuration = true)
(build flags: [])
(selected go env: [GO111MODULE=, GOCACHE=/home/steve/.cache/go-build, GOFLAGS=, GOMODCACHE=/home/steve/code/go/pkg/mod, GOPATH=/home/steve/code/go, GOPRIVATE=github.com/kong/*, GOROOT=/usr/lib/go-1.21, GOWORK=])

[Info  - 12:27:27 PM] 2024/01/05 12:27:27 go/packages.Load #1
    snapshot=0
    directory=file://<redacted>
    query=[<redacted>/... builtin]
    packages=13

[Info  - 12:27:27 PM] 2024/01/05 12:27:27 go/packages.Load #1: updating metadata for 275 packages

[Error - 12:27:27 PM] 2024/01/05 12:27:27 imports fixes: AllImportsFixes: <redacted>.go:35:31: expected operand, found ']' (and 1 more errors)
    file="<redacted>.go"

panic: instantiated ident not found [recovered]
    panic: instantiated ident not found

goroutine 1626 [running]:
go/types.(*Checker).handleBailout(0xc002c7e1e0, 0xc00404f578)
    /usr/lib/go-1.21/src/go/types/check.go:336 +0x88
panic({0xdfc3c0?, 0x1221af0?})
    /usr/lib/go-1.21/src/runtime/panic.go:914 +0x21f
go/types.instantiatedIdent(...)
    /usr/lib/go-1.21/src/go/types/check.go:594
go/types.(*Checker).recordInstance(0x0?, {0x122a340?, 0xc0023bc100?}, {0xc002919e60?, 0xc002919e60?, 0x1?}, {0x1226fe8?, 0xc000c7eb40?})
    /usr/lib/go-1.21/src/go/types/check.go:570 +0x1de
go/types.(*Checker).instantiateSignature(0xc002c7e1e0, 0x3054, {0x122a340, 0xc0023bc100}, 0xc000c7eac0, {0xc002919e60, 0x1, 0x1}, {0x0, 0x0, ...})
    /usr/lib/go-1.21/src/go/types/call.go:153 +0x2f9
go/types.(*Checker).arguments(0xc002c7e1e0, 0xc0023bc1c0, 0xc000c7e600, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0}, {0xc00346fb18, ...}, ...)
    /usr/lib/go-1.21/src/go/types/call.go:635 +0x15ea
go/types.(*Checker).callExpr(0xc002c7e1e0, 0xc000c7e480, 0xc0023bc1c0)
    /usr/lib/go-1.21/src/go/types/call.go:302 +0x86d
go/types.(*Checker).exprInternal(0xc002c7e1e0, {0x0, 0x0}, 0xc000c7e480, {0x122a340, 0xc0023bc1c0?}, {0x0?, 0x0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1359 +0x1809
go/types.(*Checker).rawExpr(0xc002c7e1e0, {0x0, 0x0}, 0xc000c7e480, {0x122a340?, 0xc0023bc1c0?}, {0x0?, 0x0?}, 0x0)
    /usr/lib/go-1.21/src/go/types/expr.go:965 +0x1a5
go/types.(*Checker).expr(0x1226f70?, {0x0?, 0x0?}, 0x38?, {0x122a340?, 0xc0023bc1c0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1498 +0x45
go/types.(*Checker).exprInternal(0xc002c7e1e0, {0x0?, 0x0?}, 0xc000c7e480, {0x122a2b0, 0xc0023bc200?}, {0x0?, 0x0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1146 +0x2d6f
go/types.(*Checker).rawExpr(0xc002c7e1e0, {0x0, 0x0}, 0xc000c7e480, {0x122a2b0?, 0xc0023bc200?}, {0x0?, 0x0?}, 0x0)
    /usr/lib/go-1.21/src/go/types/expr.go:965 +0x1a5
go/types.(*Checker).expr(0x2fd1?, {0x0?, 0x0?}, 0x514c82?, {0x122a2b0?, 0xc0023bc200?})
    /usr/lib/go-1.21/src/go/types/expr.go:1498 +0x45
go/types.(*Checker).unary(0xc002c7e1e0, 0xc000c7e480, 0xc0005a3400)
    /usr/lib/go-1.21/src/go/types/expr.go:127 +0x49
go/types.(*Checker).exprInternal(0xc002c7e1e0, {0x0, 0x0}, 0xc000c7e480, {0x122a370, 0xc0005a3400?}, {0x0?, 0x0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1391 +0x1b94
go/types.(*Checker).rawExpr(0xc002c7e1e0, {0x0, 0x0}, 0xc000c7e480, {0x122a370?, 0xc0005a3400?}, {0x0?, 0x0?}, 0x0)
    /usr/lib/go-1.21/src/go/types/expr.go:965 +0x1a5
go/types.(*Checker).expr(0xc00014ebd0?, {0x0?, 0x0?}, 0xc002ed8860?, {0x122a370?, 0xc0005a3400?})
    /usr/lib/go-1.21/src/go/types/expr.go:1498 +0x45
go/types.(*Checker).initVars(0xe43ae0?, {0xc0001457b8?, 0x1, 0x0?}, {0xc000113520?, 0x0?, 0xc002a8cb40?}, {0x0?, 0x0})
    /usr/lib/go-1.21/src/go/types/assignments.go:371 +0x553
go/types.(*Checker).shortVarDecl(0xc002c7e1e0, {0x1224700, 0xc0037aa900}, {0xc000113450, 0x1, 0xc003ee4430?}, {0xc000113520?, 0x1, 0x1})
    /usr/lib/go-1.21/src/go/types/assignments.go:546 +0xbce
go/types.(*Checker).stmt(0xc002c7e1e0, 0x0, {0x122a460?, 0xc0023bc240?})
    /usr/lib/go-1.21/src/go/types/stmt.go:476 +0xee5
go/types.(*Checker).stmtList(0x3?, 0x0, {0xc0023bc300?, 0x31?, 0x121c978?})
    /usr/lib/go-1.21/src/go/types/stmt.go:124 +0x85
go/types.(*Checker).funcBody(0xc002c7e1e0, 0xc0034cfc20, {0xc00071aaf4?, 0xc0034b7400?}, 0xc000acfc40, 0xc0022b5bc0, {0x0, 0x0})
    /usr/lib/go-1.21/src/go/types/stmt.go:44 +0x345
go/types.(*Checker).funcDecl.func1()
    /usr/lib/go-1.21/src/go/types/decl.go:826 +0x39
go/types.(*Checker).processDelayed(0xc002c7e1e0, 0x0)
    /usr/lib/go-1.21/src/go/types/check.go:439 +0x15c
go/types.(*Checker).checkFiles(0xc002c7e1e0, {0xc0001455a0, 0x1, 0x1})
    /usr/lib/go-1.21/src/go/types/check.go:383 +0x245
go/types.(*Checker).Files(...)
    /usr/lib/go-1.21/src/go/types/check.go:341
golang.org/x/tools/gopls/internal/lsp/cache.doTypeCheck({0x122be88, 0xc000bace40}, 0xc0034cea20, {{0xc0009a1100, 0x31}, {0xc0009a1100, 0x31}, {0xc000877178, 0x4}, {0xc002c1bbe0, ...}, ...})
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:1562 +0x8a5
golang.org/x/tools/gopls/internal/lsp/cache.typeCheckImpl({0x122be88, 0xc000bacbd0}, 0xc000492060?, {{0xc0009a1100, 0x31}, {0xc0009a1100, 0x31}, {0xc000877178, 0x4}, {0xc002c1bbe0, ...}, ...})
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:1420 +0x205
golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).checkPackage(0xc0024f9ed8?, {0x122be88, 0xc0001248a0}, 0xc00280f7a0)
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:674 +0x245
golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).handleSyntaxPackage(0xc0034cea20, {0x122be88, 0xc0001248a0}, 0xc64d20?, {0xc0009a1100, 0x31})
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:532 +0x42a
golang.org/x/tools/gopls/internal/lsp/cache.(*snapshot).forEachPackageInternal.func2()
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:394 +0x2b
golang.org/x/sync/errgroup.(*Group).Go.func1()
    /home/steve/code/go/pkg/mod/golang.org/x/sync@v0.4.0/errgroup/errgroup.go:75 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 138
    /home/steve/code/go/pkg/mod/golang.org/x/sync@v0.4.0/errgroup/errgroup.go:72 +0x96
[Info  - 12:27:27 PM] 
true
[Info  - 12:27:27 PM] 2024/01/05 12:27:27 go info for <redacted>
(go dir <redacted>)
(go version go version go1.21.4 linux/amd64)
(valid build configuration = true)
(build flags: [])
(selected go env: [GO111MODULE=, GOCACHE=/home/steve/.cache/go-build, GOFLAGS=, GOMODCACHE=/home/steve/code/go/pkg/mod, GOPATH=/home/steve/code/go, GOPRIVATE=github.com/kong/*, GOROOT=/usr/lib/go-1.21, GOWORK=])

[Info  - 12:27:27 PM] 2024/01/05 12:27:27 go/packages.Load #1
    snapshot=0
    directory=file://<redacted>
    query=[<redacted>/... builtin]
    packages=13

[Info  - 12:27:27 PM] 2024/01/05 12:27:27 go/packages.Load #1: updating metadata for 275 packages

[Error - 12:27:27 PM] 2024/01/05 12:27:27 imports fixes: AllImportsFixes: <redacted>.go:35:31: expected operand, found ']' (and 1 more errors)
    file="<redacted>.go"

panic: instantiated ident not found [recovered]
    panic: instantiated ident not found

goroutine 2452 [running]:
go/types.(*Checker).handleBailout(0xc0002b8780, 0xc0047af578)
    /usr/lib/go-1.21/src/go/types/check.go:336 +0x88
panic({0xdfc3c0?, 0x1221af0?})
    /usr/lib/go-1.21/src/runtime/panic.go:914 +0x21f
go/types.instantiatedIdent(...)
    /usr/lib/go-1.21/src/go/types/check.go:594
go/types.(*Checker).recordInstance(0x0?, {0x122a340?, 0xc00271e140?}, {0xc002118130?, 0xc002118130?, 0x1?}, {0x1226fe8?, 0xc001cbfa00?})
    /usr/lib/go-1.21/src/go/types/check.go:570 +0x1de
go/types.(*Checker).instantiateSignature(0xc0002b8780, 0x3054, {0x122a340, 0xc00271e140}, 0xc001cbf980, {0xc002118130, 0x1, 0x1}, {0x0, 0x0, ...})
    /usr/lib/go-1.21/src/go/types/call.go:153 +0x2f9
go/types.(*Checker).arguments(0xc0002b8780, 0xc00271e200, 0xc001cbf4c0, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0}, {0xc000618a98, ...}, ...)
    /usr/lib/go-1.21/src/go/types/call.go:635 +0x15ea
go/types.(*Checker).callExpr(0xc0002b8780, 0xc001cbf340, 0xc00271e200)
    /usr/lib/go-1.21/src/go/types/call.go:302 +0x86d
go/types.(*Checker).exprInternal(0xc0002b8780, {0x0, 0x0}, 0xc001cbf340, {0x122a340, 0xc00271e200?}, {0x0?, 0x0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1359 +0x1809
go/types.(*Checker).rawExpr(0xc0002b8780, {0x0, 0x0}, 0xc001cbf340, {0x122a340?, 0xc00271e200?}, {0x0?, 0x0?}, 0x0)
    /usr/lib/go-1.21/src/go/types/expr.go:965 +0x1a5
go/types.(*Checker).expr(0x1226f70?, {0x0?, 0x0?}, 0x38?, {0x122a340?, 0xc00271e200?})
    /usr/lib/go-1.21/src/go/types/expr.go:1498 +0x45
go/types.(*Checker).exprInternal(0xc0002b8780, {0x0?, 0x0?}, 0xc001cbf340, {0x122a2b0, 0xc00271e240?}, {0x0?, 0x0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1146 +0x2d6f
go/types.(*Checker).rawExpr(0xc0002b8780, {0x0, 0x0}, 0xc001cbf340, {0x122a2b0?, 0xc00271e240?}, {0x0?, 0x0?}, 0x0)
    /usr/lib/go-1.21/src/go/types/expr.go:965 +0x1a5
go/types.(*Checker).expr(0x2fd1?, {0x0?, 0x0?}, 0x0?, {0x122a2b0?, 0xc00271e240?})
    /usr/lib/go-1.21/src/go/types/expr.go:1498 +0x45
go/types.(*Checker).unary(0xc0002b8780, 0xc001cbf340, 0xc00271c800)
    /usr/lib/go-1.21/src/go/types/expr.go:127 +0x49
go/types.(*Checker).exprInternal(0xc0002b8780, {0x0, 0x0}, 0xc001cbf340, {0x122a370, 0xc00271c800?}, {0x0?, 0x0?})
    /usr/lib/go-1.21/src/go/types/expr.go:1391 +0x1b94
go/types.(*Checker).rawExpr(0xc0002b8780, {0x0, 0x0}, 0xc001cbf340, {0x122a370?, 0xc00271c800?}, {0x0?, 0x0?}, 0x0)
    /usr/lib/go-1.21/src/go/types/expr.go:965 +0x1a5
go/types.(*Checker).expr(0xc0003672d0?, {0x0?, 0x0?}, 0xc003fa73c0?, {0x122a370?, 0xc00271c800?})
    /usr/lib/go-1.21/src/go/types/expr.go:1498 +0x45
go/types.(*Checker).initVars(0xe43ae0?, {0xc001031958?, 0x1, 0x0?}, {0xc000e8ef90?, 0xc00479e138?, 0xc002ec6c60?}, {0x0?, 0x0})
    /usr/lib/go-1.21/src/go/types/assignments.go:371 +0x553
go/types.(*Checker).shortVarDecl(0xc0002b8780, {0x1224700, 0xc002c92cf0}, {0xc000e8ef20, 0x1, 0xc00479e430?}, {0xc000e8ef90?, 0x1, 0x1})
    /usr/lib/go-1.21/src/go/types/assignments.go:546 +0xbce
go/types.(*Checker).stmt(0xc0002b8780, 0x0, {0x122a460?, 0xc00271e280?})
    /usr/lib/go-1.21/src/go/types/stmt.go:476 +0xee5
go/types.(*Checker).stmtList(0x3?, 0x0, {0xc00271e340?, 0x31?, 0x121c978?})
    /usr/lib/go-1.21/src/go/types/stmt.go:124 +0x85
go/types.(*Checker).funcBody(0xc0002b8780, 0xc003321ec0, {0xc0008d27e4?, 0xc0032aee10?}, 0xc001cbeb00, 0xc002705b90, {0x0, 0x0})
    /usr/lib/go-1.21/src/go/types/stmt.go:44 +0x345
go/types.(*Checker).funcDecl.func1()
    /usr/lib/go-1.21/src/go/types/decl.go:826 +0x39
go/types.(*Checker).processDelayed(0xc0002b8780, 0x0)
    /usr/lib/go-1.21/src/go/types/check.go:439 +0x15c
go/types.(*Checker).checkFiles(0xc0002b8780, {0xc001031830, 0x1, 0x1})
    /usr/lib/go-1.21/src/go/types/check.go:383 +0x245
go/types.(*Checker).Files(...)
    /usr/lib/go-1.21/src/go/types/check.go:341
golang.org/x/tools/gopls/internal/lsp/cache.doTypeCheck({0x122be88, 0xc001d0cd50}, 0xc003320cc0, {{0xc0006ff240, 0x31}, {0xc0006ff240, 0x31}, {0xc000704f68, 0x4}, {0xc00247adb0, ...}, ...})
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:1562 +0x8a5
golang.org/x/tools/gopls/internal/lsp/cache.typeCheckImpl({0x122be88, 0xc001d0cbd0}, 0xc000394060?, {{0xc0006ff240, 0x31}, {0xc0006ff240, 0x31}, {0xc000704f68, 0x4}, {0xc00247adb0, ...}, ...})
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:1420 +0x205
golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).checkPackage(0xc00081ded8?, {0x122be88, 0xc0027601b0}, 0xc0021d47e0)
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:674 +0x245
golang.org/x/tools/gopls/internal/lsp/cache.(*typeCheckBatch).handleSyntaxPackage(0xc003320cc0, {0x122be88, 0xc0027601b0}, 0xc0006c3050?, {0xc0006ff240, 0x31})
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:532 +0x42a
golang.org/x/tools/gopls/internal/lsp/cache.(*snapshot).forEachPackageInternal.func2()
    /home/steve/code/go/pkg/mod/golang.org/x/tools/gopls@v0.14.2/internal/lsp/cache/check.go:394 +0x2b
golang.org/x/sync/errgroup.(*Group).Go.func1()
    /home/steve/code/go/pkg/mod/golang.org/x/sync@v0.4.0/errgroup/errgroup.go:75 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 123
    /home/steve/code/go/pkg/mod/golang.org/x/sync@v0.4.0/errgroup/errgroup.go:72 +0x96
[Error - 12:27:27 PM] 

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

gopls stats -anon { "DirStats": { "Files": 142, "TestdataFiles": 0, "GoFiles": 21, "ModFiles": 1, "Dirs": 97 }, "GOARCH": "amd64", "GOOS": "linux", "GoVersion": "go1.21.3", "GoplsVersion": "v0.14.2", "InitialWorkspaceLoadDuration": "120.839815ms", "MemStats": { "HeapAlloc": 25740696, "HeapInUse": 36962304, "TotalAlloc": 157045888 }, "WorkspaceStats": { "Files": { "Total": 1581, "Largest": 1062398, "Errs": 0 }, "Views": [ { "GoCommandVersion": "go1.21.4", "AllPackages": { "Packages": 275, "LargestPackage": 147, "CompiledGoFiles": 1584, "Modules": 33 }, "WorkspacePackages": { "Packages": 9, "LargestPackage": 10, "CompiledGoFiles": 27, "Modules": 1 }, "Diagnostics": 3 } ] } }

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 9 months ago

Thanks for the report. This is a dupe of golang/go#63933, but we had yet to repro. Thank you for including repro information.

However, I have still not yet reproduced. I will continue to play with your example, but do you by any chance have a minimal and complete repro?

szesch commented 9 months ago

@findleyr here's a repo to reproduce https://github.com/szesch/go-63933. I started off with all the code in main.go but I was unable to reproduce. Once I separated out main into it's own file I was then able reproduce. I left a comment in main.go on how to trigger the issue.

findleyr commented 9 months ago

@szesch: Nice, that works, thank you!

findleyr commented 9 months ago

Closing this in favor of golang/go#63933.