hokein accepted this revision.
hokein added inline comments.
This revision is now accepted and ready to land.


================
Comment at: clang-tools-extra/clangd/HeuristicResolver.cpp:33
 
+const Type *resolveDeclsToType(const std::vector<const NamedDecl *> &Decls,
+                               ASTContext &Ctx) {
----------------
nit: move this helper function to anonymous namespace.


================
Comment at: clang-tools-extra/clangd/HeuristicResolver.cpp:56
+  if (const auto *DNT = T->getAs<DependentNameType>()) {
+    T = resolveDeclsToType(resolveDependentNameType(DNT));
+    if (!T)
----------------
nridge wrote:
> hokein wrote:
> > Is the `resolveDeclsToType` call necessary here?  
> > The code path we're doing is `dependent-type => Decl* => Type => Decl*`, 
> > the later two steps seems redundant, can we just use the Decl result from 
> > `resolveDependentNameType()`?
> > 
> > 
> The Decl returned by `resolveDependentNameType()` in this testcase is a 
> `TypeAliasDecl`. The function needs to return the `CXXRecordDecl` which is 
> named by the target type of the alias.
> 
> We could add logic to "desugar" the `TypeAliasDecl`, but it seems easier to 
> reuse the existing logic that does the desugaring in type-land.
I see, thanks for the explanation (this part of code is a bit hard to follow). 


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D152645

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

Reply via email to