[PATCH] D99052: [clangd] Produce semantic token for name referring to UnresolvedUsingValueDecl

Sam McCall via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 23 15:00:24 PDT 2021


sammccall accepted this revision.
sammccall added inline comments.
This revision is now accepted and ready to land.
Herald added a subscriber: cfe-commits.


================
Comment at: clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp:655
+        struct $Class_decl[[Derived]] : $Class[[Base]]<$TemplateParameter[[T]]> {
+          using $Class[[Base]]<$TemplateParameter[[T]]>::$Unknown_decl_dependentName[[member]];
+
----------------
nridge wrote:
> Not sure how I feel about this being a `_decl`.
> 
> I know it is in the technical sense, but as a user I think of it more as a reference to `Base::member`.
Yeah, I agree, and the combination of `decl` and `dependentName` is pretty funny.

We have non-dependent equivalent cases (`using ::foo`, not the renaming versions) and they don't seem to be marked as decl. (I think what's happening is that `findExplicitReferences` yields the *UsingShadowDecl*s rather than the *UsingDecl*, as only the former are directly bound to a specific e.g. overload being referenced)

So with that as precedent, it seems like it would be legitimate to special-case UnresolvedUsingValueDecl  when adding the decl modifier.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D99052/new/

https://reviews.llvm.org/D99052



More information about the cfe-commits mailing list