clang 20.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. | |
TemplateParameter | getTemplateParameter () |
Retrieve the template parameter this deduction failure refers to, if any. | |
TemplateArgumentList * | getTemplateArgumentList () |
Retrieve the template argument list associated with this deduction failure, if any. | |
const TemplateArgument * | getFirstArg () |
Return the first template argument this deduction failure refers to, if any. | |
const TemplateArgument * | getSecondArg () |
Return the second template argument this deduction failure refers to, if any. | |
std::optional< unsigned > | getCallArgIndex () |
Return the index of the call argument that this deduction failure refers to, if any. | |
void | Destroy () |
Free any memory associated with this deduction failure. | |
TemplateDeductionResult | getResult () const |
Public Attributes | |
unsigned | Result: 8 |
A Sema::TemplateDeductionResult. | |
unsigned | HasDiagnostic: 1 |
Indicates whether a diagnostic is stored in Diagnostic. | |
void * | Data |
Opaque pointer containing additional data about this deduction failure. | |
char | Diagnostic [sizeof(PartialDiagnosticAt)] |
A diagnostic indicating why deduction failed. | |
A structure used to record information about a failed template argument deduction, for diagnosis.
Definition at line 259 of file TemplateDeduction.h.
void DeductionFailureInfo::Destroy | ( | ) |
Free any memory associated with this deduction failure.
Definition at line 817 of file SemaOverload.cpp.
References clang::AlreadyDiagnosed, clang::ConstraintsNotSatisfied, clang::CUDATargetMismatch, Data, clang::DeducedMismatch, clang::DeducedMismatchNested, Diag(), getSFINAEDiagnostic(), HasDiagnostic, clang::Incomplete, clang::IncompletePack, clang::Inconsistent, clang::InstantiationDepth, clang::Invalid, clang::InvalidExplicitArguments, clang::MiscellaneousDeductionFailure, clang::NonDeducedMismatch, clang::NonDependentConversionFailure, Result, clang::SubstitutionFailure, clang::Success, clang::TooFewArguments, clang::TooManyArguments, and clang::Underqualified.
std::optional< unsigned > DeductionFailureInfo::getCallArgIndex | ( | ) |
Return the index of the call argument that this deduction failure refers to, if any.
Definition at line 1005 of file SemaOverload.cpp.
References Data, clang::DeducedMismatch, clang::DeducedMismatchNested, and Result.
Referenced by DiagnoseBadDeduction().
const TemplateArgument * DeductionFailureInfo::getFirstArg | ( | ) |
Return the first template argument this deduction failure refers to, if any.
Definition at line 941 of file SemaOverload.cpp.
References clang::AlreadyDiagnosed, clang::ConstraintsNotSatisfied, clang::CUDATargetMismatch, Data, clang::DeducedMismatch, clang::DeducedMismatchNested, clang::Incomplete, clang::IncompletePack, clang::Inconsistent, clang::InstantiationDepth, clang::Invalid, clang::InvalidExplicitArguments, clang::MiscellaneousDeductionFailure, clang::NonDeducedMismatch, clang::NonDependentConversionFailure, Result, clang::SubstitutionFailure, clang::Success, clang::TooFewArguments, clang::TooManyArguments, and clang::Underqualified.
Referenced by DiagnoseBadDeduction().
|
inline |
Definition at line 300 of file TemplateDeduction.h.
References Result.
Referenced by CheckArityMismatch(), and DiagnoseBadDeduction().
const TemplateArgument * DeductionFailureInfo::getSecondArg | ( | ) |
Return the second template argument this deduction failure refers to, if any.
Definition at line 973 of file SemaOverload.cpp.
References clang::AlreadyDiagnosed, clang::ConstraintsNotSatisfied, clang::CUDATargetMismatch, Data, clang::DeducedMismatch, clang::DeducedMismatchNested, clang::Incomplete, clang::IncompletePack, clang::Inconsistent, clang::InstantiationDepth, clang::Invalid, clang::InvalidExplicitArguments, clang::MiscellaneousDeductionFailure, clang::NonDeducedMismatch, clang::NonDependentConversionFailure, Result, clang::SubstitutionFailure, clang::Success, clang::TooFewArguments, clang::TooManyArguments, and clang::Underqualified.
Referenced by DiagnoseBadDeduction().
PartialDiagnosticAt * DeductionFailureInfo::getSFINAEDiagnostic | ( | ) |
Retrieve the diagnostic which caused this deduction failure, if any.
Definition at line 865 of file SemaOverload.cpp.
References Diagnostic, and HasDiagnostic.
Referenced by Destroy(), and DiagnoseBadDeduction().
TemplateArgumentList * DeductionFailureInfo::getTemplateArgumentList | ( | ) |
Retrieve the template argument list associated with this deduction failure, if any.
Definition at line 905 of file SemaOverload.cpp.
References clang::AlreadyDiagnosed, clang::ConstraintsNotSatisfied, clang::CUDATargetMismatch, Data, clang::DeducedMismatch, clang::DeducedMismatchNested, clang::Incomplete, clang::IncompletePack, clang::Inconsistent, clang::InstantiationDepth, clang::Invalid, clang::InvalidExplicitArguments, clang::MiscellaneousDeductionFailure, clang::NonDeducedMismatch, clang::NonDependentConversionFailure, Result, clang::SubstitutionFailure, clang::Success, clang::TooFewArguments, clang::TooManyArguments, and clang::Underqualified.
Referenced by DiagnoseBadDeduction().
TemplateParameter DeductionFailureInfo::getTemplateParameter | ( | ) |
Retrieve the template parameter this deduction failure refers to, if any.
Definition at line 871 of file SemaOverload.cpp.
References clang::AlreadyDiagnosed, clang::ConstraintsNotSatisfied, clang::CUDATargetMismatch, Data, clang::DeducedMismatch, clang::DeducedMismatchNested, clang::Incomplete, clang::IncompletePack, clang::Inconsistent, clang::InstantiationDepth, clang::Invalid, clang::InvalidExplicitArguments, clang::MiscellaneousDeductionFailure, clang::NonDeducedMismatch, clang::NonDependentConversionFailure, Result, clang::SubstitutionFailure, clang::Success, clang::TooFewArguments, clang::TooManyArguments, and clang::Underqualified.
Referenced by DiagnoseBadDeduction().
void* clang::DeductionFailureInfo::Data |
Opaque pointer containing additional data about this deduction failure.
Definition at line 268 of file TemplateDeduction.h.
Referenced by clang::Sema::AddConversionCandidate(), clang::Sema::AddMethodCandidate(), clang::Sema::AddOverloadCandidate(), clang::Sema::AddSurrogateCandidate(), Destroy(), DiagnoseBadDeduction(), DiagnoseFailedEnableIfAttr(), getCallArgIndex(), getFirstArg(), getSecondArg(), getTemplateArgumentList(), and getTemplateParameter().
char clang::DeductionFailureInfo::Diagnostic[sizeof(PartialDiagnosticAt)] |
A diagnostic indicating why deduction failed.
Definition at line 271 of file TemplateDeduction.h.
Referenced by getSFINAEDiagnostic().
unsigned clang::DeductionFailureInfo::HasDiagnostic |
Indicates whether a diagnostic is stored in Diagnostic.
Definition at line 264 of file TemplateDeduction.h.
Referenced by Destroy(), and getSFINAEDiagnostic().
unsigned clang::DeductionFailureInfo::Result |
A Sema::TemplateDeductionResult.
Definition at line 261 of file TemplateDeduction.h.
Referenced by Destroy(), getCallArgIndex(), getFirstArg(), getResult(), getSecondArg(), getTemplateArgumentList(), getTemplateParameter(), and RankDeductionFailure().