Description
#!stacks
"cache.assert" && "evaluatePackageHandle.func1:+2"
Issue created by stacks.
// getOneTransitiveRefLocked computes the full set packages transitively
// reachable through the given sym reference.
//
// It may return nil if the reference is invalid (i.e. the referenced name does
// not exist).
func (b *packageHandleBuilder) getOneTransitiveRefLocked(sym typerefs.Symbol) *typerefs.PackageSet {
assert(token.IsExported(sym.Name), "expected exported symbol") <--- here
trefs := b.transitiveRefs[sym.Package]
if trefs == nil {
trefs = &partialRefs{
refs: make(map[string]*typerefs.PackageSet),
complete: false,
}
b.transitiveRefs[sym.Package] = trefs
}
This stack N2fS6w
was reported by telemetry:
crash/crash
runtime.gopanic:+69
golang.org/x/tools/gopls/internal/cache.assert:=10
golang.org/x/tools/gopls/internal/cache.(*packageHandleBuilder).evaluatePackageHandle.func1:+2
runtime.gopanic:+50
golang.org/x/tools/gopls/internal/cache.assert:=10
golang.org/x/tools/gopls/internal/cache.(*packageHandleBuilder).getOneTransitiveRefLocked:+1
golang.org/x/tools/gopls/internal/cache.(*packageHandleBuilder).getTransitiveRefs:+22
golang.org/x/tools/gopls/internal/cache.(*packageHandleBuilder).evaluatePackageHandle:+129
golang.org/x/tools/gopls/internal/cache.(*Snapshot).getPackageHandles.func2.1:+8
golang.org/x/sync/errgroup.(*Group).Go.func1:+3
runtime.goexit:+0
golang.org/x/tools/gopls@v0.17.0 go1.23.4 linux/amd64 vscode (1)
Metadata
Metadata
Assignees
Labels
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
adonovan commentedon Jan 20, 2025
What we know:
So, this can't happen (modulo: bugs in encode/decode pair, compiler, runtime, hardware). What am I missing?