[PATCH] D153248: [clangd] Use resolveTypeToRecordDecl() to resolve the type of a base specifier during heuristic resolution
    Nathan Ridge via Phabricator via cfe-commits 
    cfe-commits at lists.llvm.org
       
    Mon Jun 19 12:04:28 PDT 2023
    
    
  
nridge added a comment.
In D153248#4432108 <https://reviews.llvm.org/D153248#4432108>, @hokein wrote:
> The other question might worth thinking, are these cases critical to fix now? I'm not sure `this->find()` is a common case (`find();` already works today).
I may have simplified the test case a bit too much; a more representative case is one where the base class is a template, and the derived class passes its template parameter to the base:
  template <typename T>
  struct Waldo {
    void find();
  };
  
  template <typename T>
  using Wally = Waldo<T>;
  
  template <typename T>
  struct S : Wally<T> {
    void Foo() { this->find(); }
  };
In a case like, the base class is a "dependent base", and the `this->` is required (without it the code doesn't compile, because the compiler only attempts the first phase of the name lookup on `find`, and that gives no results).
In any case, the code was reduced from a bug report affecting a real codebase.
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D153248/new/
https://reviews.llvm.org/D153248
    
    
More information about the cfe-commits
mailing list