Skip to content

Commit 57af818

Browse files
authored
Merge pull request #41548 from lorentey/simplify-failEarlyRangeCheck
[stdlib] Collection: simplify default _failEarlyRangeCheck implementations
2 parents d2673ed + 5293bde commit 57af818

File tree

1 file changed

+6
-20
lines changed

1 file changed

+6
-20
lines changed

stdlib/public/core/Collection.swift

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -712,39 +712,25 @@ extension Collection {
712712
public func _failEarlyRangeCheck(_ index: Index, bounds: Range<Index>) {
713713
// FIXME: swift-3-indexing-model: tests.
714714
_precondition(
715-
bounds.lowerBound <= index,
716-
"Out of bounds: index < startIndex")
717-
_precondition(
718-
index < bounds.upperBound,
719-
"Out of bounds: index >= endIndex")
715+
bounds.lowerBound <= index && index < bounds.upperBound,
716+
"Index out of bounds")
720717
}
721718

722719
@inlinable
723720
public func _failEarlyRangeCheck(_ index: Index, bounds: ClosedRange<Index>) {
724721
// FIXME: swift-3-indexing-model: tests.
725722
_precondition(
726-
bounds.lowerBound <= index,
727-
"Out of bounds: index < startIndex")
728-
_precondition(
729-
index <= bounds.upperBound,
730-
"Out of bounds: index > endIndex")
723+
bounds.lowerBound <= index && index <= bounds.upperBound,
724+
"Index out of bounds")
731725
}
732726

733727
@inlinable
734728
public func _failEarlyRangeCheck(_ range: Range<Index>, bounds: Range<Index>) {
735729
// FIXME: swift-3-indexing-model: tests.
736730
_precondition(
737-
bounds.lowerBound <= range.lowerBound,
738-
"Out of bounds: range begins before startIndex")
739-
_precondition(
740-
range.lowerBound <= bounds.upperBound,
741-
"Out of bounds: range ends after endIndex")
742-
_precondition(
743-
bounds.lowerBound <= range.upperBound,
744-
"Out of bounds: range ends before bounds.lowerBound")
745-
_precondition(
731+
bounds.lowerBound <= range.lowerBound &&
746732
range.upperBound <= bounds.upperBound,
747-
"Out of bounds: range begins after bounds.upperBound")
733+
"Range out of bounds")
748734
}
749735

750736
/// Returns an index that is the specified distance from the given index.

0 commit comments

Comments
 (0)