diff options
| author | Aaron Ballman <aaron@aaronballman.com> | 2017-03-15 20:14:25 +0000 |
|---|---|---|
| committer | Aaron Ballman <aaron@aaronballman.com> | 2017-03-15 20:14:25 +0000 |
| commit | 9fd6ee6a7842628f72b39fa2bdacdb201a6681d8 (patch) | |
| tree | 05b2a374cbbfb5eddc14015eb5c2f14e10a3b9b8 /clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp | |
| parent | 43e3f97797a7ae37b086151d434878b6809400bc (diff) | |
| download | llvm-9fd6ee6a7842628f72b39fa2bdacdb201a6681d8.zip llvm-9fd6ee6a7842628f72b39fa2bdacdb201a6681d8.tar.gz llvm-9fd6ee6a7842628f72b39fa2bdacdb201a6681d8.tar.bz2 | |
Add AST matchers for ObjCProtocolDecl, ObjCCategoryDecl, ObjCMethodDecl, ObjCIvarDecl, and ObjCPropertyDecl.
Patch by Dave Lee.
llvm-svn: 297882
Diffstat (limited to 'clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp')
| -rw-r--r-- | clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp b/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp index dd45ca3..4c13acf 100644 --- a/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp +++ b/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp @@ -1500,9 +1500,10 @@ TEST(ObjCMessageExprMatcher, SimpleExprs) { std::string Objc1String = "@interface Str " - " - (Str *)uppercaseString:(Str *)str;" + " - (Str *)uppercaseString;" "@end " "@interface foo " + "- (void)contents;" "- (void)meth:(Str *)text;" "@end " " " @@ -1540,5 +1541,45 @@ TEST(ObjCMessageExprMatcher, SimpleExprs) { ))); } +TEST(ObjCDeclMacher, CoreDecls) { + std::string ObjCString = + "@protocol Proto " + "- (void)protoDidThing; " + "@end " + "@interface Thing " + "@property int enabled; " + "@end " + "@interface Thing (ABC) " + "- (void)abc_doThing; " + "@end " + "@implementation Thing " + "{ id _ivar; } " + "- (void)anything {} " + "@end " + ; + + EXPECT_TRUE(matchesObjC( + ObjCString, + objcProtocolDecl(hasName("Proto")))); + EXPECT_TRUE(matchesObjC( + ObjCString, + objcCategoryDecl(hasName("ABC")))); + EXPECT_TRUE(matchesObjC( + ObjCString, + objcMethodDecl(hasName("protoDidThing")))); + EXPECT_TRUE(matchesObjC( + ObjCString, + objcMethodDecl(hasName("abc_doThing")))); + EXPECT_TRUE(matchesObjC( + ObjCString, + objcMethodDecl(hasName("anything")))); + EXPECT_TRUE(matchesObjC( + ObjCString, + objcIvarDecl(hasName("_ivar")))); + EXPECT_TRUE(matchesObjC( + ObjCString, + objcPropertyDecl(hasName("enabled")))); +} + } // namespace ast_matchers } // namespace clang |
