Editorial: use the exclusive range where the range can be empty - #1632
Merged
Conversation
Several algorithms iterated with "the range 0 to X - 1, inclusive", which is a decreasing range when X is 0. Infra only defines "the range n to m, inclusive" for m greater than or equal to n, so those cases were not well-defined, even though the empty ordered set was clearly what was intended -- see for instance the note about |i| being 0 in the overload set construction. Switch to "the range n to m, exclusive", which Infra defines to create an empty ordered set when m equals n. The range in "for each |j| in the range |n| to |i|, inclusive" is left alone, since |i| is always greater than or equal to |n| there.
Ms2ger
approved these changes
Aug 31, 2026
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Several algorithms iterated with "the range 0 to X − 1, inclusive", which is a decreasing range when X is 0. Infra only defines "the range n to m, inclusive" for m greater than or equal to n, so those cases were not well-defined, even though the empty ordered set was clearly what was intended — see for instance the note about i being 0 in the overload set construction.
Switch to "the range n to m, exclusive", which Infra already defines to create an empty ordered set when m equals n. This needs no Infra change.
Sites changed:
|n|to|max|,0to|n|, and0to|i|. The remaining|n|to|i|, inclusive is left alone, since|i|is always greater than or equal to|n|there.ArrayBuffer", which was decreasing for an empty byte sequence.