[clang] [Clang] Address feedback in PR183010 (PR #185608)

Matheus Izvekov via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 10 10:30:39 PDT 2026


================
@@ -185,13 +185,12 @@ enum class TemplateSubstitutionKind : char {
       return !(*this)(Depth, Index).isNull();
     }
 
-    bool isAnyArgInstantiationDependent(const ASTContext &C) const {
+    bool isAnyArgDependent(const ASTContext &C) const {
       for (ArgumentListLevel ListLevel : TemplateArgumentLists)
         for (const TemplateArgument &TA : ListLevel.Args)
           // There might be null template arguments representing unused template
           // parameter mappings in an MLTAL during concept checking.
-          if (!TA.isNull() &&
-              C.getCanonicalTemplateArgument(TA).isInstantiationDependent())
+          if (!TA.isNull() && C.getCanonicalTemplateArgument(TA).isDependent())
----------------
mizvekov wrote:

Is there a difference to checking if the node is dependent, instead of the canonical node?

I don't think there can be such a node that can be canonically dependent, where the non-canonical form is not, outside of bugs.

For expressions, again this canonicalization doesn't do anything at all since they don't have a canonical form.

Could you add a few tests equivalent to the existing one, for the original PR, where they also check the other kinds of template arguments? At least one more for expressions, but one for TemplateName would be nice as well.

https://github.com/llvm/llvm-project/pull/185608


More information about the cfe-commits mailing list