Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Great! Needs some tests though :-)
clang-tools-extra/clangd/FindTarget.cpp | ||
---|---|---|
659 | Can you move these into some logical order? | |
659 | Can you add tests for these changes? | |
clang-tools-extra/clangd/SemanticHighlighting.cpp | ||
146 | nit: the quality is of the categorization (the "highlighting"), not the token. I'd suggest something like enum HighlightPriority { Dependent, Resolved } so that < does the obvious thing. | |
148 | nit: move the enum inside this function and return unsigned? No need to worry about names then, and represents that this is only used for prioritization. | |
157 | why a limit of 2, vs a loop? | |
215–216 | can we move this case into resolveConflict? | |
217 | out of curiosity, *why* is the same token being highlighted as dependentname and resolved? Is it being traversed twice? |
Address review comments
clang-tools-extra/clangd/SemanticHighlighting.cpp | ||
---|---|---|
157 | I'm not aware of a scenario where we'd get more than two conflicting highlightings, except when macros are involved in which case we don't have a good way to disambiguate anyways. | |
217 | It's for the reason you described in this comment: the resolved highlighting comes from findExplicitReferences(), and the dependent one form CollectExtraHighlightings. |
clang-tools-extra/clangd/SemanticHighlighting.cpp | ||
---|---|---|
217 | Oh yeah :-) |
clang-tools-extra/clangd/SemanticHighlighting.cpp | ||
---|---|---|
157 | I should've listened to you when you suggested a loop :) I overlooked the case where findExplicitReferences() contributes more than one candidate token because a dependent name is heuristically resolved to an overload set, in which case we get one target for each overload. Fixed in D121775. |
clang-tools-extra/clangd/SemanticHighlighting.cpp | ||
---|---|---|
157 | I think this is a good sign, my tendency is to borrow too many problems from the future anyway :-) |
Can you move these into some logical order?
e.g. below the common cases, or paired with the non-dependent equivalents