================
@@ -234,23 +234,39 @@ enum class TemplateSubstitutionKind : char {
     /// Replaces the current 'innermost' level with the provided argument list.
     /// This is useful for type deduction cases where we need to get the entire
     /// list from the AST, but then add the deduced innermost list.
-    void replaceInnermostTemplateArguments(Decl *AssociatedDecl, ArgList Args) 
{
+    void replaceInnermostTemplateArguments(Decl *AssociatedDecl, ArgList Args,
+                                           bool Final = false) {
       assert((!TemplateArgumentLists.empty() || NumRetainedOuterLevels) &&
              "Replacing in an empty list?");
 
       if (!TemplateArgumentLists.empty()) {
-        assert((TemplateArgumentLists[0].AssociatedDeclAndFinal.getPointer() ||
-                TemplateArgumentLists[0].AssociatedDeclAndFinal.getPointer() ==
-                    AssociatedDecl) &&
-               "Trying to change incorrect declaration?");
+        // 
assert((!TemplateArgumentLists[0].AssociatedDeclAndFinal.getPointer()
+        // ||
+        //         TemplateArgumentLists[0].AssociatedDeclAndFinal.getPointer()
+        //         ==
+        //             AssociatedDecl) &&
+        //         "Trying to change incorrect declaration?");
         TemplateArgumentLists[0].Args = Args;
       } else {
         --NumRetainedOuterLevels;
         TemplateArgumentLists.push_back(
-            {{AssociatedDecl, /*Final=*/false}, Args});
+            {{AssociatedDecl, /*Final=*/Final}, Args});
       }
     }
 
+    void replaceOutermostTemplateArguments(Decl *AssociatedDecl, ArgList Args) 
{
+      assert((!TemplateArgumentLists.empty()) && "Replacing in an empty 
list?");
+      // 
assert((!TemplateArgumentLists.back().AssociatedDeclAndFinal.getPointer()
+      // ||
+      //         
TemplateArgumentLists.back().AssociatedDeclAndFinal.getPointer()
+      //         ==
+      //             AssociatedDecl) &&
+      //        "Trying to change incorrect declaration?");
----------------
zyn0217 wrote:

ditto

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

Reply via email to