diff options
author | Aaron Ballman <aaron@aaronballman.com> | 2016-04-14 16:05:45 +0000 |
---|---|---|
committer | Aaron Ballman <aaron@aaronballman.com> | 2016-04-14 16:05:45 +0000 |
commit | 66eb58a756a6cb4cb3f74f8d9e0eb3f56ad7fdfb (patch) | |
tree | 478ce81f6595d82ee4b28ba276f322dec068a790 /clang/unittests/ASTMatchers/ASTMatchersTest.cpp | |
parent | e149b488afd2c189214fb491101a9bb9bbab0c76 (diff) | |
download | bcm5719-llvm-66eb58a756a6cb4cb3f74f8d9e0eb3f56ad7fdfb.tar.gz bcm5719-llvm-66eb58a756a6cb4cb3f74f8d9e0eb3f56ad7fdfb.zip |
Add typedefNameDecl() and typeAliasDecl() to the AST matchers; improves hasType() to match on TypedefNameDecl nodes.
Patch by Clement Courbet.
llvm-svn: 266331
Diffstat (limited to 'clang/unittests/ASTMatchers/ASTMatchersTest.cpp')
-rw-r--r-- | clang/unittests/ASTMatchers/ASTMatchersTest.cpp | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/clang/unittests/ASTMatchers/ASTMatchersTest.cpp b/clang/unittests/ASTMatchers/ASTMatchersTest.cpp index df818ba9422..7d5cba90862 100644 --- a/clang/unittests/ASTMatchers/ASTMatchersTest.cpp +++ b/clang/unittests/ASTMatchers/ASTMatchersTest.cpp @@ -1101,6 +1101,16 @@ TEST(HasType, MatchesTypedefDecl) { typedefDecl(hasType(asString("foo")), hasName("bar")))); } +TEST(HasType, MatchesTypedefNameDecl) { + EXPECT_TRUE(matches("using X = int;", typedefNameDecl(hasType(asString("int"))))); + EXPECT_TRUE(matches("using T = const int;", + typedefNameDecl(hasType(asString("const int"))))); + EXPECT_TRUE(notMatches("using T = const int;", + typedefNameDecl(hasType(asString("int"))))); + EXPECT_TRUE(matches("using foo = int; using bar = foo;", + typedefNameDecl(hasType(asString("foo")), hasName("bar")))); +} + TEST(HasTypeLoc, MatchesDeclaratorDecls) { EXPECT_TRUE(matches("int x;", varDecl(hasName("x"), hasTypeLoc(loc(asString("int")))))); @@ -5404,9 +5414,25 @@ TEST(EqualsBoundNodeMatcher, UnlessDescendantsOfAncestorsMatch) { .bind("data"))); } -TEST(TypeDefDeclMatcher, Match) { +TEST(TypedefDeclMatcher, Match) { EXPECT_TRUE(matches("typedef int typedefDeclTest;", typedefDecl(hasName("typedefDeclTest")))); + EXPECT_TRUE(notMatches("using typedefDeclTest2 = int;", + typedefDecl(hasName("typedefDeclTest2")))); +} + +TEST(TypeAliasDeclMatcher, Match) { + EXPECT_TRUE(matches("using typeAliasTest2 = int;", + typeAliasDecl(hasName("typeAliasTest2")))); + EXPECT_TRUE(notMatches("typedef int typeAliasTest;", + typeAliasDecl(hasName("typeAliasTest")))); +} + +TEST(TypedefNameDeclMatcher, Match) { + EXPECT_TRUE(matches("typedef int typedefNameDeclTest1;", + typedefNameDecl(hasName("typedefNameDeclTest1")))); + EXPECT_TRUE(matches("using typedefNameDeclTest2 = int;", + typedefNameDecl(hasName("typedefNameDeclTest2")))); } TEST(IsInlineMatcher, IsInline) { |