================ @@ -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" ---------------- AidanGoldfarb wrote:
Updated the diags. I am not thrilled about ``` // FIXME: This is a hack. We should emit a better message // for ill-formed const exprs in >=C++20. if (qt.getCanonicalType() == SecondArg.getAsType().getCanonicalType() && __cplusplus <= 201703) ``` but I couldn't find another way to avoid the case. Would be resolved in a future PR, along with better messages for `TemplateTemplateParmDecl` cases. 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