[clang] [clang][Sema] Improve template argument deduction diagnostic (PR #122754)

via cfe-commits cfe-commits at lists.llvm.org
Wed Jan 29 13:12:57 PST 2025


================
@@ -11714,13 +11714,37 @@ static void DiagnoseBadDeduction(Sema &S, NamedDecl *Found, Decl *Templated,
     return;
   }
 
-  case TemplateDeductionResult::InvalidExplicitArguments:
+  case TemplateDeductionResult::InvalidExplicitArguments: {
     assert(ParamD && "no parameter found for invalid explicit arguments");
-    if (ParamD->getDeclName())
-      S.Diag(Templated->getLocation(),
-             diag::note_ovl_candidate_explicit_arg_mismatch_named)
-          << ParamD->getDeclName();
-    else {
+    if (ParamD->getDeclName()) {
----------------
cor3ntin wrote:

if the kind doesn't match (ie type vs non-type or the other way around for example) we do not need to put the actual type or value in the diagnostic. That would simplify a lot. cf my previous suggestion.

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


More information about the cfe-commits mailing list