diff --git a/src/librustpkg/tests.rs b/src/librustpkg/tests.rs index 8df84b27fccf4..b8cce8055d3ec 100644 --- a/src/librustpkg/tests.rs +++ b/src/librustpkg/tests.rs @@ -280,7 +280,7 @@ fn test_package_version() { // FIXME #7006: Fails on linux for some reason #[test] -#[ignore(cfg(target_os = "linux"))] +#[ignore] fn test_package_request_version() { let temp_pkg_id = PkgId::new("github.com/catamorphism/test_pkg_version#0.3"); let temp = mk_empty_workspace(&LocalPath(Path("test_pkg_version")), &ExactRevision(~"0.3")); diff --git a/src/libstd/unstable/finally.rs b/src/libstd/unstable/finally.rs index 5001fb421cd86..b15bceddb1c21 100644 --- a/src/libstd/unstable/finally.rs +++ b/src/libstd/unstable/finally.rs @@ -31,17 +31,20 @@ pub trait Finally { fn finally(&self, dtor: &fn()) -> T; } -impl<'self,T> Finally for &'self fn() -> T { - fn finally(&self, dtor: &fn()) -> T { - let _d = Finallyalizer { - dtor: dtor - }; - - (*self)() +macro_rules! finally_fn { + ($fnty:ty) => { + impl Finally for $fnty { + fn finally(&self, dtor: &fn()) -> T { + let _d = Finallyalizer { + dtor: dtor + }; + (*self)() + } + } } } -impl Finally for ~fn() -> T { +impl<'self,T> Finally for &'self fn() -> T { fn finally(&self, dtor: &fn()) -> T { let _d = Finallyalizer { dtor: dtor @@ -51,15 +54,9 @@ impl Finally for ~fn() -> T { } } -impl Finally for @fn() -> T { - fn finally(&self, dtor: &fn()) -> T { - let _d = Finallyalizer { - dtor: dtor - }; - - (*self)() - } -} +finally_fn!(~fn() -> T) +finally_fn!(@fn() -> T) +finally_fn!(extern "Rust" fn() -> T) struct Finallyalizer<'self> { dtor: &'self fn() @@ -108,10 +105,7 @@ fn test_retval() { #[test] fn test_compact() { - // FIXME #4727: Should be able to use a fn item instead - // of a closure for do_some_fallible_work, - // but it's a type error. - let do_some_fallible_work: &fn() = || { }; + fn do_some_fallible_work() {} fn but_always_run_this_function() { } do_some_fallible_work.finally( but_always_run_this_function); @@ -136,4 +130,4 @@ fn test_managed() { }; assert_eq!(do managed.finally {}, 10); assert_eq!(*i, 20); -} \ No newline at end of file +}