================ @@ -1700,6 +1717,21 @@ namespace { return inherited::TransformTemplateArgument(Input, Output, Uneval); } + using TreeTransform::TransformTemplateSpecializationType; + QualType + TransformTemplateSpecializationType(TypeLocBuilder &TLB, + TemplateSpecializationTypeLoc TL) { + auto *T = TL.getTypePtr(); + if (!getSema().ArgPackSubstIndex || !T->isSugared() || + !isPackProducingBuiltinTemplateName(T->getTemplateName())) + return TreeTransform::TransformTemplateSpecializationType(TLB, TL); + // Look through sugar to get to the SubstBuiltinTemplatePackType that we + // need to substitute into. + QualType R = TransformType(T->desugar()); + TLB.pushTrivial(getSema().getASTContext(), R, TL.getBeginLoc()); + return R; + } ---------------- ilya-biryukov wrote:
> But I'd think you be able to build a new AST Node which is basically a > stripped down base class of PackIndexType which would be a good fit for this, > and that's not as much work as building something from scratch. Extracting a shared base definitely seems like a good, left a FIXME for now, will make sure to follow up on that. https://github.com/llvm/llvm-project/pull/106730 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits