From 774c71fcf11405d0a5ce0aba75dc113822d62178 Mon Sep 17 00:00:00 2001 From: Heschi Kreinick Date: Mon, 30 Dec 2019 14:41:33 -0500 Subject: [PATCH] internal/lsp/cache: fix type error reporting in cgo When dealing with cgo files, we need to pass a Mapper for the authored file. I got most of the sites in CL 208501, but missed this one. I was nervous about starting to propagate errors, but all the tests passed, so shrug. Change-Id: I7505e670e9c01d719c72c3f99d01c8153c3d2ff5 Reviewed-on: https://go-review.googlesource.com/c/tools/+/212862 Run-TryBot: Heschi Kreinick TryBot-Result: Gobot Gobot Reviewed-by: Rebecca Stambler --- internal/lsp/cache/errors.go | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/internal/lsp/cache/errors.go b/internal/lsp/cache/errors.go index f6877fc770..7b0f07682f 100644 --- a/internal/lsp/cache/errors.go +++ b/internal/lsp/cache/errors.go @@ -180,26 +180,31 @@ func toSourceErrorKind(kind packages.ErrorKind) source.ErrorKind { } func typeErrorRange(ctx context.Context, fset *token.FileSet, pkg *pkg, pos token.Pos) (span.Span, error) { - spn, err := span.NewRange(fset, pos, pos).Span() - if err != nil { - return span.Span{}, err - } posn := fset.Position(pos) ph, _, err := findFileInPackage(pkg, span.FileURI(posn.Filename)) if err != nil { - return spn, nil // ignore errors + return span.Span{}, err } _, m, _, err := ph.Cached() if err != nil { - return spn, nil + return span.Span{}, err + } + spn, err := span.Range{ + FileSet: fset, + Start: pos, + End: pos, + Converter: m.Converter, + }.Span() + if err != nil { + return span.Span{}, err } s, err := spn.WithOffset(m.Converter) if err != nil { - return spn, nil // ignore errors + return span.Span{}, err } data, _, err := ph.File().Read(ctx) if err != nil { - return spn, nil // ignore errors + return span.Span{}, err } start := s.Start() offset := start.Offset()