From a8f90bcb1871a8658375195f676d3706ab29a3a5 Mon Sep 17 00:00:00 2001 From: Brian Koropoff Date: Sat, 11 Oct 2014 20:10:14 -0700 Subject: [PATCH] Update test for issue 17780 since diagnostic message have changed The test was also renamed to be more descriptive. --- ....rs => borrow-immutable-upvar-mutation.rs} | 27 +++++++------------ 1 file changed, 9 insertions(+), 18 deletions(-) rename src/test/compile-fail/{issue-17780.rs => borrow-immutable-upvar-mutation.rs} (50%) diff --git a/src/test/compile-fail/issue-17780.rs b/src/test/compile-fail/borrow-immutable-upvar-mutation.rs similarity index 50% rename from src/test/compile-fail/issue-17780.rs rename to src/test/compile-fail/borrow-immutable-upvar-mutation.rs index 2072b2ee2d2..f748c400654 100644 --- a/src/test/compile-fail/issue-17780.rs +++ b/src/test/compile-fail/borrow-immutable-upvar-mutation.rs @@ -10,41 +10,32 @@ #![feature(unboxed_closures, overloaded_calls)] +// Tests that we can't assign to or mutably borrow upvars from `Fn` +// closures (issue #17780) + fn set(x: &mut uint) { *x = 5; } fn main() { // By-ref captures { let mut x = 0u; - let _f = |&:| x = 42; - //~^ ERROR cannot assign to data in a free - // variable from an immutable unboxed closure + let _f = |&:| x = 42; //~ ERROR cannot assign let mut y = 0u; - let _g = |&:| set(&mut y); - //~^ ERROR cannot borrow data mutably in a free - // variable from an immutable unboxed closure + let _g = |&:| set(&mut y); //~ ERROR cannot borrow let mut z = 0u; - let _h = |&mut:| { set(&mut z); |&:| z = 42; }; - //~^ ERROR cannot assign to data in a - // free variable from an immutable unboxed closure + let _h = |&mut:| { set(&mut z); |&:| z = 42; }; //~ ERROR cannot assign } // By-value captures { let mut x = 0u; - let _f = move |&:| x = 42; - //~^ ERROR cannot assign to data in a free - // variable from an immutable unboxed closure + let _f = move |&:| x = 42; //~ ERROR cannot assign let mut y = 0u; - let _g = move |&:| set(&mut y); - //~^ ERROR cannot borrow data mutably in a free - // variable from an immutable unboxed closure + let _g = move |&:| set(&mut y); //~ ERROR cannot borrow let mut z = 0u; - let _h = move |&mut:| { set(&mut z); move |&:| z = 42; }; - //~^ ERROR cannot assign to data in a free - // variable from an immutable unboxed closure + let _h = move |&mut:| { set(&mut z); move |&:| z = 42; }; //~ ERROR cannot assign } }