clang
3.7.0
|
Provides information about an attempted template argument deduction, whose success or failure was described by a TemplateDeductionResult value. More...
#include <TemplateDeduction.h>
Public Types | |
typedef SmallVectorImpl < PartialDiagnosticAt > ::const_iterator | diag_iterator |
Iterator over the set of suppressed diagnostics. More... | |
Public Member Functions | |
TemplateDeductionInfo (SourceLocation Loc) | |
SourceLocation | getLocation () const |
Returns the location at which template argument is occurring. More... | |
TemplateArgumentList * | take () |
Take ownership of the deduced template argument list. More... | |
void | takeSFINAEDiagnostic (PartialDiagnosticAt &PD) |
Take ownership of the SFINAE diagnostic. More... | |
void | reset (TemplateArgumentList *NewDeduced) |
Provide a new template argument list that contains the results of template argument deduction. More... | |
bool | hasSFINAEDiagnostic () const |
Is a SFINAE diagnostic available? More... | |
void | addSFINAEDiagnostic (SourceLocation Loc, PartialDiagnostic PD) |
Set the diagnostic which caused the SFINAE failure. More... | |
void | addSuppressedDiagnostic (SourceLocation Loc, PartialDiagnostic PD) |
Add a new diagnostic to the set of diagnostics. More... | |
diag_iterator | diag_begin () const |
Returns an iterator at the beginning of the sequence of suppressed diagnostics. More... | |
diag_iterator | diag_end () const |
Returns an iterator at the end of the sequence of suppressed diagnostics. More... | |
Public Attributes | |
TemplateParameter | Param |
The template parameter to which a template argument deduction failure refers. More... | |
TemplateArgument | FirstArg |
The first template argument to which the template argument deduction failure refers. More... | |
TemplateArgument | SecondArg |
The second template argument to which the template argument deduction failure refers. More... | |
Expr * | Expression |
The expression which caused a deduction failure. More... | |
SmallVector< DeducedPack *, 8 > | PendingDeducedPacks |
Information on packs that we're currently expanding. More... | |
Provides information about an attempted template argument deduction, whose success or failure was described by a TemplateDeductionResult value.
Definition at line 31 of file TemplateDeduction.h.
typedef SmallVectorImpl<PartialDiagnosticAt>::const_iterator clang::sema::TemplateDeductionInfo::diag_iterator |
Iterator over the set of suppressed diagnostics.
Definition at line 108 of file TemplateDeduction.h.
|
inline |
Definition at line 51 of file TemplateDeduction.h.
|
inline |
Set the diagnostic which caused the SFINAE failure.
Definition at line 89 of file TemplateDeduction.h.
|
inline |
Add a new diagnostic to the set of diagnostics.
Definition at line 99 of file TemplateDeduction.h.
|
inline |
Returns an iterator at the beginning of the sequence of suppressed diagnostics.
Definition at line 112 of file TemplateDeduction.h.
Referenced by clang::Sema::FinishTemplateArgumentDeduction().
|
inline |
Returns an iterator at the end of the sequence of suppressed diagnostics.
Definition at line 116 of file TemplateDeduction.h.
Referenced by clang::Sema::FinishTemplateArgumentDeduction().
|
inline |
Returns the location at which template argument is occurring.
Definition at line 57 of file TemplateDeduction.h.
Referenced by clang::Sema::DeduceTemplateArguments(), clang::Sema::FinishTemplateArgumentDeduction(), and clang::Sema::SubstituteExplicitTemplateArguments().
|
inline |
Is a SFINAE diagnostic available?
Definition at line 84 of file TemplateDeduction.h.
Referenced by clang::MakeDeductionFailureInfo().
|
inline |
Provide a new template argument list that contains the results of template argument deduction.
Definition at line 79 of file TemplateDeduction.h.
Referenced by clang::Sema::FinishTemplateArgumentDeduction(), and clang::Sema::SubstituteExplicitTemplateArguments().
|
inline |
Take ownership of the deduced template argument list.
Definition at line 62 of file TemplateDeduction.h.
References clang::Result.
Referenced by clang::Sema::FinishTemplateArgumentDeduction(), and clang::MakeDeductionFailureInfo().
|
inline |
Take ownership of the SFINAE diagnostic.
Definition at line 69 of file TemplateDeduction.h.
Referenced by clang::MakeDeductionFailureInfo().
Expr* clang::sema::TemplateDeductionInfo::Expression |
The expression which caused a deduction failure.
TDK_FailedOverloadResolution: this argument is the reference to an overloaded function which could not be resolved to a specific function.
Definition at line 161 of file TemplateDeduction.h.
Referenced by clang::MakeDeductionFailureInfo().
TemplateArgument clang::sema::TemplateDeductionInfo::FirstArg |
The first template argument to which the template argument deduction failure refers.
Depending on the result of the template argument deduction, this template argument may have different meanings:
TDK_Inconsistent: this argument is the first value deduced for the corresponding template parameter.
TDK_SubstitutionFailure: this argument is the template argument we were instantiating when we encountered an error.
TDK_NonDeducedMismatch: this is the component of the 'parameter' of the deduction, directly provided in the source code.
Definition at line 145 of file TemplateDeduction.h.
Referenced by clang::MakeDeductionFailureInfo().
TemplateParameter clang::sema::TemplateDeductionInfo::Param |
The template parameter to which a template argument deduction failure refers.
Depending on the result of template argument deduction, this template parameter may have different meanings:
TDK_Incomplete: this is the first template parameter whose corresponding template argument was not deduced.
TDK_Inconsistent: this is the template parameter for which two different template argument values were deduced.
Definition at line 129 of file TemplateDeduction.h.
Referenced by clang::Sema::FinishTemplateArgumentDeduction(), clang::MakeDeductionFailureInfo(), and clang::Sema::SubstituteExplicitTemplateArguments().
SmallVector<DeducedPack *, 8> clang::sema::TemplateDeductionInfo::PendingDeducedPacks |
Information on packs that we're currently expanding.
FIXME: This should be kept internal to SemaTemplateDeduction.
Definition at line 166 of file TemplateDeduction.h.
TemplateArgument clang::sema::TemplateDeductionInfo::SecondArg |
The second template argument to which the template argument deduction failure refers.
TDK_NonDeducedMismatch: this is the mismatching component of the 'argument' of the deduction, from which we are deducing arguments.
FIXME: Finish documenting this.
Definition at line 154 of file TemplateDeduction.h.
Referenced by clang::MakeDeductionFailureInfo().