Author: Stephen Kelly Date: 2019-12-10T20:48:45Z New Revision: 3e315ba2547cbbfd6055e38bbca03f4d11bacbea
URL: https://github.com/llvm/llvm-project/commit/3e315ba2547cbbfd6055e38bbca03f4d11bacbea DIFF: https://github.com/llvm/llvm-project/commit/3e315ba2547cbbfd6055e38bbca03f4d11bacbea.diff LOG: Deprecate the hasDefaultArgument matcher Summary: It doesn't provide a way to match on the contents of the default argumment. Rather than give it that capability, make it deprecated and recomment the use of hasInitializer instead. Reviewers: aaron.ballman Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D71166 Added: Modified: clang/include/clang/ASTMatchers/ASTMatchers.h Removed: ################################################################################ diff --git a/clang/include/clang/ASTMatchers/ASTMatchers.h b/clang/include/clang/ASTMatchers/ASTMatchers.h index 9c0aae2886fc..c3399db95b89 100644 --- a/clang/include/clang/ASTMatchers/ASTMatchers.h +++ b/clang/include/clang/ASTMatchers/ASTMatchers.h @@ -6544,6 +6544,20 @@ AST_MATCHER(NamedDecl, hasExternalFormalLinkage) { /// void x(int val) {} /// void y(int val = 0) {} /// \endcode +/// +/// Deprecated. Use hasInitializer() instead to be able to +/// match on the contents of the default argument. For example: +/// +/// \code +/// void x(int val = 7) {} +/// void y(int val = 42) {} +/// \endcode +/// parmVarDecl(hasInitializer(integerLiteral(equals(42)))) +/// matches the parameter of y +/// +/// A matcher such as +/// parmVarDecl(hasInitializer(anything())) +/// is equivalent to parmVarDecl(hasDefaultArgument()). AST_MATCHER(ParmVarDecl, hasDefaultArgument) { return Node.hasDefaultArg(); } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits