about summary refs log tree commit diff
path: root/compiler/rustc_pattern_analysis/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-12-08 17:08:52 +0000
committerbors <bors@rust-lang.org>2023-12-08 17:08:52 +0000
commit2b399b52753eac351067e73f4ff0de829443b9a7 (patch)
treefcf3dec95713cdb827613b12a286f53dc7a51877 /compiler/rustc_pattern_analysis/src
parentae612bedcbfc7098d1711eb35bc7ca994eb17a4c (diff)
parent431cc4a3b0ea6e0ef2244d2e6ff2ad89ccd23c74 (diff)
downloadrust-2b399b52753eac351067e73f4ff0de829443b9a7.tar.gz
rust-2b399b52753eac351067e73f4ff0de829443b9a7.zip
Auto merge of #118527 - Nadrieril:never_patterns_parse, r=compiler-errors
never_patterns: Parse match arms with no body

Never patterns are meant to signal unreachable cases, and thus don't take bodies:
```rust
let ptr: *const Option<!> = ...;
match *ptr {
    None => { foo(); }
    Some(!),
}
```
This PR makes rustc accept the above, and enforces that an arm has a body xor is a never pattern. This affects parsing of match arms even with the feature off, so this is delicate. (Plus this is my first non-trivial change to the parser).

~~The last commit is optional; it introduces a bit of churn to allow the new suggestions to be machine-applicable. There may be a better solution? I'm not sure.~~ EDIT: I removed that commit

r? `@compiler-errors`
Diffstat (limited to 'compiler/rustc_pattern_analysis/src')
0 files changed, 0 insertions, 0 deletions