From b4ecbe93401a56181baaffc4ff7e275aeecc5182 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Mon, 21 Apr 2014 22:28:21 -0700 Subject: std: Change Finally to take `&mut self` As with the previous commits, the Finally trait is primarily implemented for closures, so the trait was modified from `&self` to `&mut self`. This will require that any closure variable invoked with `finally` to be stored in a mutable slot. [breaking-change] --- src/libstd/unstable/finally.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/libstd/unstable') diff --git a/src/libstd/unstable/finally.rs b/src/libstd/unstable/finally.rs index c98ef880c10..96e52a4818e 100644 --- a/src/libstd/unstable/finally.rs +++ b/src/libstd/unstable/finally.rs @@ -35,19 +35,19 @@ use ops::Drop; #[cfg(test)] use task::failing; pub trait Finally { - fn finally(&self, dtor: ||) -> T; + fn finally(&mut self, dtor: ||) -> T; } impl<'a,T> Finally for ||: 'a -> T { - fn finally(&self, dtor: ||) -> T { - try_finally(&mut (), (), - |_, _| (*self)(), + fn finally(&mut self, dtor: ||) -> T { + try_finally(&mut (), self, + |_, f| (*f)(), |_| dtor()) } } impl Finally for fn() -> T { - fn finally(&self, dtor: ||) -> T { + fn finally(&mut self, dtor: ||) -> T { try_finally(&mut (), (), |_, _| (*self)(), |_| dtor()) -- cgit 1.4.1-3-g733a5