clang
15.0.0git
|
A structure used to record information about a failed template argument deduction, for diagnosis. More...
#include "clang/Sema/TemplateDeduction.h"
Public Member Functions | |
PartialDiagnosticAt * | getSFINAEDiagnostic () |
Retrieve the diagnostic which caused this deduction failure, if any. More... | |
TemplateParameter | getTemplateParameter () |
Retrieve the template parameter this deduction failure refers to, if any. More... | |
TemplateArgumentList * | getTemplateArgumentList () |
Retrieve the template argument list associated with this deduction failure, if any. More... | |
const TemplateArgument * | getFirstArg () |
Return the first template argument this deduction failure refers to, if any. More... | |
const TemplateArgument * | getSecondArg () |
Return the second template argument this deduction failure refers to, if any. More... | |
llvm::Optional< unsigned > | getCallArgIndex () |
Return the index of the call argument that this deduction failure refers to, if any. More... | |
void | Destroy () |
Free any memory associated with this deduction failure. More... | |
Public Attributes | |
unsigned | Result: 8 |
A Sema::TemplateDeductionResult. More... | |
unsigned | HasDiagnostic: 1 |
Indicates whether a diagnostic is stored in Diagnostic. More... | |
void * | Data |
Opaque pointer containing additional data about this deduction failure. More... | |
char | Diagnostic [sizeof(PartialDiagnosticAt)] |
A diagnostic indicating why deduction failed. More... | |
A structure used to record information about a failed template argument deduction, for diagnosis.
Definition at line 241 of file TemplateDeduction.h.
void DeductionFailureInfo::Destroy | ( | ) |
Free any memory associated with this deduction failure.
Definition at line 693 of file SemaOverload.cpp.
References Diag(), clang::Sema::TDK_ConstraintsNotSatisfied, clang::Sema::TDK_CUDATargetMismatch, clang::Sema::TDK_DeducedMismatch, clang::Sema::TDK_DeducedMismatchNested, clang::Sema::TDK_Incomplete, clang::Sema::TDK_IncompletePack, clang::Sema::TDK_Inconsistent, clang::Sema::TDK_InstantiationDepth, clang::Sema::TDK_Invalid, clang::Sema::TDK_InvalidExplicitArguments, clang::Sema::TDK_MiscellaneousDeductionFailure, clang::Sema::TDK_NonDeducedMismatch, clang::Sema::TDK_NonDependentConversionFailure, clang::Sema::TDK_SubstitutionFailure, clang::Sema::TDK_Success, clang::Sema::TDK_TooFewArguments, clang::Sema::TDK_TooManyArguments, and clang::Sema::TDK_Underqualified.
llvm::Optional< unsigned > DeductionFailureInfo::getCallArgIndex | ( | ) |
Return the index of the call argument that this deduction failure refers to, if any.
Definition at line 876 of file SemaOverload.cpp.
References clang::Sema::TDK_DeducedMismatch, and clang::Sema::TDK_DeducedMismatchNested.
const TemplateArgument * DeductionFailureInfo::getFirstArg | ( | ) |
Return the first template argument this deduction failure refers to, if any.
Definition at line 814 of file SemaOverload.cpp.
References clang::Sema::TDK_ConstraintsNotSatisfied, clang::Sema::TDK_CUDATargetMismatch, clang::Sema::TDK_DeducedMismatch, clang::Sema::TDK_DeducedMismatchNested, clang::Sema::TDK_Incomplete, clang::Sema::TDK_IncompletePack, clang::Sema::TDK_Inconsistent, clang::Sema::TDK_InstantiationDepth, clang::Sema::TDK_Invalid, clang::Sema::TDK_InvalidExplicitArguments, clang::Sema::TDK_MiscellaneousDeductionFailure, clang::Sema::TDK_NonDeducedMismatch, clang::Sema::TDK_NonDependentConversionFailure, clang::Sema::TDK_SubstitutionFailure, clang::Sema::TDK_Success, clang::Sema::TDK_TooFewArguments, clang::Sema::TDK_TooManyArguments, and clang::Sema::TDK_Underqualified.
const TemplateArgument * DeductionFailureInfo::getSecondArg | ( | ) |
Return the second template argument this deduction failure refers to, if any.
Definition at line 845 of file SemaOverload.cpp.
References clang::Sema::TDK_ConstraintsNotSatisfied, clang::Sema::TDK_CUDATargetMismatch, clang::Sema::TDK_DeducedMismatch, clang::Sema::TDK_DeducedMismatchNested, clang::Sema::TDK_Incomplete, clang::Sema::TDK_IncompletePack, clang::Sema::TDK_Inconsistent, clang::Sema::TDK_InstantiationDepth, clang::Sema::TDK_Invalid, clang::Sema::TDK_InvalidExplicitArguments, clang::Sema::TDK_MiscellaneousDeductionFailure, clang::Sema::TDK_NonDeducedMismatch, clang::Sema::TDK_NonDependentConversionFailure, clang::Sema::TDK_SubstitutionFailure, clang::Sema::TDK_Success, clang::Sema::TDK_TooFewArguments, clang::Sema::TDK_TooManyArguments, and clang::Sema::TDK_Underqualified.
PartialDiagnosticAt * DeductionFailureInfo::getSFINAEDiagnostic | ( | ) |
Retrieve the diagnostic which caused this deduction failure, if any.
Definition at line 740 of file SemaOverload.cpp.
TemplateArgumentList * DeductionFailureInfo::getTemplateArgumentList | ( | ) |
Retrieve the template argument list associated with this deduction failure, if any.
Definition at line 779 of file SemaOverload.cpp.
References clang::Sema::TDK_ConstraintsNotSatisfied, clang::Sema::TDK_CUDATargetMismatch, clang::Sema::TDK_DeducedMismatch, clang::Sema::TDK_DeducedMismatchNested, clang::Sema::TDK_Incomplete, clang::Sema::TDK_IncompletePack, clang::Sema::TDK_Inconsistent, clang::Sema::TDK_InstantiationDepth, clang::Sema::TDK_Invalid, clang::Sema::TDK_InvalidExplicitArguments, clang::Sema::TDK_MiscellaneousDeductionFailure, clang::Sema::TDK_NonDeducedMismatch, clang::Sema::TDK_NonDependentConversionFailure, clang::Sema::TDK_SubstitutionFailure, clang::Sema::TDK_Success, clang::Sema::TDK_TooFewArguments, clang::Sema::TDK_TooManyArguments, and clang::Sema::TDK_Underqualified.
TemplateParameter DeductionFailureInfo::getTemplateParameter | ( | ) |
Retrieve the template parameter this deduction failure refers to, if any.
Definition at line 746 of file SemaOverload.cpp.
References clang::Sema::TDK_ConstraintsNotSatisfied, clang::Sema::TDK_CUDATargetMismatch, clang::Sema::TDK_DeducedMismatch, clang::Sema::TDK_DeducedMismatchNested, clang::Sema::TDK_Incomplete, clang::Sema::TDK_IncompletePack, clang::Sema::TDK_Inconsistent, clang::Sema::TDK_InstantiationDepth, clang::Sema::TDK_Invalid, clang::Sema::TDK_InvalidExplicitArguments, clang::Sema::TDK_MiscellaneousDeductionFailure, clang::Sema::TDK_NonDeducedMismatch, clang::Sema::TDK_NonDependentConversionFailure, clang::Sema::TDK_SubstitutionFailure, clang::Sema::TDK_Success, clang::Sema::TDK_TooFewArguments, clang::Sema::TDK_TooManyArguments, and clang::Sema::TDK_Underqualified.
void* clang::DeductionFailureInfo::Data |
Opaque pointer containing additional data about this deduction failure.
Definition at line 250 of file TemplateDeduction.h.
char clang::DeductionFailureInfo::Diagnostic[sizeof(PartialDiagnosticAt)] |
A diagnostic indicating why deduction failed.
Definition at line 253 of file TemplateDeduction.h.
unsigned clang::DeductionFailureInfo::HasDiagnostic |
Indicates whether a diagnostic is stored in Diagnostic.
Definition at line 246 of file TemplateDeduction.h.
unsigned clang::DeductionFailureInfo::Result |
A Sema::TemplateDeductionResult.
Definition at line 243 of file TemplateDeduction.h.
Referenced by RankDeductionFailure().