================
@@ -78,6 +79,15 @@ matchEnableIfSpecializationImplTypename(TypeLoc TheType) {
     if (!TD || TD->getName() != "enable_if")
       return std::nullopt;
 
+    const TemplateParameterList *Params = TD->getTemplateParameters();
+    if (Params->size() != 2)
+      return std::nullopt;
----------------
localspook wrote:

It looks like specializations of different kinds are represented in the AST as: 
- `FunctionDecl`
- `VarTemplatePartialSpecializationDecl`
- `VarTemplateSpecializationDecl`
- `ClassTemplatePartialSpecializationDecl`
- `ClassTemplateSpecializationDecl`

None of those are subclasses of `TemplateDecl`. That means they wouldn't get 
past the `getAsTemplateDecl()` check above, so I'm hesitantly removing this 
check.

https://godbolt.org/z/PqeMe3fsx

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

Reply via email to