[clang] [clang][NFC] Refactor `Sema::TemplateDeductionResult` (PR #81398)
Erich Keane via cfe-commits
cfe-commits at lists.llvm.org
Mon Feb 12 06:35:14 PST 2024
================
@@ -11445,11 +11452,16 @@ static void DiagnoseBadDeduction(Sema &S, NamedDecl *Found, Decl *Templated,
(ParamD = Param.dyn_cast<TemplateTypeParmDecl*>()) ||
(ParamD = Param.dyn_cast<NonTypeTemplateParmDecl*>()) ||
(ParamD = Param.dyn_cast<TemplateTemplateParmDecl*>());
- switch (DeductionFailure.Result) {
- case Sema::TDK_Success:
- llvm_unreachable("TDK_success while diagnosing bad deduction");
+ switch (DeductionFailure.getResult()) {
+ case TemplateDeductionResult::Success:
+ llvm_unreachable(
+ "TemplateDeductionResult::Success while diagnosing bad deduction");
+ case TemplateDeductionResult::Invalid:
+ case TemplateDeductionResult::NonDependentConversionFailure:
+ case TemplateDeductionResult::AlreadyDiagnosed:
+ return;
----------------
erichkeane wrote:
Ah, shoot... `Invalid` and `AlreadyDiagnosed` make sense to me to be here. I have no idea on the `NonDependentConversionFailure`, that one MIGHT be worth diagnosing, but I have no idea what such a diagnostic could look like.
Could you replace the 'return;' for that one with an assert and run the lit tests to see if it is something that might be valuable doing something with?
https://github.com/llvm/llvm-project/pull/81398
More information about the cfe-commits
mailing list