Lines Matching refs:Param

137                         const TemplateArgument &Param,
145 QualType Param,
386 Info.Param = NTTP; in DeduceNonTypeTemplateArgument()
482 TemplateName Param, in DeduceTemplateArguments() argument
486 TemplateDecl *ParamDecl = Param.getAsTemplateDecl(); in DeduceTemplateArguments()
504 Info.Param = TempParam; in DeduceTemplateArguments()
515 if (S.Context.hasSameTemplateName(Param, Arg)) in DeduceTemplateArguments()
519 Info.FirstArg = TemplateArgument(Param); in DeduceTemplateArguments()
545 const TemplateSpecializationType *Param, in DeduceTemplateArguments() argument
561 Param->getTemplateName(), in DeduceTemplateArguments()
571 Param->template_arguments(), in DeduceTemplateArguments()
581 Info.FirstArg = TemplateArgument(QualType(Param, 0)); in DeduceTemplateArguments()
589 Info.FirstArg = TemplateArgument(QualType(Param, 0)); in DeduceTemplateArguments()
598 Param->getTemplateName(), in DeduceTemplateArguments()
604 return DeduceTemplateArguments(S, TemplateParams, Param->template_arguments(), in DeduceTemplateArguments()
645 static Optional<unsigned> getExpandedPackSize(NamedDecl *Param) { in getExpandedPackSize() argument
646 if (auto *NTTP = dyn_cast<NonTypeTemplateParmDecl>(Param)) in getExpandedPackSize()
650 if (auto *TTP = dyn_cast<TemplateTemplateParmDecl>(Param)) in getExpandedPackSize()
933 NamedDecl *Param = TemplateParams->getParam(Pack.Index); in finish() local
935 Info.Param = makeTemplateParameter(Param); in finish()
943 if (Optional<unsigned> Expansions = getExpandedPackSize(Param)) { in finish()
945 Info.Param = makeTemplateParameter(Param); in finish()
1147 bool Sema::isSameOrCompatibleFunctionType(CanQualType Param, in isSameOrCompatibleFunctionType() argument
1149 const FunctionType *ParamFunction = Param->getAs<FunctionType>(), in isSameOrCompatibleFunctionType()
1154 return Param == Arg; in isSameOrCompatibleFunctionType()
1158 if (IsFunctionConversion(Param, Arg, AdjustedParam)) in isSameOrCompatibleFunctionType()
1163 return Param == Arg; in isSameOrCompatibleFunctionType()
1178 static bool isForwardingReference(QualType Param, unsigned FirstInnerIndex) { in isForwardingReference() argument
1183 if (auto *ParamRef = Param->getAs<RValueReferenceType>()) { in isForwardingReference()
1227 QualType Param = S.Context.getCanonicalType(ParamIn); in DeduceTemplateArgumentsByTypeMatch() local
1241 const ReferenceType *ParamRef = Param->getAs<ReferenceType>(); in DeduceTemplateArgumentsByTypeMatch()
1243 Param = ParamRef->getPointeeType(); in DeduceTemplateArgumentsByTypeMatch()
1250 if (ParamRef && ArgRef && S.Context.hasSameUnqualifiedType(Param, Arg)) { in DeduceTemplateArgumentsByTypeMatch()
1270 Qualifiers ParamQuals = Param.getQualifiers(); in DeduceTemplateArgumentsByTypeMatch()
1289 Param = Param.getUnqualifiedType(); in DeduceTemplateArgumentsByTypeMatch()
1300 QualType UnqualParam = S.Context.getUnqualifiedArrayType(Param, Quals); in DeduceTemplateArgumentsByTypeMatch()
1303 Param = S.Context.getQualifiedType(UnqualParam, Quals); in DeduceTemplateArgumentsByTypeMatch()
1306 if ((TDF & TDF_TopLevelParameterTypeList) && !Param->isFunctionType()) { in DeduceTemplateArgumentsByTypeMatch()
1319 if (isForwardingReference(Param, 0) && Arg->isLValueReferenceType()) in DeduceTemplateArgumentsByTypeMatch()
1320 Param = Param->getPointeeType(); in DeduceTemplateArgumentsByTypeMatch()
1332 = Param->getAs<TemplateTypeParmType>()) { in DeduceTemplateArgumentsByTypeMatch()
1356 hasInconsistentOrSupersetQualifiersOf(Param, Arg)) { in DeduceTemplateArgumentsByTypeMatch()
1357 Info.Param = cast<TemplateTypeParmDecl>(TemplateParams->getParam(Index)); in DeduceTemplateArgumentsByTypeMatch()
1358 Info.FirstArg = TemplateArgument(Param); in DeduceTemplateArgumentsByTypeMatch()
1365 if (Arg->isFunctionType() && Param.hasQualifiers()) { in DeduceTemplateArgumentsByTypeMatch()
1377 Qualifiers ParamQs = Param.getQualifiers(); in DeduceTemplateArgumentsByTypeMatch()
1391 Info.Param = cast<TemplateTypeParmDecl>(TemplateParams->getParam(Index)); in DeduceTemplateArgumentsByTypeMatch()
1392 Info.FirstArg = TemplateArgument(Param); in DeduceTemplateArgumentsByTypeMatch()
1416 Info.Param = cast<TemplateTypeParmDecl>(TemplateParams->getParam(Index)); in DeduceTemplateArgumentsByTypeMatch()
1434 if (isa<SubstTemplateTypeParmPackType>(Param)) in DeduceTemplateArgumentsByTypeMatch()
1438 CanQualType CanParam = S.Context.getCanonicalType(Param); in DeduceTemplateArgumentsByTypeMatch()
1442 if (hasInconsistentOrSupersetQualifiersOf(Param, Arg)) in DeduceTemplateArgumentsByTypeMatch()
1448 if (!Arg.getQualifiers().compatiblyIncludes(Param.getQualifiers())) in DeduceTemplateArgumentsByTypeMatch()
1455 Arg = S.Context.getQualifiedType(Arg, Param.getQualifiers()); in DeduceTemplateArgumentsByTypeMatch()
1456 } else if (!IsPossiblyOpaquelyQualifiedType(Param)) { in DeduceTemplateArgumentsByTypeMatch()
1457 if (Param.getCVRQualifiers() != Arg.getCVRQualifiers()) in DeduceTemplateArgumentsByTypeMatch()
1462 if (!Param->isDependentType()) { in DeduceTemplateArgumentsByTypeMatch()
1467 : Param != Arg; in DeduceTemplateArgumentsByTypeMatch()
1474 } else if (!Param->isDependentType()) { in DeduceTemplateArgumentsByTypeMatch()
1485 switch (Param->getTypeClass()) { in DeduceTemplateArgumentsByTypeMatch()
1511 Param = Param.getUnqualifiedType(); in DeduceTemplateArgumentsByTypeMatch()
1515 return Param == Arg? Sema::TDK_Success : Sema::TDK_NonDeducedMismatch; in DeduceTemplateArgumentsByTypeMatch()
1521 cast<ComplexType>(Param)->getElementType(), in DeduceTemplateArgumentsByTypeMatch()
1531 cast<AtomicType>(Param)->getValueType(), in DeduceTemplateArgumentsByTypeMatch()
1551 cast<PointerType>(Param)->getPointeeType(), in DeduceTemplateArgumentsByTypeMatch()
1564 cast<LValueReferenceType>(Param)->getPointeeType(), in DeduceTemplateArgumentsByTypeMatch()
1576 cast<RValueReferenceType>(Param)->getPointeeType(), in DeduceTemplateArgumentsByTypeMatch()
1590 S.Context.getAsIncompleteArrayType(Param)->getElementType(), in DeduceTemplateArgumentsByTypeMatch()
1603 S.Context.getAsConstantArrayType(Param); in DeduceTemplateArgumentsByTypeMatch()
1624 = S.Context.getAsDependentSizedArrayType(Param); in DeduceTemplateArgumentsByTypeMatch()
1672 cast<FunctionProtoType>(Param); in DeduceTemplateArgumentsByTypeMatch()
1740 Param = cast<InjectedClassNameType>(Param) in DeduceTemplateArgumentsByTypeMatch()
1742 assert(isa<TemplateSpecializationType>(Param) && in DeduceTemplateArgumentsByTypeMatch()
1753 cast<TemplateSpecializationType>(Param); in DeduceTemplateArgumentsByTypeMatch()
1827 Info.Param = BaseInfo.Param; in DeduceTemplateArgumentsByTypeMatch()
1862 const MemberPointerType *MemPtrParam = cast<MemberPointerType>(Param); in DeduceTemplateArgumentsByTypeMatch()
1897 const BlockPointerType *BlockPtrParam = cast<BlockPointerType>(Param); in DeduceTemplateArgumentsByTypeMatch()
1913 const ExtVectorType *VectorParam = cast<ExtVectorType>(Param); in DeduceTemplateArgumentsByTypeMatch()
1943 const auto *VectorParam = cast<DependentVectorType>(Param); in DeduceTemplateArgumentsByTypeMatch()
1995 = cast<DependentSizedExtVectorType>(Param); in DeduceTemplateArgumentsByTypeMatch()
2051 cast<DependentAddressSpaceType>(Param); in DeduceTemplateArgumentsByTypeMatch()
2120 const TemplateArgument &Param, in DeduceTemplateArguments() argument
2130 switch (Param.getKind()) { in DeduceTemplateArguments()
2137 Param.getAsType(), in DeduceTemplateArguments()
2140 Info.FirstArg = Param; in DeduceTemplateArguments()
2147 Param.getAsTemplate(), in DeduceTemplateArguments()
2149 Info.FirstArg = Param; in DeduceTemplateArguments()
2158 isSameDeclaration(Param.getAsDecl(), Arg.getAsDecl())) in DeduceTemplateArguments()
2161 Info.FirstArg = Param; in DeduceTemplateArguments()
2167 S.Context.hasSameType(Param.getNullPtrType(), Arg.getNullPtrType())) in DeduceTemplateArguments()
2170 Info.FirstArg = Param; in DeduceTemplateArguments()
2176 if (hasSameExtendedValue(Param.getAsIntegral(), Arg.getAsIntegral())) in DeduceTemplateArguments()
2179 Info.FirstArg = Param; in DeduceTemplateArguments()
2185 Info.FirstArg = Param; in DeduceTemplateArguments()
2190 Info.FirstArg = Param; in DeduceTemplateArguments()
2196 = getDeducedParameterFromExpr(Info, Param.getAsExpr())) { in DeduceTemplateArguments()
2216 Info.FirstArg = Param; in DeduceTemplateArguments()
2508 ConvertDeducedTemplateArgument(Sema &S, NamedDecl *Param, in ConvertDeducedTemplateArgument() argument
2524 Param, ArgLoc, Template, Template->getLocation(), in ConvertDeducedTemplateArgument()
2549 S.Diag(Param->getLocation(), in ConvertDeducedTemplateArgument()
2551 << Arg << Param; in ConvertDeducedTemplateArgument()
2568 if (auto *NTTP = dyn_cast<NonTypeTemplateParmDecl>(Param)) { in ConvertDeducedTemplateArgument()
2576 } else if (auto *TTP = dyn_cast<TemplateTemplateParmDecl>(Param)) { in ConvertDeducedTemplateArgument()
2608 NamedDecl *Param = TemplateParams->getParam(I); in ConvertDeducedTemplateArguments() local
2614 if (Deduced[I].isNull() && Param->isTemplateParameterPack()) { in ConvertDeducedTemplateArguments()
2625 if (Param->isParameterPack() && CurrentInstantiationScope && in ConvertDeducedTemplateArguments()
2626 CurrentInstantiationScope->getPartiallySubstitutedPack() == Param) { in ConvertDeducedTemplateArguments()
2643 if (ConvertDeducedTemplateArgument(S, Param, Deduced[I], Template, Info, in ConvertDeducedTemplateArguments()
2645 Info.Param = makeTemplateParameter(Param); in ConvertDeducedTemplateArguments()
2664 TD, TD->getLocation(), TD->getSourceRange().getEnd(), Param, Builder, in ConvertDeducedTemplateArguments()
2669 Info.Param = makeTemplateParameter( in ConvertDeducedTemplateArguments()
2679 if (S.CheckTemplateArgument(Param, DefArg, TD, TD->getLocation(), in ConvertDeducedTemplateArguments()
2682 Info.Param = makeTemplateParameter( in ConvertDeducedTemplateArguments()
2764 Decl *Param = const_cast<NamedDecl *>( in FinishTemplateArgumentDeduction() local
2766 Info.Param = makeTemplateParameter(Param); in FinishTemplateArgumentDeduction()
2780 Info.Param = makeTemplateParameter(TemplateParams->getParam(I)); in FinishTemplateArgumentDeduction()
2822 Info.Param = makeTemplateParameter(TemplateParams->getParam(I)); in FinishTemplateArgumentDeduction()
3015 Info.Param = makeTemplateParameter(TemplateParams->getParam(Index)); in SubstituteExplicitTemplateArguments()
3039 auto *Param = TemplateParams->getParam(Builder.size() - 1); in SubstituteExplicitTemplateArguments() local
3042 Optional<unsigned> Expansions = getExpandedPackSize(Param); in SubstituteExplicitTemplateArguments()
3046 Param, Arg.pack_begin(), Arg.pack_size()); in SubstituteExplicitTemplateArguments()