]> git.lizzy.rs Git - rust.git/blob - src/test/ui/rfc-2008-non-exhaustive/borrowck-exhaustive.rs
parser will not give wrong help message for 'public'
[rust.git] / src / test / ui / rfc-2008-non-exhaustive / borrowck-exhaustive.rs
1 // Test that the borrow checker doesn't consider checking an exhaustive pattern
2 // as an access.
3
4 // check-pass
5
6 // aux-build:monovariants.rs
7 extern crate monovariants;
8
9 use monovariants::ExhaustiveMonovariant;
10
11 enum Local {
12     Variant(u32),
13 }
14
15 #[non_exhaustive]
16 enum LocalNonExhaustive {
17     Variant(u32),
18 }
19
20 fn main() {
21     let mut x = ExhaustiveMonovariant::Variant(1);
22     let y = &mut x;
23     match x {
24         ExhaustiveMonovariant::Variant(_) => {},
25         _ => {},
26     }
27     drop(y);
28     let mut x = Local::Variant(1);
29     let y = &mut x;
30     match x {
31         Local::Variant(_) => {},
32         _ => {},
33     }
34     drop(y);
35     let mut x = LocalNonExhaustive::Variant(1);
36     let y = &mut x;
37     match x {
38         LocalNonExhaustive::Variant(_) => {},
39         _ => {},
40     }
41     drop(y);
42 }