================ @@ -672,9 +672,15 @@ class Matcher { DynTypedMatcher Implementation; }; // class Matcher -/// A convenient helper for creating a Matcher<T> without specifying -/// the template type argument. +// Deduction guide for Matcher. +template <typename T> Matcher(MatcherInterface<T> *) -> Matcher<T>; + +// TODO: Remove in LLVM 23. template <typename T> +[[deprecated( + "makeMatcher() is deprecated and will be removed in LLVM 23. " + "Uses of it can be replaced with direct calls to Matcher's " + "constructor; with C++17's CTAD, template arguments will be deduced.")]] ---------------- vbvictor wrote:
Could we make message smaller, no need to tell how CTAD works IMO. We could just with `[[deprecated("Use CTAD constructor instead, 'makeMatcher' will be removed in LLVM 23")]]` https://github.com/llvm/llvm-project/pull/147197 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits