@@ -56,11 +56,10 @@ class ParsedRawSyntaxNode {
56
56
CharSourceRange Range;
57
57
};
58
58
struct DeferredTokenNode {
59
- const ParsedTriviaPiece *TriviaPieces;
60
59
SourceLoc TokLoc;
61
60
unsigned TokLength;
62
- uint16_t NumLeadingTrivia ;
63
- uint16_t NumTrailingTrivia ;
61
+ StringRef LeadingTrivia ;
62
+ StringRef TrailingTrivia ;
64
63
};
65
64
66
65
union {
@@ -83,21 +82,11 @@ class ParsedRawSyntaxNode {
83
82
}
84
83
85
84
ParsedRawSyntaxNode (tok tokKind, SourceLoc tokLoc, unsigned tokLength,
86
- const ParsedTriviaPiece *triviaPieces,
87
- unsigned numLeadingTrivia,
88
- unsigned numTrailingTrivia)
89
- : DeferredToken{triviaPieces,
90
- tokLoc, tokLength,
91
- uint16_t (numLeadingTrivia),
92
- uint16_t (numTrailingTrivia)},
93
- SynKind (uint16_t (syntax::SyntaxKind::Token)),
94
- TokKind (uint16_t (tokKind)),
95
- DK (DataKind::DeferredToken) {
85
+ StringRef leadingTrivia, StringRef trailingTrivia)
86
+ : DeferredToken{tokLoc, tokLength, leadingTrivia, trailingTrivia},
87
+ SynKind (uint16_t (syntax::SyntaxKind::Token)),
88
+ TokKind (uint16_t (tokKind)), DK(DataKind::DeferredToken) {
96
89
assert (getTokenKind () == tokKind && " Token kind is too large value!" );
97
- assert (DeferredToken.NumLeadingTrivia == numLeadingTrivia &&
98
- " numLeadingTrivia is too large value!" );
99
- assert (DeferredToken.NumTrailingTrivia == numTrailingTrivia &&
100
- " numLeadingTrivia is too large value!" );
101
90
}
102
91
ParsedRawSyntaxNode (const ParsedRawSyntaxNode &other) = delete ;
103
92
ParsedRawSyntaxNode &operator =(const ParsedRawSyntaxNode &other) = delete ;
@@ -280,11 +269,8 @@ class ParsedRawSyntaxNode {
280
269
281
270
CharSourceRange getDeferredTokenRangeWithTrivia () const {
282
271
assert (DK == DataKind::DeferredToken);
283
- auto leadTriviaPieces = getDeferredLeadingTriviaPieces ();
284
- auto trailTriviaPieces = getDeferredTrailingTriviaPieces ();
285
-
286
- auto leadTriviaLen = ParsedTriviaPiece::getTotalLength (leadTriviaPieces);
287
- auto trailTriviaLen = ParsedTriviaPiece::getTotalLength (trailTriviaPieces);
272
+ auto leadTriviaLen = DeferredToken.LeadingTrivia .size ();
273
+ auto trailTriviaLen = DeferredToken.TrailingTrivia .size ();
288
274
289
275
SourceLoc begin = DeferredToken.TokLoc .getAdvancedLoc (-leadTriviaLen);
290
276
unsigned len = leadTriviaLen + DeferredToken.TokLength + trailTriviaLen;
@@ -295,16 +281,13 @@ class ParsedRawSyntaxNode {
295
281
assert (DK == DataKind::DeferredToken);
296
282
return CharSourceRange{DeferredToken.TokLoc , DeferredToken.TokLength };
297
283
}
298
- ArrayRef<ParsedTriviaPiece> getDeferredLeadingTriviaPieces () const {
284
+ StringRef getDeferredLeadingTrivia () const {
299
285
assert (DK == DataKind::DeferredToken);
300
- return ArrayRef<ParsedTriviaPiece>(DeferredToken.TriviaPieces ,
301
- DeferredToken.NumLeadingTrivia );
286
+ return DeferredToken.LeadingTrivia ;
302
287
}
303
- ArrayRef<ParsedTriviaPiece> getDeferredTrailingTriviaPieces () const {
288
+ StringRef getDeferredTrailingTrivia () const {
304
289
assert (DK == DataKind::DeferredToken);
305
- return ArrayRef<ParsedTriviaPiece>(
306
- DeferredToken.TriviaPieces + DeferredToken.NumLeadingTrivia ,
307
- DeferredToken.NumTrailingTrivia );
290
+ return DeferredToken.TrailingTrivia ;
308
291
}
309
292
310
293
// ==========================================================================//
@@ -315,14 +298,15 @@ class ParsedRawSyntaxNode {
315
298
SyntaxParsingContext &ctx);
316
299
317
300
// / Form a deferred token node.
318
- static ParsedRawSyntaxNode makeDeferred (Token tok,
319
- const ParsedTrivia &leadingTrivia,
320
- const ParsedTrivia &trailingTrivia,
301
+ static ParsedRawSyntaxNode makeDeferred (Token tok, StringRef leadingTrivia,
302
+ StringRef trailingTrivia,
321
303
SyntaxParsingContext &ctx);
322
304
323
305
// / Form a deferred missing token node.
324
306
static ParsedRawSyntaxNode makeDeferredMissing (tok tokKind, SourceLoc loc) {
325
- auto raw = ParsedRawSyntaxNode (tokKind, loc, 0 , nullptr , 0 , 0 );
307
+ auto raw = ParsedRawSyntaxNode (tokKind, loc, /* tokLength=*/ 0 ,
308
+ /* leadingTrivia=*/ StringRef (),
309
+ /* trailingTrivia=*/ StringRef ());
326
310
raw.IsMissing = true ;
327
311
return raw;
328
312
}
0 commit comments