Home | History | Annotate | Download | only in Sema

Lines Matching full:sema

13 #include "clang/Sema/TemplateDeduction.h"
22 #include "clang/Sema/DeclSpec.h"
23 #include "clang/Sema/Sema.h"
24 #include "clang/Sema/Template.h"
29 using namespace sema;
86 static Sema::TemplateDeductionResult
87 DeduceTemplateArguments(Sema &S,
118 static Sema::TemplateDeductionResult
119 DeduceTemplateArgumentsByTypeMatch(Sema &S,
131 static Sema::TemplateDeductionResult
132 DeduceTemplateArguments(Sema &S,
316 static Sema::TemplateDeductionResult
317 DeduceNonTypeTemplateArgument(Sema &S,
335 return Sema::TDK_Inconsistent;
339 return Sema::TDK_Success;
346 static Sema::TemplateDeductionResult
347 DeduceNonTypeTemplateArgument(Sema &S,
366 return Sema::TDK_Inconsistent;
370 return Sema::TDK_Success;
377 static Sema::TemplateDeductionResult
378 DeduceNonTypeTemplateArgument(Sema &S,
396 return Sema::TDK_Inconsistent;
400 return Sema::TDK_Success;
403 static Sema::TemplateDeductionResult
404 DeduceTemplateArguments(Sema &S,
414 return Sema::TDK_Success;
427 return Sema::TDK_Inconsistent;
431 return Sema::TDK_Success;
436 return Sema::TDK_Success;
441 return Sema::TDK_NonDeducedMismatch;
447 /// \param S the Sema
462 static Sema::TemplateDeductionResult
463 DeduceTemplateArguments(Sema &S,
475 if (Sema::TemplateDeductionResult Result
499 return Sema::TDK_NonDeducedMismatch;
507 return Sema::TDK_NonDeducedMismatch;
511 if (Sema::TemplateDeductionResult Result
609 PackDeductionScope(Sema &S, TemplateParameterList *TemplateParams,
681 Sema::TemplateDeductionResult finish(bool HasAnyArguments) {
743 return Sema::TDK_Inconsistent;
749 return Sema::TDK_Success;
753 Sema &S;
794 static Sema::TemplateDeductionResult
795 DeduceTemplateArguments(Sema &S,
809 return Sema::TDK_MiscellaneousDeductionFailure;
826 return Sema::TDK_MiscellaneousDeductionFailure;
833 return Sema::TDK_MiscellaneousDeductionFailure;
836 if (Sema::TemplateDeductionResult Result
853 return Sema::TDK_Success;
870 if (Sema::TemplateDeductionResult Result
888 return Sema::TDK_MiscellaneousDeductionFailure;
890 return Sema::TDK_Success;
931 bool Sema::isSameOrCompatibleFunctionType(CanQualType Param,
977 static Sema::TemplateDeductionResult
978 DeduceTemplateArgumentsByTypeMatch(Sema &S,
1103 return Sema::TDK_Success;
1126 return Sema::TDK_Underqualified;
1153 return Sema::TDK_Underqualified;
1178 return Sema::TDK_Inconsistent;
1182 return Sema::TDK_Success;
1194 return Sema::TDK_Success;
1202 return Sema::TDK_NonDeducedMismatch;
1205 return Sema::TDK_NonDeducedMismatch;
1215 return Sema::TDK_NonDeducedMismatch;
1218 return Sema::TDK_Success;
1228 return Sema::TDK_Success;
1254 return Sema::TDK_Success;
1261 return Param == Arg? Sema::TDK_Success : Sema::TDK_NonDeducedMismatch;
1272 return Sema::TDK_NonDeducedMismatch;
1282 return Sema::TDK_NonDeducedMismatch;
1293 return Sema::TDK_NonDeducedMismatch;
1307 return Sema::TDK_NonDeducedMismatch;
1318 return Sema::TDK_NonDeducedMismatch;
1331 return Sema::TDK_NonDeducedMismatch;
1345 return Sema::TDK_NonDeducedMismatch;
1350 return Sema::TDK_NonDeducedMismatch;
1363 return Sema::TDK_NonDeducedMismatch;
1370 if (Sema::TemplateDeductionResult Result
1381 return Sema::TDK_Success;
1403 return Sema::TDK_NonDeducedMismatch;
1414 return Sema::TDK_NonDeducedMismatch;
1424 return Sema::TDK_NonDeducedMismatch;
1427 if (Sema::TemplateDeductionResult Result =
1460 Sema::TemplateDeductionResult Result
1502 Sema::TemplateDeductionResult BaseResult
1510 if (BaseResult == Sema::TDK_Success) {
1532 return Sema::TDK_Success;
1553 return Sema::TDK_NonDeducedMismatch;
1555 if (Sema::TemplateDeductionResult Result
1580 return Sema::TDK_NonDeducedMismatch;
1596 return Sema::TDK_NonDeducedMismatch;
1618 return Sema::TDK_NonDeducedMismatch;
1630 if (Sema::TemplateDeductionResult Result
1641 return Sema::TDK_Success;
1652 if (Sema::TemplateDeductionResult Result
1663 return Sema::TDK_Success;
1669 return Sema::TDK_NonDeducedMismatch;
1682 return Sema::TDK_Success;
1688 static Sema::TemplateDeductionResult
1689 DeduceTemplateArguments(Sema &S,
1713 return Sema::TDK_NonDeducedMismatch;
1722 return Sema::TDK_NonDeducedMismatch;
1731 return Sema::TDK_Success;
1735 return Sema::TDK_NonDeducedMismatch;
1740 return Sema::TDK_Success;
1744 return Sema::TDK_NonDeducedMismatch;
1749 return Sema::TDK_Success;
1753 return Sema::TDK_NonDeducedMismatch;
1759 return Sema::TDK_NonDeducedMismatch;
1764 return Sema::TDK_NonDeducedMismatch;
1784 return Sema::TDK_NonDeducedMismatch;
1788 return Sema::TDK_Success;
1849 static Sema::TemplateDeductionResult
1850 DeduceTemplateArguments(Sema &S,
1861 return Sema::TDK_Success;
1875 return Sema::TDK_Success;
1880 return Sema::TDK_MiscellaneousDeductionFailure;
1884 if (Sema::TemplateDeductionResult Result
1919 if (Sema::TemplateDeductionResult Result
1933 return Sema::TDK_Success;
1936 static Sema::TemplateDeductionResult
1937 DeduceTemplateArguments(Sema &S,
2020 getTrivialTemplateArgumentLoc(Sema &S,
2086 ConvertDeducedTemplateArgument(Sema &S, NamedDecl *Param,
2137 ? Sema::CTAK_DeducedFromArrayBound
2138 : Sema::CTAK_Deduced)
2139 : Sema::CTAK_Specified);
2144 static Sema::TemplateDeductionResult
2145 FinishTemplateArgumentDeduction(Sema &S,
2151 EnterExpressionEvaluationContext Unevaluated(S, Sema::Unevaluated);
2152 Sema::SFINAETrap Trap(S);
2154 Sema::ContextRAII SavedContext(S, Partial);
2165 return Sema::TDK_Incomplete;
2191 return Sema::TDK_SubstitutionFailure;
2203 return Sema::TDK_SubstitutionFailure;
2240 return Sema::TDK_SubstitutionFailure;
2246 return Sema::TDK_SubstitutionFailure;
2256 return Sema::TDK_NonDeducedMismatch;
2261 return Sema::TDK_SubstitutionFailure;
2263 return Sema::TDK_Success;
2269 Sema::TemplateDeductionResult
2270 Sema::DeduceTemplateArguments(ClassTemplatePartialSpecializationDecl *Partial,
2283 EnterExpressionEvaluationContext Unevaluated(*this, Sema::Unevaluated);
2302 return Sema::TDK_SubstitutionFailure;
2315 static Sema::TemplateDeductionResult FinishTemplateArgumentDeduction(
2316 Sema &S, VarTemplatePartialSpecializationDecl *Partial,
2321 EnterExpressionEvaluationContext Unevaluated(S, Sema::Unevaluated);
2322 Sema::SFINAETrap Trap(S);
2333 return Sema::TDK_Incomplete;
2357 return Sema::TDK_SubstitutionFailure;
2368 return Sema::TDK_SubstitutionFailure;
2403 return Sema::TDK_SubstitutionFailure;
2408 return Sema::TDK_SubstitutionFailure;
2417 return Sema::TDK_NonDeducedMismatch;
2422 return Sema::TDK_SubstitutionFailure;
2424 return Sema::TDK_Success;
2435 Sema::TemplateDeductionResult
2436 Sema::DeduceTemplateArguments(VarTemplatePartialSpecializationDecl *Partial,
2449 EnterExpressionEvaluationContext Unevaluated(*this, Sema::Unevaluated);
2466 return Sema::TDK_SubstitutionFailure;
2505 Sema::TemplateDeductionResult
2506 Sema::SubstituteExplicitTemplateArguments(
2529 EnterExpressionEvaluationContext Unevaluated(*this, Sema::Unevaluated);
2675 CheckOriginalCallArgDeduction(Sema &S, Sema::OriginalCallArg OriginalArg,
2780 Sema::TemplateDeductionResult
2781 Sema::FinishTemplateArgumentDeduction(FunctionTemplateDecl *FunctionTemplate,
2791 EnterExpressionEvaluationContext Unevaluated(*this, Sema::Unevaluated);
2981 return Sema::TDK_SubstitutionFailure;
3002 static QualType GetTypeOfFunction(Sema &S, const OverloadExpr::FindResult &R,
3028 ResolveOverloadForDeduction(Sema &S, TemplateParameterList *TemplateParams,
3110 Sema::TemplateDeductionResult Result
3127 static bool AdjustFunctionParmAndArgTypesForDeduction(Sema &S,
3234 static bool hasDeducibleTemplateParameters(Sema &S,
3242 static Sema::TemplateDeductionResult
3243 DeduceTemplateArgumentByListElement(Sema &S,
3254 return Sema::TDK_Success; // Just ignore this expression.
3258 if (Sema::TemplateDeductionResult Result =
3264 return Sema::TDK_Success;
3272 return Sema::TDK_FailedOverloadResolution;
3297 Sema::TemplateDeductionResult Sema::DeduceTemplateArguments(
3497 QualType Sema::adjustCCAndNoReturn(QualType ArgFunctionType,
3542 Sema::TemplateDeductionResult
3543 Sema::DeduceTemplateArguments(FunctionTemplateDecl *FunctionTemplate,
3576 EnterExpressionEvaluationContext Unevaluated(*this, Sema::Unevaluated);
3637 QualType TypeToReplaceAutoWith, Sema &S) {
3652 static inline Sema::TemplateDeductionResult
3658 Sema &S) {
3674 if (Sema::TemplateDeductionResult Result
3691 return Sema::TDK_NonDeducedMismatch;
3701 Sema::TemplateDeductionResult LLVM_ATTRIBUTE_UNUSED Result
3704 assert(Result == Sema::TDK_Success &&
3737 return Sema::TDK_Success;
3742 Sema::TemplateDeductionResult
3743 Sema::DeduceTemplateArguments(FunctionTemplateDecl *ConversionTemplate,
3799 EnterExpressionEvaluationContext Unevaluated(*this, Sema::Unevaluated);
3894 Sema::TemplateDeductionResult
3895 Sema::DeduceTemplateArguments(FunctionTemplateDecl *FunctionTemplate,
3912 SubstituteAutoTransform(Sema &SemaRef, QualType Replacement) :
3957 Sema::DeduceAutoResult
3958 Sema::DeduceAutoType(TypeSourceInfo *Type, Expr *&Init, QualType &Result) {
3968 Sema::DeduceAutoResult
3969 Sema::DeduceAutoType(TypeLoc Type, Expr *&Init, QualType &Result) {
4067 Sema::OriginalCallArg(FuncParam,0,InitType),
4076 QualType Sema::SubstAutoType(QualType TypeWithAuto,
4082 TypeSourceInfo* Sema::SubstAutoTypeSourceInfo(TypeSourceInfo *TypeWithAuto,
4088 void Sema::DiagnoseAutoDeductionFailure(VarDecl *VDecl, Expr *Init) {
4103 bool Sema::DeduceReturnType(FunctionDecl *FD, SourceLocation Loc,
4149 static bool isAtLeastAsSpecializedAs(Sema &S,
4337 Sema::getMoreSpecializedTemplate(FunctionTemplateDecl *FT1,
4467 UnresolvedSetIterator Sema::getMostSpecialized(
4553 Sema::getMoreSpecializedPartialSpecialization(
4628 Sema::getMoreSpecializedPartialSpecialization(
5058 Sema::MarkUsedTemplateParameters(const TemplateArgumentList &TemplateArgs,
5077 Sema::MarkDeducedTemplateParameters(ASTContext &Ctx,
5091 bool hasDeducibleTemplateParameters(Sema &S,