Home | History | Annotate | Download | only in Sema

Lines Matching refs:Arg

86                         TemplateArgument Arg,
118 QualType Arg,
402 TemplateName Arg,
414 DeducedTemplateArgument NewDeduced(S.Context.getCanonicalTemplateName(Arg));
430 if (S.Context.hasSameTemplateName(Param, Arg))
435 Info.SecondArg = TemplateArgument(Arg);
448 /// \param Arg the argument type
461 QualType Arg,
464 assert(Arg.isCanonical() && "Argument type must be canonical");
468 = dyn_cast<TemplateSpecializationType>(Arg)) {
490 const RecordType *RecordArg = dyn_cast<RecordType>(Arg);
493 Info.SecondArg = TemplateArgument(Arg);
501 Info.SecondArg = TemplateArgument(Arg);
910 QualType Arg = S.Context.getCanonicalType(ArgIn);
915 = dyn_cast<PackExpansionType>(Arg))
916 Arg = ArgExpansion->getPattern();
928 const ReferenceType *ArgRef = Arg->getAs<ReferenceType>();
930 Arg = ArgRef->getPointeeType();
948 Qualifiers ArgQuals = Arg.getQualifiers();
963 Arg = Arg.getUnqualifiedType();
973 Arg.getCVRQualifiers());
995 if (Arg->isLValueReferenceType())
1011 if (Arg->isPlaceholderType())
1019 if (isa<ArrayType>(Arg)) {
1021 Arg = S.Context.getUnqualifiedArrayType(Arg, Quals);
1023 Arg = S.Context.getQualifiedType(Arg, Quals);
1031 hasInconsistentOrSupersetQualifiersOf(Param, Arg)) {
1034 Info.SecondArg = TemplateArgument(Arg);
1039 assert(Arg != S.Context.OverloadTy && "Unresolved overloaded function");
1040 QualType DeducedType = Arg;
1061 Info.SecondArg = TemplateArgument(Arg);
1108 if (hasInconsistentOrSupersetQualifiersOf(Param, Arg))
1111 if (Param.getCVRQualifiers() != Arg.getCVRQualifiers())
1117 if (!(TDF & TDF_SkipNonDependent) && Param != Arg)
1123 Param.getUnqualifiedType() == Arg.getUnqualifiedType()) {
1154 Arg = Arg.getUnqualifiedType();
1157 return Param == Arg? Sema::TDK_Success : Sema::TDK_NonDeducedMismatch;
1162 if (const ComplexType *ComplexArg = Arg->getAs<ComplexType>())
1172 if (const AtomicType *AtomicArg = Arg->getAs<AtomicType>())
1183 if (const PointerType *PointerArg = Arg->getAs<PointerType>()) {
1186 = Arg->getAs<ObjCObjectPointerType>()) {
1201 const LValueReferenceType *ReferenceArg = Arg->getAs<LValueReferenceType>();
1212 const RValueReferenceType *ReferenceArg = Arg->getAs<RValueReferenceType>();
1225 S.Context.getAsIncompleteArrayType(Arg);
1239 S.Context.getAsConstantArrayType(Arg);
1257 const ArrayType *ArrayArg = S.Context.getAsArrayType(Arg);
1308 dyn_cast<FunctionProtoType>(Arg);
1359 = DeduceTemplateArguments(S, TemplateParams, SpecParam, Arg,
1372 if (const RecordType *RecordT = Arg->getAs<RecordType>()) {
1376 if (S.RequireCompleteType(Info.getLocation(), Arg, 0))
1452 const MemberPointerType *MemPtrArg = dyn_cast<MemberPointerType>(Arg);
1478 const BlockPointerType *BlockPtrArg = dyn_cast<BlockPointerType>(Arg);
1494 if (const ExtVectorType *VectorArg = dyn_cast<ExtVectorType>(Arg)) {
1507 = dyn_cast<DependentSizedExtVectorType>(Arg)) {
1529 if (const ExtVectorType *VectorArg = dyn_cast<ExtVectorType>(Arg)) {
1551 = dyn_cast<DependentSizedExtVectorType>(Arg)) {
1593 TemplateArgument Arg,
1599 if (Arg.isPackExpansion())
1600 Arg = Arg.getPackExpansionPattern();
1607 if (Arg.getKind() == TemplateArgument::Type)
1610 Arg.getAsType(),
1613 Info.SecondArg = Arg;
1617 if (Arg.getKind() == TemplateArgument::Template)
1620 Arg.getAsTemplate(), Info, Deduced);
1622 Info.SecondArg = Arg;
1629 if (Arg.getKind() == TemplateArgument::Declaration &&
1630 isSameDeclaration(Param.getAsDecl(), Arg.getAsDecl()) &&
1631 Param.isDeclForReferenceParam() == Arg.isDeclForReferenceParam())
1635 Info.SecondArg = Arg;
1639 if (Arg.getKind() == TemplateArgument::NullPtr &&
1640 S.Context.hasSameType(Param.getNullPtrType(), Arg.getNullPtrType()))
1644 Info.SecondArg = Arg;
1648 if (Arg.getKind() == TemplateArgument::Integral) {
1649 if (hasSameExtendedValue(Param.getAsIntegral(), Arg.getAsIntegral()))
1653 Info.SecondArg = Arg;
1657 if (Arg.getKind() == TemplateArgument::Expression) {
1659 Info.SecondArg = Arg;
1664 Info.SecondArg = Arg;
1670 if (Arg.getKind() == TemplateArgument::Integral)
1672 Arg.getAsIntegral(),
1673 Arg.getIntegralType(),
1676 if (Arg.getKind() == TemplateArgument::Expression)
1677 return DeduceNonTypeTemplateArgument(S, NTTP, Arg.getAsExpr(),
1679 if (Arg.getKind() == TemplateArgument::Declaration)
1680 return DeduceNonTypeTemplateArgument(S, NTTP, Arg.getAsDecl(),
1684 Info.SecondArg = Arg;
1712 const TemplateArgument &Arg = Args[ArgIdx];
1713 if (Arg.getKind() != TemplateArgument::Pack)
1717 Args = Arg.pack_begin();
1718 NumArgs = Arg.pack_size();
1729 const TemplateArgument &Arg = Args[ArgIdx];
1733 Args = Arg.pack_begin();
1734 NumArgs = Arg.pack_size();
1743 if (Arg.isPackExpansion())
1949 /// \param Arg The template argument we are producing template argument
1960 const TemplateArgument &Arg,
1963 switch (Arg.getKind()) {
1968 return TemplateArgumentLoc(Arg,
1969 S.Context.getTrivialTypeSourceInfo(Arg.getAsType(), Loc));
1973 = S.BuildExpressionFromDeclTemplateArgument(Arg, NTTPType, Loc)
1980 = S.BuildExpressionFromDeclTemplateArgument(Arg, NTTPType, Loc)
1988 = S.BuildExpressionFromIntegralTemplateArgument(Arg, Loc).takeAs<Expr>();
1995 TemplateName Template = Arg.getAsTemplate();
2001 if (Arg.getKind() == TemplateArgument::Template)
2002 return TemplateArgumentLoc(Arg,
2007 Arg, Builder.getWithLocInContext(S.Context),
2012 return TemplateArgumentLoc(Arg, Arg.getAsExpr());
2015 return TemplateArgumentLoc(Arg, TemplateArgumentLocInfo());
2025 DeducedTemplateArgument Arg,
2032 if (Arg.getKind() == TemplateArgument::Pack) {
2036 for (TemplateArgument::pack_iterator PA = Arg.pack_begin(),
2037 PAEnd = Arg.pack_end();
2043 InnerArg.setDeducedFromArrayBound(Arg.wasDeducedFromArrayBound());
2064 TemplateArgumentLoc ArgLoc = getTrivialTemplateArgumentLoc(S, Arg, NTTPType,
2075 ? (Arg.wasDeducedFromArrayBound()
2256 /// given function template according to C++ [temp.arg.explicit].
2309 // C++ [temp.arg.explicit]p3:
2356 const TemplateArgument &Arg = Builder[I];
2357 if (Arg.getKind() == TemplateArgument::Pack) {
2360 Arg.pack_begin(),
2361 Arg.pack_size());
2428 // C++ [temp.arg.explicit]p2:
2440 const TemplateArgument &Arg = ExplicitArgumentList->get(I);
2441 if (Arg.getKind() == TemplateArgument::Pack)
2444 Deduced.push_back(Arg);
2638 // C++0x [temp.arg.explicit]p3:
2645 // explicitly-specified set (C++0x [temp.arg.explicit]p9).
2787 Expr *Arg, QualType ParamType,
2790 OverloadExpr::FindResult R = OverloadExpr::find(Arg);
2889 Expr *Arg,
2901 if (ArgType->isIncompleteArrayType() && !S.RequireCompleteExprType(Arg, 0))
2902 ArgType = Arg->getType();
2911 Arg->Classify(S.Context).isLValue() &&
2912 Arg->getType() != S.Context.OverloadTy &&
2913 Arg->getType() != S.Context.BoundMemberTy)
2926 Arg, ParamType,
2939 Arg->isLValue())
3003 QualType ParamType, Expr *Arg,
3009 if (InitListExpr *ILE = dyn_cast<InitListExpr>(Arg)) {
3026 QualType ArgType = Arg->getType();
3028 ArgType, Arg, TDF)) {
3029 Info.Expression = Arg;
3126 Expr *Arg = Args[ArgIdx++];
3127 QualType ArgType = Arg->getType();
3131 ParamType, ArgType, Arg,
3140 if (InitListExpr *ILE = dyn_cast<InitListExpr>(Arg)) {
3219 Expr *Arg = Args[ArgIdx];
3220 QualType ArgType = Arg->getType();
3224 ParamType, ArgType, Arg,
3233 if (InitListExpr *ILE = dyn_cast<InitListExpr>(Arg)) {
3304 /// argument type to compare against, in C++0x [temp.arg.explicit]p3.
3482 /// nothing to deduce against (C++0x [temp.arg.explicit]p3).