2024-03-24 01:04:45 +00:00
|
|
|
//@ edition: 2021
|
2024-03-26 05:23:26 +00:00
|
|
|
#![allow(incomplete_features)]
|
|
|
|
#![feature(mut_ref)]
|
2024-03-24 01:04:45 +00:00
|
|
|
|
|
|
|
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;
|
|
|
|
}
|