| //! 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. | |
| //@ dont-require-annotations: NOTE | |
| fn main() { | |
| let mut val = [97u8, 10u8]; | |
| match &mut val { | |
| b"a\n" => {}, | |
| //~^ ERROR mismatched types | |
| //~| NOTE types differ in mutability | |
| _ => {}, | |
| } | |
| match &mut val[..] { | |
| b"a\n" => {}, | |
| //~^ ERROR mismatched types | |
| //~| NOTE types differ in mutability | |
| _ => {}, | |
| } | |
| } |