diff --git a/clang/docs/tools/dump_ast_matchers.py b/clang/docs/tools/dump_ast_matchers.py --- a/clang/docs/tools/dump_ast_matchers.py +++ b/clang/docs/tools/dump_ast_matchers.py @@ -351,13 +351,17 @@ m = re.match( r"""^.*internal::VariadicFunction\s*<\s* - internal::PolymorphicMatcherWithParam1<[\S\s]+ - AST_POLYMORPHIC_SUPPORTED_TYPES\(([^)]*)\)>,\s*([^,]+), - \s*[^>]+>\s*([a-zA-Z]*);$""", + internal::PolymorphicMatcherWithParamN<[\S\s]+ + AST_POLYMORPHIC_SUPPORTED_TYPES\(([^)]*)\),\s*(.*);$""", declaration, flags=re.X) if m: - results, arg, name = m.groups()[:3] + results, trailing = m.groups() + trailing, name = trailing.rsplit(">", 1) + name = name.strip() + trailing, _ = trailing.rsplit(",", 1) + _, arg = trailing.rsplit(",", 1) + arg = arg.strip() result_types = [r.strip() for r in results.split(',')] for result_type in result_types: diff --git a/clang/include/clang/ASTMatchers/ASTMatchers.h b/clang/include/clang/ASTMatchers/ASTMatchers.h --- a/clang/include/clang/ASTMatchers/ASTMatchers.h +++ b/clang/include/clang/ASTMatchers/ASTMatchers.h @@ -835,25 +835,15 @@ ToTypes>>(TK, InnerMatcher); } -template