diff options
| author | ljedrz <ljedrz@gmail.com> | 2018-07-11 13:58:27 +0200 |
|---|---|---|
| committer | ljedrz <ljedrz@gmail.com> | 2018-07-11 13:58:27 +0200 |
| commit | ff65bbe96a4ef301673eb5934649019991dbef0a (patch) | |
| tree | 79dee8b71096ac7633ff28640fb042cde062192f /src | |
| parent | ae5b629efd79de78e6ba7ef493c32857bd7f9cf9 (diff) | |
| download | rust-ff65bbe96a4ef301673eb5934649019991dbef0a.tar.gz rust-ff65bbe96a4ef301673eb5934649019991dbef0a.zip | |
Deny bare trait objects in in src/librustc_data_structures
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_data_structures/lib.rs | 2 | ||||
| -rw-r--r-- | src/librustc_data_structures/owning_ref/mod.rs | 24 | ||||
| -rw-r--r-- | src/librustc_data_structures/sync.rs | 2 |
3 files changed, 15 insertions, 13 deletions
diff --git a/src/librustc_data_structures/lib.rs b/src/librustc_data_structures/lib.rs index e4d0bc596cb..2cca31f70a0 100644 --- a/src/librustc_data_structures/lib.rs +++ b/src/librustc_data_structures/lib.rs @@ -16,6 +16,8 @@ //! //! This API is completely unstable and subject to change. +#![deny(bare_trait_objects)] + #![doc(html_logo_url = "https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png", html_favicon_url = "https://www.rust-lang.org/favicon.ico", html_root_url = "https://doc.rust-lang.org/nightly/")] diff --git a/src/librustc_data_structures/owning_ref/mod.rs b/src/librustc_data_structures/owning_ref/mod.rs index aa113fac9fb..7bd297b1551 100644 --- a/src/librustc_data_structures/owning_ref/mod.rs +++ b/src/librustc_data_structures/owning_ref/mod.rs @@ -1046,7 +1046,7 @@ unsafe impl<O, T: ?Sized> Send for OwningRefMut<O, T> unsafe impl<O, T: ?Sized> Sync for OwningRefMut<O, T> where O: Sync, for<'a> (&'a mut T): Sync {} -impl Debug for Erased { +impl Debug for dyn Erased { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "<Erased>",) } @@ -1166,35 +1166,35 @@ pub type MutexGuardRefMut<'a, T, U = T> = OwningRefMut<MutexGuard<'a, T>, U>; pub type RwLockWriteGuardRefMut<'a, T, U = T> = OwningRef<RwLockWriteGuard<'a, T>, U>; unsafe impl<'a, T: 'a> IntoErased<'a> for Box<T> { - type Erased = Box<Erased + 'a>; + type Erased = Box<dyn Erased + 'a>; fn into_erased(self) -> Self::Erased { self } } unsafe impl<'a, T: 'a> IntoErased<'a> for Rc<T> { - type Erased = Rc<Erased + 'a>; + type Erased = Rc<dyn Erased + 'a>; fn into_erased(self) -> Self::Erased { self } } unsafe impl<'a, T: 'a> IntoErased<'a> for Arc<T> { - type Erased = Arc<Erased + 'a>; + type Erased = Arc<dyn Erased + 'a>; fn into_erased(self) -> Self::Erased { self } } unsafe impl<'a, T: Send + 'a> IntoErasedSend<'a> for Box<T> { - type Erased = Box<Erased + Send + 'a>; + type Erased = Box<dyn Erased + Send + 'a>; fn into_erased_send(self) -> Self::Erased { self } } unsafe impl<'a, T: Send + 'a> IntoErasedSendSync<'a> for Box<T> { - type Erased = Box<Erased + Sync + Send + 'a>; + type Erased = Box<dyn Erased + Sync + Send + 'a>; fn into_erased_send_sync(self) -> Self::Erased { - let result: Box<Erased + Send + 'a> = self; + let result: Box<dyn Erased + Send + 'a> = self; // This is safe since Erased can always implement Sync // Only the destructor is available and it takes &mut self unsafe { @@ -1204,21 +1204,21 @@ unsafe impl<'a, T: Send + 'a> IntoErasedSendSync<'a> for Box<T> { } unsafe impl<'a, T: Send + Sync + 'a> IntoErasedSendSync<'a> for Arc<T> { - type Erased = Arc<Erased + Send + Sync + 'a>; + type Erased = Arc<dyn Erased + Send + Sync + 'a>; fn into_erased_send_sync(self) -> Self::Erased { self } } /// Typedef of a owning reference that uses an erased `Box` as the owner. -pub type ErasedBoxRef<U> = OwningRef<Box<Erased>, U>; +pub type ErasedBoxRef<U> = OwningRef<Box<dyn Erased>, U>; /// Typedef of a owning reference that uses an erased `Rc` as the owner. -pub type ErasedRcRef<U> = OwningRef<Rc<Erased>, U>; +pub type ErasedRcRef<U> = OwningRef<Rc<dyn Erased>, U>; /// Typedef of a owning reference that uses an erased `Arc` as the owner. -pub type ErasedArcRef<U> = OwningRef<Arc<Erased>, U>; +pub type ErasedArcRef<U> = OwningRef<Arc<dyn Erased>, U>; /// Typedef of a mutable owning reference that uses an erased `Box` as the owner. -pub type ErasedBoxRefMut<U> = OwningRefMut<Box<Erased>, U>; +pub type ErasedBoxRefMut<U> = OwningRefMut<Box<dyn Erased>, U>; #[cfg(test)] mod tests { diff --git a/src/librustc_data_structures/sync.rs b/src/librustc_data_structures/sync.rs index b82fe3ec60c..7668225627f 100644 --- a/src/librustc_data_structures/sync.rs +++ b/src/librustc_data_structures/sync.rs @@ -88,7 +88,7 @@ cfg_if! { t.into_iter() } - pub type MetadataRef = OwningRef<Box<Erased>, [u8]>; + pub type MetadataRef = OwningRef<Box<dyn Erased>, [u8]>; pub use std::rc::Rc as Lrc; pub use std::rc::Weak as Weak; |
