File tree Expand file tree Collapse file tree 2 files changed +14
-9
lines changed Expand file tree Collapse file tree 2 files changed +14
-9
lines changed Original file line number Diff line number Diff line change @@ -1664,8 +1664,10 @@ extension Collection where SubSequence == Self {
1664
1664
public mutating func removeFirst( _ k: Int ) {
1665
1665
if k == 0 { return }
1666
1666
_precondition ( k >= 0 , " Number of elements to remove should be non-negative " )
1667
- _precondition ( count >= k,
1668
- " Can't remove more items from a collection than it contains " )
1669
- self = self [ index ( startIndex, offsetBy: k) ..< endIndex]
1667
+ guard let idx = index ( startIndex, offsetBy: k, limitedBy: endIndex) else {
1668
+ _preconditionFailure (
1669
+ " Can't remove more items from a collection than it contains " )
1670
+ }
1671
+ self = self [ idx..< endIndex]
1670
1672
}
1671
1673
}
Original file line number Diff line number Diff line change @@ -591,9 +591,10 @@ extension RangeReplaceableCollection {
591
591
public mutating func removeFirst( _ k: Int ) {
592
592
if k == 0 { return }
593
593
_precondition ( k >= 0 , " Number of elements to remove should be non-negative " )
594
- _precondition ( count >= k,
595
- " Can't remove more items from a collection than it has " )
596
- let end = index ( startIndex, offsetBy: k)
594
+ guard let end = index ( startIndex, offsetBy: k, limitedBy: endIndex) else {
595
+ _preconditionFailure (
596
+ " Can't remove more items from a collection than it has " )
597
+ }
597
598
removeSubrange ( startIndex..< end)
598
599
}
599
600
@@ -699,9 +700,11 @@ extension RangeReplaceableCollection where SubSequence == Self {
699
700
public mutating func removeFirst( _ k: Int ) {
700
701
if k == 0 { return }
701
702
_precondition ( k >= 0 , " Number of elements to remove should be non-negative " )
702
- _precondition ( count >= k,
703
- " Can't remove more items from a collection than it contains " )
704
- self = self [ index ( startIndex, offsetBy: k) ..< endIndex]
703
+ guard let idx = index ( startIndex, offsetBy: k, limitedBy: endIndex) else {
704
+ _preconditionFailure (
705
+ " Can't remove more items from a collection than it contains " )
706
+ }
707
+ self = self [ idx..< endIndex]
705
708
}
706
709
}
707
710
You can’t perform that action at this time.
0 commit comments