jvikstrom marked an inline comment as done.
jvikstrom added inline comments.


================
Comment at: clang-tools-extra/clangd/SemanticHighlighting.cpp:177
       return;
+    if (TP->isPointerType() || TP->isLValueReferenceType())
+      // When highlighting dependant template types the type can be a pointer 
or
----------------
ilya-biryukov wrote:
> `RecursiveASTVisitor` also traverses the pointer and reference types, why 
> does it not reach the inner `TemplateTypeParmType` in the cases you describe?
The D in `using D = ...` `typedef ... D` does not have a TypeLoc (at least not 
one that is visited). Therefore we use the VisitTypedefNameDecl (line 121) to 
get the location of `D` to be able to highlight it. And we just send the 
typeLocs typeptr to addType (which is a Pointer for `using D = T*;`)...

But maybe we should get the underlying type before we call addType with 
TypePtr? Just a while loop on line 123 basically (can we have multiple 
PointerTypes nested in each other actually?)

Even if we keep it in addType the comment is actually wrong, because it 
obviously works when for the actual "type occurrences" for `D` (so will fix 
that no matter what). This recursion will just make us add more duplicate 
tokens...


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D66516



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to