about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-08-09 11:36:22 +0000
committerbors <bors@rust-lang.org>2014-08-09 11:36:22 +0000
commit1712ab2300df3a319c4e9595cd7fa4fd1c8a3aab (patch)
treeec90d65cf5e61b21b53b5efc58c3090720be7610 /src/test
parent87134c7d72d0a39f696051a22c05aa2b328a6d00 (diff)
parentf765759af24ffa8ccc6f9b3913d2e135146e230e (diff)
downloadrust-1712ab2300df3a319c4e9595cd7fa4fd1c8a3aab.tar.gz
rust-1712ab2300df3a319c4e9595cd7fa4fd1c8a3aab.zip
auto merge of #16253 : luqmana/rust/muv, r=nikomatsakis
Fixes #11958.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/compile-fail/cannot-mutate-captured-non-mut-var.rs15
-rw-r--r--src/test/compile-fail/unused-mut-warning-captured-var.rs17
-rw-r--r--src/test/run-pass/issue-11958.rs22
3 files changed, 54 insertions, 0 deletions
diff --git a/src/test/compile-fail/cannot-mutate-captured-non-mut-var.rs b/src/test/compile-fail/cannot-mutate-captured-non-mut-var.rs
new file mode 100644
index 00000000000..6bc436d3c18
--- /dev/null
+++ b/src/test/compile-fail/cannot-mutate-captured-non-mut-var.rs
@@ -0,0 +1,15 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+fn main() {
+    let x = 1i;
+    proc() { x = 2; };
+    //~^ ERROR: cannot assign to immutable captured outer variable in a proc `x`
+}
diff --git a/src/test/compile-fail/unused-mut-warning-captured-var.rs b/src/test/compile-fail/unused-mut-warning-captured-var.rs
new file mode 100644
index 00000000000..a3db84b0ac6
--- /dev/null
+++ b/src/test/compile-fail/unused-mut-warning-captured-var.rs
@@ -0,0 +1,17 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#![forbid(unused_mut)]
+
+fn main() {
+    let mut x = 1i;
+    //~^ ERROR: variable does not need to be mutable
+    proc() { println!("{}", x); };
+}
diff --git a/src/test/run-pass/issue-11958.rs b/src/test/run-pass/issue-11958.rs
new file mode 100644
index 00000000000..f4ed7c5d9c8
--- /dev/null
+++ b/src/test/run-pass/issue-11958.rs
@@ -0,0 +1,22 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#![forbid(warnings)]
+
+// Pretty printing tests complain about `use std::predule::*`
+#![allow(unused_imports)]
+
+// We shouldn't need to rebind a moved upvar as mut if it's already
+// marked as mut
+
+pub fn main() {
+    let mut x = 1i;
+    proc() { x = 2; };
+}