Skip to content

Commit 35b9c1b

Browse files
authored
Merge pull request swiftlang#76786 from DougGregor/range-unchecked-bounds-unsafe
Mark `Range.init(uncheckedBounds:)` and `ClosedRange.init(uncheckedBounds:)` as @unsafe
2 parents 353a1c2 + af49172 commit 35b9c1b

File tree

3 files changed

+4
-0
lines changed

3 files changed

+4
-0
lines changed

stdlib/public/core/ClosedRange.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ public struct ClosedRange<Bound: Comparable> {
8585
///
8686
/// - Parameter bounds: A tuple of the lower and upper bounds of the range.
8787
@inlinable
88+
@unsafe
8889
public init(uncheckedBounds bounds: (lower: Bound, upper: Bound)) {
8990
_debugPrecondition(bounds.lower <= bounds.upper,
9091
"ClosedRange requires lowerBound <= upperBound")

stdlib/public/core/Range.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ public struct Range<Bound: Comparable> {
174174
///
175175
/// - Parameter bounds: A tuple of the lower and upper bounds of the range.
176176
@inlinable
177+
@unsafe
177178
public init(uncheckedBounds bounds: (lower: Bound, upper: Bound)) {
178179
_debugPrecondition(bounds.lower <= bounds.upper,
179180
"Range requires lowerBound <= upperBound")

test/api-digester/Outputs/stability-stdlib-source-base.swift.expected

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,13 +213,15 @@ Accessor UnsafePointer.hashValue.Get() has generic signature change from <Pointe
213213
Accessor UnsafePointer.pointee.Get() has been removed
214214
Accessor UnsafePointer.subscript(_:).Get() has been removed
215215
Class ManagedBuffer has generic signature change from <Header, Element> to <Header, Element where Element : ~Copyable>
216+
Constructor ClosedRange.init(uncheckedBounds:) is now with @unsafe
216217
Constructor ExpressibleByNilLiteral.init(nilLiteral:) has generic signature change from <Self where Self : Swift.ExpressibleByNilLiteral> to <Self where Self : Swift.ExpressibleByNilLiteral, Self : ~Copyable>
217218
Constructor ManagedBufferPointer.init(bufferClass:minimumCapacity:makingHeaderWith:) has generic signature change from <Header, Element> to <Header, Element where Element : ~Copyable>
218219
Constructor ManagedBufferPointer.init(unsafeBufferObject:) has generic signature change from <Header, Element> to <Header, Element where Element : ~Copyable>
219220
Constructor OpaquePointer.init(_:) has generic signature change from <T> to <T where T : ~Copyable>
220221
Constructor Optional.init(_:) has generic signature change from <Wrapped> to <Wrapped where Wrapped : ~Copyable>
221222
Constructor Optional.init(_:) has parameter 0 changing from Default to Owned
222223
Constructor Optional.init(nilLiteral:) has generic signature change from <Wrapped> to <Wrapped where Wrapped : ~Copyable>
224+
Constructor Range.init(uncheckedBounds:) is now with @unsafe
223225
Constructor Result.init(catching:) has generic signature change from <Success, Failure where Failure == any Swift.Error> to <Success, Failure where Failure : Swift.Error, Success : ~Copyable>
224226
Constructor UnsafeBufferPointer.init(_:) has generic signature change from <Element> to <Element where Element : ~Copyable>
225227
Constructor UnsafeBufferPointer.init(start:count:) has generic signature change from <Element> to <Element where Element : ~Copyable>

0 commit comments

Comments
 (0)