From: Aleksei Sidorin Date: Sun, 3 Dec 2017 16:04:07 +0000 (+0000) Subject: [ASTImporter] Add unit tests for UsingDecl and UsingShadowDecl X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=008134d00bbe515d1d885aa2e021d698d3d41a04;p=clang [ASTImporter] Add unit tests for UsingDecl and UsingShadowDecl Patch by Kareem Khazem! Differential Revision: https://reviews.llvm.org/D27181 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@319632 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/unittests/AST/ASTImporterTest.cpp b/unittests/AST/ASTImporterTest.cpp index 86518e132d..64dd4fc953 100644 --- a/unittests/AST/ASTImporterTest.cpp +++ b/unittests/AST/ASTImporterTest.cpp @@ -583,5 +583,46 @@ TEST(ImportExpr, ImportCXXPseudoDestructorExpr) { callExpr(has(cxxPseudoDestructorExpr())))))))); } +TEST(ImportDecl, ImportUsingDecl) { + MatchVerifier Verifier; + EXPECT_TRUE( + testImport( + "namespace foo { int bar; }" + "int declToImport(){ using foo::bar; }", + Lang_CXX, "", Lang_CXX, Verifier, + functionDecl( + has( + compoundStmt( + has( + declStmt( + has( + usingDecl())))))))); +} + +/// \brief Matches shadow declarations introduced into a scope by a +/// (resolved) using declaration. +/// +/// Given +/// \code +/// namespace n { int f; } +/// namespace declToImport { using n::f; } +/// \endcode +/// usingShadowDecl() +/// matches \code f \endcode +const internal::VariadicDynCastAllOfMatcher usingShadowDecl; + +TEST(ImportDecl, ImportUsingShadowDecl) { + MatchVerifier Verifier; + EXPECT_TRUE( + testImport( + "namespace foo { int bar; }" + "namespace declToImport { using foo::bar; }", + Lang_CXX, "", Lang_CXX, Verifier, + namespaceDecl( + has( + usingShadowDecl())))); +} + } // end namespace ast_matchers } // end namespace clang