@@ -56,37 +56,36 @@ void ParsedRawSyntaxNode::dump() const {
56
56
}
57
57
58
58
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 << ' ' ;
72
61
OS << ' (' ;
73
- dumpSyntaxKind (OS, getKind ());
74
-
75
- if (isToken ()) {
76
- dumpTokenKind (OS, getTokenKind ());
77
62
78
- } else {
79
- if (isRecorded ()) {
80
- OS << " [recorded]" ;
81
- } else if (isDeferredLayout ()) {
63
+ switch (DK) {
64
+ case DataKind::Null:
65
+ OS << " <NULL>" ;
66
+ break ;
67
+ case DataKind::Recorded:
68
+ dumpSyntaxKind (OS, getKind ());
69
+ OS << " [recorded] " ;
70
+ if (isToken ()) {
71
+ dumpTokenKind (OS, getTokenKind ());
72
+ } else {
73
+ OS << " <layout>" ;
74
+ }
75
+ break ;
76
+ case DataKind::DeferredLayout:
77
+ dumpSyntaxKind (OS, getKind ());
78
+ OS << " [deferred]" ;
82
79
for (const auto &child : getDeferredChildren ()) {
83
80
OS << " \n " ;
84
- child.dump (OS, Indent + 1 );
81
+ child.dump (OS, Indent + 2 );
85
82
}
86
- } else {
87
- assert (isDeferredToken ());
88
- OS << " [deferred token]" ;
89
- }
83
+ break ;
84
+ case DataKind::DeferredToken:
85
+ dumpSyntaxKind (OS, getKind ());
86
+ OS << " [deferred] " ;
87
+ dumpTokenKind (OS, getTokenKind ());
88
+ break ;
90
89
}
91
90
OS << ' )' ;
92
91
}
0 commit comments