Lines Matching refs:TemplateArgument

39 class TemplateArgument {
78 // TemplateArgument instances.
88 const TemplateArgument *Args;
97 TemplateArgument(TemplateName, bool); // DO NOT USE
101 TemplateArgument() : Kind(Null), TypeOrValue(0) { }
104 TemplateArgument(QualType T) : Kind(Type) {
111 TemplateArgument(Decl *D) : Kind(Declaration) {
117 TemplateArgument(ASTContext &Ctx, const llvm::APSInt &Value, QualType Type);
121 TemplateArgument(const TemplateArgument &Other, QualType Type)
135 TemplateArgument(TemplateName Name) : Kind(Template)
152 TemplateArgument(TemplateName Name, llvm::Optional<unsigned> NumExpansions)
167 TemplateArgument(Expr *E) : Kind(Expression) {
174 /// outlives the TemplateArgument itself.
175 TemplateArgument(const TemplateArgument *Args, unsigned NumArgs) : Kind(Pack){
182 static TemplateArgument CreatePackCopy(ASTContext &Context,
183 const TemplateArgument *Args,
279 typedef const TemplateArgument * pack_iterator;
304 bool structurallyEquals(const TemplateArgument &Other) const;
308 TemplateArgument getPackExpansionPattern() const;
317 /// Location information for a TemplateArgument.
372 /// Location wrapper for a TemplateArgument. TemplateArgument is to
375 TemplateArgument Argument;
381 TemplateArgumentLoc(const TemplateArgument &Argument,
386 TemplateArgumentLoc(const TemplateArgument &Argument, TypeSourceInfo *TInfo)
388 assert(Argument.getKind() == TemplateArgument::Type);
391 TemplateArgumentLoc(const TemplateArgument &Argument, Expr *E)
393 assert(Argument.getKind() == TemplateArgument::Expression);
396 TemplateArgumentLoc(const TemplateArgument &Argument,
401 assert(Argument.getKind() == TemplateArgument::Template ||
402 Argument.getKind() == TemplateArgument::TemplateExpansion);
407 if (Argument.getKind() == TemplateArgument::Template ||
408 Argument.getKind() == TemplateArgument::TemplateExpansion)
417 const TemplateArgument &getArgument() const {
426 assert(Argument.getKind() == TemplateArgument::Type);
431 assert(Argument.getKind() == TemplateArgument::Expression);
436 assert(Argument.getKind() == TemplateArgument::Declaration);
441 assert(Argument.getKind() == TemplateArgument::Template ||
442 Argument.getKind() == TemplateArgument::TemplateExpansion);
447 assert(Argument.getKind() == TemplateArgument::Template ||
448 Argument.getKind() == TemplateArgument::TemplateExpansion);
453 assert(Argument.getKind() == TemplateArgument::TemplateExpansion);
592 const TemplateArgument &Arg);
604 inline const TemplateArgument &
610 inline const TemplateArgument &