[clang] [clang][CodeComplete] Use HeuristicResolver to resolve DependentNameTypes (PR #123818)

Haojian Wu via cfe-commits cfe-commits at lists.llvm.org
Wed Jan 22 00:28:50 PST 2025


================
@@ -5736,11 +5736,20 @@ class ConceptInfo {
 // In particular, when E->getType() is DependentTy, try to guess a likely type.
 // We accept some lossiness (like dropping parameters).
 // We only try to handle common expressions on the LHS of MemberExpr.
-QualType getApproximateType(const Expr *E) {
+QualType getApproximateType(const Expr *E, HeuristicResolver &Resolver) {
   if (E->getType().isNull())
     return QualType();
   E = E->IgnoreParenImpCasts();
   QualType Unresolved = E->getType();
+  // Resolve DependentNameType
+  if (const auto *DNT = Unresolved->getAs<DependentNameType>()) {
+    auto Decls = Resolver.resolveDependentNameType(DNT);
+    if (Decls.size() == 1) {
----------------
hokein wrote:

nit: 
```
if (auto Decls = Resolver.resolveDependentNameType(DNT); Decls.size() == 1) {
}
```

https://github.com/llvm/llvm-project/pull/123818


More information about the cfe-commits mailing list