go/internal/lsp/source
Robert Findley bc957ec62f internal/lsp/source: use token.File-agnostic positions to dedupe refs
We were already using a token.File-agnostic position for object
positions in our references algorithm, but still relied on token.Pos for
identifying duplicate references. This breaks down when a file may have
multiple parsed representations in different packages.

While we should endeavor to eliminate duplicate parsing, our algorithms
should not rely on this for correctness. Update the reference
de-duplication to use the same position key as object search.

For golang/go#53796

Change-Id: Ic2e6c23380ea4e6b2747e4e5b45d7bfa6e656f0f
Reviewed-on: https://go-review.googlesource.com/c/tools/+/416881
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
2022-07-12 14:39:04 +00:00
..
completion internal/span: make NewRange accept File, not FileSet 2022-07-06 19:40:50 +00:00
add_import.go internal/lsp: add list_known_packages and add_import commands 2021-05-23 03:57:00 +00:00
api_json.go gopls/doc: regenerate documentation 2022-06-29 17:54:53 +00:00
call_hierarchy.go internal/span: make NewRange accept File, not FileSet 2022-07-06 19:40:50 +00:00
code_lens.go internal/span: make NewRange accept File, not FileSet 2022-07-06 19:40:50 +00:00
comment.go gopls, internal/lsp: gofmt 2022-04-12 17:41:31 +00:00
comment_test.go internal/lsp/source: refactor commentToMarkdown function 2021-05-19 23:19:09 +00:00
diagnostics.go internal/lsp: remove unused code 2022-03-17 13:53:41 +00:00
extract.go internal/span: make NewRange accept File, not FileSet 2022-07-06 19:40:50 +00:00
fix.go internal/span: make NewRange accept File, not FileSet 2022-07-06 19:40:50 +00:00
folding_range.go internal/span: make NewRange accept File, not FileSet 2022-07-06 19:40:50 +00:00
format.go internal/span: eliminate TokenConverter 2022-06-01 19:19:15 +00:00
format_test.go internal/lsp: use source.Offset instead of tok.Offset 2021-10-12 22:12:04 +00:00
gc_annotations.go internal/lsp: key GC details off package ID 2021-03-02 22:01:38 +00:00
highlight.go internal/lsp/source: eliminate ColumnMapper.PointSpan in favor of Pos 2022-06-01 19:19:59 +00:00
hover.go internal/lsp/source: eliminate ColumnMapper.PointSpan in favor of Pos 2022-06-01 19:19:59 +00:00
identifier.go internal/span: make NewRange accept File, not FileSet 2022-07-06 19:40:50 +00:00
identifier_test.go internal/span: eliminate TokenConverter 2022-06-01 19:19:15 +00:00
implementation.go internal/lsp/source: use token.File-agnostic positions to dedupe refs 2022-07-12 14:39:04 +00:00
inlay_hint.go internal/lsp: add text edits for unkeyed literals 2022-06-30 17:08:31 +00:00
known_packages.go gopls: remove usage of golang.org/x/xerrors 2022-04-20 15:33:22 +00:00
options.go internal/lsp: add settings for inlay hints and enable 2022-06-22 17:08:41 +00:00
options_test.go gopls: upgrade staticcheck to v0.3.0 2022-04-07 14:59:24 +00:00
references.go internal/lsp/source: use token.File-agnostic positions to dedupe refs 2022-07-12 14:39:04 +00:00
rename.go internal/span: make NewRange accept File, not FileSet 2022-07-06 19:40:50 +00:00
rename_check.go internal/span: make NewRange accept File, not FileSet 2022-07-06 19:40:50 +00:00
signature_help.go internal/lsp/cache: use GetHandle not Bind in astCacheData 2022-07-07 02:48:48 +00:00
source_test.go internal/lsp/cache: make snapshot reference counting uniform 2022-07-11 18:57:05 +00:00
stub.go internal: remove unneeded FileSets 2022-06-06 20:47:10 +00:00
symbols.go gopls: remove usage of golang.org/x/xerrors 2022-04-20 15:33:22 +00:00
types_format.go internal/lsp/cache: use GetHandle not Bind in astCacheData 2022-07-07 02:48:48 +00:00
util.go internal/lsp/cache: use GetHandle not Bind in astCacheData 2022-07-07 02:48:48 +00:00
util_test.go internal/span: make NewRange accept File, not FileSet 2022-07-06 19:40:50 +00:00
view.go internal/lsp/cache: make snapshot reference counting uniform 2022-07-11 18:57:05 +00:00
workspace_symbol.go internal/lsp/source: reduce allocation in workspace-symbols 2022-07-01 16:22:00 +00:00
workspace_symbol_test.go internal/lsp/source: parse symbol queries when using fastfuzzy 2022-01-19 15:06:07 +00:00