From 17f6f0e734f6835af4e6c2c48c916f6925e48dad Mon Sep 17 00:00:00 2001 From: Chris Wendt Date: Fri, 18 Feb 2022 13:50:40 -0700 Subject: [PATCH] Fix panic when accessing documents (#232) --- internal/indexer/indexer.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/internal/indexer/indexer.go b/internal/indexer/indexer.go index 3546c8d9..37fcdbec 100644 --- a/internal/indexer/indexer.go +++ b/internal/indexer/indexer.go @@ -442,6 +442,9 @@ func (i *Indexer) emitImportMonikerReference(p *packages.Package, pkg *packages. name := spec.Path.Value position, document, _ := i.positionAndDocument(p, pos) + if document == nil { + return + } obj := types.NewPkgName(pos, p.Types, name, pkg.Types) rangeID, _ := i.ensureRangeFor(position, obj) @@ -476,6 +479,9 @@ func (i *Indexer) emitImportMonikerNamedDefinition(p *packages.Package, pkg *pac } position, document, _ := i.positionAndDocument(p, pos) + if document == nil { + return + } obj := types.NewPkgName(pos, p.Types, name, pkg.Types) rangeID, _ := i.ensureRangeFor(position, obj) @@ -526,7 +532,7 @@ func (i *Indexer) indexDefinitionsForPackage(p *packages.Package) { } position, document, ok := i.positionAndDocument(p, obj.Pos()) - if !ok { + if !ok || document == nil { continue } @@ -753,7 +759,7 @@ func (i *Indexer) indexReferencesForPackage(p *packages.Package) { } pos, document, ok := i.positionAndDocument(p, ident.Pos()) - if !ok { + if !ok || document == nil { continue } @@ -1015,7 +1021,7 @@ func (i *Indexer) indexPackageDeclarationForPackage(p *packages.Package) { name := obj.Name() _, d, ok := i.positionAndDocument(p, obj.Pos()) - if !ok { + if !ok || d == nil { return } @@ -1041,7 +1047,7 @@ func (i *Indexer) indexPackageDeclarationForPackage(p *packages.Package) { name := obj.Name() _, document, ok := i.positionAndDocument(p, obj.Pos()) - if !ok { + if !ok || document == nil { continue } ident := &ast.Ident{