diff options
| author | Shuai Wang <shuaiwang@google.com> | 2018-09-17 18:48:43 +0000 |
|---|---|---|
| committer | Shuai Wang <shuaiwang@google.com> | 2018-09-17 18:48:43 +0000 |
| commit | e0248aecbe64f2df84f9e92a569604233820991a (patch) | |
| tree | 15adcaa37ce3b07e025aef7437b117660ecd36ee /clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp | |
| parent | 534c87df82909b63049b80d42b2390cd008c350a (diff) | |
| download | bcm5719-llvm-e0248aecbe64f2df84f9e92a569604233820991a.tar.gz bcm5719-llvm-e0248aecbe64f2df84f9e92a569604233820991a.zip | |
[ASTMatchers] Let isArrow also support UnresolvedMemberExpr, CXXDependentScopeMemberExpr
Reviewers: aaron.ballman
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D52157
llvm-svn: 342407
Diffstat (limited to 'clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp')
| -rw-r--r-- | clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp b/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp index 537ffbb8964..39a5d577291 100644 --- a/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp +++ b/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp @@ -765,6 +765,11 @@ TEST(IsArrow, MatchesMemberVariablesViaArrow) { memberExpr(isArrow()))); EXPECT_TRUE(notMatches("class Y { void x() { (*this).y; } int y; };", memberExpr(isArrow()))); + EXPECT_TRUE(matches("template <class T> class Y { void x() { this->m; } };", + cxxDependentScopeMemberExpr(isArrow()))); + EXPECT_TRUE( + notMatches("template <class T> class Y { void x() { (*this).m; } };", + cxxDependentScopeMemberExpr(isArrow()))); } TEST(IsArrow, MatchesStaticMemberVariablesViaArrow) { @@ -783,6 +788,14 @@ TEST(IsArrow, MatchesMemberCallsViaArrow) { memberExpr(isArrow()))); EXPECT_TRUE(notMatches("class Y { void x() { Y y; y.x(); } };", memberExpr(isArrow()))); + EXPECT_TRUE( + matches("class Y { template <class T> void x() { this->x<T>(); } };", + unresolvedMemberExpr(isArrow()))); + EXPECT_TRUE(matches("class Y { template <class T> void x() { x<T>(); } };", + unresolvedMemberExpr(isArrow()))); + EXPECT_TRUE( + notMatches("class Y { template <class T> void x() { (*this).x<T>(); } };", + unresolvedMemberExpr(isArrow()))); } TEST(ConversionDeclaration, IsExplicit) { |

