diff options
author | Stephen Kelly <steveire@gmail.com> | 2019-01-14 20:11:02 +0000 |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2019-01-14 20:11:02 +0000 |
commit | fb43bdb2f330d12f2334057dde4773b26bde9ebd (patch) | |
tree | 1d0a9a1d248c107cc8eab1e78e67bda449d0605f | |
parent | fd998b20491572e12bfb2865f6073bb92c11a347 (diff) |
[ASTDump] NFC: Move Type Visit implementation to TextNodeDumper
Reviewers: aaron.ballman
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D56639
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@351114 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/AST/TextNodeDumper.h | 2 | ||||
-rw-r--r-- | lib/AST/ASTDumper.cpp | 35 | ||||
-rw-r--r-- | lib/AST/TextNodeDumper.cpp | 42 |
3 files changed, 47 insertions, 32 deletions
diff --git a/include/clang/AST/TextNodeDumper.h b/include/clang/AST/TextNodeDumper.h index bfa3683b89..b562d30ef3 100644 --- a/include/clang/AST/TextNodeDumper.h +++ b/include/clang/AST/TextNodeDumper.h @@ -159,6 +159,8 @@ public: void Visit(const Stmt *Node); + void Visit(const Type *T); + void dumpPointer(const void *Ptr); void dumpLocation(SourceLocation Loc); void dumpSourceRange(SourceRange R); diff --git a/lib/AST/ASTDumper.cpp b/lib/AST/ASTDumper.cpp index 0e3ca64a59..73db4a9936 100644 --- a/lib/AST/ASTDumper.cpp +++ b/lib/AST/ASTDumper.cpp @@ -430,47 +430,18 @@ void ASTDumper::dumpTypeAsChild(QualType T) { void ASTDumper::dumpTypeAsChild(const Type *T) { dumpChild([=] { - if (!T) { - ColorScope Color(OS, ShowColors, NullColor); - OS << "<<<NULL>>>"; + NodeDumper.Visit(T); + if (!T) return; - } if (const LocInfoType *LIT = llvm::dyn_cast<LocInfoType>(T)) { - { - ColorScope Color(OS, ShowColors, TypeColor); - OS << "LocInfo Type"; - } - NodeDumper.dumpPointer(T); dumpTypeAsChild(LIT->getTypeSourceInfo()->getType()); return; } - - { - ColorScope Color(OS, ShowColors, TypeColor); - OS << T->getTypeClassName() << "Type"; - } - NodeDumper.dumpPointer(T); - OS << " "; - NodeDumper.dumpBareType(QualType(T, 0), false); + TypeVisitor<ASTDumper>::Visit(T); QualType SingleStepDesugar = T->getLocallyUnqualifiedSingleStepDesugaredType(); if (SingleStepDesugar != QualType(T, 0)) - OS << " sugar"; - if (T->isDependentType()) - OS << " dependent"; - else if (T->isInstantiationDependentType()) - OS << " instantiation_dependent"; - if (T->isVariablyModifiedType()) - OS << " variably_modified"; - if (T->containsUnexpandedParameterPack()) - OS << " contains_unexpanded_pack"; - if (T->isFromAST()) - OS << " imported"; - - TypeVisitor<ASTDumper>::Visit(T); - - if (SingleStepDesugar != QualType(T, 0)) dumpTypeAsChild(SingleStepDesugar); }); } diff --git a/lib/AST/TextNodeDumper.cpp b/lib/AST/TextNodeDumper.cpp index d1ee876cc4..1a618ce71b 100644 --- a/lib/AST/TextNodeDumper.cpp +++ b/lib/AST/TextNodeDumper.cpp @@ -12,6 +12,7 @@ //===----------------------------------------------------------------------===// #include "clang/AST/TextNodeDumper.h" +#include "clang/AST/LocInfoType.h" using namespace clang; @@ -130,6 +131,47 @@ void TextNodeDumper::Visit(const Stmt *Node) { ConstStmtVisitor<TextNodeDumper>::Visit(Node); } +void TextNodeDumper::Visit(const Type *T) { + if (!T) { + ColorScope Color(OS, ShowColors, NullColor); + OS << "<<<NULL>>>"; + return; + } + if (isa<LocInfoType>(T)) { + { + ColorScope Color(OS, ShowColors, TypeColor); + OS << "LocInfo Type"; + } + dumpPointer(T); + return; + } + + { + ColorScope Color(OS, ShowColors, TypeColor); + OS << T->getTypeClassName() << "Type"; + } + dumpPointer(T); + OS << " "; + dumpBareType(QualType(T, 0), false); + + QualType SingleStepDesugar = + T->getLocallyUnqualifiedSingleStepDesugaredType(); + if (SingleStepDesugar != QualType(T, 0)) + OS << " sugar"; + + if (T->isDependentType()) + OS << " dependent"; + else if (T->isInstantiationDependentType()) + OS << " instantiation_dependent"; + + if (T->isVariablyModifiedType()) + OS << " variably_modified"; + if (T->containsUnexpandedParameterPack()) + OS << " contains_unexpanded_pack"; + if (T->isFromAST()) + OS << " imported"; +} + void TextNodeDumper::dumpPointer(const void *Ptr) { ColorScope Color(OS, ShowColors, AddressColor); OS << ' ' << Ptr; |