Skip to content

Commit d1ef4c4

Browse files
committed
[stdlib] Use [Closed]Range.init(_uncheckedBounds:) in more places
When the stdlib says not to check, it’s a good idea to actually not have any checking, so that we leave existing code paths unchanged. (And because we do trust that the stdlib is responsible about such things.)
1 parent 513a7d9 commit d1ef4c4

File tree

4 files changed

+12
-11
lines changed

4 files changed

+12
-11
lines changed

stdlib/public/core/ClosedRange.swift

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,9 @@ extension ClosedRange: RangeExpression {
107107
public func relative<C: Collection>(to collection: C) -> Range<Bound>
108108
where C.Index == Bound {
109109
return Range(
110-
uncheckedBounds: (
111-
lower: lowerBound, upper: collection.index(after: self.upperBound)))
110+
_uncheckedBounds: (
111+
lower: lowerBound,
112+
upper: collection.index(after: self.upperBound)))
112113
}
113114

114115
/// Returns a Boolean value indicating whether the given element is contained
@@ -430,7 +431,7 @@ extension ClosedRange {
430431
limits.upperBound < self.upperBound ? limits.upperBound
431432
: limits.lowerBound > self.upperBound ? limits.lowerBound
432433
: self.upperBound
433-
return ClosedRange(uncheckedBounds: (lower: lower, upper: upper))
434+
return ClosedRange(_uncheckedBounds: (lower: lower, upper: upper))
434435
}
435436
}
436437

@@ -446,7 +447,7 @@ extension ClosedRange where Bound: Strideable, Bound.Stride: SignedInteger {
446447
public init(_ other: Range<Bound>) {
447448
_precondition(!other.isEmpty, "Can't form an empty closed range")
448449
let upperBound = other.upperBound.advanced(by: -1)
449-
self.init(uncheckedBounds: (lower: other.lowerBound, upper: upperBound))
450+
self.init(_uncheckedBounds: (lower: other.lowerBound, upper: upperBound))
450451
}
451452
}
452453

@@ -483,7 +484,7 @@ extension ClosedRange: Decodable where Bound: Decodable {
483484
codingPath: decoder.codingPath,
484485
debugDescription: "Cannot initialize \(ClosedRange.self) with a lowerBound (\(lowerBound)) greater than upperBound (\(upperBound))"))
485486
}
486-
self.init(uncheckedBounds: (lower: lowerBound, upper: upperBound))
487+
self.init(_uncheckedBounds: (lower: lowerBound, upper: upperBound))
487488
}
488489
}
489490

stdlib/public/core/Range.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ extension Range where Bound: Strideable, Bound.Stride: SignedInteger {
315315
/// require an upper bound of `Int.max + 1`, which is not representable as
316316
public init(_ other: ClosedRange<Bound>) {
317317
let upperBound = other.upperBound.advanced(by: 1)
318-
self.init(uncheckedBounds: (lower: other.lowerBound, upper: upperBound))
318+
self.init(_uncheckedBounds: (lower: other.lowerBound, upper: upperBound))
319319
}
320320
}
321321

@@ -332,7 +332,7 @@ extension Range: RangeExpression {
332332
@inlinable // trivial-implementation
333333
public func relative<C: Collection>(to collection: C) -> Range<Bound>
334334
where C.Index == Bound {
335-
return Range(uncheckedBounds: (lower: lowerBound, upper: upperBound))
335+
self
336336
}
337337
}
338338

@@ -366,7 +366,7 @@ extension Range {
366366
limits.upperBound < self.upperBound ? limits.upperBound
367367
: limits.lowerBound > self.upperBound ? limits.lowerBound
368368
: self.upperBound
369-
return Range(uncheckedBounds: (lower: lower, upper: upper))
369+
return Range(_uncheckedBounds: (lower: lower, upper: upper))
370370
}
371371
}
372372

@@ -442,7 +442,7 @@ extension Range: Decodable where Bound: Decodable {
442442
codingPath: decoder.codingPath,
443443
debugDescription: "Cannot initialize \(Range.self) with a lowerBound (\(lowerBound)) greater than upperBound (\(upperBound))"))
444444
}
445-
self.init(uncheckedBounds: (lower: lowerBound, upper: upperBound))
445+
self.init(_uncheckedBounds: (lower: lowerBound, upper: upperBound))
446446
}
447447
}
448448

stdlib/public/core/StringProtocol.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ extension StringProtocol {
153153
let end = endIndex
154154
_internalInvariant(
155155
start.transcodedOffset == 0 && end.transcodedOffset == 0)
156-
return Range(uncheckedBounds: (start._encodedOffset, end._encodedOffset))
156+
return Range(_uncheckedBounds: (start._encodedOffset, end._encodedOffset))
157157
}
158158
}
159159

stdlib/public/core/StringStorageBridge.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ extension _AbstractStringStorage {
3030
"Range out of bounds")
3131

3232
let range = Range(
33-
uncheckedBounds: (aRange.location, aRange.location+aRange.length))
33+
_uncheckedBounds: (aRange.location, aRange.location+aRange.length))
3434
let str = asString
3535
str._copyUTF16CodeUnits(
3636
into: UnsafeMutableBufferPointer(start: buffer, count: range.count),

0 commit comments

Comments
 (0)