[Foundation] 1-ary IndexPath forms invalid range on slices #10317
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a cherry pick of pr #10311
1-ary IndexPaths incorrectly implemented slicing for ranges of 1..<1
This resolves swiftlang/swift-corelibs-foundation#3851.
Explanation:
IndexPath had a missing case for 1..<1 in 1-ary variant storage when slicing ranges. This commit adds that missing case (since integers are not naturally exhaustive and fall into a default case they were hitting the "out of range" cases)
Scope:
This is only runtime behavior for IndexPath and is a un-common use case (but still something that we should definitely not let fail)
Radar (and possibly SR Issue):
Risk:
This is relatively low risk since it is only a runtime behavior and only changes an un-common case.
Testing:
A unit test was added testing both the reported case of
dropFirst()
as well as the root cause of slicing.