]> git.lizzy.rs Git - rust.git/blob - tests/ui/closures/2229_closure_analysis/capture-enum-field.rs
Rollup merge of #106958 - jyn514:labels, r=m-ou-se
[rust.git] / tests / ui / closures / 2229_closure_analysis / capture-enum-field.rs
1 // edition:2021
2 // run-pass
3
4 #[derive(Debug, PartialEq, Eq)]
5 pub enum Color {
6     RGB(u8, u8, u8),
7 }
8
9 fn main() {
10     let mut color = Color::RGB(0, 0, 0);
11     let mut red = |v| {
12         let Color::RGB(ref mut r, _, _) = color;
13         *r = v;
14     };
15     let mut green = |v| {
16         let Color::RGB(_, ref mut g, _) = color;
17         *g = v;
18     };
19     let mut blue = |v| {
20         let Color::RGB(_, _, ref mut b) = color;
21         *b = v;
22     };
23     red(1);
24     green(2);
25     blue(3);
26     assert_eq!(Color::RGB(1, 2, 3), color);
27 }