1
Fork 0

Make Weak::new const

This commit is contained in:
CAD97 2022-03-15 23:58:18 -05:00
parent af446e1d70
commit a358ad2aff
2 changed files with 6 additions and 4 deletions

View file

@ -2112,9 +2112,10 @@ impl<T> Weak<T> {
/// assert!(empty.upgrade().is_none()); /// assert!(empty.upgrade().is_none());
/// ``` /// ```
#[stable(feature = "downgraded_weak", since = "1.10.0")] #[stable(feature = "downgraded_weak", since = "1.10.0")]
#[rustc_const_unstable(feature = "const_weak_new", issue = "95091", reason = "recently added")]
#[must_use] #[must_use]
pub fn new() -> Weak<T> { pub const fn new() -> Weak<T> {
Weak { ptr: NonNull::new(usize::MAX as *mut RcBox<T>).expect("MAX is not 0") } Weak { ptr: unsafe { NonNull::new_unchecked(usize::MAX as *mut RcBox<T>) } }
} }
} }

View file

@ -1742,9 +1742,10 @@ impl<T> Weak<T> {
/// assert!(empty.upgrade().is_none()); /// assert!(empty.upgrade().is_none());
/// ``` /// ```
#[stable(feature = "downgraded_weak", since = "1.10.0")] #[stable(feature = "downgraded_weak", since = "1.10.0")]
#[rustc_const_unstable(feature = "const_weak_new", issue = "95091", reason = "recently added")]
#[must_use] #[must_use]
pub fn new() -> Weak<T> { pub const fn new() -> Weak<T> {
Weak { ptr: NonNull::new(usize::MAX as *mut ArcInner<T>).expect("MAX is not 0") } Weak { ptr: unsafe { NonNull::new_unchecked(usize::MAX as *mut ArcInner<T>) } }
} }
} }