Lines Matching refs:Sema
86 static Sema::TemplateDeductionResult
87 DeduceTemplateArguments(Sema &S,
94 static Sema::TemplateDeductionResult
95 DeduceTemplateArgumentsByTypeMatch(Sema &S,
105 static Sema::TemplateDeductionResult
106 DeduceTemplateArguments(Sema &S, TemplateParameterList *TemplateParams,
289 static Sema::TemplateDeductionResult DeduceNonTypeTemplateArgument( in DeduceNonTypeTemplateArgument()
290 Sema &S, NonTypeTemplateParmDecl *NTTP, const llvm::APSInt &Value, in DeduceNonTypeTemplateArgument()
305 return Sema::TDK_Inconsistent; in DeduceNonTypeTemplateArgument()
309 return Sema::TDK_Success; in DeduceNonTypeTemplateArgument()
316 static Sema::TemplateDeductionResult
317 DeduceNonTypeTemplateArgument(Sema &S, in DeduceNonTypeTemplateArgument()
336 return Sema::TDK_Inconsistent; in DeduceNonTypeTemplateArgument()
340 return Sema::TDK_Success; in DeduceNonTypeTemplateArgument()
347 static Sema::TemplateDeductionResult
348 DeduceNonTypeTemplateArgument(Sema &S, in DeduceNonTypeTemplateArgument()
366 return Sema::TDK_Inconsistent; in DeduceNonTypeTemplateArgument()
370 return Sema::TDK_Success; in DeduceNonTypeTemplateArgument()
373 static Sema::TemplateDeductionResult
374 DeduceTemplateArguments(Sema &S, in DeduceTemplateArguments()
384 return Sema::TDK_Success; in DeduceTemplateArguments()
397 return Sema::TDK_Inconsistent; in DeduceTemplateArguments()
401 return Sema::TDK_Success; in DeduceTemplateArguments()
406 return Sema::TDK_Success; in DeduceTemplateArguments()
411 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
432 static Sema::TemplateDeductionResult
433 DeduceTemplateArguments(Sema &S, in DeduceTemplateArguments()
445 if (Sema::TemplateDeductionResult Result in DeduceTemplateArguments()
469 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
477 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
481 if (Sema::TemplateDeductionResult Result in DeduceTemplateArguments()
579 PackDeductionScope(Sema &S, TemplateParameterList *TemplateParams, in PackDeductionScope()
651 Sema::TemplateDeductionResult finish(bool HasAnyArguments) { in finish()
713 return Sema::TDK_Inconsistent; in finish()
719 return Sema::TDK_Success; in finish()
723 Sema &S;
762 static Sema::TemplateDeductionResult
763 DeduceTemplateArguments(Sema &S, in DeduceTemplateArguments()
775 return Sema::TDK_MiscellaneousDeductionFailure; in DeduceTemplateArguments()
792 return Sema::TDK_MiscellaneousDeductionFailure; in DeduceTemplateArguments()
799 return Sema::TDK_MiscellaneousDeductionFailure; in DeduceTemplateArguments()
802 if (Sema::TemplateDeductionResult Result in DeduceTemplateArguments()
818 return Sema::TDK_Success; in DeduceTemplateArguments()
835 if (Sema::TemplateDeductionResult Result in DeduceTemplateArguments()
852 return Sema::TDK_MiscellaneousDeductionFailure; in DeduceTemplateArguments()
854 return Sema::TDK_Success; in DeduceTemplateArguments()
895 bool Sema::isSameOrCompatibleFunctionType(CanQualType Param, in isSameOrCompatibleFunctionType()
938 static Sema::TemplateDeductionResult
939 DeduceTemplateArgumentsByTypeMatch(Sema &S, in DeduceTemplateArgumentsByTypeMatch()
1002 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1062 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1085 return Sema::TDK_Underqualified; in DeduceTemplateArgumentsByTypeMatch()
1112 return Sema::TDK_Underqualified; in DeduceTemplateArgumentsByTypeMatch()
1137 return Sema::TDK_Inconsistent; in DeduceTemplateArgumentsByTypeMatch()
1141 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1153 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1161 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1164 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1174 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1177 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1187 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1213 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1220 return Param == Arg? Sema::TDK_Success : Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1231 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1241 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1252 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1267 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1279 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1292 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1306 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1311 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1324 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1331 if (Sema::TemplateDeductionResult Result in DeduceTemplateArgumentsByTypeMatch()
1342 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1364 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1375 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1385 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1388 if (Sema::TemplateDeductionResult Result = in DeduceTemplateArgumentsByTypeMatch()
1430 Sema::TemplateDeductionResult Result = DeduceTemplateArguments( in DeduceTemplateArgumentsByTypeMatch()
1433 if (Result == Sema::TDK_Success) in DeduceTemplateArgumentsByTypeMatch()
1476 Sema::TemplateDeductionResult BaseResult = in DeduceTemplateArgumentsByTypeMatch()
1483 if (BaseResult == Sema::TDK_Success) { in DeduceTemplateArgumentsByTypeMatch()
1487 return Sema::TDK_MiscellaneousDeductionFailure; in DeduceTemplateArgumentsByTypeMatch()
1511 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1530 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1541 if (Sema::TemplateDeductionResult Result in DeduceTemplateArgumentsByTypeMatch()
1566 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1582 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1604 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1616 if (Sema::TemplateDeductionResult Result in DeduceTemplateArgumentsByTypeMatch()
1627 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1638 if (Sema::TemplateDeductionResult Result in DeduceTemplateArgumentsByTypeMatch()
1649 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1655 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1669 return Sema::TDK_Success; in DeduceTemplateArgumentsByTypeMatch()
1675 static Sema::TemplateDeductionResult
1676 DeduceTemplateArguments(Sema &S, in DeduceTemplateArguments()
1700 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
1709 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
1717 return Sema::TDK_Success; in DeduceTemplateArguments()
1721 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
1726 return Sema::TDK_Success; in DeduceTemplateArguments()
1730 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
1735 return Sema::TDK_Success; in DeduceTemplateArguments()
1739 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
1745 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
1750 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
1770 return Sema::TDK_NonDeducedMismatch; in DeduceTemplateArguments()
1774 return Sema::TDK_Success; in DeduceTemplateArguments()
1835 static Sema::TemplateDeductionResult
1836 DeduceTemplateArguments(Sema &S, TemplateParameterList *TemplateParams, in DeduceTemplateArguments()
1847 return Sema::TDK_Success; in DeduceTemplateArguments()
1861 return NumberOfArgumentsMustMatch ? Sema::TDK_TooFewArguments in DeduceTemplateArguments()
1862 : Sema::TDK_Success; in DeduceTemplateArguments()
1867 return Sema::TDK_MiscellaneousDeductionFailure; in DeduceTemplateArguments()
1871 if (Sema::TemplateDeductionResult Result in DeduceTemplateArguments()
1906 if (Sema::TemplateDeductionResult Result in DeduceTemplateArguments()
1920 return Sema::TDK_Success; in DeduceTemplateArguments()
1923 static Sema::TemplateDeductionResult
1924 DeduceTemplateArguments(Sema &S, in DeduceTemplateArguments()
2006 getTrivialTemplateArgumentLoc(Sema &S, in getTrivialTemplateArgumentLoc()
2073 ConvertDeducedTemplateArgument(Sema &S, NamedDecl *Param, in ConvertDeducedTemplateArgument()
2110 ? (Arg.wasDeducedFromArrayBound() ? Sema::CTAK_DeducedFromArrayBound in ConvertDeducedTemplateArgument()
2111 : Sema::CTAK_Deduced) in ConvertDeducedTemplateArgument()
2112 : Sema::CTAK_Specified); in ConvertDeducedTemplateArgument()
2141 Sema::InstantiatingTemplate Inst(S, Template->getLocation(), Template, in ConvertDeducedTemplateArgument()
2164 static Sema::TemplateDeductionResult
2165 FinishTemplateArgumentDeduction(Sema &S, in FinishTemplateArgumentDeduction()
2171 EnterExpressionEvaluationContext Unevaluated(S, Sema::Unevaluated); in FinishTemplateArgumentDeduction()
2172 Sema::SFINAETrap Trap(S); in FinishTemplateArgumentDeduction()
2174 Sema::ContextRAII SavedContext(S, Partial); in FinishTemplateArgumentDeduction()
2185 return Sema::TDK_Incomplete; in FinishTemplateArgumentDeduction()
2196 return Sema::TDK_SubstitutionFailure; in FinishTemplateArgumentDeduction()
2232 return Sema::TDK_SubstitutionFailure; in FinishTemplateArgumentDeduction()
2238 return Sema::TDK_SubstitutionFailure; in FinishTemplateArgumentDeduction()
2248 return Sema::TDK_NonDeducedMismatch; in FinishTemplateArgumentDeduction()
2253 return Sema::TDK_SubstitutionFailure; in FinishTemplateArgumentDeduction()
2255 return Sema::TDK_Success; in FinishTemplateArgumentDeduction()
2261 Sema::TemplateDeductionResult
2262 Sema::DeduceTemplateArguments(ClassTemplatePartialSpecializationDecl *Partial, in DeduceTemplateArguments()
2275 EnterExpressionEvaluationContext Unevaluated(*this, Sema::Unevaluated); in DeduceTemplateArguments()
2294 return Sema::TDK_SubstitutionFailure; in DeduceTemplateArguments()
2307 static Sema::TemplateDeductionResult FinishTemplateArgumentDeduction( in FinishTemplateArgumentDeduction()
2308 Sema &S, VarTemplatePartialSpecializationDecl *Partial, in FinishTemplateArgumentDeduction()
2313 EnterExpressionEvaluationContext Unevaluated(S, Sema::Unevaluated); in FinishTemplateArgumentDeduction()
2314 Sema::SFINAETrap Trap(S); in FinishTemplateArgumentDeduction()
2325 return Sema::TDK_Incomplete; in FinishTemplateArgumentDeduction()
2335 return Sema::TDK_SubstitutionFailure; in FinishTemplateArgumentDeduction()
2370 return Sema::TDK_SubstitutionFailure; in FinishTemplateArgumentDeduction()
2375 return Sema::TDK_SubstitutionFailure; in FinishTemplateArgumentDeduction()
2384 return Sema::TDK_NonDeducedMismatch; in FinishTemplateArgumentDeduction()
2389 return Sema::TDK_SubstitutionFailure; in FinishTemplateArgumentDeduction()
2391 return Sema::TDK_Success; in FinishTemplateArgumentDeduction()
2402 Sema::TemplateDeductionResult
2403 Sema::DeduceTemplateArguments(VarTemplatePartialSpecializationDecl *Partial, in DeduceTemplateArguments()
2416 EnterExpressionEvaluationContext Unevaluated(*this, Sema::Unevaluated); in DeduceTemplateArguments()
2433 return Sema::TDK_SubstitutionFailure; in DeduceTemplateArguments()
2472 Sema::TemplateDeductionResult
2473 Sema::SubstituteExplicitTemplateArguments( in SubstituteExplicitTemplateArguments()
2496 EnterExpressionEvaluationContext Unevaluated(*this, Sema::Unevaluated); in SubstituteExplicitTemplateArguments()
2649 CheckOriginalCallArgDeduction(Sema &S, Sema::OriginalCallArg OriginalArg, in CheckOriginalCallArgDeduction()
2754 Sema::TemplateDeductionResult
2755 Sema::FinishTemplateArgumentDeduction(FunctionTemplateDecl *FunctionTemplate, in FinishTemplateArgumentDeduction()
2766 EnterExpressionEvaluationContext Unevaluated(*this, Sema::Unevaluated); in FinishTemplateArgumentDeduction()
2966 static QualType GetTypeOfFunction(Sema &S, const OverloadExpr::FindResult &R, in GetTypeOfFunction()
2992 ResolveOverloadForDeduction(Sema &S, TemplateParameterList *TemplateParams, in ResolveOverloadForDeduction()
3079 Sema::TemplateDeductionResult Result in ResolveOverloadForDeduction()
3096 static bool AdjustFunctionParmAndArgTypesForDeduction(Sema &S, in AdjustFunctionParmAndArgTypesForDeduction()
3193 hasDeducibleTemplateParameters(Sema &S, FunctionTemplateDecl *FunctionTemplate,
3196 static Sema::TemplateDeductionResult DeduceTemplateArgumentByListElement(
3197 Sema &S, TemplateParameterList *TemplateParams, QualType ParamType,
3204 DeduceFromInitializerList(Sema &S, TemplateParameterList *TemplateParams, in DeduceFromInitializerList()
3208 unsigned TDF, Sema::TemplateDeductionResult &Result) { in DeduceFromInitializerList()
3233 Result = Sema::TDK_Success; in DeduceFromInitializerList()
3273 static Sema::TemplateDeductionResult
3274 DeduceTemplateArgumentByListElement(Sema &S, in DeduceTemplateArgumentByListElement()
3283 Sema::TemplateDeductionResult Result; in DeduceTemplateArgumentByListElement()
3287 return Sema::TDK_Success; // Just ignore this expression. in DeduceTemplateArgumentByListElement()
3297 return Sema::TDK_FailedOverloadResolution; in DeduceTemplateArgumentByListElement()
3322 Sema::TemplateDeductionResult Sema::DeduceTemplateArguments( in DeduceTemplateArguments()
3513 QualType Sema::adjustCCAndNoReturn(QualType ArgFunctionType, in adjustCCAndNoReturn()
3558 Sema::TemplateDeductionResult
3559 Sema::DeduceTemplateArguments(FunctionTemplateDecl *FunctionTemplate, in DeduceTemplateArguments()
3592 EnterExpressionEvaluationContext Unevaluated(*this, Sema::Unevaluated); in DeduceTemplateArguments()
3653 QualType TypeToReplaceAutoWith, Sema &S) { in SubstAutoWithinFunctionReturnType()
3668 static inline Sema::TemplateDeductionResult
3674 Sema &S) { in SpecializeCorrespondingLambdaCallOperatorAndInvoker()
3690 if (Sema::TemplateDeductionResult Result in SpecializeCorrespondingLambdaCallOperatorAndInvoker()
3707 return Sema::TDK_NonDeducedMismatch; in SpecializeCorrespondingLambdaCallOperatorAndInvoker()
3718 Sema::TemplateDeductionResult LLVM_ATTRIBUTE_UNUSED Result = in SpecializeCorrespondingLambdaCallOperatorAndInvoker()
3722 assert(Result == Sema::TDK_Success && in SpecializeCorrespondingLambdaCallOperatorAndInvoker()
3755 return Sema::TDK_Success; in SpecializeCorrespondingLambdaCallOperatorAndInvoker()
3760 Sema::TemplateDeductionResult
3761 Sema::DeduceTemplateArguments(FunctionTemplateDecl *ConversionTemplate, in DeduceTemplateArguments()
3817 EnterExpressionEvaluationContext Unevaluated(*this, Sema::Unevaluated); in DeduceTemplateArguments()
3912 Sema::TemplateDeductionResult
3913 Sema::DeduceTemplateArguments(FunctionTemplateDecl *FunctionTemplate, in DeduceTemplateArguments()
3930 SubstituteAutoTransform(Sema &SemaRef, QualType Replacement) in SubstituteAutoTransform()
3976 Sema::DeduceAutoResult
3977 Sema::DeduceAutoType(TypeSourceInfo *Type, Expr *&Init, QualType &Result) { in DeduceAutoType()
3987 Sema::DeduceAutoResult
3988 Sema::DeduceAutoType(TypeLoc Type, Expr *&Init, QualType &Result) { in DeduceAutoType()
4097 Sema::OriginalCallArg(FuncParam,0,InitType), in DeduceAutoType()
4106 QualType Sema::SubstAutoType(QualType TypeWithAuto, in SubstAutoType()
4112 TypeSourceInfo* Sema::SubstAutoTypeSourceInfo(TypeSourceInfo *TypeWithAuto, in SubstAutoTypeSourceInfo()
4118 void Sema::DiagnoseAutoDeductionFailure(VarDecl *VDecl, Expr *Init) { in DiagnoseAutoDeductionFailure()
4133 bool Sema::DeduceReturnType(FunctionDecl *FD, SourceLocation Loc, in DeduceReturnType()
4179 static bool isAtLeastAsSpecializedAs(Sema &S, in isAtLeastAsSpecializedAs()
4364 Sema::getMoreSpecializedTemplate(FunctionTemplateDecl *FT1, in getMoreSpecializedTemplate()
4428 UnresolvedSetIterator Sema::getMostSpecialized( in getMostSpecialized()
4514 Sema::getMoreSpecializedPartialSpecialization( in getMoreSpecializedPartialSpecialization()
4587 Sema::getMoreSpecializedPartialSpecialization( in getMoreSpecializedPartialSpecialization()
5016 Sema::MarkUsedTemplateParameters(const TemplateArgumentList &TemplateArgs, in MarkUsedTemplateParameters()
5034 void Sema::MarkDeducedTemplateParameters( in MarkDeducedTemplateParameters()
5048 bool hasDeducibleTemplateParameters(Sema &S, in hasDeducibleTemplateParameters()