about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLuqman Aden <me@luqman.ca>2014-08-22 10:16:26 -0700
committerLuqman Aden <me@luqman.ca>2014-08-23 01:03:34 -0700
commitf6dfff29acb8ea70315c61251fe0c3318907a783 (patch)
treecac525c5b220fe53d0db49617806aaf8195a270f
parent30ab05aeb5ba13dc292e625456ea5edf486dddd9 (diff)
downloadrust-f6dfff29acb8ea70315c61251fe0c3318907a783.tar.gz
rust-f6dfff29acb8ea70315c61251fe0c3318907a783.zip
Add tests.
-rw-r--r--src/test/compile-fail/cannot-mutate-captured-non-mut-var.rs4
-rw-r--r--src/test/run-pass/issue-16671.rs24
2 files changed, 28 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
index 6bc436d3c18..fcb09c20000 100644
--- a/src/test/compile-fail/cannot-mutate-captured-non-mut-var.rs
+++ b/src/test/compile-fail/cannot-mutate-captured-non-mut-var.rs
@@ -12,4 +12,8 @@ fn main() {
     let x = 1i;
     proc() { x = 2; };
     //~^ ERROR: cannot assign to immutable captured outer variable in a proc `x`
+
+    let s = std::io::stdin();
+    proc() { s.lines(); };
+    //~^ ERROR: cannot borrow immutable captured outer variable in a proc `s` as mutable
 }
diff --git a/src/test/run-pass/issue-16671.rs b/src/test/run-pass/issue-16671.rs
new file mode 100644
index 00000000000..a0d384418f9
--- /dev/null
+++ b/src/test/run-pass/issue-16671.rs
@@ -0,0 +1,24 @@
+// 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)]
+
+// A var moved into a proc, that has a mutable loan path should
+// not trigger a misleading unused_mut warning.
+
+pub fn main() {
+    let mut stdin = std::io::stdin();
+    spawn(proc() {
+        let _ = stdin.lines();
+    });
+}