blob: 918393a0c6acf6964d8c0c7780205356eecf9fb4 [file]
//@ edition:2024
//@ check-fail
mod m {
enum Void {}
pub struct Internal {
_v: Void,
}
pub enum Test {
A(u32, u32),
B(Internal),
}
}
use m::Test;
pub fn f1(x: &mut Test) {
let r1: &mut u32 = match x {
Test::A(a, _) => a,
_ => todo!(),
};
let r2: &mut u32 = match x { //~ ERROR cannot use `*x` because it was mutably borrowed
Test::A(_, b) => b,
_ => todo!(),
};
let _ = *r1;
let _ = *r2;
}
pub fn f2(x: &mut Test) {
let r = &mut *x;
match x { //~ ERROR cannot use `*x` because it was mutably borrowed
Test::A(_, _) => {}
_ => {}
}
let _ = r;
}
fn main() {}