Closed
Description
Hello,
According to this chapiter, I have writted this example:
#![feature(advanced_slice_patterns, slice_patterns)]
fn check(list: &[u8]) {
match list {
&[] => {},
&[u1 @ b'\xF0' ... b'\xF4', u2 @ b'\x8F' ... b'\x90',
u3 @ b'\x80' ... b'\xBF', u4 @ b'\x80' ... b'\xBF', ref next..] => {
println!("{} {} {} {}", u1, u2, u3, u4);
check(next)
},
&[u1, ref next..] => {
println!("{}", u1);
check(next)
},
}
}
fn main() {
let buf = &[b'0', b'1', b'4'];
check(&buf[..]);
}
But after the rustc 1.14.0-nightly version from 2016-10-25 -aef18be1b-,
I expected to see this happen:
error[E0001]: unreachable pattern
--> <anon>:12:9
|
12 | &[u1 @ b'\xF0' ... b'\xF4',
| ^ this is an unreachable pattern
error: aborting due to previous error
Metadata
Metadata
Assignees
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
djzin commentedon Nov 5, 2016
Minimal example
Fails with
arielb1 commentedon Nov 5, 2016
regression introduced in #36695.
TimNN commentedon Nov 5, 2016
@arielb1: How can this be a stable-nightly regression when this affects a gated feature?
arielb1 commentedon Nov 5, 2016
Not sure what's the policy about it. It's a regression.
TimNN commentedon Nov 5, 2016
Yeah, I totally agree that this is a regression, although the label is inaccurate. I have wanted a
regression-from-nightly-to-nightly
label in the past (for eg. #36954), and think that once upon a time there even was such a label._match: correct max_slice_length logic
Auto merge of #37603 - arielb1:max-slice-length, r=nikomatsakis