From 041a08a54aeca1954392c46e34a51ad4bae8113c Mon Sep 17 00:00:00 2001 From: Rebecca Stambler Date: Thu, 19 Dec 2019 16:07:18 -0500 Subject: [PATCH] internal/lsp/cache: remove errors from dependencies Now that `go list` errors are sufficient for us to determine a circular dependency, we don't need to cache errors on dependency packages. Change-Id: I0633aeb356f93d21afed3371d61d7eae7de255ac Reviewed-on: https://go-review.googlesource.com/c/tools/+/212197 Run-TryBot: Rebecca Stambler Run-TryBot: Rohan Challa Reviewed-by: Rohan Challa TryBot-Result: Gobot Gobot --- internal/lsp/cache/check.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/internal/lsp/cache/check.go b/internal/lsp/cache/check.go index 30e4af2a22..24136170c6 100644 --- a/internal/lsp/cache/check.go +++ b/internal/lsp/cache/check.go @@ -330,13 +330,16 @@ func typeCheck(ctx context.Context, fset *token.FileSet, m *metadata, mode sourc return nil, ctx.Err() } - for _, e := range rawErrors { - srcErr, err := sourceError(ctx, fset, pkg, e) - if err != nil { - log.Error(ctx, "unable to compute error positions", err, telemetry.Package.Of(pkg.ID())) - continue + // We don't care about a package's errors unless we have parsed it in full. + if mode == source.ParseFull { + for _, e := range rawErrors { + srcErr, err := sourceError(ctx, fset, pkg, e) + if err != nil { + log.Error(ctx, "unable to compute error positions", err, telemetry.Package.Of(pkg.ID())) + continue + } + pkg.errors = append(pkg.errors, srcErr) } - pkg.errors = append(pkg.errors, srcErr) } return pkg, nil }