[clang] [Clang][P1061] Add stuctured binding packs (PR #121417)
Younan Zhang via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 16 21:55:35 PST 2025
================
@@ -15991,6 +15998,24 @@ TreeTransform<Derived>::TransformFunctionParmPackExpr(FunctionParmPackExpr *E) {
return E;
}
+template <typename Derived>
+ExprResult TreeTransform<Derived>::TransformResolvedUnexpandedPackExpr(
+ ResolvedUnexpandedPackExpr *E) {
+ bool ArgumentChanged = false;
+ SmallVector<Expr *, 12> NewExprs;
+ if (TransformExprs(E->getExprs().begin(), E->getNumExprs(),
+ /*IsCall=*/false, NewExprs, &ArgumentChanged))
+ return ExprError();
+
+ if (!AlwaysRebuild() && !ArgumentChanged)
+ return E;
+
+ // NOTE: The type is just a superficial PackExpansionType
+ // that needs no substitution.
----------------
zyn0217 wrote:
Can we add a caveat to `ResolvedUnexpandedPackExpr` to highlight such a thing? People might be confused about an expanded ResolvedUnexpandedPackExpr still having an unexpanded PackExpansionType.
https://github.com/llvm/llvm-project/pull/121417
More information about the cfe-commits
mailing list