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 @@ -117,8 +117,20 @@ class ParsedRawSyntaxNode {
117
117
assert (getTokenKind () == tokKind && " Token kind with too large value!" );
118
118
}
119
119
120
+ #ifndef NDEBUG
121
+ bool ensureDataIsNotRecorded () {
122
+ if (DK != DataKind::Recorded)
123
+ return true ;
124
+ llvm::dbgs () << " Leaking node: " ;
125
+ dump (llvm::dbgs ());
126
+ llvm::dbgs () << " \n " ;
127
+ return false ;
128
+ }
129
+ #endif
130
+
120
131
ParsedRawSyntaxNode &operator =(ParsedRawSyntaxNode &&other) {
121
- assert (DK != DataKind::Recorded);
132
+ assert (ensureDataIsNotRecorded () &&
133
+ " recorded data is being destroyed by assignment" );
122
134
switch (other.DK ) {
123
135
case DataKind::Null:
124
136
break ;
@@ -143,7 +155,7 @@ class ParsedRawSyntaxNode {
143
155
*this = std::move (other);
144
156
}
145
157
~ParsedRawSyntaxNode () {
146
- assert (DK != DataKind::Recorded );
158
+ assert (ensureDataIsNotRecorded () && " recorded data is being destructed " );
147
159
}
148
160
149
161
syntax::SyntaxKind getKind () const { return syntax::SyntaxKind (SynKind); }
You can’t perform that action at this time.
0 commit comments