Exhaustiveness checking, Matrix::push
: recursively expand or-patterns by Centril · Pull Request #69891 · rust-lang/rust (original) (raw)
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Conversation6 Commits1 Checks0 Files changed
Conversation
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
[ Show hidden characters]({{ revealButtonHref }})
There's an implicit invariant that there should be no or-patterns directly in the first column of the matrix, but this invariant is broken exactly when an or-pattern has a child that is itself an or-pattern.
Here we preserve this broken invariant by recursively expanding PatKind::Or
s in Matrix::push
.
Fixes #69875.
r? @varkor
cc @Nadrieril
cc #54883
📌 Commit 4d16c21 has been approved by varkor
🌲 The tree is currently closed for pull requests below priority 1000, this pull request will be tested once the tree is reopened
bors added S-waiting-on-bors
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
and removed S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
labels
Centril added a commit to Centril/rust that referenced this pull request
Exhaustiveness checking, Matrix::push
: recursively expand or-patterns
There's an implicit invariant that there should be no or-patterns directly in the first column of the matrix, but this invariant is broken exactly when an or-pattern has a child that is itself an or-pattern.
Here we preserve this broken invariant by recursively expanding PatKind::Or
s in Matrix::push
.
Fixes rust-lang#69875.
r? @varkor cc @Nadrieril cc rust-lang#54883
bors added a commit that referenced this pull request
Rollup of 10 pull requests
Successful merges:
- #66059 (mem::zeroed/uninit: panic on types that do not permit zero-initialization)
- #69373 (Stabilize const for integer {to,from}_{be,le,ne}_bytes methods)
- #69591 (Use TypeRelating for instantiating query responses)
- #69625 (Implement nth, last, and count for iter::Copied)
- #69645 (const forget tests)
- #69766 (Make Point
Copy
in arithmetic documentation) - #69825 (make
mem::discriminant
const) - #69859 (fix #62456)
- #69891 (Exhaustiveness checking,
Matrix::push
: recursively expand or-patterns) - #69896 (parse: Tweak the function parameter edition check)
Failed merges:
r? @ghost
Labels
`#![feature(or_patterns)]`
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.