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 {
16641664 public mutating func removeFirst( _ k: Int ) {
16651665 if k == 0 { return }
16661666 _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]
16701672 }
16711673}
Original file line number Diff line number Diff line change @@ -590,9 +590,10 @@ extension RangeReplaceableCollection {
590590 public mutating func removeFirst( _ k: Int ) {
591591 if k == 0 { return }
592592 _precondition ( k >= 0 , " Number of elements to remove should be non-negative " )
593- _precondition ( count >= k,
594- " Can't remove more items from a collection than it has " )
595- let end = index ( startIndex, offsetBy: k)
593+ guard let end = index ( startIndex, offsetBy: k, limitedBy: endIndex) else {
594+ _preconditionFailure (
595+ " Can't remove more items from a collection than it has " )
596+ }
596597 removeSubrange ( startIndex..< end)
597598 }
598599
@@ -698,9 +699,11 @@ extension RangeReplaceableCollection where SubSequence == Self {
698699 public mutating func removeFirst( _ k: Int ) {
699700 if k == 0 { return }
700701 _precondition ( k >= 0 , " Number of elements to remove should be non-negative " )
701- _precondition ( count >= k,
702- " Can't remove more items from a collection than it contains " )
703- self = self [ index ( startIndex, offsetBy: k) ..< endIndex]
702+ guard let idx = index ( startIndex, offsetBy: k, limitedBy: endIndex) else {
703+ _preconditionFailure (
704+ " Can't remove more items from a collection than it contains " )
705+ }
706+ self = self [ idx..< endIndex]
704707 }
705708}
706709
You can’t perform that action at this time.
0 commit comments