#include "clang/AST/ASTContext.h"
#include "clang/AST/Attr.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/Expr.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/PrettyPrinter.h"
#include "clang/AST/TemplateBase.h"
#include "clang/AST/TemplateName.h"
#include "clang/AST/TextNodeDumper.h"
#include "clang/AST/Type.h"
#include "clang/Basic/AddressSpaces.h"
#include "clang/Basic/ExceptionSpecificationType.h"
#include "clang/Basic/IdentifierTable.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Basic/Specifiers.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/SaveAndRestore.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <string>
#include "clang/AST/TypeNodes.inc"
#include "clang/Basic/TransformTypeTraits.def"
#include "clang/Basic/AttrList.inc"
Go to the source code of this file.
|
static void | AppendTypeQualList (raw_ostream &OS, unsigned TypeQuals, bool HasRestrictKeyword) |
|
static SplitQualType | splitAccordingToPolicy (QualType QT, const PrintingPolicy &Policy) |
|
static QualType | skipTopLevelReferences (QualType T) |
|
static void | printCountAttributedImpl (const CountAttributedType *T, raw_ostream &OS, const PrintingPolicy &Policy) |
|
static const TemplateArgument & | getArgument (const TemplateArgument &A) |
|
static const TemplateArgument & | getArgument (const TemplateArgumentLoc &A) |
|
static void | printArgument (const TemplateArgument &A, const PrintingPolicy &PP, llvm::raw_ostream &OS, bool IncludeType) |
|
static void | printArgument (const TemplateArgumentLoc &A, const PrintingPolicy &PP, llvm::raw_ostream &OS, bool IncludeType) |
|
static bool | isSubstitutedTemplateArgument (ASTContext &Ctx, TemplateArgument Arg, TemplateArgument Pattern, ArrayRef< TemplateArgument > Args, unsigned Depth) |
|
static bool | isSubstitutedType (ASTContext &Ctx, QualType T, QualType Pattern, ArrayRef< TemplateArgument > Args, unsigned Depth) |
|
static bool | templateArgumentExpressionsEqual (ASTContext const &Ctx, TemplateArgument const &Pattern, TemplateArgument const &Arg) |
| Evaluates the expression template argument 'Pattern' and returns true if 'Arg' evaluates to the same result. More...
|
|
template<typename TA > |
static void | printTo (raw_ostream &OS, ArrayRef< TA > Args, const PrintingPolicy &Policy, const TemplateParameterList *TPL, bool IsPack, unsigned ParmIndex) |
|
◆ ABSTRACT_TYPE [1/3]
#define ABSTRACT_TYPE |
( |
|
CLASS, |
|
|
|
PARENT |
|
) |
| |
◆ ABSTRACT_TYPE [2/3]
#define ABSTRACT_TYPE |
( |
|
CLASS, |
|
|
|
PARENT |
|
) |
| |
◆ ABSTRACT_TYPE [3/3]
#define ABSTRACT_TYPE |
( |
|
CLASS, |
|
|
|
PARENT |
|
) |
| |
◆ ATTR
#define ATTR |
( |
|
NAME | ) |
case attr::NAME: |
◆ DECL_OR_TYPE_ATTR
#define DECL_OR_TYPE_ATTR |
( |
|
NAME | ) |
|
◆ TRANSFORM_TYPE_TRAIT_DEF
◆ TYPE [1/3]
#define TYPE |
( |
|
CLASS, |
|
|
|
PARENT |
|
) |
| |
Value: void print##CLASS##Before(
const CLASS##
Type *
T, raw_ostream &
OS); \
void print(llvm::raw_ostream &OS, const Pointer &P, ASTContext &Ctx, QualType Ty)
The base class of the type hierarchy.
@ After
Like System, but searched after the system directories.
const FunctionProtoType * T
Definition at line 140 of file TypePrinter.cpp.
◆ TYPE [2/3]
#define TYPE |
( |
|
CLASS, |
|
|
|
PARENT |
|
) |
| |
Value: case Type::CLASS: \
print##CLASS##Before(cast<CLASS##Type>(
T),
OS); \
break;
Definition at line 140 of file TypePrinter.cpp.
◆ TYPE [3/3]
#define TYPE |
( |
|
CLASS, |
|
|
|
PARENT |
|
) |
| |
Value: case Type::CLASS: \
print##CLASS##
After(cast<CLASS##Type>(
T),
OS); \
break;
Definition at line 140 of file TypePrinter.cpp.
◆ TYPE_ATTR
#define TYPE_ATTR |
( |
|
NAME | ) |
|
◆ AppendTypeQualList()
static void AppendTypeQualList |
( |
raw_ostream & |
OS, |
|
|
unsigned |
TypeQuals, |
|
|
bool |
HasRestrictKeyword |
|
) |
| |
|
static |
◆ getArgument() [1/2]
◆ getArgument() [2/2]
◆ isSubstitutedTemplateArgument()
Definition at line 2245 of file TypePrinter.cpp.
References Depth, clang::TemplateArgument::Expression, clang::TemplateArgument::getAsExpr(), clang::TemplateArgument::getAsTemplate(), clang::TemplateName::getAsTemplateDecl(), clang::TemplateArgument::getAsType(), clang::ASTContext::getCanonicalTemplateArgument(), clang::TemplateArgument::getKind(), clang::Expr::IgnoreParenImpCasts(), isSubstitutedType(), clang::TemplateArgument::structurallyEquals(), clang::TemplateArgument::Template, templateArgumentExpressionsEqual(), and clang::TemplateArgument::Type.
Referenced by clang::isSubstitutedDefaultArgument().
◆ isSubstitutedType()
◆ printArgument() [1/2]
◆ printArgument() [2/2]
◆ printCountAttributedImpl()
◆ printTo()
Definition at line 2312 of file TypePrinter.cpp.
References getArgument(), clang::TemplateArgument::getIsDefaulted(), clang::TemplateArgument::getKind(), clang::TemplateArgument::getPackAsArray(), clang::PrintingPolicy::MSVCFormatting, clang::TemplateArgument::Pack, clang::TemplateArgument::pack_size(), printArgument(), clang::PrintingPolicy::PrintCanonicalTypes, clang::TemplateParameterList::shouldIncludeTypeForArgument(), clang::TemplateParameterList::size(), clang::PrintingPolicy::SplitTemplateClosers, and clang::PrintingPolicy::SuppressDefaultTemplateArgs.
◆ skipTopLevelReferences()
◆ splitAccordingToPolicy()
◆ templateArgumentExpressionsEqual()