diff --git a/src/liballoc/arc.rs b/src/liballoc/arc.rs index 09a4f9e0a62..8af4cee9095 100644 --- a/src/liballoc/arc.rs +++ b/src/liballoc/arc.rs @@ -137,7 +137,8 @@ impl, U: ?Sized> CoerceUnsized> for Arc {} /// used to break cycles between `Arc` pointers. #[unsafe_no_drop_flag] #[unstable(feature = "arc_weak", - reason = "Weak pointers may not belong in this module.")] + reason = "Weak pointers may not belong in this module.", + issue = "27718")] pub struct Weak { // FIXME #12808: strange name to try to avoid interfering with // field accesses of the contained type via Deref @@ -209,7 +210,8 @@ impl Arc { /// let weak_five = five.downgrade(); /// ``` #[unstable(feature = "arc_weak", - reason = "Weak pointers may not belong in this module.")] + reason = "Weak pointers may not belong in this module.", + issue = "27718")] pub fn downgrade(&self) -> Weak { loop { // This Relaxed is OK because we're checking the value in the CAS @@ -234,14 +236,14 @@ impl Arc { /// Get the number of weak references to this value. #[inline] - #[unstable(feature = "arc_counts")] + #[unstable(feature = "arc_counts", issue = "27718")] pub fn weak_count(this: &Arc) -> usize { this.inner().weak.load(SeqCst) - 1 } /// Get the number of strong references to this value. #[inline] - #[unstable(feature = "arc_counts")] + #[unstable(feature = "arc_counts", issue = "27718")] pub fn strong_count(this: &Arc) -> usize { this.inner().strong.load(SeqCst) } @@ -349,7 +351,7 @@ impl Arc { /// let mut_five = Arc::make_unique(&mut five); /// ``` #[inline] - #[unstable(feature = "arc_unique")] + #[unstable(feature = "arc_unique", issue = "27718")] pub fn make_unique(this: &mut Arc) -> &mut T { // Note that we hold both a strong reference and a weak reference. // Thus, releasing our strong reference only will not, by itself, cause @@ -427,7 +429,7 @@ impl Arc { /// # } /// ``` #[inline] - #[unstable(feature = "arc_unique")] + #[unstable(feature = "arc_unique", issue = "27718")] pub fn get_mut(this: &mut Arc) -> Option<&mut T> { if this.is_unique() { // This unsafety is ok because we're guaranteed that the pointer @@ -541,7 +543,8 @@ impl Drop for Arc { } #[unstable(feature = "arc_weak", - reason = "Weak pointers may not belong in this module.")] + reason = "Weak pointers may not belong in this module.", + issue = "27718")] impl Weak { /// Upgrades a weak reference to a strong reference. /// @@ -589,7 +592,8 @@ impl Weak { } #[unstable(feature = "arc_weak", - reason = "Weak pointers may not belong in this module.")] + reason = "Weak pointers may not belong in this module.", + issue = "27718")] impl Clone for Weak { /// Makes a clone of the `Weak`. /// diff --git a/src/liballoc/boxed.rs b/src/liballoc/boxed.rs index 8d357eb49a9..e3019f952fe 100644 --- a/src/liballoc/boxed.rs +++ b/src/liballoc/boxed.rs @@ -85,13 +85,15 @@ use core::raw::{TraitObject}; /// ``` #[lang = "exchange_heap"] #[unstable(feature = "box_heap", - reason = "may be renamed; uncertain about custom allocator design")] + reason = "may be renamed; uncertain about custom allocator design", + issue = "27779")] pub const HEAP: ExchangeHeapSingleton = ExchangeHeapSingleton { _force_singleton: () }; /// This the singleton type used solely for `boxed::HEAP`. #[unstable(feature = "box_heap", - reason = "may be renamed; uncertain about custom allocator design")] + reason = "may be renamed; uncertain about custom allocator design", + issue = "27779")] #[derive(Copy, Clone)] pub struct ExchangeHeapSingleton { _force_singleton: () } @@ -121,7 +123,9 @@ pub struct Box(Unique); /// the fact that the `align_of` intrinsic currently requires the /// input type to be Sized (which I do not think is strictly /// necessary). -#[unstable(feature = "placement_in", reason = "placement box design is still being worked out.")] +#[unstable(feature = "placement_in", + reason = "placement box design is still being worked out.", + issue = "27779")] pub struct IntermediateBox{ ptr: *mut u8, size: usize, @@ -222,7 +226,8 @@ impl Box { /// lead to memory problems like double-free, for example if the /// function is called twice on the same raw pointer. #[unstable(feature = "box_raw", - reason = "may be renamed or moved out of Box scope")] + reason = "may be renamed or moved out of Box scope", + issue = "27768")] #[inline] // NB: may want to be called from_ptr, see comments on CStr::from_ptr pub unsafe fn from_raw(raw: *mut T) -> Self { @@ -245,7 +250,8 @@ impl Box { /// let raw = Box::into_raw(seventeen); /// let boxed_again = unsafe { Box::from_raw(raw) }; /// ``` - #[unstable(feature = "box_raw", reason = "may be renamed")] + #[unstable(feature = "box_raw", reason = "may be renamed", + issue = "27768")] #[inline] // NB: may want to be called into_ptr, see comments on CStr::from_ptr pub fn into_raw(b: Box) -> *mut T { @@ -470,7 +476,7 @@ impl ExactSizeIterator for Box {} /// } /// ``` #[rustc_paren_sugar] -#[unstable(feature = "fnbox", reason = "Newly introduced")] +#[unstable(feature = "fnbox", reason = "Newly introduced", issue = "0")] pub trait FnBox { type Output; diff --git a/src/liballoc/heap.rs b/src/liballoc/heap.rs index fad8308f0f4..10cb84d1da1 100644 --- a/src/liballoc/heap.rs +++ b/src/liballoc/heap.rs @@ -12,7 +12,8 @@ reason = "the precise API and guarantees it provides may be tweaked \ slightly, especially to possibly take into account the \ types being stored to make room for a future \ - tracing garbage collector")] + tracing garbage collector", + issue = "27700")] use core::{isize, usize}; diff --git a/src/liballoc/lib.rs b/src/liballoc/lib.rs index 2db9cc7c4d8..630993d8291 100644 --- a/src/liballoc/lib.rs +++ b/src/liballoc/lib.rs @@ -64,7 +64,8 @@ #![allow(unused_attributes)] #![unstable(feature = "alloc", reason = "this library is unlikely to be stabilized in its current \ - form or name")] + form or name", + issue = "27783")] #![doc(html_logo_url = "https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png", html_favicon_url = "https://doc.rust-lang.org/favicon.ico", html_root_url = "https://doc.rust-lang.org/nightly/", @@ -131,7 +132,8 @@ pub mod raw_vec; /// Common out-of-memory routine #[cold] #[inline(never)] -#[unstable(feature = "oom", reason = "not a scrutinized interface")] +#[unstable(feature = "oom", reason = "not a scrutinized interface", + issue = "27700")] pub fn oom() -> ! { // FIXME(#14674): This really needs to do something other than just abort // here, but any printing done must be *guaranteed* to not diff --git a/src/liballoc/rc.rs b/src/liballoc/rc.rs index b750e051f28..c2d7febf98e 100644 --- a/src/liballoc/rc.rs +++ b/src/liballoc/rc.rs @@ -238,7 +238,7 @@ impl Rc { /// assert_eq!(Rc::try_unwrap(x), Err(Rc::new(4))); /// ``` #[inline] - #[unstable(feature = "rc_unique")] + #[unstable(feature = "rc_unique", issue = "27718")] pub fn try_unwrap(rc: Rc) -> Result> { if Rc::is_unique(&rc) { unsafe { @@ -271,7 +271,8 @@ impl Rc { /// let weak_five = five.downgrade(); /// ``` #[unstable(feature = "rc_weak", - reason = "Weak pointers may not belong in this module")] + reason = "Weak pointers may not belong in this module", + issue = "27718")] pub fn downgrade(&self) -> Weak { self.inc_weak(); Weak { _ptr: self._ptr } @@ -279,12 +280,12 @@ impl Rc { /// Get the number of weak references to this value. #[inline] - #[unstable(feature = "rc_counts")] + #[unstable(feature = "rc_counts", issue = "27718")] pub fn weak_count(this: &Rc) -> usize { this.weak() - 1 } /// Get the number of strong references to this value. #[inline] - #[unstable(feature = "rc_counts")] + #[unstable(feature = "rc_counts", issue= "27718")] pub fn strong_count(this: &Rc) -> usize { this.strong() } /// Returns true if there are no other `Rc` or `Weak` values that share @@ -302,7 +303,7 @@ impl Rc { /// assert!(Rc::is_unique(&five)); /// ``` #[inline] - #[unstable(feature = "rc_unique")] + #[unstable(feature = "rc_unique", issue = "27718")] pub fn is_unique(rc: &Rc) -> bool { Rc::weak_count(rc) == 0 && Rc::strong_count(rc) == 1 } @@ -327,7 +328,7 @@ impl Rc { /// assert!(Rc::get_mut(&mut x).is_none()); /// ``` #[inline] - #[unstable(feature = "rc_unique")] + #[unstable(feature = "rc_unique", issue = "27718")] pub fn get_mut(rc: &mut Rc) -> Option<&mut T> { if Rc::is_unique(rc) { let inner = unsafe { &mut **rc._ptr }; @@ -356,7 +357,7 @@ impl Rc { /// let mut_five = five.make_unique(); /// ``` #[inline] - #[unstable(feature = "rc_unique")] + #[unstable(feature = "rc_unique", issue = "27718")] pub fn make_unique(&mut self) -> &mut T { if !Rc::is_unique(self) { *self = Rc::new((**self).clone()) @@ -653,7 +654,8 @@ impl fmt::Pointer for Rc { /// See the [module level documentation](./index.html) for more. #[unsafe_no_drop_flag] #[unstable(feature = "rc_weak", - reason = "Weak pointers may not belong in this module.")] + reason = "Weak pointers may not belong in this module.", + issue = "27718")] pub struct Weak { // FIXME #12808: strange names to try to avoid interfering with // field accesses of the contained type via Deref @@ -666,7 +668,8 @@ impl !marker::Sync for Weak {} impl, U: ?Sized> CoerceUnsized> for Weak {} #[unstable(feature = "rc_weak", - reason = "Weak pointers may not belong in this module.")] + reason = "Weak pointers may not belong in this module.", + issue = "27718")] impl Weak { /// Upgrades a weak reference to a strong reference. @@ -746,7 +749,8 @@ impl Drop for Weak { } #[unstable(feature = "rc_weak", - reason = "Weak pointers may not belong in this module.")] + reason = "Weak pointers may not belong in this module.", + issue = "27718")] impl Clone for Weak { /// Makes a clone of the `Weak`.