зеркало из https://github.com/microsoft/clang-1.git
Add parameterCountIs() matcher.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169257 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
a88bb45f11
Коммит
36e29d6732
|
@ -1974,6 +1974,19 @@ AST_MATCHER_P(FunctionDecl, hasAnyParameter,
|
|||
return false;
|
||||
}
|
||||
|
||||
/// \brief Matches \c FunctionDecls that have a specific parameter count.
|
||||
///
|
||||
/// Given
|
||||
/// \code
|
||||
/// void f(int i) {}
|
||||
/// void g(int i, int j) {}
|
||||
/// \endcode
|
||||
/// functionDecl(parameterCountIs(2))
|
||||
/// matches g(int i, int j) {}
|
||||
AST_MATCHER_P(FunctionDecl, parameterCountIs, unsigned, N) {
|
||||
return Node.getNumParams() == N;
|
||||
}
|
||||
|
||||
/// \brief Matches the return type of a function declaration.
|
||||
///
|
||||
/// Given:
|
||||
|
|
|
@ -1238,6 +1238,14 @@ TEST(Matcher, ArgumentCount) {
|
|||
EXPECT_TRUE(notMatches("void x(int, int) { x(0, 0); }", Call1Arg));
|
||||
}
|
||||
|
||||
TEST(Matcher, ParameterCount) {
|
||||
DeclarationMatcher Function1Arg = functionDecl(parameterCountIs(1));
|
||||
EXPECT_TRUE(matches("void f(int i) {}", Function1Arg));
|
||||
EXPECT_TRUE(matches("class X { void f(int i) {} };", Function1Arg));
|
||||
EXPECT_TRUE(notMatches("void f() {}", Function1Arg));
|
||||
EXPECT_TRUE(notMatches("void f(int i, int j, int k) {}", Function1Arg));
|
||||
}
|
||||
|
||||
TEST(Matcher, References) {
|
||||
DeclarationMatcher ReferenceClassX = varDecl(
|
||||
hasType(references(recordDecl(hasName("X")))));
|
||||
|
|
Загрузка…
Ссылка в новой задаче