Skip to content

Commit 940628a

Browse files
committed
[stdlib] add newly-required unsafe annotations
1 parent 96e9945 commit 940628a

10 files changed

+32
-28
lines changed

stdlib/public/core/Array.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1436,14 +1436,14 @@ extension Array: RangeReplaceableCollection {
14361436
#if _runtime(_ObjC)
14371437
if _slowPath(!_buffer._isNative) {
14381438
let buffer = _buffer.getOrAllocateAssociatedObjectBuffer()
1439-
let (pointer, count) = (buffer.firstElementAddress, buffer.count)
1440-
let span = Span(_unsafeStart: pointer, count: count)
1441-
return _overrideLifetime(span, borrowing: self)
1439+
let (pointer, count) = unsafe (buffer.firstElementAddress, buffer.count)
1440+
let span = unsafe Span(_unsafeStart: pointer, count: count)
1441+
return unsafe _overrideLifetime(span, borrowing: self)
14421442
}
14431443
#endif
1444-
let (pointer, count) = (_buffer.firstElementAddress, _buffer.count)
1445-
let span = Span(_unsafeStart: pointer, count: count)
1446-
return _overrideLifetime(span, borrowing: self)
1444+
let (pointer, count) = unsafe (_buffer.firstElementAddress, _buffer.count)
1445+
let span = unsafe Span(_unsafeStart: pointer, count: count)
1446+
return unsafe _overrideLifetime(span, borrowing: self)
14471447
}
14481448
}
14491449

stdlib/public/core/ArrayBuffer.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -640,7 +640,7 @@ extension _ArrayBuffer {
640640
_ body: (UnsafeBufferPointer<Element>) throws(E) -> R
641641
) throws(E) -> R {
642642
let buffer = getOrAllocateAssociatedObjectBuffer()
643-
let (pointer, count) = (buffer.firstElementAddress, buffer.count)
643+
let (pointer, count) = unsafe (buffer.firstElementAddress, buffer.count)
644644
return try unsafe body(UnsafeBufferPointer(start: pointer, count: count))
645645
}
646646

stdlib/public/core/ArraySlice.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1122,8 +1122,8 @@ extension ArraySlice: RangeReplaceableCollection {
11221122
@_alwaysEmitIntoClient
11231123
borrowing get {
11241124
let (pointer, count) = (_buffer.firstElementAddress, _buffer.count)
1125-
let span = Span(_unsafeStart: pointer, count: count)
1126-
return _overrideLifetime(span, borrowing: self)
1125+
let span = unsafe Span(_unsafeStart: pointer, count: count)
1126+
return unsafe _overrideLifetime(span, borrowing: self)
11271127
}
11281128
}
11291129

stdlib/public/core/CollectionOfOne.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -166,9 +166,9 @@ extension CollectionOfOne {
166166
@lifetime(borrow self)
167167
@_alwaysEmitIntoClient
168168
get {
169-
let pointer = UnsafePointer<Element>(Builtin.addressOfBorrow(self))
170-
let span = Span(_unsafeStart: pointer, count: 1)
171-
return _overrideLifetime(span, borrowing: self)
169+
let pointer = unsafe UnsafePointer<Element>(Builtin.addressOfBorrow(self))
170+
let span = unsafe Span(_unsafeStart: pointer, count: 1)
171+
return unsafe _overrideLifetime(span, borrowing: self)
172172
}
173173
}
174174
}

stdlib/public/core/ContiguousArray.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1026,9 +1026,9 @@ extension ContiguousArray: RangeReplaceableCollection {
10261026
@lifetime(borrow self)
10271027
@_alwaysEmitIntoClient
10281028
borrowing get {
1029-
let (pointer, count) = (_buffer.firstElementAddress, _buffer.count)
1030-
let span = Span(_unsafeStart: pointer, count: count)
1031-
return _overrideLifetime(span, borrowing: self)
1029+
let (pointer, count) = unsafe (_buffer.firstElementAddress, _buffer.count)
1030+
let span = unsafe Span(_unsafeStart: pointer, count: count)
1031+
return unsafe _overrideLifetime(span, borrowing: self)
10321032
}
10331033
}
10341034

stdlib/public/core/KeyValuePairs.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,12 @@ extension KeyValuePairs {
132132
@lifetime(borrow self)
133133
@_alwaysEmitIntoClient
134134
get {
135-
let pointer = UnsafeRawPointer(_elements._buffer.firstElementAddress)
136-
let span = Span(
137-
_unsafeStart: pointer.assumingMemoryBound(to: Element.self),
135+
let rp = unsafe UnsafeRawPointer(_elements._buffer.firstElementAddress)
136+
let span = unsafe Span(
137+
_unsafeStart: unsafe rp.assumingMemoryBound(to: Element.self),
138138
count: _elements.count
139139
)
140-
return _overrideLifetime(span, borrowing: self)
140+
return unsafe _overrideLifetime(span, borrowing: self)
141141
}
142142
}
143143
}

