summaryrefslogtreecommitdiffstats
path: root/src/test/ui/nll/extra-unused-mut.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/nll/extra-unused-mut.rs')
-rw-r--r--src/test/ui/nll/extra-unused-mut.rs66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/test/ui/nll/extra-unused-mut.rs b/src/test/ui/nll/extra-unused-mut.rs
new file mode 100644
index 000000000..340f2952a
--- /dev/null
+++ b/src/test/ui/nll/extra-unused-mut.rs
@@ -0,0 +1,66 @@
+// extra unused mut lint tests for #51918
+
+// check-pass
+
+#![feature(generators)]
+#![deny(unused_mut)]
+
+fn ref_argument(ref _y: i32) {}
+
+// #51801
+fn mutable_upvar() {
+ let mut x = 0;
+ move || {
+ x = 1;
+ };
+}
+
+// #50897
+fn generator_mutable_upvar() {
+ let mut x = 0;
+ move || {
+ x = 1;
+ yield;
+ };
+}
+
+// #51830
+fn ref_closure_argument() {
+ let _ = Some(0).as_ref().map(|ref _a| true);
+}
+
+struct Expr {
+ attrs: Vec<u32>,
+}
+
+// #51904
+fn parse_dot_or_call_expr_with(mut attrs: Vec<u32>) {
+ let x = Expr { attrs: vec![] };
+ Some(Some(x)).map(|expr|
+ expr.map(|mut expr| {
+ attrs.push(666);
+ expr.attrs = attrs;
+ expr
+ })
+ );
+}
+
+// Found when trying to bootstrap rustc
+fn if_guard(x: Result<i32, i32>) {
+ match x {
+ Ok(mut r) | Err(mut r) if true => r = 1,
+ _ => (),
+ }
+}
+
+// #59620
+fn nested_closures() {
+ let mut i = 0;
+ [].iter().for_each(|_: &i32| {
+ [].iter().for_each(move |_: &i32| {
+ i += 1;
+ });
+ });
+}
+
+fn main() {}