|
clang
3.8.0
|
A structure used to record information about a failed template argument deduction, for diagnosis. More...
#include <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... | |
| Expr * | getExpr () |
| Return the expression 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... | |
| union { | |
| void * Align | |
| 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 190 of file TemplateDeduction.h.
| void DeductionFailureInfo::Destroy | ( | ) |
Free any memory associated with this deduction failure.
Definition at line 628 of file SemaOverload.cpp.
References Diag(), clang::Result, clang::Sema::TDK_DeducedMismatch, clang::Sema::TDK_FailedOverloadResolution, clang::Sema::TDK_Incomplete, 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_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 789 of file SemaOverload.cpp.
References clang::None, clang::Result, and clang::Sema::TDK_DeducedMismatch.
Referenced by DiagnoseBadDeduction().
| Expr * DeductionFailureInfo::getExpr | ( | ) |
Return the expression this deduction failure refers to, if any.
Definition at line 781 of file SemaOverload.cpp.
References clang::Result, and clang::Sema::TDK_FailedOverloadResolution.
Referenced by DiagnoseBadDeduction().
| const TemplateArgument * DeductionFailureInfo::getFirstArg | ( | ) |
Return the first template argument this deduction failure refers to, if any.
Definition at line 727 of file SemaOverload.cpp.
References clang::Result, clang::Sema::TDK_DeducedMismatch, clang::Sema::TDK_FailedOverloadResolution, clang::Sema::TDK_Incomplete, 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_SubstitutionFailure, clang::Sema::TDK_Success, clang::Sema::TDK_TooFewArguments, clang::Sema::TDK_TooManyArguments, and clang::Sema::TDK_Underqualified.
Referenced by DiagnoseBadDeduction().
| const TemplateArgument * DeductionFailureInfo::getSecondArg | ( | ) |
Return the second template argument this deduction failure refers to, if any.
Definition at line 754 of file SemaOverload.cpp.
References clang::Result, clang::Sema::TDK_DeducedMismatch, clang::Sema::TDK_FailedOverloadResolution, clang::Sema::TDK_Incomplete, 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_SubstitutionFailure, clang::Sema::TDK_Success, clang::Sema::TDK_TooFewArguments, clang::Sema::TDK_TooManyArguments, and clang::Sema::TDK_Underqualified.
Referenced by DiagnoseBadDeduction().
| PartialDiagnosticAt * DeductionFailureInfo::getSFINAEDiagnostic | ( | ) |
Retrieve the diagnostic which caused this deduction failure, if any.
Definition at line 663 of file SemaOverload.cpp.
Referenced by DiagnoseBadDeduction().
| TemplateArgumentList * DeductionFailureInfo::getTemplateArgumentList | ( | ) |
Retrieve the template argument list associated with this deduction failure, if any.
Definition at line 698 of file SemaOverload.cpp.
References clang::Result, clang::Sema::TDK_DeducedMismatch, clang::Sema::TDK_FailedOverloadResolution, clang::Sema::TDK_Incomplete, 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_SubstitutionFailure, clang::Sema::TDK_Success, clang::Sema::TDK_TooFewArguments, clang::Sema::TDK_TooManyArguments, and clang::Sema::TDK_Underqualified.
Referenced by DiagnoseBadDeduction().
| TemplateParameter DeductionFailureInfo::getTemplateParameter | ( | ) |
Retrieve the template parameter this deduction failure refers to, if any.
Definition at line 669 of file SemaOverload.cpp.
References clang::Result, clang::Sema::TDK_DeducedMismatch, clang::Sema::TDK_FailedOverloadResolution, clang::Sema::TDK_Incomplete, 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_SubstitutionFailure, clang::Sema::TDK_Success, clang::Sema::TDK_TooFewArguments, clang::Sema::TDK_TooManyArguments, and clang::Sema::TDK_Underqualified.
Referenced by DiagnoseBadDeduction().
| union { ... } |
A diagnostic indicating why deduction failed.
| void* clang::DeductionFailureInfo::Align |
Definition at line 203 of file TemplateDeduction.h.
| void* clang::DeductionFailureInfo::Data |
Opaque pointer containing additional data about this deduction failure.
Definition at line 199 of file TemplateDeduction.h.
Referenced by clang::Sema::AddConversionCandidate(), clang::Sema::AddOverloadCandidate(), clang::Sema::AddSurrogateCandidate(), DiagnoseFailedEnableIfAttr(), and clang::MakeDeductionFailureInfo().
| char clang::DeductionFailureInfo::Diagnostic[sizeof(PartialDiagnosticAt)] |
Definition at line 204 of file TemplateDeduction.h.
Referenced by clang::MakeDeductionFailureInfo().
| unsigned clang::DeductionFailureInfo::HasDiagnostic |
Indicates whether a diagnostic is stored in Diagnostic.
Definition at line 195 of file TemplateDeduction.h.
Referenced by clang::MakeDeductionFailureInfo().
| unsigned clang::DeductionFailureInfo::Result |
A Sema::TemplateDeductionResult.
Definition at line 192 of file TemplateDeduction.h.
Referenced by CheckArityMismatch(), DiagnoseBadDeduction(), clang::MakeDeductionFailureInfo(), and RankDeductionFailure().
1.8.6