Lines Matching refs:Sema
134 static Sema::TemplateDeductionResult
135 DeduceTemplateArguments(Sema &S,
142 static Sema::TemplateDeductionResult
143 DeduceTemplateArgumentsByTypeMatch(Sema &S,
154 static Sema::TemplateDeductionResult
155 DeduceTemplateArguments(Sema &S, TemplateParameterList *TemplateParams,
375 static Sema::TemplateDeductionResult DeduceNonTypeTemplateArgument( in DeduceNonTypeTemplateArgument()
376 Sema &S, TemplateParameterList *TemplateParams, in DeduceNonTypeTemplateArgument()
389 return Sema::TDK_Inconsistent; in DeduceNonTypeTemplateArgument()
394 return Sema::TDK_Success; in DeduceNonTypeTemplateArgument()
401 return Sema::TDK_Success; in DeduceNonTypeTemplateArgument()
422 static Sema::TemplateDeductionResult DeduceNonTypeTemplateArgument( in DeduceNonTypeTemplateArgument()
423 Sema &S, TemplateParameterList *TemplateParams, in DeduceNonTypeTemplateArgument()
436 static Sema::TemplateDeductionResult DeduceNullPtrTemplateArgument( in DeduceNullPtrTemplateArgument()
437 Sema &S, TemplateParameterList *TemplateParams, in DeduceNullPtrTemplateArgument()
455 static Sema::TemplateDeductionResult DeduceNonTypeTemplateArgument( in DeduceNonTypeTemplateArgument()
456 Sema &S, TemplateParameterList *TemplateParams, in DeduceNonTypeTemplateArgument()
468 static Sema::TemplateDeductionResult DeduceNonTypeTemplateArgument( in DeduceNonTypeTemplateArgument()
469 Sema &S, TemplateParameterList *TemplateParams, in DeduceNonTypeTemplateArgument()
479 static Sema::TemplateDeductionResult
480 DeduceTemplateArguments(Sema &S, in DeduceTemplateArguments()
490 return Sema::TDK_Success; in DeduceTemplateArguments()
497 return Sema::TDK_Success; in DeduceTemplateArguments()
507 return Sema::TDK_Inconsistent; in DeduceTemplateArguments()
511 return Sema::TDK_Success; in DeduceTemplateArguments()
516 return Sema::TDK_Success; in DeduceTemplateArguments()
521 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
542 static Sema::TemplateDeductionResult
543 DeduceTemplateArguments(Sema &S, in DeduceTemplateArguments()
559 if (Sema::TemplateDeductionResult Result in DeduceTemplateArguments()
583 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
591 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
595 if (Sema::TemplateDeductionResult Result in DeduceTemplateArguments()
684 PackDeductionScope(Sema &S, TemplateParameterList *TemplateParams, in PackDeductionScope()
693 PackDeductionScope(Sema &S, TemplateParameterList *TemplateParams, in PackDeductionScope()
863 Sema::TemplateDeductionResult
938 return Sema::TDK_Inconsistent; in finish()
947 return Sema::TDK_IncompletePack; in finish()
954 return Sema::TDK_Success; in finish()
958 Sema &S;
1002 static Sema::TemplateDeductionResult
1003 DeduceTemplateArguments(Sema &S, in DeduceTemplateArguments()
1026 return Sema::TDK_MiscellaneousDeductionFailure; in DeduceTemplateArguments()
1033 return Sema::TDK_MiscellaneousDeductionFailure; in DeduceTemplateArguments()
1036 if (Sema::TemplateDeductionResult Result in DeduceTemplateArguments()
1062 if (Sema::TemplateDeductionResult Result in DeduceTemplateArguments()
1104 return Sema::TDK_MiscellaneousDeductionFailure; in DeduceTemplateArguments()
1106 return Sema::TDK_Success; in DeduceTemplateArguments()
1147 bool Sema::isSameOrCompatibleFunctionType(CanQualType Param, in isSameOrCompatibleFunctionType()
1216 static Sema::TemplateDeductionResult
1217 DeduceTemplateArgumentsByTypeMatch(Sema &S, in DeduceTemplateArgumentsByTypeMatch()
1281 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1337 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1360 return Sema::TDK_Underqualified; in DeduceTemplateArgumentsByTypeMatch()
1366 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1394 return Sema::TDK_Underqualified; in DeduceTemplateArgumentsByTypeMatch()
1419 return Sema::TDK_Inconsistent; in DeduceTemplateArgumentsByTypeMatch()
1423 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1435 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1443 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1449 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1458 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1469 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1472 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1482 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1508 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1515 return Param == Arg? Sema::TDK_Success : Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1525 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1535 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1546 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1561 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1573 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1586 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1600 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1605 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1618 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1625 if (Sema::TemplateDeductionResult Result in DeduceTemplateArgumentsByTypeMatch()
1636 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1658 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1669 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1679 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1696 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1734 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1765 Sema::TemplateDeductionResult Result = DeduceTemplateArguments( in DeduceTemplateArgumentsByTypeMatch()
1768 if (Result == Sema::TDK_Success) in DeduceTemplateArgumentsByTypeMatch()
1811 Sema::TemplateDeductionResult BaseResult = in DeduceTemplateArgumentsByTypeMatch()
1818 if (BaseResult == Sema::TDK_Success) { in DeduceTemplateArgumentsByTypeMatch()
1822 return Sema::TDK_MiscellaneousDeductionFailure; in DeduceTemplateArgumentsByTypeMatch()
1846 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1865 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1876 if (Sema::TemplateDeductionResult Result in DeduceTemplateArgumentsByTypeMatch()
1901 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1917 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1939 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1947 if (Sema::TemplateDeductionResult Result = in DeduceTemplateArgumentsByTypeMatch()
1957 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1971 if (Sema::TemplateDeductionResult Result = in DeduceTemplateArgumentsByTypeMatch()
1981 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1987 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1999 if (Sema::TemplateDeductionResult Result in DeduceTemplateArgumentsByTypeMatch()
2010 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
2025 if (Sema::TemplateDeductionResult Result in DeduceTemplateArgumentsByTypeMatch()
2036 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
2043 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
2056 if (Sema::TemplateDeductionResult Result = in DeduceTemplateArgumentsByTypeMatch()
2066 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
2079 if (Sema::TemplateDeductionResult Result = in DeduceTemplateArgumentsByTypeMatch()
2089 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
2096 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
2111 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
2117 static Sema::TemplateDeductionResult
2118 DeduceTemplateArguments(Sema &S, in DeduceTemplateArguments()
2142 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
2151 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
2159 return Sema::TDK_Success; in DeduceTemplateArguments()
2163 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
2168 return Sema::TDK_Success; in DeduceTemplateArguments()
2172 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
2177 return Sema::TDK_Success; in DeduceTemplateArguments()
2181 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
2187 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
2192 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
2218 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
2222 return Sema::TDK_Success; in DeduceTemplateArguments()
2274 static Sema::TemplateDeductionResult
2275 DeduceTemplateArguments(Sema &S, TemplateParameterList *TemplateParams, in DeduceTemplateArguments()
2286 return Sema::TDK_Success; in DeduceTemplateArguments()
2300 ? Sema::TDK_MiscellaneousDeductionFailure in DeduceTemplateArguments()
2301 : Sema::TDK_Success; in DeduceTemplateArguments()
2307 return Sema::TDK_MiscellaneousDeductionFailure; in DeduceTemplateArguments()
2310 if (Sema::TemplateDeductionResult Result in DeduceTemplateArguments()
2340 if (Sema::TemplateDeductionResult Result in DeduceTemplateArguments()
2354 return Sema::TDK_Success; in DeduceTemplateArguments()
2357 static Sema::TemplateDeductionResult
2358 DeduceTemplateArguments(Sema &S, in DeduceTemplateArguments()
2444 Sema::getTrivialTemplateArgumentLoc(const TemplateArgument &Arg, in getTrivialTemplateArgumentLoc()
2508 ConvertDeducedTemplateArgument(Sema &S, NamedDecl *Param, in ConvertDeducedTemplateArgument()
2527 ? (Arg.wasDeducedFromArrayBound() ? Sema::CTAK_DeducedFromArrayBound in ConvertDeducedTemplateArgument()
2528 : Sema::CTAK_Deduced) in ConvertDeducedTemplateArgument()
2529 : Sema::CTAK_Specified); in ConvertDeducedTemplateArgument()
2569 Sema::InstantiatingTemplate Inst(S, Template->getLocation(), Template, in ConvertDeducedTemplateArgument()
2577 Sema::InstantiatingTemplate Inst(S, Template->getLocation(), Template, in ConvertDeducedTemplateArgument()
2599 static Sema::TemplateDeductionResult ConvertDeducedTemplateArguments( in ConvertDeducedTemplateArguments()
2600 Sema &S, TemplateDeclT *Template, bool IsDeduced, in ConvertDeducedTemplateArguments()
2648 return Sema::TDK_SubstitutionFailure; in ConvertDeducedTemplateArguments()
2660 return Sema::TDK_Incomplete; in ConvertDeducedTemplateArguments()
2674 return HasDefaultArg ? Sema::TDK_SubstitutionFailure in ConvertDeducedTemplateArguments()
2675 : Sema::TDK_Incomplete; in ConvertDeducedTemplateArguments()
2681 Sema::CTAK_Specified)) { in ConvertDeducedTemplateArguments()
2686 return Sema::TDK_SubstitutionFailure; in ConvertDeducedTemplateArguments()
2692 return Sema::TDK_Success; in ConvertDeducedTemplateArguments()
2716 Sema::TemplateDeductionResult>::type
2718 Sema &S, T *Partial, bool IsPartialOrdering, in FinishTemplateArgumentDeduction()
2724 S, Sema::ExpressionEvaluationContext::Unevaluated); in FinishTemplateArgumentDeduction()
2725 Sema::SFINAETrap Trap(S); in FinishTemplateArgumentDeduction()
2727 Sema::ContextRAII SavedContext(S, getAsDeclContextOrEnclosing(Partial)); in FinishTemplateArgumentDeduction()
2768 return Sema::TDK_SubstitutionFailure; in FinishTemplateArgumentDeduction()
2774 return Sema::TDK_SubstitutionFailure; in FinishTemplateArgumentDeduction()
2783 return Sema::TDK_NonDeducedMismatch; in FinishTemplateArgumentDeduction()
2788 return Sema::TDK_SubstitutionFailure; in FinishTemplateArgumentDeduction()
2790 return Sema::TDK_Success; in FinishTemplateArgumentDeduction()
2796 static Sema::TemplateDeductionResult FinishTemplateArgumentDeduction( in FinishTemplateArgumentDeduction()
2797 Sema &S, TemplateDecl *Template, bool PartialOrdering, in FinishTemplateArgumentDeduction()
2803 S, Sema::ExpressionEvaluationContext::Unevaluated); in FinishTemplateArgumentDeduction()
2804 Sema::SFINAETrap Trap(S); in FinishTemplateArgumentDeduction()
2806 Sema::ContextRAII SavedContext(S, getAsDeclContextOrEnclosing(Template)); in FinishTemplateArgumentDeduction()
2825 return Sema::TDK_NonDeducedMismatch; in FinishTemplateArgumentDeduction()
2830 return Sema::TDK_SubstitutionFailure; in FinishTemplateArgumentDeduction()
2832 return Sema::TDK_Success; in FinishTemplateArgumentDeduction()
2839 Sema::TemplateDeductionResult
2840 Sema::DeduceTemplateArguments(ClassTemplatePartialSpecializationDecl *Partial, in DeduceTemplateArguments()
2854 *this, Sema::ExpressionEvaluationContext::Unevaluated); in DeduceTemplateArguments()
2873 return Sema::TDK_SubstitutionFailure; in DeduceTemplateArguments()
2882 Sema::TemplateDeductionResult
2883 Sema::DeduceTemplateArguments(VarTemplatePartialSpecializationDecl *Partial, in DeduceTemplateArguments()
2897 *this, Sema::ExpressionEvaluationContext::Unevaluated); in DeduceTemplateArguments()
2914 return Sema::TDK_SubstitutionFailure; in DeduceTemplateArguments()
2964 Sema::TemplateDeductionResult
2965 Sema::SubstituteExplicitTemplateArguments( in SubstituteExplicitTemplateArguments()
2989 *this, Sema::ExpressionEvaluationContext::Unevaluated); in SubstituteExplicitTemplateArguments()
3154 static Sema::TemplateDeductionResult
3155 CheckOriginalCallArgDeduction(Sema &S, TemplateDeductionInfo &Info, in CheckOriginalCallArgDeduction()
3156 Sema::OriginalCallArg OriginalArg, in CheckOriginalCallArgDeduction()
3160 auto Failed = [&]() -> Sema::TemplateDeductionResult { in CheckOriginalCallArgDeduction()
3164 return OriginalArg.DecomposedParam ? Sema::TDK_DeducedMismatchNested in CheckOriginalCallArgDeduction()
3165 : Sema::TDK_DeducedMismatch; in CheckOriginalCallArgDeduction()
3173 return Sema::TDK_Success; in CheckOriginalCallArgDeduction()
3197 return Sema::TDK_Success; in CheckOriginalCallArgDeduction()
3238 return Sema::TDK_Success; in CheckOriginalCallArgDeduction()
3259 return Sema::TDK_Success; in CheckOriginalCallArgDeduction()
3263 return Sema::TDK_Success; in CheckOriginalCallArgDeduction()
3276 static unsigned getPackIndexForParam(Sema &S, in getPackIndexForParam()
3304 Sema::TemplateDeductionResult Sema::FinishTemplateArgumentDeduction( in FinishTemplateArgumentDeduction()
3313 *this, Sema::ExpressionEvaluationContext::Unevaluated); in FinishTemplateArgumentDeduction()
3444 static QualType GetTypeOfFunction(Sema &S, const OverloadExpr::FindResult &R, in GetTypeOfFunction()
3471 ResolveOverloadForDeduction(Sema &S, TemplateParameterList *TemplateParams, in ResolveOverloadForDeduction()
3558 Sema::TemplateDeductionResult Result in ResolveOverloadForDeduction()
3577 Sema &S, TemplateParameterList *TemplateParams, unsigned FirstInnerIndex, in AdjustFunctionParmAndArgTypesForDeduction()
3667 hasDeducibleTemplateParameters(Sema &S, FunctionTemplateDecl *FunctionTemplate,
3670 static Sema::TemplateDeductionResult DeduceTemplateArgumentsFromCallArgument(
3671 Sema &S, TemplateParameterList *TemplateParams, unsigned FirstInnerIndex,
3674 SmallVectorImpl<Sema::OriginalCallArg> &OriginalCallArgs,
3679 static Sema::TemplateDeductionResult DeduceFromInitializerList( in DeduceFromInitializerList()
3680 Sema &S, TemplateParameterList *TemplateParams, QualType AdjustedParamType, in DeduceFromInitializerList()
3683 SmallVectorImpl<Sema::OriginalCallArg> &OriginalCallArgs, unsigned ArgIdx, in DeduceFromInitializerList()
3694 return Sema::TDK_Success; in DeduceFromInitializerList()
3703 return Sema::TDK_Success; in DeduceFromInitializerList()
3735 return Sema::TDK_Success; in DeduceFromInitializerList()
3740 static Sema::TemplateDeductionResult DeduceTemplateArgumentsFromCallArgument( in DeduceTemplateArgumentsFromCallArgument()
3741 Sema &S, TemplateParameterList *TemplateParams, unsigned FirstInnerIndex, in DeduceTemplateArgumentsFromCallArgument()
3744 SmallVectorImpl<Sema::OriginalCallArg> &OriginalCallArgs, in DeduceTemplateArgumentsFromCallArgument()
3753 return Sema::TDK_Success; in DeduceTemplateArgumentsFromCallArgument()
3766 Sema::OriginalCallArg(OrigParamType, DecomposedParam, ArgIdx, ArgType)); in DeduceTemplateArgumentsFromCallArgument()
3796 Sema::TemplateDeductionResult Sema::DeduceTemplateArguments( in DeduceTemplateArguments()
3860 return Sema::TDK_Success; in DeduceTemplateArguments()
3950 QualType Sema::adjustCCAndNoReturn(QualType ArgFunctionType, in adjustCCAndNoReturn()
4017 Sema::TemplateDeductionResult Sema::DeduceTemplateArguments( in DeduceTemplateArguments()
4055 *this, Sema::ExpressionEvaluationContext::Unevaluated); in DeduceTemplateArguments()
4134 Sema::TemplateDeductionResult
4135 Sema::DeduceTemplateArguments(FunctionTemplateDecl *ConversionTemplate, in DeduceTemplateArguments()
4200 *this, Sema::ExpressionEvaluationContext::Unevaluated); in DeduceTemplateArguments()
4273 Sema::TemplateDeductionResult Sema::DeduceTemplateArguments( in DeduceTemplateArguments()
4293 SubstituteDeducedTypeTransform(Sema &SemaRef, QualType Replacement, in SubstituteDeducedTypeTransform()
4356 Sema::DeduceAutoResult
4357 Sema::DeduceAutoType(TypeSourceInfo *Type, Expr *&Init, QualType &Result, in DeduceAutoType()
4366 static bool diagnoseAutoDeductionFailure(Sema &S, in diagnoseAutoDeductionFailure()
4367 Sema::TemplateDeductionResult TDK, in diagnoseAutoDeductionFailure()
4371 case Sema::TDK_Inconsistent: { in diagnoseAutoDeductionFailure()
4402 Sema::DeduceAutoResult
4403 Sema::DeduceAutoType(TypeLoc Type, Expr *&Init, QualType &Result, in DeduceAutoType()
4560 QualType Sema::SubstAutoType(QualType TypeWithAuto, in SubstAutoType()
4568 TypeSourceInfo *Sema::SubstAutoTypeSourceInfo(TypeSourceInfo *TypeWithAuto, in SubstAutoTypeSourceInfo()
4576 QualType Sema::ReplaceAutoType(QualType TypeWithAuto, in ReplaceAutoType()
4583 void Sema::DiagnoseAutoDeductionFailure(VarDecl *VDecl, Expr *Init) { in DiagnoseAutoDeductionFailure()
4598 bool Sema::DeduceReturnType(FunctionDecl *FD, SourceLocation Loc, in DeduceReturnType()
4674 static bool isAtLeastAsSpecializedAs(Sema &S, in isAtLeastAsSpecializedAs()
4863 Sema::getMoreSpecializedTemplate(FunctionTemplateDecl *FT1, in getMoreSpecializedTemplate()
4927 UnresolvedSetIterator Sema::getMostSpecialized( in getMostSpecialized()
5010 static bool isAtLeastAsSpecializedAs(Sema &S, QualType T1, QualType T2, in isAtLeastAsSpecializedAs()
5048 Sema::InstantiatingTemplate Inst(S, Info.getLocation(), P2, DeducedArgs, in isAtLeastAsSpecializedAs()
5072 Sema::getMoreSpecializedPartialSpecialization( in getMoreSpecializedPartialSpecialization()
5089 bool Sema::isMoreSpecializedThanPrimary( in isMoreSpecializedThanPrimary()
5104 Sema::getMoreSpecializedPartialSpecialization( in getMoreSpecializedPartialSpecialization()
5129 bool Sema::isMoreSpecializedThanPrimary( in isMoreSpecializedThanPrimary()
5153 bool Sema::isTemplateTemplateParameterAtLeastAsSpecializedAs( in isTemplateTemplateParameterAtLeastAsSpecializedAs()
5633 Sema::MarkUsedTemplateParameters(const TemplateArgumentList &TemplateArgs, in MarkUsedTemplateParameters()
5651 void Sema::MarkDeducedTemplateParameters( in MarkDeducedTemplateParameters()
5665 bool hasDeducibleTemplateParameters(Sema &S, in hasDeducibleTemplateParameters()