From 587cf2330ce87dacb3b064d92dfc2faacac578b0 Mon Sep 17 00:00:00 2001 From: Rebecca Stambler Date: Wed, 16 Sep 2020 00:59:03 -0400 Subject: [PATCH] internal/lsp/mod: handle nil pointers in code lenses Fixes golang/vscode-go#650 Change-Id: I05a3991853d9e61a2e287d4d166264cdbf7231ba Reviewed-on: https://go-review.googlesource.com/c/tools/+/255127 Trust: Rebecca Stambler Run-TryBot: Rebecca Stambler TryBot-Result: Go Bot gopls-CI: kokoro Reviewed-by: Robert Findley --- internal/lsp/mod/code_lens.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/internal/lsp/mod/code_lens.go b/internal/lsp/mod/code_lens.go index 4f926faec1..a4d06b7a3f 100644 --- a/internal/lsp/mod/code_lens.go +++ b/internal/lsp/mod/code_lens.go @@ -44,6 +44,9 @@ func upgradeLens(ctx context.Context, snapshot source.Snapshot, fh source.FileHa if !ok { continue } + if req.Syntax == nil { + continue + } // Get the range of the require directive. rng, err := positionsToRange(fh.URI(), pm.Mapper, req.Syntax.Start, req.Syntax.End) if err != nil { @@ -103,6 +106,9 @@ func tidyLens(ctx context.Context, snapshot source.Snapshot, fh source.FileHandl if err != nil { return nil, err } + if pm.File == nil || pm.File.Module == nil || pm.File.Module.Syntax == nil { + return nil, fmt.Errorf("no parsed go.mod for %s", fh.URI()) + } rng, err := positionsToRange(pm.Mapper.URI, pm.Mapper, pm.File.Module.Syntax.Start, pm.File.Module.Syntax.End) if err != nil { return nil, err @@ -126,6 +132,9 @@ func vendorLens(ctx context.Context, snapshot source.Snapshot, fh source.FileHan if err != nil { return nil, err } + if pm.File == nil || pm.File.Module == nil || pm.File.Module.Syntax == nil { + return nil, fmt.Errorf("no parsed go.mod for %s", fh.URI()) + } rng, err := positionsToRange(pm.Mapper.URI, pm.Mapper, pm.File.Module.Syntax.Start, pm.File.Module.Syntax.End) if err != nil { return nil, err