[clang] [clang][Sema] Improve template argument deduction diagnostic (PR #122754)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Feb 4 12:11:39 PST 2025
================
@@ -4870,14 +4870,16 @@ def note_ovl_candidate_inconsistent_deduction_types : Note<
"candidate template ignored: deduced values %diff{"
"of conflicting types for parameter %0 (%1 of type $ vs. %3 of type $)|"
"%1 and %3 of conflicting types for parameter %0}2,4">;
-def note_ovl_candidate_explicit_arg_mismatch_named : Note<
+def note_ovl_candidate_explicit_arg_mismatch : Note<
"candidate template ignored: invalid explicitly-specified argument "
- "for template parameter %0">;
+ "for %ordinal0 template parameter">;
+def note_ovl_candidate_explicit_arg_mismatch_detail : Note<
+ "%select{"
+ "|: expected a type, but got value '%1'"
+ "|: expected constant of type %3 but got type %1"
+ "|: could not convert '%1' from %2 to %3}0">;
----------------
cor3ntin wrote:
Poking at it, it seems that it would be pretty challenging to do.
I don't think it's a good idea to try to do it in this PR - might be worth explore separately
I think/hope TemplateDeductionResult has the info you want (diags_begin/diags_end)
I think in `clang::MakeDeductionFailureInfo` you would want to extract more information from Info, like we do for `TemplateDeductionResult::SubstitutionFailure` - At least I'd try to explorer that.
Again, maybe do that in a subsequent PR
https://github.com/llvm/llvm-project/pull/122754
More information about the cfe-commits
mailing list