Lines Matching refs:Deduced
139 SmallVectorImpl<DeducedTemplateArgument> &Deduced, unsigned TDF,
148 SmallVectorImpl<DeducedTemplateArgument> &Deduced,
159 llvm::SmallBitVector &Deduced);
403 SmallVectorImpl<DeducedTemplateArgument> &Deduced) { in DeduceNonTypeTemplateArgument() argument
408 S.Context, Deduced[NTTP->getIndex()], NewDeduced); in DeduceNonTypeTemplateArgument()
411 Info.FirstArg = Deduced[NTTP->getIndex()]; in DeduceNonTypeTemplateArgument()
416 Deduced[NTTP->getIndex()] = Result; in DeduceNonTypeTemplateArgument()
445 S, TemplateParams, ParamType, ValueType, Info, Deduced, in DeduceNonTypeTemplateArgument()
456 SmallVectorImpl<DeducedTemplateArgument> &Deduced) { in DeduceNonTypeTemplateArgument() argument
461 ValueType, Info, Deduced); in DeduceNonTypeTemplateArgument()
470 SmallVectorImpl<DeducedTemplateArgument> &Deduced) { in DeduceNullPtrTemplateArgument() argument
480 Value->getType(), Info, Deduced); in DeduceNullPtrTemplateArgument()
491 SmallVectorImpl<DeducedTemplateArgument> &Deduced) { in DeduceNonTypeTemplateArgument() argument
494 Value->getType(), Info, Deduced); in DeduceNonTypeTemplateArgument()
505 SmallVectorImpl<DeducedTemplateArgument> &Deduced) { in DeduceNonTypeTemplateArgument() argument
509 S, TemplateParams, NTTP, DeducedTemplateArgument(New), T, Info, Deduced); in DeduceNonTypeTemplateArgument()
572 SmallVectorImpl<DeducedTemplateArgument> &Deduced) { in DeduceTemplateArguments() argument
619 Deduced[TempParam->getIndex()], in DeduceTemplateArguments()
623 Info.FirstArg = Deduced[TempParam->getIndex()]; in DeduceTemplateArguments()
628 Deduced[TempParam->getIndex()] = Result; in DeduceTemplateArguments()
676 SmallVectorImpl<DeducedTemplateArgument> &Deduced) { in DeduceTemplateSpecArguments() argument
724 AResolved, Deduced); in DeduceTemplateSpecArguments()
732 Info, Deduced, in DeduceTemplateSpecArguments()
756 SA->getTemplateArgs().asArray(), Deduced); in DeduceTemplateSpecArguments()
762 SA->getTemplateArgs().asArray(), Info, Deduced, in DeduceTemplateSpecArguments()
838 SmallVectorImpl<DeducedTemplateArgument> &Deduced, in PackDeductionScope() argument
841 : S(S), TemplateParams(TemplateParams), Deduced(Deduced), Info(Info), in PackDeductionScope()
849 SmallVectorImpl<DeducedTemplateArgument> &Deduced, in PackDeductionScope() argument
851 : S(S), TemplateParams(TemplateParams), Deduced(Deduced), Info(Info) { in PackDeductionScope()
860 DeducedFromEarlierParameter = !Deduced[Index].isNull(); in addPack()
862 Pack.Saved = Deduced[Index]; in addPack()
863 Deduced[Index] = TemplateArgument(); in addPack()
978 Deduced[Pack.Index] = Pack.New[PackElements]; in finishConstruction()
1028 DeducedTemplateArgument &DeducedArg = Deduced[Pack.Index]; in nextPackElement()
1052 Deduced[Pack.Index] = Pack.Saved; in finish()
1099 Loc = &Deduced[Pack.Index]; in finish()
1146 SmallVectorImpl<DeducedTemplateArgument> &Deduced; member in __anonc4c693d00111::PackDeductionScope
1195 SmallVectorImpl<DeducedTemplateArgument> &Deduced, in DeduceTemplateArguments() argument
1224 Args[ArgIdx].getUnqualifiedType(), Info, Deduced, TDF, in DeduceTemplateArguments()
1242 PackDeductionScope PackScope(S, TemplateParams, Deduced, Info, Pattern); in DeduceTemplateArguments()
1251 Args[ArgIdx].getUnqualifiedType(), Info, Deduced, TDF, in DeduceTemplateArguments()
1408 SmallVectorImpl<DeducedTemplateArgument> &Deduced) { in DeduceTemplateBases() argument
1453 SmallVector<DeducedTemplateArgument, 8> DeducedCopy(Deduced.begin(), in DeduceTemplateBases()
1454 Deduced.end()); in DeduceTemplateBases()
1496 std::swap(Matches.front().second, Deduced); in DeduceTemplateBases()
1527 SmallVectorImpl<DeducedTemplateArgument> &Deduced, unsigned TDF, in DeduceTemplateArgumentsByTypeMatch() argument
1701 checkDeducedTemplateArguments(S.Context, Deduced[Index], NewDeduced); in DeduceTemplateArgumentsByTypeMatch()
1704 Info.FirstArg = Deduced[Index]; in DeduceTemplateArgumentsByTypeMatch()
1709 Deduced[Index] = Result; in DeduceTemplateArgumentsByTypeMatch()
1808 Deduced, TDF); in DeduceTemplateArgumentsByTypeMatch()
1818 Deduced, TDF); in DeduceTemplateArgumentsByTypeMatch()
1833 PointeeType, Info, Deduced, in DeduceTemplateArgumentsByTypeMatch()
1846 Deduced, 0); in DeduceTemplateArgumentsByTypeMatch()
1858 Deduced, 0); in DeduceTemplateArgumentsByTypeMatch()
1872 Deduced, TDF & TDF_IgnoreQualifiers); in DeduceTemplateArgumentsByTypeMatch()
1885 Deduced, TDF & TDF_IgnoreQualifiers); in DeduceTemplateArgumentsByTypeMatch()
1899 Info, Deduced, TDF & TDF_IgnoreQualifiers); in DeduceTemplateArgumentsByTypeMatch()
1917 /*ArrayBound=*/true, Info, Deduced); in DeduceTemplateArgumentsByTypeMatch()
1922 S, TemplateParams, NTTP, DAA->getSizeExpr(), Info, Deduced); in DeduceTemplateArgumentsByTypeMatch()
1945 Info, Deduced, 0, in DeduceTemplateArgumentsByTypeMatch()
1954 FPA->param_type_begin(), FPA->getNumParams(), Info, Deduced, in DeduceTemplateArgumentsByTypeMatch()
1983 /*DeducedFromArrayBound=*/true, Info, Deduced); in DeduceTemplateArgumentsByTypeMatch()
1988 S, TemplateParams, NTTP, ArgNoexceptExpr, Info, Deduced); in DeduceTemplateArgumentsByTypeMatch()
2015 Deduced); in DeduceTemplateArgumentsByTypeMatch()
2017 SmallVector<DeducedTemplateArgument, 8> DeducedOrig(Deduced.begin(), in DeduceTemplateArgumentsByTypeMatch()
2018 Deduced.end()); in DeduceTemplateArgumentsByTypeMatch()
2021 DeduceTemplateSpecArguments(S, TemplateParams, P, A, Info, Deduced); in DeduceTemplateArgumentsByTypeMatch()
2035 Deduced = DeducedOrig; in DeduceTemplateArgumentsByTypeMatch()
2039 TemplateParams, P, Info, Deduced); in DeduceTemplateArgumentsByTypeMatch()
2070 S, TemplateParams, PPT, APT, Info, Deduced, SubTDF); in DeduceTemplateArgumentsByTypeMatch()
2075 QualType(MPA->getClass(), 0), Info, Deduced, SubTDF); in DeduceTemplateArgumentsByTypeMatch()
2090 Deduced, 0); in DeduceTemplateArgumentsByTypeMatch()
2114 S, TemplateParams, VP->getElementType(), ElementType, Info, Deduced, in DeduceTemplateArgumentsByTypeMatch()
2125 Info, Deduced, TDF); in DeduceTemplateArgumentsByTypeMatch()
2142 Info, Deduced); in DeduceTemplateArgumentsByTypeMatch()
2149 Info, Deduced, TDF); in DeduceTemplateArgumentsByTypeMatch()
2160 VA->getSizeExpr(), Info, Deduced); in DeduceTemplateArgumentsByTypeMatch()
2176 Info, Deduced, TDF); in DeduceTemplateArgumentsByTypeMatch()
2193 Deduced); in DeduceTemplateArgumentsByTypeMatch()
2200 Info, Deduced, TDF); in DeduceTemplateArgumentsByTypeMatch()
2211 VA->getSizeExpr(), Info, Deduced); in DeduceTemplateArgumentsByTypeMatch()
2235 Deduced, TDF); in DeduceTemplateArgumentsByTypeMatch()
2247 Info, Deduced, TDF); in DeduceTemplateArgumentsByTypeMatch()
2253 [&S, &Info, &Deduced, &TemplateParams]( in DeduceTemplateArgumentsByTypeMatch()
2290 /*ArrayBound=*/true, Info, Deduced); in DeduceTemplateArgumentsByTypeMatch()
2295 Info, Deduced); in DeduceTemplateArgumentsByTypeMatch()
2319 Info, Deduced, TDF); in DeduceTemplateArgumentsByTypeMatch()
2330 S, TemplateParams, NTTP, ASA->getAddrSpaceExpr(), Info, Deduced); in DeduceTemplateArgumentsByTypeMatch()
2341 S.Context.removeAddrSpaceQualType(A), Info, Deduced, TDF); in DeduceTemplateArgumentsByTypeMatch()
2353 true, Info, Deduced); in DeduceTemplateArgumentsByTypeMatch()
2375 Deduced); in DeduceTemplateArgumentsByTypeMatch()
2405 S, TemplateParams, PIT->getSelectedType(), A, Info, Deduced, TDF); in DeduceTemplateArgumentsByTypeMatch()
2418 SmallVectorImpl<DeducedTemplateArgument> &Deduced) { in DeduceTemplateArguments() argument
2432 S, TemplateParams, P.getAsType(), A.getAsType(), Info, Deduced, 0); in DeduceTemplateArguments()
2441 /*DefaultArguments=*/{}, Deduced); in DeduceTemplateArguments()
2494 A.getNonTypeTemplateArgumentType(), Info, Deduced); in DeduceTemplateArguments()
2498 A.getNullPtrType(), Info, Deduced); in DeduceTemplateArguments()
2503 Info, Deduced); in DeduceTemplateArguments()
2574 SmallVectorImpl<DeducedTemplateArgument> &Deduced, in DeduceTemplateArguments() argument
2612 DeduceTemplateArguments(S, TemplateParams, Pi, Ai, Info, Deduced); in DeduceTemplateArguments()
2631 PackDeductionScope PackScope(S, TemplateParams, Deduced, Info, Pattern); in DeduceTemplateArguments()
2644 DeduceTemplateArguments(S, TemplateParams, Pi, Ai, Info, Deduced); in DeduceTemplateArguments()
2664 SmallVectorImpl<DeducedTemplateArgument> &Deduced, in DeduceTemplateArguments() argument
2666 return ::DeduceTemplateArguments(*this, TemplateParams, Ps, As, Info, Deduced, in DeduceTemplateArguments()
2920 SmallVectorImpl<DeducedTemplateArgument> &Deduced, in ConvertDeducedTemplateArguments() argument
2935 if (Deduced[I].isNull() && Param->isTemplateParameterPack()) { in ConvertDeducedTemplateArguments()
2937 PackDeductionScope(S, TemplateParams, Deduced, Info, I).finish(); in ConvertDeducedTemplateArguments()
2942 if (!Deduced[I].isNull()) { in ConvertDeducedTemplateArguments()
2958 SugaredBuilder.push_back(Deduced[I]); in ConvertDeducedTemplateArguments()
2960 S.Context.getCanonicalTemplateArgument(Deduced[I])); in ConvertDeducedTemplateArguments()
2967 if (ConvertDeducedTemplateArgument(S, Param, Deduced[I], Template, Info, in ConvertDeducedTemplateArguments()
3117 SmallVectorImpl<DeducedTemplateArgument> &Deduced, in FinishTemplateArgumentDeduction() argument
3131 S, Partial, IsPartialOrdering, Deduced, Info, SugaredBuilder, in FinishTemplateArgumentDeduction()
3213 SmallVectorImpl<DeducedTemplateArgument> &Deduced, in FinishTemplateArgumentDeduction() argument
3227 S, Template, /*IsDeduced*/ PartialOrdering, Deduced, Info, in FinishTemplateArgumentDeduction()
3262 SmallVectorImpl<DeducedTemplateArgument> &Deduced, in FinishTemplateArgumentDeduction() argument
3276 S, TD, /*IsPartialOrdering=*/false, Deduced, Info, SugaredBuilder, in FinishTemplateArgumentDeduction()
3319 SmallVector<DeducedTemplateArgument, 4> Deduced; in DeduceTemplateArguments() local
3320 Deduced.resize(Partial->getTemplateParameters()->size()); in DeduceTemplateArguments()
3323 Partial->getTemplateArgs().asArray(), TemplateArgs, Info, Deduced, in DeduceTemplateArguments()
3328 SmallVector<TemplateArgument, 4> DeducedArgs(Deduced.begin(), Deduced.end()); in DeduceTemplateArguments()
3341 TemplateArgs, Deduced, Info); in DeduceTemplateArguments()
3386 SmallVector<DeducedTemplateArgument> Deduced( in DeduceTemplateArgumentsFromType() local
3391 TD->getTemplateParameters(), PArgs, AArgs, Info, Deduced, false); in DeduceTemplateArgumentsFromType()
3396 SmallVector<TemplateArgument, 4> DeducedArgs(Deduced.begin(), Deduced.end()); in DeduceTemplateArgumentsFromType()
3406 Result = ::FinishTemplateArgumentDeduction(*this, TD, Deduced, Info); in DeduceTemplateArgumentsFromType()
3434 SmallVectorImpl<DeducedTemplateArgument> &Deduced, in SubstituteExplicitTemplateArguments() argument
3607 Deduced.reserve(TemplateParams->size()); in SubstituteExplicitTemplateArguments()
3611 Deduced.push_back(DeducedTemplateArgument()); in SubstituteExplicitTemplateArguments()
3613 Deduced.push_back(Arg); in SubstituteExplicitTemplateArguments()
3810 SmallVectorImpl<DeducedTemplateArgument> &Deduced, in FinishTemplateArgumentDeduction() argument
3822 SmallVector<TemplateArgument, 4> DeducedArgs(Deduced.begin(), Deduced.end()); in FinishTemplateArgumentDeduction()
3836 *this, FunctionTemplate, /*IsDeduced*/ true, Deduced, Info, in FinishTemplateArgumentDeduction()
4126 Deduced(TemplateParams->size()); in ResolveOverloadForDeduction() local
4129 S, TemplateParams, ParamType, ArgType, Info, Deduced, TDF); in ResolveOverloadForDeduction()
4249 SmallVectorImpl<DeducedTemplateArgument> &Deduced,
4259 SmallVectorImpl<DeducedTemplateArgument> &Deduced, in DeduceFromInitializerList() argument
4294 E->Classify(S.getASTContext()), E, Info, Deduced, in DeduceFromInitializerList()
4315 /*ArrayBound=*/true, Info, Deduced); in DeduceFromInitializerList()
4331 SmallVectorImpl<DeducedTemplateArgument> &Deduced, in DeduceTemplateArgumentsFromCallArgument() argument
4348 Deduced, OriginalCallArgs, ArgIdx, TDF); in DeduceTemplateArgumentsFromCallArgument()
4359 ArgType, Info, Deduced, TDF); in DeduceTemplateArgumentsFromCallArgument()
4404 SmallVector<DeducedTemplateArgument, 4> Deduced; in DeduceTemplateArguments() local
4411 FunctionTemplate, *ExplicitTemplateArgs, Deduced, ParamTypes, nullptr, in DeduceTemplateArguments()
4417 NumExplicitlySpecified = Deduced.size(); in DeduceTemplateArguments()
4441 /*Arg=*/nullptr, Info, Deduced, OriginalCallArgs, in DeduceTemplateArguments()
4449 Args[ArgIdx], Info, Deduced, OriginalCallArgs, /*Decomposed*/ false, in DeduceTemplateArguments()
4454 Deduced.resize(TemplateParams->size()); in DeduceTemplateArguments()
4488 PackDeductionScope PackScope(*this, TemplateParams, Deduced, Info, in DeduceTemplateArguments()
4578 FunctionTemplate, Deduced, NumExplicitlySpecified, Specialization, Info, in DeduceTemplateArguments()
4638 SmallVector<DeducedTemplateArgument, 4> Deduced; in DeduceTemplateArguments() local
4645 FunctionTemplate, *ExplicitTemplateArgs, Deduced, ParamTypes, in DeduceTemplateArguments()
4651 NumExplicitlySpecified = Deduced.size(); in DeduceTemplateArguments()
4666 Deduced.resize(TemplateParams->size()); in DeduceTemplateArguments()
4682 *this, TemplateParams, FunctionType, ArgFunctionType, Info, Deduced, in DeduceTemplateArguments()
4690 Result = FinishTemplateArgumentDeduction(FunctionTemplate, Deduced, in DeduceTemplateArguments()
4825 SmallVector<DeducedTemplateArgument, 4> Deduced; in DeduceTemplateArguments() local
4826 Deduced.resize(TemplateParams->size()); in DeduceTemplateArguments()
4856 /*Arg=*/nullptr, Info, Deduced, OriginalCallArgs, in DeduceTemplateArguments()
4863 *this, TemplateParams, P, A, Info, Deduced, TDF); in DeduceTemplateArguments()
4873 Result = FinishTemplateArgumentDeduction(ConversionTemplate, Deduced, 0, in DeduceTemplateArguments()
4987 QualType Deduced) { in CheckDeducedPlaceholderConstraints() argument
4993 TemplateArgumentLoc(TemplateArgument(Deduced), in CheckDeducedPlaceholderConstraints()
4995 Deduced, TypeLoc.getNameLoc()))); in CheckDeducedPlaceholderConstraints()
5037 << Deduced << Buf << TypeLoc.getLocalSourceRange(); in CheckDeducedPlaceholderConstraints()
5097 SmallVector<DeducedTemplateArgument, 1> Deduced; in DeduceAutoType() local
5098 Deduced.resize(1); in DeduceAutoType()
5152 Init->Classify(getASTContext()), Init, Info, Deduced, in DeduceAutoType()
5166 Deduced[0].getKind() != TemplateArgument::Null) in DeduceAutoType()
5180 Init->Classify(getASTContext()), Init, Info, Deduced, in DeduceAutoType()
5188 if (Deduced[0].getKind() != TemplateArgument::Type) in DeduceAutoType()
5190 DeducedType = Deduced[0].getAsType(); in DeduceAutoType()
5219 QualType DeducedA = InitList ? Deduced[0].getAsType() : Result; in DeduceAutoType()
5420 SmallVector<DeducedTemplateArgument, 4> Deduced; in isAtLeastAsSpecializedAs() local
5421 Deduced.resize(TemplateParams->size()); in isAtLeastAsSpecializedAs()
5430 Args1.data(), Args1.size(), Info, Deduced, in isAtLeastAsSpecializedAs()
5442 Info, Deduced, TDF_None, in isAtLeastAsSpecializedAs()
5451 S, TemplateParams, FD2->getType(), FD1->getType(), Info, Deduced, in isAtLeastAsSpecializedAs()
5464 unsigned ArgIdx = 0, NumArgs = Deduced.size(); in isAtLeastAsSpecializedAs()
5466 if (Deduced[ArgIdx].isNull()) in isAtLeastAsSpecializedAs()
5524 if (Deduced[ArgIdx].isNull() && UsedParameters[ArgIdx]) in isAtLeastAsSpecializedAs()
5881 SmallVector<DeducedTemplateArgument, 4> Deduced; in isAtLeastAsSpecializedAs() local
5884 Deduced.resize(P2->getTemplateParameters()->size()); in isAtLeastAsSpecializedAs()
5886 S, P2->getTemplateParameters(), T2, T1, Info, Deduced, TDF_None, in isAtLeastAsSpecializedAs()
5890 SmallVector<TemplateArgument, 4> DeducedArgs(Deduced.begin(), in isAtLeastAsSpecializedAs()
5891 Deduced.end()); in isAtLeastAsSpecializedAs()
5903 Deduced, Info) == TemplateDeductionResult::Success; in isAtLeastAsSpecializedAs()
6204 SmallVector<DeducedTemplateArgument, 4> Deduced; in isTemplateTemplateParameterAtLeastAsSpecializedAs() local
6205 Deduced.resize(A->size()); in isTemplateTemplateParameterAtLeastAsSpecializedAs()
6218 if (::DeduceTemplateArguments(*this, A, AArgs, PArgs, Info, Deduced, in isTemplateTemplateParameterAtLeastAsSpecializedAs()
6225 SmallVector<TemplateArgument, 4> DeducedArgs(Deduced.begin(), Deduced.end()); in isTemplateTemplateParameterAtLeastAsSpecializedAs()
6235 *this, AArg, /*IsPartialOrdering=*/true, PArgs, Deduced, Info) == in isTemplateTemplateParameterAtLeastAsSpecializedAs()
6720 llvm::SmallBitVector &Deduced) { in MarkDeducedTemplateParameters() argument
6723 Deduced.clear(); in MarkDeducedTemplateParameters()
6724 Deduced.resize(TemplateParams->size()); in MarkDeducedTemplateParameters()
6729 true, TemplateParams->getDepth(), Deduced); in MarkDeducedTemplateParameters()
6740 llvm::SmallBitVector Deduced(TemplateParams->size()); in hasDeducibleTemplateParameters() local
6742 Deduced); in hasDeducibleTemplateParameters()
6744 return Deduced.any(); in hasDeducibleTemplateParameters()