Skip to content

Commit 9880686

Browse files
add module/file debug dumpers
1 parent c9af80c commit 9880686

File tree

3 files changed

+42
-0
lines changed

3 files changed

+42
-0
lines changed

include/swift/AST/FileUnit.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "swift/AST/Module.h"
1717
#include "swift/AST/RawComment.h"
1818
#include "swift/Basic/BasicSourceInfo.h"
19+
#include "swift/Basic/Debug.h"
1920

2021
#include "llvm/ADT/PointerIntPair.h"
2122

@@ -308,6 +309,9 @@ class FileUnit : public DeclContext, public ASTAllocated<FileUnit> {
308309
return getParentModule()->getRealName().str();
309310
}
310311

312+
SWIFT_DEBUG_DUMPER(dumpDisplayDecls());
313+
SWIFT_DEBUG_DUMPER(dumpTopLevelDecls());
314+
311315
/// Traverse the decls within this file.
312316
///
313317
/// \returns true if traversal was aborted, false if it completed

include/swift/AST/Module.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include "swift/AST/Type.h"
2727
#include "swift/Basic/BasicSourceInfo.h"
2828
#include "swift/Basic/Compiler.h"
29+
#include "swift/Basic/Debug.h"
2930
#include "swift/Basic/OptionSet.h"
3031
#include "swift/Basic/STLExtras.h"
3132
#include "swift/Basic/SourceLoc.h"
@@ -856,6 +857,9 @@ class ModuleDecl
856857
/// transferred from module files to the dSYMs, remove this.
857858
bool isExternallyConsumed() const;
858859

860+
SWIFT_DEBUG_DUMPER(dumpDisplayDecls());
861+
SWIFT_DEBUG_DUMPER(dumpTopLevelDecls());
862+
859863
SourceRange getSourceRange() const { return SourceRange(); }
860864

861865
static bool classof(const DeclContext *DC) {

lib/AST/Module.cpp

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -788,6 +788,24 @@ void ModuleDecl::getTopLevelDecls(SmallVectorImpl<Decl*> &Results) const {
788788
FORWARD(getTopLevelDecls, (Results));
789789
}
790790

791+
void ModuleDecl::dumpDisplayDecls() const {
792+
SmallVector<Decl *, 32> Decls;
793+
getDisplayDecls(Decls);
794+
for (auto *D : Decls) {
795+
D->dump(llvm::errs());
796+
llvm::errs() << "\n";
797+
}
798+
}
799+
800+
void ModuleDecl::dumpTopLevelDecls() const {
801+
SmallVector<Decl *, 32> Decls;
802+
getTopLevelDecls(Decls);
803+
for (auto *D : Decls) {
804+
D->dump(llvm::errs());
805+
llvm::errs() << "\n";
806+
}
807+
}
808+
791809
void ModuleDecl::getExportedPrespecializations(
792810
SmallVectorImpl<Decl *> &Results) const {
793811
FORWARD(getExportedPrespecializations, (Results));
@@ -3062,6 +3080,22 @@ void FileUnit::getTopLevelDeclsWhereAttributesMatch(
30623080
Results.erase(newEnd, Results.end());
30633081
}
30643082

3083+
void FileUnit::dumpDisplayDecls() const {
3084+
SmallVector<Decl *, 32> Decls;
3085+
getDisplayDecls(Decls);
3086+
for (auto *D : Decls) {
3087+
D->dump(llvm::errs());
3088+
}
3089+
}
3090+
3091+
void FileUnit::dumpTopLevelDecls() const {
3092+
SmallVector<Decl *, 32> Decls;
3093+
getTopLevelDecls(Decls);
3094+
for (auto *D : Decls) {
3095+
D->dump(llvm::errs());
3096+
}
3097+
}
3098+
30653099
void swift::simple_display(llvm::raw_ostream &out, const FileUnit *file) {
30663100
if (!file) {
30673101
out << "(null)";

0 commit comments

Comments
 (0)