diff options
| author | ljedrz <ljedrz@gmail.com> | 2018-07-11 10:19:54 +0200 |
|---|---|---|
| committer | ljedrz <ljedrz@gmail.com> | 2018-07-11 10:19:54 +0200 |
| commit | 217f8fbd4512ebe94fb021ee564ea6c6dae6a919 (patch) | |
| tree | 3287c0e80c7f60c13d56be5b2212e15de863c632 /src/liballoc | |
| parent | cd44b3ddaddf22ef3c3b00f31491c660b851f8ee (diff) | |
| download | rust-217f8fbd4512ebe94fb021ee564ea6c6dae6a919.tar.gz rust-217f8fbd4512ebe94fb021ee564ea6c6dae6a919.zip | |
Revert borked changes in last commit.
Diffstat (limited to 'src/liballoc')
| -rw-r--r-- | src/liballoc/boxed.rs | 18 | ||||
| -rw-r--r-- | src/liballoc/lib.rs | 1 | ||||
| -rw-r--r-- | src/liballoc/rc.rs | 4 | ||||
| -rw-r--r-- | src/liballoc/sync.rs | 6 |
4 files changed, 15 insertions, 14 deletions
diff --git a/src/liballoc/boxed.rs b/src/liballoc/boxed.rs index fb16bdf0ab4..44f15981137 100644 --- a/src/liballoc/boxed.rs +++ b/src/liballoc/boxed.rs @@ -446,7 +446,7 @@ impl From<Box<str>> for Box<[u8]> { } } -impl Box<Any> { +impl Box<dyn Any> { #[inline] #[stable(feature = "rust1", since = "1.0.0")] /// Attempt to downcast the box to a concrete type. @@ -468,10 +468,10 @@ impl Box<Any> { /// print_if_string(Box::new(0i8)); /// } /// ``` - pub fn downcast<T: Any>(self) -> Result<Box<T>, Box<Any>> { + pub fn downcast<T: Any>(self) -> Result<Box<T>, Box<dyn Any>> { if self.is::<T>() { unsafe { - let raw: *mut Any = Box::into_raw(self); + let raw: *mut dyn Any = Box::into_raw(self); Ok(Box::from_raw(raw as *mut T)) } } else { @@ -480,7 +480,7 @@ impl Box<Any> { } } -impl Box<Any + Send> { +impl Box<dyn Any + Send> { #[inline] #[stable(feature = "rust1", since = "1.0.0")] /// Attempt to downcast the box to a concrete type. @@ -502,10 +502,10 @@ impl Box<Any + Send> { /// print_if_string(Box::new(0i8)); /// } /// ``` - pub fn downcast<T: Any>(self) -> Result<Box<T>, Box<Any + Send>> { - <Box<Any>>::downcast(self).map_err(|s| unsafe { + pub fn downcast<T: Any>(self) -> Result<Box<T>, Box<dyn Any + Send>> { + <Box<dyn Any>>::downcast(self).map_err(|s| unsafe { // reapply the Send marker - Box::from_raw(Box::into_raw(s) as *mut (Any + Send)) + Box::from_raw(Box::into_raw(s) as *mut (dyn Any + Send)) }) } } @@ -643,7 +643,7 @@ impl<A, F> FnBox<A> for F #[unstable(feature = "fnbox", reason = "will be deprecated if and when `Box<FnOnce>` becomes usable", issue = "28796")] -impl<'a, A, R> FnOnce<A> for Box<FnBox<A, Output = R> + 'a> { +impl<'a, A, R> FnOnce<A> for Box<dyn FnBox<A, Output = R> + 'a> { type Output = R; extern "rust-call" fn call_once(self, args: A) -> R { @@ -653,7 +653,7 @@ impl<'a, A, R> FnOnce<A> for Box<FnBox<A, Output = R> + 'a> { #[unstable(feature = "fnbox", reason = "will be deprecated if and when `Box<FnOnce>` becomes usable", issue = "28796")] -impl<'a, A, R> FnOnce<A> for Box<FnBox<A, Output = R> + Send + 'a> { +impl<'a, A, R> FnOnce<A> for Box<dyn FnBox<A, Output = R> + Send + 'a> { type Output = R; extern "rust-call" fn call_once(self, args: A) -> R { diff --git a/src/liballoc/lib.rs b/src/liballoc/lib.rs index ef619527e06..63cf01a0fac 100644 --- a/src/liballoc/lib.rs +++ b/src/liballoc/lib.rs @@ -72,6 +72,7 @@ test(no_crate_inject, attr(allow(unused_variables), deny(warnings))))] #![no_std] #![needs_allocator] +#![deny(bare_trait_objects)] #![deny(missing_debug_implementations)] #![cfg_attr(test, allow(deprecated))] // rand diff --git a/src/liballoc/rc.rs b/src/liballoc/rc.rs index 3643f78d323..d76acb28df9 100644 --- a/src/liballoc/rc.rs +++ b/src/liballoc/rc.rs @@ -618,7 +618,7 @@ impl<T: Clone> Rc<T> { } } -impl Rc<Any> { +impl Rc<dyn Any> { #[inline] #[stable(feature = "rc_downcast", since = "1.29.0")] /// Attempt to downcast the `Rc<Any>` to a concrete type. @@ -641,7 +641,7 @@ impl Rc<Any> { /// print_if_string(Rc::new(0i8)); /// } /// ``` - pub fn downcast<T: Any>(self) -> Result<Rc<T>, Rc<Any>> { + pub fn downcast<T: Any>(self) -> Result<Rc<T>, Rc<dyn Any>> { if (*self).is::<T>() { let ptr = self.ptr.cast::<RcBox<T>>(); forget(self); diff --git a/src/liballoc/sync.rs b/src/liballoc/sync.rs index 35aae191683..5def0237e7e 100644 --- a/src/liballoc/sync.rs +++ b/src/liballoc/sync.rs @@ -978,10 +978,10 @@ unsafe impl<#[may_dangle] T: ?Sized> Drop for Arc<T> { } } -impl Arc<Any + Send + Sync> { +impl Arc<dyn Any + Send + Sync> { #[inline] #[stable(feature = "rc_downcast", since = "1.29.0")] - /// Attempt to downcast the `Arc<Any + Send + Sync>` to a concrete type. + /// Attempt to downcast the `Arc<dyn Any + Send + Sync>` to a concrete type. /// /// # Examples /// @@ -989,7 +989,7 @@ impl Arc<Any + Send + Sync> { /// use std::any::Any; /// use std::sync::Arc; /// - /// fn print_if_string(value: Arc<Any + Send + Sync>) { + /// fn print_if_string(value: Arc<dyn Any + Send + Sync>) { /// if let Ok(string) = value.downcast::<String>() { /// println!("String ({}): {}", string.len(), string); /// } |
