internal/lsp: unlabel context, log errors when canceled

Updates golang/go#33678

Change-Id: I844d6599a3e0ae9594dda1abaebe938402b65822
Reviewed-on: https://go-review.googlesource.com/c/tools/+/190601
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Cottrell <iancottrell@google.com>
diff --git a/internal/lsp/cache/check.go b/internal/lsp/cache/check.go
index 30811ff..ca3efe9 100644
--- a/internal/lsp/cache/check.go
+++ b/internal/lsp/cache/check.go
@@ -128,7 +128,7 @@
 func (cph *checkPackageHandle) check(ctx context.Context) (*pkg, error) {
 	v := cph.handle.Get(ctx)
 	if v == nil {
-		return nil, errors.Errorf("check: %v", ctx.Err())
+		return nil, ctx.Err()
 	}
 	data := v.(*checkPackageData)
 	return data.pkg, data.err
@@ -255,7 +255,7 @@
 
 	for _, err := range parseErrors {
 		if err == context.Canceled {
-			return nil, err
+			return nil, errors.Errorf("parsing files for %s: %v", m.pkgPath, err)
 		}
 		if err != nil {
 			imp.view.session.cache.appendPkgError(pkg, err)
diff --git a/internal/lsp/cache/load.go b/internal/lsp/cache/load.go
index c36d866..ae095f1 100644
--- a/internal/lsp/cache/load.go
+++ b/internal/lsp/cache/load.go
@@ -80,7 +80,7 @@
 
 	// Check if the context has been canceled before calling packages.Load.
 	if ctx.Err() != nil {
-		return nil, errors.Errorf("checkMetadata: %v", ctx.Err())
+		return nil, ctx.Err()
 	}
 
 	ctx, done := trace.StartSpan(ctx, "packages.Load", telemetry.File.Of(f.filename()))
@@ -171,6 +171,7 @@
 	// Get file content in case we don't already have it.
 	parsed, err := v.session.cache.ParseGoHandle(f.Handle(ctx), source.ParseHeader).Parse(ctx)
 	if err == context.Canceled {
+		log.Error(ctx, "parsing file header", err, tag.Of("file", f.URI()))
 		return false
 	}
 	if parsed == nil {
diff --git a/internal/lsp/cache/parse.go b/internal/lsp/cache/parse.go
index 57830b5..2f2f247 100644
--- a/internal/lsp/cache/parse.go
+++ b/internal/lsp/cache/parse.go
@@ -70,7 +70,7 @@
 func (h *parseGoHandle) Parse(ctx context.Context) (*ast.File, error) {
 	v := h.handle.Get(ctx)
 	if v == nil {
-		return nil, errors.Errorf("Parse: %v", ctx.Err())
+		return nil, ctx.Err()
 	}
 	data := v.(*parseGoData)
 	return data.ast, data.err
diff --git a/internal/lsp/cache/pkg.go b/internal/lsp/cache/pkg.go
index fe2639e..7cf5e01 100644
--- a/internal/lsp/cache/pkg.go
+++ b/internal/lsp/cache/pkg.go
@@ -14,7 +14,6 @@
 	"golang.org/x/tools/go/analysis"
 	"golang.org/x/tools/go/packages"
 	"golang.org/x/tools/internal/lsp/source"
-	errors "golang.org/x/xerrors"
 )
 
 // pkg contains the type information needed by the source package.
@@ -72,7 +71,7 @@
 				return pkg.GetActionGraph(ctx, a)
 			}
 		case <-ctx.Done():
-			return nil, errors.Errorf("GetActionGraph: %v", ctx.Err())
+			return nil, ctx.Err()
 		}
 	} else {
 		// cache miss
diff --git a/internal/lsp/cache/token.go b/internal/lsp/cache/token.go
index 81daf59..aa6abc1 100644
--- a/internal/lsp/cache/token.go
+++ b/internal/lsp/cache/token.go
@@ -51,7 +51,7 @@
 func (h *tokenHandle) Token(ctx context.Context) (*token.File, error) {
 	v := h.handle.Get(ctx)
 	if v == nil {
-		return nil, errors.Errorf("Token: %v", ctx.Err())
+		return nil, ctx.Err()
 	}
 	data := v.(*tokenData)
 	return data.tok, data.err
diff --git a/internal/lsp/source/analysis.go b/internal/lsp/source/analysis.go
index 8046b37..ebb6cd1 100644
--- a/internal/lsp/source/analysis.go
+++ b/internal/lsp/source/analysis.go
@@ -28,7 +28,7 @@
 	defer done()
 
 	if ctx.Err() != nil {
-		return nil, errors.Errorf("analyze: %v", ctx.Err())
+		return nil, ctx.Err()
 	}
 
 	// Build nodes for initial packages.