diff options
author | Haojian Wu <hokein.wu@gmail.com> | 2020-02-05 09:56:13 +0100 |
---|---|---|
committer | Haojian Wu <hokein.wu@gmail.com> | 2020-06-10 10:43:50 +0200 |
commit | 85a2d23d963a5bd537a447378c6fc19b6a8b224a (patch) | |
tree | 3f934891f582749824f50436028e29670029fc02 /clang-tools-extra | |
parent | 7918dbda298871cd4f7f622c4d880e9251986ffd (diff) | |
download | bcm5719-llvm-85a2d23d963a5bd537a447378c6fc19b6a8b224a.tar.gz bcm5719-llvm-85a2d23d963a5bd537a447378c6fc19b6a8b224a.zip |
[clangd] Add the missing elaborated types in FindTarget.
Reviewers: sammccall
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D74025
(cherry picked from commit eaf0c89ec5f866b6cef296c542c030bb2cf8481d)
Diffstat (limited to 'clang-tools-extra')
-rw-r--r-- | clang-tools-extra/clangd/FindTarget.cpp | 4 | ||||
-rw-r--r-- | clang-tools-extra/clangd/unittests/FindTargetTests.cpp | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/FindTarget.cpp b/clang-tools-extra/clangd/FindTarget.cpp index 5bdb1a63b87..5912464b0ed 100644 --- a/clang-tools-extra/clangd/FindTarget.cpp +++ b/clang-tools-extra/clangd/FindTarget.cpp @@ -374,6 +374,10 @@ public: Outer.add(TT->getAsTagDecl(), Flags); } + void VisitElaboratedType(const ElaboratedType *ET) { + Outer.add(ET->desugar(), Flags); + } + void VisitInjectedClassNameType(const InjectedClassNameType *ICNT) { Outer.add(ICNT->getDecl(), Flags); } diff --git a/clang-tools-extra/clangd/unittests/FindTargetTests.cpp b/clang-tools-extra/clangd/unittests/FindTargetTests.cpp index bbba007d242..9c1020b7a18 100644 --- a/clang-tools-extra/clangd/unittests/FindTargetTests.cpp +++ b/clang-tools-extra/clangd/unittests/FindTargetTests.cpp @@ -242,6 +242,13 @@ TEST_F(TargetDeclTest, Types) { )cpp"; EXPECT_DECLS("TypedefTypeLoc", {"typedef S X", Rel::Alias}, {"struct S", Rel::Underlying}); + Code = R"cpp( + namespace ns { struct S{}; } + typedef ns::S X; + [[X]] x; + )cpp"; + EXPECT_DECLS("TypedefTypeLoc", {"typedef ns::S X", Rel::Alias}, + {"struct S", Rel::Underlying}); // FIXME: Auto-completion in a template requires disabling delayed template // parsing. |