r256278 - [ASTMatchers] Add booleanType() matcher.
Aaron Ballman via cfe-commits
cfe-commits at lists.llvm.org
Tue Dec 22 12:16:26 PST 2015
On Tue, Dec 22, 2015 at 3:06 PM, Samuel Benzaquen via cfe-commits
<cfe-commits at lists.llvm.org> wrote:
> Author: sbenza
> Date: Tue Dec 22 14:06:40 2015
> New Revision: 256278
>
> URL: http://llvm.org/viewvc/llvm-project?rev=256278&view=rev
> Log:
> [ASTMatchers] Add booleanType() matcher.
>
> Modified:
> cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h
> cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp
> cfe/trunk/unittests/ASTMatchers/ASTMatchersTest.cpp
>
> Modified: cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h?rev=256278&r1=256277&r2=256278&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h (original)
> +++ cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h Tue Dec 22 14:06:40 2015
> @@ -3762,6 +3762,18 @@ AST_MATCHER_FUNCTION_P_OVERLOAD(internal
> new internal::TypeLocTypeMatcher(InnerMatcher));
> }
>
> +/// \brief Matches type \c bool.
> +///
> +/// Given
> +/// \code
> +/// struct S { bool func(); };
> +/// \endcode
> +/// functionDecl(returns(boolType()))
The comment does not match reality -- I think you meant booleanType() instead.
Also, this commit did not update the documentation; please run
dump_ast_matchers.py as well.
~Aaron
> +/// matches "bool func();"
> +AST_MATCHER(Type, booleanType) {
> + return Node.isBooleanType();
> +}
> +
> /// \brief Matches type \c void.
> ///
> /// Given
>
> Modified: cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp?rev=256278&r1=256277&r2=256278&view=diff
> ==============================================================================
> --- cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp (original)
> +++ cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp Tue Dec 22 14:06:40 2015
> @@ -108,6 +108,7 @@ RegistryMaps::RegistryMaps() {
> REGISTER_MATCHER(autoType);
> REGISTER_MATCHER(binaryOperator);
> REGISTER_MATCHER(blockPointerType);
> + REGISTER_MATCHER(booleanType);
> REGISTER_MATCHER(breakStmt);
> REGISTER_MATCHER(builtinType);
> REGISTER_MATCHER(callExpr);
>
> Modified: cfe/trunk/unittests/ASTMatchers/ASTMatchersTest.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/ASTMatchers/ASTMatchersTest.cpp?rev=256278&r1=256277&r2=256278&view=diff
> ==============================================================================
> --- cfe/trunk/unittests/ASTMatchers/ASTMatchersTest.cpp (original)
> +++ cfe/trunk/unittests/ASTMatchers/ASTMatchersTest.cpp Tue Dec 22 14:06:40 2015
> @@ -4146,6 +4146,13 @@ TEST(TypeMatching, MatchesTypes) {
> EXPECT_TRUE(matches("struct S {};", qualType().bind("loc")));
> }
>
> +TEST(TypeMatching, MatchesBool) {
> + EXPECT_TRUE(matches("struct S { bool func(); };",
> + cxxMethodDecl(returns(booleanType()))));
> + EXPECT_TRUE(notMatches("struct S { void func(); };",
> + cxxMethodDecl(returns(booleanType()))));
> +}
> +
> TEST(TypeMatching, MatchesVoid) {
> EXPECT_TRUE(matches("struct S { void func(); };",
> cxxMethodDecl(returns(voidType()))));
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list