[clang] [Clang][AST] Store injected template arguments in TemplateParameterList (PR #113579)
Erich Keane via cfe-commits
cfe-commits at lists.llvm.org
Tue Oct 29 08:03:39 PDT 2024
================
@@ -51,14 +51,15 @@ DefaultTemplateArgumentContainsUnexpandedPack(const TemplateParam &P) {
P.getDefaultArgument().getArgument().containsUnexpandedParameterPack();
}
-TemplateParameterList::TemplateParameterList(const ASTContext& C,
+TemplateParameterList::TemplateParameterList(const ASTContext &C,
SourceLocation TemplateLoc,
SourceLocation LAngleLoc,
ArrayRef<NamedDecl *> Params,
SourceLocation RAngleLoc,
Expr *RequiresClause)
- : TemplateLoc(TemplateLoc), LAngleLoc(LAngleLoc), RAngleLoc(RAngleLoc),
- NumParams(Params.size()), ContainsUnexpandedParameterPack(false),
+ : InjectedArgs(&C), TemplateLoc(TemplateLoc), LAngleLoc(LAngleLoc),
----------------
erichkeane wrote:
> > Could you do that (add it as a parm to the `getInjectedTemplateArgs`, and see how rough it is for the callers to get the ASTContext), and put it somewhere I can take a look?
>
> @erichkeane See [3fd8326](https://github.com/llvm/llvm-project/commit/3fd8326e222877bce474010481a459b5db0c8be2)
>
> This _will_ break tools that use `getInjectedTemplateArgs` though (e.g. the tool I'm working on [MrDocs] uses `getInjectedTemplateArgs`).
Thanks for doing that! I'll note that looks way nicer IMO. I'd hope that downstream users would have access to the ASTContext/Sema in a way that they could use that? Is it REALLY troublesome/not really possible, or is it just a code change?
https://github.com/llvm/llvm-project/pull/113579
More information about the cfe-commits
mailing list