File tree Expand file tree Collapse file tree 1 file changed +14
-2
lines changed Expand file tree Collapse file tree 1 file changed +14
-2
lines changed Original file line number Diff line number Diff line change @@ -119,8 +119,20 @@ class ParsedRawSyntaxNode {
119
119
assert (getTokenKind () == tokKind && " Token kind with too large value!" );
120
120
}
121
121
122
+ #ifndef NDEBUG
123
+ bool ensureDataIsNotRecorded () {
124
+ if (DK != DataKind::Recorded)
125
+ return true ;
126
+ llvm::dbgs () << " Leaking node: " ;
127
+ dump (llvm::dbgs ());
128
+ llvm::dbgs () << " \n " ;
129
+ return false ;
130
+ }
131
+ #endif
132
+
122
133
ParsedRawSyntaxNode &operator =(ParsedRawSyntaxNode &&other) {
123
- assert (DK != DataKind::Recorded);
134
+ assert (ensureDataIsNotRecorded () &&
135
+ " recorded data is being destroyed by assignment" );
124
136
switch (other.DK ) {
125
137
case DataKind::Null:
126
138
break ;
@@ -145,7 +157,7 @@ class ParsedRawSyntaxNode {
145
157
*this = std::move (other);
146
158
}
147
159
~ParsedRawSyntaxNode () {
148
- assert (DK != DataKind::Recorded );
160
+ assert (ensureDataIsNotRecorded () && " recorded data is being destructed " );
149
161
}
150
162
151
163
syntax::SyntaxKind getKind () const { return syntax::SyntaxKind (SynKind); }
You can’t perform that action at this time.
0 commit comments