================
@@ -5697,6 +5698,39 @@ QualType ASTContext::getDecltypeType(Expr *e, QualType 
UnderlyingType) const {
   return QualType(dt, 0);
 }
 
+QualType ASTContext::getPackIndexingType(QualType Pattern, Expr *IndexExpr,
+                                         bool FullyExpanded,
+                                         ArrayRef<QualType> Expansions,
+                                         int Index) const {
+  QualType Canonical;
+  if (FullyExpanded && Index != -1) {
----------------
cor3ntin wrote:

given ```cpp

auto f(auto... a) -> decltype(a...[0]);

auto g(auto b...) {
   return f<int>(b...);
}
```

We end up in a situation where we have some expansion for `a...` because 
explicit parameters (int) are substituted, but we still have a pack. 

We seem to use "Partially substituted" in some other places, would that be more 
clear?




https://github.com/llvm/llvm-project/pull/72644
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to