[clang] [clang][NFC] Refactor `Sema::TemplateDeductionResult` (PR #81398)

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Mon Feb 12 07:33:45 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:

Cool.  It'll be interesting to see if we ever end up here, and the assert message is good enough we can figure out what to do pretty easily based on bug reports.  Thanks!

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


More information about the cfe-commits mailing list