Skip to content

Commit d0d89fa

Browse files
authored
Merge pull request #26943 from rintaro/syntaxparse-parsedrawnode-dump
[SyntaxParse] Improve ParsedRawSyntaxNode::dump()
2 parents 50147c4 + b8ced14 commit d0d89fa

File tree

2 files changed

+23
-26
lines changed

2 files changed

+23
-26
lines changed

lib/Parse/ParsedRawSyntaxNode.cpp

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -56,37 +56,34 @@ void ParsedRawSyntaxNode::dump() const {
5656
}
5757

5858
void ParsedRawSyntaxNode::dump(llvm::raw_ostream &OS, unsigned Indent) const {
59-
auto indent = [&](unsigned Amount) {
60-
for (decltype(Amount) i = 0; i < Amount; ++i) {
61-
OS << ' ';
62-
}
63-
};
64-
65-
indent(Indent);
66-
67-
if (isNull()) {
68-
OS << "(<NULL>)";
69-
return;
70-
}
71-
59+
for (decltype(Indent) i = 0; i < Indent; ++i)
60+
OS << ' ';
7261
OS << '(';
7362
dumpSyntaxKind(OS, getKind());
7463

75-
if (isToken()) {
76-
dumpTokenKind(OS, getTokenKind());
77-
78-
} else {
79-
if (isRecorded()) {
80-
OS << " [recorded]";
81-
} else if (isDeferredLayout()) {
64+
switch (DK) {
65+
case DataKind::Null:
66+
OS << "<NULL>";
67+
break;
68+
case DataKind::Recorded:
69+
OS << " [recorded] ";
70+
if (isToken()) {
71+
dumpTokenKind(OS, getTokenKind());
72+
} else {
73+
OS << "<layout>";
74+
}
75+
break;
76+
case DataKind::DeferredLayout:
77+
OS << " [deferred]";
8278
for (const auto &child : getDeferredChildren()) {
8379
OS << "\n";
84-
child.dump(OS, Indent + 1);
80+
child.dump(OS, Indent + 2);
8581
}
86-
} else {
87-
assert(isDeferredToken());
88-
OS << " [deferred token]";
89-
}
82+
break;
83+
case DataKind::DeferredToken:
84+
OS << " [deferred] ";
85+
dumpTokenKind(OS, getTokenKind());
86+
break;
9087
}
9188
OS << ')';
9289
}

lib/Parse/SyntaxParsingContext.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ void SyntaxParsingContext::synthesize(tok Kind, SourceLoc Loc) {
296296
void SyntaxParsingContext::dumpStorage() const {
297297
llvm::errs() << "======================\n";
298298
for (auto Node : getStorage()) {
299-
Node.dump();
299+
Node.dump(llvm::errs());
300300
llvm::errs() << "\n--------------\n";
301301
}
302302
}

0 commit comments

Comments
 (0)