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 <heschi@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
This commit is contained in:
Heschi Kreinick 2019-12-30 14:41:33 -05:00
parent 7bda30096d
commit 774c71fcf1
1 changed files with 13 additions and 8 deletions

View File

@ -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()