]> git.lizzy.rs Git - rust.git/blob - src/test/ui/nll/extra-unused-mut.rs
Rollup merge of #105216 - GuillaumeGomez:rm-unused-gui-test, r=notriddle
[rust.git] / src / test / ui / nll / extra-unused-mut.rs
1 // extra unused mut lint tests for #51918
2
3 // check-pass
4
5 #![feature(generators)]
6 #![deny(unused_mut)]
7
8 fn ref_argument(ref _y: i32) {}
9
10 // #51801
11 fn mutable_upvar() {
12     let mut x = 0;
13     move || {
14         x = 1;
15     };
16 }
17
18 // #50897
19 fn generator_mutable_upvar() {
20     let mut x = 0;
21     move || {
22         x = 1;
23         yield;
24     };
25 }
26
27 // #51830
28 fn ref_closure_argument() {
29     let _ = Some(0).as_ref().map(|ref _a| true);
30 }
31
32 struct Expr {
33     attrs: Vec<u32>,
34 }
35
36 // #51904
37 fn parse_dot_or_call_expr_with(mut attrs: Vec<u32>) {
38     let x = Expr { attrs: vec![] };
39     Some(Some(x)).map(|expr|
40         expr.map(|mut expr| {
41             attrs.push(666);
42             expr.attrs = attrs;
43             expr
44         })
45     );
46 }
47
48 // Found when trying to bootstrap rustc
49 fn if_guard(x: Result<i32, i32>) {
50     match x {
51         Ok(mut r) | Err(mut r) if true => r = 1,
52         _ => (),
53     }
54 }
55
56 // #59620
57 fn nested_closures() {
58     let mut i = 0;
59     [].iter().for_each(|_: &i32| {
60         [].iter().for_each(move |_: &i32| {
61             i += 1;
62         });
63     });
64 }
65
66 fn main() {}