summaryrefslogtreecommitdiffstats
path: root/tests/ui/nll/extra-unused-mut.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /tests/ui/nll/extra-unused-mut.rs
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ui/nll/extra-unused-mut.rs')
-rw-r--r--tests/ui/nll/extra-unused-mut.rs66
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/ui/nll/extra-unused-mut.rs b/tests/ui/nll/extra-unused-mut.rs
new file mode 100644
index 000000000..340f2952a
--- /dev/null
+++ b/tests/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() {}