2025-04-22 20:07:15 +00:00
|
|
|
//! Byte string literal patterns use the mutability of the literal, rather than the mutability of
|
|
|
|
//! the pattern's scrutinee. Since byte string literals are always shared references, it's a
|
|
|
|
//! mismatch to use a byte string literal pattern to match on a mutable array or slice reference.
|
|
|
|
|
2025-04-05 16:19:56 +00:00
|
|
|
//@ dont-require-annotations: NOTE
|
|
|
|
|
2025-04-22 20:07:15 +00:00
|
|
|
fn main() {
|
|
|
|
let mut val = [97u8, 10u8];
|
|
|
|
match &mut val {
|
|
|
|
b"a\n" => {},
|
|
|
|
//~^ ERROR mismatched types
|
2025-04-05 16:19:56 +00:00
|
|
|
//~| NOTE types differ in mutability
|
2025-04-22 20:07:15 +00:00
|
|
|
_ => {},
|
|
|
|
}
|
|
|
|
match &mut val[..] {
|
|
|
|
b"a\n" => {},
|
|
|
|
//~^ ERROR mismatched types
|
2025-04-05 16:19:56 +00:00
|
|
|
//~| NOTE types differ in mutability
|
2025-04-22 20:07:15 +00:00
|
|
|
_ => {},
|
|
|
|
}
|
|
|
|
}
|