[PATCH] D134827: [clangd] Avoid recursion on UnresolvedUsingValueDecl during semantic highlighting
    Nathan Ridge via Phabricator via cfe-commits 
    cfe-commits at lists.llvm.org
       
    Sun Mar 19 01:27:07 PDT 2023
    
    
  
nridge added inline comments.
================
Comment at: clang-tools-extra/clangd/SemanticHighlighting.cpp:143
     auto Targets = Resolver->resolveUsingValueDecl(UUVD);
-    if (!Targets.empty()) {
+    if (!Targets.empty() && Targets[0] != UUVD) {
       return kindForDecl(Targets[0], Resolver);
----------------
sammccall wrote:
> This looks good+safe.
> 
> I wonder if the check should be moved inside resolveUsingValueDecl - having it resolve to itself seems unhelpful always.
> I wonder if the check should be moved inside resolveUsingValueDecl - having it resolve to itself seems unhelpful always.
I haven't done this because, as mentioned earlier, I think a fix for the mutually-recursive case will need to build on logic here rather than inside resolveUsingValueDecl.
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D134827/new/
https://reviews.llvm.org/D134827
    
    
More information about the cfe-commits
mailing list