[PATCH] D82739: [clangd] Improve heuristic resolution of dependent types in TargetFinder
Haojian Wu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 29 04:34:23 PDT 2020
hokein added inline comments.
================
Comment at: clang-tools-extra/clangd/FindTarget.cpp:172
std::vector<const NamedDecl *> resolveDependentExprToDecls(const Expr *E) {
assert(E->isTypeDependent());
if (const auto *ME = dyn_cast<CXXDependentScopeMemberExpr>(E)) {
----------------
hokein wrote:
> @nridge, the assertion is not true anymore, since we have extended it to support possibly-non-dependent expressions (`callExpr`, `MemberExpr`).
>
> we hit this assert when opening `clang/include/clang/ASTMatchers/ASTMatchers.h`. I think we probably need to remove it and rename related function names.
a reduce case:
```
template<typename T>
class Foo {
public:
int foo();
};
class Bar {
public:
static void k();
template <typename T> T convert() const;
};
void func();
template <typename T>
void foo2(Foo<T> t) {
Bar::k(t.foo()).template convert<T>();
}
```
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D82739/new/
https://reviews.llvm.org/D82739
More information about the cfe-commits
mailing list