================
@@ -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()) {
----------------
mizvekov wrote:

This bit about the highlight is in line with our best practices, to point 
things using source locations instead of printing them out. Printing the 
template name in addition to that is redundant and discouraged.

Pointing them out with source locations now works even better in that it 
handles anonymous template parameters gracefully, so you could go beyond and 
remove the current fallback for that case.

If it's even possible to not have a source location here, you could have a 
different fallback where now you print the name, or failing that, print the 
parameter index.

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

Reply via email to