@@ -16,7 +16,7 @@ fileprivate typealias DataElementPtr = UnsafePointer<RawSyntaxDataElement>
16
16
fileprivate typealias MutableDataElementPtr = UnsafeMutablePointer < RawSyntaxDataElement >
17
17
18
18
/// Convenience function to write a value into a `RawSyntaxDataElement`.
19
- fileprivate func writeElement < T> ( _ ptr: MutableDataElementPtr , with value: T ) {
19
+ fileprivate func initializeElement < T> ( _ ptr: MutableDataElementPtr , with value: T ) {
20
20
castElementAs ( ptr) . initialize ( to: value)
21
21
}
22
22
@@ -38,10 +38,10 @@ fileprivate func castElementAs<T>(_ ptr: MutableDataElementPtr) -> UnsafeMutable
38
38
/// Calculates the number of `RawSyntaxDataElement`s needed to fit the given
39
39
/// number of bytes.
40
40
fileprivate func numberOfElements( forBytes size: Int ) -> Int {
41
- let ( words, remainder) = Int ( size) . quotientAndRemainder (
41
+ let ( words, remainder) = size. quotientAndRemainder (
42
42
dividingBy: MemoryLayout< RawSyntaxDataElement> . stride)
43
- let elemsForString = remainder == 0 ? words : words+ 1
44
- return elemsForString
43
+ let numOfElems = remainder == 0 ? words : words+ 1
44
+ return numOfElems
45
45
}
46
46
47
47
/// Calculates the number of `RawSyntaxDataElement`s needed to fit the given
@@ -50,6 +50,11 @@ fileprivate func numberOfElements<T>(for value: T) -> Int {
50
50
return numberOfElements ( forBytes: MemoryLayout< T> . size)
51
51
}
52
52
53
+ /// Convenience property to refer to an empty string buffer.
54
+ fileprivate var emptyStringBuffer : UnsafeBufferPointer < UInt8 > {
55
+ return . init( start: nil , count: 0 )
56
+ }
57
+
53
58
/// Low-level data specific to token nodes.
54
59
///
55
60
/// There's additional data that are tail-allocated. The data are as follows:
@@ -135,11 +140,11 @@ fileprivate struct TokenData {
135
140
let trailingTriviaCount = Int ( data. trailing_trivia_count)
136
141
var curPtr = extraPtr
137
142
for i in 0 ..< leadingTriviaCount {
138
- writeElement ( curPtr, with: data. leading_trivia![ i] )
143
+ initializeElement ( curPtr, with: data. leading_trivia![ i] )
139
144
curPtr = curPtr. successor ( )
140
145
}
141
146
for i in 0 ..< trailingTriviaCount {
142
- writeElement ( curPtr, with: data. trailing_trivia![ i] )
147
+ initializeElement ( curPtr, with: data. trailing_trivia![ i] )
143
148
curPtr = curPtr. successor ( )
144
149
}
145
150
@@ -174,7 +179,7 @@ fileprivate struct TokenData {
174
179
_ data: ConstructedTokenData ,
175
180
extraPtr: MutableDataElementPtr
176
181
) {
177
- writeElement ( extraPtr, with: data)
182
+ initializeElement ( extraPtr, with: data)
178
183
}
179
184
180
185
/// De-initializes memory from tail-allocated data.
@@ -189,7 +194,7 @@ fileprivate struct TokenData {
189
194
190
195
private func parsedData(
191
196
length: UInt32 , extraPtr: DataElementPtr
192
- ) -> UnsafeTokenData {
197
+ ) -> UnsafeParsedTokenData {
193
198
assert ( isParsed)
194
199
let leadingTriviaCount = Int ( self . leadingTriviaCount)
195
200
let trailingTriviaCount = Int ( self . trailingTriviaCount)
@@ -293,24 +298,19 @@ fileprivate struct TokenData {
293
298
294
299
/// Convenience wrapper over the tail-allocated data for a token node.
295
300
/// This is used only for tokens created during parsing.
296
- fileprivate struct UnsafeTokenData {
301
+ fileprivate struct UnsafeParsedTokenData {
297
302
let length : UInt32
298
303
let tokenKind : CTokenKind
299
304
let leadingTriviaBuffer : UnsafeBufferPointer < CTriviaPiece >
300
305
let trailingTriviaBuffer : UnsafeBufferPointer < CTriviaPiece >
301
306
let fullTextBuffer : UnsafeBufferPointer < UInt8 >
302
307
let hasCustomText : Bool
303
308
304
- static var emptyBuffer : UnsafeBufferPointer < UInt8 > {
305
- return . init( start: nil , count: 0 )
306
- }
307
-
308
309
func formTokenKind( ) -> TokenKind {
309
310
if fullTextBuffer. isEmpty {
310
311
// Fast path, there's no text in the buffer so no need to determine the
311
312
// token length.
312
- return TokenKind . fromRawValue ( kind: tokenKind,
313
- textBuffer: UnsafeTokenData . emptyBuffer)
313
+ return TokenKind . fromRawValue ( kind: tokenKind, textBuffer: emptyStringBuffer)
314
314
}
315
315
let leadingTriviaLength = self . getLeadingTriviaLength ( )
316
316
let trailingTriviaLength = self . getTrailingTriviaLength ( )
@@ -326,17 +326,15 @@ fileprivate struct UnsafeTokenData {
326
326
// Fast path, there's no text in the buffer so no need to determine the
327
327
// trivia piece length.
328
328
for cpiece in leadingTriviaBuffer {
329
- let newPiece = TriviaPiece . fromRawValue ( kind: cpiece. kind,
330
- length: Int ( cpiece. length) , textBuffer: UnsafeTokenData . emptyBuffer)
329
+ let newPiece = TriviaPiece . fromRawValue ( cpiece, textBuffer: emptyStringBuffer)
331
330
newPieces. append ( newPiece)
332
331
}
333
332
} else {
334
333
var textOffset = 0
335
334
for cpiece in leadingTriviaBuffer {
336
335
let len = Int ( cpiece. length)
337
336
let textBuffer = getTextSlice ( start: textOffset, length: len)
338
- let newPiece = TriviaPiece . fromRawValue ( kind: cpiece. kind, length: len,
339
- textBuffer: textBuffer)
337
+ let newPiece = TriviaPiece . fromRawValue ( cpiece, textBuffer: textBuffer)
340
338
newPieces. append ( newPiece)
341
339
textOffset += len
342
340
}
@@ -351,8 +349,7 @@ fileprivate struct UnsafeTokenData {
351
349
// Fast path, there's no text in the buffer so no need to determine the
352
350
// trivia piece length.
353
351
for cpiece in trailingTriviaBuffer {
354
- let newPiece = TriviaPiece . fromRawValue ( kind: cpiece. kind,
355
- length: Int ( cpiece. length) , textBuffer: UnsafeTokenData . emptyBuffer)
352
+ let newPiece = TriviaPiece . fromRawValue ( cpiece, textBuffer: emptyStringBuffer)
356
353
newPieces. append ( newPiece)
357
354
}
358
355
} else {
@@ -363,8 +360,7 @@ fileprivate struct UnsafeTokenData {
363
360
for cpiece in trailingTriviaBuffer {
364
361
let len = Int ( cpiece. length)
365
362
let textBuffer = getTextSlice ( start: textOffset, length: len)
366
- let newPiece = TriviaPiece . fromRawValue ( kind: cpiece. kind, length: len,
367
- textBuffer: textBuffer)
363
+ let newPiece = TriviaPiece . fromRawValue ( cpiece, textBuffer: textBuffer)
368
364
newPieces. append ( newPiece)
369
365
textOffset += len
370
366
}
@@ -381,16 +377,14 @@ fileprivate struct UnsafeTokenData {
381
377
target. write ( String . fromBuffer ( fullTextBuffer) )
382
378
} else {
383
379
func printTrivia( _ buf: UnsafeBufferPointer < CTriviaPiece > ) {
384
- let emptyBuffer : UnsafeBufferPointer < UInt8 > = . init( start: nil , count: 0 )
385
380
for cpiece in buf {
386
- let newPiece = TriviaPiece . fromRawValue ( kind: cpiece. kind,
387
- length: Int ( cpiece. length) , textBuffer: emptyBuffer)
381
+ let newPiece = TriviaPiece . fromRawValue ( cpiece, textBuffer: emptyStringBuffer)
388
382
newPiece. write ( to: & target)
389
383
}
390
384
}
391
385
printTrivia ( leadingTriviaBuffer)
392
386
let tokKind = TokenKind . fromRawValue ( kind: tokenKind,
393
- textBuffer: UnsafeTokenData . emptyBuffer )
387
+ textBuffer: emptyStringBuffer )
394
388
target. write ( tokKind. text)
395
389
printTrivia ( trailingTriviaBuffer)
396
390
}
@@ -465,7 +459,7 @@ fileprivate struct LayoutData {
465
459
) {
466
460
var curPtr = extraPtr
467
461
for i in 0 ..< Int ( data. nodes_count) {
468
- writeElement ( curPtr, with: data. nodes![ i] )
462
+ initializeElement ( curPtr, with: data. nodes![ i] )
469
463
curPtr = curPtr. successor ( )
470
464
}
471
465
}
@@ -492,7 +486,7 @@ fileprivate struct LayoutData {
492
486
_ data: ConstructedLayoutData ,
493
487
extraPtr: MutableDataElementPtr
494
488
) {
495
- writeElement ( extraPtr, with: data)
489
+ initializeElement ( extraPtr, with: data)
496
490
}
497
491
498
492
/// De-initializes memory from tail-allocated data.
0 commit comments