@@ -27,6 +27,8 @@ public struct MutableRawSpan: ~Copyable & ~Escapable {
27
27
unsafe _pointer. _unsafelyUnwrappedUnchecked
28
28
}
29
29
30
+ @unsafe
31
+ @_unsafeNonescapableResult
30
32
@_alwaysEmitIntoClient
31
33
@lifetime ( borrow pointer)
32
34
internal init (
@@ -44,53 +46,58 @@ extension MutableRawSpan: @unchecked Sendable {}
44
46
@available ( SwiftStdlib 6 . 2 , * )
45
47
extension MutableRawSpan {
46
48
49
+ @unsafe
47
50
@_alwaysEmitIntoClient
48
51
@lifetime ( borrow bytes)
49
52
public init (
50
53
_unsafeBytes bytes: UnsafeMutableRawBufferPointer
51
54
) {
52
- let baseAddress = bytes. baseAddress
53
- let span = MutableRawSpan ( _unchecked: baseAddress, byteCount: bytes . count)
55
+ let ( baseAddress, count ) = ( bytes. baseAddress, bytes . count )
56
+ let span = unsafe MutableRawSpan( _unchecked: baseAddress, byteCount: count)
54
57
self = unsafe _override Lifetime ( span, borrowing: bytes)
55
58
}
56
59
60
+ @unsafe
57
61
@_alwaysEmitIntoClient
58
62
@lifetime ( borrow bytes)
59
63
public init (
60
64
_unsafeBytes bytes: borrowing Slice < UnsafeMutableRawBufferPointer >
61
65
) {
62
66
let rebased = unsafe UnsafeMutableRawBufferPointer( rebasing: bytes)
63
- let span = MutableRawSpan ( _unsafeBytes: rebased)
67
+ let span = unsafe MutableRawSpan( _unsafeBytes: rebased)
64
68
self = unsafe _override Lifetime ( span, borrowing: bytes)
65
69
}
66
70
71
+ @unsafe
67
72
@_alwaysEmitIntoClient
68
73
@lifetime ( borrow pointer)
69
74
public init (
70
75
_unsafeStart pointer: UnsafeMutableRawPointer ,
71
76
byteCount: Int
72
77
) {
73
78
_precondition ( byteCount >= 0 , " Count must not be negative " )
74
- self . init ( _unchecked: pointer, byteCount: byteCount)
79
+ unsafe self. init ( _unchecked: pointer, byteCount: byteCount)
75
80
}
76
81
82
+ @unsafe
77
83
@_alwaysEmitIntoClient
78
84
@lifetime ( borrow elements)
79
85
public init < Element: BitwiseCopyable > (
80
86
_unsafeElements elements: UnsafeMutableBufferPointer < Element >
81
87
) {
82
88
let bytes = UnsafeMutableRawBufferPointer ( elements)
83
- let span = MutableRawSpan ( _unsafeBytes: bytes)
89
+ let span = unsafe MutableRawSpan( _unsafeBytes: bytes)
84
90
self = unsafe _override Lifetime ( span, borrowing: elements)
85
91
}
86
92
93
+ @unsafe
87
94
@_alwaysEmitIntoClient
88
95
@lifetime ( borrow elements)
89
96
public init < Element: BitwiseCopyable > (
90
97
_unsafeElements elements: borrowing Slice < UnsafeMutableBufferPointer < Element > >
91
98
) {
92
99
let rebased = unsafe UnsafeMutableBufferPointer( rebasing: elements)
93
- let span = MutableRawSpan ( _unsafeElements: rebased)
100
+ let span = unsafe MutableRawSpan( _unsafeElements: rebased)
94
101
self = unsafe _override Lifetime ( span, borrowing: elements)
95
102
}
96
103
@@ -103,7 +110,7 @@ extension MutableRawSpan {
103
110
start: elements. _pointer,
104
111
count: elements. count &* MemoryLayout< Element> . stride
105
112
)
106
- let span = MutableRawSpan ( _unsafeBytes: bytes)
113
+ let span = unsafe MutableRawSpan( _unsafeBytes: bytes)
107
114
self = unsafe _override Lifetime ( span, copying: elements)
108
115
}
109
116
}
@@ -150,11 +157,11 @@ extension MutableRawSpan {
150
157
extension RawSpan {
151
158
152
159
@_alwaysEmitIntoClient
153
- @lifetime ( borrow mutableSpan )
154
- public init ( _unsafeMutableRawSpan mutableSpan : borrowing MutableRawSpan ) {
155
- let start = mutableSpan . _start ( )
156
- let span = RawSpan ( _unsafeStart: start, byteCount: mutableSpan . byteCount )
157
- self = unsafe _override Lifetime ( span, borrowing: mutableSpan )
160
+ @lifetime ( borrow mutableRawSpan )
161
+ public init ( _mutableRawSpan mutableRawSpan : borrowing MutableRawSpan ) {
162
+ let ( start, count ) = ( mutableRawSpan . _start ( ) , mutableRawSpan . _count )
163
+ let span = unsafe RawSpan( _unsafeStart: start, byteCount: count )
164
+ self = unsafe _override Lifetime ( span, borrowing: mutableRawSpan )
158
165
}
159
166
}
160
167
@@ -165,7 +172,7 @@ extension MutableRawSpan {
165
172
@_alwaysEmitIntoClient
166
173
@lifetime ( borrow self)
167
174
borrowing get {
168
- return RawSpan ( _unsafeMutableRawSpan : self )
175
+ return RawSpan ( _mutableRawSpan : self )
169
176
}
170
177
}
171
178
@@ -176,7 +183,7 @@ extension MutableRawSpan {
176
183
as type: T . Type
177
184
) -> Span < T > {
178
185
let bytes = unsafe UnsafeRawBufferPointer( start: _pointer, count: _count)
179
- let span = Span < T > ( _unsafeBytes: bytes)
186
+ let span = unsafe Span< T > ( _unsafeBytes: bytes)
180
187
return unsafe _override Lifetime ( span, borrowing: self )
181
188
}
182
189
@@ -189,7 +196,7 @@ extension MutableRawSpan {
189
196
let bytes = unsafe UnsafeMutableRawBufferPointer(
190
197
start: _pointer, count: _count
191
198
)
192
- let span = MutableSpan < T > ( _unsafeBytes: bytes)
199
+ let span = unsafe MutableSpan< T > ( _unsafeBytes: bytes)
193
200
return unsafe _override Lifetime ( span, mutating: & self )
194
201
}
195
202
}
@@ -361,7 +368,7 @@ extension MutableRawSpan {
361
368
fromContentsOf source: C
362
369
) -> Int where C. Element: BitwiseCopyable {
363
370
let newOffset = source. withContiguousStorageIfAvailable {
364
- self . update ( fromContentsOf: RawSpan ( _unsafeElements: $0) )
371
+ self . update ( fromContentsOf: unsafe RawSpan( _unsafeElements: $0) )
365
372
}
366
373
if let newOffset { return newOffset }
367
374
@@ -461,7 +468,7 @@ extension MutableRawSpan {
461
468
@lifetime ( borrow self)
462
469
mutating public func _extracting( unchecked bounds: Range < Int > ) -> Self {
463
470
let newStart = unsafe _pointer? . advanced ( by: bounds. lowerBound)
464
- let newSpan = Self ( _unchecked: newStart, byteCount: bounds. count)
471
+ let newSpan = unsafe Self( _unchecked: newStart, byteCount: bounds. count)
465
472
return unsafe _override Lifetime ( newSpan, mutating: & self )
466
473
}
467
474
@@ -506,7 +513,7 @@ extension MutableRawSpan {
506
513
@lifetime ( borrow self)
507
514
mutating public func _extracting( unchecked bounds: ClosedRange < Int > ) -> Self {
508
515
let range = unsafe Range(
509
- uncheckedBounds : ( bounds. lowerBound, bounds. upperBound+ 1 )
516
+ _uncheckedBounds : ( bounds. lowerBound, bounds. upperBound+ 1 )
510
517
)
511
518
return unsafe _extracting( unchecked: range)
512
519
}
@@ -523,7 +530,7 @@ extension MutableRawSpan {
523
530
@_alwaysEmitIntoClient
524
531
@lifetime ( borrow self)
525
532
mutating public func _extracting( _: UnboundedRange ) -> Self {
526
- let newSpan = Self ( _unchecked: _start ( ) , byteCount: _count)
533
+ let newSpan = unsafe Self( _unchecked: _start ( ) , byteCount: _count)
527
534
return unsafe _override Lifetime ( newSpan, mutating: & self )
528
535
}
529
536
}
@@ -552,7 +559,7 @@ extension MutableRawSpan {
552
559
mutating public func _extracting( first maxLength: Int ) -> Self {
553
560
_precondition ( maxLength >= 0 , " Can't have a prefix of negative length " )
554
561
let newCount = min ( maxLength, byteCount)
555
- let newSpan = Self ( _unchecked: _pointer, byteCount: newCount)
562
+ let newSpan = unsafe Self( _unchecked: _pointer, byteCount: newCount)
556
563
return unsafe _override Lifetime ( newSpan, mutating: & self )
557
564
}
558
565
@@ -574,8 +581,9 @@ extension MutableRawSpan {
574
581
@lifetime ( borrow self)
575
582
mutating public func _extracting( droppingLast k: Int ) -> Self {
576
583
_precondition ( k >= 0 , " Can't drop a negative number of elements " )
577
- let dropped = min ( k, byteCount)
578
- let newSpan = Self ( _unchecked: _pointer, byteCount: byteCount &- dropped)
584
+ let droppedCount = min ( k, byteCount)
585
+ let newCount = byteCount &- droppedCount
586
+ let newSpan = unsafe Self( _unchecked: _pointer, byteCount: newCount)
579
587
return unsafe _override Lifetime ( newSpan, mutating: & self )
580
588
}
581
589
@@ -600,7 +608,7 @@ extension MutableRawSpan {
600
608
_precondition ( maxLength >= 0 , " Can't have a suffix of negative length " )
601
609
let newCount = min ( maxLength, byteCount)
602
610
let newStart = unsafe _pointer? . advanced ( by: byteCount &- newCount)
603
- let newSpan = Self ( _unchecked: newStart, byteCount: newCount)
611
+ let newSpan = unsafe Self( _unchecked: newStart, byteCount: newCount)
604
612
return unsafe _override Lifetime ( newSpan, copying: self )
605
613
}
606
614
@@ -622,9 +630,10 @@ extension MutableRawSpan {
622
630
@lifetime ( borrow self)
623
631
mutating public func _extracting( droppingFirst k: Int ) -> Self {
624
632
_precondition ( k >= 0 , " Can't drop a negative number of bytes " )
625
- let dropped = min ( k, byteCount)
626
- let newStart = unsafe _pointer? . advanced ( by: dropped)
627
- let newSpan = Self ( _unchecked: newStart, byteCount: byteCount &- dropped)
633
+ let droppedCount = min ( k, byteCount)
634
+ let newStart = unsafe _pointer? . advanced ( by: droppedCount)
635
+ let newCount = byteCount &- droppedCount
636
+ let newSpan = unsafe Self( _unchecked: newStart, byteCount: newCount)
628
637
return unsafe _override Lifetime ( newSpan, mutating: & self )
629
638
}
630
639
}
0 commit comments