blob: 918393a0c6acf6964d8c0c7780205356eecf9fb4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
//@ 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() {}
|