]>
Commit | Line | Data |
---|---|---|
94b46f34 | 1 | fn main() {} |
83c7162d | 2 | |
94b46f34 | 3 | struct FakeNeedsDrop; |
83c7162d | 4 | |
94b46f34 XL |
5 | impl Drop for FakeNeedsDrop { |
6 | fn drop(&mut self) {} | |
83c7162d XL |
7 | } |
8 | ||
94b46f34 XL |
9 | // ok |
10 | const X: FakeNeedsDrop = { let x = FakeNeedsDrop; x }; | |
7cac9316 | 11 | |
416331ca XL |
12 | // ok (used to incorrectly error, see #62273) |
13 | const X2: FakeNeedsDrop = { let x; x = FakeNeedsDrop; x }; | |
14 | ||
94b46f34 XL |
15 | // error |
16 | const Y: FakeNeedsDrop = { let mut x = FakeNeedsDrop; x = FakeNeedsDrop; x }; | |
416331ca XL |
17 | //~^ ERROR destructors cannot be evaluated at compile-time |
18 | ||
19 | // error | |
20 | const Y2: FakeNeedsDrop = { let mut x; x = FakeNeedsDrop; x = FakeNeedsDrop; x }; | |
21 | //~^ ERROR destructors cannot be evaluated at compile-time | |
83c7162d | 22 | |
94b46f34 XL |
23 | // error |
24 | const Z: () = { let mut x = None; x = Some(FakeNeedsDrop); }; | |
416331ca XL |
25 | //~^ ERROR destructors cannot be evaluated at compile-time |
26 | ||
27 | // error | |
28 | const Z2: () = { let mut x; x = None; x = Some(FakeNeedsDrop); }; | |
29 | //~^ ERROR destructors cannot be evaluated at compile-time |