diff options
| author | bors <bors@rust-lang.org> | 2017-01-10 14:08:21 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-01-10 14:08:21 +0000 |
| commit | 7bffede97cf58f7159e261eac592f9cf88ce209d (patch) | |
| tree | ffa2c2c7fbc25c4c6e6684d28f98331c78e2779d /src/liballoc | |
| parent | 78c892d8659ae1cf1717b9a8a4bb407d8667f672 (diff) | |
| parent | db74f11f78e13fe2bbfb4e284c832d520fa5cf87 (diff) | |
| download | rust-7bffede97cf58f7159e261eac592f9cf88ce209d.tar.gz rust-7bffede97cf58f7159e261eac592f9cf88ce209d.zip | |
Auto merge of #38958 - sanxiyn:rollup, r=sanxiyn
Rollup of 11 pull requests - Successful merges: #38606, #38607, #38623, #38664, #38799, #38816, #38836, #38839, #38841, #38849, #38874 - Failed merges: #38845
Diffstat (limited to 'src/liballoc')
| -rw-r--r-- | src/liballoc/arc.rs | 3 | ||||
| -rw-r--r-- | src/liballoc/lib.rs | 3 | ||||
| -rw-r--r-- | src/liballoc/raw_vec.rs | 3 | ||||
| -rw-r--r-- | src/liballoc/rc.rs | 3 |
4 files changed, 5 insertions, 7 deletions
diff --git a/src/liballoc/arc.rs b/src/liballoc/arc.rs index e1a240a0d2e..459dc94f336 100644 --- a/src/liballoc/arc.rs +++ b/src/liballoc/arc.rs @@ -708,7 +708,7 @@ impl<T: ?Sized> Arc<T> { } #[stable(feature = "rust1", since = "1.0.0")] -impl<T: ?Sized> Drop for Arc<T> { +unsafe impl<#[may_dangle] T: ?Sized> Drop for Arc<T> { /// Drops the `Arc`. /// /// This will decrement the strong reference count. If the strong reference @@ -736,7 +736,6 @@ impl<T: ?Sized> Drop for Arc<T> { /// drop(foo); // Doesn't print anything /// drop(foo2); // Prints "dropped!" /// ``` - #[unsafe_destructor_blind_to_params] #[inline] fn drop(&mut self) { // Because `fetch_sub` is already atomic, we do not need to synchronize diff --git a/src/liballoc/lib.rs b/src/liballoc/lib.rs index 9ca9f93f3d3..c67106cf57a 100644 --- a/src/liballoc/lib.rs +++ b/src/liballoc/lib.rs @@ -79,9 +79,10 @@ #![feature(const_fn)] #![feature(core_intrinsics)] #![feature(custom_attribute)] -#![feature(dropck_parametricity)] +#![feature(dropck_eyepatch)] #![cfg_attr(not(test), feature(exact_size_is_empty))] #![feature(fundamental)] +#![feature(generic_param_attrs)] #![feature(lang_items)] #![feature(needs_allocator)] #![feature(optin_builtin_traits)] diff --git a/src/liballoc/raw_vec.rs b/src/liballoc/raw_vec.rs index f23ea0ea8bf..357a2724e00 100644 --- a/src/liballoc/raw_vec.rs +++ b/src/liballoc/raw_vec.rs @@ -539,8 +539,7 @@ impl<T> RawVec<T> { } } -impl<T> Drop for RawVec<T> { - #[unsafe_destructor_blind_to_params] +unsafe impl<#[may_dangle] T> Drop for RawVec<T> { /// Frees the memory owned by the RawVec *without* trying to Drop its contents. fn drop(&mut self) { let elem_size = mem::size_of::<T>(); diff --git a/src/liballoc/rc.rs b/src/liballoc/rc.rs index 86f8c746646..010e378ef2f 100644 --- a/src/liballoc/rc.rs +++ b/src/liballoc/rc.rs @@ -644,7 +644,7 @@ impl<T: ?Sized> Deref for Rc<T> { } #[stable(feature = "rust1", since = "1.0.0")] -impl<T: ?Sized> Drop for Rc<T> { +unsafe impl<#[may_dangle] T: ?Sized> Drop for Rc<T> { /// Drops the `Rc`. /// /// This will decrement the strong reference count. If the strong reference @@ -672,7 +672,6 @@ impl<T: ?Sized> Drop for Rc<T> { /// drop(foo); // Doesn't print anything /// drop(foo2); // Prints "dropped!" /// ``` - #[unsafe_destructor_blind_to_params] fn drop(&mut self) { unsafe { let ptr = *self.ptr; |
