//@ edition: 2021 #![allow(incomplete_features)] #![feature(mut_ref)] struct Foo(u8); fn main() { let Foo(a) = Foo(0); a = 42; //~ ERROR [E0384] let Foo(mut a) = Foo(0); a = 42; let Foo(ref a) = Foo(0); a = &42; //~ ERROR [E0384] let Foo(mut ref a) = Foo(0); a = &42; let Foo(ref mut a) = Foo(0); a = &mut 42; //~ ERROR [E0384] let Foo(mut ref mut a) = Foo(0); a = &mut 42; let Foo(a) = &Foo(0); a = &42; //~ ERROR [E0384] let Foo(mut a) = &Foo(0); a = 42; let Foo(ref a) = &Foo(0); a = &42; //~ ERROR [E0384] let Foo(mut ref a) = &Foo(0); a = &42; let Foo(a) = &mut Foo(0); a = &mut 42; //~ ERROR [E0384] let Foo(mut a) = &mut Foo(0); a = 42; let Foo(ref a) = &mut Foo(0); a = &42; //~ ERROR [E0384] let Foo(mut ref a) = &mut Foo(0); a = &42; let Foo(ref mut a) = &mut Foo(0); a = &mut 42; //~ ERROR [E0384] let Foo(mut ref mut a) = &mut Foo(0); a = &mut 42; }