Update library functions with stability attributes
This may not be strictly minimal, but all unstable functions also need a `rustc_const_unstable` attribute.
This commit is contained in:
parent
3dd28c78c3
commit
110e59e70e
13 changed files with 22 additions and 0 deletions
|
@ -217,6 +217,7 @@ impl<B: ?Sized + ToOwned> Cow<'_, B> {
|
||||||
/// assert!(!bull.is_borrowed());
|
/// assert!(!bull.is_borrowed());
|
||||||
/// ```
|
/// ```
|
||||||
#[unstable(feature = "cow_is_borrowed", issue = "65143")]
|
#[unstable(feature = "cow_is_borrowed", issue = "65143")]
|
||||||
|
#[rustc_const_unstable(feature = "const_cow_is_borrowed", issue = "65143")]
|
||||||
pub const fn is_borrowed(&self) -> bool {
|
pub const fn is_borrowed(&self) -> bool {
|
||||||
match *self {
|
match *self {
|
||||||
Borrowed(_) => true,
|
Borrowed(_) => true,
|
||||||
|
@ -239,6 +240,7 @@ impl<B: ?Sized + ToOwned> Cow<'_, B> {
|
||||||
/// assert!(!bull.is_owned());
|
/// assert!(!bull.is_owned());
|
||||||
/// ```
|
/// ```
|
||||||
#[unstable(feature = "cow_is_borrowed", issue = "65143")]
|
#[unstable(feature = "cow_is_borrowed", issue = "65143")]
|
||||||
|
#[rustc_const_unstable(feature = "const_cow_is_borrowed", issue = "65143")]
|
||||||
pub const fn is_owned(&self) -> bool {
|
pub const fn is_owned(&self) -> bool {
|
||||||
!self.is_borrowed()
|
!self.is_borrowed()
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,9 +86,11 @@
|
||||||
#![feature(cfg_target_has_atomic)]
|
#![feature(cfg_target_has_atomic)]
|
||||||
#![feature(coerce_unsized)]
|
#![feature(coerce_unsized)]
|
||||||
#![feature(const_btree_new)]
|
#![feature(const_btree_new)]
|
||||||
|
#![feature(const_fn)]
|
||||||
#![feature(const_generics)]
|
#![feature(const_generics)]
|
||||||
#![feature(const_in_array_repeat_expressions)]
|
#![feature(const_in_array_repeat_expressions)]
|
||||||
#![feature(cow_is_borrowed)]
|
#![feature(cow_is_borrowed)]
|
||||||
|
#![feature(const_cow_is_borrowed)]
|
||||||
#![feature(dispatch_from_dyn)]
|
#![feature(dispatch_from_dyn)]
|
||||||
#![feature(core_intrinsics)]
|
#![feature(core_intrinsics)]
|
||||||
#![feature(dropck_eyepatch)]
|
#![feature(dropck_eyepatch)]
|
||||||
|
|
|
@ -150,6 +150,7 @@ impl<T> RawVec<T, Global> {
|
||||||
impl<T, A: AllocRef> RawVec<T, A> {
|
impl<T, A: AllocRef> RawVec<T, A> {
|
||||||
/// Like `new`, but parameterized over the choice of allocator for
|
/// Like `new`, but parameterized over the choice of allocator for
|
||||||
/// the returned `RawVec`.
|
/// the returned `RawVec`.
|
||||||
|
#[allow_internal_unstable(const_fn)]
|
||||||
pub const fn new_in(alloc: A) -> Self {
|
pub const fn new_in(alloc: A) -> Self {
|
||||||
// `cap: 0` means "unallocated". zero-sized types are ignored.
|
// `cap: 0` means "unallocated". zero-sized types are ignored.
|
||||||
Self { ptr: Unique::dangling(), cap: 0, alloc }
|
Self { ptr: Unique::dangling(), cap: 0, alloc }
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#![feature(allocator_api)]
|
#![feature(allocator_api)]
|
||||||
#![feature(box_syntax)]
|
#![feature(box_syntax)]
|
||||||
#![feature(cow_is_borrowed)]
|
#![feature(cow_is_borrowed)]
|
||||||
|
#![feature(const_cow_is_borrowed)]
|
||||||
#![feature(drain_filter)]
|
#![feature(drain_filter)]
|
||||||
#![feature(exact_size_is_empty)]
|
#![feature(exact_size_is_empty)]
|
||||||
#![feature(new_uninit)]
|
#![feature(new_uninit)]
|
||||||
|
|
|
@ -177,6 +177,7 @@ impl Layout {
|
||||||
/// sentinel value. Types that lazily allocate must track initialization by
|
/// sentinel value. Types that lazily allocate must track initialization by
|
||||||
/// some other means.
|
/// some other means.
|
||||||
#[unstable(feature = "alloc_layout_extra", issue = "55724")]
|
#[unstable(feature = "alloc_layout_extra", issue = "55724")]
|
||||||
|
#[rustc_const_unstable(feature = "alloc_layout_extra", issue = "55724")]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub const fn dangling(&self) -> NonNull<u8> {
|
pub const fn dangling(&self) -> NonNull<u8> {
|
||||||
// SAFETY: align is guaranteed to be non-zero
|
// SAFETY: align is guaranteed to be non-zero
|
||||||
|
|
|
@ -56,6 +56,7 @@ unsafe impl Sync for ResumeTy {}
|
||||||
#[lang = "from_generator"]
|
#[lang = "from_generator"]
|
||||||
#[doc(hidden)]
|
#[doc(hidden)]
|
||||||
#[unstable(feature = "gen_future", issue = "50547")]
|
#[unstable(feature = "gen_future", issue = "50547")]
|
||||||
|
#[rustc_const_unstable(feature = "gen_future", issue = "50547")]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub const fn from_generator<T>(gen: T) -> impl Future<Output = T::Return>
|
pub const fn from_generator<T>(gen: T) -> impl Future<Output = T::Return>
|
||||||
where
|
where
|
||||||
|
|
|
@ -75,11 +75,13 @@
|
||||||
#![feature(const_float_bits_conv)]
|
#![feature(const_float_bits_conv)]
|
||||||
#![feature(const_overflowing_int_methods)]
|
#![feature(const_overflowing_int_methods)]
|
||||||
#![feature(const_int_unchecked_arith)]
|
#![feature(const_int_unchecked_arith)]
|
||||||
|
#![feature(const_mut_refs)]
|
||||||
#![feature(const_int_pow)]
|
#![feature(const_int_pow)]
|
||||||
#![feature(constctlz)]
|
#![feature(constctlz)]
|
||||||
#![feature(const_panic)]
|
#![feature(const_panic)]
|
||||||
#![feature(const_pin)]
|
#![feature(const_pin)]
|
||||||
#![feature(const_fn_union)]
|
#![feature(const_fn_union)]
|
||||||
|
#![feature(const_fn)]
|
||||||
#![feature(const_generics)]
|
#![feature(const_generics)]
|
||||||
#![feature(const_option)]
|
#![feature(const_option)]
|
||||||
#![feature(const_precise_live_drops)]
|
#![feature(const_precise_live_drops)]
|
||||||
|
|
|
@ -401,6 +401,7 @@ fn run_client<A: for<'a, 's> DecodeMut<'a, 's, ()>, R: Encode<()>>(
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Client<fn(crate::TokenStream) -> crate::TokenStream> {
|
impl Client<fn(crate::TokenStream) -> crate::TokenStream> {
|
||||||
|
#[allow_internal_unstable(const_fn)]
|
||||||
pub const fn expand1(f: fn(crate::TokenStream) -> crate::TokenStream) -> Self {
|
pub const fn expand1(f: fn(crate::TokenStream) -> crate::TokenStream) -> Self {
|
||||||
extern "C" fn run(
|
extern "C" fn run(
|
||||||
bridge: Bridge<'_>,
|
bridge: Bridge<'_>,
|
||||||
|
@ -413,6 +414,7 @@ impl Client<fn(crate::TokenStream) -> crate::TokenStream> {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Client<fn(crate::TokenStream, crate::TokenStream) -> crate::TokenStream> {
|
impl Client<fn(crate::TokenStream, crate::TokenStream) -> crate::TokenStream> {
|
||||||
|
#[allow_internal_unstable(const_fn)]
|
||||||
pub const fn expand2(
|
pub const fn expand2(
|
||||||
f: fn(crate::TokenStream, crate::TokenStream) -> crate::TokenStream,
|
f: fn(crate::TokenStream, crate::TokenStream) -> crate::TokenStream,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
|
@ -457,6 +459,7 @@ impl ProcMacro {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow_internal_unstable(const_fn)]
|
||||||
pub const fn custom_derive(
|
pub const fn custom_derive(
|
||||||
trait_name: &'static str,
|
trait_name: &'static str,
|
||||||
attributes: &'static [&'static str],
|
attributes: &'static [&'static str],
|
||||||
|
@ -465,6 +468,7 @@ impl ProcMacro {
|
||||||
ProcMacro::CustomDerive { trait_name, attributes, client: Client::expand1(expand) }
|
ProcMacro::CustomDerive { trait_name, attributes, client: Client::expand1(expand) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow_internal_unstable(const_fn)]
|
||||||
pub const fn attr(
|
pub const fn attr(
|
||||||
name: &'static str,
|
name: &'static str,
|
||||||
expand: fn(crate::TokenStream, crate::TokenStream) -> crate::TokenStream,
|
expand: fn(crate::TokenStream, crate::TokenStream) -> crate::TokenStream,
|
||||||
|
@ -472,6 +476,7 @@ impl ProcMacro {
|
||||||
ProcMacro::Attr { name, client: Client::expand2(expand) }
|
ProcMacro::Attr { name, client: Client::expand2(expand) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow_internal_unstable(const_fn)]
|
||||||
pub const fn bang(
|
pub const fn bang(
|
||||||
name: &'static str,
|
name: &'static str,
|
||||||
expand: fn(crate::TokenStream) -> crate::TokenStream,
|
expand: fn(crate::TokenStream) -> crate::TokenStream,
|
||||||
|
|
|
@ -35,6 +35,7 @@ impl<'a, 'b, T: LambdaL> DerefMut for RefMutL<'a, 'b, T> {
|
||||||
pub struct ScopedCell<T: LambdaL>(Cell<<T as ApplyL<'static>>::Out>);
|
pub struct ScopedCell<T: LambdaL>(Cell<<T as ApplyL<'static>>::Out>);
|
||||||
|
|
||||||
impl<T: LambdaL> ScopedCell<T> {
|
impl<T: LambdaL> ScopedCell<T> {
|
||||||
|
#[allow_internal_unstable(const_fn)]
|
||||||
pub const fn new(value: <T as ApplyL<'static>>::Out) -> Self {
|
pub const fn new(value: <T as ApplyL<'static>>::Out) -> Self {
|
||||||
ScopedCell(Cell::new(value))
|
ScopedCell(Cell::new(value))
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
)]
|
)]
|
||||||
#![feature(nll)]
|
#![feature(nll)]
|
||||||
#![feature(staged_api)]
|
#![feature(staged_api)]
|
||||||
|
#![feature(const_fn)]
|
||||||
#![feature(allow_internal_unstable)]
|
#![feature(allow_internal_unstable)]
|
||||||
#![feature(decl_macro)]
|
#![feature(decl_macro)]
|
||||||
#![feature(extern_types)]
|
#![feature(extern_types)]
|
||||||
|
|
|
@ -237,6 +237,7 @@
|
||||||
#![feature(concat_idents)]
|
#![feature(concat_idents)]
|
||||||
#![feature(const_cstr_unchecked)]
|
#![feature(const_cstr_unchecked)]
|
||||||
#![feature(const_fn_transmute)]
|
#![feature(const_fn_transmute)]
|
||||||
|
#![feature(const_fn)]
|
||||||
#![feature(const_ipv6)]
|
#![feature(const_ipv6)]
|
||||||
#![feature(const_raw_ptr_deref)]
|
#![feature(const_raw_ptr_deref)]
|
||||||
#![feature(const_ipv4)]
|
#![feature(const_ipv4)]
|
||||||
|
@ -306,6 +307,7 @@
|
||||||
#![feature(str_internals)]
|
#![feature(str_internals)]
|
||||||
#![feature(test)]
|
#![feature(test)]
|
||||||
#![feature(thread_local)]
|
#![feature(thread_local)]
|
||||||
|
#![feature(thread_local_internals)]
|
||||||
#![feature(toowned_clone_into)]
|
#![feature(toowned_clone_into)]
|
||||||
#![feature(total_cmp)]
|
#![feature(total_cmp)]
|
||||||
#![feature(trace_macros)]
|
#![feature(trace_macros)]
|
||||||
|
|
|
@ -117,6 +117,7 @@ pub struct Key {
|
||||||
pub const INIT: StaticKey = StaticKey::new(None);
|
pub const INIT: StaticKey = StaticKey::new(None);
|
||||||
|
|
||||||
impl StaticKey {
|
impl StaticKey {
|
||||||
|
#[rustc_const_unstable(feature = "thread_local_internals", issue = "none")]
|
||||||
pub const fn new(dtor: Option<unsafe extern "C" fn(*mut u8)>) -> StaticKey {
|
pub const fn new(dtor: Option<unsafe extern "C" fn(*mut u8)>) -> StaticKey {
|
||||||
StaticKey { key: atomic::AtomicUsize::new(0), dtor }
|
StaticKey { key: atomic::AtomicUsize::new(0), dtor }
|
||||||
}
|
}
|
||||||
|
|
|
@ -225,6 +225,7 @@ impl<T: 'static> LocalKey<T> {
|
||||||
reason = "recently added to create a key",
|
reason = "recently added to create a key",
|
||||||
issue = "none"
|
issue = "none"
|
||||||
)]
|
)]
|
||||||
|
#[rustc_const_unstable(feature = "thread_local_internals", issue = "none")]
|
||||||
pub const unsafe fn new(inner: unsafe fn() -> Option<&'static T>) -> LocalKey<T> {
|
pub const unsafe fn new(inner: unsafe fn() -> Option<&'static T>) -> LocalKey<T> {
|
||||||
LocalKey { inner }
|
LocalKey { inner }
|
||||||
}
|
}
|
||||||
|
@ -497,6 +498,7 @@ pub mod os {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T: 'static> Key<T> {
|
impl<T: 'static> Key<T> {
|
||||||
|
#[rustc_const_unstable(feature = "thread_local_internals", issue = "none")]
|
||||||
pub const fn new() -> Key<T> {
|
pub const fn new() -> Key<T> {
|
||||||
Key { os: OsStaticKey::new(Some(destroy_value::<T>)), marker: marker::PhantomData }
|
Key { os: OsStaticKey::new(Some(destroy_value::<T>)), marker: marker::PhantomData }
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue