mir_build: Move and rename code for partitioning match candidates#149946
Merged
bors merged 2 commits intorust-lang:mainfrom Dec 15, 2025
Merged
mir_build: Move and rename code for partitioning match candidates#149946bors merged 2 commits intorust-lang:mainfrom
bors merged 2 commits intorust-lang:mainfrom
Conversation
Collaborator
|
Some changes occurred in match lowering cc @Nadrieril |
Collaborator
Member
|
Well bucket sort is a kind of sort :D But I agree your rename is an improvement, also big fan of renaming r? Nadrieril @bors r+ rollup |
Collaborator
bors
added a commit
that referenced
this pull request
Dec 15, 2025
Rollup of 7 pull requests Successful merges: - #149744 (test: update duplicate many_digits test to use f64 instead of f32) - #149946 (mir_build: Move and rename code for partitioning match candidates) - #149987 (Move ambient cdb discovery from compiletest to bootstrap) - #149990 (Improve amdgpu docs: Mention device-libs and xnack) - #149994 (Allow vector types for amdgpu) - #149997 (Link POSIX instead of Linux manual for Instant) - #150010 (Correct library linking for hexagon targets in run-make tests) r? `@ghost` `@rustbot` modify labels: rollup
rust-timer
added a commit
that referenced
this pull request
Dec 15, 2025
Rollup merge of #149946 - Zalathar:buckets, r=Nadrieril mir_build: Move and rename code for partitioning match candidates I've always found it confusing that this code uses the word “sort” to describe partitioning candidates into buckets, since it isn't *sorting* them in the usual sense. This PR therefore renames the relevant methods: - `sort_candidates` → `partition_candidates_into_buckets` - `sort_candidate` → `choose_bucket_for_candidate` In addition, this PR moves those methods into their own `buckets` module, updates some comments to reflect the renaming, and also makes `partition_candidates_into_buckets` return a named struct instead of a tuple. There should be no change to compiler behaviour.
matthiaskrgr
added a commit
to matthiaskrgr/rust
that referenced
this pull request
Dec 17, 2025
mir_build: Rename `TestCase` to `TestableCase` In the spirit of rust-lang#149946, this is another renaming of something I've always found confusing. When lowering match conditions, there is a subtle distinction between the kind of *test* being performed (on a scrutinee place), the possible outcomes of that test, and the different “cases” (corresponding to pattern nodes) that the test is distinguishing. Cases imply a particular preferred test, but once a test is chosen it can also interact with other cases as well. I have often mixed up `TestKind` and `TestCase`, since the names are so similar, and they share several variant names. Therefore, this PR renames `TestCase` to `TestableCase`, to emphasise that these are the things selected by whatever test is being performed. There should be no change to compiler behaviour.
matthiaskrgr
added a commit
to matthiaskrgr/rust
that referenced
this pull request
Dec 17, 2025
mir_build: Rename `TestCase` to `TestableCase` In the spirit of rust-lang#149946, this is another renaming of something I've always found confusing. When lowering match conditions, there is a subtle distinction between the kind of *test* being performed (on a scrutinee place), the possible outcomes of that test, and the different “cases” (corresponding to pattern nodes) that the test is distinguishing. Cases imply a particular preferred test, but once a test is chosen it can also interact with other cases as well. I have often mixed up `TestKind` and `TestCase`, since the names are so similar, and they share several variant names. Therefore, this PR renames `TestCase` to `TestableCase`, to emphasise that these are the things selected by whatever test is being performed. There should be no change to compiler behaviour.
rust-timer
added a commit
that referenced
this pull request
Dec 17, 2025
Rollup merge of #150051 - Zalathar:thir-pat, r=Nadrieril mir_build: Rename `TestCase` to `TestableCase` In the spirit of #149946, this is another renaming of something I've always found confusing. When lowering match conditions, there is a subtle distinction between the kind of *test* being performed (on a scrutinee place), the possible outcomes of that test, and the different “cases” (corresponding to pattern nodes) that the test is distinguishing. Cases imply a particular preferred test, but once a test is chosen it can also interact with other cases as well. I have often mixed up `TestKind` and `TestCase`, since the names are so similar, and they share several variant names. Therefore, this PR renames `TestCase` to `TestableCase`, to emphasise that these are the things selected by whatever test is being performed. There should be no change to compiler behaviour.
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.
I've always found it confusing that this code uses the word “sort” to describe partitioning candidates into buckets, since it isn't sorting them in the usual sense.
This PR therefore renames the relevant methods:
sort_candidates→partition_candidates_into_bucketssort_candidate→choose_bucket_for_candidateIn addition, this PR moves those methods into their own
bucketsmodule, updates some comments to reflect the renaming, and also makespartition_candidates_into_bucketsreturn a named struct instead of a tuple.There should be no change to compiler behaviour.