1
0
mirror of https://github.com/golang/go synced 2024-09-30 06:24:33 -06:00

internal/lsp/source: fix panic in addFieldItems

I have no idea what I did to trigger this, but I got a panic in this
codepath. Since this is for completion, it should be OK to simply make
this code defensive, without fully understanding the cause.

Here's the panic:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0xc570f3]

goroutine 5914644 [running]:
golang.org/x/tools/internal/lsp/source/completion.(*completer).addFieldItems(0xc0996ee240, 0x1032020, 0xc0dd21e2a0, 0xc0b99b26f0)
        /usr/local/google/home/rfindley/src/tools/internal/lsp/source/completion/completion.go:1065 +0x193

Change-Id: I82350b30172ead95b6611962c2e040cc49259dc2
Reviewed-on: https://go-review.googlesource.com/c/tools/+/254697
Run-TryBot: Robert Findley <rfindley@google.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
This commit is contained in:
Rob Findley 2020-09-14 08:58:40 -04:00 committed by Robert Findley
parent 97363e29fc
commit 2350fe8b0e

View File

@ -1051,6 +1051,9 @@ func (c *completer) addFieldItems(ctx context.Context, fields *ast.FieldList) {
continue
}
obj := c.pkg.GetTypesInfo().ObjectOf(name)
if obj == nil {
continue
}
// if we're in a field comment/doc, score that field as more relevant
score := stdScore