stdlib/public/core/Span/RawSpan.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public struct RawSpan: ~Escapable, Copyable, BitwiseCopyable {
3232
@usableFromInline
3333
internal let _pointer: UnsafeRawPointer?
3434

35+
@unsafe
3536
@_alwaysEmitIntoClient
3637
internal func _start() -> UnsafeRawPointer {
3738
unsafe _pointer._unsafelyUnwrappedUnchecked
@@ -443,7 +444,7 @@ extension RawSpan {
443444
public func _extracting(
444445
unchecked bounds: ClosedRange<Int>
445446
) -> Self {
446-
let range = Range(
447+
let range = unsafe Range(
447448
_uncheckedBounds: (bounds.lowerBound, bounds.upperBound + 1)
448449
)
449450
return unsafe _extracting(unchecked: range)
@@ -666,7 +667,7 @@ extension RawSpan {
666667
guard let spanStart = other._pointer, _count > 0 else {
667668
return unsafe _pointer == other._pointer ? 0..<0 : nil
668669
}
669-
let start = _start()
670+
let start = unsafe _start()
670671
let spanEnd = unsafe spanStart + other._count
671672
if unsafe spanStart < start || (start + _count) < spanEnd { return nil }
672673
let lower = unsafe start.distance(to: spanStart)

stdlib/public/core/Span/Span.swift

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public struct Span<Element: ~Copyable & ~Escapable>
3434
@usableFromInline
3535
internal let _pointer: UnsafeRawPointer?
3636

37+
@unsafe
3738
@_alwaysEmitIntoClient
3839
internal func _start() -> UnsafeRawPointer {
3940
unsafe _pointer._unsafelyUnwrappedUnchecked
@@ -501,7 +502,7 @@ extension Span where Element: BitwiseCopyable {
501502
@_alwaysEmitIntoClient
502503
get {
503504
let rawSpan = RawSpan(_elements: self)
504-
return _overrideLifetime(rawSpan, copying: self)
505+
return unsafe _overrideLifetime(rawSpan, copying: self)
505506
}
506507
}
507508
}
@@ -603,7 +604,7 @@ extension Span where Element: ~Copyable {
603604
public func _extracting(
604605
unchecked bounds: ClosedRange<Index>
605606
) -> Self {
606-
let range = Range(
607+
let range = unsafe Range(
607608
_uncheckedBounds: (bounds.lowerBound, bounds.upperBound + 1)
608609
)
609610
return unsafe _extracting(unchecked: range)
@@ -712,7 +713,7 @@ extension Span where Element: ~Copyable {
712713
guard let spanStart = other._pointer, _count > 0 else {
713714
return unsafe _pointer == other._pointer ? 0..<0 : nil
714715
}
715-
let start = _start()
716+
let start = unsafe _start()
716717
let stride = MemoryLayout<Element>.stride
717718
let spanEnd = unsafe spanStart + stride &* other._count
718719
if unsafe spanStart < start || spanEnd > (start + stride &* _count) {

stdlib/public/core/UnsafeBufferPointer.swift.gyb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -565,13 +565,14 @@ extension Unsafe${Mutable}BufferPointer where Element: ~Copyable {
565565
unsafe self
566566
}
567567

568+
@unsafe
568569
@available(SwiftStdlib 6.2, *)
569570
public var span: Span<Element> {
570571
@lifetime(borrow self)
571572
@_alwaysEmitIntoClient
572573
get {
573-
let span = Span(_unsafeElements: self)
574-
return _overrideLifetime(span, borrowing: self)
574+
let span = unsafe Span(_unsafeElements: self)
575+
return unsafe _overrideLifetime(span, borrowing: self)
575576
}
576577
}
577578
}

stdlib/public/core/UnsafeRawBufferPointer.swift.gyb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,13 +1172,14 @@ extension Unsafe${Mutable}RawBufferPointer {
11721172
}
11731173
}
11741174

1175+
@unsafe
11751176
@available(SwiftStdlib 6.2, *)
11761177
public var bytes: RawSpan {
11771178
@lifetime(borrow self)
11781179
@_alwaysEmitIntoClient
11791180
get {
1180-
let span = RawSpan(_unsafeBytes: self)
1181-
return _overrideLifetime(span, borrowing: self)
1181+
let span = unsafe RawSpan(_unsafeBytes: self)
1182+
return unsafe _overrideLifetime(span, borrowing: self)
11821183
}
11831184
}
11841185
}

0 commit comments

Comments
 (0)